From d0b83b31dba32844fc6fe8ff84afa0d960e18de7 Mon Sep 17 00:00:00 2001
From: 无关风月 <443237572@qq.com>
Date: 星期三, 12 二月 2025 16:09:01 +0800
Subject: [PATCH] bug修改

---
 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingBillServiceImpl.java |  116 ++++++++++++++++++++++++++++------------------------------
 1 files changed, 56 insertions(+), 60 deletions(-)

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 1fcddcc..6a62bb7 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
@@ -1,5 +1,7 @@
 package com.ruoyi.order.service.impl;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper;
 import com.ruoyi.account.api.feignClient.AppUserCarClient;
 import com.ruoyi.account.api.feignClient.AppUserClient;
 import com.ruoyi.account.api.model.TAppUser;
@@ -524,8 +526,9 @@
             startTime1 = split[0];
             startTime2 = split[1];
         }
+        List<TChargingOrder> total = chargingOrderList.selectList(new LambdaQueryWrapper<>(TChargingOrder.class)
+                .eq(TChargingOrder::getRechargePaymentStatus, 2));
         PageInfo<ChargingBillListVO> pageInfo = new PageInfo<>(dto.getPageCurr(),dto.getPageSize());
-        PageInfo<ChargingBillListVO> pageInfo1 = new PageInfo<>(1,999999999);
         List<Site> data6 = siteClient.getSiteAll().getData();
         List<TChargingGun> gunList = chargingGunClient.getAllGun().getData();
         List<TChargingPile> pileList = chargingGunClient.getAllPile().getData();
@@ -575,7 +578,7 @@
             dto.setSiteIds(siteIds);
 
         List<ChargingBillListVO> list = this.baseMapper.chargingBillList(pageInfo,dto,startTime1,startTime2);
-        List<ChargingBillListVO> list1 = this.baseMapper.chargingBillList(pageInfo1,dto,startTime1,startTime2);
+        List<ChargingBillListVO> list1 = this.baseMapper.chargingBillListNoLimit(dto,startTime1,startTime2);
         BigDecimal paymentAmountTotal = new BigDecimal("0");
         BigDecimal orderAmountTotal = new BigDecimal("0");
         BigDecimal electrovalenceTotal = new BigDecimal("0");
@@ -640,19 +643,21 @@
             // 账单周期
             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());
+//            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))
+                    && e.getPayTime().isAfter(firstDayOfMonth.withHour(0).withMinute(0).withSecond(0))).collect(Collectors.toList());
             int chargingSecond = 0;
             BigDecimal paymentAmount = new BigDecimal("0");
             BigDecimal orderAmount = new BigDecimal("0");
@@ -726,36 +731,32 @@
                 BigDecimal add = tChargingOrder.getElectrovalence().add(tChargingOrder.getServiceCharge());
                 tChargingOrder.setTotalAmount(add.toString());
                 tChargingOrder.setDiscount(tChargingOrder.getCouponDiscountAmount()!=null?tChargingOrder.getCouponDiscountAmount().toString():"0");
-                UploadRealTimeMonitoringData data5 = uploadRealTimeMonitoringDataClient.chargingOrderInfo(tChargingOrder.getCode()).getData();
-                if (data5!=null){
-                    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分钟则不展示分钟
+                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分钟则不展示分钟
 
-                            // 计算小时、分钟和秒
-                            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());
+                        // 计算小时、分钟和秒
+                        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());
 
-                    }
-
-                    tChargingOrder.setEndSoc(data5.getSoc().toString());
                 }
+
                 TAppUser data3 = userList.stream().filter(e -> e.getId().equals(tChargingOrder.getAppUserId())).findFirst().orElse(null);
                 if (tChargingOrder.getAppUserCarId()!=null){
                     TAppUserCar tAppUserCar = carList.stream().filter(e -> e.getId().equals(tChargingOrder.getAppUserCarId())).findFirst().orElse(null);
@@ -850,21 +851,21 @@
             // 账单周期
             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());
-//            LocalDateTime firstDayOfMonth = LocalDateTime.of(date, LocalTime.MIN);
-//            LocalDateTime lastDayOfMonth = LocalDateTime.of(date, LocalTime.MAX);
-            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());
+//            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))
+                    && e.getPayTime().isAfter(firstDayOfMonth.withHour(0).withMinute(0).withSecond(0))).collect(Collectors.toList());
             orderCount+=tChargingOrders.size();
             BigDecimal paymentAmount = new BigDecimal("0");
             BigDecimal orderAmount = new BigDecimal("0");
@@ -925,7 +926,7 @@
         }
         chargingBillVO.setChargingCapacity(chargingCapacityTotal);
         chargingBillVO.setPaymentAmount(paymentAmountTotal.subtract(commissionAmountTotal).subtract(sharingAmountTotal).setScale(2, BigDecimal.ROUND_DOWN));
-        chargingBillVO.setOrderAmount(orderAmountTotal.subtract(refundAmountTotal).setScale(2, BigDecimal.ROUND_DOWN));
+        chargingBillVO.setOrderAmount(orderAmountTotal.setScale(2, BigDecimal.ROUND_DOWN));
         chargingBillVO.setElectrovalence(electrovalenceTotal.setScale(2, BigDecimal.ROUND_DOWN));
         chargingBillVO.setServiceCharge(serviceChargeTotal.setScale(2, BigDecimal.ROUND_DOWN));
         chargingBillVO.setOrderCount(orderCount);
@@ -938,13 +939,8 @@
     }
 
     public static void main(String[] args) {
-        int totalSeconds = 1201;
-        int hours = totalSeconds / 3600;
-        int minutes = (totalSeconds % 3600) / 60;
-        int seconds = totalSeconds % 60;
+        LocalDateTime localDate = LocalDateTime.now().withMonth(1).withDayOfMonth(1).withHour(0).withMinute(0).withSecond(0);
 
-        String timeString = String.format("%d小时%d分钟%d秒", hours, minutes, seconds);
-        System.out.println(timeString);
     }
 
 }

--
Gitblit v1.7.1