From 5b952f77058a9da5af5e143a6c2c7ba195aa736d Mon Sep 17 00:00:00 2001
From: liriming <1343021927@qq.com>
Date: 星期二, 26 十一月 2024 16:08:10 +0800
Subject: [PATCH] 预测消息配置

---
 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/api/MdkApiImpl.java |   41 ++++++++++++++++++++++++++++-------------
 1 files changed, 28 insertions(+), 13 deletions(-)

diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/api/MdkApiImpl.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/api/MdkApiImpl.java
index 1fd8c7f..ddb8638 100644
--- a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/api/MdkApiImpl.java
+++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/api/MdkApiImpl.java
@@ -4,7 +4,6 @@
 import com.iailab.framework.common.util.object.ConvertUtils;
 import com.iailab.module.model.api.mdk.MdkApi;
 import com.iailab.module.model.api.mdk.dto.*;
-import com.iailab.framework.common.pojo.CommonResult;
 import com.iailab.module.model.mcs.pre.entity.DmModuleEntity;
 import com.iailab.module.model.mcs.pre.service.DmModuleService;
 import com.iailab.module.model.mcs.pre.service.MmPredictItemService;
@@ -70,6 +69,9 @@
     @Override
     public MdkPredictModuleRespDTO predictModule(MdkPredictReqDTO reqDTO) {
         MdkPredictModuleRespDTO resp = new MdkPredictModuleRespDTO();
+        resp.setPredictTime(reqDTO.getPredictTime());
+        resp.setModuleType(reqDTO.getModuleType());
+
         Map<String, MdkPredictItemRespDTO> predictItemRespMap = new HashMap<>();
         try {
             if (reqDTO.getPredictTime() == null) {
@@ -96,16 +98,28 @@
                 }
                 List<ItemVO> predictItemList = mmPredictItemService.getByModuleId(module.getId());
                 Map<String, PredictResultVO> predictResultMap = predictModuleHandler.predict(predictItemList, reqDTO.getPredictTime(), intervalTime);
+                // 更新Module时间
+                dmModuleService.updatePredictTime(module.getId(), reqDTO.getPredictTime());
+                if (reqDTO.getIsResult() == null || !reqDTO.getIsResult()) {
+                    return resp;
+                }
                 for (Map.Entry<String, PredictResultVO> entry : predictResultMap.entrySet()) {
-                    List<MdkPredictDataDTO> predictData = entry.getValue().getPredictList().stream().map(t-> {
-                        MdkPredictDataDTO dto1 = new MdkPredictDataDTO();
-                        dto1.setDataTime(t.getDataTime());
-                        dto1.setDataValue(t.getDataValue());
-                        return dto1;
-                    }).collect(Collectors.toList());
                     MdkPredictItemRespDTO itemResp = new MdkPredictItemRespDTO();
-                    itemResp.setItemId(entry.getValue().getPredictId());
-                    itemResp.setPredictData(predictData);
+                    itemResp.setItemId(entry.getKey());
+                    itemResp.setPredictTime(reqDTO.getPredictTime());
+                    Map<String, List<MdkPredictDataDTO>> itemPredictData = new HashMap<>();
+
+                    Map<String, List<DataValueVO>> predictLists = predictResultHandler.convertToPredictData2(entry.getValue());
+                    for (Map.Entry<String, List<DataValueVO>> dataListEntry : predictLists.entrySet()) {
+                        List<MdkPredictDataDTO> predictData = dataListEntry.getValue().stream().map(t -> {
+                            MdkPredictDataDTO dto1 = new MdkPredictDataDTO();
+                            dto1.setDataTime(t.getDataTime());
+                            dto1.setDataValue(t.getDataValue());
+                            return dto1;
+                        }).collect(Collectors.toList());
+                        itemPredictData.put(dataListEntry.getKey(), predictData);
+                    }
+                    itemResp.setPredictData(itemPredictData);
                     predictItemRespMap.put(entry.getKey(), itemResp);
                 }
             }
@@ -130,14 +144,15 @@
 
         try {
             log.info("预测计算开始: " + System.currentTimeMillis());
-            List<MdkPredictDataDTO> predictData = new ArrayList<>();
+            Map<String, List<MdkPredictDataDTO>> predictData = new HashMap<>();
             ItemVO predictItem = itemEntityFactory.getItemByItemNo(reqDTO.getItemNo());
-            PredictItemHandler predictItemHandler = (PredictItemHandler)predictItemFactory.create(predictItem.getId());
+            PredictItemHandler predictItemHandler = predictItemFactory.create(predictItem.getId());
             PredictResultVO predictResult = predictItemHandler.predict(reqDTO.getPredictTime(), predictItem);
             Map<String, List<DataValueVO>> resultMap = predictResultHandler.convertToPredictData(predictResult);
             if (!CollectionUtils.isEmpty(resultMap)) {
                 for (Map.Entry<String, List<DataValueVO>> entry : resultMap.entrySet()) {
-                    predictData = ConvertUtils.sourceToTarget(entry.getValue(), MdkPredictDataDTO.class);
+                    List<MdkPredictDataDTO>  data = ConvertUtils.sourceToTarget(entry.getValue(), MdkPredictDataDTO.class);
+                    predictData.put(entry.getKey(), data);
                 }
             }
             resp.setPredictData(predictData);
@@ -145,7 +160,7 @@
             resp.setPredictTime(reqDTO.getPredictTime());
             log.info("预测计算结束: " + System.currentTimeMillis());
         } catch (Exception ex) {
-            log.info("预测计算异常: " + System.currentTimeMillis(),ex);
+            log.info("预测计算异常: " + System.currentTimeMillis(), ex);
             return resp;
         }
 

--
Gitblit v1.9.3