From 8d083c79593b4a1edeac09fee1c59c8e9f9fb03c Mon Sep 17 00:00:00 2001
From: liriming <1343021927@qq.com>
Date: 星期三, 09 四月 2025 10:58:46 +0800
Subject: [PATCH] 获取15分钟内最新预警建议信息接口

---
 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/service/impl/StScheduleSuggestServiceImpl.java |    5 +++++
 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/dao/StScheduleSuggestDao.java                  |    4 ++++
 iailab-module-model/iailab-module-model-biz/src/main/resources/mapper/mcs/StScheduleSuggestDao.xml                                        |   11 +++++++++++
 iailab-module-model/iailab-module-model-api/src/main/java/com/iailab/module/model/api/mcs/McsApi.java                                     |    4 ++++
 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/api/controller/admin/McsApiController.java              |    7 +++++++
 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/api/McsApiImpl.java                                     |    5 +++++
 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/service/StScheduleSuggestService.java          |    2 ++
 7 files changed, 38 insertions(+), 0 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 f1bbe8d..1a9fb2f 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
@@ -157,4 +157,8 @@
     @Operation(summary = "采纳建议")
     Boolean useSuggest(@RequestBody StAlarmAndSuggestReqVO reqVO);
 
+    @GetMapping(PREFIX + "/schedule-suggest/last-one")
+    @Operation(summary = "获取15分钟内最新预警建议信息")
+    List<ScheduleSuggestRespDTO> getLastSuggest(@RequestParam Map<String, Object> params);
+
 }
\ 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 9ad68e5..0955389 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
@@ -900,6 +900,11 @@
         return stScheduleSuggestService.useSuggest(reqVO);
     }
 
+    @Override
+    public List<ScheduleSuggestRespDTO> getLastSuggest(Map<String, Object> params) {
+        return stScheduleSuggestService.getLastSuggest(params);
+    }
+
     private Date[] calResultTime(ItemVO predictItem, Date startTimeReq, Date endTimeReq, int lengthLeft, int lengthRight) {
         Date[] result = new Date[3];
         Date predictTime = predictItem.getLastTime();
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 8197392..efc2c6e 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
@@ -268,4 +268,11 @@
         List<Object[]> list = mcsApi.getItemResultLastPoint(reqVO);
         return CommonResult.success(list);
     }
+
+    @GetMapping("/schedule-suggest/last-one")
+    @Operation(summary = "获取15分钟内最新预警建议信息")
+    public CommonResult<List<ScheduleSuggestRespDTO>> getLastSuggest(@RequestParam Map<String, Object> params) {
+        List<ScheduleSuggestRespDTO> data = mcsApi.getLastSuggest(params);
+        return CommonResult.success(data);
+    }
 }
\ No newline at end of file
diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/dao/StScheduleSuggestDao.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/dao/StScheduleSuggestDao.java
index fe62a48..e1902c9 100644
--- a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/dao/StScheduleSuggestDao.java
+++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/dao/StScheduleSuggestDao.java
@@ -4,11 +4,13 @@
 import com.iailab.framework.mybatis.core.mapper.BaseMapperX;
 import com.iailab.framework.mybatis.core.query.LambdaQueryWrapperX;
 import com.iailab.framework.tenant.core.db.dynamic.TenantDS;
+import com.iailab.module.model.api.mcs.dto.ScheduleSuggestRespDTO;
 import com.iailab.module.model.mcs.sche.entity.StScheduleSuggestEntity;
 import com.iailab.module.model.mcs.sche.vo.StScheduleSuggestPageReqVO;
 import org.apache.ibatis.annotations.Mapper;
 
 import java.util.Date;
+import java.util.List;
 import java.util.Map;
 
 /**
@@ -28,4 +30,6 @@
     }
 
     void cleanScheduleSuggest(Map<String, Date> tMap);
+
+    List<ScheduleSuggestRespDTO> getLastSuggest(Map<String, Object> params);
 }
diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/service/StScheduleSuggestService.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/service/StScheduleSuggestService.java
index c5abe36..2fc81c5 100644
--- a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/service/StScheduleSuggestService.java
+++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/service/StScheduleSuggestService.java
@@ -40,4 +40,6 @@
     List<StScheduleSuggestEntity> getList(List<String> scheduleObjList, Date predictTime);
 
     Boolean useSuggest(StAlarmAndSuggestReqVO reqVO);
+
+    List<ScheduleSuggestRespDTO> getLastSuggest(Map<String, Object> params);
 }
diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/service/impl/StScheduleSuggestServiceImpl.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/service/impl/StScheduleSuggestServiceImpl.java
index 998bf44..c101562 100644
--- a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/service/impl/StScheduleSuggestServiceImpl.java
+++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/service/impl/StScheduleSuggestServiceImpl.java
@@ -104,4 +104,9 @@
         baseDao.updateById(entity);
         return true;
     }
+
+    @Override
+    public List<ScheduleSuggestRespDTO> getLastSuggest(Map<String, Object> params) {
+        return baseDao.getLastSuggest(params);
+    }
 }
\ No newline at end of file
diff --git a/iailab-module-model/iailab-module-model-biz/src/main/resources/mapper/mcs/StScheduleSuggestDao.xml b/iailab-module-model/iailab-module-model-biz/src/main/resources/mapper/mcs/StScheduleSuggestDao.xml
index c8607f2..b67900a 100644
--- a/iailab-module-model/iailab-module-model-biz/src/main/resources/mapper/mcs/StScheduleSuggestDao.xml
+++ b/iailab-module-model/iailab-module-model-biz/src/main/resources/mapper/mcs/StScheduleSuggestDao.xml
@@ -5,4 +5,15 @@
         delete from t_st_schedule_suggest
         where schedule_time between #{startdate} and #{enddate}
     </delete>
+    <select id="getLastSuggest" resultType="com.iailab.module.model.api.mcs.dto.ScheduleSuggestRespDTO">
+        WITH t_st_schedule_suggest AS (SELECT *,
+                                              ROW_NUMBER() OVER ( PARTITION BY schedule_obj ORDER BY schedule_time DESC ) AS rn
+                                       FROM t_st_schedule_suggest
+                                       WHERE schedule_obj in
+                                             ('BFG_ALARM', 'COG_ALARM', 'LDG1_ALARM', 'LDG2_ALARM', 'LDGt_ALARM')
+                                         and schedule_time >= DATE_SUB(NOW(), INTERVAL 15 MINUTE ))
+        SELECT *
+        FROM t_st_schedule_suggest
+        WHERE rn = 1;
+    </select>
 </mapper>
\ No newline at end of file

--
Gitblit v1.9.3