From 274e31b26d5eba7977018048366dde0000588dc7 Mon Sep 17 00:00:00 2001 From: yuxc <653031404@qq.com> Date: 星期一, 10 四月 2023 11:37:50 +0800 Subject: [PATCH] 近义词维护、编码定义、模板池等功能的代码实现功能 --- Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/ICodeClassifyServiceImpl.java | 222 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 222 insertions(+), 0 deletions(-) diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/ICodeClassifyServiceImpl.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/ICodeClassifyServiceImpl.java index bd39008..31cea94 100644 --- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/ICodeClassifyServiceImpl.java +++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/ICodeClassifyServiceImpl.java @@ -1,14 +1,28 @@ package com.vci.ubcs.code.service.impl; +import com.alibaba.nacos.common.utils.StringUtils; import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.baomidou.mybatisplus.extension.toolkit.SqlHelper; import com.vci.ubcs.code.entity.CodeClassify; import com.vci.ubcs.code.mapper.CodeClassifyMapper; import com.vci.ubcs.code.service.ICodeClassifyService; +import com.vci.ubcs.code.vo.pagemodel.CodeClassifyVO; +import com.vci.ubcs.core.log.exception.ServiceException; +import jodd.bean.BeanUtil; +import org.springblade.core.mp.support.Condition; +import org.springblade.core.secure.utils.AuthUtil; +import org.springblade.core.tool.api.R; +import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; +import org.springframework.util.CollectionUtils; import javax.annotation.Resource; +import java.util.Date; +import java.util.HashMap; import java.util.List; +import java.util.Map; @Service public class ICodeClassifyServiceImpl extends ServiceImpl<CodeClassifyMapper, CodeClassify> implements ICodeClassifyService { @@ -26,5 +40,213 @@ return codeClassifyMapper.selectList(wrapper); } + @Override + public IPage<CodeClassifyVO> selectPlCodeClassifyPage(IPage<CodeClassifyVO> page, CodeClassifyVO plCodeClassify) { + return page.setRecords(codeClassifyMapper.selectPlCodeClassifyPage(page, plCodeClassify)); + } + + @Override + public R addSave(CodeClassify codeClassifyEntity) { + + if(StringUtils.isNotBlank(codeClassifyEntity.getParentCodeClassifyOid()) && StringUtils.isNotBlank(codeClassifyEntity.getBtmTypeId())){ + return R.fail("鍙湁鍦ㄩ《灞傜殑涓婚搴撳垎绫绘墠鑳借缃笟鍔$被鍨�"); + } + codeClassifyEntity.setCreator(AuthUtil.getUser().getUserName()); + codeClassifyEntity.setCreateTime(new Date()); + codeClassifyEntity.setTs(new Date()); + codeClassifyEntity.setLastModifier(AuthUtil.getUser().getUserName()); + codeClassifyEntity.setLastModifyTime(new Date()); + int insertNumber = codeClassifyMapper.insert(codeClassifyEntity); + return R.status(SqlHelper.retBool(insertNumber)); + } + + /** + * 淇敼涓婚搴撳垎绫� + * @param codeClassifyEntity 涓婚搴撳垎绫绘暟鎹紶杈撳璞� + * @return 鎵ц缁撴灉 + */ + @Override + public R editSave(CodeClassify codeClassifyEntity) { + if(codeClassifyEntity == null || codeClassifyEntity.getOid() == null){ + return R.fail("浼犲叆鏁版嵁涓嶈兘涓虹┖锛�"); + } + //妫�鏌s + Map<String,Object> condition = new HashMap<>(2); + condition.put("oid",codeClassifyEntity.getOid()); + condition.put("ts",codeClassifyEntity.getTs()); + CodeClassify detail = codeClassifyMapper + .selectOne(Condition.getQueryWrapper(condition,CodeClassify.class)); + if(detail == null){//涓嶆槸鏈�鏂扮殑涓嶈鏀� + return R.fail("褰撳墠鏁版嵁涓嶆槸鏈�鏂帮紝璇峰埛鏂板悗鍐嶄慨鏀癸紒"); + } + + if(StringUtils.isNotBlank(codeClassifyEntity.getParentCodeClassifyOid()) && StringUtils.isNotBlank(codeClassifyEntity.getBtmTypeId())){ + return R.fail("鍙湁鍦ㄩ《灞傜殑涓婚搴撳垎绫绘墠鑳借缃笟鍔$被鍨�"); + } + codeClassifyEntity.setLastModifier(AuthUtil.getUser().getUserName()); + codeClassifyEntity.setLastModifyTime(new Date()); + int insertNumber = codeClassifyMapper.updateById(codeClassifyEntity); + +// //澶勭悊鏁版嵁闆嗘垚閫昏緫,鎴愬姛鍚庢墽琛岄泦鎴愮涓�姝�,鍒嗙被鏁版嵁鐗规畩澶勭悊銆傚彧鏈夊惎鐢ㄧ姸鎬佺殑鍒嗙被鎵嶆帹閫� +// if(FRAMEWORK_DATA_ENABLED.equals(codeClassifyDO.getLcStatus())); +// { +// codeDuckingServiceI.insertCache1(CACHE_TYPE_CLASSIFY_EDIT,FRAMEWORK_DATA_ENABLED,DOCKING_DEFAULT_CLASSIFY, DOCKING_DEFAULT_CLASSIFYOID, codeClassifyDO.getOid(), codeClassifyDTO.getTs()); +// } + return R.status(SqlHelper.retBool(insertNumber)); +// return BaseResult.success(codeClassifyDO2VO(codeClassifyDO)); + } + + /** + * 妫�鏌� 涓婚搴撳垎绫绘槸鍚﹀垹闄� + * @param codeClassifyEntity 涓婚搴撳垎绫绘暟鎹紶杈撳璞★紝蹇呴』瑕佹湁oid鍜宼s灞炴�� + * @return 鎵ц缁撴灉 success涓簍rue涓哄彲浠ュ垹闄わ紝false琛ㄧず鏈夋暟鎹紩鐢紝obj涓簍rue琛ㄧず鏈変笅绾� + */ + @Override + public R checkIsCanDelete(CodeClassify codeClassifyEntity) { + if(codeClassifyEntity == null || codeClassifyEntity.getOid() == null){ + return R.fail("浼犲叆鏁版嵁涓嶈兘涓虹┖锛�"); + } + codeClassifyEntity = selectByOid(codeClassifyEntity.getOid()); + return checkIsCanDeleteForDO(codeClassifyEntity); + } + + /** + * 涓婚敭鏌ヨ鏁版嵁瀵硅薄 + * @param oid 涓婚敭 + * @return 鏁版嵁瀵硅薄 + */ + private CodeClassify selectByOid(String oid){ + + CodeClassify codeClassifyEntity = codeClassifyMapper.selectById(oid.trim()); + if(codeClassifyEntity == null || StringUtils.isBlank(codeClassifyEntity.getOid())){ + throw new ServiceException("dataOidNotExist");//鏍规嵁涓婚敭id鏈煡鍒扮浉鍏虫暟鎹� + } + return codeClassifyEntity; + } + + /** + * 鏍¢獙鏄惁鍙互鍒犻櫎锛屽鏋滃瓨鍦ㄤ笅绾э紝骞朵笖涓嬬骇鏈夋暟鎹紩鐢ㄥ垯涓嶈兘鍒犻櫎 + * @param codeClassifyEntity 鏁版嵁搴撲腑鐨勬暟鎹璞� + * @return success涓簍rue涓哄彲浠ュ垹闄わ紝false琛ㄧず鏈夋暟鎹紩鐢紝obj涓簍rue琛ㄧず鏈変笅绾� + */ + private R checkIsCanDeleteForDO(CodeClassify codeClassifyEntity) { + + //妫�鏌s + Map<String,Object> condition = new HashMap<>(2); + condition.put("oid",codeClassifyEntity.getOid()); + condition.put("ts",codeClassifyEntity.getTs()); + CodeClassify detail = codeClassifyMapper + .selectOne(Condition.getQueryWrapper(condition,CodeClassify.class)); + if(detail == null){//涓嶆槸鏈�鏂扮殑涓嶈鏀� + throw new ServiceException("褰撳墠鏁版嵁涓嶆槸鏈�鏂帮紝璇峰埛鏂板悗鍐嶄慨鏀癸紒"); +// return R.fail("褰撳墠鏁版嵁涓嶆槸鏈�鏂帮紝璇峰埛鏂板悗鍐嶄慨鏀癸紒"); + } + //鏍¢獙涓嬬骇鏄惁鏈夊紩鐢� + if(checkChildIsLinked(detail.getOid())){ + return R.fail("dataCascadeLinkedNotDelete"); + } + return R.data(checkHasChild(detail.getOid())); + } + + /** + * 妫�鏌ユ槸鍚︽湁涓嬬骇鏄惁鍏宠仈浜嗘暟鎹� + * + * @param oid 涓婚敭 + * @return true 琛ㄧず鏈夊紩鐢紝false琛ㄧず娌℃湁寮曠敤 + */ + @Override + public boolean checkChildIsLinked(String oid) { + + Map<String,String> childOids = codeClassifyMapper.selectAllLevelChildOid(oid.trim()); + if(!CollectionUtils.isEmpty(childOids)){ + for(String childOid: childOids.keySet()){ + if(!checkIsLinked(childOid)){ + return false; + } + } + return true; + } + return false; + } + + /** + * 鏍¢獙鏄惁琚紩鐢� + * @param oid 涓婚敭 + */ + private boolean checkIsLinked(String oid) { + //TODO 娣诲姞闇�瑕佹牎楠屽紩鐢ㄧ殑鍦版柟 + return false; + } + + @Override + public boolean checkHasChild(String oid) { + if(StringUtils.isBlank(oid)){ + throw new ServiceException("oid涓嶈兘涓虹┖锛�"); + } + return codeClassifyMapper.checkHasChild(oid.trim()); + } + + + /** + * 鍒犻櫎涓婚搴撳垎绫� + * @param codeClassify 涓婚搴撳垎绫绘暟鎹紶杈撳璞★紝oid鍜宼s闇�瑕佷紶杈� + * @return 鍒犻櫎缁撴灉鍙嶉锛氾細success锛氭垚鍔燂紝fail锛氬け璐� + */ + @Override + public R deleteCodeClassify(CodeClassify codeClassify) { + + if(codeClassify == null || codeClassify.getOid() == null){ + throw new ServiceException("浼犲叆鍙傛暟涓嶈兘涓虹┖锛�"); + } + codeClassify = codeClassifyMapper.selectById(codeClassify.getOid()); + + R result = checkIsCanDeleteForDO(codeClassify); + + //鍏堢畝绉版槸鍚︽湁鍏宠仈妯℃澘锛屾湁妯℃澘瑕佸厛鍒犻櫎 +// VciQueryWrapperForDO queryWrapper = new VciQueryWrapperForDO(CodeClassifyTemplateDO.class); +// queryWrapper.addQueryMap("codeClassifyOid",codeClassifyDTO.getOid()); +// List<CodeClassifyTemplateDO> codeClassifyTemplateDOListHaveTemplate = codeClassifyTemplateMapper.selectByWrapper(queryWrapper); +// if(codeClassifyTemplateDOListHaveTemplate.size()>0){ +// return BaseResult.fail("鍒嗙被鍏宠仈妯℃澘锛岃鍏堝垹闄�!"); +// } +// +// //澶勭悊鏁版嵁闆嗘垚閫昏緫,鎴愬姛鍚庢墽琛岄泦鎴愮涓�姝�,鍒嗙被鏁版嵁鐗规畩澶勭悊銆� +// //1銆佹煡璇㈣鍒犻櫎鐨勭埗绫绘暟鎹� +// List<CodeClassifyDO> deletes = new ArrayList<CodeClassifyDO>(); +// deletes.add(codeClassifyDO); +// +// if(result.isSuccess()) { +// //鎵句笅绾х殑锛岃繖涓槸鍙互鍒犻櫎鐨勬椂鍊� +// Map<String,String> childrenOids = codeClassifyMapper.selectAllLevelChildOid(codeClassifyDO.getOid().trim()); +// if (!CollectionUtils.isEmpty(childrenOids)) { +// Collection<Collection<String>> childrenCollections = VciBaseUtil.switchCollectionForOracleIn(childrenOids.keySet()); +// for(Collection<String> s : childrenCollections){ +// +// //澶勭悊鏁版嵁闆嗘垚閫昏緫,鎴愬姛鍚庢墽琛岄泦鎴愮涓�姝�,鍒嗙被鏁版嵁鐗规畩澶勭悊銆� +// //2銆佹煡璇㈣鍒犻櫎鐨勫瓙绫绘暟鎹� +// List<CodeClassifyDO> codeClassifyDOList = codeClassifyMapper.selectByPrimaryKeyCollection(s); +// deletes.addAll(codeClassifyDOList); +// +// codeClassifyMapper.batchDeleteByOids(s); +// } +// +// } +// }else{ +// return baseResult; +// } +// +// //鎵ц鍒犻櫎鎿嶄綔 +// BatchCBO batchCBO = codeClassifyMapper.deleteByPrimaryKey(codeClassifyDO.getOid()); +// +// //澶勭悊鏁版嵁闆嗘垚閫昏緫,鎴愬姛鍚庢墽琛岄泦鎴愮涓�姝� +// for (CodeClassifyDO codeClassifyDO1:deletes){ +// //codeDuckingServiceI.insertCache1(CACHE_TYPE_CLASSIFY_DELETE,FRAMEWORK_DATA_DISABLED,DOCKING_DEFAULT_CLASSIFY, DOCKING_DEFAULT_CLASSIFYOID, codeClassifyDO1.getOid(), DateUtils.addHours(new Date(),1));//杩欓噷鏄綋鍓嶆椂闂� +// +// //瀛樺偍瑕佸垹闄ょ殑鏁版嵁 +// codeDuckingServiceI.cacheDeleteData(codeClassifyDO1.getOid(), codeClassifyDO1); +// } +// return (batchCBO!=null && batchCBO.getDeleteCbos() !=null &&batchCBO.getDeleteCbos().size() > 0)?BaseResult.successMsg(DELETE_SUCCESS):BaseResult.fail(DELETE_FAIL); + return null; + } } -- Gitblit v1.9.3