From 2f9a4665550ec7ee273bf67433e8a0c4bd178379 Mon Sep 17 00:00:00 2001 From: 潘志宝 <979469083@qq.com> Date: 星期四, 12 六月 2025 10:43:09 +0800 Subject: [PATCH] 功率因数调整结果查询 --- ansteel-biz/src/main/java/com/iailab/module/ansteel/api/controller/admin/PowerController.java | 98 ++++++++++++++++++++++++++++++------------------ 1 files changed, 61 insertions(+), 37 deletions(-) diff --git a/ansteel-biz/src/main/java/com/iailab/module/ansteel/api/controller/admin/PowerController.java b/ansteel-biz/src/main/java/com/iailab/module/ansteel/api/controller/admin/PowerController.java index eaee015..b315a3e 100644 --- a/ansteel-biz/src/main/java/com/iailab/module/ansteel/api/controller/admin/PowerController.java +++ b/ansteel-biz/src/main/java/com/iailab/module/ansteel/api/controller/admin/PowerController.java @@ -12,6 +12,7 @@ import com.iailab.module.ansteel.api.vo.PowerCapacitorHisPageReqVO; import com.iailab.module.ansteel.api.vo.PowerMaxDemandMainPageReqVO; import com.iailab.module.ansteel.common.constant.CommonConstant; +import com.iailab.module.ansteel.common.enums.ProcessConfDataTypeEnum; import com.iailab.module.ansteel.common.enums.TransferTypeEnum; import com.iailab.module.ansteel.common.utils.DecimalUtil; import com.iailab.module.ansteel.common.utils.PowerUtil; @@ -1320,8 +1321,9 @@ } @PostMapping("/factor-control/list") - @Operation(summary = "功率因数管控") + @Operation(summary = "功率因数调整结果查询") public CommonResult<List<PowerFactorControlDTO>> powerFactorControlList(@RequestBody PowerFactorReqVO powerFactorReqVO) { + List<PowerFactorControlDTO> result = new ArrayList<>(); Map<String, Object> chartMap = new HashMap<>(); List<ChartParamDTO> chartList = mcsApi.getChartParamList(CommonConstant.POWER_CODE); chartList.forEach(item -> { @@ -1350,66 +1352,88 @@ dto.setScheduleCode("AnsteelOffPowerAC"); Map<String, String> dynamicSettings = new HashMap<>(); dynamicSettings.put("option_param", JSONArray.toJSONString(contentListNew.stream().toArray(Integer[]::new))); - dynamicSettings.put("cos_param", JSONArray.toJSONString(powerFactorReqVO.getAdjustValueList().stream().toArray(String[]::new))); + List<String> cosParam = new ArrayList<>(); + cosParam.add(powerFactorReqVO.getAdjustValueCcpp().toString()); + cosParam.add(powerFactorReqVO.getAdjustValue135().toString()); + cosParam.add(powerFactorReqVO.getAdjustValueTrt().toString()); + dynamicSettings.put("cos_param", JSONArray.toJSONString(cosParam)); dto.setDynamicSettings(dynamicSettings); log.info("调度方案开始执行," + JSONObject.toJSONString(dto)); - MdkScheduleRespDTO mdkScheduleRespDTO = mdkApi.doSchedule(dto); - log.info("调度方案执行完成," + mdkScheduleRespDTO); + // MdkScheduleRespDTO mdkScheduleRespDTO = mdkApi.doSchedule(dto); + //log.info("调度方案执行完成," + mdkScheduleRespDTO); - String statusCode = mdkScheduleRespDTO.getStatusCode(); + /*String statusCode = mdkScheduleRespDTO.getStatusCode(); if (!CommonConstant.MDK_STATUS_100.equals(statusCode)) { log.info("statusCode=" + statusCode); return CommonResult.error(GlobalErrorCodeConstants.UNKNOWN.getCode(), "工序异常,无计算结果"); } - Map<String, Object> data = mdkScheduleRespDTO.getResult(); - List<String> adjustCosList = Arrays.asList(data.get("adjust_cos").toString().split(","));//管控结果 + Map<String, Object> data = mdkScheduleRespDTO.getResult();*/ + // 调整后的功率因数 + // List<String> adjustCosList = Arrays.asList(data.get("adjust_cos").toString().split(",")); + String fakeData = "[0.39,0.98,0.98,0 91,1.0,0.93,0.86,0.89,0.98,0.9,0.97,0.89,0.84,0.91]"; + List<BigDecimal> adjustCosList = JSONArray.parseArray(fakeData, BigDecimal.class); - PowerFactorControlDTO powerFactorControlDTO = new PowerFactorControlDTO(); - List<PowerFactorControlDTO> result = new ArrayList<>(); - List<PowerFactorControlDTO> list = powerFactorControlService.list(powerFactorControlDTO); + // 无功管控结果 + BigDecimal back_wugong_buchang = new BigDecimal(36.92); + adjustCosList.add(back_wugong_buchang); + + Map<Integer, BigDecimal> adjustCosMap = new HashMap<>(); + for (int i = 1; i <= adjustCosList.size(); i++) { + adjustCosMap.put(i, adjustCosList.get(i)); + } + + List<PowerFactorControlEntity> list = powerFactorControlService.list(); if (CollectionUtils.isEmpty(list)) { log.info("list is empty"); return success(result); } - for (int i = 0; i < list.size(); i++) { - PowerFactorControlDTO controlDTO = list.get(i); + for (int i = 1; i <= list.size(); i++) { + PowerFactorControlEntity entity = list.get(i); + PowerFactorControlDTO controlDTO = new PowerFactorControlDTO(); + controlDTO.setName(entity.getName()); + controlDTO.setSort(entity.getSort()); try { - PredictLastValueReqVO reqVO = new PredictLastValueReqVO(); - reqVO.setPredictTime(calendar.getTime()); - List<String[]> itemNos = new ArrayList<>(); - if (StringUtils.isNotBlank(controlDTO.getPredResult())) { - itemNos.add(controlDTO.getPredResult().split(",")); + // 预测结果 + switch (ProcessConfDataTypeEnum.getEumByCode(entity.getDataType())) { + case DATAPOINT: + List<String> params1 = new ArrayList<>(); + params1.add(entity.getPredResult()); + Map<String, Object> pointValues = dataPointApi.queryPointsRealValue(params1); + if (!CollectionUtils.isEmpty(pointValues)) { + controlDTO.setPredResult(DecimalUtil.toBigDecimal(pointValues.get(entity.getPredResult()))); + } + break; + case PREDICTVALUE: + PredictLastValueReqVO reqVO = new PredictLastValueReqVO(); + calendar.set(calendar.HOUR_OF_DAY, 0); + reqVO.setPredictTime(calendar.getTime()); + List<String[]> itemNos = new ArrayList<>(); + if (StringUtils.isNotBlank(entity.getPredResult())) { + itemNos.add(entity.getPredResult().split(",")); + } + reqVO.setItemNos(itemNos); + Map<String, BigDecimal> preValues = mcsApi.getPredictValueByTime(reqVO); + if (preValues.get(entity.getPredResult()) != null) { + controlDTO.setPredResult(new BigDecimal(preValues.get(entity.getPredResult()).toString())); + } + break; + default: + break; } - if (!CollectionUtils.isEmpty(itemNos)) { - reqVO.setItemNos(itemNos); - log.info("reqVO=" + JSONObject.toJSONString(reqVO)); - Map<String, BigDecimal> preValues = mcsApi.getPredictValueByTime(reqVO); - if (!ObjectUtils.isEmpty(preValues.get(controlDTO.getPredResult()))) { - controlDTO.setPredResult(preValues.get(controlDTO.getPredResult()).toString()); - } - } - controlDTO.setAdjustCos(adjustCosList.get(i)); + // 管控结果 + if (adjustCosMap.containsKey(entity.getCosIndex())) { + controlDTO.setAdjustCos(adjustCosMap.get(entity.getCosIndex())); + } } catch (Exception ex) { log.info(controlDTO.getName() + "获取预测值异常," + ex.getMessage()); ex.printStackTrace(); } result.add(controlDTO); } - - List<String> points = new ArrayList<>(); - points.add(pointNo); - Map<String, Object> pointsRealValue = dataPointApi.queryPointsRealValue(points); - - PowerFactorControlDTO controlDTO = new PowerFactorControlDTO(); - controlDTO.setName("望铁关口最大无功倒送量"); - controlDTO.setPredResult(pointsRealValue.get(pointNo).toString()); - controlDTO.setAdjustCos(data.get("back_wugong_buchang").toString()); - controlDTO.setSort(list.size() + 1); - result.add(controlDTO); log.info("result===" + JSONObject.toJSONString(result)); return success(result); } -- Gitblit v1.9.3