From b4b44f2021dbf083b7057fb7e192b72d08b4bf17 Mon Sep 17 00:00:00 2001
From: Pu Zhibing <393733352@qq.com>
Date: 星期二, 22 十月 2024 09:23:29 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java          |   86 ++++++++-----
 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/mapper/TChargingOrderMapper.java                     |    1 
 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TOrderAppealServiceImpl.java            |   14 +-
 ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TOrderInvoiceMapper.xml                            |    2 
 ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/feignClient/AppUserCarClient.java            |    4 
 ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppUserCarController.java            |    8 +
 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/util/task/TaskUtil.java                              |    7 +
 ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TChargingGunController.java |    4 
 ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysMenuServiceImpl.java               |    2 
 ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/model/TChargingOrderAccountingStrategy.java      |    6 
 ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysMenuMapper.xml                                |    4 
 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/TChargingOrderService.java                   |    1 
 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TOrderInvoiceServiceImpl.java           |    9 
 ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TChargingOrderMapper.xml                           |   78 +++++++++---
 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TChargingOrderController.java             |   76 ++++++++++--
 ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/vo/ChargingOrderVO.java                          |    2 
 16 files changed, 215 insertions(+), 89 deletions(-)

diff --git a/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/feignClient/AppUserCarClient.java b/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/feignClient/AppUserCarClient.java
index a0a477c..bce08c1 100644
--- a/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/feignClient/AppUserCarClient.java
+++ b/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/feignClient/AppUserCarClient.java
@@ -35,6 +35,8 @@
      * @param licensePlate
      * @return
      */
-    @PostMapping(value = "/t-app-user-car/getAppUserCarByLicensePlate")
+    @PostMapping(value = "/t-app-user-car/t-app-user-car/getAppUserCarByLicensePlate")
     R<TAppUserCar> getAppUserCarByLicensePlate(@RequestParam("licensePlate") String licensePlate);
+    @PostMapping(value = "/t-app-user-car/t-app-user-car/getAppUserCarByLicensePlates")
+    R<List<Long>> getAppUserCarByLicensePlates(@RequestParam("licensePlate") String licensePlate);
 }
diff --git a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/model/TChargingOrderAccountingStrategy.java b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/model/TChargingOrderAccountingStrategy.java
index b616194..2318e75 100644
--- a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/model/TChargingOrderAccountingStrategy.java
+++ b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/model/TChargingOrderAccountingStrategy.java
@@ -73,7 +73,7 @@
     @TableField("period_electric_price")
     private BigDecimal periodElectricPrice;
 
-    @ApiModelProperty(value = "时段服务费")
+    @ApiModelProperty(value = "时段服务费(最终服务费 含折扣)")
     @TableField("period_service_price")
     private BigDecimal periodServicePrice;
     
@@ -93,9 +93,7 @@
     @TableField(exist = false)
     private BigDecimal couponDiscount;
 
-    @ApiModelProperty(value = "最终服务费")
-    @TableField(exist = false)
-    private BigDecimal finalService;
+
 
 
 }
diff --git a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/vo/ChargingOrderVO.java b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/vo/ChargingOrderVO.java
index 61ba66b..f4f6ee2 100644
--- a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/vo/ChargingOrderVO.java
+++ b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/vo/ChargingOrderVO.java
@@ -29,6 +29,8 @@
     private String licensePlate;
     @ApiModelProperty(value = "手机号")
     private String phone;
+    @ApiModelProperty(value = "uid")
+    private String uid;
 
 
     @ApiModelProperty(value = "时段数")
diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysMenuServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysMenuServiceImpl.java
index fddb374..d407038 100644
--- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysMenuServiceImpl.java
+++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysMenuServiceImpl.java
@@ -103,7 +103,7 @@
         {
             if (StringUtils.isNotEmpty(perm))
             {
-                permsSet.addAll(Arrays.asList(perm.trim().split(",")));
+                permsSet.add(perm);
             }
         }
         return permsSet;
diff --git a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysMenuMapper.xml b/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysMenuMapper.xml
index 583bf3a..75db7c8 100644
--- a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysMenuMapper.xml
+++ b/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysMenuMapper.xml
@@ -96,14 +96,14 @@
 	</select>
 	
 	<select id="selectMenuPerms" resultType="String">
-		select distinct m.perms
+		select distinct m.path
 		from sys_menu m
 			 left join sys_role_menu rm on m.menu_id = rm.menu_id
 			 left join sys_user_role ur on rm.role_id = ur.role_id
 	</select>
 
 	<select id="selectMenuPermsByUserId" parameterType="Long" resultType="String">
-		select distinct m.perms
+		select distinct m.path
 		from sys_menu m
 			 left join sys_role_menu rm on m.menu_id = rm.menu_id
 			 left join sys_user_role ur on rm.role_id = ur.role_id
diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppUserCarController.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppUserCarController.java
index dda013b..97b6d63 100644
--- a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppUserCarController.java
+++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppUserCarController.java
@@ -10,6 +10,7 @@
 import org.springframework.web.bind.annotation.*;
 
 import java.util.List;
+import java.util.stream.Collectors;
 
 /**
  * <p>
@@ -47,6 +48,13 @@
         TAppUserCar one = appUserCarService.getOne(new LambdaQueryWrapper<TAppUserCar>().eq(TAppUserCar::getLicensePlate, licensePlate).eq(TAppUserCar::getDelFlag, 0));
         return R.ok(one);
     }
+    @PostMapping(value = "/t-app-user-car/getAppUserCarByLicensePlates")
+    public R<List<Long>> getAppUserCarByLicensePlates(@RequestParam("licensePlate") String licensePlate){
+        List<Long> collect = appUserCarService.list(new LambdaQueryWrapper<TAppUserCar>().like(TAppUserCar::getLicensePlate, licensePlate)
+                        .eq(TAppUserCar::getDelFlag, 0)).stream()
+                .map(TAppUserCar::getId).collect(Collectors.toList());
+        return R.ok(collect);
+    }
 
 }
 
diff --git a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TChargingGunController.java b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TChargingGunController.java
index 1d083c1..1c1442d 100644
--- a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TChargingGunController.java
+++ b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TChargingGunController.java
@@ -252,10 +252,10 @@
         TChargingGun chargingGun = chargingGunService.getById(id);
         siteNameVO.setGunName(chargingGun.getName());
         siteNameVO.setGunNumber(chargingGun.getCode());
-        TChargingPile chargingPile = chargingPileService.getById(id);
+        TChargingPile chargingPile = chargingPileService.getById(chargingGun.getChargingPileId());
         siteNameVO.setPileName(chargingPile.getName());
         siteNameVO.setPileNumber(chargingPile.getNumber());
-        Site site = siteService.getById(id);
+        Site site = siteService.getById(chargingGun.getSiteId());
         siteNameVO.setSiteName(site.getName());
         return R.ok(siteNameVO);
     }
diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TChargingOrderController.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TChargingOrderController.java
index 6f1dfab..6b5b491 100644
--- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TChargingOrderController.java
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TChargingOrderController.java
@@ -309,18 +309,38 @@
     @ResponseBody
     @PostMapping(value = "/chargingOrderInfo")
     @ApiOperation(value = "充电桩订单列表查看详情", tags = {"管理后台-订单管理"})
-    public AjaxResult<ChargingOrderInfoVO> chargingOrderInfo(String orderId) {
+    public AjaxResult<ChargingOrderInfoVO> chargingOrderInfo(String strategyId) {
+        TChargingOrder byId = chargingOrderService.getById(strategyId);
         ChargingOrderInfoVO chargingOrderInfoVO = new ChargingOrderInfoVO();
-        chargingOrderInfoVO.setCdElectronic("");
-        chargingOrderInfoVO.setCdVoltage("");
-        chargingOrderInfoVO.setSurplus("");
-        chargingOrderInfoVO.setTotalPower("");
-        chargingOrderInfoVO.setLicensePlate("");
-        chargingOrderInfoVO.setVehicleBrand("");
-        chargingOrderInfoVO.setVehicleModel("");
-        chargingOrderInfoVO.setVehicleUse("");
-        List<TChargingOrderAccountingStrategy> tChargingOrderAccountingStrategies = new ArrayList<>();
-        chargingOrderInfoVO.setList(tChargingOrderAccountingStrategies);
+
+        chargingOrderInfoVO.setCdElectronic(byId.getCurrent()!=null?byId.getCurrent()+"":"");
+        chargingOrderInfoVO.setCdVoltage(byId.getVoltage()!=null?byId.getVoltage()+"":"");
+        chargingOrderInfoVO.setSurplus(byId.getTotalElectricity()!=null?byId.getTotalElectricity()+"":"");
+        chargingOrderInfoVO.setTotalPower(byId.getPower()!=null?byId.getPower()+"":"");
+        if (byId.getAppUserCarId()!=null){
+            List<TAppUserCar> data = appUserCarClient.getCarByIds(Collections.singletonList(byId.getAppUserCarId())).getData();
+            if (!data.isEmpty()){
+                chargingOrderInfoVO.setLicensePlate(data.get(0).getLicensePlate());
+                chargingOrderInfoVO.setVehicleBrand(data.get(0).getVehicleBrand());
+                chargingOrderInfoVO.setVehicleModel(data.get(0).getVehicleModel());
+                chargingOrderInfoVO.setVehicleUse(data.get(0).getVehicleUse());
+            }
+        }
+        // 时段总服务费
+        BigDecimal bigDecimal = new BigDecimal("0");
+        List<TChargingOrderAccountingStrategy> list = chargingOrderAccountingStrategyService.lambdaQuery().eq(TChargingOrderAccountingStrategy::getChargingOrderId, strategyId).orderByDesc(TChargingOrderAccountingStrategy::getStartTime).list();
+        for (TChargingOrderAccountingStrategy tChargingOrderAccountingStrategy : list) {
+            bigDecimal = bigDecimal.add(tChargingOrderAccountingStrategy.getPeriodOriginalServicePrice());
+            tChargingOrderAccountingStrategy.setVipDiscount(
+                    tChargingOrderAccountingStrategy.getPeriodOriginalServicePrice()
+                            .subtract(tChargingOrderAccountingStrategy.getPeriodServicePrice())
+            );
+            tChargingOrderAccountingStrategy.setCouponDiscount(
+                    tChargingOrderAccountingStrategy.getPeriodOriginalServicePrice()
+                            .subtract(tChargingOrderAccountingStrategy.getPeriodServicePrice())
+            );
+        }
+        chargingOrderInfoVO.setList(list);
         return AjaxResult.success(chargingOrderInfoVO);
     }
 
@@ -927,7 +947,39 @@
                 startDate = startDate.plusDays(1);
             }
 
-            tCharingUserMapVO.setMap(map);
+            tCharingUserMapVO.setMap(dateRangeStatistics);
+
+
+            List<Map<String,Object>> map1 =  chargingOrderService.usersByQuery(statisticsQueryDto);
+
+
+
+
+            List<Map<String, Object>> dateRangeStatistics1 = new ArrayList<>();
+
+            // 遍历日期范围
+            while (!startDate.isAfter(endDate)) {
+                String formattedDate = startDate.format(DateTimeFormatter.ofPattern("yyyy-MM-dd"));
+                Map<String, Object> dailyStats = findMapWithDateValue(map1, formattedDate);
+
+                if (dailyStats != null) {
+                    dateRangeStatistics1.add(dailyStats);
+                } else {
+                    Map<String, Object> dateMap = new HashMap<>();
+                    dateMap.put("time", formattedDate);
+                    dateMap.put("counts", 0);
+                    dateRangeStatistics1.add(dateMap);
+                }
+
+                // 移动到下一天
+                startDate = startDate.plusDays(1);
+            }
+
+            tCharingUserMapVO.setMap1(dateRangeStatistics1);
+
+
+
+
         }
 
         //用户标签
diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/mapper/TChargingOrderMapper.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/mapper/TChargingOrderMapper.java
index e6a617c..5c10122 100644
--- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/mapper/TChargingOrderMapper.java
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/mapper/TChargingOrderMapper.java
@@ -92,6 +92,7 @@
     List<Map<String, Object>> usersDay1();
 
 	List<Map<String, Object>> usersByQuery(@Param("statisticsQueryDto") ChargingStatisticsQueryDto statisticsQueryDto);
+	List<Map<String, Object>> usersByQuery1(@Param("statisticsQueryDto") ChargingStatisticsQueryDto statisticsQueryDto);
 
     List<Map<String, Object>> getUserTagCount();
 
diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/TChargingOrderService.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/TChargingOrderService.java
index 0593bb3..bd3928f 100644
--- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/TChargingOrderService.java
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/TChargingOrderService.java
@@ -197,6 +197,7 @@
 	List<Map<String, Object>> usersDay1();
 
 	List<Map<String, Object>> usersByQuery(ChargingStatisticsQueryDto statisticsQueryDto);
+	List<Map<String, Object>> usersByQuery1(ChargingStatisticsQueryDto statisticsQueryDto);
 
 
 	List<Map<String, Object>> getUserTagCount();
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 a8351ab..e2e124d 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
@@ -470,7 +470,7 @@
 			TAppUserVipDetail vipDetail = appUserVipDetailClient.getAppUserVipDetail(getAppUserVipDetail).getData();
 			if(null != vipDetail){
 				Integer chargeNum = vipDetail.getChargeNum();
-				if(0 > chargeNum){
+				if(0 < chargeNum){
 					chargingOrder.setVipDiscount(discount);
 				}
 			}
@@ -582,7 +582,7 @@
 					Integer start = Integer.valueOf(accountingStrategyDetailOrder.getStartTime().replaceAll(":", ""));
 					Integer end = Integer.valueOf(accountingStrategyDetailOrder.getEndTime().replaceAll(":", ""));
 					String[] split = accountingStrategyDetailOrder.getEndTime().split(":");
-					if(sta || now >= start){
+					if(sta || (now >= start && now < end)){
 						sta = true;
 						
 						Calendar end_calendar = Calendar.getInstance();
@@ -604,16 +604,16 @@
 						//每秒需要支付的服务费金额
 						BigDecimal s_server_amount = s_degrees.multiply(accountingStrategyDetailOrder.getServiceCharge());
 						//计算剩余金额能充多长时间的电
-						long times = rechargeAmount1.divide(s_server_amount, 0, RoundingMode.DOWN).longValue();
+						long times = rechargeAmount1.divide(s_total_amount, 0, RoundingMode.DOWN).longValue();
 						if(times > m){
 							//充电时间跨度两个计费策略,需要继续对下一个策略进行计算
 							serviceCharge = s_server_amount.multiply(new BigDecimal(m));
-							discountAmount = discountAmount.add(serviceCharge.multiply((new BigDecimal(10).subtract(discount)).divide(new BigDecimal(10))));
+							discountAmount = discountAmount.add(serviceCharge.multiply((new BigDecimal(1).subtract(discount))));
 							rechargeAmount1 = rechargeAmount1.subtract(s_total_amount.multiply(new BigDecimal(m)));
 							nowTimeMillis = null;
 						}else{
 							serviceCharge = s_server_amount.multiply(new BigDecimal(times));
-							discountAmount = discountAmount.add(serviceCharge.multiply((new BigDecimal(10).subtract(discount)).divide(new BigDecimal(10))));
+							discountAmount = discountAmount.add(serviceCharge.multiply((new BigDecimal(1).subtract(discount))));
 							break;
 						}
 					}
@@ -1258,6 +1258,7 @@
 		 BigDecimal electronicMoney = new BigDecimal("0");
 		 BigDecimal serviceMoney = new BigDecimal("0");
 		for (ChargingOrderVO chargingOrderVO : list) {
+			chargingOrderVO.setUid(chargingOrderVO.getId()+"");
 			TChargingGun data3 = chargingGunClient.getChargingGunById(chargingOrderVO.getChargingGunId()).getData();
 			TChargingPile data2 = chargingPileClient.getChargingPileById(chargingOrderVO.getChargingPileId()).getData();
 			if (chargingOrderVO.getSiteId()!=null){
@@ -1271,38 +1272,24 @@
 
 			}
 			if (chargingOrderVO.getChargingCapacity()!=null){
-				total = total.add(chargingOrderVO.getChargingCapacity());
+				total = total.add(chargingOrderVO.getElectricity());
 			}
 			// 充电订单 明细记录
 			List<TChargingOrderAccountingStrategy> chargingOrderId = chargingOrderAccountingStrategyService.list(new QueryWrapper<TChargingOrderAccountingStrategy>()
 					.eq("charging_order_id", chargingOrderVO.getId()));
-			// 单个订单累计电费
-			BigDecimal electronicMoney1 = new BigDecimal("0");
-			// 单个订单累计服务费
-			BigDecimal serviceMoney1 = new BigDecimal("0");
 			UploadRealTimeMonitoringData data5 = uploadRealTimeMonitoringDataClient.chargingOrderInfo(chargingOrderVO.getCode()).getData();
 			if (data5!=null){
-				chargingOrderVO.setChargingSecond(data5.getTime_remaining()*60L);
+				long l = data5.getCumulative_charging_time() * 60L;
+				chargingOrderVO.setChargingSecond(l);
+				time+=l;
 			}
-			// 总收入
-			if (chargingOrderVO.getRefundStatus() !=null && chargingOrderVO.getRefundStatus() == 2){
-				income = income.add(chargingOrderVO.getPaymentAmount().subtract(chargingOrderVO.getRefundAmount()));
-			}else{
-				if (chargingOrderVO.getPaymentAmount()!=null){
-					income = income.add(chargingOrderVO.getPaymentAmount());
-				}
+			electronicMoney = electronicMoney.add(chargingOrderVO.getElectrovalence());
+			serviceMoney = serviceMoney.add(chargingOrderVO.getServiceCharge());
+
+			income = income.add(chargingOrderVO.getServiceCharge().add(chargingOrderVO.getElectrovalence()));
+			if (chargingOrderVO.getRefundAmount()!=null){
+				income = income.subtract(chargingOrderVO.getRefundAmount());
 			}
-			for (TChargingOrderAccountingStrategy tChargingOrderAccountingStrategy : chargingOrderId) {
-				// 累计电费
-				electronicMoney1 = electronicMoney1.add(tChargingOrderAccountingStrategy.getElectrovalence()
-						.multiply(tChargingOrderAccountingStrategy.getChargingCapacity()));
-				electronicMoney = electronicMoney.add(electronicMoney1);
-				// 累计服务费
-				serviceMoney1 = serviceMoney1.add(tChargingOrderAccountingStrategy.getServiceCharge());
-				serviceMoney = serviceMoney.add(serviceMoney1);
-			}
-			chargingOrderVO.setServiceCharge(serviceMoney1);
-			chargingOrderVO.setElectrovalence(electronicMoney1);
 			// 充电时段数
 			int size = chargingOrderId.size();
 			chargingOrderVO.setCount(size);
@@ -1409,7 +1396,36 @@
 			startTime2 = split[1];
 		}
 		ChargingOrderTimeVO chargingOrderTimeVO = new ChargingOrderTimeVO();
-
+		if (StringUtils.hasLength(dto.getPhone())){
+			List<Long> data = appUserClient.getUserIdsByPhone(dto.getPhone()).getData();
+			if(data!=null){
+				if (!data.isEmpty()){
+					dto.setUserIds(data);
+				}
+			}else{
+				dto.setUserIds(new ArrayList<Long>());
+			}
+			if (dto.getUserIds().isEmpty()){
+				List<Long> carIds = dto.getUserIds();
+				carIds.add(-1L);
+				dto.setUserIds(carIds);
+			}
+		}
+		if (StringUtils.hasLength(dto.getPhone())){
+			List<Long> data = appUserCarClient.getAppUserCarByLicensePlates(dto.getLicensePlate()).getData();
+			if(data!=null){
+				if (!data.isEmpty()){
+					dto.setCarIds(data);
+				}
+			}else{
+				dto.setCarIds(new ArrayList<Long>());
+			}
+			if (dto.getCarIds().isEmpty()){
+				List<Long> carIds = dto.getCarIds();
+				carIds.add(-1L);
+				dto.setCarIds(carIds);
+			}
+		}
 		PageInfo<ChargingOrderListVO> pageInfo = new PageInfo<>(dto.getPageCurr(),dto.getPageSize());
 		List<ChargingOrderListVO> list = this.baseMapper.chargingList(pageInfo,dto,startTime1,startTime2,endTime1,endTime2);
 		for (ChargingOrderListVO chargingOrderListVO : list) {
@@ -1439,7 +1455,7 @@
 			// 获取开始SOC 结束soc
 			if (chargingOrderListVO.getCode()!=null){
 				List<UploadRealTimeMonitoringData> data6 = uploadRealTimeMonitoringDataClient.getDataByOrderCode(chargingOrderListVO.getCode()).getData();
-				if (!data6.isEmpty()){
+			if (data6!=null && !data6.isEmpty()){
 					// 第一条数据soc为开始 最后一条数据soc为结束soc
 					chargingOrderListVO.setStartSoc(data6.get(0).getSoc().toString());
 					chargingOrderListVO.setEndSoc(data6.get(data6.size()-1).getSoc().toString());
@@ -1804,7 +1820,7 @@
 						invoke = clazz.getMethod("getValley_charge" + (i + 1)).invoke(vo);
 						break;
 				}
-				if(null == invoke || Integer.valueOf(invoke.toString()) == 0){
+				if(null == invoke || Double.valueOf(invoke.toString()) == 0){
 					continue;
 				}
 				BigDecimal sharp_peak_charge = new BigDecimal(invoke.toString());
@@ -1860,7 +1876,7 @@
 		BigDecimal discountAmount = BigDecimal.ZERO;
 		if(null != chargingOrder.getVipDiscount()){
 			//服务费折扣
-			discountAmount = periodServicePrice_total.multiply(new BigDecimal(1).subtract(chargingOrder.getVipDiscount()));
+			discountAmount = periodServicePrice_total.multiply((new BigDecimal(1).subtract(chargingOrder.getVipDiscount())));
 			
 			TAppUser appUser = appUserClient.getUserById(chargingOrder.getAppUserId()).getData();
 			if(null != appUser.getVipId()){
@@ -2068,6 +2084,10 @@
 	public List<Map<String, Object>> usersByQuery(ChargingStatisticsQueryDto statisticsQueryDto) {
 		return this.baseMapper.usersByQuery(statisticsQueryDto);
 	}
+	@Override
+	public List<Map<String, Object>> usersByQuery1(ChargingStatisticsQueryDto statisticsQueryDto) {
+		return this.baseMapper.usersByQuery(statisticsQueryDto);
+	}
 
 	@Override
 	public List<Map<String, Object>> getUserTagCount() {
diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TOrderAppealServiceImpl.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TOrderAppealServiceImpl.java
index 5273411..544e9ff 100644
--- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TOrderAppealServiceImpl.java
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TOrderAppealServiceImpl.java
@@ -63,12 +63,14 @@
                 if(Objects.nonNull(tChargingOrder)){
                     item.setChargingOrder(tChargingOrder);
                     SiteNameVO siteNameVO = chargingGunClient.getAllInfoById(tChargingOrder.getChargingGunId()).getData();
-                    item.setGunName(siteNameVO.getGunName());
-                    item.setGunNumber(siteNameVO.getGunNumber());
-                    item.setPileName(siteNameVO.getPileName());
-                    item.setPileNumber(siteNameVO.getPileNumber());
-                    item.setSiteName(siteNameVO.getSiteName());
-                    item.setEndMode(tChargingOrder.getEndMode());
+                    if(Objects.nonNull(siteNameVO)){
+                        item.setGunName(siteNameVO.getGunName());
+                        item.setGunNumber(siteNameVO.getGunNumber());
+                        item.setPileName(siteNameVO.getPileName());
+                        item.setPileNumber(siteNameVO.getPileNumber());
+                        item.setSiteName(siteNameVO.getSiteName());
+                        item.setEndMode(tChargingOrder.getEndMode());
+                    }
                 }
             }else if (item.getOrderType() == 2) {
                 TShoppingOrder tShoppingOrder = shoppingOrders.stream().filter(shoppingOrder -> shoppingOrder.getId().equals(item.getOrderId())).findFirst().orElse(null);
diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TOrderInvoiceServiceImpl.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TOrderInvoiceServiceImpl.java
index c6bd1ea..a3e47c7 100644
--- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TOrderInvoiceServiceImpl.java
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TOrderInvoiceServiceImpl.java
@@ -272,6 +272,10 @@
 					.map(TOrderInvoiceDetail::getOrderId).collect(Collectors.toList());
 			// 将其全部转化为String
 			tOrderInvoiceVO.setIds(collect.stream().map(String::valueOf).collect(Collectors.toList()));
+			TAppUser appUser = appUserClient.getUserById(tOrderInvoiceVO.getAppUserId()).getData();
+			if (appUser!=null){
+				tOrderInvoiceVO.setUserPhone(appUser.getPhone());
+			}
 		}
 		// 查询这个开票的订单ids
 
@@ -293,11 +297,6 @@
 				e.setAddedService(orderInvoiceDetailList.stream().filter(t->t.getAddedService()!=null).map(TOrderInvoiceDetail::getAddedService).reduce(BigDecimal::add).get());
 				e.setElectrovalence(orderInvoiceDetailList.stream().filter(t->t.getElectrovalence()!=null).map(TOrderInvoiceDetail::getElectrovalence).reduce(BigDecimal::add).get());
 				e.setServiceCharge(orderInvoiceDetailList.stream().filter(t->t.getServiceCharge()!=null).map(TOrderInvoiceDetail::getServiceCharge).reduce(BigDecimal::add).get());
-				if (e.getBillingUserId()!=null){
-					e.setUserPhone(finalTAppUsers.stream().filter(t->t.getId()!=null).filter(m->m.getId().equals(Long.parseLong(e.getBillingUserId().toString()))).findFirst().get().getPhone());
-				}
-				TAppUser appUser = appUserClient.getUserById(e.getAppUserId()).getData();
-				e.setUserPhone(appUser.getPhone());
 			});
 		}
 
diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/util/task/TaskUtil.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/util/task/TaskUtil.java
index 969732b..b6a4265 100644
--- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/util/task/TaskUtil.java
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/util/task/TaskUtil.java
@@ -44,7 +44,12 @@
         System.err.println(string);
     }
     // 每月2号凌晨12点执行的定时任务
-    @Scheduled(cron = "0 0 0 2 * ?")
+//    @Scheduled(cron = "0 0 0 2 * ?")
+    // 每天凌晨12点执行的定时任务
+
+    @Scheduled(cron = "0 0 12 2 * ?")
+    // 每30秒执行一次的定时任务
+    @Scheduled(cron = "0/30 * * * * ?")
     public void taskMonth() {
         try {
             // 获取上个月的开始和结束日期
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 dc70af6..bbf1b1c 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
@@ -326,7 +326,7 @@
             FROM
             t_charging_order
             <where>
-                del_flag = 0 and recharge_payment_status = 2 and  ISNULL(refund_status)
+                del_flag = 0 and recharge_payment_status = 2
                 <if test="sixBefore != null">
                     AND create_time &gt;= #{sixBefore}
                 </if>
@@ -349,7 +349,7 @@
         FROM
             t_charging_order
         <where>
-            del_flag = 0 and recharge_payment_status = 2 and  ISNULL(refund_status)
+            del_flag = 0 and recharge_payment_status = 2
             <if test="siteIds != null and siteIds.size() > 0">
                 AND site_id IN
                 <foreach collection="siteIds" item="siteId" open="(" separator="," close=")">
@@ -368,7 +368,7 @@
     <select id="countAll" resultType="java.util.Map">
         select sum(electrovalence) as electrovalence,sum(service_charge) as service_charge,sum(commission_amount) as commission_amount,sum(sharing_amount) as sharing_amount
         from t_charging_order
-        where create_time &gt;= #{sixBefore} and del_flag = 0 and recharge_payment_status = 2 and  ISNULL(refund_status)
+        where create_time &gt;= #{sixBefore} and del_flag = 0 and recharge_payment_status = 2
     </select>
     <select id="getSumByType" resultType="java.util.Map">
         SELECT
@@ -399,13 +399,13 @@
         FROM
             t_charging_order
         <where>
-            del_flag = 0 and recharge_payment_status = 2 and  ISNULL(refund_status) and DATE(create_time) = CURDATE()
-            <if test="chargingOrderIds != null and chargingOrderIds.size() > 0">
+            del_flag = 0 and recharge_payment_status = 2  and DATE(create_time) = CURDATE()
+
                 AND id IN
                 <foreach collection="chargingOrderIds" item="chargingOrderId" open="(" separator="," close=")">
                     #{chargingOrderId}
                 </foreach>
-            </if>
+
         </where>
         GROUP BY
             time
@@ -423,13 +423,13 @@
         FROM
         t_charging_order
         <where>
-            del_flag = 0 and recharge_payment_status = 2 and  ISNULL(refund_status) and YEARWEEK(DATE_FORMAT(create_time, '%Y-%m-%d'), 1) = YEARWEEK(NOW(), 1)
-            <if test="chargingOrderIds != null and chargingOrderIds.size() > 0">
+            del_flag = 0 and recharge_payment_status = 2  and YEARWEEK(DATE_FORMAT(create_time, '%Y-%m-%d'), 1) = YEARWEEK(NOW(), 1)
+
                 AND id IN
                 <foreach collection="chargingOrderIds" item="chargingOrderId" open="(" separator="," close=")">
                     #{chargingOrderId}
                 </foreach>
-            </if>
+
         </where>
         GROUP BY
         time
@@ -447,13 +447,13 @@
         FROM
         t_charging_order
         <where>
-            del_flag = 0 and recharge_payment_status = 2 and  ISNULL(refund_status) and MONTH(create_time) = MONTH(NOW())  AND YEAR(create_time) = YEAR(NOW())
-            <if test="chargingOrderIds != null and chargingOrderIds.size() > 0">
+            del_flag = 0 and recharge_payment_status = 2  and MONTH(create_time) = MONTH(NOW())  AND YEAR(create_time) = YEAR(NOW())
+
                 AND id IN
                 <foreach collection="chargingOrderIds" item="chargingOrderId" open="(" separator="," close=")">
                     #{chargingOrderId}
                 </foreach>
-            </if>
+
         </where>
         GROUP BY
         time
@@ -472,13 +472,13 @@
         FROM
         t_charging_order
         <where>
-            del_flag = 0 and recharge_payment_status = 2 and  ISNULL(refund_status) and YEAR(create_time) = YEAR(NOW())
-            <if test="chargingOrderIds != null and chargingOrderIds.size() > 0">
+            del_flag = 0 and recharge_payment_status = 2  and YEAR(create_time) = YEAR(NOW())
+
                 AND id IN
                 <foreach collection="chargingOrderIds" item="chargingOrderId" open="(" separator="," close=")">
                     #{chargingOrderId}
                 </foreach>
-            </if>
+
         </where>
         GROUP BY
         time
@@ -496,13 +496,13 @@
         FROM
         t_charging_order
         <where>
-            del_flag = 0 and recharge_payment_status = 2 and  ISNULL(refund_status)
-            <if test="chargingOrderIds != null and chargingOrderIds.size() > 0">
+            del_flag = 0 and recharge_payment_status = 2
+
                 AND id IN
                 <foreach collection="chargingOrderIds" item="chargingOrderId" open="(" separator="," close=")">
                     #{chargingOrderId}
                 </foreach>
-            </if>
+
         </where>
         GROUP BY
         time
@@ -520,7 +520,6 @@
         WHERE
             del_flag = 0
           AND recharge_payment_status = 2
-          AND ISNULL(refund_status)
           AND DATE(create_time) = CURDATE()
         <if test="siteIds != null and siteIds.size() > 0">
             AND site_id IN
@@ -542,7 +541,6 @@
         WHERE
             del_flag = 0
           AND recharge_payment_status = 2
-          AND ISNULL(refund_status)
           AND DATE(create_time) = CURDATE() - INTERVAL 1 DAY
         <if test="siteIds != null and siteIds.size() > 0">
             AND site_id IN
@@ -570,7 +568,6 @@
         WHERE
             del_flag = 0
           AND recharge_payment_status = 2
-          AND ISNULL(refund_status)
         <if test="siteIds != null and siteIds.size() > 0">
             AND site_id IN
             <foreach collection="siteIds" item="siteId" open="(" separator="," close=")">
@@ -631,6 +628,45 @@
         GROUP BY
             time
     </select>
+
+    <select id="usersByQuery1" resultType="java.util.Map">
+
+        SELECT
+        'today' AS data_type,
+        '1' as type,
+        DATE_FORMAT( create_time, '%Y-%m-%d' ) AS time,
+        count(DISTINCT  app_user_id) AS counts
+        FROM
+        t_charging_order
+        WHERE
+        del_flag = 0
+        <if test="statisticsQueryDto.dayType ==1 ">
+            AND DATE(create_time) = CURDATE()
+        </if>
+        <if test="statisticsQueryDto.dayType ==2 ">
+            AND WEEKOFYEAR(create_time) = WEEKOFYEAR(CURDATE())
+        </if>
+        <if test="statisticsQueryDto.dayType ==3 ">
+            AND MONTH(create_time) = MONTH(CURDATE())
+        </if>
+        <if test="statisticsQueryDto.dayType ==4">
+            AND YEAR(create_time) = YEAR(CURDATE())
+        </if>
+        <if test="statisticsQueryDto.dayType ==5">
+            <if test="statisticsQueryDto.startTime != null">
+                AND create_time >= #{statisticsQueryDto.startTime}
+            </if>
+            <if test="statisticsQueryDto.endTime != null">
+                AND create_time &lt;= #{statisticsQueryDto.endTime}
+            </if>
+        </if>
+        GROUP BY
+        time
+
+
+    </select>
+
+
     <select id="usersByQuery" resultType="java.util.Map">
 
         SELECT
diff --git a/ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TOrderInvoiceMapper.xml b/ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TOrderInvoiceMapper.xml
index d9f7cf8..f9050e6 100644
--- a/ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TOrderInvoiceMapper.xml
+++ b/ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TOrderInvoiceMapper.xml
@@ -62,7 +62,7 @@
                 AND toi.name LIKE concat('%',#{query.name},'%')
             </if>
             <if test="query.startTime != null and query.startTime != '' and query.endTime != null and query.endTime != ''">
-                AND toi.billing_time BETWEEN #{query.startTime} AND #{query.endTime}
+                AND toi.create_time BETWEEN #{query.startTime} AND #{query.endTime}
             </if>
             <if test="query.userIds != null and query.userIds.size()>0">
                 AND toi.billing_user_id IN

--
Gitblit v1.7.1