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<List<PowerRunStateDTO>> getPowerRunState(@RequestParam Map<String, Object> params) {
|
List<PowerRunStateDTO> list = dataService.getPowerRunState();
|
return success(list);
|
}
|
|
@PostMapping("/predict-data/charts")
|
@Operation(summary = "预测数据图表")
|
public CommonResult<PreDataChartRespVO> getPreDataChart(@RequestBody PreDataSingleChartReqVO reqVO) {
|
PreDataChartRespVO respVO = dataService.getPreDataChart(reqVO);
|
return CommonResult.success(respVO);
|
}
|
|
@PostMapping("/predict-data/chartsByOutIds")
|
@Operation(summary = "根据outId查询预测数据")
|
public CommonResult<List<PreDataViewSimpleDTO>> getPreDataByOutIds(@RequestBody PreDataBarLineReqVO reqVO) {
|
List<PreDataViewSimpleDTO> respVO = dataService.getPreDataByOutIds(reqVO);
|
return CommonResult.success(respVO);
|
}
|
|
@PostMapping("/plan-data/charts")
|
@Operation(summary = "计划数据图表")
|
public CommonResult<Map<String, Object>> getPlanDataChart(@RequestBody PlanDataChartReqVO reqVO) {
|
Map<String, Object> tMap = dataService.getPlanDataChart(reqVO);
|
return CommonResult.success(tMap);
|
}
|
|
@PostMapping("/schedule-suggest/use-suggest")
|
@Operation(summary = "采纳建议")
|
public CommonResult<Boolean> useSuggest(@RequestBody StAlarmAndSuggestReqVO ReqVO) {
|
return success(dataService.useSuggest(ReqVO));
|
}
|
|
@PostMapping("/schedule-suggest/ignore-suggest")
|
@Operation(summary = "忽略建议")
|
public CommonResult<Boolean> ignoreSuggest(@RequestBody StAlarmAndSuggestReqVO ReqVO) {
|
return success(dataService.ignoreSuggest(ReqVO));
|
}
|
|
@GetMapping("/data/history-value")
|
@Operation(summary = "指标/测点历史数据")
|
public CommonResult<List<Object[]>> getHistoryValue(@RequestParam Map<String, Object> params) {
|
return success(dataService.getHistoryValue(params));
|
}
|
|
@PostMapping("/datas/history-value")
|
@Operation(summary = "多个指标/测点历史数据")
|
public CommonResult<Map<String,List<Object[]>>> getDatasHistoryValue(@RequestBody Map<String, Object> params) {
|
Map<String,List<Object[]>> result = new HashMap<>();
|
if (!params.containsKey("datas") || StringUtils.isBlank(params.get("datas").toString())) {
|
return success(result);
|
}
|
JSONArray jsonArray = JSON.parseArray(JSON.toJSONString(params.get("datas")));
|
for (Object data : jsonArray) {
|
Map<String, Object> param = new HashMap<>();
|
JSONObject jsonObject = JSON.parseObject(JSON.toJSONString(data));
|
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<Object[]> historyValue = dataService.getHistoryValue(param);
|
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();
|
}
|
|
|
}
|