From b2738da3832b84beb0bc657b4a6bcf0c7ca152b0 Mon Sep 17 00:00:00 2001
From: 无关风月 <443237572@qq.com>
Date: 星期五, 17 一月 2025 18:32:49 +0800
Subject: [PATCH] 修改出账期

---
 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java   |   50 +++++++++++++++++++------
 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingBillServiceImpl.java    |   19 ++++++---
 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/FinancialSettlementController.java |   18 ++++++---
 ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TChargingOrderMapper.xml                    |    7 ++-
 ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TChargingBillMapper.xml                     |    2 
 5 files changed, 67 insertions(+), 29 deletions(-)

diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/FinancialSettlementController.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/FinancialSettlementController.java
index 58883a0..574c936 100644
--- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/FinancialSettlementController.java
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/FinancialSettlementController.java
@@ -172,12 +172,18 @@
                         break;
                 }
             }
-            String s1 = DateUtils.localDateTimeToString(chargingOrderListVO.getCreateTime());
-            String s2 = DateUtils.localDateTimeToString(chargingOrderListVO.getStartTime());
-            String s3 = DateUtils.localDateTimeToString(chargingOrderListVO.getEndTime());
-            tChargingOrderExport.setCreateTime(s1);
-            tChargingOrderExport.setStartTime(s2);
-            tChargingOrderExport.setEndTime(s3);
+            if (chargingOrderListVO.getCreateTime()!=null){
+                String s1 = DateUtils.localDateTimeToString(chargingOrderListVO.getCreateTime());
+                tChargingOrderExport.setCreateTime(s1);
+            }
+            if (chargingOrderListVO.getStartTime()!=null){
+                String s2 = DateUtils.localDateTimeToString(chargingOrderListVO.getStartTime());
+                tChargingOrderExport.setStartTime(s2);
+            }
+            if (chargingOrderListVO.getEndTime()!=null){
+                String s3 = DateUtils.localDateTimeToString(chargingOrderListVO.getEndTime());
+                tChargingOrderExport.setEndTime(s3);
+            }
             tChargingOrderExport.setRechargePaymentStatus(chargingOrderListVO.getRechargePaymentStatus()+"");
             tChargingOrderExport.setType("充电订单");
             tChargingOrderExport.setChargingType("单桩双充");
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 c5eed9e..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
@@ -199,7 +199,7 @@
             // 获取该月份的最后一天
             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) {
@@ -505,6 +505,7 @@
         return chargingBillVO;
     }
 
+
     @Override
     public ChargingBillVO chargingBillList(ChargingListQuery dto) {
         if (dto.getState()!=null){
@@ -639,7 +640,7 @@
             // 获取该月份的最后一天
             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) {
@@ -930,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);
     }
 
 }
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 d7e1276..30f0176 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
@@ -1259,7 +1259,17 @@
 		 BigDecimal commissionMoney = new BigDecimal("0");
 		 BigDecimal refundMoney = new BigDecimal("0");
 		 BigDecimal paymentMoney = new BigDecimal("0");
+		List<String> collect2 = list.stream().map(TChargingOrder::getCode).collect(Collectors.toList());
+		StringBuilder stringBuilder2 = new StringBuilder();
+		List<UploadRealTimeMonitoringData> uploadRealTimeMonitoringData2 = new ArrayList<>();
+		for (String s : collect2) {
+			stringBuilder2.append(s).append(",");
+		}
+		if (stringBuilder2.length()>0){
+			StringBuilder ids = stringBuilder2.deleteCharAt(stringBuilder2.length() - 1);
+			uploadRealTimeMonitoringData2 = uploadRealTimeMonitoringDataClient.getOrderInfoByCodes(ids.toString()).getData();
 
+		}
 		for (ChargingOrderVO chargingOrderVO : list) {
 			if (roleType == 2){
 				for (Integer siteId : siteIds) {
@@ -1286,7 +1296,8 @@
 			// 充电订单 明细记录
 			List<TChargingOrderAccountingStrategy> chargingOrderId = chargingOrderAccountingStrategyService.list(new QueryWrapper<TChargingOrderAccountingStrategy>()
 					.eq("charging_order_id", chargingOrderVO.getId()));
-			UploadRealTimeMonitoringData data5 = uploadRealTimeMonitoringDataClient.chargingOrderInfo(chargingOrderVO.getCode()).getData();
+			UploadRealTimeMonitoringData data5 = uploadRealTimeMonitoringData2.stream().filter(e -> 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);
@@ -1310,16 +1321,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();
+
+		}
+
 		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"));
 			}
-			// 充电订单 明细记录
-			List<TChargingOrderAccountingStrategy> chargingOrderId = chargingOrderAccountingStrategyService.list(new QueryWrapper<TChargingOrderAccountingStrategy>()
-					.eq("charging_order_id", chargingOrderVO.getId()));
-			UploadRealTimeMonitoringData data5 = uploadRealTimeMonitoringDataClient.chargingOrderInfo(chargingOrderVO.getCode()).getData();
+			UploadRealTimeMonitoringData data5 = uploadRealTimeMonitoringData.stream().filter(e -> 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);
@@ -1499,6 +1520,9 @@
 		dto.setSiteIds(siteIds);
 		PageInfo<ChargingOrderListVO> pageInfo = new PageInfo<>(dto.getPageCurr(),dto.getPageSize());
 		List<ChargingOrderListVO> list = this.baseMapper.chargingList(pageInfo,dto,startTime1,startTime2,endTime1,endTime2);
+		List<Integer> siteIdsList = list.stream().map(ChargingOrderListVO::getSiteId).collect(Collectors.toList());
+		if (siteIdsList.isEmpty())siteIdsList.add(-1);
+		List<Site> sites = siteClient.getSiteByIds(siteIdsList).getData();
 
 		for (ChargingOrderListVO chargingOrderListVO : list) {
 			if (roleType==2){
@@ -1515,9 +1539,9 @@
 			chargingOrderListVO.setUid(chargingOrderListVO.getId()+"");
 			List<Integer> integers = new ArrayList<>();
 			integers.add(chargingOrderListVO.getSiteId());
-			List<Site> data = siteClient.getSiteByIds(integers).getData();
-			if (!data.isEmpty()) {
-				chargingOrderListVO.setSiteName(data.get(0).getName());
+			Site site = sites.stream().filter(e -> e.getId().equals(chargingOrderListVO.getSiteId())).findFirst().orElse(null);
+			if (site!=null){
+				chargingOrderListVO.setSiteName(site.getName());
 			}
 			if (chargingOrderListVO.getChargingGunId()!=null && chargingOrderListVO.getChargingPileId()!=null){
 				TChargingGun data1 = chargingGunClient.getChargingGunById(chargingOrderListVO.getChargingGunId()).getData();
@@ -1568,7 +1592,6 @@
 						}
 					}
 					chargingOrderListVO.setPhone(data3.getPhone());
-
 				}
 			}
 			List<TChargingOrderAccountingStrategy> list2 = chargingOrderAccountingStrategyService.lambdaQuery()
@@ -1642,14 +1665,17 @@
 		BigDecimal feng = new BigDecimal("0");
 		BigDecimal ping = new BigDecimal("0");
 		BigDecimal gu = new BigDecimal("0");
+		List<Long> collect = list1.stream().map(ChargingOrderListVO::getId).collect(Collectors.toList());
+		List<TChargingOrderAccountingStrategy> chargingOrderAccountingStrategies = chargingOrderAccountingStrategyService.lambdaQuery()
+				.in(TChargingOrderAccountingStrategy::getChargingOrderId,collect).list();
 		for (ChargingOrderListVO chargingOrderListVO : list1) {
 			if (chargingOrderListVO.getChargingCapacity()!=null)electronic = electronic.add(chargingOrderListVO.getElectricity());
 
 			if (chargingOrderListVO.getPaymentAmount()!=null)paymentAmount = paymentAmount.add(chargingOrderListVO.getPaymentAmount());
 			if (chargingOrderListVO.getElectrovalence()!=null)electrovalence = electrovalence.add(chargingOrderListVO.getElectrovalence());
 			if (chargingOrderListVO.getServiceCharge()!=null)serviceCharge = serviceCharge.add(chargingOrderListVO.getServiceCharge());
-			List<TChargingOrderAccountingStrategy> list2 = chargingOrderAccountingStrategyService.lambdaQuery()
-					.eq(TChargingOrderAccountingStrategy::getChargingOrderId, chargingOrderListVO.getId()).list();
+			List<TChargingOrderAccountingStrategy> list2 = chargingOrderAccountingStrategies.stream().filter(e -> e.getChargingOrderId().equals(chargingOrderListVO.getId()))
+					.collect(Collectors.toList());
 			for (TChargingOrderAccountingStrategy temp : list2) {
 				switch (temp.getType()){
 					case 1:
@@ -3126,7 +3152,7 @@
 				.eq("recharge_payment_status",2);
 		switch (dto.getType()){
 			case 1:
-				eq.between("start_time", localDateTime, localDateTime1);
+				eq.between("pay_time", localDateTime, localDateTime1);
 				break;
 			case 2:
 				eq.between("end_time", localDateTime, localDateTime1);
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 cd121be..3f47083 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
@@ -38,7 +38,7 @@
             and t1.status = #{req.state}
         </if>
         <if test="startTime1 != null and startTime1!=''">
-            and (t1.bill_time between #{startTime1} and #{startTime2}
+            and (t1.bill_time between #{startTime1} and #{startTime2})
         </if>
         <if test="req.uid != null ">
             and t1.id = #{req.uid}
diff --git a/ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TChargingOrderMapper.xml b/ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TChargingOrderMapper.xml
index 6ed6f33..eea5c84 100644
--- a/ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TChargingOrderMapper.xml
+++ b/ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TChargingOrderMapper.xml
@@ -111,7 +111,7 @@
             and t1.charging_gun_id = #{req.gunId}
         </if>
         <if test="startTime1 != null and startTime1!=''">
-            and (t1.start_time between #{startTime1} and #{startTime2})
+            and (t1.pay_time between #{startTime1} and #{startTime2})
         </if>
         <if test="endTime1 != null and endTime1!=''">
             and (t1.end_time between #{endTime1} and #{endTime2})
@@ -870,7 +870,8 @@
 
     </select>
     <select id="chargingList" resultType="com.ruoyi.order.api.vo.ChargingOrderListVO">
-        select t1.* ,t1.current as chargingCapacity,t1.payment_amount as paymentAmount,t1.electricity as chargingCapacity from t_charging_order t1
+        select t1.*,
+               t1.current as chargingCapacity,t1.payment_amount as paymentAmount,t1.electricity as chargingCapacity from t_charging_order t1
         where 1=1
         <if test="null != req.code and req.code!=''">
             and t1.code  LIKE CONCAT('%',#{req.code},'%')
@@ -906,7 +907,7 @@
             and t1.site_id = #{req.siteId}
         </if>
         <if test="startTime1 != null and startTime1!=''">
-            and (t1.start_time between #{startTime1} and #{startTime2})
+            and (t1.pay_time between #{startTime1} and #{startTime2})
         </if>
         <if test="endTime1 != null and endTime1!=''">
             and (t1.end_time between #{endTime1} and #{endTime2})

--
Gitblit v1.7.1