From e9506a872eb087da15a3ad317836c26bd8f0356c Mon Sep 17 00:00:00 2001 From: Jay <csj123456> Date: 星期四, 06 二月 2025 14:35:32 +0800 Subject: [PATCH] 新增修改模型设定参数接口 --- iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/api/controller/admin/McsApiController.java | 131 +++++++++++++++++++++++++++++++++++++++++-- 1 files changed, 123 insertions(+), 8 deletions(-) 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..1e97f5f 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 @@ -1,25 +1,29 @@ package com.iailab.module.model.api.controller.admin; -import com.iailab.framework.apilog.core.annotation.ApiAccessLog; import com.iailab.framework.common.pojo.CommonResult; +import com.iailab.framework.common.pojo.PageResult; +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.StScheduleRecordVO; import com.iailab.module.model.common.utils.ApiSecurityUtils; import com.iailab.module.model.common.utils.ExcelUtil; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.util.CollectionUtils; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; +import java.math.BigDecimal; import java.text.SimpleDateFormat; -import java.util.Date; -import java.util.List; -import static com.iailab.framework.apilog.core.enums.OperateTypeEnum.EXPORT; +import java.util.*; + +import static com.iailab.framework.common.pojo.CommonResult.success; /** * @author PanZhibao @@ -88,9 +92,18 @@ return CommonResult.success(respVO); } + @PostMapping("/predict-data/cur") + @Operation(summary = "获取当前预测数据") + public CommonResult<Map<String, List<Object[]>>> getPreDataCur(HttpServletResponse response, HttpServletRequest + request, @RequestBody PreDataJsonReqVO reqVO)throws Exception { + apiSecurityUtils.validate(request); + reqVO.setPredictTime(new Date()); + Map<String, List<Object[]>> map = mcsApi.getPreDataCur(reqVO); + return CommonResult.success(map); + } + @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 +113,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 +128,112 @@ } 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); + } + + @PostMapping("/schedule-suggest/list") + @Operation(summary = "获取调度建议") + public CommonResult<List<ScheduleSuggestRespDTO>> listScheduleSuggest(@RequestBody ScheduleSuggestReqDTO vo) { + List<ScheduleSuggestRespDTO> list = mcsApi.listScheduleSuggest(vo); + return CommonResult.success(list); + } + + @PostMapping("/alarm-suggest/page") + @Operation(summary = "获取预警信息和调度建议分页列表") + public CommonResult<PageResult<StAlarmAndSuggestRespVO>> getAlarmAndSuggestPage(@RequestBody StAlarmAndSuggestPageReqVO reqVO) { + PageResult<StAlarmAndSuggestRespVO> page = mcsApi.getAlarmAndSuggestPage(reqVO); + return success(BeanUtils.toBean(page, StAlarmAndSuggestRespVO.class)); + } + + @GetMapping("/chart/param/list") + @Operation(summary = "图表配置列表") + public CommonResult<List<ChartParamDTO>> getChartParamList(@RequestParam("chartCode") String chartCode) { + List<ChartParamDTO> chartParamList = mcsApi.getChartParamList(chartCode); + return CommonResult.success(chartParamList); + } + + @PostMapping("/predict-data/doubleValue") + @Operation(summary = "获取多个预测项Double类型数据") + public CommonResult<Map<String, Map<String,Double>>> getPreDoubleData(@RequestBody PreDoubleDataReqVO reqVO) { + Map<String, Map<String,Double>> map = mcsApi.getPreDoubleData(reqVO); + return CommonResult.success(map); + } + + @PostMapping("/predict-data/last-value") + @Operation(summary = "获取最后预测值") + public CommonResult<Map<String, BigDecimal>> getPredictLastValue(@RequestBody PredictLastValueReqVO reqVO) { + Map<String, BigDecimal> data = mcsApi.getPredictLastValue(reqVO); + return CommonResult.success(data); + } + + @GetMapping("/schedule-data/last") + @Operation(summary = "调度模型最新结果查询") + public CommonResult<List<StScheduleRecordVO>> getLastScheduleData(@RequestParam String scheduleCode, @RequestParam Integer limit) { + if (null == limit) { + limit = 1; + } + return CommonResult.success(mcsApi.getLastScheduleData(scheduleCode,limit)); + } + + @PostMapping("/schedule-data/last/more") + @Operation(summary = "多个调度模型最新结果查询") + public CommonResult<Map<String,List<StScheduleRecordVO>>> getMoreLastScheduleData(@RequestBody Map<String,Object> params) { + if (!params.containsKey("scheduleCodes")) { + return success(new HashMap<>()); + } + Set<String> scheduleCodes = new HashSet<>(((List<String>) params.get("scheduleCodes"))); + if (CollectionUtils.isEmpty(scheduleCodes)) { + return success(new HashMap<>()); + } + Integer limit = 1; + if (params.containsKey("limit")) { + limit = Integer.parseInt(params.get("limit").toString()); + } + + Map<String,List<StScheduleRecordVO>> result = new HashMap<>(scheduleCodes.size()); + for (String scheduleCode : scheduleCodes) { + result.put(scheduleCode,mcsApi.getLastScheduleData(scheduleCode, limit)); + } + return CommonResult.success(result); + } + + @PostMapping("/predict-data/itemNo") + @Operation(summary = "查询时间范围内预测结果") + CommonResult<Map<String,List<Object[]>>> getPredictDataItemNo(@RequestBody PreDataItemNoReqVO reqVO) { + return CommonResult.success(mcsApi.getPredictDataItemNo(reqVO)); + } + + @GetMapping("/electricityPrice/list") + @Operation(summary = "电价表") + public CommonResult<List<ElectricityPriceSegmentedDTO>> getElectricityPriceList(@RequestParam("year") String year, @RequestParam("time") String time) { + List<ElectricityPriceSegmentedDTO> electricityPriceSegmentedList = mcsApi.getElectricityPriceList(year, time); + return CommonResult.success(electricityPriceSegmentedList); + } + + @GetMapping("/schedule/model/setting/update") + @Operation(summary = "修改调度模型配置") + public CommonResult<Boolean> updateScheduleModelSetting(@RequestParam("modelCode") String modelCode, @RequestParam("key") String key, @RequestParam("value") String value){ + mcsApi.updateScheduleModelSetting(modelCode, key, value); + return success( true); + } } \ No newline at end of file -- Gitblit v1.9.3