From 8b43a1a91c37676e6a1e506e211f60e3e238f669 Mon Sep 17 00:00:00 2001
From: dongyukun <1208714201@qq.com>
Date: 星期四, 20 二月 2025 16:23:48 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/api/McsApiImpl.java |   31 ++++++++++++++++++++++++++-----
 1 files changed, 26 insertions(+), 5 deletions(-)

diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/api/McsApiImpl.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/api/McsApiImpl.java
index d70b62b..3ec5fef 100644
--- a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/api/McsApiImpl.java
+++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/api/McsApiImpl.java
@@ -13,6 +13,7 @@
 import com.iailab.module.model.api.mcs.McsApi;
 import com.iailab.module.model.api.mcs.dto.*;
 import com.iailab.module.model.api.mdk.dto.StScheduleRecordVO;
+import com.iailab.module.model.common.enums.CommonDict;
 import com.iailab.module.model.common.enums.DataTypeEnum;
 import com.iailab.module.model.common.enums.PreLineTypeEnum;
 import com.iailab.module.model.enums.CommonConstant;
@@ -127,6 +128,7 @@
             PredictItemTreeDTO moduleOpt = new PredictItemTreeDTO();
             moduleOpt.setId(item.getId());
             moduleOpt.setLabel(item.getModulename());
+            moduleOpt.setDisabled(true);
             List<PredictItemTreeDTO> children = new ArrayList<>();
             List<ItemVO> itemList = mmPredictItemService.getByModuleId(item.getId());
             itemList.forEach(item1 -> {
@@ -170,7 +172,7 @@
                     break;
                 }
             }
-            ItemVO predictItem = mmPredictItemService.getItemByIdFromCache(output.getItemid());
+            ItemVO predictItem = mmPredictItemService.getItemById(output.getItemid());
             if (predictItem.getLastTime() != null) {
                 predictTime = predictItem.getLastTime();
             } else {
@@ -210,7 +212,7 @@
             viewDto.setRealData(getHisData(output.getPointid(), startTime, endTime));
             viewDto.setPreDataN(mmItemResultService.getData(output.getId(), startTime, endTime, DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND));
             viewDto.setPreDataL(mmItemResultLastPointService.getData(output.getId(), startTime, endTime, DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND));
-
+            viewDto.setCurData(mmItemResultJsonService.getData(output.getId(), predictTime, DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND, 3));
             List<Double> values = new ArrayList<>();
             if (!CollectionUtils.isEmpty(viewDto.getRealData())) {
                 List<Double> hisValues = new ArrayList<>();
@@ -257,6 +259,14 @@
                 viewDto.setMaxValue(new BigDecimal(values.stream().mapToDouble(Double::doubleValue).max().getAsDouble()).setScale(2, BigDecimal.ROUND_HALF_UP));
                 viewDto.setMinValue(new BigDecimal(values.stream().mapToDouble(Double::doubleValue).min().getAsDouble()).setScale(2, BigDecimal.ROUND_HALF_UP));
             }
+            //处理预测累计
+            if (output.getIscumulant() == 1) {
+                if (StringUtils.isNotBlank(output.getCumulpoint())) {
+                    viewDto.setCumulantRealData(getHisData(output.getCumulpoint(), startTime, endTime));
+                }
+                viewDto.setCumulantPreData(mmItemResultService.getData(output.getId() + CommonDict.CUMULANT_SUFFIX, startTime, endTime, DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND));
+            }
+
             dataViewList.add(viewDto);
         }
         result.setStartTime(startTime);
@@ -314,6 +324,14 @@
                 viewDto.setRealData(getHisData(out.getPointid(), startTime, endTime));
             }
             viewDto.setPreDataN(mmItemResultService.getData(out.getId(), startTime, endTime, DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND));
+            //处理预测累计
+            if (out.getIscumulant() == 1) {
+                if (StringUtils.isNotBlank(out.getCumulpoint())) {
+                    viewDto.setCumulantRealData(getHisData(out.getCumulpoint(), startTime, endTime));
+                }
+                viewDto.setCumulantPreData(mmItemResultService.getData(out.getId() + CommonDict.CUMULANT_SUFFIX, startTime, endTime, DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND));
+            }
+
             viewMap.put(out.getResultName(), viewDto);
         }
         result.setStartTime(startTime);
@@ -376,7 +394,7 @@
         } else {
             dataView.setRealData(new ArrayList<>());
         }
-        dataView.setCurData(mmItemResultJsonService.getData(outPut.getId(), predictTime, timeFormat));
+        dataView.setCurData(mmItemResultJsonService.getData(outPut.getId(), predictTime, timeFormat, 3));
         dataView.setLineType(lineType.getCode());
         switch (lineType) {
             case TN:
@@ -400,8 +418,8 @@
             }).collect(Collectors.toList());
             dataView.setPreMax(new BigDecimal(curList.stream().mapToDouble(Double::doubleValue).max().getAsDouble()).setScale(2, BigDecimal.ROUND_HALF_UP));
             dataView.setPreMin(new BigDecimal(curList.stream().mapToDouble(Double::doubleValue).min().getAsDouble()).setScale(2, BigDecimal.ROUND_HALF_UP));
-            dataView.setPreLast(new BigDecimal(curList.get(curList.size() - 1)));
-            dataView.setPreCumulant(new BigDecimal(curList.stream().mapToDouble(Double::doubleValue).sum()));
+            dataView.setPreLast(new BigDecimal(curList.get(curList.size() - 1)).setScale(2, BigDecimal.ROUND_HALF_UP));
+            dataView.setPreCumulant(new BigDecimal(curList.stream().mapToDouble(Double::doubleValue).sum()).setScale(2, BigDecimal.ROUND_HALF_UP));
         }
 
         String alarmObj = chartParams.get(CommonConstant.ALARM_OBJ);
@@ -519,6 +537,9 @@
      */
     private List<Object[]> getHisData(String pointId, Date startTime, Date endTime) {
         List<Object[]> result = new ArrayList<>();
+        if (StringUtils.isBlank(pointId)) {
+            return result;
+        }
         ApiPointDTO pointDTO = dataPointApi.getInfoById(pointId);
         ApiPointValueQueryDTO queryPointDto = new ApiPointValueQueryDTO();
         queryPointDto.setPointNo(pointDTO.getPointNo());

--
Gitblit v1.9.3