iailab-module-model/iailab-module-model-api/src/main/java/com/iailab/module/model/api/mcs/McsApi.java
@@ -52,7 +52,7 @@ @Operation(summary = "获取预警信息列表") List<AlarmMessageRespDTO> listAlarmMessage(@RequestParam Map<String, Object> params); @GetMapping(PREFIX + "/alarm-message/last") @GetMapping(PREFIX + "/alarm-message/last-one") @Operation(summary = "获取最新预警信息") AlarmMessageRespDTO getLastAlarmMessage(@RequestParam("alarmObj") String alarmObj); @@ -60,9 +60,9 @@ @Operation(summary = "添加调度建议") Boolean createScheduleSuggest(@RequestBody ScheduleSuggestRespDTO dto); @GetMapping(PREFIX + "/schedule-suggest/list") @GetMapping(PREFIX + "/schedule-suggest/last-limit") @Operation(summary = "获取调度建议列表") List<ScheduleSuggestRespDTO> listScheduleSuggest(@RequestParam ScheduleSuggestReqDTO params); List<ScheduleSuggestRespDTO> getLastLimitScheduleSuggest(@RequestParam("scheduleObj") String scheduleObj, @RequestParam("limit") Integer limit); @PostMapping(PREFIX + "/predict-model-setting/modify") @Operation(summary = "修改预测模型设置参数") iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/api/McsApiImpl.java
@@ -18,6 +18,8 @@ import com.iailab.module.model.mcs.pre.entity.MmPredictAlarmMessageEntity; import com.iailab.module.model.mcs.pre.service.*; 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; @@ -67,6 +69,9 @@ @Autowired private MmPredictAlarmMessageService mmPredictAlarmMessageService; @Autowired private StScheduleSuggestService stScheduleSuggestService; @Autowired private PlanItemApi planItemApi; @@ -490,8 +495,9 @@ } @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 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); } } 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)); } } 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; 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); } 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); } } 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; } 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; } 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; }