| | |
| | | // 每天凌晨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); |
| | | |
| | | } |
| | | /** |
| | | * 构建桩数据 |