| | |
| | | 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())); |
| | | } |
| | |
| | | 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); |
| | | } |
| | | } |
| | | } |
| | |
| | | } |
| | | |
| | | @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(); |
| | |
| | | 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) { |