提交 | 用户 | 时间
ead005 1 package com.iailab.module.model.api.controller.admin;
2
3 import com.iailab.framework.common.pojo.CommonResult;
0a7d0f 4 import com.iailab.framework.common.pojo.PageResult;
5 import com.iailab.framework.common.util.object.BeanUtils;
ead005 6 import com.iailab.module.model.api.mcs.McsApi;
a4891a 7 import com.iailab.module.model.api.mcs.dto.*;
ead005 8 import com.iailab.module.model.common.utils.ApiSecurityUtils;
179784 9 import com.iailab.module.model.common.utils.ExcelUtil;
dec0c2 10 import com.iailab.module.model.influxdb.vo.InfluxModelResultVO;
ead005 11 import io.swagger.v3.oas.annotations.Operation;
12 import io.swagger.v3.oas.annotations.tags.Tag;
13 import lombok.extern.slf4j.Slf4j;
14 import org.springframework.beans.factory.annotation.Autowired;
a4891a 15 import org.springframework.web.bind.annotation.*;
ead005 16
17 import javax.annotation.Resource;
18 import javax.servlet.http.HttpServletRequest;
19 import javax.servlet.http.HttpServletResponse;
179784 20 import java.io.IOException;
bffae5 21 import java.math.BigDecimal;
179784 22 import java.text.SimpleDateFormat;
D 23 import java.util.Date;
a4891a 24 import java.util.List;
6eeac9 25 import java.util.Map;
0a7d0f 26
27 import static com.iailab.framework.common.pojo.CommonResult.success;
ead005 28
29 /**
30  * @author PanZhibao
31  * @Description
32  * @createTime 2024年11月14日
33  */
34 @Slf4j
35 @RestController
36 @RequestMapping("/model/api/mcs")
37 @Tag(name = "数据")
38 public class McsApiController {
39
40     @Resource
41     private ApiSecurityUtils apiSecurityUtils;
42
43     @Autowired
44     private McsApi mcsApi;
45
a4891a 46     @GetMapping("/predict-item/tree")
47     @Operation(summary = "预测项树")
48     public CommonResult<List<PredictItemTreeDTO>> getPredictItemTree(HttpServletResponse response, HttpServletRequest
49             request) throws Exception {
50         apiSecurityUtils.validate(request);
51         List<PredictItemTreeDTO> list = mcsApi.getPredictItemTree();
52         return CommonResult.success(list);
53     }
54
ead005 55     @PostMapping("/predict-data/charts")
56     @Operation(summary = "预测数据图表")
57     public CommonResult<PreDataBarLineRespVO> getPreDataCharts(HttpServletResponse response, HttpServletRequest
58             request, @RequestBody PreDataBarLineReqVO reqVO) throws Exception {
59         apiSecurityUtils.validate(request);
9e844c 60         PreDataBarLineRespVO respVO = new PreDataBarLineRespVO();
61         try {
62             respVO = mcsApi.getPreDataCharts(reqVO);
63         } catch (Exception e) {
64             e.printStackTrace();
65         }
ead005 66         return CommonResult.success(respVO);
67     }
68
69     @PostMapping("/predict-data/item-chart")
70     @Operation(summary = "预测数据图表")
71     public CommonResult<PreDataItemChartRespVO> getPreDataItemChart(HttpServletResponse response, HttpServletRequest
72             request, @RequestBody PreDataItemChartReqVO reqVO) throws Exception {
73         apiSecurityUtils.validate(request);
74         PreDataItemChartRespVO respVO = mcsApi.getPreDataItemChart(reqVO);
75         return CommonResult.success(respVO);
76     }
328ef4 77
977edc 78     @PostMapping("/predict-data/single-chart")
328ef4 79     @Operation(summary = "预测数据图表")
91343d 80     public CommonResult<PreDataSingleChartRespVO> getPreDataSingleChart(HttpServletResponse response, HttpServletRequest
328ef4 81             request, @RequestBody PreDataSingleChartReqVO reqVO) throws Exception {
82         apiSecurityUtils.validate(request);
91343d 83         PreDataSingleChartRespVO respVO = mcsApi.getPreDataSingleChart(reqVO);
328ef4 84         return CommonResult.success(respVO);
85     }
f0a527 86
8a74e9 87     @PostMapping("/plan-data/single-chart")
88     @Operation(summary = "预测数据图表")
89     public CommonResult<PlanDataSingleChartRespVO> getPlanDataSingleChart(HttpServletResponse response, HttpServletRequest
90             request, @RequestBody PreDataSingleChartReqVO reqVO) throws Exception {
91         apiSecurityUtils.validate(request);
92         PlanDataSingleChartRespVO respVO = mcsApi.getPlanDataSingleChart(reqVO);
93         return CommonResult.success(respVO);
94     }
95
6eeac9 96     @PostMapping("/predict-data/cur")
D 97     @Operation(summary = "获取当前预测数据")
98     public CommonResult<Map<String, List<Object[]>>> getPreDataCur(HttpServletResponse response, HttpServletRequest
99             request, @RequestBody PreDataJsonReqVO reqVO)throws Exception {
100         apiSecurityUtils.validate(request);
101         reqVO.setPredictTime(new Date());
102         Map<String, List<Object[]>> map = mcsApi.getPreDataCur(reqVO);
103         return CommonResult.success(map);
104     }
105
179784 106     @GetMapping("/predict-data/exportValue")
D 107     @Operation(summary = "导出预测数据")
108     public void exportPointValue(@RequestParam("itemId") String itemId,
109                                  @RequestParam("startTime") String startTime,
110                                  @RequestParam("endTime") String endTime,
111                                  HttpServletResponse response) throws IOException {
112         SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
113         PreDataItemChartReqVO reqVO = new PreDataItemChartReqVO();
114         reqVO.setItemId(itemId);
115         try {
116             if (startTime == "") {
055765 117                 reqVO.setStartTime(new Date((new Date()).getTime() - 60 * 60 * 1000));
179784 118             } else {
D 119                 reqVO.setStartTime(formatter.parse(startTime));
120
121             }
122             if (endTime == "") {
055765 123                 reqVO.setEndTime(new Date((new Date()).getTime() + 60 * 60 * 1000));
179784 124             } else {
D 125                 reqVO.setEndTime(formatter.parse(endTime));
126             }
127         } catch (Exception e) {
128             e.printStackTrace();
129         }
130         PreDataItemChartRespVO respVO = mcsApi.getPreDataItemChart(reqVO);
131         try {
055765 132             String sheetTitle = "sheet1";
179784 133             ExcelUtil.exportchart(sheetTitle, respVO, response);
D 134         } catch (Exception ex) {
135             ex.printStackTrace();
136         }
137     }
055765 138
139     @GetMapping("/alarm-message/last-one")
140     @Operation(summary = "根据监控对象获取最新预警信息")
141     public CommonResult<AlarmMessageRespDTO> getLastAlarmMessage(HttpServletResponse response, HttpServletRequest
142             request, @RequestParam("alarmObj") String alarmObj) {
143         AlarmMessageRespDTO data = mcsApi.getLastAlarmMessage(alarmObj);
144         return CommonResult.success(data);
145     }
146
147     @GetMapping("/schedule-suggest/last-limit")
148     @Operation(summary = "根据监控对象获取最新预警信息")
149     public CommonResult<List<ScheduleSuggestRespDTO>> getLastLimitScheduleSuggest(HttpServletResponse response, HttpServletRequest
150             request, @RequestParam("scheduleObj") String scheduleObj, @RequestParam("limit") Integer limit) {
151         List<ScheduleSuggestRespDTO> data = mcsApi.getLastLimitScheduleSuggest(scheduleObj, limit);
152         return CommonResult.success(data);
153     }
0a7d0f 154
10edab 155     @PostMapping("/alarm-suggest/page")
0a7d0f 156     @Operation(summary = "获取预警信息和调度建议分页列表")
157     public CommonResult<PageResult<StAlarmAndSuggestRespVO>> getAlarmAndSuggestPage(@RequestBody StAlarmAndSuggestPageReqVO reqVO) {
158         PageResult<StAlarmAndSuggestRespVO> page = mcsApi.getAlarmAndSuggestPage(reqVO);
159         return success(BeanUtils.toBean(page, StAlarmAndSuggestRespVO.class));
160     }
66782b 161
D 162     @GetMapping("/chart/param/list")
163     @Operation(summary = "图表配置列表")
164     public CommonResult<List<ChartParamDTO>> getChartParamList(@RequestParam("chartCode") String chartCode) {
165         List<ChartParamDTO> chartParamList = mcsApi.getChartParamList(chartCode);
166         return CommonResult.success(chartParamList);
167     }
22e321 168
D 169     @PostMapping("/predict-data/doubleValue")
170     @Operation(summary = "获取多个预测项Double类型数据")
171     public CommonResult<Map<String, Map<String,Double>>> getPreDoubleData(@RequestBody PreDoubleDataReqVO reqVO) {
172         Map<String, Map<String,Double>> map = mcsApi.getPreDoubleData(reqVO);
173         return CommonResult.success(map);
174     }
bffae5 175
176     @PostMapping("/predict-data/last-value")
177     @Operation(summary = "获取最后预测值")
178     public CommonResult<Map<String, BigDecimal>> getPredictLastValue(@RequestBody PredictLastValueReqVO reqVO) {
179         Map<String, BigDecimal> data = mcsApi.getPredictLastValue(reqVO);
180         return CommonResult.success(data);
181     }
dec0c2 182
D 183     @GetMapping("/predict-data/electric")
184     @Operation(summary = "电力功率因数预测结果查询")
185     public CommonResult<Map<String,List<Object[]>>> getElectricPredictData(@RequestParam String itemCode) {
186         Map<String,List<Object[]>> data = mcsApi.getElectricPredictData(itemCode);
187         return CommonResult.success(data);
188     }
189     @GetMapping("/schedule-data/last")
190     @Operation(summary = "调度模型最新结果查询")
191     public CommonResult<String> getLastScheduleData(@RequestParam String scheduleCode) {
192         return CommonResult.success(mcsApi.getLastScheduleData(scheduleCode));
193     }
194
195     @PostMapping("/machineRealTimeStatus")
196     @Operation(summary = "发电机组实时状态查询")
197     CommonResult<List<Map<String, Object>>> getRealTimeStatus(@RequestBody List<Map<String, Object>> machines) {
198         return CommonResult.success(mcsApi.getRealTimeStatus(machines));
199     }
ead005 200 }