From b87d5e26359383ef55446d3e66b5c45ac1730a43 Mon Sep 17 00:00:00 2001
From: puzhibing <393733352@qq.com>
Date: 星期一, 21 十月 2024 12:00:45 +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/TChargingOrderServiceImpl.java |   49 +++++++++---------------
 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                  |   20 +++++-----
 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TChargingOrderController.java    |   16 ++++---
 ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/vo/ChargingOrderVO.java                 |    2 +
 5 files changed, 43 insertions(+), 53 deletions(-)

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-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 6f08796..bb059f7 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,13 +309,14 @@
     @ResponseBody
     @PostMapping(value = "/chargingOrderInfo")
     @ApiOperation(value = "充电桩订单列表查看详情", tags = {"管理后台-订单管理"})
-    public AjaxResult<ChargingOrderInfoVO> chargingOrderInfo(String orderId) {
-        TChargingOrder byId = chargingOrderService.getById(orderId);
+    public AjaxResult<ChargingOrderInfoVO> chargingOrderInfo(String strategyId) {
+        TChargingOrder byId = chargingOrderService.getById(strategyId);
         ChargingOrderInfoVO chargingOrderInfoVO = new ChargingOrderInfoVO();
-        chargingOrderInfoVO.setCdElectronic(byId.getCurrent()+"");
-        chargingOrderInfoVO.setCdVoltage(byId.getVoltage()+"");
-        chargingOrderInfoVO.setSurplus(byId.getTotalElectricity()+"");
-        chargingOrderInfoVO.setTotalPower(byId.getPower()+"");
+
+        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()){
@@ -325,7 +326,7 @@
                 chargingOrderInfoVO.setVehicleUse(data.get(0).getVehicleUse());
             }
         }
-        List<TChargingOrderAccountingStrategy> list = chargingOrderAccountingStrategyService.lambdaQuery().eq(TChargingOrderAccountingStrategy::getChargingOrderId, orderId).orderByDesc(TChargingOrderAccountingStrategy::getStartTime).list();
+        List<TChargingOrderAccountingStrategy> list = chargingOrderAccountingStrategyService.lambdaQuery().eq(TChargingOrderAccountingStrategy::getChargingOrderId, strategyId).orderByDesc(TChargingOrderAccountingStrategy::getStartTime).list();
         chargingOrderInfoVO.setList(list);
         return AjaxResult.success(chargingOrderInfoVO);
     }
@@ -800,6 +801,7 @@
         }
         List<TChargingOrder> list = chargingOrderService.lambdaQuery().ge(TChargingOrder::getStartTime, start).le(TChargingOrder::getEndTime, end).in(TChargingOrder::getSiteId, siteIds).list();
         List<Long> chargingOrderIds = list.stream().map(TChargingOrder::getId).collect(Collectors.toList());
+        chargingOrderIds.add(-1l);
         //上方饼图
          List<Map<String,Object>> maps =   chargingOrderService.getSumByType(chargingOrderIds);
 
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 12118eb..cc24259 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
@@ -471,7 +471,7 @@
 			TAppUserVipDetail vipDetail = appUserVipDetailClient.getAppUserVipDetail(getAppUserVipDetail).getData();
 			if(null != vipDetail){
 				Integer chargeNum = vipDetail.getChargeNum();
-				if(0 > chargeNum){
+				if(0 < chargeNum){
 					chargingOrder.setVipDiscount(discount);
 				}
 			}
@@ -583,7 +583,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();
@@ -605,16 +605,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;
 						}
 					}
@@ -1259,6 +1259,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){
@@ -1272,38 +1273,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.getCumulative_charging_time()*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);
@@ -1805,7 +1792,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());
@@ -1861,7 +1848,7 @@
 		BigDecimal discountAmount = BigDecimal.ZERO;
 		if(null != chargingOrder.getVipDiscount()){
 			//服务费折扣
-			discountAmount = periodServicePrice_total.multiply((new BigDecimal(10).subtract(chargingOrder.getVipDiscount())).divide(new BigDecimal(10)));
+			discountAmount = periodServicePrice_total.multiply((new BigDecimal(1).subtract(chargingOrder.getVipDiscount())));
 			
 			TAppUser appUser = appUserClient.getUserById(chargingOrder.getAppUserId()).getData();
 			if(null != appUser.getVipId()){
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/resources/mapper/order/TChargingOrderMapper.xml b/ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TChargingOrderMapper.xml
index 264c505..9e10c12 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
@@ -400,12 +400,12 @@
             t_charging_order
         <where>
             del_flag = 0 and recharge_payment_status = 2  and DATE(create_time) = CURDATE()
-            <if test="chargingOrderIds != null and chargingOrderIds.size() > 0">
+
                 AND id IN
                 <foreach collection="chargingOrderIds" item="chargingOrderId" open="(" separator="," close=")">
                     #{chargingOrderId}
                 </foreach>
-            </if>
+
         </where>
         GROUP BY
             time
@@ -424,12 +424,12 @@
         t_charging_order
         <where>
             del_flag = 0 and recharge_payment_status = 2  and YEARWEEK(DATE_FORMAT(create_time, '%Y-%m-%d'), 1) = YEARWEEK(NOW(), 1)
-            <if test="chargingOrderIds != null and chargingOrderIds.size() > 0">
+
                 AND id IN
                 <foreach collection="chargingOrderIds" item="chargingOrderId" open="(" separator="," close=")">
                     #{chargingOrderId}
                 </foreach>
-            </if>
+
         </where>
         GROUP BY
         time
@@ -448,12 +448,12 @@
         t_charging_order
         <where>
             del_flag = 0 and recharge_payment_status = 2  and MONTH(create_time) = MONTH(NOW())  AND YEAR(create_time) = YEAR(NOW())
-            <if test="chargingOrderIds != null and chargingOrderIds.size() > 0">
+
                 AND id IN
                 <foreach collection="chargingOrderIds" item="chargingOrderId" open="(" separator="," close=")">
                     #{chargingOrderId}
                 </foreach>
-            </if>
+
         </where>
         GROUP BY
         time
@@ -473,12 +473,12 @@
         t_charging_order
         <where>
             del_flag = 0 and recharge_payment_status = 2  and YEAR(create_time) = YEAR(NOW())
-            <if test="chargingOrderIds != null and chargingOrderIds.size() > 0">
+
                 AND id IN
                 <foreach collection="chargingOrderIds" item="chargingOrderId" open="(" separator="," close=")">
                     #{chargingOrderId}
                 </foreach>
-            </if>
+
         </where>
         GROUP BY
         time
@@ -497,12 +497,12 @@
         t_charging_order
         <where>
             del_flag = 0 and recharge_payment_status = 2
-            <if test="chargingOrderIds != null and chargingOrderIds.size() > 0">
+
                 AND id IN
                 <foreach collection="chargingOrderIds" item="chargingOrderId" open="(" separator="," close=")">
                     #{chargingOrderId}
                 </foreach>
-            </if>
+
         </where>
         GROUP BY
         time

--
Gitblit v1.7.1