From 6205c22a959fbb3b69735f34af8d3316c4082a5d Mon Sep 17 00:00:00 2001
From: dengzedong <dengzedong@email>
Date: 星期四, 27 二月 2025 16:00:28 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mdk/predict/PredictModuleHandler.java |   44 +++++++++++++++++++++++++++++++++-----------
 1 files changed, 33 insertions(+), 11 deletions(-)

diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mdk/predict/PredictModuleHandler.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mdk/predict/PredictModuleHandler.java
index 76d88ec..d0cfb77 100644
--- a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mdk/predict/PredictModuleHandler.java
+++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mdk/predict/PredictModuleHandler.java
@@ -1,5 +1,6 @@
 package com.iailab.module.model.mdk.predict;
 
+import com.alibaba.fastjson.JSONArray;
 import com.iailab.module.model.common.exception.ModelResultErrorException;
 import com.iailab.module.model.mcs.pre.entity.MmItemOutputEntity;
 import com.iailab.module.model.mcs.pre.enums.ItemRunStatusEnum;
@@ -9,6 +10,7 @@
 import com.iailab.module.model.mdk.factory.PredictItemFactory;
 import com.iailab.module.model.mdk.vo.ItemVO;
 import com.iailab.module.model.mdk.vo.PredictResultVO;
+import com.iailab.module.model.mdk.vo.StAdjustDeviationDTO;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
@@ -45,14 +47,14 @@
      * @param intervalTime
      * @return
      */
-    public void predict(List<ItemVO> predictItemList, Date predictTime, int intervalTime,Map<String, PredictResultVO> predictResultMap) {
+    public void predict(List<ItemVO> predictItemList, Date predictTime, int intervalTime, Map<String, PredictResultVO> predictResultMap) {
         Map<String, double[]> predictValueMap = null;
         if (!CollectionUtils.isEmpty(predictResultMap)) {
             // 将predictResultMap处理成Map<outPutId, double[]>
             predictValueMap = new HashMap<>();
             for (Map.Entry<String, PredictResultVO> entry : predictResultMap.entrySet()) {
                 for (Map.Entry<MmItemOutputEntity, double[]> mmItemOutputEntityEntry : entry.getValue().getPredictMatrixs().entrySet()) {
-                    predictValueMap.put(mmItemOutputEntityEntry.getKey().getId(),mmItemOutputEntityEntry.getValue());
+                    predictValueMap.put(mmItemOutputEntityEntry.getKey().getId(), mmItemOutputEntityEntry.getValue());
                 }
             }
         }
@@ -63,10 +65,10 @@
             calendar.set(Calendar.MILLISECOND, 0);
             calendar.set(Calendar.SECOND, 0);
             if (PredGranularityEnum.H1.getCode().equals(predictItem.getGranularity())) {
-                calendar.set(Calendar.MINUTE,0);
-            }else if (PredGranularityEnum.D1.getCode().equals(predictItem.getGranularity())) {
-                calendar.set(Calendar.MINUTE,0);
-                calendar.set(Calendar.HOUR_OF_DAY,0);
+                calendar.set(Calendar.MINUTE, 0);
+            } else if (PredGranularityEnum.D1.getCode().equals(predictItem.getGranularity())) {
+                calendar.set(Calendar.MINUTE, 0);
+                calendar.set(Calendar.HOUR_OF_DAY, 0);
             }
             PredictResultVO predictResult;
             if (!predictItem.getStatus().equals(ItemStatus.STATUS1.getCode())) {
@@ -106,11 +108,6 @@
                     throw new RuntimeException("模型结果保存异常,result:" + predictResult);
                 }
                 itemRunStatusEnum = ItemRunStatusEnum.SUCCESS;
-//                long endSave = System.currentTimeMillis();
-//                Long drtSave = endSave - end;
-//                log.info(MessageFormat.format("预测项:{0},保存时间:{1}ms", predictItem.getItemName(),
-//                        drtSave));
-//                totalDur = totalDur + drtSave;
             } catch (Exception e) {
                 e.printStackTrace();
                 log.error(MessageFormat.format("预测项编号:{0},预测项名称:{1},预测失败:{2} 预测时刻:{3}",
@@ -120,4 +117,29 @@
             }
         }
     }
+
+    public void predictAdjust(ItemVO predictItem, Date predictTime, List<StAdjustDeviationDTO> deviationList, String scheduleModelId) {
+        Calendar calendar = Calendar.getInstance();
+        calendar.setTime(predictTime);
+        calendar.set(Calendar.MILLISECOND, 0);
+        calendar.set(Calendar.SECOND, 0);
+        if (PredGranularityEnum.H1.getCode().equals(predictItem.getGranularity())) {
+            calendar.set(Calendar.MINUTE, 0);
+        } else if (PredGranularityEnum.D1.getCode().equals(predictItem.getGranularity())) {
+            calendar.set(Calendar.MINUTE, 0);
+            calendar.set(Calendar.HOUR_OF_DAY, 0);
+        }
+
+        try {
+            PredictItemHandler predictItemHandler = predictItemFactory.create(predictItem.getId());
+            PredictResultVO predictResult = predictItemHandler.predictAdjust(calendar.getTime(), predictItem, deviationList);
+
+            // 保存预测结果
+            predictResultHandler.savePredictAdjustResult(predictResult, JSONArray.toJSONString(deviationList), scheduleModelId);
+        } catch (Exception e) {
+            e.printStackTrace();
+            log.error(MessageFormat.format("预测项编号:{0},预测项名称:{1},预测失败:{2} 预测时刻:{3}",
+                    predictItem.getId(), predictItem.getItemName(), e.getMessage(), predictTime));
+        }
+    }
 }
\ No newline at end of file

--
Gitblit v1.9.3