From 95da1e36eaad95a0701c7b6f44534054d217557f Mon Sep 17 00:00:00 2001
From: Pu Zhibing <393733352@qq.com>
Date: 星期五, 14 二月 2025 18:05:22 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java |   97 +++++++++---------
 ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/vo/ChargingOrderListVO.java             |    2 
 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingBillServiceImpl.java  |  157 ++++++++++++++-----------------
 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/mapper/TChargingBillMapper.java             |    4 
 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/ChargingBillController.java      |    2 
 ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TChargingBillMapper.xml                   |   25 +++++
 6 files changed, 150 insertions(+), 137 deletions(-)

diff --git a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/vo/ChargingOrderListVO.java b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/vo/ChargingOrderListVO.java
index 8980bbd..e30cd56 100644
--- a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/vo/ChargingOrderListVO.java
+++ b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/vo/ChargingOrderListVO.java
@@ -63,6 +63,8 @@
     private BigDecimal serviceCharge;
     @ApiModelProperty(value = "平台手续费")
     private BigDecimal commissionAmount;
+    @ApiModelProperty(value = "平台手续费")
+    private BigDecimal rechargeAmount;
     @ApiModelProperty(value = "引流平台")
     private String sourceName;
     @ApiModelProperty(value = "平台分佣")
diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/ChargingBillController.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/ChargingBillController.java
index 6c2f211..584487f 100644
--- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/ChargingBillController.java
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/ChargingBillController.java
@@ -378,7 +378,7 @@
         for (TChargingOrder tChargingOrder : tChargingOrders) {
             // 账单信息
             paymentAmount = paymentAmount.add(tChargingOrder.getRechargeAmount());
-            commissionAmount = commissionAmount.add(tChargingOrder.getPaymentAmount().multiply(bigDecimal1).setScale(2, BigDecimal.ROUND_DOWN));
+            commissionAmount = commissionAmount.add(tChargingOrder.getRechargeAmount().multiply(bigDecimal1).setScale(2, BigDecimal.ROUND_DOWN));
             sharingAmount = sharingAmount.add(tChargingOrder.getSharingAmount()!=null?tChargingOrder.getSharingAmount():new BigDecimal("0"));
             // 退款信息
             ChargingBillRefundExport chargingBillRefundExport = new ChargingBillRefundExport();
diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/mapper/TChargingBillMapper.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/mapper/TChargingBillMapper.java
index fe527e0..faa0889 100644
--- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/mapper/TChargingBillMapper.java
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/mapper/TChargingBillMapper.java
@@ -36,4 +36,8 @@
             @Param("startTime1")String startTime1,
             @Param("startTime2")String startTime2);
 
+    List<ChargingBillListVO> chargingBillList1Nolimt(
+            @Param("req") ChargingListQuery dto,
+            @Param("startTime1")String startTime1,
+            @Param("startTime2")String startTime2);
 }
diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingBillServiceImpl.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingBillServiceImpl.java
index 5d79a3f..0b4ffa7 100644
--- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingBillServiceImpl.java
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingBillServiceImpl.java
@@ -107,6 +107,14 @@
         Long userId = tokenService.getLoginUser().getUserid();
         // 查询当前登陆人按钮权限
         SysUser sysUser = sysUserClient.getSysUser(tokenService.getLoginUser().getUserid()).getData();
+        List<Site> siteList = siteClient.getSiteAll().getData();
+        List<TChargingGun> gunList = chargingGunClient.getAllGun().getData();
+        List<TChargingPile> pileList = chargingGunClient.getAllPile().getData();
+        List<TAppUser> userList = appUserClient.getAllUser().getData();
+        List<TAppUserCar> carList = appUserCarClient.getAllCar().getData();
+        List<TChargingOrder> total = chargingOrderList.selectList(new LambdaQueryWrapper<>(TChargingOrder.class)
+                .eq(TChargingOrder::getRechargePaymentStatus, 2));
+        List<TChargingOrderRefund> totalRefund = chargingOrderRefundService.lambdaQuery().eq(TChargingOrderRefund::getRefundStatus, 2).list();
         Integer roleType = sysUser.getRoleType();
         List<Integer> siteIds = new ArrayList<>();
             //如果没传siteId,获取当前登陆人所有的siteIds
@@ -142,9 +150,8 @@
 
 
         PageInfo<ChargingBillListVO> pageInfo = new PageInfo<>(dto.getPageCurr(),dto.getPageSize());
-        PageInfo<ChargingBillListVO> pageInfo1 = new PageInfo<>(1,9999999);
         List<ChargingBillListVO> list = this.baseMapper.chargingBillList1(pageInfo,dto,startTime1,startTime2);
-        List<ChargingBillListVO> list1 = this.baseMapper.chargingBillList1(pageInfo1,dto,startTime1,startTime2);
+        List<ChargingBillListVO> list1 = this.baseMapper.chargingBillList1Nolimt(dto,startTime1,startTime2);
 
         BigDecimal paymentAmountTotal = new BigDecimal("0");
         BigDecimal orderAmountTotal = new BigDecimal("0");
@@ -156,6 +163,7 @@
         BigDecimal chargingCapacityTotal = new BigDecimal("0");
         BigDecimal discountTotal = new BigDecimal("0");
         int orderCount = 0;
+
 
         for (ChargingBillListVO chargingBillListVO : list) {
             if (roleType==2){
@@ -192,23 +200,19 @@
             chargingBillListVO.setUid(chargingBillListVO.getId().toString());
             // 根据账单的出账时间 查询上个月的充电订单
             LocalDateTime localDate = chargingBillListVO.getBillTime().minusMonths(1);
-//            LocalDateTime localDate = chargingBillListVO.getBillTime().minusDays(1);
             // 账单周期
             chargingBillListVO.setBillWeek(localDate.format(java.time.format.DateTimeFormatter.ofPattern("yyyy-MM")));
             // 获取 LocalDate 对象
-            LocalDate date = localDate.toLocalDate();
 //            // 获取该月份的第一天
-            LocalDate firstDayOfMonth = date.withDayOfMonth(1);
             // 获取该月份的最后一天
-            LocalDate lastDayOfMonth = date.with(TemporalAdjusters.lastDayOfMonth());
-            QueryWrapper<TChargingOrder> eq = new QueryWrapper<TChargingOrder>()
-                    .between("pay_time", firstDayOfMonth.atTime(0, 0, 0), lastDayOfMonth.atTime(23, 59, 59))
-                    .eq("status", 5)
-                    .eq("recharge_payment_status", 2);
-            if (chargingBillListVO.getType() == 2) {
-                eq.eq("site_id", chargingBillListVO.getSiteId());
-            }
-            List<TChargingOrder> tChargingOrders = chargingOrderList.selectList(eq);
+            LocalDateTime lastDayOfMonth = localDate.with(TemporalAdjusters.lastDayOfMonth());
+            LocalDateTime firstDayOfMonth = localDate.with(TemporalAdjusters.firstDayOfMonth());
+            List<TChargingOrder> tChargingOrders = total.stream().filter(e -> chargingBillListVO.getType() == 2 ?
+                    e.getSiteId().equals(chargingBillListVO.getSiteId()) : true &&
+                    e.getPayTime().isBefore(lastDayOfMonth.withHour(23).withMinute(59).withSecond(59))
+                    && e.getPayTime().isAfter(firstDayOfMonth.withHour(0).withMinute(0).withSecond(0))).collect(Collectors.toList());
+
+
             int chargingSecond = 0;
             BigDecimal paymentAmount = new BigDecimal("0");
             BigDecimal rechargeAmount = new BigDecimal("0");
@@ -223,12 +227,12 @@
             chargingBillVO.setCategory("");
             chargingBillVO.setExportList(tChargingOrders);
             for (TChargingOrder tChargingOrder : tChargingOrders) {
-                List<Site> data = siteClient.getSiteByIds(Arrays.asList(tChargingOrder.getSiteId())).getData();
-                if (!data.isEmpty()){
-                    chargingBillVO.setSiteName(data.get(0).getName());
+                Site site1 = siteList.stream().filter(site -> site.getId().equals(tChargingOrder.getSiteId())).findFirst().orElse(null);
+                if (site1!=null){
+                    chargingBillVO.setSiteName(site1.getName());
                 }
-                TChargingPile data1 = chargingPileClient.getChargingPileById(tChargingOrder.getChargingPileId()).getData();
-                TChargingGun data2 = chargingGunClient.getChargingGunById(tChargingOrder.getChargingGunId()).getData();
+                TChargingPile data1 = pileList.stream().filter(e -> e.getId().equals(tChargingOrder.getChargingPileId())).findFirst().orElse(null);
+                TChargingGun data2 = gunList.stream().filter(e -> e.getId().equals(tChargingOrder.getChargingGunId())).findFirst().orElse(null);
                 if (data1!=null && data2!=null){
                     tChargingOrder.setTerminalName(data1.getName()+data2.getName());
                     tChargingOrder.setTerminalCode(data2.getCode());
@@ -287,37 +291,39 @@
                 tChargingOrder.setDiscount(tChargingOrder.getCouponDiscountAmount()!=null?tChargingOrder.getCouponDiscountAmount().toString():"0");
                 UploadRealTimeMonitoringData data5 = uploadRealTimeMonitoringDataClient.chargingOrderInfo(tChargingOrder.getCode()).getData();
                 if (data5!=null){
-                    if (data5.getTime_remaining()!=null){
-                        chargingSecond+=data5.getTime_remaining()*60;
-                    }
-                    Integer cumulativeChargingTime = data5.getCumulative_charging_time();
-                    // 将其转化为xx小时xx分钟xx秒显示 如果是0小时则不展示小时 如果是0分钟则不展示分钟
-                    if (cumulativeChargingTime!=null){
-                        // 计算小时、分钟和秒
-                        int hours = cumulativeChargingTime / 60;
-                        int minutes = cumulativeChargingTime % 60;
-                        int seconds = 0; // 如果没有秒数,则默认是0
-                        StringBuilder result = new StringBuilder();
-                        if (hours > 0) {
-                            result.append(hours).append("小时");
-                        }
-                        if (minutes > 0) {
-                            result.append(minutes).append("分钟");
-                        }
-                        if (seconds > 0 || result.length() == 0) { // 如果秒数大于0,或者小时和分钟都为0,则显示秒数
-                            result.append(seconds).append("秒");
-                        }
-                        tChargingOrder.setChargingTime(result.toString());
-                    }
                     tChargingOrder.setEndSoc(data5.getSoc().toString());
                 }
+                if (tChargingOrder.getStartTime()!=null && tChargingOrder.getEndTime()!=null){
+                    LocalDateTime startTime = tChargingOrder.getStartTime();
+                    LocalDateTime endTime = tChargingOrder.getEndTime();
+                    // 计算时间差 单位秒
+                    long between = ChronoUnit.SECONDS.between(startTime, endTime);
+                    chargingSecond+=between;
+                    // 将其转化为xx小时xx分钟xx秒显示 如果是0小时则不展示小时 如果是0分钟则不展示分钟
 
-                TAppUser data3 = appUserClient.getUserById(tChargingOrder.getAppUserId()).getData();
+                    // 计算小时、分钟和秒
+                    long hours = between / 60 / 60;
+                    long minutes = (between % 3600) / 60;
+                    long seconds = between % 60; // 如果没有秒数,则默认是0
+                    StringBuilder result = new StringBuilder();
+                    if (hours > 0) {
+                        result.append(hours).append("小时");
+                    }
+                    if (minutes > 0) {
+                        result.append(minutes).append("分钟");
+                    }
+                    if (seconds > 0 || result.length() == 0) { // 如果秒数大于0,或者小时和分钟都为0,则显示秒数
+                        result.append(seconds).append("秒");
+                    }
+                    tChargingOrder.setChargingTime(result.toString());
+
+                }
+                TAppUser data3 = userList.stream().filter(e -> e.getId().equals(tChargingOrder.getAppUserId())).findFirst().orElse(null);
                 if (tChargingOrder.getAppUserCarId()!=null){
-                    List<TAppUserCar> data4 = appUserCarClient.getCarByIds(Arrays.asList(tChargingOrder.getAppUserCarId())).getData();
-                    if (!data4.isEmpty()){
-                        tChargingOrder.setLicensePlate(data4.get(0).getLicensePlate());
-                        tChargingOrder.setVehicleModel(data4.get(0).getVehicleModel());
+                    TAppUserCar data4 = carList.stream().filter(e -> e.getId().equals(tChargingOrder.getAppUserCarId())).findFirst().orElse(null);
+                    if (data4!=null){
+                        tChargingOrder.setLicensePlate(data4.getLicensePlate());
+                        tChargingOrder.setVehicleModel(data4.getVehicleModel());
                     }
                 }else{
                     tChargingOrder.setLicensePlate(tChargingOrder.getPlateNum());
@@ -338,12 +344,9 @@
                 if (tChargingOrder.getRechargeAmount()!=null){
                     rechargeAmount = rechargeAmount.add(tChargingOrder.getRechargeAmount());
                 }
-                List<TChargingOrderRefund> list2 = chargingOrderRefundService.lambdaQuery().eq(TChargingOrderRefund::getRefundStatus, 2)
-                        .eq(TChargingOrderRefund::getChargingOrderId, tChargingOrder.getId()).list();
+                List<TChargingOrderRefund> list2 = totalRefund.stream().filter(e -> e.getChargingOrderId().equals(tChargingOrder.getId())).collect(Collectors.toList());
                 for (TChargingOrderRefund tChargingOrderRefund : list2) {
-                    if (tChargingOrderRefund.getRefundStatus()==2){
                         refundAmount = refundAmount.add(tChargingOrderRefund.getRefundTotalAmount());
-                    }
                 }
                 // 累加累计服务费
                 if (tChargingOrder.getServiceCharge()!=null){
@@ -351,7 +354,7 @@
                 }
                 // 累加平台手续费
                 if (tChargingOrder.getOrderAmount()!=null){
-                    commissionAmount = commissionAmount.add(tChargingOrder.getPaymentAmount().multiply(BigDecimal.valueOf(0.006))
+                    commissionAmount = commissionAmount.add(tChargingOrder.getRechargeAmount().multiply(BigDecimal.valueOf(0.006))
                             .setScale(2,BigDecimal.ROUND_DOWN));
                 }
                 // 累加平台分佣
@@ -383,14 +386,14 @@
             chargingBillListVO.setCommissionAmount(commissionAmount == null?BigDecimal.ZERO:commissionAmount.setScale(2,BigDecimal.ROUND_DOWN));
             chargingBillListVO.setSharingAmount(sharingAmount == null?BigDecimal.ZERO:sharingAmount);
             chargingBillListVO.setChargingCapacity(chargingCapacity == null?BigDecimal.ZERO:chargingCapacity);
-            chargingBillListVO.setBillMoney(rechargeAmount.subtract(refundAmount==null?BigDecimal.ZERO:refundAmount)
+            chargingBillListVO.setBillMoney(orderAmount
                             .subtract(commissionAmount.setScale(2,BigDecimal.ROUND_DOWN)).subtract(sharingAmount).setScale(2, BigDecimal.ROUND_DOWN));
             switch (chargingBillListVO.getType()){
                 case 1:
                     chargingBillListVO.setSiteName("全站");
                     break;
                 case 2:
-                    Site site = siteClient.getSiteByIds(Arrays.asList(chargingBillListVO.getSiteId())).getData().get(0);
+                    Site site = siteList.stream().filter(e -> e.getId().equals(chargingBillListVO.getSiteId())).findFirst().orElse(null);
                     if (site!=null){
                         chargingBillListVO.setSiteName(site.getName());
                     }
@@ -418,23 +421,19 @@
             chargingBillVO.setBillWeek(billTime.minusMonths(1).format(java.time.format.DateTimeFormatter.ofPattern("yyyy-MM")));
 
             chargingBillListVO.setUid(chargingBillListVO.getId().toString());
+            // 根据账单的出账时间 查询上个月的充电订单
             LocalDateTime localDate = chargingBillListVO.getBillTime().minusMonths(1);
             // 账单周期
             chargingBillListVO.setBillWeek(localDate.format(java.time.format.DateTimeFormatter.ofPattern("yyyy-MM")));
             // 获取 LocalDate 对象
-            LocalDate date = localDate.toLocalDate();
-            // 获取该月份的第一天
-            LocalDate firstDayOfMonth = date.withDayOfMonth(1);
+//            // 获取该月份的第一天
             // 获取该月份的最后一天
-            LocalDate lastDayOfMonth = date.with(TemporalAdjusters.lastDayOfMonth());
-            QueryWrapper<TChargingOrder> eq = new QueryWrapper<TChargingOrder>()
-                    .between("create_time", firstDayOfMonth, lastDayOfMonth)
-                    .eq("status", 5)
-                    .eq("recharge_payment_status", 2);
-            if (chargingBillListVO.getType() == 2) {
-                eq.eq("site_id", chargingBillListVO.getSiteId());
-            }
-            List<TChargingOrder> tChargingOrders = chargingOrderList.selectList(eq);
+            LocalDateTime lastDayOfMonth = localDate.with(TemporalAdjusters.lastDayOfMonth());
+            LocalDateTime firstDayOfMonth = localDate.with(TemporalAdjusters.firstDayOfMonth());
+            List<TChargingOrder> tChargingOrders = total.stream().filter(e -> chargingBillListVO.getType() == 2 ?
+                    e.getSiteId().equals(chargingBillListVO.getSiteId()) : true &&
+                    e.getPayTime().isBefore(lastDayOfMonth.withHour(23).withMinute(59).withSecond(59))
+                    && e.getPayTime().isAfter(firstDayOfMonth.withHour(0).withMinute(0).withSecond(0))).collect(Collectors.toList());
             tChargingOrders1.addAll(tChargingOrders);
             orderCount+=tChargingOrders.size();
             chargingBillVO.setCategory("");
@@ -452,8 +451,7 @@
                 if (tChargingOrder.getElectrovalence()!=null){
                     electrovalenceTotal = electrovalenceTotal.add(tChargingOrder.getElectrovalence());
                 }
-                List<TChargingOrderRefund> list2 = chargingOrderRefundService.lambdaQuery().eq(TChargingOrderRefund::getChargingOrderId, tChargingOrder.getId())
-                        .eq(TChargingOrderRefund::getRefundStatus, 2).list();
+                List<TChargingOrderRefund> list2 = totalRefund.stream().filter(e -> e.getChargingOrderId().equals(tChargingOrder.getId())).collect(Collectors.toList());
                 for (TChargingOrderRefund tChargingOrderRefund : list2) {
                     refundAmountTotal =refundAmountTotal.add(tChargingOrderRefund.getRefundAmount());
                     tChargingOrder.setRefundAmount(tChargingOrderRefund.getRefundAmount());
@@ -468,7 +466,7 @@
                 }
                 // 累加平台手续费
                 if (tChargingOrder.getOrderAmount()!=null){
-                    commissionAmountTotal = commissionAmountTotal.add(tChargingOrder.getPaymentAmount().multiply(new BigDecimal("0.006"))
+                    commissionAmountTotal = commissionAmountTotal.add(tChargingOrder.getRechargeAmount().multiply(new BigDecimal("0.006"))
                             .setScale(2,BigDecimal.ROUND_DOWN));
                 }
                 // 累加平台分佣
@@ -492,7 +490,7 @@
         chargingBillVO.setOrderCount(i);
         chargingBillVO.setChargingCapacity(chargingCapacityTotal);
         chargingBillVO.setPaymentAmount(paymentAmountTotal);
-        chargingBillVO.setOrderAmount(paymentAmountTotal.subtract(refundAmountTotal).subtract(commissionAmountTotal).subtract(sharingAmountTotal));
+        chargingBillVO.setOrderAmount(orderAmountTotal.subtract(commissionAmountTotal).subtract(sharingAmountTotal));
         chargingBillVO.setElectrovalence(electrovalenceTotal);
         chargingBillVO.setServiceCharge(serviceChargeTotal);
         chargingBillVO.setOrderCount(orderCount);
@@ -641,7 +639,6 @@
             chargingBillListVO.setUid(chargingBillListVO.getId().toString());
             // 根据账单的出账时间 查询上个月的充电订单
             LocalDateTime localDate = chargingBillListVO.getBillTime().minusMonths(1);
-//            LocalDateTime localDate = chargingBillListVO.getBillTime().minusDays(1);
             // 账单周期
             chargingBillListVO.setBillWeek(localDate.format(java.time.format.DateTimeFormatter.ofPattern("yyyy-MM")));
             // 获取 LocalDate 对象
@@ -649,13 +646,6 @@
             // 获取该月份的最后一天
             LocalDateTime lastDayOfMonth = localDate.with(TemporalAdjusters.lastDayOfMonth());
             LocalDateTime firstDayOfMonth = localDate.with(TemporalAdjusters.firstDayOfMonth());
-//            QueryWrapper<TChargingOrder> eq = new QueryWrapper<TChargingOrder>()
-//                    .between("pay_time", firstDayOfMonth.withHour(0).withMinute(0).withSecond(0), lastDayOfMonth.withHour(23).withMinute(59).withSecond(59))
-//                    .eq("recharge_payment_status", 2);
-//            if (chargingBillListVO.getType() == 2) {
-//                eq.eq("site_id", chargingBillListVO.getSiteId());
-//            }
-//            List<TChargingOrder> tChargingOrders = chargingOrderList.selectList(eq);
             List<TChargingOrder> tChargingOrders = total.stream().filter(e -> chargingBillListVO.getType() == 2 ?
                     e.getSiteId().equals(chargingBillListVO.getSiteId()) : true &&
                     e.getPayTime().isBefore(lastDayOfMonth.withHour(23).withMinute(59).withSecond(59))
@@ -790,7 +780,7 @@
                 }
                 // 累加平台手续费
                 if (tChargingOrder.getOrderAmount()!=null){
-                    commissionAmount = commissionAmount.add(tChargingOrder.getPaymentAmount().multiply(BigDecimal.valueOf(0.006))
+                    commissionAmount = commissionAmount.add(tChargingOrder.getRechargeAmount().multiply(BigDecimal.valueOf(0.006))
                             .setScale(2,BigDecimal.ROUND_DOWN));
                 }
                 // 累加平台分佣
@@ -859,13 +849,6 @@
             // 获取该月份的最后一天
             LocalDateTime lastDayOfMonth = localDate.with(TemporalAdjusters.lastDayOfMonth());
             LocalDateTime firstDayOfMonth = localDate.with(TemporalAdjusters.firstDayOfMonth());
-//            QueryWrapper<TChargingOrder> eq = new QueryWrapper<TChargingOrder>()
-//                    .between("pay_time", firstDayOfMonth.withHour(0).withMinute(0).withSecond(0), lastDayOfMonth.withHour(23).withMinute(59).withSecond(59))
-//                    .eq("recharge_payment_status", 2);
-//            if (chargingBillListVO.getType() == 2) {
-//                eq.eq("site_id", chargingBillListVO.getSiteId());
-//            }
-//            List<TChargingOrder> tChargingOrders = chargingOrderList.selectList(eq);
             List<TChargingOrder> tChargingOrders = total.stream().filter(e -> chargingBillListVO.getType() == 2 ?
                     e.getSiteId().equals(chargingBillListVO.getSiteId()) : true &&
                     e.getPayTime().isBefore(lastDayOfMonth.withHour(23).withMinute(59).withSecond(59))
@@ -905,8 +888,8 @@
                 }
                 // 累加平台手续费
                 if (tChargingOrder.getOrderAmount()!=null){
-                    commissionAmount = commissionAmount.add(tChargingOrder.getPaymentAmount().multiply(new BigDecimal("0.006")).setScale(2,BigDecimal.ROUND_DOWN));
-                    commissionAmountTotal = commissionAmountTotal.add(tChargingOrder.getPaymentAmount().multiply(new BigDecimal("0.006"))
+                    commissionAmount = commissionAmount.add(tChargingOrder.getRechargeAmount().multiply(new BigDecimal("0.006")).setScale(2,BigDecimal.ROUND_DOWN));
+                    commissionAmountTotal = commissionAmountTotal.add(tChargingOrder.getRechargeAmount().multiply(new BigDecimal("0.006"))
                             .setScale(2,BigDecimal.ROUND_DOWN));
                 }
                 // 累加平台分佣
diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java
index 906213d..fe484d4 100644
--- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java
@@ -67,6 +67,7 @@
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.util.StringUtils;
 
@@ -1322,8 +1323,8 @@
 				}
 
 			}
-			chargingOrderVO.setCommissionAmount(chargingOrderVO.getOrderAmount()!=null?chargingOrderVO.getOrderAmount().multiply(new BigDecimal("0.006")):new BigDecimal("0"));
-			chargingOrderVO.setPlatFormMoney(chargingOrderVO.getOrderAmount()!=null?chargingOrderVO.getOrderAmount().multiply(new BigDecimal("0.006")).setScale(2,BigDecimal.ROUND_DOWN):new BigDecimal("0"));
+			chargingOrderVO.setCommissionAmount(chargingOrderVO.getRechargeAmount()!=null?chargingOrderVO.getRechargeAmount().multiply(new BigDecimal("0.006")):new BigDecimal("0"));
+			chargingOrderVO.setPlatFormMoney(chargingOrderVO.getRechargeAmount()!=null?chargingOrderVO.getRechargeAmount().multiply(new BigDecimal("0.006")).setScale(2,BigDecimal.ROUND_DOWN):new BigDecimal("0"));
 			chargingOrderVO.setUid(chargingOrderVO.getId()+"");
 			TChargingGun data3 = allGun.stream().filter(e->e.getId().equals(chargingOrderVO.getChargingGunId())).findFirst().orElse(null);
 			TChargingPile data2 = allPile.stream().filter(e->e.getId().equals(chargingOrderVO.getChargingPileId())).findFirst().orElse(null);
@@ -1377,7 +1378,7 @@
 
 		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"));
+			commissionMoney = commissionMoney.add(chargingOrderVO.getRechargeAmount()!=null?chargingOrderVO.getRechargeAmount().multiply(new BigDecimal("0.006")):new BigDecimal("0"));
 			if (chargingOrderVO.getChargingCapacity()!=null){
 				total = total.add(chargingOrderVO.getElectricity()!=null?chargingOrderVO.getElectricity():new BigDecimal("0"));
 			}
@@ -1576,7 +1577,7 @@
 			chargingOrderListVO.setChargingCapacity(chargingOrderListVO.getElectricity());
 			BigDecimal bigDecimal = new BigDecimal("0.006");
 			if (chargingOrderListVO.getOrderAmount()!=null){
-				chargingOrderListVO.setCommissionAmount(chargingOrderListVO.getPaymentAmount().multiply(bigDecimal));
+				chargingOrderListVO.setCommissionAmount(chargingOrderListVO.getRechargeAmount().multiply(bigDecimal));
 			}
 			chargingOrderListVO.setPaymentAmount(chargingOrderListVO.getPaymentAmount());
 			chargingOrderListVO.setUid(chargingOrderListVO.getId()+"");
@@ -2838,7 +2839,7 @@
 			}
 			if (tChargingOrder.getPaymentAmount()!=null){
 				paymentAmount = paymentAmount.add(tChargingOrder.getPaymentAmount());
-				orderCommission = orderCommission.add(tChargingOrder.getPaymentAmount().multiply(new BigDecimal("0.006"))
+				orderCommission = orderCommission.add(tChargingOrder.getRechargeAmount().multiply(new BigDecimal("0.006"))
 						.setScale(2,BigDecimal.ROUND_DOWN));
 			}
 
@@ -2983,6 +2984,8 @@
 		return pageInfo;
 	}
 
+	@Autowired
+	private TChargingOrderService chargingOrderService;
 	@Override
 	public SettlementTotalVO settlementTotal(String time) {
 		Long userId = tokenService.getLoginUser().getUserid();
@@ -2997,6 +3000,14 @@
 		if (siteIds.isEmpty()){
 			siteIds.add(-1);
 		}
+		List<Site> siteList = siteClient.getSiteAll().getData();
+		List<TChargingGun> gunList = chargingGunClient.getAllGun().getData();
+		List<TChargingPile> pileList = chargingGunClient.getAllPile().getData();
+		List<TAppUser> userList = appUserClient.getAllUser().getData();
+		List<TAppUserCar> carList = appUserCarClient.getAllCar().getData();
+		List<TChargingOrder> totalOrder = chargingOrderService.list(new LambdaQueryWrapper<>(TChargingOrder.class)
+				.eq(TChargingOrder::getRechargePaymentStatus, 2));
+		List<TChargingOrderRefund> totalRefund = chargingOrderRefundService.lambdaQuery().eq(TChargingOrderRefund::getRefundStatus, 2).list();
 		SettlementTotalVO res = new SettlementTotalVO();
 		List<TSettlementConfirm> list1 = tSettlementConfirmMapper.settlementTotal(time,siteIds);
 		LocalDateTime parse = LocalDateTime.parse(time, DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
@@ -3044,9 +3055,9 @@
 		for (TSettlementConfirm tSettlementConfirm : list1) {
 			tSettlementConfirm.setXuhao(i);
 			tSettlementConfirm.setMetering(tSettlementConfirm.getSupplyElectronic());
-			List<Site> data1 = siteClient.getSiteByIds(Arrays.asList(tSettlementConfirm.getSiteId())).getData();
-			if (!data1.isEmpty()){
-				tSettlementConfirm.setSiteName(data1.get(0).getName());
+			Site site = siteList.stream().filter(e -> e.getId().equals(tSettlementConfirm.getSiteId())).findFirst().orElse(null);
+			if (site!=null){
+				tSettlementConfirm.setSiteName(site.getName());
 			}
 			if (tSettlementConfirm.getMeteringElectronic()!=null){
 				meteringElectronic = meteringElectronic.add(tSettlementConfirm.getMeteringElectronic());
@@ -3091,26 +3102,17 @@
 					eq.between("end_time", tSettlementConfirm.getStartTime(), tSettlementConfirm.getEndTime());
 					break;
 			}
-			List<TChargingOrder> tChargingOrders = this.baseMapper.selectList(eq);
-			Map<String,TChargingOrder> map = new HashMap<>();
-			StringBuilder stringBuilder = new StringBuilder();
-			for (TChargingOrder tChargingOrder : tChargingOrders) {
-				stringBuilder.append(tChargingOrder.getCode()).append(",");
-
-			}
+			List<TChargingOrder> tChargingOrders = totalOrder.stream().filter(e-> e.getPayTime()
+					.isBefore(tSettlementConfirm.getEndTime())
+					&& e.getPayTime().isAfter(tSettlementConfirm.getStartTime())&&e.getSiteId().equals(tSettlementConfirm.getSiteId())).collect(Collectors.toList());
 			// 充电总时长
-
-			Long temp = 1L;
-			if (StringUtils.hasLength(stringBuilder.toString())){
-				String substring = stringBuilder.substring(0, stringBuilder.length() - 1);
-				for (String s : substring.split(",")) {
-					UploadRealTimeMonitoringData data6 = uploadRealTimeMonitoringDataClient.chargingOrderInfo(s).getData();
-					if (data6!=null){
-						temp+=(data6.getCumulative_charging_time()*60);
-
-					}
-
-				}
+			Long temp = 0L;
+			for (TChargingOrder tChargingOrder : tChargingOrders) {
+				LocalDateTime startTime = tChargingOrder.getStartTime();
+				LocalDateTime endTime = tChargingOrder.getEndTime();
+				// 计算时间差 单位秒
+				long between = ChronoUnit.SECONDS.between(startTime, endTime);
+				temp+=between;
 			}
 			List<TChargingPile> data = siteClient.getPileListBySiteId(tSettlementConfirm.getSiteId()).getData();
 			// 计算充电桩的功率平均值
@@ -3122,7 +3124,7 @@
 
 			tSettlementConfirm.setIncome(tSettlementConfirm.getElectrovalence().add(tSettlementConfirm.getServiceCharge()));
 			//利用率=充电量/(桩数量*功率*时间)
-			List<TChargingPile> data2 = chargingPileClient.getChargingPileBySiteId(tSettlementConfirm.getSiteId()).getData();
+			List<TChargingPile> data2 = pileList.stream().filter(e -> e.getSiteId().equals(tSettlementConfirm.getSiteId())).collect(Collectors.toList());
 			BigDecimal bigDecimal2 = new BigDecimal("0");
 
 			if (data2!=null && (!data2.isEmpty())){
@@ -3238,11 +3240,16 @@
 		if (siteIds.isEmpty()){
 			siteIds.add(-1);
 		}
+		List<Site> siteList = siteClient.getSiteAll().getData();
+		List<TChargingGun> gunList = chargingGunClient.getAllGun().getData();
+		List<TChargingPile> pileList = chargingGunClient.getAllPile().getData();
+		List<TAppUser> userList = appUserClient.getAllUser().getData();
+		List<TAppUserCar> carList = appUserCarClient.getAllCar().getData();
+		List<TChargingOrder> totalOrder = chargingOrderService.list(new LambdaQueryWrapper<>(TChargingOrder.class)
+				.eq(TChargingOrder::getRechargePaymentStatus, 2));
 		SettlementTotalVO res = new SettlementTotalVO();
 		List<TSettlementConfirm> list1 = tSettlementConfirmMapper.settlementTotal(time,siteIds);
 		LocalDateTime parse = LocalDateTime.parse(time, DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
-		// 减少一个月
-		LocalDateTime minus = parse.minusMonths(1);
 		List<TSettlementConfirm> list2 = tSettlementConfirmMapper.settlementTotal(time,siteIds);
 		// 合计
 		List<TSettlementConfirm> total = new ArrayList<>();
@@ -3285,7 +3292,7 @@
 		for (TSettlementConfirm tSettlementConfirm : list1) {
 			tSettlementConfirm.setXuhao(i);
 			tSettlementConfirm.setMetering(tSettlementConfirm.getSupplyElectronic());
-			List<Site> data1 = siteClient.getSiteByIds(Arrays.asList(tSettlementConfirm.getSiteId())).getData();
+			List<Site> data1 = siteList.stream().filter(e -> e.getId().equals(tSettlementConfirm.getSiteId())).collect(Collectors.toList());
 			if (!data1.isEmpty()){
 				tSettlementConfirm.setSiteName(data1.get(0).getName());
 			}
@@ -3332,26 +3339,18 @@
 					eq.between("end_time", tSettlementConfirm.getStartTime(), tSettlementConfirm.getEndTime());
 					break;
 			}
-			List<TChargingOrder> tChargingOrders = this.baseMapper.selectList(eq);
-			Map<String,TChargingOrder> map = new HashMap<>();
-			StringBuilder stringBuilder = new StringBuilder();
-			for (TChargingOrder tChargingOrder : tChargingOrders) {
-				stringBuilder.append(tChargingOrder.getCode()).append(",");
 
-			}
+			List<TChargingOrder> tChargingOrders = totalOrder.stream().filter(e-> e.getPayTime()
+					.isBefore(tSettlementConfirm.getEndTime())
+					&& e.getPayTime().isAfter(tSettlementConfirm.getStartTime())&&e.getSiteId().equals(tSettlementConfirm.getSiteId())).collect(Collectors.toList());
 			// 充电总时长
-
-			Long temp = 1L;
-			if (StringUtils.hasLength(stringBuilder.toString())){
-				String substring = stringBuilder.substring(0, stringBuilder.length() - 1);
-				for (String s : substring.split(",")) {
-					UploadRealTimeMonitoringData data6 = uploadRealTimeMonitoringDataClient.chargingOrderInfo(s).getData();
-					if (data6!=null){
-						temp+=(data6.getCumulative_charging_time()*60);
-
-					}
-
-				}
+			Long temp = 0L;
+			for (TChargingOrder tChargingOrder : tChargingOrders) {
+				LocalDateTime startTime = tChargingOrder.getStartTime();
+				LocalDateTime endTime = tChargingOrder.getEndTime();
+				// 计算时间差 单位秒
+				long between = ChronoUnit.SECONDS.between(startTime, endTime);
+				temp+=between;
 			}
 			List<TChargingPile> data = siteClient.getPileListBySiteId(tSettlementConfirm.getSiteId()).getData();
 			// 计算充电桩的功率平均值
diff --git a/ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TChargingBillMapper.xml b/ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TChargingBillMapper.xml
index 276c666..344a768 100644
--- a/ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TChargingBillMapper.xml
+++ b/ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TChargingBillMapper.xml
@@ -78,4 +78,29 @@
         and t1.del_flag = 0
         order by t1.create_time desc
     </select>
+    <select id="chargingBillList1Nolimt" resultType="com.ruoyi.order.api.vo.ChargingBillListVO">
+        select t1.* from t_charging_bill t1
+        where 1=1
+        <if test="req.type != null ">
+            and t1.type = #{req.type}
+        </if>
+        <if test="req.state != null ">
+            and t1.status = #{req.state}
+        </if>
+        <if test="startTime1 != null and startTime1!=''">
+            and (t1.bill_time between #{startTime1} and #{startTime2})
+        </if>
+        <if test="req.uid != null ">
+            and t1.id = #{req.uid}
+        </if>
+        <if test="null != req.siteIds and req.siteIds.size()>0" >
+            and t1.site_id in
+            <foreach collection="req.siteIds" close=")" open="(" item="item" separator=",">
+                #{item}
+            </foreach>
+        </if>
+        and t1.billType = 2
+        and t1.del_flag = 0
+        order by t1.create_time desc
+    </select>
 </mapper>

--
Gitblit v1.7.1