| | |
| | | |
| | | MdkScheduleReqDTO fhyzDto = new MdkScheduleReqDTO(); |
| | | PowerTransferRespVO result = new PowerTransferRespVO(); |
| | | List<PowerTransferDetRespVO> adviceList = new ArrayList<>(); |
| | | List<PowerTransferDetRespVO> demandAdviceList = new ArrayList<>(); |
| | | List<PowerTransferDetRespVO> gasAdviceList = new ArrayList<>(); |
| | | try { |
| | | log.info("PowerTransferReqVO=" + JSONObject.toJSONString(reqVO)); |
| | | Calendar calendar = Calendar.getInstance(); |
| | | calendar.set(Calendar.SECOND,0); |
| | | calendar.set(Calendar.MILLISECOND,0); |
| | | |
| | | // 0 建议编码 |
| | | List<ChartParamDTO> demandParamList = mcsApi.getChartParamList(com.iailab.module.ansteel.common.constant.CommonConstant.FHYZ_DEMAND_ADVICE); |
| | | Map<String, ChartParamDTO> demandAdviceCodeMap = new HashMap<>(); |
| | | List<String> demandAdviceCodeList = new ArrayList<>(); |
| | | if (demandParamList != null) { |
| | | for (ChartParamDTO chartParamDTO : demandParamList) { |
| | | demandAdviceCodeMap.put(chartParamDTO.getParamCode(), chartParamDTO); |
| | | demandAdviceCodeList.add(chartParamDTO.getParamCode()); |
| | | } |
| | | } |
| | | |
| | | List<ChartParamDTO> gasParamList = mcsApi.getChartParamList(com.iailab.module.ansteel.common.constant.CommonConstant.FHYZ_GAS_ADVICE); |
| | | Map<String, ChartParamDTO> gasAdviceCodeMap = new HashMap<>(); |
| | | List<String> gasAdviceCodeList = new ArrayList<>(); |
| | | if (gasParamList != null) { |
| | | for (ChartParamDTO chartParamDTO : gasParamList) { |
| | | gasAdviceCodeMap.put(chartParamDTO.getParamCode(), chartParamDTO); |
| | | gasAdviceCodeList.add(chartParamDTO.getParamCode()); |
| | | } |
| | | } |
| | | |
| | | String nowH = DateUtils.format(calendar.getTime(), "hh:mm"); |
| | | switch (TransferTypeEnum.getEumByCode(reqVO.getType())) { |
| | | case XF: |
| | | // 0 建议编码 |
| | | List<ChartParamDTO> chartParamList = mcsApi.getChartParamList(com.iailab.module.ansteel.common.constant.CommonConstant.FHYZ_ADVICE_CODE); |
| | | Map<String, Integer> fhyzAdviceCodeMap = new HashMap<>(); |
| | | List<String> fhyzAdviceCodeList = new ArrayList<>(); |
| | | if (chartParamList != null) { |
| | | for (ChartParamDTO chartParamDTO : chartParamList) { |
| | | fhyzAdviceCodeMap.put(chartParamDTO.getParamCode(), Integer.parseInt(chartParamDTO.getParamValue())); |
| | | fhyzAdviceCodeList.add(chartParamDTO.getParamCode()); |
| | | } |
| | | } |
| | | |
| | | // 1 日平衡 |
| | | /*日平衡动态参数 |
| | | zhiling_params [休风高炉,休风时长] |
| | | jiaohua_params [是否减焦化BFG,下限] |
| | | load_change_state [热轧,厚板,中板,A系列烧结,B系列烧结] |
| | | testlist [热轧,厚板,中板,A系列烧结,B系列烧结] |
| | | GASrezhaAdvice |
| | | GAShoubanAdvice |
| | | GASzhongbanAdvice |
| | |
| | | for (int i = 0; i < loadChangeArr.length; i++) { |
| | | loadChangeState.add(reqVO.getAdviceCodeList().contains(loadChangeArr[i]) ? 1 : 0); |
| | | } |
| | | rphSettings.put("load_change_state", JSONArray.toJSONString(loadChangeState)); |
| | | rphSettings.put("testlist", JSONArray.toJSONString(loadChangeState)); |
| | | rphScheduleReqDTO.setDynamicSettings(rphSettings); |
| | | log.info("负荷移植调用日平衡开始执行," + JSONObject.toJSONString(rphScheduleReqDTO)); |
| | | MdkScheduleRespDTO rphRespDTO = mdkApi.doSchedule(rphScheduleReqDTO); |
| | |
| | | } |
| | | String gasUseAllnNew = rphRespDTO.getResult().get("Gas_Use_All_new").toString(); |
| | | log.info("gasUseAllnNew=" + gasUseAllnNew); |
| | | |
| | | |
| | | // 高炉休风 |
| | | fhyzDto.setScheduleTime(calendar.getTime()); |
| | |
| | | choiceParams.add(-1); |
| | | } else { |
| | | for(String adviceCode : reqVO.getAdviceCodeList()) { |
| | | choiceParams.add(fhyzAdviceCodeMap.get(adviceCode)); |
| | | choiceParams.add(Integer.parseInt(demandAdviceCodeMap.get(adviceCode).getParamValue())); |
| | | } |
| | | } |
| | | dynamicSettings.put("choice_params", JSONArray.toJSONString(choiceParams)); |
| | |
| | | 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(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());//焦化减高炉煤气-数量 |
| | | result.setBfgShengyue(DecimalUtil.toBigDecimal(data.get("BFG_shengyu"))); |
| | | result.setDemand(data.get("demand")); |
| | | result.setGasGap(data.get("gas_gap")); |
| | | result.setFadian(data.get("fadian")); |
| | | |
| | | if (data.get("zhongbanAdvice") != null) { |
| | | adviceList.add(DecimalUtil.toPowerTransferDetRespVO("中板工序", data.get("zhongbanAdvice"))); |
| | | for (String adviceCode : demandAdviceCodeList) { |
| | | if (data.get(adviceCode) != null) { |
| | | demandAdviceList.add(DecimalUtil.toPowerTransferDetRespVO(demandAdviceCodeMap.get(adviceCode).getParamName(), data.get(adviceCode))); |
| | | } |
| | | } |
| | | if (data.get("houbanAdvice") != null) { |
| | | adviceList.add(DecimalUtil.toPowerTransferDetRespVO("厚板工序", data.get("houbanAdvice"))); |
| | | for (String adviceCode : gasAdviceCodeList) { |
| | | if (data.get(adviceCode) != null) { |
| | | demandAdviceList.add(DecimalUtil.toPowerTransferDetRespVO(gasAdviceCodeMap.get(adviceCode).getParamName(), data.get(adviceCode))); |
| | | } |
| | | } |
| | | 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("3#zhiyangAdvice") != null) { |
| | | adviceList.add(DecimalUtil.toPowerTransferDetRespVO("3#制氧机", data.get("3#zhiyangAdvice"))); |
| | | } |
| | | if (data.get("1#LFAdvice") != null) { |
| | | adviceList.add(DecimalUtil.toPowerTransferDetRespVO("1#LF炉", data.get("1#LFAdvice"))); |
| | | } |
| | | if (data.get("2#LFAdvice") != null) { |
| | | adviceList.add(DecimalUtil.toPowerTransferDetRespVO("2#LF炉", data.get("2#LFAdvice"))); |
| | | } |
| | | if (data.get("shaojieAdvice") != null) { |
| | | adviceList.add(DecimalUtil.toPowerTransferDetRespVO("B系列烧结", data.get("shaojieAdvice"))); |
| | | } |
| | | if (data.get("CCPPAdvice") != null) { |
| | | adviceList.add(DecimalUtil.toPowerTransferDetRespVO("CCPP", data.get("CCPPAdvice"))); |
| | | } |
| | | if (data.get("135Advice") != null) { |
| | | adviceList.add(DecimalUtil.toPowerTransferDetRespVO("135机组", data.get("135Advice"))); |
| | | } |
| | | if (data.get("1#2#zhiyangAdvice") != null) { |
| | | adviceList.add(DecimalUtil.toPowerTransferDetRespVO("1#2#制氧机", data.get("1#2#zhiyangAdvice"))); |
| | | } |
| | | if (data.get("2#lianganglianzhuAdvice") != null) { |
| | | adviceList.add(DecimalUtil.toPowerTransferDetRespVO("2#炼钢连铸", data.get("2#lianganglianzhuAdvice"))); |
| | | } |
| | | result.setAdviceList(adviceList); |
| | | result.setDemandAdviceList(demandAdviceList); |
| | | log.info("XFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXF"); |
| | | break; |
| | | case JX: |