From d6520e90ce34127c0a994e22e3fb54767aebecc0 Mon Sep 17 00:00:00 2001
From: Crunchy <3114200645@qq.com>
Date: 星期六, 03 八月 2024 15:06:38 +0800
Subject: [PATCH] 数采bug修复

---
 cnas-server/src/main/java/com/yuanchu/mom/service/impl/DeviceServiceImpl.java |   28 +++++++++++++++++++---------
 1 files changed, 19 insertions(+), 9 deletions(-)

diff --git a/cnas-server/src/main/java/com/yuanchu/mom/service/impl/DeviceServiceImpl.java b/cnas-server/src/main/java/com/yuanchu/mom/service/impl/DeviceServiceImpl.java
index c78ea55..8be96b1 100644
--- a/cnas-server/src/main/java/com/yuanchu/mom/service/impl/DeviceServiceImpl.java
+++ b/cnas-server/src/main/java/com/yuanchu/mom/service/impl/DeviceServiceImpl.java
@@ -180,7 +180,14 @@
         Map<String, Object> map = DataAcquisition.dataAcquisitionEntrance(list1, device.get(0), entrustCode, sampleCode, ip);
         // 4銆侀�犲惊鐜鏁�
         if (ObjectUtils.isNotEmpty(map)) {
-            return Result.success(DataAcquisition.createFrequency(entrustCode, sampleCode, map));
+            Object result;
+            Map<String, Object> frequency = DataAcquisition.createFrequency(entrustCode, sampleCode, map);
+            if (ObjectUtils.isEmpty(device.get(0).getEntrustCode()) && ObjectUtils.isEmpty(device.get(0).getSampleCode())) {
+                result = formulaCalculation(frequency, true);
+            } else {
+                result = formulaCalculation(frequency, false);
+            }
+            return Result.success(result);
         } else {
             return Result.success(null);
         }
@@ -990,7 +997,7 @@
     }
 
     @Override
-    public Object formulaCalculation(Map<String, Object> map) {
+    public Object formulaCalculation(Map<String, Object> map, Boolean isAdopt) {
         map.forEach((key, value) -> {
             Map<String, Object> jsonObject = JSONObject.parseObject(JSON.toJSONString(map.get(key)), Map.class);
             for (Map.Entry<String, Object> entry : jsonObject.entrySet()) {
@@ -1001,8 +1008,6 @@
                     if (formulaData.containsKey("result") && formulaData.containsKey("isCalculation") &&
                     formulaData.containsKey("formula")) {
                         String formula = formulaData.get("formula").toString();
-                        Boolean isCalculation = Boolean.valueOf(formulaData.get("isCalculation").toString());
-                        if (isCalculation) {
                             List<Object> resultList = new ArrayList<>();
                             try {
                                 resultList = JSONObject.parseArray(JSON.toJSONString(formulaData.get("result")), Object.class);
@@ -1011,14 +1016,19 @@
                                 resultList.add(result);
                             }
                             ArrayList<Object> list = new ArrayList<>();
-                            resultList.forEach(i -> {
-                                List<Object> strings = Arrays.asList(i.toString().split(","));
-                                String result = calculationFormula(strings, formula);
+                            if (isAdopt) {
+                                String result = calculationFormula(resultList, formula);
                                 list.add(result);
-                            });
+                            } else {
+                                resultList.forEach(i -> {
+                                    List<Object> strings = Arrays.asList(i.toString().split(","));
+                                    String result = calculationFormula(strings, formula);
+                                    list.add(result);
+                                });
+                            }
+
                             formulaData.put("isCalculation", false);
                             formulaData.put("result", list);
-                        }
                     }
                     jsonObject.put(sonKey, formulaData);
                 }

--
Gitblit v1.9.3