From c786685cf41a7654194a947afad9811a93dac31f Mon Sep 17 00:00:00 2001
From: 潘志宝 <979469083@qq.com>
Date: 星期五, 13 六月 2025 12:16:07 +0800
Subject: [PATCH] 获取T+N预测数据

---
 iailab-module-model/iailab-module-model-api/src/main/java/com/iailab/module/model/api/mcs/dto/PredictLastValueReqVO.java     |    2 +-
 iailab-module-model/iailab-module-model-api/src/main/java/com/iailab/module/model/api/mcs/dto/PredictTnValueReqVO.java       |   26 ++++++++++++++++++++++++++
 iailab-module-model/iailab-module-model-api/src/main/java/com/iailab/module/model/api/mcs/McsApi.java                        |    5 +++++
 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/api/controller/admin/McsApiController.java |    9 +++++++++
 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/api/McsApiImpl.java                        |    8 ++++++++
 5 files changed, 49 insertions(+), 1 deletions(-)

diff --git a/iailab-module-model/iailab-module-model-api/src/main/java/com/iailab/module/model/api/mcs/McsApi.java b/iailab-module-model/iailab-module-model-api/src/main/java/com/iailab/module/model/api/mcs/McsApi.java
index b369341..0c4b252 100644
--- a/iailab-module-model/iailab-module-model-api/src/main/java/com/iailab/module/model/api/mcs/McsApi.java
+++ b/iailab-module-model/iailab-module-model-api/src/main/java/com/iailab/module/model/api/mcs/McsApi.java
@@ -2,6 +2,7 @@
 
 import com.iailab.framework.common.pojo.PageResult;
 import com.iailab.module.model.api.mcs.dto.*;
+import com.iailab.module.model.api.mdk.dto.MdkPredictDataDTO;
 import com.iailab.module.model.api.mdk.dto.StScheduleRecordVO;
 import com.iailab.module.model.enums.ApiConstants;
 import io.swagger.v3.oas.annotations.Operation;
@@ -172,6 +173,10 @@
     @Operation(summary = "根据预测时间获取最后预测值")
     Map<String, BigDecimal> getPredictValueByTime(@RequestBody PredictLastValueReqVO reqVO);
 
+    @PostMapping(PREFIX + "/predict-data/tn-value")
+    @Operation(summary = "根据预测时间获取T+N预测值")
+    List<MdkPredictDataDTO> getPredictTnValue(PredictTnValueReqVO reqVO);
+
     @GetMapping(PREFIX + "/predict/model/setting/update")
     @Operation(summary = "修改预测模型配置")
     Boolean updatePredictModelSetting(@RequestParam("modelCode") String modelCode, @RequestParam("key") String key, @RequestParam("value") String value);
diff --git a/iailab-module-model/iailab-module-model-api/src/main/java/com/iailab/module/model/api/mcs/dto/PredictLastValueReqVO.java b/iailab-module-model/iailab-module-model-api/src/main/java/com/iailab/module/model/api/mcs/dto/PredictLastValueReqVO.java
index 8d6a6c1..b77c488 100644
--- a/iailab-module-model/iailab-module-model-api/src/main/java/com/iailab/module/model/api/mcs/dto/PredictLastValueReqVO.java
+++ b/iailab-module-model/iailab-module-model-api/src/main/java/com/iailab/module/model/api/mcs/dto/PredictLastValueReqVO.java
@@ -12,7 +12,7 @@
  * @Description
  * @createTime 2025年01月14日
  */
-@Schema(description = "RPC 模型 - 预警和建议 DTO")
+@Schema(description = "RPC 模型 - 预测值查询 DTO")
 @Data
 public class PredictLastValueReqVO {
 
diff --git a/iailab-module-model/iailab-module-model-api/src/main/java/com/iailab/module/model/api/mcs/dto/PredictTnValueReqVO.java b/iailab-module-model/iailab-module-model-api/src/main/java/com/iailab/module/model/api/mcs/dto/PredictTnValueReqVO.java
new file mode 100644
index 0000000..1f8786b
--- /dev/null
+++ b/iailab-module-model/iailab-module-model-api/src/main/java/com/iailab/module/model/api/mcs/dto/PredictTnValueReqVO.java
@@ -0,0 +1,26 @@
+package com.iailab.module.model.api.mcs.dto;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import java.util.Date;
+import java.util.List;
+
+/**
+ * @author PanZhibao
+ * @Description
+ * @createTime 2025年06月13日
+ */
+@Schema(description = "RPC 模型 - 预测值查询 DTO")
+@Data
+public class PredictTnValueReqVO {
+
+    private String outId;
+
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date startTime;
+
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date endTime;
+}
\ No newline at end of file
diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/api/McsApiImpl.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/api/McsApiImpl.java
index bf62f60..414cde0 100644
--- a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/api/McsApiImpl.java
+++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/api/McsApiImpl.java
@@ -12,6 +12,7 @@
 import com.iailab.module.data.common.ApiDataQueryDTO;
 import com.iailab.module.model.api.mcs.McsApi;
 import com.iailab.module.model.api.mcs.dto.*;
+import com.iailab.module.model.api.mdk.dto.MdkPredictDataDTO;
 import com.iailab.module.model.api.mdk.dto.StScheduleRecordVO;
 import com.iailab.module.model.common.enums.CommonDict;
 import com.iailab.module.model.common.enums.DataTypeEnum;
@@ -36,6 +37,7 @@
 import com.iailab.module.model.mcs.sche.vo.StScheduleRecordRespVO;
 import com.iailab.module.model.mcs.sche.vo.StScheduleSuggestSaveReqVO;
 import com.iailab.module.model.mcs.sche.vo.StSuggestOperationRecordReqVO;
+import com.iailab.module.model.mdk.vo.DataValueVO;
 import com.iailab.module.model.mdk.vo.ItemVO;
 import com.iailab.module.model.mpk.service.ChartParamService;
 import com.iailab.module.model.mpk.service.ChartService;
@@ -749,6 +751,12 @@
     }
 
     @Override
+    public List<MdkPredictDataDTO> getPredictTnValue(PredictTnValueReqVO reqVO) {
+        List<DataValueVO> list = mmItemResultService.getPredictValue(reqVO.getOutId(), reqVO.getStartTime(), reqVO.getEndTime());
+        return ConvertUtils.sourceToTarget(list, MdkPredictDataDTO.class);
+    }
+
+    @Override
     public List<StScheduleRecordVO> getLastScheduleData(String scheduleCode, Integer limit) {
         if (StringUtils.isBlank(scheduleCode)) {
             return null;
diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/api/controller/admin/McsApiController.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/api/controller/admin/McsApiController.java
index ce65aa3..1575ee5 100644
--- a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/api/controller/admin/McsApiController.java
+++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/api/controller/admin/McsApiController.java
@@ -5,9 +5,11 @@
 import com.iailab.framework.common.util.object.BeanUtils;
 import com.iailab.module.model.api.mcs.McsApi;
 import com.iailab.module.model.api.mcs.dto.*;
+import com.iailab.module.model.api.mdk.dto.MdkPredictDataDTO;
 import com.iailab.module.model.api.mdk.dto.StScheduleRecordVO;
 import com.iailab.module.model.common.utils.ApiSecurityUtils;
 import com.iailab.module.model.common.utils.ExcelUtil;
+import com.iailab.module.model.mdk.vo.DataValueVO;
 import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.tags.Tag;
 import lombok.extern.slf4j.Slf4j;
@@ -152,6 +154,13 @@
         return CommonResult.success(map);
     }
 
+    @PostMapping("/predict-data/tn-value")
+    @Operation(summary = "获取T+N预测数据")
+    public CommonResult<List<MdkPredictDataDTO>> getPredictTnValue(PredictTnValueReqVO reqVO) {
+        List<MdkPredictDataDTO> list = mcsApi.getPredictTnValue(reqVO);
+        return success(list);
+    }
+
     @GetMapping("/predict-data/exportValue")
     @Operation(summary = "导出预测数据")
     public void exportPointValue(@RequestParam("itemId") String itemId,

--
Gitblit v1.9.3