From 0275498af38bc1c8fbc5bfea54f3cce3550fd6ab Mon Sep 17 00:00:00 2001
From: puzhibing <393733352@qq.com>
Date: 星期二, 11 二月 2025 09:57:54 +0800
Subject: [PATCH] Merge branch 'master' of http://120.76.84.145:10101/gitblit/r/java/mx_charging_pile into 1.1

---
 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingBillServiceImpl.java |   93 ++++++++++++++++++++++++----------------------
 1 files changed, 49 insertions(+), 44 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 11bcf51..a70cd25 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
@@ -45,6 +45,7 @@
 import java.time.LocalDate;
 import java.time.LocalDateTime;
 import java.time.LocalTime;
+import java.time.temporal.ChronoUnit;
 import java.time.temporal.TemporalAdjusters;
 import java.util.*;
 import java.util.stream.Collectors;
@@ -526,7 +527,12 @@
             startTime2 = split[1];
         }
         PageInfo<ChargingBillListVO> pageInfo = new PageInfo<>(dto.getPageCurr(),dto.getPageSize());
-        PageInfo<ChargingBillListVO> pageInfo1 = new PageInfo<>(1,9999999);
+        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();
+        List<TAppUser> userList = appUserClient.getAllUser().getData();
+        List<TAppUserCar> carList = appUserCarClient.getAllCar().getData();
         Long userId = tokenService.getLoginUser().getUserid();
         // 查询当前登陆人按钮权限
         SysUser sysUser = sysUserClient.getSysUser(tokenService.getLoginUser().getUserid()).getData();
@@ -614,7 +620,7 @@
                     break;
                 case 2:
                     temp = "各个站点账单";
-                    temp1 = siteClient.getSiteByIds(Arrays.asList(chargingBillListVO.getSiteId())).getData().get(0).getName();
+                    temp1 = data6.stream().filter(e->e.getId().equals(chargingBillListVO.getSiteId())).findFirst().orElse(new Site()).getName();
                     break;
             }
             chargingBillVO.setCategory(temp);
@@ -673,12 +679,9 @@
                         chargingBillListVO.setPayTypeName("支付宝商户");
                     }
                 }
-                List<Site> data = siteClient.getSiteByIds(Arrays.asList(tChargingOrder.getSiteId())).getData();
-                if (!data.isEmpty()){
-                    chargingBillVO.setSiteName(data.get(0).getName());
-                }
-                TChargingPile data1 = chargingPileClient.getChargingPileById(tChargingOrder.getChargingPileId()).getData();
-                TChargingGun data2 = chargingGunClient.getChargingGunById(tChargingOrder.getChargingGunId()).getData();
+                chargingBillVO.setSiteName(data6.stream().filter(e->e.getId().equals(chargingBillListVO.getSiteId())).findFirst().orElse(new Site()).getName());
+                TChargingGun data2 = gunList.stream().filter(e -> e.getId().equals(tChargingOrder.getChargingGunId())).findFirst().orElse(null);
+                TChargingPile data1 = pileList.stream().filter(e -> e.getId().equals(tChargingOrder.getChargingPileId())).findFirst().orElse(null);
                 if (data1!=null && data2!=null){
                     tChargingOrder.setTerminalName(data1.getName()+data2.getName());
                     tChargingOrder.setTerminalCode(data2.getCode());
@@ -727,36 +730,40 @@
                 tChargingOrder.setDiscount(tChargingOrder.getCouponDiscountAmount()!=null?tChargingOrder.getCouponDiscountAmount().toString():"0");
                 UploadRealTimeMonitoringData data5 = uploadRealTimeMonitoringDataClient.chargingOrderInfo(tChargingOrder.getCode()).getData();
                 if (data5!=null){
-                    if (data5.getCumulative_charging_time()!=null){
-                        chargingSecond+=data5.getCumulative_charging_time()*60;
+                    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());
+
                     }
-                    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());
                 }
-                TAppUser data3 = appUserClient.getUserById(tChargingOrder.getAppUserId()).getData();
+                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 tAppUserCar = carList.stream().filter(e -> e.getId().equals(tChargingOrder.getAppUserCarId())).findFirst().orElse(null);
+                    if (tAppUserCar!=null){
+                        tChargingOrder.setLicensePlate(tAppUserCar.getLicensePlate());
+                        tChargingOrder.setVehicleModel(tAppUserCar.getVehicleModel());
                     }
                 }else{
                     tChargingOrder.setLicensePlate(tChargingOrder.getPlateNum());
@@ -814,7 +821,7 @@
                     chargingBillListVO.setSiteName("全站");
                     break;
                 case 2:
-                    Site site = siteClient.getSiteByIds(Arrays.asList(chargingBillListVO.getSiteId())).getData().get(0);
+                    Site site = data6.stream().filter(e -> e.getId().equals(chargingBillListVO.getSiteId())).findFirst().orElse(null);
                     if (site!=null){
                         chargingBillListVO.setSiteName(site.getName());
                     }
@@ -935,15 +942,13 @@
     }
 
     public static void main(String[] args) {
-        LocalDateTime localDateTime = LocalDateTime.now().minusMonths(1);
-        // 获取 LocalDate 对象
-        LocalDate date = localDateTime.toLocalDate();
-//            // 获取该月份的第一天
-        LocalDate firstDayOfMonth = date.withDayOfMonth(1);
-        // 获取该月份的最后一天
-        LocalDate lastDayOfMonth = date.with(TemporalAdjusters.lastDayOfMonth());
-        System.err.println(firstDayOfMonth);
-        System.err.println(lastDayOfMonth);
+        int totalSeconds = 1201;
+        int hours = totalSeconds / 3600;
+        int minutes = (totalSeconds % 3600) / 60;
+        int seconds = totalSeconds % 60;
+
+        String timeString = String.format("%d小时%d分钟%d秒", hours, minutes, seconds);
+        System.out.println(timeString);
     }
 
 }

--
Gitblit v1.7.1