From b297930931ad6a64dea78258524f7fa368c30ff0 Mon Sep 17 00:00:00 2001
From: Jay <csj123456>
Date: 星期四, 10 四月 2025 16:36:50 +0800
Subject: [PATCH] 新增预测项精度参数

---
 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/api/McsApiImpl.java |   23 +++++++++++++++++++----
 1 files changed, 19 insertions(+), 4 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 0955389..3dd3bf1 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
@@ -119,7 +119,7 @@
     private StScheduleModelSettingService stScheduleModelSettingService;
 
     @Autowired
-    private StAdjustConfigService stAdjustConfigService;
+    private MmPredictAutoAdjustConfigService autoAdjustService;
     private int HOUR_MINS = 60;
 
     @Override
@@ -219,6 +219,7 @@
             viewDto.setRealData(getHisData(output.getPointid(), startTime, endTime, reqVO.getPrec()));
             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.setPreDataLOriginal(mmItemResultLastPointService.getData(output.getId(), startTime, endTime, DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND,DataTypeEnum.FLOAT_LAST_BAK));
             viewDto.setCurData(mmItemResultJsonService.getData(output.getId(), predictTime, DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND));
             // 模拟调整曲线
             viewDto.setAdjData(stAdjustResultService.getData(output.getId(), predictTime, DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND));
@@ -385,6 +386,7 @@
         BigDecimal limitL = chartParams.get(CommonConstant.LIMIT_L) == null ? null : new BigDecimal(chartParams.get(CommonConstant.LIMIT_L));
         int lengthLeft = chartParams.get(CommonConstant.LENGTH_LEFT) == null ? predictItem.getPredictLength() : new BigDecimal(chartParams.get(CommonConstant.LENGTH_LEFT)).intValue();
         int lengthRight = chartParams.get(CommonConstant.LENGTH_RIGHT) == null ? predictItem.getPredictLength() : new BigDecimal(chartParams.get(CommonConstant.LENGTH_RIGHT)).intValue();
+        int decimalPlaces = chartParams.get(CommonConstant.DECIMAL_PLACES) == null ? 3 : new BigDecimal(chartParams.get(CommonConstant.DECIMAL_PLACES)).intValue();
 
         Date[] timeArray = calResultTime(predictItem, reqVO.getStartTime(), reqVO.getEndTime(), lengthLeft, lengthRight);
         Date predictTime = timeArray[0];
@@ -407,7 +409,15 @@
         } else {
             dataView.setRealData(new ArrayList<>());
         }
-        dataView.setCurData(mmItemResultJsonService.getData(outPut.getId(), predictTime, timeFormat, 3));
+
+        Map<String, Object> realDataMap = new HashMap<>();
+        dataView.getRealData().forEach(item -> {
+            realDataMap.put(item[0].toString(), item[1]);
+        });
+        Object curReal = realDataMap.get(DateUtils.format(predictTime, timeFormat)) == null ? dataView.getPreDataL().get(dataView.getPreDataL().size() - 1) : realDataMap.get(DateUtils.format(predictTime, timeFormat));
+
+        // 当前值T0 + 当前预测值 20250409
+        dataView.setCurData(mmItemResultJsonService.getData(outPut.getId(), predictTime, timeFormat, 3, true, curReal));
         // 调整预测值
         dataView.setAdjData(stAdjustResultService.getData(outPut.getId(),predictTime,timeFormat));
         dataView.setLineType(lineType.getCode());
@@ -416,8 +426,8 @@
                 dataView.setPreDataN(mmItemResultService.getData(outPut.getId(), startTime, endTime, timeFormat));
                 break;
             case TL:
-                dataView.setPreDataN(mmItemResultService.getData(outPut.getId(), predictTime, endTime, timeFormat));
-                dataView.setPreDataL(mmItemResultLastPointService.getData(outPut.getId(), startTime, endTime, timeFormat));
+                dataView.setPreDataN(mmItemResultService.getData(outPut.getId(), predictTime, endTime, timeFormat, decimalPlaces));
+                dataView.setPreDataL(mmItemResultLastPointService.getData(outPut.getId(), startTime, endTime, timeFormat, decimalPlaces));
                 break;
             default:
                 break;
@@ -905,6 +915,11 @@
         return stScheduleSuggestService.getLastSuggest(params);
     }
 
+    @Override
+    public Boolean autoAdjustByCode(MmPredictAutoAdjustReqVO reqVO) {
+        return autoAdjustService.autoAdjustByCode(reqVO.getConfigCode(),reqVO.getAdjustStartTime());
+    }
+
     private Date[] calResultTime(ItemVO predictItem, Date startTimeReq, Date endTimeReq, int lengthLeft, int lengthRight) {
         Date[] result = new Date[3];
         Date predictTime = predictItem.getLastTime();

--
Gitblit v1.9.3