ソースを参照

公式相关:bug处理

yangyj 2 年 前
コミット
da43c93983

+ 3 - 3
blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/dto/RangeInfo.java

@@ -19,7 +19,7 @@ public class RangeInfo {
             required = true
     )
     private String design;
-    private List<Double> gDesign;
+    private List<String> gDesign;
     @ApiModelProperty(
             value = "频率",
             required = true
@@ -57,7 +57,7 @@ public class RangeInfo {
         this.design = design;
     }
 
-    public List<Double> getDesigns() {
+    public List<String> getDesigns() {
         return gDesign;
     }
 
@@ -72,7 +72,7 @@ public class RangeInfo {
 
     public void build(){
         if(Func.isNotBlank(this.design)){
-            this.gDesign= Arrays.stream(this.design.split("[^\\d.]+")).filter(BaseUtils::isNumber).map(Func::toDouble).collect(Collectors.toList());
+            this.gDesign= Arrays.stream(this.design.split("[^\\d.]+")).filter(BaseUtils::isNumber).collect(Collectors.toList());
         }
         if(Func.isNotBlank(this.size)){
             this.gSize= Arrays.stream(this.size.split("[^\\d.]+")).filter(BaseUtils::isNumber).map(Func::toInt).collect(Collectors.toList());

+ 0 - 1
blade-service/blade-manager/src/main/java/com/mixsmart/utils/CustomFunction.java

@@ -1272,7 +1272,6 @@ public class CustomFunction {
 						}
 					}
 					measureOut.addAll(_tmp);
-					measureOut.add("");
 				}
 			}
 		}

+ 4 - 0
blade-service/blade-manager/src/main/java/com/mixsmart/utils/StringUtils.java

@@ -1140,6 +1140,10 @@ public class StringUtils {
 		return "";
 	}
 
+	public static void main(String[] args) {
+		System.out.println(StringUtils.number2String("-2400.0000000000055",1));
+	}
+
 	/**
 	 * @Description byte数组转Md5字符串
 	 * @Param [bytes]

+ 14 - 9
blade-service/blade-manager/src/main/java/org/springblade/manager/controller/ExcelTabController.java

@@ -1682,18 +1682,23 @@ public class ExcelTabController extends BladeController {
         if (!info.isSuccess()) {
             return info;
         }
-        System.out.println("3=" + DateUtil.formatDateTime(DateUtil.now()));
-        //单个 pdf加载
-        for (TableInfo tableInfo : tableInfoList) {
-            //if(!tableInfo.isToBeUpdated()){
+        try {
+            System.out.println("3=" + DateUtil.formatDateTime(DateUtil.now()));
+            //单个 pdf加载
+            for (TableInfo tableInfo : tableInfoList) {
+                //if(!tableInfo.isToBeUpdated()){
                 excelTabService.getBussPdfInfo(Long.parseLong(tableInfo.getPkeyId()));
-          //  }
+                //  }
 
+            }
+            System.out.println("4=" + DateUtil.formatDateTime(DateUtil.now()));
+            // 合并pdf加载
+            excelTabService.getBussPdfs(nodeid, classify, contractId, projectId);
+            System.out.println("5=" + DateUtil.formatDateTime(DateUtil.now()));
+        }catch (Exception e){
+            e.printStackTrace();
         }
-        System.out.println("4=" + DateUtil.formatDateTime(DateUtil.now()));
-        // 合并pdf加载
-        excelTabService.getBussPdfs(nodeid, classify, contractId, projectId);
-        System.out.println("5=" + DateUtil.formatDateTime(DateUtil.now()));
+
         return R.data("操作成功");
     }
 

+ 2 - 1
blade-service/blade-manager/src/main/java/org/springblade/manager/controller/FormulaController.java

@@ -270,7 +270,7 @@ public class FormulaController {
             }
             List<Object> data =new ArrayList<>();
             info.build();
-            if(info.getDesigns().size()>0){
+            if(info.getDesigns().size()>1){
                 AtomicInteger i= new AtomicInteger();
                 List<Object> tmpList = info.getDesigns().stream()
                         .map(e-> CustomFunction.listTrim(CustomFunction.b445random(info.getSizeAt(i.get()),e,info.getDevAt(i.get()),info.getFailAt(i.getAndIncrement()),1)))
@@ -299,6 +299,7 @@ public class FormulaController {
                     }
                 }
                 if((data.size()+start)>dw.length){
+
                    // String moreData = data.stream().skip(dw.length).map(StringUtils::handleNull).collect(Collectors.joining(StringPool.SEMICOLON));
                     List<Object> moreData = data.stream().skip(result.size()).map(StringUtils::handleNull).collect(Collectors.toList());
                     // 频率添加表单

+ 35 - 4
blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/FormulaServiceImpl.java

@@ -155,7 +155,8 @@ public class FormulaServiceImpl extends BaseServiceImpl<FormulaMapper, Formula>
         List<AppWbsTreeContractVO> tableList =wbsTreeContractService.searchNodeAllTable(primaryKeyId.toString(), "1", contractId.toString(),info.getPId());
         this.constantMap.put(TABLE_LIST,tableList);
         /*通过判断元素名称来确定,加入汇总公式延后执行*/
-        this.constantMap.put("tableNames",tableList.stream().filter(e->StringUtils.isEquals(e.getIsBussShow(),1)).map(WbsTreeContract::getNodeName).collect(Collectors.toList()));
+      //  this.constantMap.put("tableNames",tableList.stream().filter(e->StringUtils.isEquals(e.getIsBussShow(),1)).map(WbsTreeContract::getNodeName).collect(Collectors.toList()));
+        this.constantMap.put("tableNames",tableList.stream().map(WbsTreeContract::getNodeName).collect(Collectors.toList()));
 
         List<String> missingList = new ArrayList<>();
         this.formDataList.forEach(fd->{
@@ -222,6 +223,18 @@ public class FormulaServiceImpl extends BaseServiceImpl<FormulaMapper, Formula>
                     }
                 });
                 if(itemsMap.size()>0){
+                    itemsMap.values().forEach(i->{
+                        FormData vf=i.getValue();
+                        if(vf!=null){
+                            if(i.getPass()==null){
+                               i.setPass(tec.getFormDataMap().values().stream().filter(v->v.getTableName().equals(vf.getTableName())&&!v.getCode().equals(vf.getCode())).filter(v->v.getEName().contains(i.getPoint())&&v.getEName().contains("率")).findAny().orElse(null));
+                            }
+                            if(i.getJudge()==null){
+                                i.setJudge(tec.getFormDataMap().values().stream().filter(v->v.getTableName().equals(vf.getTableName())&&!v.getCode().equals(vf.getCode())).filter(v->v.getEName().contains(i.getPoint())&&v.getEName().contains("判")).findAny().orElse(null));
+                            }
+                        }
+
+                    });
                     AtomicBoolean update= new AtomicBoolean(false);
                     itemsMap.values().stream().filter(Measurement::isMatching).forEach(t->{
                         ElementBlock g=null;
@@ -253,7 +266,9 @@ public class FormulaServiceImpl extends BaseServiceImpl<FormulaMapper, Formula>
                                     FormulaUtils.write(t.getJudge(),"合格",null);
                                 }
                                 itemBlockList.sort(Comparator.comparingInt(a->ids.indexOf(a.getPkeyId())));
-                                FormulaUtils.write(t.getValue(),itemBlockList.stream().map(ItemBlock::getData).flatMap(v->v.stream().flatMap(Collection::stream)).collect(Collectors.toList()),true);
+                                List<String> values=itemBlockList.stream().map(ItemBlock::getData).flatMap(v->v.stream().flatMap(Collection::stream)).map(Object::toString).collect(Collectors.toList());
+                                int scale = StringUtils.getScale(values);
+                                FormulaUtils.write(t.getValue(),values.stream().map(u->StringUtils.number2String(u,scale)).collect(Collectors.toList()), true);
 
 //                                   if(t.getValue().getEName().contains("±")){
 //                                       /*存在偏差范围则获取的是偏差值:实测-设计*/
@@ -862,6 +877,21 @@ public class FormulaServiceImpl extends BaseServiceImpl<FormulaMapper, Formula>
                     /*把附表数据刷入对应的附表元素对象*/
                     sta.flush();
                 }
+                String mainTableName = this.tec.getTableAll().stream().filter(e -> e.getNodeName().contains("检验单") || e.getNodeName().contains("评定表")).map(AppWbsTreeContractVO::getInitTableName).findFirst().orElse("");
+                if(Func.isNotBlank(mainTableName)){
+                    List<FormData> sourceFds=tec.getFormDataMap().values().stream().filter(s->!s.empty()).filter(s->StringUtils.isEquals(s.getTableName(),mainTableName)).collect(Collectors.toList());
+                    Map<String,Object> copyMap= new HashMap<>();
+                    if(sourceFds.size()>0){
+                        sourceFds.forEach(d->{
+                            copyMap.put(d.getEName().trim(),d.getValues().stream().map(ElementData::getValue).filter(StringUtils::isNotEmpty).findAny().orElse(""));
+                        });
+                    }
+                    subTableFds.stream().filter(s-> !SubTable.KEYS.contains(s.getEName().trim())).filter(s->copyMap.containsKey(s.getEName().trim())).forEach(t->{
+                         Object val = copyMap.get(t.getEName().trim());
+                         t.getValues().forEach(e->e.setValue(val));
+                         t.setUpdate(1);
+                    });
+                }
             }
 
         } catch (Exception e) {
@@ -951,8 +981,8 @@ public class FormulaServiceImpl extends BaseServiceImpl<FormulaMapper, Formula>
                      List<Object> list = c.getValues().stream().map(ElementData::getValue).filter(StringUtils::isNotEmpty).collect(Collectors.toList());
                      /*1.无任何记录,当前页无数据,则不需要处理 2.存在记录当前无数据,则要消除 3.没有记录当前有数据,则需要增加 4.有记录有当前记录,则需更新*/
                      if(Func.isNotEmpty(list)||targetItem!=null){
-                         FormData designList=tec.getFormDataMap().values().stream().filter(t->StringUtils.isEquals(FormulaUtils.parseItemName(t.getEName()),FormulaUtils.parseItemName(c.getEName()))&&t.getEName().contains("设计")&&StringUtils.isEquals(t.getTableName(),c.getTableName())).collect(Collectors.toList()).get(0);
-                         FormData pass=tec.getFormDataMap().values().stream().filter(t->StringUtils.isEquals(FormulaUtils.parseItemName(t.getEName()),FormulaUtils.parseItemName(c.getEName()))&&t.getEName().contains("合格")&&StringUtils.isEquals(t.getTableName(),c.getTableName())).collect(Collectors.toList()).get(0);
+                         FormData designList=tec.getFormDataMap().values().stream().filter(t->t.getEName().contains(FormulaUtils.parseItemName(c.getEName()))&&t.getEName().contains("设计")&&StringUtils.isEquals(t.getTableName(),c.getTableName())).collect(Collectors.toList()).get(0);
+                         FormData pass=tec.getFormDataMap().values().stream().filter(t->t.getEName().contains(FormulaUtils.parseItemName(c.getEName()))&&t.getEName().contains("合格")&&StringUtils.isEquals(t.getTableName(),c.getTableName())).collect(Collectors.toList()).get(0);
                          if(targetItem==null){
                              if(eb==null){
                                  eb=new ElementBlock();
@@ -1008,6 +1038,7 @@ public class FormulaServiceImpl extends BaseServiceImpl<FormulaMapper, Formula>
 
     public  void write(FormData fd,Object data){
         /*如果需要向额外元素或对象输出数据,在此处修改*/
+               fd.setUpdate(1);
                FormulaUtils.write(fd,data,false);
     }