From fde993948625751908d4e67bd5e77e8e2ce47d05 Mon Sep 17 00:00:00 2001
From: dengzedong <dengzedong@email>
Date: 星期五, 20 十二月 2024 17:18:52 +0800
Subject: [PATCH] 计算预测项

---
 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/service/impl/MmPredictItemServiceImpl.java |   14 +++++++++++++-
 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mdk/predict/PredictModuleHandler.java              |    3 +--
 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/api/MdkApiImpl.java                                |    6 +++---
 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mdk/predict/impl/PredictItemMergeHandlerImpl.java  |   21 +++++----------------
 4 files changed, 22 insertions(+), 22 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 f593686..0d95528 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
@@ -102,9 +102,9 @@
                 List<ItemVO> normalItems = predictItemList.stream().filter(e -> e.getItemType().equals("NormalItem")).collect(Collectors.toList());
                 if (!CollectionUtils.isEmpty(normalItems)) {
                     predictModuleHandler.predict(normalItems, reqDTO.getPredictTime(), intervalTime,predictResultMap);
-                    List<ItemVO> mergeItem = predictItemList.stream().filter(e -> e.getItemType().equals("MergeItem")).collect(Collectors.toList());
-                    if (!CollectionUtils.isEmpty(mergeItem)) {
-                        predictModuleHandler.predict(mergeItem, reqDTO.getPredictTime(), intervalTime,predictResultMap);
+                    List<ItemVO> mergeItems = predictItemList.stream().filter(e -> e.getItemType().equals("MergeItem")).collect(Collectors.toList());
+                    if (!CollectionUtils.isEmpty(mergeItems)) {
+                        predictModuleHandler.predict(mergeItems, reqDTO.getPredictTime(), intervalTime,predictResultMap);
                     }
                 }
                 // 更新Module时间
diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/service/impl/MmPredictItemServiceImpl.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/service/impl/MmPredictItemServiceImpl.java
index 20a0820..0bd305c 100644
--- a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/service/impl/MmPredictItemServiceImpl.java
+++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/service/impl/MmPredictItemServiceImpl.java
@@ -123,6 +123,7 @@
             MmItemOutputEntity entity = new MmItemOutputEntity();
             entity.setPointid(mmPredictItemDto.getPointId());
             entity.setResultName(mmPredictItemDto.getMmPredictItem().getItemname());
+            entity.setResultstr("result");
             mergeItemOutput.add(entity);
             mmPredictItemDto.setMmItemOutputList(mergeItemOutput);
         }
@@ -168,7 +169,18 @@
             MmPredictMergeItemEntity mMmPredictMergeItem = mmPredictItemDto.getMmPredictMergeItem();
             mmPredictMergeItemService.update(mMmPredictMergeItem);
             // 修改默认output
-            mmPredictItemDto.getMmItemOutputList().forEach(e -> e.setPointid(mmPredictItemDto.getPointId()));
+            List<MmItemOutputEntity> mmItemOutputList = mmPredictItemDto.getMmItemOutputList();
+            if (CollectionUtils.isEmpty(mmItemOutputList)) {
+                mmItemOutputList = new ArrayList<>(1);
+                MmItemOutputEntity entity = new MmItemOutputEntity();
+                entity.setPointid(mmPredictItemDto.getPointId());
+                entity.setResultName(mmPredictItemDto.getMmPredictItem().getItemname());
+                entity.setResultstr("result");
+                mmItemOutputList.add(entity);
+                mmPredictItemDto.setMmItemOutputList(mmItemOutputList);
+            } else {
+                mmPredictItemDto.getMmItemOutputList().forEach(e -> e.setPointid(mmPredictItemDto.getPointId()));
+            }
         }
         DmModuleItemEntity dmModuleItem = mmPredictItemDto.getDmModuleItem();
         if (!"".equals(dmModuleItem.getId()) && dmModuleItem.getId() != null) {
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 034a6c8..47596e7 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
@@ -50,7 +50,6 @@
      * @return
      */
     public void predict(List<ItemVO> predictItemList, Date predictTime, int intervalTime,Map<String, PredictResultVO> predictResultMap) {
-        PredictResultVO predictResult;
         Map<String, double[]> predictValueMap = null;
         if (!CollectionUtils.isEmpty(predictResultMap)) {
             // 将predictResultMap处理成Map<outPutId, double[]>
@@ -62,6 +61,7 @@
             }
         }
         for (ItemVO predictItem : predictItemList) {
+            PredictResultVO predictResult;
             if (!predictItem.getStatus().equals(ItemStatus.STATUS1.getCode())) {
                 continue;
             }
@@ -108,7 +108,6 @@
                 e.printStackTrace();
                 log.error(MessageFormat.format("预测项编号:{0},预测项名称:{1},预测失败:{2} 预测时刻:{3}",
                         predictItem.getId(), predictItem.getItemName(), e.getMessage(), predictTime));
-                itemRunStatusEnum = ItemRunStatusEnum.FAIL;
             } finally {
                 mmItemStatusService.recordStatus(predictItem.getId(), itemRunStatusEnum, totalDur, predictTime);
             }
diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mdk/predict/impl/PredictItemMergeHandlerImpl.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mdk/predict/impl/PredictItemMergeHandlerImpl.java
index 7ea01d2..31d481e 100644
--- a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mdk/predict/impl/PredictItemMergeHandlerImpl.java
+++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mdk/predict/impl/PredictItemMergeHandlerImpl.java
@@ -1,19 +1,15 @@
 package com.iailab.module.model.mdk.predict.impl;
 
+import com.alibaba.fastjson.JSON;
 import com.iailab.module.data.api.point.DataPointApi;
-import com.iailab.module.data.api.point.dto.ApiPointDTO;
-import com.iailab.module.data.enums.DataPointFreqEnum;
 import com.iailab.module.model.mcs.pre.entity.MmItemOutputEntity;
-import com.iailab.module.model.mcs.pre.enums.ItemRunStatusEnum;
 import com.iailab.module.model.mcs.pre.service.MmItemOutputService;
 import com.iailab.module.model.mcs.pre.service.MmItemResultService;
-import com.iailab.module.model.mdk.common.enums.ItemPredictStatus;
 import com.iailab.module.model.mdk.common.exceptions.ItemInvokeException;
 import com.iailab.module.model.mdk.factory.ItemEntityFactory;
 import com.iailab.module.model.mdk.factory.PredictItemFactory;
 import com.iailab.module.model.mdk.predict.PredictItemHandler;
 import com.iailab.module.model.mdk.predict.PredictResultHandler;
-import com.iailab.module.model.mdk.vo.DataValueVO;
 import com.iailab.module.model.mdk.vo.ItemVO;
 import com.iailab.module.model.mdk.vo.PredictResultVO;
 import lombok.extern.slf4j.Slf4j;
@@ -21,9 +17,7 @@
 import org.springframework.stereotype.Component;
 import org.springframework.util.CollectionUtils;
 
-import java.sql.Timestamp;
 import java.util.*;
-import java.util.stream.Collectors;
 
 /**
  * @author PanZhibao
@@ -64,7 +58,6 @@
     public PredictResultVO predict(Date predictTime, ItemVO predictItemDto, Map<String, double[]> predictValueMap)
             throws ItemInvokeException {
         PredictResultVO predictResult = new PredictResultVO();
-        ItemPredictStatus itemStatus = ItemPredictStatus.PREDICTING;
         String itemId = predictItemDto.getId();
         try {
             String expression = itemEntityFactory.getMergeItem(itemId).getExpression();
@@ -136,24 +129,20 @@
 //                }
 //                predictResult.setPredictMatrix(matrix);
 //            }
-            log.info("计算预测模型结果:" + predictResultMat);
             predictResult.setPredictId(itemId);
             List<MmItemOutputEntity> outputServiceByItemid = mmItemOutputService.getByItemid(itemId);
-            if (CollectionUtils.isEmpty(outputServiceByItemid)) {
+            if (!CollectionUtils.isEmpty(outputServiceByItemid)) {
                 Map<MmItemOutputEntity, double[]> predictMatrixs = new HashMap<>();
                 predictMatrixs.put(outputServiceByItemid.get(0),predictResultMat);
                 predictResult.setPredictMatrixs(predictMatrixs);
             }
             predictResult.setPredictTime(predictTime);
-            //预测项预测成功的状态
-            itemStatus = ItemPredictStatus.SUCCESS;
         } catch (Exception e) {
-            //预测项预测失败的状态
-            itemStatus = ItemPredictStatus.FAILED;
-            log.debug("merge项预测失败,itemId:" + itemId);
+            log.error("merge项预测失败,itemId:" + itemId);
+            e.printStackTrace();
             throw e;
         }
-        log.debug("预测完成,itemId:" + itemId + ",itemStatus:" + itemStatus.getValue());
+        log.info("merge项预测完成,itemId:" + itemId + ",结果:" + JSON.toJSONString(predictResult));
         return predictResult;
     }
 }
\ No newline at end of file

--
Gitblit v1.9.3