From b4bfd886af0460ae84b2d70233c2a77866930a46 Mon Sep 17 00:00:00 2001 From: Pu Zhibing <393733352@qq.com> Date: 星期一, 02 六月 2025 15:25:21 +0800 Subject: [PATCH] 修改bug和将roacktmq连接方式切换为直连方式 --- ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/util/TaskUtil.java | 214 +++++++++++++++++++++++++++-------------------------- 1 files changed, 109 insertions(+), 105 deletions(-) diff --git a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/util/TaskUtil.java b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/util/TaskUtil.java index 3df2601..938f991 100644 --- a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/util/TaskUtil.java +++ b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/util/TaskUtil.java @@ -56,119 +56,123 @@ // 每天凌晨12点30执行 推送充电用能统计 @Scheduled(cron = "0 30 0 * * ?") public void superviseNotificationOperationStatsInfo() { - StationStatsInfoResult res = new StationStatsInfoResult(); - int dayOfMonth1 = LocalDateTime.now().getYear(); - int dayOfMonth2 = LocalDateTime.now().getMonthValue(); - int dayOfMonth3 = LocalDateTime.now().getDayOfMonth(); - List<Site> data = siteClient.getSiteAll().getData(); - LocalDateTime startLocalDateTime = LocalDateTime.of(dayOfMonth1, dayOfMonth2, dayOfMonth3, 0, 0, 0); - LocalDateTime endLocalDateTime = LocalDateTime.of(dayOfMonth1, dayOfMonth2, dayOfMonth3, 23, 59, 59); - String start = DateUtils.localDateTimeToString(startLocalDateTime); - String end = DateUtils.localDateTimeToString(endLocalDateTime); - ChargingStatisticeDTO chargingStatisticeDTO = new ChargingStatisticeDTO(); - chargingStatisticeDTO.setStartTime(startLocalDateTime); - chargingStatisticeDTO.setEndTime(endLocalDateTime); - List<TChargingOrder> data1 = chargingOrderClient.getChargingStatistics(chargingStatisticeDTO).getData(); - List<StationStatsInfo> stationStatsInfos = new ArrayList<>(); - for (Site datum : data) { - StationStatsInfo stationStatsInfo = new StationStatsInfo(); - stationStatsInfo.setStationID(datum.getId().toString()); - stationStatsInfo.setEquipmentOwnerID("906171535"); - stationStatsInfo.setOperatorID("906171535"); - stationStatsInfo.setStationClassification(1); - stationStatsInfo.setStartTime(start); - stationStatsInfo.setEndTime(end); - List<TChargingOrder> chargingOrders = data1.stream().filter(e -> e.getSiteId().equals(datum.getId())).collect(Collectors.toList()); - // 充电电量 - BigDecimal electricity = new BigDecimal("0"); - int chargingCount = 0; - for (TChargingOrder chargingOrder : chargingOrders) { - if (chargingOrder.getElectricity()!=null){ - electricity = electricity.add(chargingOrder.getElectricity()); - chargingCount++; + String port = System.getProperty("server.port"); + if("5071".equals(port)){ + StationStatsInfoResult res = new StationStatsInfoResult(); + int dayOfMonth1 = LocalDateTime.now().getYear(); + int dayOfMonth2 = LocalDateTime.now().getMonthValue(); + int dayOfMonth3 = LocalDateTime.now().getDayOfMonth(); + List<Site> data = siteClient.getSiteAll().getData(); + LocalDateTime startLocalDateTime = LocalDateTime.of(dayOfMonth1, dayOfMonth2, dayOfMonth3, 0, 0, 0); + LocalDateTime endLocalDateTime = LocalDateTime.of(dayOfMonth1, dayOfMonth2, dayOfMonth3, 23, 59, 59); + String start = DateUtils.localDateTimeToString(startLocalDateTime); + String end = DateUtils.localDateTimeToString(endLocalDateTime); + ChargingStatisticeDTO chargingStatisticeDTO = new ChargingStatisticeDTO(); + chargingStatisticeDTO.setStartTime(startLocalDateTime); + chargingStatisticeDTO.setEndTime(endLocalDateTime); + List<TChargingOrder> data1 = chargingOrderClient.getChargingStatistics(chargingStatisticeDTO).getData(); + List<StationStatsInfo> stationStatsInfos = new ArrayList<>(); + for (Site datum : data) { + StationStatsInfo stationStatsInfo = new StationStatsInfo(); + stationStatsInfo.setStationID(datum.getId().toString()); + stationStatsInfo.setEquipmentOwnerID("906171535"); + stationStatsInfo.setOperatorID("906171535"); + stationStatsInfo.setStationClassification(1); + stationStatsInfo.setStartTime(start); + stationStatsInfo.setEndTime(end); + List<TChargingOrder> chargingOrders = data1.stream().filter(e -> e.getSiteId().equals(datum.getId())).collect(Collectors.toList()); + // 充电电量 + BigDecimal electricity = new BigDecimal("0"); + int chargingCount = 0; + for (TChargingOrder chargingOrder : chargingOrders) { + if (chargingOrder.getElectricity()!=null){ + electricity = electricity.add(chargingOrder.getElectricity()); + chargingCount++; + } } + stationStatsInfo.setStationElectricity(electricity.divide(new BigDecimal("24")).setScale(4, BigDecimal.ROUND_DOWN)); + stationStatsInfo.setStationTotalChargeEnergy(electricity.setScale(4, BigDecimal.ROUND_DOWN)); + stationStatsInfo.setStationTotalWarningNum(0); + stationStatsInfo.setStationTotalOtherEnergy(new BigDecimal("0")); + stationStatsInfo.setStationTotalChargeNum(chargingCount); + //构建设备统计数据 + List<EquipmentStatsInfo> EquipmentStatsInfos = new ArrayList<>(); + Map<Integer, List<TChargingOrder>> collect = chargingOrders.stream().collect(Collectors.groupingBy(TChargingOrder::getChargingPileId)); + for (Integer integer : collect.keySet()) { + List<TChargingOrder> tChargingOrders = collect.get(integer); + BigDecimal reduce1 = tChargingOrders.stream().map(TChargingOrder::getChargingCapacity).reduce(BigDecimal.ZERO, BigDecimal::add); + EquipmentStatsInfo equipmentStatsInfo = new EquipmentStatsInfo(); + equipmentStatsInfo.setEquipmentClassification(1); + long chargingTime = 0L; + for (TChargingOrder tChargingOrder : tChargingOrders) { + // 累加充电时长 + LocalDateTime startTime = tChargingOrder.getStartTime(); + LocalDateTime endTime = tChargingOrder.getEndTime(); + // 计算时间差 单位分钟 + chargingTime += ChronoUnit.SECONDS.between(startTime, endTime)/60; + } + equipmentStatsInfo.setEquipmentTotalChargeTime(chargingTime); + equipmentStatsInfo.setEquipmentTotalChargeNum(tChargingOrders.size()); + equipmentStatsInfo.setEquipmentTotalWarningNum(0); + equipmentStatsInfo.setEquipmentID(integer.toString()); + equipmentStatsInfo.setEquipmentElectricity(reduce1); + //构建设备接口统计数据 + Map<Integer, List<TChargingOrder>> collect2 = tChargingOrders.stream().collect(Collectors.groupingBy(TChargingOrder::getChargingGunId)); + List<ConnectorStatsInfo> ConnectorStatsInfos = new ArrayList<>(); + for (Integer integer1 : collect2.keySet()) { + List<TChargingOrder> tChargingOrders1 = collect2.get(integer1); + BigDecimal reduce2 = tChargingOrders1.stream().map(TChargingOrder::getChargingCapacity).reduce(BigDecimal.ZERO, BigDecimal::add); + + TChargingGun chargingGun = chargingGunClient.getChargingGunById(integer1).getData(); + ConnectorStatsInfo connectorStatsInfo = new ConnectorStatsInfo(); + connectorStatsInfo.setConnectorID(chargingGun.getFullNumber()); + connectorStatsInfo.setConnectorElectricity(reduce2); + ConnectorStatsInfos.add(connectorStatsInfo); + } + equipmentStatsInfo.setConnectorStatsInfos(ConnectorStatsInfos); + EquipmentStatsInfos.add(equipmentStatsInfo); + } + stationStatsInfo.setEquipmentStatsInfos(EquipmentStatsInfos); + stationStatsInfos.add(stationStatsInfo); } - stationStatsInfo.setStationElectricity(electricity.divide(new BigDecimal("24")).setScale(4, BigDecimal.ROUND_DOWN)); - stationStatsInfo.setStationTotalChargeEnergy(electricity.setScale(4, BigDecimal.ROUND_DOWN)); - stationStatsInfo.setStationTotalWarningNum(0); - stationStatsInfo.setStationTotalOtherEnergy(new BigDecimal("0")); - stationStatsInfo.setStationTotalChargeNum(chargingCount); - //构建设备统计数据 - List<EquipmentStatsInfo> EquipmentStatsInfos = new ArrayList<>(); - Map<Integer, List<TChargingOrder>> collect = chargingOrders.stream().collect(Collectors.groupingBy(TChargingOrder::getChargingPileId)); - for (Integer integer : collect.keySet()) { - List<TChargingOrder> tChargingOrders = collect.get(integer); - BigDecimal reduce1 = tChargingOrders.stream().map(TChargingOrder::getChargingCapacity).reduce(BigDecimal.ZERO, BigDecimal::add); - EquipmentStatsInfo equipmentStatsInfo = new EquipmentStatsInfo(); - equipmentStatsInfo.setEquipmentClassification(1); - long chargingTime = 0L; - for (TChargingOrder tChargingOrder : tChargingOrders) { - // 累加充电时长 - LocalDateTime startTime = tChargingOrder.getStartTime(); - LocalDateTime endTime = tChargingOrder.getEndTime(); - // 计算时间差 单位分钟 - chargingTime += ChronoUnit.SECONDS.between(startTime, endTime)/60; - } - equipmentStatsInfo.setEquipmentTotalChargeTime(chargingTime); - equipmentStatsInfo.setEquipmentTotalChargeNum(tChargingOrders.size()); - equipmentStatsInfo.setEquipmentTotalWarningNum(0); - equipmentStatsInfo.setEquipmentID(integer.toString()); - equipmentStatsInfo.setEquipmentElectricity(reduce1); - //构建设备接口统计数据 - Map<Integer, List<TChargingOrder>> collect2 = tChargingOrders.stream().collect(Collectors.groupingBy(TChargingOrder::getChargingGunId)); - List<ConnectorStatsInfo> ConnectorStatsInfos = new ArrayList<>(); - for (Integer integer1 : collect2.keySet()) { - List<TChargingOrder> tChargingOrders1 = collect2.get(integer1); - BigDecimal reduce2 = tChargingOrders1.stream().map(TChargingOrder::getChargingCapacity).reduce(BigDecimal.ZERO, BigDecimal::add); - - TChargingGun chargingGun = chargingGunClient.getChargingGunById(integer1).getData(); - ConnectorStatsInfo connectorStatsInfo = new ConnectorStatsInfo(); - connectorStatsInfo.setConnectorID(chargingGun.getFullNumber()); - connectorStatsInfo.setConnectorElectricity(reduce2); - ConnectorStatsInfos.add(connectorStatsInfo); - } - equipmentStatsInfo.setConnectorStatsInfos(ConnectorStatsInfos); - EquipmentStatsInfos.add(equipmentStatsInfo); - } - stationStatsInfo.setEquipmentStatsInfos(EquipmentStatsInfos); - stationStatsInfos.add(stationStatsInfo); + res.setStationStatsInfos(stationStatsInfos); + tcecSuperviseUtil.superviseNotificationOperationStatsInfo(res); } - res.setStationStatsInfos(stationStatsInfos); - tcecSuperviseUtil.superviseNotificationOperationStatsInfo(res); } // 每15分钟执行一次的定时任务 @Scheduled(cron = "0 0/15 * * * ?") public void supervise_notification_realtime_power_info() { - List<Site> data = siteClient.getSiteAll().getData(); - List<Integer> siteIds = data.stream().map(Site::getId).collect(Collectors.toList()); - List<TChargingPile> tChargingPiles = chargingPileClient.getChargingPileBySiteIds(siteIds).getData(); - List<Integer> collect1 = tChargingPiles.stream().map(TChargingPile::getId).collect(Collectors.toList()); - List<TChargingGun> chargingGunList = chargingGunClient.getChargingGunByChargingPileIds(collect1).getData(); - SupStationPowerInfoResult supStationPowerInfoResult = new SupStationPowerInfoResult(); - List<SupStationPowerInfo> stationStatsInfos = new ArrayList<>(); - LocalDateTime now = LocalDateTime.now(); - LocalDateTime startLocalDateTime = now.minusMinutes(15); - ChargingStatisticeDTO chargingStatisticeDTO = new ChargingStatisticeDTO(); - chargingStatisticeDTO.setStartTime(startLocalDateTime); - chargingStatisticeDTO.setEndTime(now); - List<TChargingOrder> data1 = chargingOrderClient.getChargingStatistics(chargingStatisticeDTO).getData(); - for (Site datum : data) { - List<TChargingOrder> collect = data1.stream().filter(e -> e.getSiteId().equals(datum.getId()) - &&e.getChargingPower()!=null).collect(Collectors.toList()); - SupStationPowerInfo supStationPowerInfo = new SupStationPowerInfo(); - supStationPowerInfo.setOperatorID("906171535"); - supStationPowerInfo.setEquipmentOwnerID("906171535"); - supStationPowerInfo.setStationID(datum.getId().toString()); - supStationPowerInfo.setStationClassification(1); - supStationPowerInfo.setDataTime(DateUtils.localDateTimeToString(LocalDateTime.now())); - BigDecimal divide = collect.stream().map(TChargingOrder::getChargingPower).reduce(BigDecimal::add).get().divide(new BigDecimal(collect.size()).setScale(4, BigDecimal.ROUND_DOWN)); - supStationPowerInfo.setStationRealTimePower(divide); - supStationPowerInfo.setEquipmentPowerInfos(buildEquipmentPowerInfo(datum.getId(), tChargingPiles, chargingGunList)); - stationStatsInfos.add(supStationPowerInfo); + String port = System.getProperty("server.port"); + if("5071".equals(port)){ + List<Site> data = siteClient.getSiteAll().getData(); + List<Integer> siteIds = data.stream().filter(s->s.getStatus() == 1).map(Site::getId).collect(Collectors.toList()); + List<TChargingPile> tChargingPiles = chargingPileClient.getChargingPileBySiteIds(siteIds).getData(); + List<Integer> collect1 = tChargingPiles.stream().map(TChargingPile::getId).collect(Collectors.toList()); + List<TChargingGun> chargingGunList = chargingGunClient.getChargingGunByChargingPileIds(collect1).getData(); + SupStationPowerInfoResult supStationPowerInfoResult = new SupStationPowerInfoResult(); + List<SupStationPowerInfo> stationStatsInfos = new ArrayList<>(); + LocalDateTime now = LocalDateTime.now(); + LocalDateTime startLocalDateTime = now.minusMinutes(15); + ChargingStatisticeDTO chargingStatisticeDTO = new ChargingStatisticeDTO(); + chargingStatisticeDTO.setStartTime(startLocalDateTime); + chargingStatisticeDTO.setEndTime(now); + List<TChargingOrder> data1 = chargingOrderClient.getChargingStatistics(chargingStatisticeDTO).getData(); + for (Site datum : data) { + List<TChargingOrder> collect = data1.stream().filter(e -> e.getSiteId().equals(datum.getId()) && e.getChargingPower()!=null).collect(Collectors.toList()); + SupStationPowerInfo supStationPowerInfo = new SupStationPowerInfo(); + supStationPowerInfo.setOperatorID("906171535"); + supStationPowerInfo.setEquipmentOwnerID("906171535"); + supStationPowerInfo.setStationID(datum.getId().toString()); + supStationPowerInfo.setStationClassification(1); + supStationPowerInfo.setDataTime(DateUtils.localDateTimeToString(LocalDateTime.now())); + BigDecimal divide = collect.stream().map(TChargingOrder::getChargingPower).reduce(BigDecimal.ZERO, BigDecimal::add).divide(new BigDecimal(collect.size()).setScale(4, BigDecimal.ROUND_DOWN)); + supStationPowerInfo.setStationRealTimePower(divide); + supStationPowerInfo.setEquipmentPowerInfos(buildEquipmentPowerInfo(datum.getId(), tChargingPiles, chargingGunList)); + stationStatsInfos.add(supStationPowerInfo); + } + supStationPowerInfoResult.setSupStationPowerInfos(stationStatsInfos); + tcecSuperviseUtil.superviseNotificationRealtimePowerInfo(supStationPowerInfoResult); } - supStationPowerInfoResult.setSupStationPowerInfos(stationStatsInfos); - tcecSuperviseUtil.superviseNotificationRealtimePowerInfo(supStationPowerInfoResult); - } /** * 构建桩数据 -- Gitblit v1.7.1