Kaynağa Gözat

Merge remote-tracking branch 'origin/master'

liuyc 2 yıl önce
ebeveyn
işleme
faefdf4fcc

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

@@ -471,6 +471,7 @@ public class FormulaUtils {
             ,"实 测 项 目_2△_草坪、草本地被覆盖率(%)_取弃土场绿 地_≥90_实测值或实测偏差值"
             ,"轴线偏位(mm)_全站仪:20m检查3点_实测值或实测偏差值"
             ,"1△_基材混合物喷射厚度(mm)_设计厚度±10_实测值或实测偏差值"
+            ,"1△_混凝土强度 (MPA)_在合格标准内_按附录D检查_实测值或实测偏差值"
     );
 
     public static void maino(String[] args) {

+ 6 - 5
blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/FormulaServiceImpl.java

@@ -856,7 +856,7 @@ public class FormulaServiceImpl extends BaseServiceImpl<FormulaMapper, Formula>
                     String itemName=FormulaUtils.parseItemName(f.getEName());
                     String key=itemName.trim();
                     /*同项目*/
-                    Optional<FormData> designFdOp=  tec.formDataMap.values().stream().filter(o->o.getTableName().equals(f.getTableName())&&StringUtils.isEquals(itemName,FormulaUtils.parseItemName(o.getEName()))&&o.getEName().contains("设计值")&&!o.getEName().contains("判定")).findAny();
+                    Optional<FormData> designFdOp=  tec.formDataMap.values().stream().filter(o->o.getTableName().equals(f.getTableName())&&!o.equals(f)&&f.getMaxRow().equals(o.getMaxRow())&&o.getEName().contains("设计")).findAny();
                     if(designFdOp.isPresent()){
                         key+="@"+designFdOp.get().getValues().stream().map(ElementData::getValue).filter(StringUtils::isNotEmpty).findAny().orElse("");
                     }
@@ -1023,14 +1023,15 @@ public class FormulaServiceImpl extends BaseServiceImpl<FormulaMapper, Formula>
      * @Date 2023.04.25 14:41
      **/
     public FormData itemMatch(FormData measured,@NotNull Integer type){
-        Predicate<FormData> predicate =(FormData t)-> StringUtils.isEquals(t.getTableName(),measured.getTableName());
+        Predicate<FormData> predicate =(FormData t)-> StringUtils.isEquals(t.getTableName(),measured.getTableName())&&!t.equals(measured)&&t.getMaxRow().equals(measured.getMaxRow());
         if(type ==0){
             predicate=  predicate.and((FormData t)->t.getEName().contains("设计"));
         }else {
             predicate=   predicate.and((FormData t)->t.getEName().contains("合格"));
         }
-        predicate= predicate.and((FormData t)->FormulaUtils.similarity(t.getEName(),measured.getEName())>0.75);
-        return tec.getFormDataMap().values().stream().filter(predicate).max(Comparator.comparingDouble((FormData t)->FormulaUtils.similarity(t.getEName(),measured.getEName()))).orElse(null);
+//        predicate= predicate.and((FormData t)->FormulaUtils.similarity(t.getEName(),measured.getEName())>0.75);
+//        return tec.getFormDataMap().values().stream().filter(predicate).max(Comparator.comparingDouble((FormData t)->FormulaUtils.similarity(t.getEName(),measured.getEName()))).orElse(null);
+        return tec.getFormDataMap().values().stream().filter(predicate).findAny().orElse(null);
     }
 
     public  void write(FormData fd,Object data){
@@ -1119,7 +1120,7 @@ public  List<ElementData> setScale(Integer scale,List<ElementData> data){
         scale=StringUtils.getScale(data.stream().map(ElementData::getValue).filter(StringUtils::isDouble).collect(Collectors.toList()));
     }
     Integer finalScale = scale;
-    return data.stream().peek(e->{if(StringUtils.isDouble(e.getValue())){e.setValue(StringUtils.number2String(e.getValue(),finalScale));}}).collect(Collectors.toList());
+    return data.stream().peek(e->{if(StringUtils.isDouble(e.getValue())){e.setValue(StringUtils.number2StringZero(e.getValue(),finalScale));}}).collect(Collectors.toList());
 }
 
     @Override