ludc
2023-10-24 20ae109f6e2faabc057e70b0dbae13570c1020cd
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeClassifyServiceImpl.java
@@ -85,9 +85,6 @@
   @Resource
   private IBtmTypeClient btmTypeClient;
   @Resource
   private NacosConfigCache nacosConfigCache;
   /**
    * 日志
    */
@@ -129,7 +126,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 +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);
@@ -376,11 +374,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());
@@ -526,14 +525,14 @@
         doList = codeClassifyMapper
            .selectCodeClassifyDOByTree(treeQueryObject.getConditionMap().get("id"),treeQueryObject.getConditionMap().get("lcStatus"),treeQueryObject.getParentOid(), AuthUtil.getTenantId()
               .equals(
                  nacosConfigCache
                  NacosConfigCache
                     .getAdminUserInfo()
                     .getTenantId()
               ) ? null:AuthUtil.getTenantId());
      }else{
         doList =codeClassifyMapper.selectCodeClassifyVOByTree(treeQueryObject.getParentOid(), AuthUtil.getTenantId()
            .equals(
               nacosConfigCache
               NacosConfigCache
                  .getAdminUserInfo()
                  .getTenantId()
            ) ? null:AuthUtil.getTenantId());
@@ -595,11 +594,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 +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());
            // 这儿用stream有点慢
            classifyDOS = classifyDOS.parallelStream().filter(s->FRAMEWORK_DATA_ENABLED.equalsIgnoreCase(s.getLcStatus())).collect(Collectors.toList());
         }
         return codeClassifyDO2VOs(classifyDOS);
      }else{
@@ -865,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()))
@@ -1001,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);
            }
@@ -1144,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());
         // 用key取map值并且不区分大小写
         oidLevelMap.put(cbo.getOrDefault("OID",cbo.get("oid")).toString(),cbo.get("LEVEL").toString());
      });
      if(CollectionUtils.isEmpty(oidLevelMap)){
         return new ArrayList<>();