无关风月
2025-01-17 733b527531dde2f85c9c98d2f40c9b9a8eb4b4aa
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java
@@ -80,6 +80,7 @@
import java.time.*;
import java.time.format.DateTimeFormatter;
import java.time.format.TextStyle;
import java.time.temporal.ChronoUnit;
import java.time.temporal.WeekFields;
import java.util.*;
import java.util.concurrent.*;
@@ -1321,38 +1322,26 @@
         }
      }
      List<String> collect = list1.stream().map(TChargingOrder::getCode).collect(Collectors.toList());
      StringBuilder stringBuilder = new StringBuilder();
      List<UploadRealTimeMonitoringData> uploadRealTimeMonitoringData = new ArrayList<>();
      for (String s : collect) {
         stringBuilder.append(s).append(",");
      }
      if (stringBuilder.length()>0){
         StringBuilder ids = stringBuilder.deleteCharAt(stringBuilder.length() - 1);
         uploadRealTimeMonitoringData = uploadRealTimeMonitoringDataClient.getOrderInfoByCodes(ids.toString()).getData();
      }
      List<Long> orderIds = list1.stream().map(TChargingOrder::getId).collect(Collectors.toList());
      if(orderIds.isEmpty())orderIds.add(-1L);
      List<TChargingOrderRefund> chargingOrderRefunds = chargingOrderRefundService.lambdaQuery()
            .in(TChargingOrderRefund::getChargingOrderId, orderIds)
            .eq(TChargingOrderRefund::getRefundStatus,2).list();
      System.err.println("充电检测数据"+uploadRealTimeMonitoringData);
      for (ChargingOrderVO chargingOrderVO : list1) {
         paymentMoney= paymentMoney.add(chargingOrderVO.getPaymentAmount()!=null?chargingOrderVO.getPaymentAmount():new BigDecimal("0"));
         commissionMoney = commissionMoney.add(chargingOrderVO.getOrderAmount()!=null?chargingOrderVO.getOrderAmount().multiply(new BigDecimal("0.006")):new BigDecimal("0"));
         if (chargingOrderVO.getChargingCapacity()!=null){
            total = total.add(chargingOrderVO.getElectricity()!=null?chargingOrderVO.getElectricity():new BigDecimal("0"));
         }
         LocalDateTime startTime = chargingOrderVO.getStartTime();
         LocalDateTime endTime = chargingOrderVO.getStartTime();
         // 计算时间差 单位秒
         long between = ChronoUnit.SECONDS.between(startTime, endTime);
         time+=between;
         UploadRealTimeMonitoringData data5 = uploadRealTimeMonitoringData.stream().filter(e -> e!=null&&e.getTransaction_serial_number()!=null&&(e.getTransaction_serial_number().equals(chargingOrderVO.getCode())))
               .findFirst().orElse(null);
         if (data5!=null && data5.getCumulative_charging_time()!=null){
            long l = data5.getCumulative_charging_time() * 60L;
            chargingOrderVO.setChargingSecond(l);
            time+=l;
         }
         List<TChargingOrderRefund> list2 = chargingOrderRefunds.stream().filter(e -> e.getChargingOrderId() != null && e.getChargingOrderId().equals(chargingOrderVO.getId()))
               .collect(Collectors.toList());
         for (TChargingOrderRefund tChargingOrderRefund : list2) {