From f96689bddf69ea3d635116cf1dd98bd5e5e0755a Mon Sep 17 00:00:00 2001
From: liriming <1343021927@qq.com>
Date: 星期四, 28 十一月 2024 09:23:52 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/dao/StScheduleSuggestDao.java                     |   10 +
 iailab-module-model/iailab-module-model-api/src/main/java/com/iailab/module/model/api/mcs/dto/PreDataJsonReqVO.java                          |   26 +++
 iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/api/controller/admin/ApiDataController.java                   |    1 
 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/service/MmPredictAlarmMessageService.java          |    2 
 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/service/impl/MmPredictAlarmMessageServiceImpl.java |   12 +
 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/vo/StScheduleSuggestSaveReqVO.java                |   88 ++++++++++++
 iailab-module-model/iailab-module-model-api/src/main/java/com/iailab/module/model/api/mcs/McsApi.java                                        |    8 +
 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/api/controller/admin/McsApiController.java                 |   24 ++
 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/api/McsApiImpl.java                                        |   46 ++++++
 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/service/StScheduleSuggestService.java             |   17 ++
 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/service/impl/StScheduleSuggestServiceImpl.java    |   46 ++++++
 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/entity/StScheduleSuggestEntity.java               |    2 
 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/vo/StScheduleSuggestPageReqVO.java                |   25 +++
 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/vo/StScheduleSuggestRespVO.java                   |   83 +++++++++++
 14 files changed, 381 insertions(+), 9 deletions(-)

diff --git a/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/api/controller/admin/ApiDataController.java b/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/api/controller/admin/ApiDataController.java
index 3913af3..339c042 100644
--- a/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/api/controller/admin/ApiDataController.java
+++ b/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/api/controller/admin/ApiDataController.java
@@ -38,7 +38,6 @@
 import javax.annotation.security.PermitAll;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
-import java.io.IOException;
 import java.math.BigDecimal;
 import java.math.RoundingMode;
 import java.util.*;
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 512dad7..45864ef 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
@@ -40,6 +40,10 @@
     @Operation(summary = "预测数据图表")
     PreDataSingleChartRespVO getPreDataSingleChart(@RequestBody PreDataSingleChartReqVO reqVO);
 
+    @PostMapping(PREFIX + "/predict-data/cur")
+    @Operation(summary = "获取当前预测数据")
+    Map<String, List<Object[]>> getPreDataCur(PreDataJsonReqVO reqVO);
+
     @PostMapping(PREFIX + "/plan-data/single-chart")
     @Operation(summary = "计划数据图表")
     PlanDataSingleChartRespVO getPlanDataSingleChart(@RequestBody PreDataSingleChartReqVO reqVO);
@@ -56,6 +60,10 @@
     @Operation(summary = "获取预警配置列表")
     List<AlarmConfigRespDTO> listAlarmConfig(@RequestParam Map<String, Object> params);
 
+    @GetMapping(PREFIX + "/alarm-message/last-one")
+    @Operation(summary = "获取最新预警信息")
+    AlarmMessageRespDTO getLastAlarmMessage(@RequestParam("alarmObj") String alarmObj);
+
     @PostMapping(PREFIX + "/schedule-suggest/create")
     @Operation(summary = "添加调度建议")
     Boolean createScheduleSuggest(@RequestBody ScheduleSuggestRespDTO dto);
diff --git a/iailab-module-model/iailab-module-model-api/src/main/java/com/iailab/module/model/api/mcs/dto/PreDataJsonReqVO.java b/iailab-module-model/iailab-module-model-api/src/main/java/com/iailab/module/model/api/mcs/dto/PreDataJsonReqVO.java
new file mode 100644
index 0000000..656b692
--- /dev/null
+++ b/iailab-module-model/iailab-module-model-api/src/main/java/com/iailab/module/model/api/mcs/dto/PreDataJsonReqVO.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.io.Serializable;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * @author PanZhibao
+ * @Description
+ * @createTime 2024年11月27日
+ */
+@Data
+public class PreDataJsonReqVO implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    @Schema(description = "预测时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date predictTime;
+
+    @Schema(description = "预测输出ID")
+    private List<String> outputIdList;
+}
\ 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 7092979..80e1c93 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
@@ -15,8 +15,12 @@
 import com.iailab.module.model.common.enums.PreLineTypeEnum;
 import com.iailab.module.model.mcs.pre.entity.DmModuleEntity;
 import com.iailab.module.model.mcs.pre.entity.MmItemOutputEntity;
+import com.iailab.module.model.mcs.pre.entity.MmPredictAlarmMessageEntity;
 import com.iailab.module.model.mcs.pre.service.*;
 import com.iailab.module.model.mcs.pre.service.impl.MmPredictAlarmConfigServiceImpl;
+import com.iailab.module.model.mcs.pre.vo.MmPredictAlarmMessageSaveReqVO;
+import com.iailab.module.model.mcs.sche.entity.StScheduleSuggestEntity;
+import com.iailab.module.model.mcs.sche.service.StScheduleSuggestService;
 import com.iailab.module.model.mdk.vo.ItemVO;
 import com.iailab.module.model.mpk.service.ChartService;
 import lombok.extern.slf4j.Slf4j;
@@ -63,6 +67,12 @@
 
     @Autowired
     private ChartService chartService;
+
+    @Autowired
+    private MmPredictAlarmMessageService mmPredictAlarmMessageService;
+
+    @Autowired
+    private StScheduleSuggestService stScheduleSuggestService;
 
     @Autowired
     private PlanItemApi planItemApi;
@@ -350,6 +360,18 @@
     }
 
     @Override
+    public Map<String, List<Object[]>> getPreDataCur(PreDataJsonReqVO reqVO) {
+        Map<String, List<Object[]>> result = new HashMap<>();
+        if (reqVO == null || reqVO.getPredictTime() == null || CollectionUtils.isEmpty(reqVO.getOutputIdList())) {
+            return result;
+        }
+        reqVO.getOutputIdList().forEach(outPutId -> {
+            result.put(outPutId, mmItemResultJsonService.getData(outPutId, reqVO.getPredictTime(), DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND));
+        });
+        return result;
+    }
+
+    @Override
     public PlanDataSingleChartRespVO getPlanDataSingleChart(PreDataSingleChartReqVO reqVO) {
         PlanDataSingleChartRespVO result = new PlanDataSingleChartRespVO();
         Map<String, String> chartParams = chartService.getByChartCode(reqVO.getChartCode());
@@ -456,9 +478,20 @@
         return result;
     }
 
+    /**
+     * 新增预警信息
+     *
+     * @param dto
+     * @return
+     */
     @Override
     public Boolean createAlarmMessage(AlarmMessageRespDTO dto) {
-        return true;
+        try {
+            mmPredictAlarmMessageService.create(ConvertUtils.sourceToTarget(dto, MmPredictAlarmMessageSaveReqVO.class));
+            return true;
+        } catch (Exception e) {
+            return false;
+        }
     }
 
     @Override
@@ -472,13 +505,20 @@
     }
 
     @Override
+    public AlarmMessageRespDTO getLastAlarmMessage(String alarmObj) {
+        MmPredictAlarmMessageEntity entity = mmPredictAlarmMessageService.getLast(alarmObj);
+        return ConvertUtils.sourceToTarget(entity, AlarmMessageRespDTO.class);
+    }
+
+    @Override
     public Boolean createScheduleSuggest(ScheduleSuggestRespDTO dto) {
         return true;
     }
 
     @Override
-    public List<ScheduleSuggestRespDTO> listScheduleSuggest(ScheduleSuggestReqDTO params) {
-        return null;
+    public List<ScheduleSuggestRespDTO> getLastLimitScheduleSuggest(String scheduleObj, Integer limit) {
+        List<StScheduleSuggestEntity> list = stScheduleSuggestService.getList(scheduleObj, limit);
+        return ConvertUtils.sourceToTarget(list, ScheduleSuggestRespDTO.class);
     }
 
     @Override
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 a0421b1..41b12ec 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
@@ -19,6 +19,7 @@
 import java.text.SimpleDateFormat;
 import java.util.Date;
 import java.util.List;
+
 import static com.iailab.framework.apilog.core.enums.OperateTypeEnum.EXPORT;
 
 /**
@@ -90,7 +91,6 @@
 
     @GetMapping("/predict-data/exportValue")
     @Operation(summary = "导出预测数据")
-    @ApiAccessLog(operateType = EXPORT)
     public void exportPointValue(@RequestParam("itemId") String itemId,
                                  @RequestParam("startTime") String startTime,
                                  @RequestParam("endTime") String endTime,
@@ -100,13 +100,13 @@
         reqVO.setItemId(itemId);
         try {
             if (startTime == "") {
-                reqVO.setStartTime(new Date((new Date()).getTime() - 60*60*1000));
+                reqVO.setStartTime(new Date((new Date()).getTime() - 60 * 60 * 1000));
             } else {
                 reqVO.setStartTime(formatter.parse(startTime));
 
             }
             if (endTime == "") {
-                reqVO.setEndTime(new Date((new Date()).getTime() + 60*60*1000));
+                reqVO.setEndTime(new Date((new Date()).getTime() + 60 * 60 * 1000));
             } else {
                 reqVO.setEndTime(formatter.parse(endTime));
             }
@@ -115,10 +115,26 @@
         }
         PreDataItemChartRespVO respVO = mcsApi.getPreDataItemChart(reqVO);
         try {
-            String sheetTitle =  "sheet1";
+            String sheetTitle = "sheet1";
             ExcelUtil.exportchart(sheetTitle, respVO, response);
         } catch (Exception ex) {
             ex.printStackTrace();
         }
     }
+
+    @GetMapping("/alarm-message/last-one")
+    @Operation(summary = "根据监控对象获取最新预警信息")
+    public CommonResult<AlarmMessageRespDTO> getLastAlarmMessage(HttpServletResponse response, HttpServletRequest
+            request, @RequestParam("alarmObj") String alarmObj) {
+        AlarmMessageRespDTO data = mcsApi.getLastAlarmMessage(alarmObj);
+        return CommonResult.success(data);
+    }
+
+    @GetMapping("/schedule-suggest/last-limit")
+    @Operation(summary = "根据监控对象获取最新预警信息")
+    public CommonResult<List<ScheduleSuggestRespDTO>> getLastLimitScheduleSuggest(HttpServletResponse response, HttpServletRequest
+            request, @RequestParam("scheduleObj") String scheduleObj, @RequestParam("limit") Integer limit) {
+        List<ScheduleSuggestRespDTO> data = mcsApi.getLastLimitScheduleSuggest(scheduleObj, limit);
+        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/pre/service/MmPredictAlarmMessageService.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/service/MmPredictAlarmMessageService.java
index 3e1485e..5512dde 100644
--- a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/service/MmPredictAlarmMessageService.java
+++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/service/MmPredictAlarmMessageService.java
@@ -17,6 +17,8 @@
 
     MmPredictAlarmMessageEntity getInfo(String id);
 
+    MmPredictAlarmMessageEntity getLast(String alarmObj);
+
     void create(MmPredictAlarmMessageSaveReqVO reqVO);
 
     void update(MmPredictAlarmMessageSaveReqVO reqVO);
diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/service/impl/MmPredictAlarmMessageServiceImpl.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/service/impl/MmPredictAlarmMessageServiceImpl.java
index 33da851..1f55917 100644
--- a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/service/impl/MmPredictAlarmMessageServiceImpl.java
+++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/service/impl/MmPredictAlarmMessageServiceImpl.java
@@ -1,5 +1,6 @@
 package com.iailab.module.model.mcs.pre.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.iailab.framework.common.pojo.PageResult;
 import com.iailab.framework.common.service.impl.BaseServiceImpl;
 import com.iailab.framework.common.util.object.BeanUtils;
@@ -9,8 +10,10 @@
 import com.iailab.module.model.mcs.pre.vo.MmPredictAlarmMessagePageReqVO;
 import com.iailab.module.model.mcs.pre.vo.MmPredictAlarmMessageSaveReqVO;
 import org.springframework.stereotype.Service;
+import org.springframework.util.CollectionUtils;
 
 import java.util.Date;
+import java.util.List;
 import java.util.UUID;
 
 /**
@@ -34,6 +37,15 @@
     }
 
     @Override
+    public MmPredictAlarmMessageEntity getLast(String alarmObj) {
+        QueryWrapper<MmPredictAlarmMessageEntity> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq("alarm_obj", alarmObj)
+                .orderByDesc("alarm_time")
+                .last("limit 1");
+        return baseDao.selectOne(queryWrapper);
+    }
+
+    @Override
     public void create(MmPredictAlarmMessageSaveReqVO reqVO) {
         MmPredictAlarmMessageEntity entity = BeanUtils.toBean(reqVO, MmPredictAlarmMessageEntity.class);
         entity.setId(UUID.randomUUID().toString());
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 23fab12..ea81414 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
@@ -1,8 +1,11 @@
 package com.iailab.module.model.mcs.sche.dao;
 
+import com.iailab.framework.common.pojo.PageResult;
 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.mcs.sche.entity.StScheduleSuggestEntity;
+import com.iailab.module.model.mcs.sche.vo.StScheduleSuggestPageReqVO;
 import org.apache.ibatis.annotations.Mapper;
 
 /**
@@ -13,4 +16,11 @@
 @TenantDS
 @Mapper
 public interface StScheduleSuggestDao extends BaseMapperX<StScheduleSuggestEntity> {
+
+    default PageResult<StScheduleSuggestEntity> selectPage(StScheduleSuggestPageReqVO reqVO) {
+        return selectPage(reqVO, new LambdaQueryWrapperX<StScheduleSuggestEntity>()
+                .likeIfPresent(StScheduleSuggestEntity::getTitle, reqVO.getTitle())
+                .likeIfPresent(StScheduleSuggestEntity::getScheduleObj, reqVO.getScheduleObj())
+                .orderByDesc(StScheduleSuggestEntity::getCreateTime));
+    }
 }
diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/entity/StScheduleSuggestEntity.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/entity/StScheduleSuggestEntity.java
index babae42..9dda28a 100644
--- a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/entity/StScheduleSuggestEntity.java
+++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/entity/StScheduleSuggestEntity.java
@@ -111,7 +111,7 @@
     private Date scheduleTime;
 
     /**
-     * 状态
+     * 状态(0未处理 1已采纳 2已忽略)
      */
     private Integer status;
 
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 72104b3..489487f 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
@@ -1,7 +1,12 @@
 package com.iailab.module.model.mcs.sche.service;
 
+import com.iailab.framework.common.pojo.PageResult;
 import com.iailab.framework.common.service.BaseService;
 import com.iailab.module.model.mcs.sche.entity.StScheduleSuggestEntity;
+import com.iailab.module.model.mcs.sche.vo.StScheduleSuggestPageReqVO;
+import com.iailab.module.model.mcs.sche.vo.StScheduleSuggestSaveReqVO;
+
+import java.util.List;
 
 /**
  * @author PanZhibao
@@ -9,4 +14,16 @@
  * @createTime 2024年09月06日
  */
 public interface StScheduleSuggestService extends BaseService<StScheduleSuggestEntity> {
+
+    PageResult<StScheduleSuggestEntity> page(StScheduleSuggestPageReqVO reqVO);
+
+    void create(StScheduleSuggestSaveReqVO createReqVO);
+
+    void update(StScheduleSuggestSaveReqVO createReqVO);
+
+    void delete(String id);
+
+    StScheduleSuggestEntity getInfo(String id);
+
+    List<StScheduleSuggestEntity> getList(String scheduleObj, Integer limit);
 }
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 32b7055..46cdb20 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
@@ -1,10 +1,18 @@
 package com.iailab.module.model.mcs.sche.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.iailab.framework.common.pojo.PageResult;
 import com.iailab.framework.common.service.impl.BaseServiceImpl;
+import com.iailab.framework.common.util.object.BeanUtils;
 import com.iailab.module.model.mcs.sche.dao.StScheduleSuggestDao;
 import com.iailab.module.model.mcs.sche.entity.StScheduleSuggestEntity;
 import com.iailab.module.model.mcs.sche.service.StScheduleSuggestService;
+import com.iailab.module.model.mcs.sche.vo.StScheduleSuggestPageReqVO;
+import com.iailab.module.model.mcs.sche.vo.StScheduleSuggestSaveReqVO;
 import org.springframework.stereotype.Service;
+
+import java.util.List;
+import java.util.UUID;
 
 /**
  * @author PanZhibao
@@ -14,4 +22,42 @@
 @Service
 public class StScheduleSuggestServiceImpl extends BaseServiceImpl<StScheduleSuggestDao, StScheduleSuggestEntity>
         implements StScheduleSuggestService {
+
+    @Override
+    public PageResult<StScheduleSuggestEntity> page(StScheduleSuggestPageReqVO reqVO) {
+        return baseDao.selectPage(reqVO);
+    }
+
+    @Override
+    public void create(StScheduleSuggestSaveReqVO createReqVO) {
+        StScheduleSuggestEntity entity = BeanUtils.toBean(createReqVO, StScheduleSuggestEntity.class);
+        entity.setId(UUID.randomUUID().toString());
+        baseDao.insert(entity);
+    }
+
+    @Override
+    public void update(StScheduleSuggestSaveReqVO createReqVO) {
+        StScheduleSuggestEntity entity = BeanUtils.toBean(createReqVO, StScheduleSuggestEntity.class);
+        baseDao.updateById(entity);
+    }
+
+    @Override
+    public void delete(String id) {
+        baseDao.deleteById(id);
+    }
+
+    @Override
+    public StScheduleSuggestEntity getInfo(String id) {
+        return baseDao.selectById(id);
+    }
+
+    @Override
+    public List<StScheduleSuggestEntity> getList(String scheduleObj, Integer limit) {
+        QueryWrapper<StScheduleSuggestEntity> queryWrapper = new QueryWrapper<>();
+        limit = limit == null ? 1 : limit;
+        queryWrapper.eq("schedule_obj", scheduleObj)
+                .orderByDesc("create_time")
+                .last("limit " + limit);
+        return baseDao.selectList(queryWrapper);
+    }
 }
\ 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/vo/StScheduleSuggestPageReqVO.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/vo/StScheduleSuggestPageReqVO.java
new file mode 100644
index 0000000..1bc0564
--- /dev/null
+++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/vo/StScheduleSuggestPageReqVO.java
@@ -0,0 +1,25 @@
+package com.iailab.module.model.mcs.sche.vo;
+
+import com.iailab.framework.common.pojo.PageParam;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.ToString;
+
+/**
+ * @author PanZhibao
+ * @Description
+ * @createTime 2024年11月27日
+ */
+@Schema(description = "模型服务 - 调度建议分页 Request VO")
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ToString(callSuper = true)
+public class StScheduleSuggestPageReqVO extends PageParam {
+
+    @Schema(description = "标题,模糊匹配", example = "")
+    private String title;
+
+    @Schema(description = "调整对象,模糊匹配", example = "")
+    private String scheduleObj;
+}
\ 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/vo/StScheduleSuggestRespVO.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/vo/StScheduleSuggestRespVO.java
new file mode 100644
index 0000000..7c3e0e7
--- /dev/null
+++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/vo/StScheduleSuggestRespVO.java
@@ -0,0 +1,83 @@
+package com.iailab.module.model.mcs.sche.vo;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * @author PanZhibao
+ * @Description
+ * @createTime 2024年11月27日
+ */
+@Schema(description = "模型服务 - 调度建议 Response VO")
+@Data
+public class StScheduleSuggestRespVO {
+
+    @Schema(description = "ID")
+    private String id;
+
+    @Schema(description = "标题")
+    private String title;
+
+    @Schema(description = "内容")
+    private String content;
+
+    @Schema(description = "排序")
+    private Integer sort;
+
+    @Schema(description = "方案ID")
+    private String schemeId;
+
+    @Schema(description = "预警ID")
+    private String alarmId;
+
+    @Schema(description = "预测项ID")
+    private String itemId;
+
+    @Schema(description = "模型ID")
+    private String modelId;
+
+    @Schema(description = "调整对象")
+    private String scheduleObj;
+
+    @Schema(description = "调整类型")
+    private String scheduleType;
+
+    @Schema(description = "调整策略")
+    private String scheduleStrategy;
+
+    @Schema(description = "调整方式")
+    private String adjustMode;
+
+    @Schema(description = "调整值")
+    private BigDecimal adjustValue;
+
+    @Schema(description = "调整单位")
+    private String adjustUnit;
+
+    @Schema(description = "持续时长")
+    private BigDecimal adjustTimes;
+
+    @Schema(description = "调整开始时间")
+    private Date adjustStart;
+
+    @Schema(description = "调整结束时间")
+    private Date adjustEnd;
+
+    @Schema(description = "调度时间")
+    private Date scheduleTime;
+
+    @Schema(description = "状态(0未处理 1已采纳 2已忽略)")
+    private Integer status;
+
+    @Schema(description = "处理人")
+    private String handler;
+
+    @Schema(description = "处理时间")
+    private Date handleTime;
+
+    @Schema(description = "创建时间")
+    private Date createTime;
+}
\ 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/vo/StScheduleSuggestSaveReqVO.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/vo/StScheduleSuggestSaveReqVO.java
new file mode 100644
index 0000000..fa3a51b
--- /dev/null
+++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/vo/StScheduleSuggestSaveReqVO.java
@@ -0,0 +1,88 @@
+package com.iailab.module.model.mcs.sche.vo;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import javax.validation.constraints.NotNull;
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * @author PanZhibao
+ * @Description
+ * @createTime 2024年11月27日
+ */
+@Schema(description = "模型服务 - 调度建议创建/修改 Request VO")
+@Data
+public class StScheduleSuggestSaveReqVO {
+
+    @Schema(description = "ID")
+    private String id;
+
+    @Schema(description = "标题")
+    @NotNull(message = "应用编号不能为空")
+    private String title;
+
+    @Schema(description = "内容")
+    @NotNull(message = "应用编号不能为空")
+    private String content;
+
+    @Schema(description = "排序")
+    @NotNull(message = "应用编号不能为空")
+    private Integer sort;
+
+    @Schema(description = "方案ID")
+    private String schemeId;
+
+    @Schema(description = "预警ID")
+    private String alarmId;
+
+    @Schema(description = "预测项ID")
+    private String itemId;
+
+    @Schema(description = "模型ID")
+    private String modelId;
+
+    @Schema(description = "调整对象")
+    @NotNull(message = "应用编号不能为空")
+    private String scheduleObj;
+
+    @Schema(description = "调整类型")
+    private String scheduleType;
+
+    @Schema(description = "调整策略")
+    private String scheduleStrategy;
+
+    @Schema(description = "调整方式")
+    private String adjustMode;
+
+    @Schema(description = "调整值")
+    private BigDecimal adjustValue;
+
+    @Schema(description = "调整单位")
+    private String adjustUnit;
+
+    @Schema(description = "持续时长")
+    private BigDecimal adjustTimes;
+
+    @Schema(description = "调整开始时间")
+    private Date adjustStart;
+
+    @Schema(description = "调整结束时间")
+    private Date adjustEnd;
+
+    @Schema(description = "调度时间")
+    private Date scheduleTime;
+
+    @Schema(description = "状态(0未处理 1已采纳 2已忽略)")
+    private Integer status;
+
+    @Schema(description = "处理人")
+    private String handler;
+
+    @Schema(description = "处理时间")
+    private Date handleTime;
+
+    @Schema(description = "创建时间")
+    private Date createTime;
+}
\ No newline at end of file

--
Gitblit v1.9.3