| | |
| | | import com.alibaba.fastjson.JSONObject; |
| | | import com.iailab.framework.common.exception.enums.GlobalErrorCodeConstants; |
| | | import com.iailab.framework.common.pojo.CommonResult; |
| | | import com.iailab.framework.common.util.date.DateUtils; |
| | | import com.iailab.module.ansteel.api.vo.PowerTransferDetRespVO; |
| | | import com.iailab.module.ansteel.api.vo.PowerTransferReqVO; |
| | | import com.iailab.module.ansteel.api.vo.PowerTransferRespVO; |
| | | import com.iailab.module.ansteel.common.enums.TransferTypeEnum; |
| | | import com.iailab.module.ansteel.common.utils.DecimalUtil; |
| | | import com.iailab.module.model.api.mdk.MdkApi; |
| | | import com.iailab.module.model.api.mdk.dto.MdkScheduleReqDTO; |
| | |
| | | calendar.set(Calendar.MILLISECOND,0); |
| | | MdkScheduleReqDTO dto = new MdkScheduleReqDTO(); |
| | | dto.setScheduleTime(calendar.getTime()); |
| | | |
| | | if ("1".equals(reqVO.getType())) { |
| | | // 高炉休风 |
| | | 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); |
| | | } else if ("2".equals(reqVO.getType())) { |
| | | // 产线检修 |
| | | |
| | | |
| | | String nowH = DateUtils.format(calendar.getTime(), "hh:mm"); |
| | | switch (TransferTypeEnum.getEumByCode(reqVO.getType())) { |
| | | case XF: |
| | | // 高炉休风 |
| | | dto.setScheduleCode("AnSteelpowertransfer"); |
| | | Map<String, String> dynamicSettings = new HashMap<>(); |
| | | Integer[] xiufengOrder = { |
| | | reqVO.getBfg(), |
| | | reqVO.getStart(), |
| | | reqVO.getNow() == null ? Integer.parseInt(nowH) : reqVO.getNow(), |
| | | reqVO.getMins()}; |
| | | dynamicSettings.put("xiufeng_order", JSONArray.toJSONString(xiufengOrder)); |
| | | dynamicSettings.put("jiaohua_BFG_down", reqVO.getLimit().toString()); |
| | | dto.setDynamicSettings(dynamicSettings); |
| | | break; |
| | | case JX: |
| | | // 产线检修 |
| | | break; |
| | | default: |
| | | return CommonResult.error(GlobalErrorCodeConstants.NOT_FOUND, "Type参数错误"); |
| | | } |
| | | |
| | | log.info("调度方案开始执行," + JSONObject.toJSONString(dto)); |
| | | MdkScheduleRespDTO mdkScheduleRespDTO = mdkApi.doSchedule(dto); |
| | | log.info("调度方案执行完成," + mdkScheduleRespDTO); |
| | |
| | | } |
| | | |
| | | Map<String, Object> data = mdkScheduleRespDTO.getResult(); |
| | | if ("1".equals(reqVO.getType())) { |
| | | // 高炉休风 |
| | | 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()); |
| | | switch (TransferTypeEnum.getEumByCode(reqVO.getType())) { |
| | | case XF: |
| | | // 高炉休风 |
| | | result.setBestTotalPower(DecimalUtil.toBigDecimal(data.get("best_total_power")));//负荷调整总量 |
| | | result.setBfgGap(DecimalUtil.toBigDecimal(data.get("bfg_gap")));//煤气送管网缺口 |
| | | result.setDemand(DecimalUtil.toBigDecimal(data.get("demand")));//需量缺口 |
| | | result.setCogGapTime(data.get("cog_gap") == null ? 0 : DecimalUtil.toBigDecimal(data.get("cog_gap"), 0).intValue()); //焦化减高炉煤气-时间 |
| | | result.setCogGapAmount(data.get("cog_gap") == null ? 0 : DecimalUtil.toBigDecimal(data.get("cog_gap"), 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"))); |
| | | if (data.get("zhongabnAdvice") != null) { |
| | | adviceList.add(DecimalUtil.toPowerTransferDetRespVO("中板工序", data.get("zhongabnAdvice"))); |
| | | } |
| | | if (data.get("houbanAdvice") != null) { |
| | | adviceList.add(DecimalUtil.toPowerTransferDetRespVO("厚板工序", data.get("houbanAdvice"))); |
| | | } |
| | | if (data.get("rezhaAdvice") != null) { |
| | | adviceList.add(DecimalUtil.toPowerTransferDetRespVO("热轧工序", data.get("rezhaAdvice"))); |
| | | } |
| | | if (data.get("baihuiAdvice") != null) { |
| | | adviceList.add(DecimalUtil.toPowerTransferDetRespVO("白灰工序", data.get("baihuiAdvice"))); |
| | | } |
| | | if (data.get("zhiyangAdvice") != null) { |
| | | adviceList.add(DecimalUtil.toPowerTransferDetRespVO("3#制氧机", data.get("zhiyangAdvice"))); |
| | | } |
| | | if (data.get("1LFAdvice") != null) { |
| | | adviceList.add(DecimalUtil.toPowerTransferDetRespVO("1#LF炉", data.get("1LFAdvice"))); |
| | | } |
| | | if (data.get("2LFAdvice") != null) { |
| | | adviceList.add(DecimalUtil.toPowerTransferDetRespVO("2#LF炉", data.get("2LFAdvice"))); |
| | | } |
| | | if (data.get("shaojieAdvice") != null) { |
| | | adviceList.add(DecimalUtil.toPowerTransferDetRespVO("B系列烧结", data.get("shaojieAdvice"))); |
| | | } |
| | | if (data.get("shaojieAdvice") != null) { |
| | | adviceList.add(DecimalUtil.toPowerTransferDetRespVO("CCPP", data.get("CCPPAdvice"))); |
| | | } |
| | | result.setAdviceList(adviceList); |
| | | log.info("XFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXF"); |
| | | break; |
| | | case JX: |
| | | // 产线检修 |
| | | |
| | | } else if ("2".equals(reqVO.getType())) { |
| | | // 产线检修 |
| | | log.info("JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX"); |
| | | break; |
| | | default: |
| | | |
| | | break; |
| | | |
| | | } |
| | | |
| | | } catch (Exception ex) { |
| | | ex.printStackTrace(); |
| | | return CommonResult.error(GlobalErrorCodeConstants.UNKNOWN.getCode(), ex.getMessage()); |
| | | } |
| | | log.info("result=" + JSONObject.toJSONString(result)); |
| | | return CommonResult.success(result); |
| | | } |
| | | } |