From a7f5ee592fc41cb8e2bb9efe7fd2c77e16c0eac8 Mon Sep 17 00:00:00 2001 From: dongyukun <1208714201@qq.com> Date: 星期三, 07 五月 2025 10:37:19 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- ansteel-biz/src/main/java/com/iailab/module/ansteel/api/controller/admin/PowerController.java | 142 ++++++++++++++++++++++++++++++++++++++++++---- 1 files changed, 128 insertions(+), 14 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 cc1ca27..d05948c 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 @@ -103,14 +103,23 @@ boolean cosFlag = false; try { List<String> points = new ArrayList<>(); + if (StringUtils.isNotBlank(entity.getCurA())) { + points.add(entity.getCurA()); + } if (StringUtils.isNotBlank(entity.getCurP())) { points.add(entity.getCurP()); } if (StringUtils.isNotBlank(entity.getCurQ())) { points.add(entity.getCurQ()); } + if (StringUtils.isNotBlank(entity.getCurCos())) { + points.add(entity.getCurCos()); + } if (!CollectionUtils.isEmpty(points)) { Map<String, Object> pointsRealValue = dataPointApi.queryPointsRealValue(points); + if (pointsRealValue.get(entity.getCurA()) != null) { + powerNetFactorDTO.setCurA(new BigDecimal(pointsRealValue.get(entity.getCurA()).toString())); + } if (pointsRealValue.get(entity.getCurP()) != null) { powerNetFactorDTO.setCurP(new BigDecimal(pointsRealValue.get(entity.getCurP()).toString())); } @@ -157,39 +166,51 @@ log.info(entity.getNodeName() + "获取预测值异常," + ex.getMessage()); } - // 设置功率因数状态 - if (cosFlag && powerNetFactorDTO.getCurCos() != null) { - BigDecimal curCos = powerNetFactorDTO.getCurCos(); - if (entity.getLimitL() != null && curCos.compareTo(entity.getLimitL()) < 0) { + // 设置电流状态 + if (powerNetFactorDTO.getCurA() != null) { + BigDecimal curA = powerNetFactorDTO.getCurA(); + if (entity.getLimitL() != null && curA.compareTo(entity.getLimitL()) < 0) { powerNetFactorDTO.setStatus(1); - } else if (entity.getLimitH() != null && curCos.compareTo(entity.getLimitH()) > 0) { + } else if (entity.getLimitH() != null && curA.compareTo(entity.getLimitH()) > 0) { powerNetFactorDTO.setStatus(1); } else { powerNetFactorDTO.setStatus(0); + } + } + + // 设置功率因数状态 + if (cosFlag && powerNetFactorDTO.getCurCos() != null) { + BigDecimal curCos = powerNetFactorDTO.getCurCos(); + if (entity.getCosLimitL() != null && curCos.compareTo(entity.getCosLimitL()) < 0) { + powerNetFactorDTO.setQStatus(1); + } else if (entity.getCosLimitH() != null && curCos.compareTo(entity.getCosLimitH()) > 0) { + powerNetFactorDTO.setQStatus(1); + } else { + powerNetFactorDTO.setQStatus(0); } } // 设置有功预警状态 if (powerNetFactorDTO.getCurP() != null) { BigDecimal curP = powerNetFactorDTO.getCurP(); - if (entity.getPLimitH() != null && curP.compareTo(entity.getPLimitL()) < 0) { - powerNetFactorDTO.setStatus(1); + if (entity.getPLimitL() != null && curP.compareTo(entity.getPLimitL()) < 0) { + powerNetFactorDTO.setPStatus(1); } else if (entity.getPLimitH() != null && curP.compareTo(entity.getPLimitH()) > 0) { - powerNetFactorDTO.setStatus(1); + powerNetFactorDTO.setPStatus(1); } else { - powerNetFactorDTO.setStatus(0); + powerNetFactorDTO.setPStatus(0); } } // 设置无功预警状态 if (powerNetFactorDTO.getCurQ() != null) { BigDecimal curQ = powerNetFactorDTO.getCurQ(); - if (entity.getQLimitH() != null && curQ.compareTo(entity.getQLimitL()) < 0) { - powerNetFactorDTO.setStatus(1); + if (entity.getQLimitL() != null && curQ.compareTo(entity.getQLimitL()) < 0) { + powerNetFactorDTO.setQStatus(1); } else if (entity.getQLimitH() != null && curQ.compareTo(entity.getQLimitH()) > 0) { - powerNetFactorDTO.setStatus(1); + powerNetFactorDTO.setQStatus(1); } else { - powerNetFactorDTO.setStatus(0); + powerNetFactorDTO.setQStatus(0); } } } @@ -680,7 +701,7 @@ } @PostMapping("/net-factor/history") - @Operation(summary = "功率因数-根据nodeName获取最近1440min历史数据,月最大,最小值") + @Operation(summary = "功率因数-电网拓扑功率历史") public CommonResult<PowerHistoryDTO> getPowerHistoryData(@RequestBody PowerNetFactorHisReqDTO dto) { log.info("PowerNetFactorHisReqDTO=" + JSONObject.toJSONString(dto)); PowerHistoryDTO result = new PowerHistoryDTO(); @@ -762,6 +783,99 @@ return success(result); } + @PostMapping("/net-factor/history-list") + @Operation(summary = "功率因数-电网拓扑功率历史(多code)") + public CommonResult<LinkedHashMap<String, PowerHistoryDTO>> getPowerHistoryList(@RequestBody PowerNetFactorHisReqDTO dto) { + log.info("PowerNetFactorHisReqDTO=" + JSONObject.toJSONString(dto)); + LinkedHashMap<String, PowerHistoryDTO> result = new LinkedHashMap<>(); + List<String> nodeCodeList = dto.getNodeCodeList(); + if (CollectionUtils.isEmpty(nodeCodeList)) { + return CommonResult.error(GlobalErrorCodeConstants.BAD_REQUEST); + } + String queryType = dto.getQueryType(); + if (StringUtils.isBlank(queryType)) { + return CommonResult.error(GlobalErrorCodeConstants.BAD_REQUEST); + } + Calendar calendar0 = Calendar.getInstance(); + calendar0.set(Calendar.MILLISECOND, 0); + calendar0.set(Calendar.SECOND, 0); + Date end0 = dto.getEndTime() == null ? calendar0.getTime() : dto.getEndTime(); + calendar0.add(Calendar.MINUTE, -1440); + Date start0 = dto.getStartTime() == null ? calendar0.getTime() : dto.getStartTime(); + + Calendar calendar1 = Calendar.getInstance(); + calendar1.set(Calendar.DAY_OF_MONTH, 1); + calendar1.set(Calendar.HOUR_OF_DAY, 0); + calendar1.set(Calendar.MINUTE, 0); + calendar1.set(Calendar.SECOND, 0); + calendar1.set(Calendar.MILLISECOND, 0); + Date start1 = calendar1.getTime(); + + List<String> categories = DateUtils.getTimeScale(start0, end0, 60); + for (String nodeCode : nodeCodeList) { + PowerHistoryDTO powerHistoryDTO = new PowerHistoryDTO(); + PowerNetFactorQuery powerNetFactorQuery = null; + PowerNetFactorEntity powerNetFactorEntity = powerNetFactorService.getByNodeCode(nodeCode); + PowerNetDropdownEntity powerNetDropdownEntity = powerNetDropdownService.getByNodeCode(nodeCode); + if (powerNetFactorEntity != null) { + powerNetFactorQuery = ConvertUtils.sourceToTarget(powerNetFactorEntity, PowerNetFactorQuery.class); + } else if (powerNetDropdownEntity != null) { + powerNetFactorQuery = ConvertUtils.sourceToTarget(powerNetDropdownEntity, PowerNetFactorQuery.class); + } + if (powerNetFactorQuery == null) { + log.info("powerNetFactor is null"); + continue; + } + + log.info("开始查询,"); + ApiPointValueQueryDTO apiPointValueQueryDTO = new ApiPointValueQueryDTO(); + String pointNo = ""; + switch (queryType.toUpperCase()) { + case "P": + pointNo = powerNetFactorQuery.getCurP(); + break; + case "Q": + pointNo = powerNetFactorQuery.getCurQ(); + break; + case "COS": + pointNo = powerNetFactorQuery.getCurCos(); + break; + default: + break; + } + + //查询图表 + apiPointValueQueryDTO.setPointNo(pointNo); + apiPointValueQueryDTO.setEnd(end0); + apiPointValueQueryDTO.setStart(start0); + List<ApiPointValueDTO> chartData = dataPointApi.queryPointHistoryValue(apiPointValueQueryDTO); + List<Object[]> dataList = new ArrayList<>(); + for (ApiPointValueDTO pv : chartData) { + Object[] data = new Object[2]; + data[0] = DateUtils.format(pv.getT(), DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND); + data[1] = pv.getV(); + dataList.add(data); + } + powerHistoryDTO.setDataList(dataList); + + //查询月最大最小值 + ApiPointValueQueryDTO apiPointValueQueryDTO1 = new ApiPointValueQueryDTO(); + apiPointValueQueryDTO1.setStart(start1); + apiPointValueQueryDTO1.setEnd(new Date()); + apiPointValueQueryDTO1.setPointNo(pointNo); + List<ApiPointValueDTO> monthChartData = dataPointApi.queryPointHistoryValue(apiPointValueQueryDTO); + List<Double> monthValues = new ArrayList<>(); + if (CollectionUtils.isEmpty(monthChartData)) { + monthValues = monthChartData.stream().map(item -> item.getV()).collect(Collectors.toList()); + powerHistoryDTO.setMax(monthValues.stream().max(Double::compareTo).get()); + powerHistoryDTO.setMin(monthValues.stream().min(Double::compareTo).get()); + } + + result.put(nodeCode, powerHistoryDTO); + } + return success(result); + } + @GetMapping("/adjust-factor") @Operation(summary = "功率因数-调整后的功率因数与无功倒送量") public CommonResult<Map<String, Double>> getPowerAdjustFactor(@RequestParam Map<String, Object> params) { -- Gitblit v1.9.3