From 68e4932985312602140dcd64ebbb31b2bbaac13a Mon Sep 17 00:00:00 2001 From: 潘志宝 <979469083@qq.com> Date: 星期五, 16 五月 2025 12:02:16 +0800 Subject: [PATCH] 负荷移植-需量值查询 --- ansteel-biz/src/main/java/com/iailab/module/ansteel/api/controller/admin/PowerController.java | 164 ++++++++++++++++++++++++++---------------------------- 1 files changed, 80 insertions(+), 84 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 e5b8f14..e51110d 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 @@ -655,15 +655,11 @@ @PostMapping("/demand-query/list") @Operation(summary = "负荷移植-需量值查询") - public CommonResult<List<PowerDemandQueryRespDTO>> getDemandDropdownList(@RequestBody PowerDemandQueryDTO queryDto) { + public CommonResult<List<PowerDemandQueryRespDTO>> getDemandQueryList(@RequestBody PowerDemandQueryDTO queryDto) { List<PowerDemandQueryRespDTO> result = new ArrayList<>(); if (StringUtils.isBlank(queryDto.getCode())) { log.info("code isBlank"); return success(result); - } - log.info("code=" + queryDto.getCode()); - if (StringUtils.isBlank(queryDto.getNodeCode())) { - log.info("NodeCode isBlank"); } PowerDemandEntity entity = powerDemandService.getByCode(queryDto.getCode()); if (entity == null) { @@ -687,91 +683,66 @@ params0.put("groupName", entity.getName()); List<PowerNetDropdownEntity> dropdownList = powerNetDropdownService.list(params0); List<String> pointNos = new ArrayList<>(); + Map<String, String> demandPointMap = new HashMap<>(); for (PowerNetDropdownEntity netDropdown : dropdownList) { + demandPointMap.put(netDropdown.getNodeCode(), netDropdown.getExt1()); if (StringUtils.isNotBlank(netDropdown.getExt1())) { pointNos.add(netDropdown.getExt1()); } } - if (StringUtils.isBlank(queryDto.getNodeCode()) || queryDto.getCurDemand() == null) { - log.info("查询当前值"); - Map<String, Object> pointsRealValue = new HashMap<>(); - if (!CollectionUtils.isEmpty(pointNos)) { - pointsRealValue = dataPointApi.queryPointsRealValue(pointNos); + for(PowerNetDropdownEntity netDropdown : dropdownList) { + PowerDemandQueryRespDTO dto = ConvertUtils.sourceToTarget(netDropdown, PowerDemandQueryRespDTO.class); + dto.setCurDemand(null); + result.add(dto); + } + if (queryDto.getCurDemand() == null) { + log.info("查询值为空,显示空白"); + return success(result); + } + ApiPointValueQueryDTO queryCodeValue = new ApiPointValueQueryDTO(); + queryCodeValue.setStart(startTime); + queryCodeValue.setEnd(endTime); + List<ApiPointValueDTO> codeValueList = dataPointApi.queryPointHistoryValue(queryCodeValue); + if (CollectionUtils.isEmpty(codeValueList)) { + return success(result); + } + ApiPointValueDTO curValue = new ApiPointValueDTO(); + for (ApiPointValueDTO valueDTO : codeValueList) { + if (Math.abs(queryDto.getCurDemand().doubleValue() - valueDTO.getV()) <= 0.0001) { + log.info("curValue is find"); + curValue = valueDTO; + break; } - for (PowerNetDropdownEntity netDropdown : dropdownList) { - PowerDemandQueryRespDTO dto = ConvertUtils.sourceToTarget(netDropdown, PowerDemandQueryRespDTO.class); - BigDecimal demand = null; - if (pointsRealValue.get(netDropdown.getExt1()) != null) { - demand = new BigDecimal(pointsRealValue.get(netDropdown.getExt1()).toString()); - } - dto.setCurDemand(demand); - dto.setDataTime(calendar.getTime()); - result.add(dto); - } - } else { - log.info("查询历史值"); - String nodeCode = queryDto.getNodeCode(); - if (StringUtils.isBlank(nodeCode)) { - log.info("nodeCode isBlank"); - return success(result); - } - PowerNetDropdownEntity powerNetDropdownEntity = powerNetDropdownService.getByNodeCode(nodeCode); - if (powerNetDropdownEntity == null) { - log.info("PowerNetDropdownEntity is null"); - return success(result); - } - ApiPointsValueQueryDTO valueQueryDTO = new ApiPointsValueQueryDTO(); - valueQueryDTO.setPointNos(pointNos); - valueQueryDTO.setStart(startTime); - valueQueryDTO.setEnd(endTime); - Map<String, List<Map<String, Object>>> pointsHisValues = dataPointApi.queryPointsHistoryValue(valueQueryDTO); - if (CollectionUtils.isEmpty(pointsHisValues)) { - log.info("pointsHisValues is null"); - return success(result); - } + } + log.info("curValue={}", curValue); + if (curValue.getT() == null) { + log.info("curValue is not find"); + return success(result); + } - ApiPointValueQueryDTO pointValueQueryDTO = new ApiPointValueQueryDTO(); - pointValueQueryDTO.setStart(startTime); - pointValueQueryDTO.setEnd(endTime); - pointValueQueryDTO.setPointNo(powerNetDropdownEntity.getExt1()); - List<ApiPointValueDTO> hisValue = dataPointApi.queryPointHistoryValue(pointValueQueryDTO); - if (CollectionUtils.isEmpty(hisValue)) { - log.info("hisValue is null"); + Calendar calendar1 = Calendar.getInstance(); + calendar1.setTime(curValue.getT()); + ApiPointsValueQueryDTO valueQueryDTO = new ApiPointsValueQueryDTO(); + valueQueryDTO.setPointNos(pointNos); + valueQueryDTO.setEnd(calendar1.getTime()); + calendar1.add(Calendar.MINUTE, -1); + valueQueryDTO.setStart(calendar1.getTime()); + Map<String, List<Map<String, Object>>> pointsHisValues = dataPointApi.queryPointsHistoryValue(valueQueryDTO); + if (CollectionUtils.isEmpty(pointsHisValues)) { + log.info("pointsHisValues is null"); + return success(result); + } + for(PowerDemandQueryRespDTO respDTO : result) { + if (StringUtils.isBlank(demandPointMap.get(respDTO.getNodeCode()))) { + continue; } - ApiPointValueDTO curValue = null; - Collections.reverse(hisValue); - for (ApiPointValueDTO valueDTO : hisValue) { - if ((queryDto.getCurDemand().doubleValue() - valueDTO.getV()) <= 0.0001) { - curValue = valueDTO; - log.info("curValue is find"); - break; - } + List<Map<String, Object>> hisList = pointsHisValues.get(demandPointMap.get(respDTO.getNodeCode())); + if (CollectionUtils.isEmpty(hisList)) { + continue; } - if (curValue == null) { - log.info("curValue is null"); - for (PowerNetDropdownEntity netDropdown : dropdownList) { - PowerDemandQueryRespDTO dto = ConvertUtils.sourceToTarget(netDropdown, PowerDemandQueryRespDTO.class); - if (dto.getNodeCode().equals(nodeCode)) { - dto.setCurDemand(queryDto.getCurDemand()); - } - result.add(dto); - } - return success(result); - } - log.info("curValue=" + curValue); - for (PowerNetDropdownEntity netDropdown : dropdownList) { - PowerDemandQueryRespDTO dto = ConvertUtils.sourceToTarget(netDropdown, PowerDemandQueryRespDTO.class); - if (!CollectionUtils.isEmpty(pointsHisValues.get(netDropdown.getExt1()))) { - Map<String, BigDecimal> pointValueMap = new HashMap<>(); - pointsHisValues.get(netDropdown.getExt1()).forEach(item -> { - pointValueMap.put(item.get("time").toString(), DecimalUtil.toBigDecimal(item.get("value"))); - - }); - dto.setCurDemand(pointValueMap.get(DateUtils.format(curValue.getT(), DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND))); - dto.setDataTime(curValue.getT()); - } - result.add(dto); - } + Map<String, Object> valueMap = hisList.get(hisList.size() - 1); + respDTO.setDataTime(DateUtils.parse(valueMap.get("time").toString(), DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)); + respDTO.setCurDemand( DecimalUtil.toBigDecimal(valueMap.get("value"))); } return success(result); } @@ -1052,9 +1023,9 @@ @PostMapping("/demand/history-list") @Operation(summary = "负荷移植-实测需量有功功率历史(多code)") - public CommonResult<LinkedHashMap<String, List<Object[]>>> getPowerDemandHistoryList(@RequestBody PowerDemandHisReqDTO dto) { + public CommonResult<LinkedHashMap<String, PowerHistoryDTO>> getPowerDemandHistoryList(@RequestBody PowerDemandHisReqDTO dto) { log.info("请求参数: {}", JSONObject.toJSONString(dto)); - LinkedHashMap<String, List<Object[]>> result = new LinkedHashMap<>(); + LinkedHashMap<String, PowerHistoryDTO> result = new LinkedHashMap<>(); // 参数校验 if (CollectionUtils.isEmpty(dto.getCodeList())) { @@ -1073,7 +1044,16 @@ startTime = cal.getTime(); } + 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(); + for (String code : dto.getCodeList()) { + PowerHistoryDTO powerHistoryDTO = new PowerHistoryDTO(); PowerNetFactorQuery powerNetFactorQuery = new PowerNetFactorQuery(); PowerDemandEntity powerDemandEntity = powerDemandService.getByCode(code); PowerNetDropdownEntity powerNetDropdownEntity = powerNetDropdownService.getByNodeCode(code); @@ -1115,7 +1095,23 @@ }) .collect(Collectors.toList()); - result.put(code, dataList); + powerHistoryDTO.setDataList(dataList); + + //查询月最大最小值 + ApiPointValueQueryDTO apiPointValueQueryDTO1 = new ApiPointValueQueryDTO(); + apiPointValueQueryDTO1.setStart(start1); + apiPointValueQueryDTO1.setEnd(new Date()); + apiPointValueQueryDTO1.setPointNo(pointNo); + Map<String, Object> maxV = dataPointApi.queryPointMaxValueRange(apiPointValueQueryDTO1); + Map<String, Object> minV = dataPointApi.queryPointMaxValueRange(apiPointValueQueryDTO1); + if (maxV != null && maxV.containsKey(pointNo)) { + powerHistoryDTO.setMax(new BigDecimal(maxV.get(pointNo).toString())); + } + if (minV != null && minV.containsKey(pointNo)) { + powerHistoryDTO.setMin(new BigDecimal(minV.get(pointNo).toString())); + } + + result.put(code, powerHistoryDTO); } return success(result); -- Gitblit v1.9.3