From 6732cd7a4e0fd7ea083d4ae11254bde35adb1ee4 Mon Sep 17 00:00:00 2001 From: xiejun <xj@2023> Date: 星期五, 17 十一月 2023 01:39:20 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeClassifyServiceImpl.java | 50 ++++++++++++++++++++++++++++++++++++++++++-------- 1 files changed, 42 insertions(+), 8 deletions(-) diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeClassifyServiceImpl.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeClassifyServiceImpl.java index 5cdc488..ae01ddd 100644 --- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeClassifyServiceImpl.java +++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeClassifyServiceImpl.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -61,6 +62,7 @@ import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import org.springframework.util.CollectionUtils; import javax.annotation.Resource; @@ -179,6 +181,7 @@ * @return 鎵ц缁撴灉 */ @Override + @Transactional(rollbackFor = Exception.class) public R editSave(CodeClassify codeClassifyEntity) { if(codeClassifyEntity == null || codeClassifyEntity.getOid() == null){ return R.fail("浼犲叆鏁版嵁涓嶈兘涓虹┖锛�"); @@ -196,15 +199,28 @@ codeClassifyEntity.setLastModifier(String.valueOf(AuthUtil.getUser().getAccount())); codeClassifyEntity.setLastModifyTime(new Date()); codeClassifyEntity.setTs(new Date()); - int insertNumber = codeClassifyMapper.updateById(codeClassifyEntity); + int updateEntity = codeClassifyMapper.updateById(codeClassifyEntity); + // 濡傛灉涓嶆槸鍙跺瓙缁撶偣锛屽垯闇�瑕佷慨鏀瑰叾涓嬫墍鏈夌殑瀛愬垎绫伙紝鏄惁鍙備笌鍏抽敭灞炴�ф牎楠岀殑鍊� + String oid = codeClassifyEntity.getOid(); + List<CodeClassify> codeClassifies = codeClassifyMapper.selectStartWithCurrentOid(oid); + int updateAttr = 0; + // 涓嶄负绌哄氨闇�瑕佽褰撳墠鍒嗙被涓嬫墍鏈夊瓙鍒嗙被鐨刬sParticipateCheck + if(!codeClassifies.isEmpty()){ + List<String> oids = codeClassifies.stream().map(CodeClassify::getOid).collect(Collectors.toList()); + updateAttr = codeClassifyMapper.update( + null, + Wrappers.<CodeClassify>update() + .lambda().in(CodeClassify::getOid, oids) + .set(CodeClassify::getIsParticipateCheck, codeClassifyEntity.getIsParticipateCheck()) + ); + } // //澶勭悊鏁版嵁闆嗘垚閫昏緫,鎴愬姛鍚庢墽琛岄泦鎴愮涓�姝�,鍒嗙被鏁版嵁鐗规畩澶勭悊銆傚彧鏈夊惎鐢ㄧ姸鎬佺殑鍒嗙被鎵嶆帹閫� // 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)); + return R.status(SqlHelper.retBool(updateAttr) & SqlHelper.retBool(updateEntity)); } /** @@ -639,12 +655,29 @@ * @param oid * @return */ - public List<CodeClassifyVO> selectAllClassifyByOid(String oid){ - List<CodeClassify> codeClassifyList=codeClassifyMapper.selectAllClassifyByOid(oid,AuthUtil.getTenantId()); + public List<CodeClassifyVO> selectAllClassifyByOid(String oid, String fieldInPath){ + List<CodeClassify> codeClassifyList=codeClassifyMapper.selectAllClassifyByOid(oid,AuthUtil.getTenantId(),fieldInPath); List<CodeClassifyVO> voList = codeClassifyDO2VOs(codeClassifyList); return voList; } + + /** + * 鏍规嵁椤跺眰鑺傜偣oid鏌ヨ鎵�鏈夐櫎褰撳墠鑺傜偣浠ュ鎵�鏈変笉鍙備笌鏍¢獙鐨勫垎绫籵id + * @param topOid + * @param currentOid + * @return + */ + @Override + public String selectLeafByParentClassifyOid(String topOid, String currentOid) { + List<CodeClassify> codeClassifies = codeClassifyMapper.selectLeafByParentClassifyOid(topOid, currentOid); + if(codeClassifies.isEmpty()){ + return ""; + } + String oids = codeClassifies.stream().map(CodeClassify::getOid).collect(Collectors.joining(",")); + return oids; + } + /*** * 鏍规嵁鍒嗙被鎻忚堪澶囨敞鍜屽簱鑺傜偣鏌ヨ鍒嗙被淇℃伅 * @param desc @@ -807,9 +840,8 @@ @Override public List<CodeClassifyVO> listChildrenClassify(String codeClassifyOid, boolean allLevel, String fieldInPath, boolean enable) { if(allLevel){ - List<CodeClassify> classifyDOS = codeClassifyMapper.selectAllLevelChildHasPath(codeClassifyOid,fieldInPath); + List<CodeClassify> classifyDOS = codeClassifyMapper.selectAllLevelChildHasPath(codeClassifyOid,fieldInPath,AuthUtil.getTenantId()); if(!CollectionUtils.isEmpty(classifyDOS)){ - // 杩欏効鐢╯tream鏈夌偣鎱� classifyDOS = classifyDOS.parallelStream().filter(s->FRAMEWORK_DATA_ENABLED.equalsIgnoreCase(s.getLcStatus())).collect(Collectors.toList()); } return codeClassifyDO2VOs(classifyDOS); @@ -928,7 +960,7 @@ Map<String/**璺緞**/,String/**涓婚敭**/> oidPathMap = new HashMap<>(); //鎴戜滑闇�瑕佹煡璇㈡墍鏈夊凡缁忓瓨鍦ㄧ殑鍒嗙被锛屼富瑕佹槸璺緞锛岀敤鏉ュ垽鏂垎绫荤殑鏁版嵁 - List<CodeClassify> existClassifyDOs = codeClassifyMapper.selectAllLevelChildHasPath("",null); + List<CodeClassify> existClassifyDOs = codeClassifyMapper.selectAllLevelChildHasPath("",null,AuthUtil.getTenantId()); Map<String/**璺緞**/, CodeClassify/**宸茬粡瀛樺湪鐨勬暟鎹�**/> pathDOMap = Optional.ofNullable(existClassifyDOs).orElse(new ArrayList<>()).stream().collect(Collectors.toMap(s -> { String path = s.getPath(); if(StringUtils.isNotBlank(path) && path.startsWith("#")){ @@ -1357,4 +1389,6 @@ return codeClassifyMapper.selectCount(wrapper).intValue(); } + + } -- Gitblit v1.9.3