Sfoglia il codice sorgente

公式相关:指向id

yangyj 2 anni fa
parent
commit
55619f1f86

+ 6 - 0
blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/vo/CurrentNode.java

@@ -9,9 +9,15 @@ import lombok.Data;
  */
 @Data
 public class CurrentNode {
+    /**流水号*/
     private Long pkId;
+    /**项目集id*/
     private Long privateId;
+    /**wbs_tree的流水号*/
     private Long id;
+    /**父节点的树id,注意非流水号*/
     private Long parentId;
+    /**用来构建树的id*/
     private Long relateId;
+    private Long wbsId;
 }

+ 1 - 0
blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/ExcelTabServiceImpl.java

@@ -384,6 +384,7 @@ public class ExcelTabServiceImpl extends BaseServiceImpl<ExcelTabMapper, ExcelTa
             CurrentNode currentNode = new CurrentNode();
             currentNode.setPkId(wtc.getPKeyId());
             currentNode.setParentId(wtc.getParentId());
+            currentNode.setWbsId(Long.parseLong(wtc.getWbsId()));
             List<Long> ids = this.jdbcTemplate.queryForList("select id from m_wbs_tree where id in(" + wtc.getId() + "," + wtc.getOldId() + ")", Long.class);
             if (Func.isNotEmpty(ids)) {
                 Long id = ids.get(0);

+ 19 - 17
blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/FormulaServiceImpl.java

@@ -228,7 +228,7 @@ public class FormulaServiceImpl extends BaseServiceImpl<FormulaMapper, Formula>
             this.constantMap.put(TEXT_INFO_MAP,tmap);
         }
         /*公式参数*/
-        FormulaOption formulaOption = this.formulaOptionService.getOne(Wrappers.<FormulaOption>lambdaQuery().eq(FormulaOption::getParentId,one.getId()).eq(FormulaOption::getContractId,contractId));
+        FormulaOption formulaOption = this.formulaOptionService.getOne(Wrappers.<FormulaOption>lambdaQuery().eq(FormulaOption::getParentId,one.getRelateId()).eq(FormulaOption::getContractId,contractId));
         if(formulaOption!=null){
            /*数据格式 {tablename:{keyxxx:{option:[1|0]}}}*/
            this.constantMap.put(FMOT,JSON.parseObject(formulaOption.getVal(),LinkedHashMap.class));
@@ -243,24 +243,26 @@ public class FormulaServiceImpl extends BaseServiceImpl<FormulaMapper, Formula>
             Map<String, Object> elementInfoMap=this.getElementInfoByCodes(String.join(",",missingList));
             /*1从当前节点其它表格中查找匹配的元素*/
             List<String> removeList=new ArrayList<>();
-            for(String r:missingList){
-                String tn = r.substring(0,r.indexOf(StringPool.COLON));
-                String key =r.substring(r.indexOf(StringPool.COLON)+1);
-                List<AppWbsTreeContractVO> nodeList = this.tec.getTableAll().stream().filter(e->e.getInitTableName().equals(tn)).collect(Collectors.toList());
-                if(Func.isNotEmpty(nodeList)){
-                    removeList.add(r);
-                    Map<String,Object> elementInfo= (Map<String, Object>) elementInfoMap.get(r);
-                    String tableName = nodeList.get(0).getInitTableName();
-                    if(!this.tec.getCoordinateMap().containsKey(tableName)){
-                        this.tec.getCoordinateMap().put(tableName, CustomFunction.getElementCell(nodeList.get(0).getHtmlUrl()));
+            if(false) {//全加载后,关闭当前节的搜索,假如后期改成依赖加载可以再次利用
+                for (String r : missingList) {
+                    String tn = r.substring(0, r.indexOf(StringPool.COLON));
+                    String key = r.substring(r.indexOf(StringPool.COLON) + 1);
+                    List<AppWbsTreeContractVO> nodeList = this.tec.getTableAll().stream().filter(e -> e.getInitTableName().equals(tn)).collect(Collectors.toList());
+                    if (Func.isNotEmpty(nodeList)) {
+                        removeList.add(r);
+                        Map<String, Object> elementInfo = (Map<String, Object>) elementInfoMap.get(r);
+                        String tableName = nodeList.get(0).getInitTableName();
+                        if (!this.tec.getCoordinateMap().containsKey(tableName)) {
+                            this.tec.getCoordinateMap().put(tableName, CustomFunction.getElementCell(nodeList.get(0).getHtmlUrl()));
+                        }
+                        List<Map<String, Object>> tableDatas = this.jdbcTemplate.queryForList("select * from " + tableName + " where p_key_id in(" + nodeList.stream().map(AppWbsTreeContractVO::getPKeyId).map(StringUtils::handleNull).collect(Collectors.joining(",")) + ")");
+                        fill(tableDatas, removeList, tn, key, StringUtils.handleNull(elementInfo.get("ename")));
                     }
-                    List<Map<String,Object>> tableDatas= this.jdbcTemplate.queryForList("select * from "+tableName+" where p_key_id in("+nodeList.stream().map(AppWbsTreeContractVO::getPKeyId).map(StringUtils::handleNull).collect(Collectors.joining(","))+")");
-                    fill(tableDatas,removeList,tn,key,StringUtils.handleNull(elementInfo.get("ename")));
                 }
-            }
-            if(Func.isNotEmpty(removeList)){
-                /*移除已经找到的元素数据*/
-                missingList.removeIf(removeList::contains);
+                if (Func.isNotEmpty(removeList)) {
+                    /*移除已经找到的元素数据*/
+                    missingList.removeIf(removeList::contains);
+                }
             }
             if(Func.isNotEmpty(missingList)){
                 /*2从当前节点的兄弟节点中查找匹配的元素*/