Browse Source

公式相关:bug修复

yangyj 2 năm trước cách đây
mục cha
commit
b7a1ee7f8a

+ 1 - 1
blade-service/blade-manager/src/main/java/org/springblade/manager/formula/impl/SubTable.java

@@ -82,10 +82,10 @@ public class SubTable {
                FormulaUtils.write(itemName,itemNameList,true);
                if(design!=null&&design.getCoordsList().size()>0) {
                    FormulaUtils.write(design, designList, true);
+                   design.setUpdate(1);
                }
                FormulaUtils.write(data,dataList,true);
                itemName.setUpdate(1);
-               design.setUpdate(1);
                data.setUpdate(1);
            }
    }

+ 49 - 45
blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/FormulaServiceImpl.java

@@ -132,7 +132,7 @@ public class FormulaServiceImpl extends BaseServiceImpl<FormulaMapper, Formula>
             nodes=wpService.chain(contractId,one.getRelateId(),primaryKeyId,null);
         }
         if(Func.isEmpty(nodes)){
-            this.tec.getLog().append("WBS信息缺失;");
+            this.tec.getLog().append("【WBS信息缺失】");
         }
         this.constantMap.put(CHAIN,nodes.stream().map(WbsTreeContract::getNodeName).collect(Collectors.toList()));
         /*节点参数*/
@@ -197,7 +197,7 @@ public class FormulaServiceImpl extends BaseServiceImpl<FormulaMapper, Formula>
 
         missingFill(missingList);
         if(Func.isNotEmpty(missingList)){
-            this.tec.getLog().append("无法识别的依赖:").append(missingList.stream().map(e->e.replaceAll("'","")).collect(Collectors.joining(",")));
+            this.tec.getLog().append("【没有能加载的跨节点数据:").append(missingList.stream().map(e->e.replaceAll("'","")).collect(Collectors.joining(","))).append("】");
         }
         if(Func.isNotEmpty(cki)){
            /*检验内容*/
@@ -239,7 +239,7 @@ public class FormulaServiceImpl extends BaseServiceImpl<FormulaMapper, Formula>
     public void missingFill(List<String> missingList){
         /*数据池里面没有任何元素匹配和当前依赖匹配*/
         if(Func.isNotEmpty(missingList)){
-            StaticLog.info("缺失元素{}", String.join(";", missingList));
+            StaticLog.info("需要挂载的元素{}", String.join(";", missingList));
             Map<String, Object> elementInfoMap=this.getElementInfoByCodes(String.join(",",missingList));
             /*1从当前节点其它表格中查找匹配的元素*/
             List<String> removeList=new ArrayList<>();
@@ -306,12 +306,9 @@ public class FormulaServiceImpl extends BaseServiceImpl<FormulaMapper, Formula>
             this.tableDataMaps.put(tn,map);
             String values= StringUtils.handleNull(map.get(key));
             String r= tn+StringPool.COLON+key;
-            if(StringUtils.isNotEmpty(values)){
-                FormData tmp=createFormDataFast(name,r,values);
-                if(tmp!=null){
-                    //removeList.add(r);
-                    this.formDataMap.put(r,tmp);
-                }
+            FormData tmp=createFormDataFast(name,r,values);
+            if(tmp!=null){
+                this.formDataMap.put(r,tmp);
             }
         }
     }
@@ -319,40 +316,44 @@ public class FormulaServiceImpl extends BaseServiceImpl<FormulaMapper, Formula>
         if(StringUtils.isNotEmpty(code,name)){
             String[] arr=code.split(":");
             String coords = tec.getCoordinateMap().get(arr[0]).get(arr[1]);
-            List<Coords> coordsList = Stream.of(coords).flatMap(s -> Arrays.stream(s.split(";"))).map(s -> {
-                String[] xy = s.split("_");
-                return new Coords(xy[1], xy[0]);
-            }).collect(Collectors.toList());
-            List<ElementData> eds = new ArrayList<>();
-            if(StringUtils.isNotEmpty(values)){
-                String[] pages=values.split(";;");
-                for(int index=0;index<pages.length;index++){
-                    String pg=pages[index];
-                    if(Func.isNotBlank(pg)){
-                        String[] val = pg.split("☆");
-                        Map<String,Object> tmpMap = new LinkedHashMap<>();
-                        for(String s:val){
-                            String[] t = s.split("_\\^_");
-                            String[] c =t[1].split("_");
-                            tmpMap.put(StringUtils.join(code,0,index,Func.toInt(c[1]),Func.toInt(c[0]),StringPool.AT),t[0]);
-                        }
-                        for(Coords c:coordsList){
-                            Object data = null;
-                            String key =StringUtils.join(code,0,index,c.getX(),c.getY(),StringPool.AT);
-                            if(tmpMap.containsKey(key)){
-                                data =  tmpMap.get(key);
+            if(StringUtils.isNotEmpty(coords)) {
+                /*定位信息存在才合法*/
+                List<Coords> coordsList = Stream.of(coords).flatMap(s -> Arrays.stream(s.split(";"))).map(s -> {
+                    String[] xy = s.split("_");
+                    return new Coords(xy[1], xy[0]);
+                }).collect(Collectors.toList());
+                List<ElementData> eds = new ArrayList<>();
+                if (StringUtils.isNotEmpty(values)) {
+                    String[] pages = values.split(";;");
+                    for (int index = 0; index < pages.length; index++) {
+                        String pg = pages[index];
+                        if (Func.isNotBlank(pg)) {
+                            String[] val = pg.split("☆");
+                            Map<String, Object> tmpMap = new LinkedHashMap<>();
+                            for (String s : val) {
+                                String[] t = s.split("_\\^_");
+                                String[] c = t[1].split("_");
+                                tmpMap.put(StringUtils.join(code, 0, index, Func.toInt(c[1]), Func.toInt(c[0]), StringPool.AT), t[0]);
+                            }
+                            for (Coords c : coordsList) {
+                                Object data = null;
+                                String key = StringUtils.join(code, 0, index, c.getX(), c.getY(), StringPool.AT);
+                                if (tmpMap.containsKey(key)) {
+                                    data = tmpMap.get(key);
+                                }
+                                eds.add(new ElementData(index, 0, data, c.getX(), c.getY()));
                             }
-                            eds.add(new ElementData(index,0,data,c.getX(),c.getY()));
                         }
                     }
-                }
 
-            }else{
-                eds =coordsList.stream().map(c->new ElementData(0,0,null,c.getX(),c.getY())).collect(Collectors.toList());
+                } else {
+                    eds = coordsList.stream().map(c -> new ElementData(0, 0, null, c.getX(), c.getY())).collect(Collectors.toList());
+                }
+                FormData one = new FormData(code, eds, null, coords);
+                one.setEName(name);
+                return one;
             }
-            FormData one=   new FormData(code,eds, null,coords);
-            one.setEName(name);
-            return one;
+            this.tec.getLog().append("【").append(name).append(code).append("定位信息不存在】");
         }
         return null;
     }
@@ -389,7 +390,7 @@ public class FormulaServiceImpl extends BaseServiceImpl<FormulaMapper, Formula>
                 logMap.put(p.getK(),p.getName());
             }
         }
-        this.tec.getLog().append("本节点参数情况:").append(result.entrySet().stream().map(p->logMap.get(p.getKey())+":"+p.getValue()).collect(Collectors.joining(";")));
+        this.tec.getLog().append("本节点参数情况:").append(result.entrySet().stream().map(p->logMap.get(p.getKey())+":"+p.getValue()).collect(Collectors.joining(";"))).append("】");
         /*元素动态绑定*/
         this.formDataMap.values().stream().filter(e->e.getIsCurrentNodeElement()&&e.getFormula()==null).forEach(e->{
             /*执行列表里不存在,且元素的名称和节点参数名称匹配成功*/
@@ -481,7 +482,7 @@ public class FormulaServiceImpl extends BaseServiceImpl<FormulaMapper, Formula>
                     formulaStrategyFactory.get(fd).forEach(e -> e.execute(tec));
                 }
             }catch (Exception e){
-                tec.getLog().append("特殊公式:").append(fd.getEName()).append(fd.getFormula().getNumber()).append("执行异常");
+                tec.getLog().append("特殊公式:").append(fd.getEName()).append(fd.getFormula().getNumber()).append("执行异常");
                 e.printStackTrace();
             }
         }
@@ -510,7 +511,7 @@ public class FormulaServiceImpl extends BaseServiceImpl<FormulaMapper, Formula>
                                 }
                             });
                             if(ele.size()<relyList.size()){
-                                this.tec.getLog().append(fd.getEName()).append(fd.getFormula().getFormula().replaceAll("'", "")).append("不满足执行依赖");
+                                this.tec.getLog().append("【").append(fd.getEName()).append(fd.getFormula().getFormula().replaceAll("'", "")).append("不满足执行依赖");
                             }
                             if(fd.getCoordsList().size()>1&&f.split("[/+\\-*]").length>1){
                                 LinkedHashMap<String,FormData> fdMap =new LinkedHashMap<>();
@@ -562,7 +563,7 @@ public class FormulaServiceImpl extends BaseServiceImpl<FormulaMapper, Formula>
                             write(fd,data);
                         }
                     }catch (Exception e){
-                        tec.getLog().append(fd.getEName()).append("计算错误; ");
+                        tec.getLog().append("【").append(fd.getEName()).append("计算错误】 ");
                     }
 
                 }
@@ -597,11 +598,14 @@ public class FormulaServiceImpl extends BaseServiceImpl<FormulaMapper, Formula>
                         } else {
                             this.wbsTreePrivateService.addWbsTreeContractInfo(this.tec.getCurrentNode().getPkId().toString(), sub.getPKeyId().toString(), tec.getContractId());
                             AppWbsTreeContractVO one = this.tec.getTableAll().get(0);
-                            WbsTreeContract wtc = this.wbsTreeContractService.getOne(Wrappers.<WbsTreeContract>lambdaQuery().eq(WbsTreeContract::getParentId, one.getParentId()).eq(WbsTreeContract::getWbsId, one.getWbsId()).and(e->e.eq(WbsTreeContract::getNodeName, pd?"质量检验评定表(附表)":"质量检验表(附表)").or().eq(WbsTreeContract::getFullName, pd?"质量检验评定表(附表)":"质量检验表(附表)")));
+                            WbsTreeContract wtc = this.wbsTreeContractService.getOne(Wrappers.<WbsTreeContract>lambdaQuery().eq(WbsTreeContract::getParentId, one.getParentId()).eq(WbsTreeContract::getContractId,one.getContractId()).eq(WbsTreeContract::getWbsId, one.getWbsId()).and(e->e.eq(WbsTreeContract::getNodeName, pd?"质量检验评定表(附表)":"质量检验表(附表)").or().eq(WbsTreeContract::getFullName, pd?"质量检验评定表(附表)":"质量检验表(附表)")));
                             if (wtc != null) {
                                 /*附表的顺序在检验单或者评定表之后*/
                                 int sort=this.tec.getTableAll().stream().filter(e -> e.getNodeName().contains("检验单") || e.getNodeName().contains("评定表")).map(AppWbsTreeContractVO::getSort).max(Integer::compareTo).orElse(30);
-                                this.wbsTreeContractService.update(Wrappers.<WbsTreeContract>lambdaUpdate().set(WbsTreeContract::getSort,++sort).eq(WbsTreeContract::getPKeyId,wtc.getPKeyId()));
+                                this.wbsTreeContractService.update(Wrappers.<WbsTreeContract>lambdaUpdate()
+                                        .set(WbsTreeContract::getSort,sort).set(WbsTreeContract::getContractType,-1).set(WbsTreeContract::getAncestors,one.getAncestors())
+                                        .set(WbsTreeContract::getIsCopeTab,2)
+                                        .eq(WbsTreeContract::getPKeyId,wtc.getPKeyId()));
                                 /*只需要挂载一张*/
                                 AppWbsTreeContractVO obj = BeanUtil.copy(wtc, AppWbsTreeContractVO.class);
                                 this.tec.getTableAll().add(obj);
@@ -685,7 +689,7 @@ public class FormulaServiceImpl extends BaseServiceImpl<FormulaMapper, Formula>
                     }
                 }
             } catch (Exception e) {
-                this.tec.getLog().append("|=|").append("附表异常").append("|=|");
+                this.tec.getLog().append("【").append("附表异常").append("】");
                 e.printStackTrace();
             }
         }