From 3cc94cc2d189e6ff55d657854599ad77ef8f6bf8 Mon Sep 17 00:00:00 2001
From: 无关风月 <443237572@qq.com>
Date: 星期四, 05 九月 2024 15:47:29 +0800
Subject: [PATCH] 代码提交

---
 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java |  142 +++++++++++++++++++++++++++++++++++------------
 1 files changed, 105 insertions(+), 37 deletions(-)

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 0fd7b60..28c6ca0 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
@@ -2,7 +2,6 @@
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.ruoyi.account.api.feignClient.AppUserCarClient;
 import com.ruoyi.account.api.feignClient.AppUserClient;
@@ -23,7 +22,6 @@
 import com.ruoyi.common.core.dto.ChargingOrderGroup;
 import com.ruoyi.common.core.dto.ChargingPercentProvinceDto;
 import com.ruoyi.common.core.web.domain.AjaxResult;
-import com.ruoyi.common.core.web.page.BasePage;
 import com.ruoyi.common.core.web.page.PageInfo;
 import com.ruoyi.common.redis.service.RedisService;
 import com.ruoyi.common.security.service.TokenService;
@@ -48,17 +46,17 @@
 import com.ruoyi.order.service.TChargingOrderRefundService;
 import com.ruoyi.order.service.TChargingOrderService;
 import com.ruoyi.order.service.TOrderEvaluateService;
-import com.ruoyi.other.api.domain.TCoupon;
-import com.ruoyi.other.api.domain.TGoods;
+import com.ruoyi.order.vo.ChargingOrderListInfoVO;
+import com.ruoyi.other.api.feignClient.RoleSiteClient;
+import com.ruoyi.other.api.feignClient.UserSiteClient;
 import com.ruoyi.payment.api.feignClient.AliPaymentClient;
 import com.ruoyi.payment.api.feignClient.WxPaymentClient;
 import com.ruoyi.payment.api.model.RefundReq;
 import com.ruoyi.payment.api.model.RefundResp;
 import com.ruoyi.payment.api.model.WxPaymentRefundModel;
 import com.ruoyi.payment.api.vo.*;
+import com.ruoyi.system.api.feignClient.SysUserClient;
 import io.seata.spring.annotation.GlobalTransactional;
-import io.swagger.annotations.ApiModelProperty;
-import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.util.StringUtils;
 
@@ -69,7 +67,6 @@
 import java.time.LocalDateTime;
 import java.time.ZoneOffset;
 import java.time.format.DateTimeFormatter;
-import java.time.temporal.ChronoUnit;
 import java.util.*;
 import java.util.concurrent.*;
 import java.util.stream.Collectors;
@@ -113,7 +110,7 @@
 	private AliPaymentClient aliPaymentClient;
 	
 
-	
+
 
 	@Resource
 	private AppUserVipDetailClient appUserVipDetailClient;
@@ -133,21 +130,21 @@
 	@Resource
 	private TOrderEvaluateService orderEvaluateService;
 
-	
+
 	@Resource
 	private AccountingStrategyDetailClient accountingStrategyDetailClient;
-	
+
 	@Resource
 	private PlatformStartChargingReplyClient platformStartChargingReplyClient;
-	
+
 	@Resource
 	private TChargingOrderRefundService chargingOrderRefundService;
-	
+
 	//计数器
 	private Map<String, Integer> counter_map = new HashMap<>();
-	
-	
-	
+
+
+
 
 	/**
 	 * 获取小程序充电记录列表数据
@@ -457,7 +454,7 @@
 		chargingOrder.setRechargeSerialNumber(transaction_id);
 		chargingOrder.setStatus(2);
 		this.updateById(chargingOrder);
-		
+
 		//添加安全检测数据到缓存中,每步安全检测完成后需要更新缓存数据
 		PreChargeCheck preChargeCheck = new PreChargeCheck();
 		preChargeCheck.setElectronicLockLock(false);
@@ -479,7 +476,7 @@
 		//计算电费金额和服务费
 		BigDecimal serviceCharge = strategyDetail.getServiceCharge().multiply(degrees);
 		BigDecimal electrovalence = strategyDetail.getElectrovalence().multiply(degrees);
-		
+
 		//再处理会员折扣
 		BigDecimal discount = BigDecimal.ZERO;
 		TAppUser appUser = appUserClient.getUserById(chargingOrder.getAppUserId()).getData();
@@ -495,8 +492,8 @@
 			}
 		}
 		electrovalence = electrovalence.add(discount);
-		
-		
+
+
 		TChargingPile chargingPile = chargingPileClient.getChargingPileById(chargingGun.getChargingPileId()).getData();
 		//调用远程启动充电消息
 		PlatformStartCharging platformStartCharging = new PlatformStartCharging();
@@ -613,11 +610,11 @@
 					}
 				}
 			}
-			
+
 		}
 	}
-	
-	
+
+
 	/**
 	 * 启动失败后微信退款的回调处理
 	 * @param out_refund_no
@@ -636,10 +633,10 @@
 		}
 		return AjaxResult.success();
 	}
-	
-	
-	
-	
+
+
+
+
 	/**
 	 * 获取充电中的详情
 	 * @param id
@@ -768,8 +765,8 @@
 			BigDecimal electronicMoney1 = new BigDecimal("0");
 			// 单个订单累计服务费
 			BigDecimal serviceMoney1 = new BigDecimal("0");
-			// todo 调用第三方获取充电时长 秒
-
+			UploadRealTimeMonitoringData data5 = uploadRealTimeMonitoringDataClient.chargingOrderInfo(chargingOrderVO.getCode()).getData();
+			chargingOrderVO.setChargingSecond(data5.getTime_remaining()*60L);
 			// 总收入
 			if (chargingOrderVO.getRefundStatus() !=null && chargingOrderVO.getRefundStatus() == 2){
 				income = income.add(chargingOrderVO.getPaymentAmount().subtract(chargingOrderVO.getRefundAmount()));
@@ -880,7 +877,13 @@
 	public List<Map<String, BigDecimal>> getYearData(List<Long> chargingOrderIds) {
 		return this.baseMapper.getYearData(chargingOrderIds);
 	}
+	@Resource
+	private SysUserClient sysUserClient;
+	@Resource
+	private UserSiteClient userSiteClient;
 
+	@Resource
+	private RoleSiteClient roleSiteClient;
 	@Override
 	public ChargingOrderTimeVO chargingList(ChargingListQuery dto) {
 		String startTime1 = null;
@@ -893,17 +896,12 @@
 			startTime1 = split[0];
 			startTime2 = split[1];
 		}
-		if (StringUtils.hasLength(dto.getEndTime())){
-			String[] split = dto.getEndTime().split(" - ");
-			endTime1 = split[0];
-			endTime2 = split[1];
-		}
 		ChargingOrderTimeVO chargingOrderTimeVO = new ChargingOrderTimeVO();
-
 
 		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) {
+			chargingOrderListVO.setUid(chargingOrderListVO.getId()+"");
 			List<Integer> integers = new ArrayList<>();
 			integers.add(chargingOrderListVO.getSiteId());
 			List<Site> data = siteClient.getSiteByIds(integers).getData();
@@ -915,7 +913,21 @@
 			if (data2 != null && data1 != null) {
 				chargingOrderListVO.setTerminalName(data2.getName() + "-" + data1.getName());
 			}
-			// todo 充电时长 调用第三方获取
+			// 获取充电时间
+			UploadRealTimeMonitoringData data5 = uploadRealTimeMonitoringDataClient.chargingOrderInfo(chargingOrderListVO.getCode()).getData();
+			if (data5!=null){
+				if (data5.getTime_remaining()!=null){
+					chargingOrderListVO.setChargingSecond(data5.getTime_remaining()*60L);
+
+				}
+			}
+			// 获取开始SOC 结束soc
+			List<UploadRealTimeMonitoringData> data6 = uploadRealTimeMonitoringDataClient.getDataByOrderCode(chargingOrderListVO.getCode()).getData();
+			if (!data6.isEmpty()){
+				// 第一条数据soc为开始 最后一条数据soc为结束soc
+				chargingOrderListVO.setStartSoc(data6.get(0).getSoc().toString());
+				chargingOrderListVO.setEndSoc(data6.get(data6.size()-1).getSoc().toString());
+			}
 			TAppUser data3 = appUserClient.getUserById(chargingOrderListVO.getAppUserId()).getData();
 			List<Long> carId = new ArrayList<>();
 			if (chargingOrderListVO.getAppUserCarId() != null) {
@@ -1042,8 +1054,64 @@
 		chargingOrderTimeVO.setList(pageInfo);
 		return chargingOrderTimeVO;
 	}
-	
-	
+
+	@Override
+	public R payRefund(PayOrderRefundDto payOrderQueryDto) {
+		return null;
+	}
+
+
+	@Override
+	public ChargingOrderListInfoVO chargingInfo(String uid) {
+		TChargingOrder chargingOrder= this.getById(uid);
+
+		ChargingOrderListInfoVO chargingOrderListInfoVO = new ChargingOrderListInfoVO();
+		chargingOrderListInfoVO.setCode(chargingOrder.getCode());
+		List<Site> data = siteClient.getSiteByIds(Arrays.asList(chargingOrder.getSiteId())).getData();
+		if (!data.isEmpty()){
+			chargingOrderListInfoVO.setSiteName(data.get(0).getName());
+			chargingOrderListInfoVO.setSiteAddress(data.get(0).getAddress());
+		}
+		TChargingGun data1 = chargingGunClient.getChargingGunById(chargingOrder.getChargingGunId()).getData();
+		TChargingPile data2 = chargingPileClient.getChargingPileById(data1.getChargingPileId()).getData();
+
+		if (data1!=null){
+			chargingOrderListInfoVO.setGunCode(data1.getCode());
+			chargingOrderListInfoVO.setTerminalName(data2.getName()+data1.getName());
+		}
+		chargingOrderListInfoVO.setEndMode(chargingOrder.getEndMode());
+		// todo 周一完善
+		// 获取开始SOC 结束soc
+		List<UploadRealTimeMonitoringData> data6 = uploadRealTimeMonitoringDataClient.getDataByOrderCode(chargingOrder.getCode()).getData();
+		if (!data6.isEmpty()){
+			// 第一条数据soc为开始 最后一条数据soc为结束soc
+			chargingOrderListInfoVO.setStartSoc(data6.get(0).getSoc().toString());
+			chargingOrderListInfoVO.setEndSoc(data6.get(data6.size()-1).getSoc().toString());
+			chargingOrderListInfoVO.setChargingCapacity(data6.get(data6.size()-1).getCharging_degree());
+			chargingOrderListInfoVO.setChargingSecond(data6.get(data6.size()-1).getCumulative_charging_time()*60+"");
+
+		}
+		if (chargingOrder.getAppUserCarId()!=null){
+			List<TAppUserCar> data3 = appUserCarClient.getCarByIds(Collections.singletonList(chargingOrder.getAppUserCarId())).getData();
+			if (!data3.isEmpty())chargingOrderListInfoVO.setLicensePlate(data3.get(0).getLicensePlate());
+		}
+		chargingOrderListInfoVO.setStartTime(chargingOrder.getStartTime());
+		chargingOrderListInfoVO.setEndTime(chargingOrder.getEndTime());
+		chargingOrderListInfoVO.setId(chargingOrder.getId());
+		chargingOrderListInfoVO.setUid(chargingOrder.getId().toString());
+		chargingOrderListInfoVO.setList(data6);
+		chargingOrderListInfoVO.setCouponDiscountAmount(chargingOrder.getCouponDiscountAmount());
+		chargingOrderListInfoVO.setVipDiscountAmount(chargingOrder.getVipDiscountAmount());
+		chargingOrderListInfoVO.setSharingAmount(chargingOrder.getSharingAmount());
+		chargingOrderListInfoVO.setCommissionAmount(chargingOrder.getCommissionAmount());
+		// 查询费用明细列表
+		List<TChargingOrderAccountingStrategy> list = chargingOrderAccountingStrategyService.lambdaQuery()
+				.eq(TChargingOrderAccountingStrategy::getChargingOrderId, chargingOrder.getId())
+				.list();
+		chargingOrderListInfoVO.setList1(list);
+		return chargingOrderListInfoVO;
+	}
+
 	/**
 	 * 处理充电订单实时监控数据相关的业务逻辑
 	 * @param query

--
Gitblit v1.7.1