From fb4762049abdca953db1ed4528d128dd8d887710 Mon Sep 17 00:00:00 2001 From: ludc Date: 星期三, 08 十一月 2023 18:53:45 +0800 Subject: [PATCH] 代码提交 --- Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeClassifyServiceImpl.java | 105 ++++++++++++++++++++++++++++++++++++++++------------ 1 files changed, 80 insertions(+), 25 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 c1560e5..2878287 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,6 +2,7 @@ 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.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.Wrappers; @@ -13,6 +14,7 @@ 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.CommonsMapper; import com.vci.ubcs.code.po.CodeClassifyPO; import com.vci.ubcs.code.service.ICodeClassifyService; import com.vci.ubcs.code.service.ICodeKeyAttrRepeatService; @@ -69,6 +71,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 { @@ -86,7 +89,7 @@ private IBtmTypeClient btmTypeClient; @Resource - private NacosConfigCache nacosConfigCache; + private CommonsMapper commonsMapper; /** * 鏃ュ織 @@ -129,7 +132,7 @@ public IPage<CodeClassifyVO> selectPlCodeClassifyPage(IPage<CodeClassifyVO> page, CodeClassifyVO plCodeClassify) { return page.setRecords(codeClassifyMapper.selectPlCodeClassifyPage(page, plCodeClassify,AuthUtil.getTenantId() .equals( - nacosConfigCache + NacosConfigCache .getAdminUserInfo() .getTenantId() ) ? null:AuthUtil.getTenantId())); @@ -189,7 +192,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); @@ -376,11 +380,12 @@ List<CodeClassify> classifyList = codeClassifyMapper.selectStartWithCurrentOid(oid); Date now = new Date(); - String userId = String.valueOf(AuthUtil.getUserId()); + // String userId = String.valueOf(AuthUtil.getUserId()); + String account = AuthUtil.getUserAccount(); classifyList = classifyList.stream().map(s -> { s.setLcStatus(lcStatus); s.setTs(now); - s.setLastModifier(userId); + s.setLastModifier(account); s.setLastModifyTime(now); return s; }).collect(Collectors.toList()); @@ -443,7 +448,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); } @@ -523,20 +528,27 @@ 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( - nacosConfigCache - .getAdminUserInfo() - .getTenantId() - ) ? null:AuthUtil.getTenantId()); + .selectCodeClassifyDOByTree( + treeQueryObject.getConditionMap().get("id"), + treeQueryObject.getConditionMap().get("lcStatus"), + treeQueryObject.getParentOid(), + VciBaseUtil.checkAdminTenant() ? null:AuthUtil.getTenantId(), + tableName + ); + // 璇佹槑鏄煡椤跺眰鑺傜偣 + if(StringUtils.isNotBlank(id)){ + // 鏈夋椂鍊欐煡璇otal杩囨參浼氬鑷存棤娉曞姞杞斤紝鐜板湪淇敼鏌ヨ鎬绘暟涓鸿繛琛ㄦ煡璇絾鏄氨瀵艰嚧椤跺眰鑺傜偣鏃犳硶鏌ヨ鍑烘�绘暟 + String total = commonsMapper.selectCountByTableName(tableName); + doList.get(0).setTotal(total); + } }else{ - doList =codeClassifyMapper.selectCodeClassifyVOByTree(treeQueryObject.getParentOid(), AuthUtil.getTenantId() - .equals( - nacosConfigCache - .getAdminUserInfo() - .getTenantId() - ) ? null:AuthUtil.getTenantId()); + // 鍙鍓嶇浼氫紶鍙傛暟杩囨潵灏变笉浼氬嚭鐜拌蛋杩欏彞鐨勬儏鍐碉紝鎵�浠ユ煡璇㈡�绘暟娌″湪杩欏効娣诲姞 + doList =codeClassifyMapper.selectCodeClassifyVOByTree( + treeQueryObject.getParentOid(), + VciBaseUtil.checkAdminTenant() ? null:AuthUtil.getTenantId() + ); } List<CodeClassifyVO> voList = codeClassifyDO2VOs(doList); TreeWrapperOptions treeWrapperOptions = new TreeWrapperOptions(PARENT_FIELD_NAME); @@ -546,6 +558,7 @@ return s.getId() + " " + s.getName() + (FrameworkDataLCStatus.DISABLED.getValue().equalsIgnoreCase(s .getLcStatus()) ? (" 銆愬仠鐢ㄣ�� ") : ""); }); + Iterator var6 = tree.listIterator(); while(var6.hasNext()){ Tree trees = (Tree) var6.next(); @@ -557,6 +570,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); } /** @@ -595,11 +630,27 @@ 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){ + List<CodeClassify> codeClassifyList=codeClassifyMapper.selectAllClassifyByOid(oid,AuthUtil.getTenantId()); + List<CodeClassifyVO> voList = codeClassifyDO2VOs(codeClassifyList); + return voList; + + } /*** * 鏍规嵁鍒嗙被鎻忚堪澶囨敞鍜屽簱鑺傜偣鏌ヨ鍒嗙被淇℃伅 * @param desc @@ -764,7 +815,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{ @@ -865,7 +917,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())) @@ -1001,8 +1053,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); } @@ -1144,7 +1198,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<>(); @@ -1215,7 +1270,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; } -- Gitblit v1.9.3