Ver código fonte

公式相关:treeCode

yangyj 1 ano atrás
pai
commit
1dbccb76b3

+ 6 - 0
blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/entity/WbsTreeContract.java

@@ -270,4 +270,10 @@ public class WbsTreeContract extends BaseEntity {
     @ApiModelProperty(value = "实际填报率")
     private Integer realFillRate;
 
+    /**
+     * 查询索引
+     */
+    @ApiModelProperty(value = "查询索引")
+    private String treeCode;
+
 }

+ 2 - 1
blade-service/blade-manager/src/main/java/com/mixsmart/utils/FormulaUtils.java

@@ -836,7 +836,8 @@ public static Map<String,List<Long>> relatedPages(List<FormData> curFormDatas ,L
   }
 
 /*    public static void main(String[] args) {
-        String s="003000004001000003";
+       // String s="003000004001000003";
+        String s="0";
         treeCodeSplit(s).forEach(System.out::println);
     }*/
 

+ 30 - 14
blade-service/blade-manager/src/main/java/org/springblade/manager/controller/FormulaController.java

@@ -509,22 +509,38 @@ public class FormulaController {
         WbsTreeContract one = this.wbsTreeContractService.getOne(Wrappers.<WbsTreeContract>lambdaQuery().eq(WbsTreeContract::getPKeyId, pkeyId));
         if (one != null) {
             List<String> list = new ArrayList<>();
-            list.add(Func.isNotBlank(one.getFullName()) ? one.getFullName() : one.getNodeName());
-            int max = 20;
-            int loop = 0;
-            String parentId = one.getParentId().toString();
-            while (loop < max && StringUtils.isNotEquals(0, parentId)) {
-                WbsTreeContract next = this.wbsTreeContractService.getOne(Wrappers.<WbsTreeContract>lambdaQuery().eq(WbsTreeContract::getContractId, one.getContractId()).eq(WbsTreeContract::getId, parentId));
-                if(next==null){
-                    return R.fail("断链");
+            if(Func.isNotBlank(one.getTreeCode())){
+                List<String> treeCodes= FormulaUtils.treeCodeSplit(one.getTreeCode());
+                treeCodes.remove(treeCodes.size()-1);
+                List<WbsTreeContract> chains = this.wbsTreeContractService.list(Wrappers.<WbsTreeContract>lambdaQuery().in(WbsTreeContract::getTreeCode,treeCodes));
+                if(chains.size()>0){
+                    chains.add(one);
+                    chains.remove(0);
+                    ContractInfo info = contractInfoService.getById(one.getContractId());
+                    list.add(info.getContractName());
+                    chains.forEach(next->{
+                        list.add(Func.isNotBlank(next.getFullName()) ? next.getFullName() : next.getNodeName());
+                    });
+                }
+            }else{
+                list.add(Func.isNotBlank(one.getFullName()) ? one.getFullName() : one.getNodeName());
+                int max = 20;
+                int loop = 0;
+                String parentId = one.getParentId().toString();
+                while (loop < max && StringUtils.isNotEquals(0, parentId)) {
+                    WbsTreeContract next = this.wbsTreeContractService.getOne(Wrappers.<WbsTreeContract>lambdaQuery().eq(WbsTreeContract::getContractId, one.getContractId()).eq(WbsTreeContract::getId, parentId));
+                    if(next==null){
+                        return R.fail("断链");
+                    }
+                    parentId = next.getParentId().toString();
+                    list.add(Func.isNotBlank(next.getFullName()) ? next.getFullName() : next.getNodeName());
+                    loop++;
                 }
-                parentId = next.getParentId().toString();
-                list.add(Func.isNotBlank(next.getFullName()) ? next.getFullName() : next.getNodeName());
-                loop++;
+                ContractInfo info = contractInfoService.getById(one.getContractId());
+                Collections.reverse(list);
+                list.set(0, info.getContractName());
             }
-            ContractInfo info = contractInfoService.getById(one.getContractId());
-            Collections.reverse(list);
-            list.set(0, info.getContractName());
+
             final String[] indent = {"-"};
             String result = list.stream()
                     .map(item -> {

+ 1 - 0
blade-service/blade-manager/src/main/java/org/springblade/manager/mapper/WbsTreeContractMapper.xml

@@ -51,6 +51,7 @@
         <result column="is_concealed_works_node" property="isConcealedWorksNode"/>
         <result column="is_ele" property="isEle"/>
         <result column="tab_group_id" property="tabGroupId"/>
+        <result column="tree_code" property="treeCode"/>
     </resultMap>