鞍钢鲅鱼圈能源管控系统后端代码
houzhongjian
2025-04-11 0e9ed190503601a2896fc2f4fc5de2994c9eb776
ansteel-biz/src/main/java/com/iailab/module/ansteel/api/controller/admin/DataController.java
@@ -1,24 +1,11 @@
package com.iailab.module.ansteel.api.controller.admin;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.iailab.framework.common.exception.enums.GlobalErrorCodeConstants;
import com.iailab.framework.common.pojo.CommonResult;
import com.iailab.module.ansteel.api.dto.PlanDataChartReqVO;
import com.iailab.module.ansteel.api.dto.PowerRunStateDTO;
import com.iailab.module.ansteel.api.dto.PreDataChartRespVO;
import com.iailab.module.ansteel.api.dto.*;
import com.iailab.module.ansteel.api.service.DataApi;
import com.iailab.module.ansteel.api.vo.PowerTransferDetRespVO;
import com.iailab.module.ansteel.api.vo.PowerTransferReqVO;
import com.iailab.module.ansteel.common.utils.DecimalUtil;
import com.iailab.module.ansteel.api.vo.PowerTransferRespVO;
import com.iailab.module.api.mcs.AnSteelApi;
import com.iailab.module.api.mcs.dto.PowerRunStateDTO;
import com.iailab.module.api.mcs.dto.PreDataChartRespVO;
import com.iailab.module.model.api.mcs.dto.PreDataSingleChartReqVO;
import com.iailab.module.model.api.mdk.MdkApi;
import com.iailab.module.model.api.mdk.dto.MdkScheduleReqDTO;
import com.iailab.module.model.api.mdk.dto.MdkScheduleRespDTO;
import com.iailab.module.model.api.mcs.dto.StAlarmAndSuggestReqVO;
import com.iailab.module.model.api.mcs.dto.StAlarmAndSuggestRespVO;
import io.swagger.v3.oas.annotations.Operation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
@@ -39,9 +26,6 @@
    @Autowired
    private DataApi dataApi;
    @Autowired
    private MdkApi mdkApi;
    @GetMapping("/power-run-state/list")
    @Operation(summary = "发电厂机组运行情况")
@@ -64,51 +48,23 @@
        return CommonResult.success(tMap);
    }
    @PostMapping("/schedule/power-transfer")
    @Operation(summary = "异常工况下的负荷移植")
    public CommonResult<PowerTransferRespVO> scheduleEleLoad(@RequestBody PowerTransferReqVO reqVO) {
        PowerTransferRespVO result = new PowerTransferRespVO();
        List<PowerTransferDetRespVO> adviceList = new ArrayList<>();
        try {
            log.info("PowerTransferReqVO=" + JSONObject.toJSONString(reqVO));
            Calendar calendar = Calendar.getInstance();
            calendar.set(Calendar.SECOND,0);
            calendar.set(Calendar.MILLISECOND,0);
            MdkScheduleReqDTO dto = new MdkScheduleReqDTO();
            dto.setScheduleTime(calendar.getTime());
            dto.setScheduleCode("AnSteelpowertransfer");
            Map<String, String> dynamicSettings = new HashMap<>();
            Integer[] xiufengOrder = {reqVO.getBfg(),
                    reqVO.getStart(),
                    reqVO.getMins()};
            dynamicSettings.put("xiufeng_order", JSONArray.toJSONString(xiufengOrder));
            dynamicSettings.put("jiaohua_BFG_down", reqVO.getLimit().toString());
            dto.setDynamicSettings(dynamicSettings);
            MdkScheduleRespDTO mdkScheduleRespDTO = mdkApi.doSchedule(dto);
            log.info("调度方案执行完成," + mdkScheduleRespDTO);
            Map<String, Object> data = mdkScheduleRespDTO.getResult();
            result.setBestTotalPower(DecimalUtil.toBigDecimal(data.get("best_total_power")));
            result.setBfgAdvice(DecimalUtil.toBigDecimal(data.get("BFGAdvice")));
            result.setDemandAdvice(DecimalUtil.toBigDecimal(data.get("DemandAdvice")));
            result.setJiaohuaAdviceTime(DecimalUtil.toBigDecimal(data.get("jiaohuaAdvice"), 0).intValue());
            result.setJiaohuaAdviceAmount(DecimalUtil.toBigDecimal(data.get("jiaohuaAdvice"), 1).intValue());
            adviceList.add(DecimalUtil.toPowerTransferDetRespVO("中板工序", data.get("zhongabnAdvice")));
            adviceList.add(DecimalUtil.toPowerTransferDetRespVO("厚板工序", data.get("houbanAdvice")));
            adviceList.add(DecimalUtil.toPowerTransferDetRespVO("热轧工序", data.get("rezhaAdvice")));
            adviceList.add(DecimalUtil.toPowerTransferDetRespVO("白灰工序", data.get("baihuiAdvice")));
            adviceList.add(DecimalUtil.toPowerTransferDetRespVO("3#制氧机", data.get("zhiyangAdvice")));
            adviceList.add(DecimalUtil.toPowerTransferDetRespVO("1#LF炉", data.get("1LFAdvice")));
            adviceList.add(DecimalUtil.toPowerTransferDetRespVO("2#LF炉", data.get("2LFAdvice")));
            adviceList.add(DecimalUtil.toPowerTransferDetRespVO("B系列烧结", data.get("shaojieAdvice")));
            adviceList.add(DecimalUtil.toPowerTransferDetRespVO("CCPP", data.get("CCPPAdvice")));
        } catch (Exception ex) {
            ex.printStackTrace();
            return CommonResult.error(GlobalErrorCodeConstants.UNKNOWN.getCode(), ex.getMessage());
        }
        return CommonResult.success(result);
    @GetMapping("/main-process-index/list")
    @Operation(summary = "主工序指标")
    public CommonResult<List<MainProcessIndexDTO>> getMainIndexList(@RequestParam Map<String, Object> params) {
        List<MainProcessIndexDTO> list = dataApi.getIndexList(params);
        return success(list);
    }
    @GetMapping("/child-process-index/list")
    @Operation(summary = "子工序指标")
    public CommonResult<List<ChildProcessIndexDTO>> getChildIndexList(@RequestParam Map<String, Object> params) {
        List<ChildProcessIndexDTO> list = new ArrayList<>();
        return success(list);
    }
    @PostMapping("/schedule-suggest/use-suggest")
    @Operation(summary = "采纳建议")
    public CommonResult<Boolean> useSuggest(@RequestBody StAlarmAndSuggestReqVO ReqVO) {
        return success(dataApi.useSuggest(ReqVO));
    }
}