From fc555f5d9d49f9922a6f5688d4db7c2679f3252c Mon Sep 17 00:00:00 2001
From: 无关风月 <443237572@qq.com>
Date: 星期四, 17 七月 2025 18:53:47 +0800
Subject: [PATCH] 政务云数据上传bug修改
---
ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/util/TaskUtil.java | 226 ++++++++++++++++++++++++++++++--------------------------
1 files changed, 120 insertions(+), 106 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..258b1f5 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
@@ -18,6 +18,8 @@
import com.ruoyi.order.api.model.TChargingBill;
import com.ruoyi.order.api.model.TChargingOrder;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.web.context.WebServerInitializedEvent;
+import org.springframework.context.ApplicationListener;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
@@ -36,7 +38,7 @@
* @date 2023/7/11 8:39
*/
@Component
-public class TaskUtil {
+public class TaskUtil implements ApplicationListener<WebServerInitializedEvent> {
@Resource
@@ -52,123 +54,135 @@
@Resource
private ChargingPileClient chargingPileClient;
+
+ private Integer port = null;
+
+
+ @Override
+ public void onApplicationEvent(WebServerInitializedEvent event) {
+ port = event.getWebServer().getPort();
+ System.out.println("端口号:" + port);
+ }
+
// 每天凌晨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++;
+ if(null != port && port == 5701){
+ 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);
+ if(null != port && port == 5701){
+ 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