潘志宝
2024-11-27 05576523a8626d34aaa1a47f1dfdcad7710482b4
调度建议
已修改7个文件
已添加3个文件
311 ■■■■■ 文件已修改
iailab-module-model/iailab-module-model-api/src/main/java/com/iailab/module/model/api/mcs/McsApi.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/api/McsApiImpl.java 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/api/controller/admin/McsApiController.java 24 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/dao/StScheduleSuggestDao.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/entity/StScheduleSuggestEntity.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/service/StScheduleSuggestService.java 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/service/impl/StScheduleSuggestServiceImpl.java 46 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/vo/StScheduleSuggestPageReqVO.java 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/vo/StScheduleSuggestRespVO.java 83 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/vo/StScheduleSuggestSaveReqVO.java 88 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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;
}