From 9162d941f09d5d2bd9b019aa530d4abb5d171993 Mon Sep 17 00:00:00 2001
From: 潘志宝 <979469083@qq.com>
Date: 星期四, 05 九月 2024 11:48:10 +0800
Subject: [PATCH] 单个预测

---
 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mdk/predict/PredictResultHandler.java |    2 +-
 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/api/MdkApiImpl.java                   |   38 ++++++++++++++++++++++++++++++++++++++
 2 files changed, 39 insertions(+), 1 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 6a7df4f..8f73d14 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
@@ -1,23 +1,31 @@
 package com.iailab.module.model.api;
 
 import com.alibaba.fastjson.JSON;
+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;
+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.PredictModuleHandler;
+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;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.util.CollectionUtils;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RestController;
 
 import javax.validation.Valid;
 
+import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -44,6 +52,15 @@
 
     @Autowired
     private PredictModuleHandler predictModuleHandler;
+
+    @Autowired
+    private ItemEntityFactory itemEntityFactory;
+
+    @Autowired
+    private PredictItemFactory predictItemFactory;
+
+    @Autowired
+    private PredictResultHandler predictResultHandler;
 
     /**
      * 按模块预测
@@ -106,6 +123,27 @@
     public CommonResult<MdkPredictItemRespDTO> predictItem(@Valid @RequestBody MdkPredictReqDTO reqDTO) {
         MdkPredictItemRespDTO resp = new MdkPredictItemRespDTO();
 
+        try {
+            log.info("预测计算开始: " + System.currentTimeMillis());
+            List<MdkPredictDataDTO> predictData = new ArrayList<>();
+            ItemVO predictItem = itemEntityFactory.getItemByItemNo(reqDTO.getItemNo());
+            PredictItemHandler 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);
+                }
+            }
+            resp.setPredictData(predictData);
+            resp.setItemId(predictItem.getId());
+            resp.setPredictTime(reqDTO.getPredictTime());
+            log.info("预测计算结束: " + System.currentTimeMillis());
+        } catch (Exception ex) {
+            log.info("预测计算异常: " + System.currentTimeMillis());
+            ex.printStackTrace();
+        }
+
         return success(resp);
     }
 
diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mdk/predict/PredictResultHandler.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mdk/predict/PredictResultHandler.java
index e69b1e7..1b95499 100644
--- a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mdk/predict/PredictResultHandler.java
+++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mdk/predict/PredictResultHandler.java
@@ -32,7 +32,7 @@
      * @param predictResult
      * @return
      */
-    private Map<String, List<DataValueVO>> convertToPredictData(PredictResultVO predictResult) {
+    public Map<String, List<DataValueVO>> convertToPredictData(PredictResultVO predictResult) {
         Map<String, List<DataValueVO>> resultMap = new HashMap<>();
         List<MmItemOutputVO> itemOutPutList = itemEntityFactory.getOutPutByItemId(predictResult.getPredictId());
 

--
Gitblit v1.9.3