Просмотр исходного кода

处理连续检测的 合格率偏差; 湿度处理

王苗苗 5 месяцев назад
Родитель
Сommit
9edfd1d75a

+ 4 - 1
ruoyi-system/src/main/java/com/ruoyi/business/res/ContinuousAssayResultRes.java

@@ -1,6 +1,7 @@
 package com.ruoyi.business.res;
 
 
+import com.fasterxml.jackson.annotation.JsonIgnore;
 import com.ruoyi.common.NumberUtils;
 import lombok.AllArgsConstructor;
 import lombok.Builder;
@@ -23,7 +24,9 @@ public class ContinuousAssayResultRes {
     private Double maxVal;//最大值
     private String passedRates;//合格率(%)
     private String bx = "90.00%";//标线(%)
-    private String ratesDeviation = "10.00%";//合格率偏差
+    @JsonIgnore
+    private Double bxDouble = 0.9D;//标线(小数值)
+    private String ratesDeviation;//合格率偏差 = 合格率 - 标线(小数值)
     private Double unitPrice;//检测单价 (目前没有,无法处理)
     private Double totalPrice;//检测合计(目前没有单价,无法处理)
 

+ 9 - 2
ruoyi-system/src/main/java/com/ruoyi/business/service/impl/BusinessServiceImpl.java

@@ -153,7 +153,9 @@ public class BusinessServiceImpl implements IBusinessService {
                     continuousAssayResultRes.setAssayCounts(assayCounts);
                     assayBasicList.stream().map(ContinuousAssayBasic::getResultConcentration).min(Double::compareTo).ifPresent(continuousAssayResultRes::setMinVal);
                     assayBasicList.stream().map(ContinuousAssayBasic::getResultConcentration).max(Double::compareTo).ifPresent(continuousAssayResultRes::setMaxVal);
-                    continuousAssayResultRes.setPassedRates(NumberUtils.getDoublePercentAndNLength(INT_4, ((double) passedCounts/(double)assayCounts), INT_2));
+                    double passedRates = (double) passedCounts / (double) assayCounts;
+                    continuousAssayResultRes.setPassedRates(NumberUtils.getDoublePercentAndNLength(INT_4, passedRates, INT_2));
+                    continuousAssayResultRes.setRatesDeviation(NumberUtils.getDoublePercentAndNLength(INT_4, passedRates - continuousAssayResultRes.getBxDouble(), INT_2));
                     innerList.add(continuousAssayResultRes);
                     innerMap.put(assayName, innerList);
                 });
@@ -466,7 +468,12 @@ public class BusinessServiceImpl implements IBusinessService {
                 deviceRes.setBeginAssayTime(zAssayResult.getUpdateTime());
             }
             deviceRes.setCurrentTemperature(zAssayResult.getResultWendu());
-            deviceRes.setCurrentHumidity(NumberUtils.getDoublePercentAndNLength(INT_4, zAssayResult.getResultShidu(), INT_2));
+//            deviceRes.setCurrentHumidity(NumberUtils.getDoublePercentAndNLength(INT_4, zAssayResult.getResultShidu(), INT_2));
+            //2024年10月14日16:55:06 原本就已经乘以100了,如果有值直接拼接%即可
+            Double resultShidu = zAssayResult.getResultShidu();
+            if(!Objects.isNull(resultShidu)){
+                deviceRes.setCurrentHumidity(NumberUtils.getDoubleNLength(INT_2, resultShidu) + "%");
+            }
 
             //获取最新的一条化验记录 处理化验进度的展示: 因为历史数据有总步进为0的,这种的默认进度就是0处理  只有化验中的才显示进度
             String assayNo = zAssayResult.getAssayNo();