From 20ae109f6e2faabc057e70b0dbae13570c1020cd Mon Sep 17 00:00:00 2001 From: ludc Date: 星期二, 24 十月 2023 08:58:38 +0800 Subject: [PATCH] 修改创建人,最后修改人列存储信息为账号 --- Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeClassifyServiceImpl.java | 191 +++++++++++++++++++++++++++++++++++++++-------- 1 files changed, 156 insertions(+), 35 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 59e2b3a..66505ab 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.QueryWrapper; 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.vci.ubcs.code.bo.CodeClassifyFullInfoBO; @@ -35,13 +36,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; @@ -80,9 +84,6 @@ @Resource private IBtmTypeClient btmTypeClient; - - @Value("${user-info.tenant-id}") - private String tenantId; /** * 鏃ュ織 @@ -123,23 +124,45 @@ @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("鍙湁鍦ㄩ《灞傜殑涓婚搴撳垎绫绘墠鑳借缃笟鍔$被鍨�"); } - 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); + if(StringUtils.isEmpty(codeClassifyEntity.getParentCodeClassifyOid()) && StringUtils.isBlank(codeClassifyEntity.getBtmTypeId())){ + return R.fail("涓婚搴撳叧鑱旂殑涓氬姟绫诲瀷涓嶈兘涓虹┖锛�"); + } + QueryWrapper<CodeClassify> classifyQueryWrapper = new QueryWrapper<>(); + classifyQueryWrapper.eq("parentCodeClassifyOid",codeClassifyEntity.getParentCodeClassifyOid()); + classifyQueryWrapper.eq("id",codeClassifyEntity.getId()); + List<CodeClassify> codeClassifyList = baseMapper.selectList(classifyQueryWrapper); + if(codeClassifyList.size()!=0){ + return R.fail("褰撳墠鍒嗙被涓嬩笉鍏佽鍒嗙被缂栧彿閲嶅锛岃妫�鏌ワ紒锛侊紒"); + } + if(Func.isNotEmpty(codeClassifyEntity.getParentCodeClassifyOid())){ + CodeClassify codeClassify = baseMapper.selectOne(Wrappers.<CodeClassify>query().lambda().eq(CodeClassify::getOid, codeClassifyEntity.getParentCodeClassifyOid())); + codeClassifyEntity.setBtmTypeId(codeClassify.getBtmTypeId()); + codeClassifyEntity.setBtmTypeName(codeClassify.getBtmTypeName()); + } + DefaultAttrAssimtUtil.addDefaultAttrAssimt(codeClassifyEntity, MdmBtmTypeConstant.CODE_CLASSIFY); + codeClassifyEntity.setLcStatus(FRAMEWORK_DATA_ENABLED); int insertNumber = codeClassifyMapper.insert(codeClassifyEntity); return R.status(SqlHelper.retBool(insertNumber)); } @@ -163,7 +186,8 @@ 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); @@ -223,13 +247,15 @@ // .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())); + if(checkHasChild(detail.getOid())){ + return R.fail("姝ゆ暟鎹湁涓嬬骇锛屾棤娉曡繘琛屽垹闄わ紒"); + } + return R.status(!checkHasChild(detail.getOid())); } /** @@ -285,7 +311,7 @@ R result = checkIsCanDeleteForDO(codeClassify); - //鍏堢畝绉版槸鍚︽湁鍏宠仈妯℃澘锛屾湁妯℃澘瑕佸厛鍒犻櫎 + //鍏堟鏌ユ槸鍚︽湁鍏宠仈妯℃澘锛屾湁妯℃澘瑕佸厛鍒犻櫎 Map<String,Object> condition = new HashMap<>(2); condition.put("codeClassifyOid",codeClassify.getOid()); List<CodeClassifyTemplate> codeClstemplateEntities = codeClassifyTemplateMapper.selectByMap(condition); @@ -346,20 +372,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(""); } /** @@ -484,9 +523,19 @@ } if(StringUtils.isNotBlank(id) || StringUtils.isNotBlank(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(), AuthUtil.getTenantId() + .equals( + NacosConfigCache + .getAdminUserInfo() + .getTenantId() + ) ? null:AuthUtil.getTenantId()); }else{ - doList =codeClassifyMapper.selectCodeClassifyVOByTree(treeQueryObject.getParentOid(), AuthUtil.getTenantId().equals(this.tenantId) ? "":AuthUtil.getTenantId()); + doList =codeClassifyMapper.selectCodeClassifyVOByTree(treeQueryObject.getParentOid(), AuthUtil.getTenantId() + .equals( + NacosConfigCache + .getAdminUserInfo() + .getTenantId() + ) ? null:AuthUtil.getTenantId()); } List<CodeClassifyVO> voList = codeClassifyDO2VOs(doList); TreeWrapperOptions treeWrapperOptions = new TreeWrapperOptions(PARENT_FIELD_NAME); @@ -521,6 +570,73 @@ List<CodeClassifyVO> voList = codeClassifyDO2VOs(doList); return voList; } + + /*** + * + * @param parentOid + * @return + */ + @Override + public List<CodeClassifyVO> selectCodeClassifyVOByParentId(String parentOid) { + List<CodeClassify> doList =codeClassifyMapper.selectCodeClassifyDOByParentId(parentOid,AuthUtil.getTenantId()); + List<CodeClassifyVO> voList = codeClassifyDO2VOs(doList); + return voList; + } + + /** + * 鏍规嵁搴撹妭鐐瑰悕绉拌幏鍙栧垎绫� + * @param libName + * @return + */ + @Override + public List<CodeClassifyVO> getRMLibByName(String libName) { + List<String> libNameList=new ArrayList<>(); + if(StringUtils.isNotBlank(libName)){ + libNameList=VciBaseUtil.str2List(libName); + } + 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){ + List<CodeClassify> codeClassifyList=codeClassifyMapper.selectAllClassifyByOid(oid,AuthUtil.getTenantId()); + List<CodeClassifyVO> voList = codeClassifyDO2VOs(codeClassifyList); + return voList; + + } + /*** + * 鏍规嵁鍒嗙被鎻忚堪澶囨敞鍜屽簱鑺傜偣鏌ヨ鍒嗙被淇℃伅 + * @param desc + * @param codeLibName + * @return + */ + @Override + public List<CodeClassifyVO> getRMTypeByDescAndLib(String desc, String codeLibName) { + List<CodeClassify> doList =codeClassifyMapper.getRMTypeByDesc(desc,"Enabled",AuthUtil.getTenantId()); + if (CollectionUtils.isEmpty(doList)) { + return new LinkedList<CodeClassifyVO>(); + } + CodeClassify codeClassify=doList.get(0); + List<CodeClassify> codeClassifyList=codeClassifyMapper.selectAllParenClassifytByOid(codeClassify.getOid(),AuthUtil.getTenantId()); + CodeClassify currentLib = codeClassifyList.get(codeClassifyList.size() - 1); + if (!currentLib.getName().equals(codeLibName)) { + return new ArrayList<>(); + } + List<CodeClassifyVO> voList = codeClassifyDO2VOs(codeClassifyList); + return voList; + } + /** * 浣跨敤缂栧彿鐨勮矾寰勮幏鍙栧璞� * @@ -594,8 +710,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))); }); } @@ -628,6 +744,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())); @@ -662,7 +779,8 @@ if(allLevel){ List<CodeClassify> classifyDOS = codeClassifyMapper.selectAllLevelChildHasPath(codeClassifyOid,fieldInPath); if(!CollectionUtils.isEmpty(classifyDOS)){ - classifyDOS = classifyDOS.stream().filter(s->FRAMEWORK_DATA_ENABLED.equalsIgnoreCase(s.getLcStatus())).collect(Collectors.toList()); + // 杩欏効鐢╯tream鏈夌偣鎱� + classifyDOS = classifyDOS.parallelStream().filter(s->FRAMEWORK_DATA_ENABLED.equalsIgnoreCase(s.getLcStatus())).collect(Collectors.toList()); } return codeClassifyDO2VOs(classifyDOS); }else{ @@ -763,7 +881,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())) @@ -771,7 +889,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()) @@ -899,8 +1017,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); } @@ -1042,7 +1162,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<>(); -- Gitblit v1.9.3