From 007e33dd8728b4557917a2ffa2e2449865602742 Mon Sep 17 00:00:00 2001 From: xiejun <xj@2023> Date: 星期一, 04 十二月 2023 16:10:48 +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 | 266 ++++++++++++++++++++++++++++++++++++++++++++-------- 1 files changed, 222 insertions(+), 44 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 6f1dbdf..32c2f3b 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 @@ -2,21 +2,24 @@ import com.alibaba.nacos.common.utils.StringUtils; 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.LambdaUpdateWrapper; +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; import com.baomidou.mybatisplus.extension.toolkit.SqlHelper; +import com.sun.org.apache.bcel.internal.generic.NEW; import com.vci.ubcs.code.bo.CodeClassifyFullInfoBO; -import com.vci.ubcs.code.entity.CodeClassify; -import com.vci.ubcs.code.entity.CodeClassifyTemplate; +import com.vci.ubcs.code.entity.*; import com.vci.ubcs.code.enumpack.FrameworkDataLCStatus; -import com.vci.ubcs.code.mapper.CodeClassifyMapper; -import com.vci.ubcs.code.mapper.CodeClassifyTemplateMapper; +import com.vci.ubcs.code.mapper.*; import com.vci.ubcs.code.po.CodeClassifyPO; import com.vci.ubcs.code.service.ICodeClassifyService; import com.vci.ubcs.code.service.ICodeKeyAttrRepeatService; import com.vci.ubcs.code.service.ICodeRuleService; +import com.vci.ubcs.code.vo.pagemodel.CodeAllCodeVO; import com.vci.ubcs.code.vo.pagemodel.CodeClassifyVO; import com.vci.ubcs.code.vo.pagemodel.CodeKeyAttrRepeatRuleVO; import com.vci.ubcs.code.vo.pagemodel.CodeRuleVO; @@ -36,13 +39,16 @@ import com.vci.ubcs.starter.revision.model.TreeWrapperOptions; import com.vci.ubcs.starter.revision.service.RevisionModelUtil; import com.vci.ubcs.starter.util.BladeTreeQueryObject; +import com.vci.ubcs.starter.util.DefaultAttrAssimtUtil; import com.vci.ubcs.starter.util.LocalFileUtil; +import com.vci.ubcs.starter.util.MdmBtmTypeConstant; import com.vci.ubcs.starter.web.pagemodel.BaseQueryObject; import com.vci.ubcs.starter.web.pagemodel.DataGrid; import com.vci.ubcs.starter.web.pagemodel.Tree; import com.vci.ubcs.starter.web.util.BeanUtilForVCI; import com.vci.ubcs.starter.web.util.LangBaseUtil; import com.vci.ubcs.starter.web.util.VciBaseUtil; +import com.vci.ubcs.system.cache.NacosConfigCache; import org.apache.poi.hssf.util.HSSFColor; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -55,7 +61,9 @@ import org.springblade.core.tool.utils.Func; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Value; +import org.springframework.context.annotation.Bean; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import org.springframework.util.CollectionUtils; import javax.annotation.Resource; @@ -66,6 +74,7 @@ import java.util.stream.Stream; import static com.vci.ubcs.code.constant.FrameWorkDefaultValueConstant.*; +import static com.vci.ubcs.starter.web.util.VciBaseUtil.getTableName; @Service public class CodeClassifyServiceImpl extends ServiceImpl<CodeClassifyMapper, CodeClassify> implements ICodeClassifyService { @@ -82,8 +91,8 @@ @Resource private IBtmTypeClient btmTypeClient; - @Value("${user-info.tenant-id}") - private String tenantId; + @Resource + private CommonsMapper commonsMapper; /** * 鏃ュ織 @@ -97,6 +106,15 @@ @Resource private ICodeKeyAttrRepeatService iCodeKeyattrrepeatService; + + @Resource + private CodeAllCodeMapper codeAllCodeMapper; + + @Resource + private CodeSerialValueMapper codeSerialValueMapper; + + @Resource + private CodeBasicSecMapper codeBasicSecMapper; /** * 涓婄骇鑺傜偣鐨勫睘鎬у悕绉� */ @@ -124,14 +142,30 @@ @Override public IPage<CodeClassifyVO> selectPlCodeClassifyPage(IPage<CodeClassifyVO> page, CodeClassifyVO plCodeClassify) { - return page.setRecords(codeClassifyMapper.selectPlCodeClassifyPage(page, plCodeClassify)); + return page.setRecords(codeClassifyMapper.selectPlCodeClassifyPage(page, plCodeClassify,AuthUtil.getTenantId() + .equals( + NacosConfigCache + .getAdminUserInfo() + .getTenantId() + ) ? null:AuthUtil.getTenantId())); } + /** + * 涓婚搴撳畾涔夎〃 鏂板 + * @param + */ @Override public R addSave(CodeClassify codeClassifyEntity) { - + try { + VciBaseUtil.alertNotNull(codeClassifyEntity.getId(),"涓婚搴撶紪鍙蜂笉鑳戒负绌猴紒",codeClassifyEntity.getName(),"涓婚搴撳悕绉颁笉鑳戒负绌猴紒"); + }catch (VciBaseException e){ + return R.fail(e.getMessage()); + } if(StringUtils.isNotBlank(codeClassifyEntity.getParentCodeClassifyOid()) && StringUtils.isNotBlank(codeClassifyEntity.getBtmTypeId())){ return R.fail("鍙湁鍦ㄩ《灞傜殑涓婚搴撳垎绫绘墠鑳借缃笟鍔$被鍨�"); + } + if(StringUtils.isEmpty(codeClassifyEntity.getParentCodeClassifyOid()) && StringUtils.isBlank(codeClassifyEntity.getBtmTypeId())){ + return R.fail("涓婚搴撳叧鑱旂殑涓氬姟绫诲瀷涓嶈兘涓虹┖锛�"); } QueryWrapper<CodeClassify> classifyQueryWrapper = new QueryWrapper<>(); classifyQueryWrapper.eq("parentCodeClassifyOid",codeClassifyEntity.getParentCodeClassifyOid()); @@ -145,14 +179,8 @@ codeClassifyEntity.setBtmTypeId(codeClassify.getBtmTypeId()); codeClassifyEntity.setBtmTypeName(codeClassify.getBtmTypeName()); } - codeClassifyEntity.setCreator(String.valueOf(AuthUtil.getUser().getUserId())); - codeClassifyEntity.setCreateTime(new Date()); - codeClassifyEntity.setTs(new Date()); - codeClassifyEntity.setOwner(String.valueOf(AuthUtil.getUser().getUserId())); - codeClassifyEntity.setLastModifier(String.valueOf(AuthUtil.getUser().getUserId())); - codeClassifyEntity.setLastModifyTime(new Date()); - codeClassifyEntity.setRevisionSeq(1); - codeClassifyEntity.setVersionSeq(1); + DefaultAttrAssimtUtil.addDefaultAttrAssimt(codeClassifyEntity, MdmBtmTypeConstant.CODE_CLASSIFY); + codeClassifyEntity.setLcStatus(FRAMEWORK_DATA_ENABLED); int insertNumber = codeClassifyMapper.insert(codeClassifyEntity); return R.status(SqlHelper.retBool(insertNumber)); } @@ -163,6 +191,7 @@ * @return 鎵ц缁撴灉 */ @Override + @Transactional(rollbackFor = Exception.class) public R editSave(CodeClassify codeClassifyEntity) { if(codeClassifyEntity == null || codeClassifyEntity.getOid() == null){ return R.fail("浼犲叆鏁版嵁涓嶈兘涓虹┖锛�"); @@ -176,18 +205,36 @@ if(StringUtils.isNotBlank(codeClassifyEntity.getParentCodeClassifyOid()) && StringUtils.isNotBlank(codeClassifyEntity.getBtmTypeId())){ return R.fail("鍙湁鍦ㄩ《灞傜殑涓婚搴撳垎绫绘墠鑳借缃笟鍔$被鍨�"); } - codeClassifyEntity.setLastModifier(String.valueOf(AuthUtil.getUser().getUserId())); + // codeClassifyEntity.setLastModifier(String.valueOf(AuthUtil.getUser().getUserId())); + 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()); + LambdaUpdateWrapper<CodeClassify> updateWrapper = Wrappers.<CodeClassify>update() + .lambda().in(CodeClassify::getOid, oids) + .set(CodeClassify::getIsParticipateCheck, codeClassifyEntity.getIsParticipateCheck()); + // 鐖跺垎绫荤殑涓氬姟绫诲瀷鍋氫簡鏇存敼锛屾墍鏈夊瓙鍒嗙被鐨勯兘寰楄繘琛屾洿鏀� + if(!codeClassifyEntity.getBtmTypeId().equals(detail.getBtmTypeId())){ + updateWrapper.set(CodeClassify::getBtmTypeId,codeClassifyEntity.getBtmTypeId()) + .set(CodeClassify::getBtmTypeName,codeClassifyEntity.getBtmTypeName()); + } + updateAttr = codeClassifyMapper.update(null,updateWrapper); + + } // //澶勭悊鏁版嵁闆嗘垚閫昏緫,鎴愬姛鍚庢墽琛岄泦鎴愮涓�姝�,鍒嗙被鏁版嵁鐗规畩澶勭悊銆傚彧鏈夊惎鐢ㄧ姸鎬佺殑鍒嗙被鎵嶆帹閫� // 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)); } /** @@ -236,11 +283,13 @@ // .selectOne(Condition.getQueryWrapper(condition,CodeClassify.class)); if(detail == null){//涓嶆槸鏈�鏂扮殑涓嶈鏀� throw new ServiceException("褰撳墠鏁版嵁涓嶆槸鏈�鏂帮紝璇峰埛鏂板悗鍐嶄慨鏀癸紒"); -// return R.fail("褰撳墠鏁版嵁涓嶆槸鏈�鏂帮紝璇峰埛鏂板悗鍐嶄慨鏀癸紒"); } //鏍¢獙涓嬬骇鏄惁鏈夊紩鐢� if(checkChildIsLinked(detail.getOid())){ return R.fail("dataCascadeLinkedNotDelete"); + } + if(checkHasChild(detail.getOid())){ + return R.fail("姝ゆ暟鎹湁涓嬬骇锛屾棤娉曡繘琛屽垹闄わ紒"); } return R.status(!checkHasChild(detail.getOid())); } @@ -359,20 +408,33 @@ @Override public R updateLcStatus(String oid, String lcStatus){ - //鏌ヨ淇敼鍓峵s - CodeClassify codeClassify = codeClassifyMapper.selectById(oid);//涓昏鏄负浜嗘煡璇s - codeClassify.setLcStatus(lcStatus); - codeClassify.setTs(new Date()); - codeClassify.setLastModifyTime(new Date()); - codeClassify.setLastModifier(String.valueOf(AuthUtil.getUser().getUserId())); + List<CodeClassify> classifyList = codeClassifyMapper.selectStartWithCurrentOid(oid); + Date now = new Date(); + // String userId = String.valueOf(AuthUtil.getUserId()); + String account = AuthUtil.getUserAccount(); + classifyList = classifyList.stream().map(s -> { + s.setLcStatus(lcStatus); + s.setTs(now); + s.setLastModifier(account); + s.setLastModifyTime(now); + return s; + }).collect(Collectors.toList()); +// //鏌ヨ淇敼鍓峵s +// CodeClassify codeClassify = codeClassifyMapper.selectById(oid);//涓昏鏄负浜嗘煡璇s +// codeClassify.setLcStatus(lcStatus); +// codeClassify.setTs(new Date()); +// codeClassify.setLastModifyTime(new Date()); +// codeClassify.setLastModifier(String.valueOf(AuthUtil.getUser().getUserId())); //鍚敤銆佸仠鐢� // int u = codeClassifyMapper.updateLcStatus(oid,lcStatus); - int count = codeClassifyMapper.updateById(codeClassify); +// int count = codeClassifyMapper.updateById(codeClassify); + codeClassifyMapper.batchUpdateLcStatus(classifyList); // //澶勭悊鏁版嵁闆嗘垚閫昏緫,鎴愬姛鍚庢墽琛岄泦鎴愮涓�姝�,鍒嗙被鏁版嵁鐗规畩澶勭悊銆� // if(u!=0) { // codeDuckingServiceI.insertCache1(lcStatus,lcStatus,DOCKING_DEFAULT_CLASSIFY, DOCKING_DEFAULT_CLASSIFYOID, oid, codeClassifyDO_old.getTs()); // } - return R.data(SqlHelper.retBool(count)); +// return R.data(SqlHelper.retBool(count)); + return R.success(""); } /** @@ -416,7 +478,7 @@ List<CodeClassifyVO> voList = new ArrayList<CodeClassifyVO>(); if(!CollectionUtils.isEmpty(codeClassifys)){ for(CodeClassify s: codeClassifys){ - CodeClassifyVO vo = codeClassifyDO2VO(s); + CodeClassifyVO vo = codeClassifyDO2VO(s); if(vo != null){ voList.add(vo); } @@ -496,10 +558,21 @@ lcStatus = treeQueryObject.getConditionMap().getOrDefault("lcStatus",null); } if(StringUtils.isNotBlank(id) || StringUtils.isNotBlank(lcStatus) ){ + //String tableName = this.getTableName(treeQueryObject.getConditionMap().get("btmTypeId"),treeQueryObject.getConditionMap().get("id"), treeQueryObject.getConditionMap().get("lcStatus")); doList = codeClassifyMapper - .selectCodeClassifyDOByTree(treeQueryObject.getConditionMap().get("id"),treeQueryObject.getConditionMap().get("lcStatus"),treeQueryObject.getParentOid(), AuthUtil.getTenantId().equals(this.tenantId) ? "":AuthUtil.getTenantId()); + .selectCodeClassifyDOByTree( + treeQueryObject.getConditionMap().get("id"), + treeQueryObject.getConditionMap().get("lcStatus"), + treeQueryObject.getParentOid(), + VciBaseUtil.checkAdminTenant() ? null:AuthUtil.getTenantId() + /*tableName*/ + ); }else{ - doList =codeClassifyMapper.selectCodeClassifyVOByTree(treeQueryObject.getParentOid(), AuthUtil.getTenantId().equals(this.tenantId) ? "":AuthUtil.getTenantId()); + // 鍙鍓嶇浼氫紶鍙傛暟杩囨潵灏变笉浼氬嚭鐜拌蛋杩欏彞鐨勬儏鍐碉紝鎵�浠ユ煡璇㈡�绘暟娌″湪杩欏効娣诲姞 + doList =codeClassifyMapper.selectCodeClassifyVOByTree( + treeQueryObject.getParentOid(), + VciBaseUtil.checkAdminTenant() ? null:AuthUtil.getTenantId() + ); } List<CodeClassifyVO> voList = codeClassifyDO2VOs(doList); TreeWrapperOptions treeWrapperOptions = new TreeWrapperOptions(PARENT_FIELD_NAME); @@ -509,6 +582,7 @@ return s.getId() + " " + s.getName() + (FrameworkDataLCStatus.DISABLED.getValue().equalsIgnoreCase(s .getLcStatus()) ? (" 銆愬仠鐢ㄣ�� ") : ""); }); + Iterator var6 = tree.listIterator(); while(var6.hasNext()){ Tree trees = (Tree) var6.next(); @@ -520,6 +594,28 @@ } } return tree; + } + + /** + * 鍒嗙被鍔犺浇鏃惰幏鍙栦笟鍔$被鍨媔d锛屾嫾鎺ヤ笟鍔$被鍨嬭〃鍚� + * @return + */ + private String getTableName(String btmTypeId,String id,String lcStatus){ + if(Func.isNotEmpty(btmTypeId)){ + return VciBaseUtil.getTableName(btmTypeId,true); + } + LambdaQueryWrapper<CodeClassify> wrapper = Wrappers.<CodeClassify>query() + .lambda().select(CodeClassify::getBtmTypeId) + .eq(CodeClassify::getLcStatus, lcStatus) + .isNotNull(CodeClassify::getBtmTypeId) + .last("limit 1") + .eq(CodeClassify::getId,id).isNull(CodeClassify::getParentCodeClassifyOid); + + CodeClassify codeClassify = codeClassifyMapper.selectOne(wrapper); + if(Func.isEmpty(codeClassify) || Func.isEmpty(codeClassify.getBtmTypeId())){ + throw new ServiceException("鏌ヨ涓绘暟鎹�绘暟鏃讹紝鏈幏鍙栧埌涓氬姟绫诲瀷ID锛�"); + } + return VciBaseUtil.getTableName(codeClassify.getBtmTypeId(),true); } /** @@ -558,9 +654,85 @@ if(StringUtils.isNotBlank(libName)){ libNameList=VciBaseUtil.str2List(libName); } - List<CodeClassify> doList =codeClassifyMapper.getRMLibByName(libNameList,"Enabled",AuthUtil.getTenantId()); + List<CodeClassify> doList =codeClassifyMapper.getRMLibByName(libNameList,"Enabled",AuthUtil.getTenantId() + .equals( + NacosConfigCache + .getAdminUserInfo() + .getTenantId() + ) ? null:AuthUtil.getTenantId()); List<CodeClassifyVO> voList = codeClassifyDO2VOs(doList); return voList; + } + + /*** + * 鏍规嵁oid鑾峰彇涓嬮潰鎵�鏈夌殑鍒嗙被淇℃伅 + * @param oid + * @return + */ + 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; + } + + /** + * 娴佹按渚濊禆鐢熸垚 + */ + @Override + public R flowingDependencyGen(String classifyOid) { + + //鏌ヨ姝ゅ垎绫讳笅闈㈢殑鎵�鏈夊垎绫� + List<CodeClassify> codeClassifyList=codeClassifyMapper.selectAllClassifyByOid(classifyOid,AuthUtil.getTenantId(),null); + //鏌ヨ鐮佸�艰〃锛岃幏鍙栨渶澶ф祦姘� + List<CodeAllCode> codeAllCodeVOS = codeAllCodeMapper.selectGroupByClassify("'" + codeClassifyList.stream() + .map(classfiy -> classfiy.getOid()).collect(Collectors.joining("','")) + "'","'${sav}'"); + //寰�娴佹按琛ㄩ噷闈㈠姞鏁版嵁锛屾湁鍒欐洿鏂帮紝鏃犲垯娣诲姞鏁版嵁銆� + for (CodeAllCode codeAllCodeVO : codeAllCodeVOS) { + QueryWrapper<CodeBasicSec> secWrapper = new QueryWrapper<>(); + secWrapper.eq("PKCODERULE",codeAllCodeVO.getCodeRuleOid()); + secWrapper.eq("SECTYPE","codeserialsec"); + CodeBasicSec codeBasicSec = codeBasicSecMapper.selectOne(secWrapper); + QueryWrapper<CodeSerialValue> wrapper = new QueryWrapper<>(); + wrapper.eq("codeRuleOid",codeAllCodeVO.getCodeRuleOid()); + wrapper.eq("serialUnit",codeAllCodeVO.getSerialUnit()); + wrapper.eq("codeSecOid",codeBasicSec.getOid()); + CodeSerialValue codeSerialValue = codeSerialValueMapper.selectOne(wrapper); + if(codeSerialValue == null){ + CodeSerialValue newSerialValue = new CodeSerialValue(); + DefaultAttrAssimtUtil.addDefaultAttrAssimt(newSerialValue,"codeserialvalue"); + newSerialValue.setCodeRuleOid(codeAllCodeVO.getCodeRuleOid()); + newSerialValue.setCodeSecOid(codeBasicSec.getOid()); + newSerialValue.setSerialUnit(codeAllCodeVO.getSerialUnit()); + newSerialValue.setMaxSerial(codeAllCodeVO.getUnFillSerial()); + newSerialValue.setLctid("defaultLC"); + newSerialValue.setLcStatus("Exist"); + codeSerialValueMapper.insert(newSerialValue); + }else{ + codeSerialValue.setMaxSerial(codeAllCodeVO.getUnFillSerial()); + codeSerialValue.setLastModifyTime(new Date()); + codeSerialValue.setLastModifier(String.valueOf(AuthUtil.getUser().getUserId())); + codeSerialValue.setTs(new Date()); + codeSerialValueMapper.updateById(codeSerialValue); + } + } + return R.success("鎿嶄綔鎴愬姛锛�"); } /*** @@ -658,8 +830,8 @@ Map<String, CodeRuleVO> ruleVOMap = new HashMap<>(); if(!CollectionUtils.isEmpty(codeRuleOids)){ VciBaseUtil.switchCollectionForOracleIn(codeRuleOids).stream().forEach(ruleOids->{ -// Collection<CodeRuleVO> ruleVOS = codeRuleService.listCodeRuleByOids(ruleOids); - Collection<CodeRuleVO> ruleVOS = null; + Collection<CodeRuleVO> ruleVOS = codeRuleService.listCodeRuleByOids(ruleOids); + // Collection<CodeRuleVO> ruleVOS = null; ruleVOMap.putAll( Optional.ofNullable(ruleVOS).orElseGet(()->new ArrayList<>()).stream().collect(Collectors.toMap(s->s.getOid(),t->t))); }); } @@ -692,6 +864,7 @@ excelDataList.add(new WriteExcelData(0,9,"鐘舵��")); excelDataList.add(new WriteExcelData(0,10,"鍒嗙被灞傜骇")); excelDataList.add(new WriteExcelData(0,11,"鎻忚堪")); + codeClassifyVOS = codeClassifyVOS.stream().sorted(Comparator.comparing(CodeClassifyVO::getDataLevel)).collect(Collectors.toList()); for (int i = 0; i < codeClassifyVOS.size(); i++) { CodeClassifyVO vo = codeClassifyVOS.get(i); excelDataList.add(new WriteExcelData(i+1,0,vo.getId())); @@ -724,9 +897,9 @@ @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)){ - classifyDOS = classifyDOS.stream().filter(s->FRAMEWORK_DATA_ENABLED.equalsIgnoreCase(s.getLcStatus())).collect(Collectors.toList()); + classifyDOS = classifyDOS.parallelStream().filter(s->FRAMEWORK_DATA_ENABLED.equalsIgnoreCase(s.getLcStatus())).collect(Collectors.toList()); } return codeClassifyDO2VOs(classifyDOS); }else{ @@ -827,7 +1000,7 @@ s -> StringUtils.isNotBlank(s.getCodeRuleId())) .map(CodeClassifyPO::getCodeRuleId) .collect(Collectors.toList()); - Map<String, CodeRuleVO> ruleVOMap = Optional.ofNullable(ruleOids.size()==0 ? null:codeRuleService.listCodeRuleByOids(ruleOids) + Map<String, CodeRuleVO> ruleVOMap = Optional.ofNullable(ruleOids.size()==0 ? null:codeRuleService.listCodeRuleByIds(ruleOids,true) ).orElse(new ArrayList<>()).stream().collect(Collectors.toMap(s -> s.getId().toLowerCase(Locale.ROOT), t -> t,(o1,o2)->o2)); List<String> keyOids = poList.stream().filter(s -> StringUtils.isNotBlank(s.getKeyRepeatRuleId())) @@ -835,7 +1008,7 @@ Map<String,CodeKeyAttrRepeatRuleVO> keyRuleVOMap =Optional.ofNullable(keyOids.size()==0 ? null: iCodeKeyattrrepeatService.listCodeKeyAttrRepeatRuleByOids(keyOids) ).orElse(new ArrayList<>()).stream().collect(Collectors.toMap(s -> s.getId().toLowerCase(Locale.ROOT), t -> t,(o1,o2)->o2)); - List<String> btmOids = poList.stream().filter(s -> StringUtils.isNotBlank(s.getKeyRepeatRuleId())) + List<String> btmOids = poList.stream().filter(s -> StringUtils.isNotBlank(s.getBtmTypeId())) .map(CodeClassifyPO::getBtmTypeId).collect(Collectors.toList()); Map<String, BtmTypeVO> btmVOMap = Optional .ofNullable(btmOids.size()==0 ? null: btmTypeClient.selectByIdCollection(btmOids).getData()) @@ -844,7 +1017,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("#")){ @@ -963,8 +1136,10 @@ classifyDO.setBtmname("codeclassify"); classifyDO.setLcStatus("Enabled"); classifyDO.setOwner(String.valueOf(AuthUtil.getUser().getUserId())); - classifyDO.setCreator(String.valueOf(AuthUtil.getUser().getUserId())); - classifyDO.setLastModifier(String.valueOf(AuthUtil.getUser().getUserId())); + // classifyDO.setCreator(String.valueOf(AuthUtil.getUser().getUserId())); + // classifyDO.setLastModifier(String.valueOf(AuthUtil.getUser().getUserId())); + classifyDO.setCreator(String.valueOf(AuthUtil.getUser().getAccount())); + classifyDO.setLastModifier(String.valueOf(AuthUtil.getUser().getAccount())); classifyDO.setLastModifyTime(new Date()); codeClassifyMapper.insert(classifyDO); } @@ -1106,7 +1281,8 @@ List<Map<String,Object>> cbos = codeClassifyMapper.selectAllLevelParentByOid(oid); Map<String,String> oidLevelMap = new HashMap<>(); Optional.ofNullable(cbos).orElseGet(()->new ArrayList<>()).stream().forEach(cbo->{ - oidLevelMap.put(cbo.get("OID").toString(),cbo.get("LEVEL").toString()); + // 鐢╧ey鍙杕ap鍊煎苟涓斾笉鍖哄垎澶у皬鍐� + oidLevelMap.put(cbo.getOrDefault("OID",cbo.get("oid")).toString(),cbo.get("LEVEL").toString()); }); if(CollectionUtils.isEmpty(oidLevelMap)){ return new ArrayList<>(); @@ -1177,7 +1353,7 @@ return null; } List<Tree> treeList = trees.stream().filter(tree -> !CollectionUtils.isEmpty(btmTypeVOS.stream().filter(btmType -> { - if(Objects.equals(tree.getAttributes().get("id"), btmType.getId())){ + if(Objects.equals(tree.getAttributes().get("btmTypeId"), btmType.getId())){ tree.getAttributes().put("btmTypeOid",btmType.getOid()); return true; } @@ -1270,4 +1446,6 @@ return codeClassifyMapper.selectCount(wrapper).intValue(); } + + } -- Gitblit v1.9.3