From a02c1e14132c4312b2331275df1d79caad23d54f Mon Sep 17 00:00:00 2001
From: dongyukun <1208714201@qq.com>
Date: 星期二, 25 二月 2025 15:04:51 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/api/MdkApiImpl.java |   25 +++++++++++++++----------
 1 files changed, 15 insertions(+), 10 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 9a07f72..bc62e43 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
@@ -10,6 +10,7 @@
 import com.iailab.module.model.common.enums.IsWriteEnum;
 import com.iailab.module.model.common.enums.ModelOutResultType;
 import com.iailab.module.model.common.enums.OutResultType;
+import com.iailab.module.model.enums.CommonConstant;
 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;
@@ -24,6 +25,7 @@
 import com.iailab.module.model.mdk.vo.PredictResultVO;
 import com.iailab.module.model.mdk.vo.ScheduleResultVO;
 import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.redis.core.RedisTemplate;
 import org.springframework.util.CollectionUtils;
@@ -98,15 +100,8 @@
             if (reqDTO.getModuleType() == null) {
                 throw new Exception("ModuleType不能为空");
             }
-            Calendar calendar = Calendar.getInstance();
-            calendar.setTime(reqDTO.getPredictTime());
-            calendar.set(Calendar.MILLISECOND, 0);
-            calendar.set(Calendar.SECOND, 0);
-            reqDTO.setPredictTime(calendar.getTime());
+
             log.info("预测参数:" + JSON.toJSONString(reqDTO));
-            MdkPredictModuleRespDTO result = new MdkPredictModuleRespDTO();
-            result.setPredictTime(reqDTO.getPredictTime());
-            result.setModuleType(reqDTO.getModuleType());
             List<DmModuleEntity> moduleList = dmModuleService.getModuleByModuleType(reqDTO.getModuleType());
             log.info("预测计算开始: " + System.currentTimeMillis());
             for (DmModuleEntity module : moduleList) {
@@ -261,12 +256,16 @@
         try {
             if (redisTemplate.hasKey(catchKey)) {
                 log.info("查找调度结果缓存: " + catchKey);
-                return JSON.parseObject(JSONObject.toJSONString(redisTemplate.opsForValue().get(catchKey)), MdkScheduleRespDTO.class);
+                return JSON.parseObject(redisTemplate.opsForValue().get(catchKey).toString(), MdkScheduleRespDTO.class);
             }
             log.info("调度计算开始: " + System.currentTimeMillis());
             log.info("reqDTO=" + JSON.toJSONString(reqDTO));
             ScheduleResultVO scheduleResult = scheduleModelHandler.doSchedule(reqDTO.getScheduleCode(), reqDTO.getScheduleTime(),
                     reqDTO.getDynamicDataLength(), reqDTO.getDynamicSettings());
+            if(StringUtils.isBlank(scheduleResult.getResultCode()) || !CommonConstant.MDK_STATUS_100.equals(scheduleResult.getResultCode())) {
+                stScheduleSchemeService.updateTime(scheduleResult.getSchemeId(), scheduleResult.getScheduleTime(), CommonConstant.MDK_STATUS_500);
+                throw new Exception("模型调用失败!");
+            }
             resp.setStatusCode(scheduleResult.getResultCode());
             resp.setResult(scheduleResult.getResult());
             redisTemplate.opsForValue().set(catchKey, JSON.toJSONString(resp), offset, TimeUnit.SECONDS);
@@ -302,7 +301,13 @@
                 ModelOutResultType modelOutResultType = ModelOutResultType.getEumByCode(stScheduleModelOutDTO.getResultType());
                 switch (modelOutResultType) {
                     case D:
-                        value = (Double) resultValue;
+                        if (resultValue instanceof Integer) {
+                             value = ((Integer) resultValue).doubleValue();
+                        } else if (resultValue instanceof Double) {
+                             value = (Double) resultValue;
+                        } else {
+                            System.out.println("resultValue is not a number");
+                        }
                         break;
                     case D1:
                         ArrayList<Double> doubleList = (ArrayList<Double>) resultValue;

--
Gitblit v1.9.3