package com.iailab.module.ansteel.api.controller.admin; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.iailab.framework.common.pojo.CommonResult; import com.iailab.module.ansteel.api.dto.*; import com.iailab.module.ansteel.api.service.DataService; import com.iailab.module.data.api.point.DataPointApi; import com.iailab.module.data.api.point.dto.ApiPointValueWriteDTO; import com.iailab.module.model.api.mcs.dto.PreDataBarLineReqVO; import com.iailab.module.model.api.mcs.dto.PreDataSingleChartReqVO; import com.iailab.module.model.api.mcs.dto.StAlarmAndSuggestReqVO; import io.swagger.v3.oas.annotations.Operation; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import java.util.*; import static com.iailab.framework.common.pojo.CommonResult.success; /** * @author: lirm * @date: 2025/03/17 **/ @Slf4j @RestController @RequestMapping("/ansteel/api/mcs") public class DataController { @Autowired private DataService dataService; @Autowired private DataPointApi dataPointApi; @GetMapping("/power-run-state/list") @Operation(summary = "发电厂机组运行情况") public CommonResult> getPowerRunState(@RequestParam Map params) { List list = dataService.getPowerRunState(); return success(list); } @PostMapping("/predict-data/charts") @Operation(summary = "预测数据图表") public CommonResult getPreDataChart(@RequestBody PreDataSingleChartReqVO reqVO) { PreDataChartRespVO respVO = dataService.getPreDataChart(reqVO); return CommonResult.success(respVO); } @PostMapping("/predict-data/chartsByOutIds") @Operation(summary = "根据outId查询预测数据") public CommonResult> getPreDataByOutIds(@RequestBody PreDataBarLineReqVO reqVO) { List respVO = dataService.getPreDataByOutIds(reqVO); return CommonResult.success(respVO); } @PostMapping("/plan-data/charts") @Operation(summary = "计划数据图表") public CommonResult> getPlanDataChart(@RequestBody PlanDataChartReqVO reqVO) { Map tMap = dataService.getPlanDataChart(reqVO); return CommonResult.success(tMap); } @PostMapping("/schedule-suggest/use-suggest") @Operation(summary = "采纳建议") public CommonResult useSuggest(@RequestBody StAlarmAndSuggestReqVO ReqVO) { return success(dataService.useSuggest(ReqVO)); } @PostMapping("/schedule-suggest/ignore-suggest") @Operation(summary = "忽略建议") public CommonResult ignoreSuggest(@RequestBody StAlarmAndSuggestReqVO ReqVO) { return success(dataService.ignoreSuggest(ReqVO)); } @GetMapping("/data/history-value") @Operation(summary = "指标/测点历史数据") public CommonResult> getHistoryValue(@RequestParam Map params) { return success(dataService.getHistoryValue(params)); } @PostMapping("/datas/history-value") @Operation(summary = "多个指标/测点历史数据") public CommonResult>> getDatasHistoryValue(@RequestBody Map params) { Map> result = new HashMap<>(); if (!params.containsKey("datas") || StringUtils.isBlank(params.get("datas").toString())) { return success(result); } log.info("datas:" + params.get("datas").toString()); JSONArray jsonArray = JSON.parseArray(params.get("datas").toString()); for (Object data : jsonArray) { Map param = new HashMap<>(); JSONObject jsonObject = JSON.parseObject(data.toString()); param.put("dataType",jsonObject.get("dataType")); param.put("dataNo",jsonObject.get("dataNo")); param.put("startTime",params.get("startTime")); param.put("endTime",params.get("endTime")); List historyValue = dataService.getHistoryValue(params); result.put(jsonObject.get("dataNo").toString(),historyValue); } return success(result); } @PostMapping("/write-point-value") @Operation(summary = "写入测点值") public CommonResult writePointRealValue(@RequestBody ApiPointValueWriteDTO writeDTO) { dataPointApi.writePointRealValue(writeDTO); return success(); } }