From 06e4db5a576c63c10ab4673dba017ffe1a3e7e66 Mon Sep 17 00:00:00 2001
From: 无关风月 <443237572@qq.com>
Date: 星期五, 17 一月 2025 19:07:27 +0800
Subject: [PATCH] Merge branch 'master' of http://120.76.84.145:10101/gitblit/r/java/mx_charging_pile

---
 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingBillServiceImpl.java |  156 +++++++++++++++++++++++++++++++---------------------
 1 files changed, 93 insertions(+), 63 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 2e57619..a20b110 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
@@ -102,12 +102,10 @@
             startTime2 = split[1];
         }
         Long userId = tokenService.getLoginUser().getUserid();
+        // 查询当前登陆人按钮权限
+        SysUser sysUser = sysUserClient.getSysUser(tokenService.getLoginUser().getUserid()).getData();
+        Integer roleType = sysUser.getRoleType();
         List<Integer> siteIds = new ArrayList<>();
-
-        if (dto.getType() == 1){
-            siteIds.add(0);
-            dto.setSiteIds(siteIds);
-        }else{
             //如果没传siteId,获取当前登陆人所有的siteIds
             if (dto.getSiteId()==null){
                 if (userId != null){
@@ -121,9 +119,24 @@
             }
             if (siteIds.isEmpty()){
                 siteIds.add(-1);
+            }else{
+                if (roleType == 2){
+                    List<Integer> integers = new ArrayList<>();
+                    for (Integer siteId : siteIds) {
+                        // 校验有没有这个站点的权限
+                        List<Boolean> t1= partnerClient.getAccountMenu(sysUser.getObjectId(),siteId).getData();
+
+                        Boolean b = t1.get(1);
+                        if (b){
+                            integers.add(siteId);
+                        }
+                    }
+                    siteIds = integers;
+                }
             }
+            if (siteIds.isEmpty())siteIds.add(-1);
             dto.setSiteIds(siteIds);
-        }
+
 
         PageInfo<ChargingBillListVO> pageInfo = new PageInfo<>(dto.getPageCurr(),dto.getPageSize());
         PageInfo<ChargingBillListVO> pageInfo1 = new PageInfo<>(1,9999999);
@@ -140,13 +153,14 @@
         BigDecimal chargingCapacityTotal = new BigDecimal("0");
         BigDecimal discountTotal = new BigDecimal("0");
         int orderCount = 0;
-        // 查询当前登陆人按钮权限
-        SysUser sysUser = sysUserClient.getSysUser(tokenService.getLoginUser().getUserid()).getData();
-        Integer roleType = sysUser.getRoleType();
+
         for (ChargingBillListVO chargingBillListVO : list) {
             if (roleType==2){
-                Boolean data = partnerClient.getAccountMenu(sysUser.getObjectId(), chargingBillListVO.getSiteId()).getData();
-                chargingBillListVO.setAuthDownLoad(data);
+                List<Boolean> data = partnerClient.getAccountMenu(sysUser.getObjectId(), chargingBillListVO.getSiteId()).getData();
+                chargingBillListVO.setAuthDownLoad(data.get(0));
+                if (chargingBillListVO.getType()==1){
+                    continue;
+                }
             }
             String temp = "";
             String temp1 = "";
@@ -174,22 +188,18 @@
 
             chargingBillListVO.setUid(chargingBillListVO.getId().toString());
             // 根据账单的出账时间 查询上个月的充电订单
-//            LocalDateTime localDate = chargingBillListVO.getBillTime().minusMonths(1);
-            // todo 临时修改为查询昨天的充电订单
-            LocalDateTime localDate = chargingBillListVO.getBillTime().minusDays(1);
+            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());
-            // todo 临时修改为查询昨天凌晨00:00:00 到 23:59:59
-            LocalDateTime firstDayOfMonth = LocalDateTime.of(date, LocalTime.MIN);
-            LocalDateTime lastDayOfMonth = LocalDateTime.of(date, LocalTime.MAX);
+            LocalDate firstDayOfMonth = date.withDayOfMonth(1);
+            // 获取该月份的最后一天
+            LocalDate lastDayOfMonth = date.with(TemporalAdjusters.lastDayOfMonth());
             QueryWrapper<TChargingOrder> eq = new QueryWrapper<TChargingOrder>()
-                    .between("create_time", firstDayOfMonth, lastDayOfMonth)
+                    .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) {
@@ -389,7 +399,10 @@
         BigDecimal bigDecimal = new BigDecimal("0");
         int i = 0;
         for (ChargingBillListVO chargingBillListVO : list1) {
-            if (!siteIds.contains(chargingBillListVO.getSiteId())){
+            if (chargingBillListVO.getSiteId()!=0&&!siteIds.contains(chargingBillListVO.getSiteId())){
+                continue;
+            }
+            if (chargingBillListVO.getType()==1){
                 continue;
             }
             i++;
@@ -400,20 +413,15 @@
             chargingBillVO.setBillWeek(billTime.minusMonths(1).format(java.time.format.DateTimeFormatter.ofPattern("yyyy-MM")));
 
             chargingBillListVO.setUid(chargingBillListVO.getId().toString());
-//            LocalDateTime localDate = chargingBillListVO.getBillTime().minusMonths(1);
-            // todo 临时修改为查询昨天的充电订单
-            LocalDateTime localDate = chargingBillListVO.getBillTime().minusDays(1);
+            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());
-            // todo 临时修改为查询昨天凌晨00:00:00 到 23:59:59
-            LocalDateTime firstDayOfMonth = LocalDateTime.of(date, LocalTime.MIN);
-            LocalDateTime lastDayOfMonth = LocalDateTime.of(date, LocalTime.MAX);
+            // 获取该月份的第一天
+            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)
@@ -497,6 +505,7 @@
         return chargingBillVO;
     }
 
+
     @Override
     public ChargingBillVO chargingBillList(ChargingListQuery dto) {
         if (dto.getState()!=null){
@@ -517,9 +526,11 @@
         PageInfo<ChargingBillListVO> pageInfo = new PageInfo<>(dto.getPageCurr(),dto.getPageSize());
         PageInfo<ChargingBillListVO> pageInfo1 = new PageInfo<>(1,9999999);
         Long userId = tokenService.getLoginUser().getUserid();
+        // 查询当前登陆人按钮权限
+        SysUser sysUser = sysUserClient.getSysUser(tokenService.getLoginUser().getUserid()).getData();
+        Integer roleType = sysUser.getRoleType();
         //如果没传siteId,获取当前登陆人所有的siteIds
         List<Integer> siteIds = new ArrayList<>();
-
             //如果没传siteId,获取当前登陆人所有的siteIds
             if (dto.getSiteId()==null){
                 if (userId != null){
@@ -533,7 +544,28 @@
             }
             if (siteIds.isEmpty()){
                 siteIds.add(-1);
+            }else{
+                if (roleType == 2){
+                    List<Integer> integers = new ArrayList<>();
+                    for (Integer siteId : siteIds) {
+                        // 校验有没有这个站点的权限
+                        List<Boolean> t1= partnerClient.getChargingBillMenu(sysUser.getObjectId(),siteId).getData();
+
+                        Boolean b = t1.get(1);
+                        if (b){
+                            integers.add(siteId);
+                        }
+                    }
+                    siteIds = integers;
+                }
             }
+
+        if (roleType==1){
+            siteIds.add(0);
+        }
+        if (siteIds.isEmpty()){
+            siteIds.add(-1);
+        }
             dto.setSiteIds(siteIds);
 
         List<ChargingBillListVO> list = this.baseMapper.chargingBillList(pageInfo,dto,startTime1,startTime2);
@@ -548,13 +580,14 @@
         BigDecimal discountTotal = new BigDecimal("0");
         BigDecimal refundAmountTotal = new BigDecimal("0");
         int orderCount = 0;
-        // 查询当前登陆人按钮权限
-        SysUser sysUser = sysUserClient.getSysUser(tokenService.getLoginUser().getUserid()).getData();
-        Integer roleType = sysUser.getRoleType();
+
 
         List<ChargingBillListVO> chargingBillListVOS = new ArrayList<>();
         for (ChargingBillListVO chargingBillListVO : list) {
             if (roleType==2 && chargingBillListVO.getSiteId()!=0){
+                chargingBillListVOS.add(chargingBillListVO);
+            }
+            if (roleType ==1 && (siteIds.contains(chargingBillListVO.getSiteId())|| chargingBillListVO.getSiteId()==0)){
                 chargingBillListVOS.add(chargingBillListVO);
             }
         }
@@ -564,9 +597,8 @@
             }
             if (roleType == 2){
                 // 校验有没有这个站点的权限
-                Boolean t1= partnerClient.getChargingBillMenu(sysUser.getObjectId(),chargingBillListVO.getSiteId()).getData();
-                chargingBillListVO.setAuthDownLoad(t1);
-
+                List<Boolean> t1= partnerClient.getChargingBillMenu(sysUser.getObjectId(),chargingBillListVO.getSiteId()).getData();
+                chargingBillListVO.setAuthDownLoad(t1.get(0));
                 if (chargingBillListVO.getSiteId()==0){
                     continue;
                 }
@@ -597,22 +629,18 @@
 
             chargingBillListVO.setUid(chargingBillListVO.getId().toString());
             // 根据账单的出账时间 查询上个月的充电订单
-//            LocalDateTime localDate = chargingBillListVO.getBillTime().minusMonths(1);
-            // todo 临时修改为查询昨天的充电订单
-            LocalDateTime localDate = chargingBillListVO.getBillTime().minusDays(1);
+            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());
-            // todo 临时修改为查询昨天凌晨00:00:00 到 23:59:59
-            LocalDateTime firstDayOfMonth = LocalDateTime.of(date, LocalTime.MIN);
-            LocalDateTime lastDayOfMonth = LocalDateTime.of(date, LocalTime.MAX);
+            LocalDate firstDayOfMonth = date.withDayOfMonth(1);
+            // 获取该月份的最后一天
+            LocalDate lastDayOfMonth = date.with(TemporalAdjusters.lastDayOfMonth());
             QueryWrapper<TChargingOrder> eq = new QueryWrapper<TChargingOrder>()
-                    .between("create_time", firstDayOfMonth, lastDayOfMonth)
+                    .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) {
@@ -810,20 +838,18 @@
 
             chargingBillListVO.setUid(chargingBillListVO.getId().toString());
             // 根据账单的出账时间 查询上个月的充电订单
-//            LocalDateTime localDate = chargingBillListVO.getBillTime().minusMonths(1);
-            // todo 临时修改为查询昨天的充电订单
-            LocalDateTime localDate = chargingBillListVO.getBillTime().minusDays(1);
+            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());
-            // todo 临时修改为查询昨天凌晨00:00:00 到 23:59:59
-            LocalDateTime firstDayOfMonth = LocalDateTime.of(date, LocalTime.MIN);
-            LocalDateTime lastDayOfMonth = LocalDateTime.of(date, LocalTime.MAX);
+            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)
@@ -905,11 +931,15 @@
     }
 
     public static void main(String[] args) {
-        int i = 8 % 20;
-        System.err.println(i);
-        LocalDateTime now = LocalDateTime.now();
-        // 将时间转化为字符串 只保留年月日 格式为yyyy-MM-dd
-        String format = now.format(java.time.format.DateTimeFormatter.ofPattern("yyyy-MM-dd"));
+        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);
     }
 
 }

--
Gitblit v1.7.1