| | |
| | | |
| | | //每日利用率=当日充电度数/(总桩数量*桩总功率*24小时) |
| | | BigDecimal multiply1 = new BigDecimal(chargingPiles.size()).multiply(totalRatedPower).multiply(new BigDecimal(24)); |
| | | System.err.println(JSON.toJSONString(capMap) + "---" + chargingPiles.size() + "---" + totalRatedPower + "---" + multiply1); |
| | | capMap.forEach(map -> { |
| | | BigDecimal chargingCapacity = (BigDecimal) map.get("chargingCapacity"); |
| | | BigDecimal result = chargingCapacity.divide(multiply1, 4, RoundingMode.HALF_UP); |
| | |
| | | |
| | | |
| | | |
| | | private static List<TChargingOrder> getSampleData() { |
| | | // 这里可以替换为实际查询逻辑 |
| | | List<TChargingOrder> list = new ArrayList<>(); |
| | | // 示例数据 |
| | | for (int i = 0; i < 24; i++) { |
| | | TChargingOrder order = new TChargingOrder(); |
| | | order.setStartTime(LocalDateTime.now().minusHours(23 - i)); |
| | | order.setOrderAmount(BigDecimal.valueOf(i + 1)); |
| | | list.add(order); |
| | | } |
| | | return list; |
| | | } |
| | | |
| | | private static List<Map<String, BigDecimal>> processData(List<TChargingOrder> list) { |
| | | Map<LocalDateTime, BigDecimal> hourlySum = new HashMap<>(); |
| | | |
| | | // 按每个小时分组并求和 |
| | | for (TChargingOrder order : list) { |
| | | LocalDateTime hour = order.getStartTime().truncatedTo(ChronoUnit.HOURS); |
| | | BigDecimal amount = order.getOrderAmount(); |
| | | hourlySum.merge(hour, amount, BigDecimal::add); |
| | | } |
| | | |
| | | // 创建结果列表 |
| | | List<Map<String, BigDecimal>> resultList = new ArrayList<>(); |
| | | for (int i = 1; i <= 23; i++) { |
| | | LocalDateTime keyHour = LocalDateTime.now().withHour(i); |
| | | BigDecimal sum = BigDecimal.ZERO; |
| | | |
| | | // 计算键之后的一小时的数据之和 |
| | | for (int j = i + 1; j <= 23; j++) { |
| | | LocalDateTime nextHour = LocalDateTime.now().withHour(j); |
| | | sum = sum.add(hourlySum.getOrDefault(nextHour, BigDecimal.ZERO)); |
| | | } |
| | | |
| | | Map<String, BigDecimal> entry = new HashMap<>(); |
| | | entry.put(String.valueOf(i), sum); |
| | | resultList.add(entry); |
| | | } |
| | | |
| | | return resultList; |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 硬件充电结束后的处理逻辑 |
| | |
| | | chargingOrderService.endCharge(code, 2); |
| | | } |
| | | |
| | | |
| | | |
| | | /** |
| | | * 硬件异常结束充电后的处理逻辑 |
| | | * @param code |