From cfb640b05d0eca5e95b355d5b04f345be262923e Mon Sep 17 00:00:00 2001
From: 无关风月 <443237572@qq.com>
Date: 星期五, 07 二月 2025 17:19:21 +0800
Subject: [PATCH] bug修改
---
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java | 95 +++++++++++++++++++++++++++++------------------
1 files changed, 58 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 eca8912..88a7fa5 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
@@ -1100,7 +1100,7 @@
if(1 == doubleIntegration){
num1 *= 2;
}
-
+
}
GetInviteUser query = new GetInviteUser();
@@ -1190,8 +1190,12 @@
@Override
public TCharingOrderVO chargingOrder(ChargingOrderQuery dto) {
TCharingOrderVO tCharingOrderVO = new TCharingOrderVO();
-
-
+ List<TChargingGun> allGun = chargingGunClient.getAllGun().getData();
+ List<TChargingPile> allPile = chargingGunClient.getAllPile().getData();
+ List<Site> data9 = siteClient.getSiteAll().getData();
+ List<TAppUser> data6 = appUserClient.getAllUser().getData();
+ List<Partner> data7 = siteClient.getAllPartner().getData();
+ List<TAppUserCar> data4 = appUserCarClient.getAllCar().getData();
String startTime1 = null;
String startTime2 = null;
String endTime1 = null;
@@ -1264,6 +1268,8 @@
BigDecimal refundMoney = new BigDecimal("0");
BigDecimal paymentMoney = new BigDecimal("0");
List<String> collect2 = list.stream().map(TChargingOrder::getCode).collect(Collectors.toList());
+ List<TChargingOrderAccountingStrategy> list3 = chargingOrderAccountingStrategyService.list(new QueryWrapper<TChargingOrderAccountingStrategy>());
+
for (ChargingOrderVO chargingOrderVO : list) {
if (roleType == 2){
for (Integer siteId : siteIds) {
@@ -1276,20 +1282,19 @@
chargingOrderVO.setCommissionAmount(chargingOrderVO.getOrderAmount()!=null?chargingOrderVO.getOrderAmount().multiply(new BigDecimal("0.006")):new BigDecimal("0"));
chargingOrderVO.setPlatFormMoney(chargingOrderVO.getOrderAmount()!=null?chargingOrderVO.getOrderAmount().multiply(new BigDecimal("0.006")).setScale(2,BigDecimal.ROUND_DOWN):new BigDecimal("0"));
chargingOrderVO.setUid(chargingOrderVO.getId()+"");
- TChargingGun data3 = chargingGunClient.getChargingGunById(chargingOrderVO.getChargingGunId()).getData();
- TChargingPile data2 = chargingPileClient.getChargingPileById(chargingOrderVO.getChargingPileId()).getData();
+ TChargingGun data3 = allGun.stream().filter(e->e.getId().equals(chargingOrderVO.getChargingGunId())).findFirst().orElse(null);
+ TChargingPile data2 = allPile.stream().filter(e->e.getId().equals(chargingOrderVO.getChargingPileId())).findFirst().orElse(null);
if (chargingOrderVO.getSiteId()!=null){
List<Integer> integers = new ArrayList<>();
integers.add(chargingOrderVO.getSiteId());
- List<Site> data = siteClient.getSiteByIds(integers).getData();
- if (!data.isEmpty())chargingOrderVO.setSiteName(data.get(0).getName());
+ Site site = data9.stream().filter(e -> e.getId().equals(chargingOrderVO.getSiteId())).findFirst().orElse(null);
+ if (site!=null)chargingOrderVO.setSiteName(site.getName());
}
if (data2!=null && data3!=null){
chargingOrderVO.setTerminalName(data2.getName()+"-"+data3.getName());
}
// 充电订单 明细记录
- List<TChargingOrderAccountingStrategy> chargingOrderId = chargingOrderAccountingStrategyService.list(new QueryWrapper<TChargingOrderAccountingStrategy>()
- .eq("charging_order_id", chargingOrderVO.getId()));
+ List<TChargingOrderAccountingStrategy> chargingOrderId = list3.stream().filter(e -> e.getChargingOrderId().equals(chargingOrderVO.getId())).collect(Collectors.toList());
if (chargingOrderVO.getStartTime()!=null && chargingOrderVO.getEndTime()!=null){
LocalDateTime startTime = chargingOrderVO.getStartTime();
LocalDateTime endTime = chargingOrderVO.getEndTime();
@@ -1302,16 +1307,16 @@
int size = chargingOrderId.size();
chargingOrderVO.setCount(size);
// 用户手机号
- TAppUser data = appUserClient.getUserById(chargingOrderVO.getAppUserId()).getData();
+ TAppUser data = data6.stream().filter(e -> e.getId().equals(chargingOrderVO.getAppUserId())).findFirst().orElse(null);
if (data!=null){
// 车牌号
chargingOrderVO.setPhone(data.getPhone());
List<Long> longs = new ArrayList<>();
if (chargingOrderVO.getAppUserCarId()!=null){
longs.add(chargingOrderVO.getAppUserCarId());
- List<TAppUserCar> data1 = appUserCarClient.getCarByIds(longs).getData();
- if (!data1.isEmpty()){
- chargingOrderVO.setLicensePlate(data1.get(0).getLicensePlate());
+ TAppUserCar tAppUserCar = data4.stream().filter(e -> e.getId().equals(chargingOrderVO.getAppUserCarId())).findFirst().orElse(null);
+ if (tAppUserCar!=null){
+ chargingOrderVO.setLicensePlate(tAppUserCar.getLicensePlate());
}
}
@@ -1438,6 +1443,9 @@
String endTime1 = null;
String endTime2 = null;
+ List<TChargingGun> allGun = chargingGunClient.getAllGun().getData();
+ List<TChargingPile> allPile = chargingGunClient.getAllPile().getData();
+
if (StringUtils.hasLength(dto.getStartTime())){
String[] split = dto.getStartTime().split(" - ");
startTime1 = split[0];
@@ -1534,19 +1542,18 @@
chargingOrderListVO.setSiteName(site.getName());
}
if (chargingOrderListVO.getChargingGunId()!=null && chargingOrderListVO.getChargingPileId()!=null){
- TChargingGun data1 = chargingGunClient.getChargingGunById(chargingOrderListVO.getChargingGunId()).getData();
- TChargingPile data2 = chargingPileClient.getChargingPileById(chargingOrderListVO.getChargingPileId()).getData();
+ TChargingGun data1 = allGun.stream().filter(e->e.getId().equals(chargingOrderListVO.getChargingGunId())).findFirst().orElse(null);
+ TChargingPile data2 = allPile.stream().filter(e->e.getId().equals(chargingOrderListVO.getChargingPileId())).findFirst().orElse(null);
if (data2 != null && data1 != null) {
chargingOrderListVO.setTerminalName(data2.getName() + "-" + data1.getName());
}
}
- // 获取充电时间
- UploadRealTimeMonitoringData data5 = uploadRealTimeMonitoringDataClient.chargingOrderInfo(chargingOrderListVO.getCode()).getData();
- if (data5!=null){
- if (data5.getTime_remaining()!=null){
- chargingOrderListVO.setChargingSecond(data5.getCumulative_charging_time()*60L);
-
- }
+ if (chargingOrderListVO.getStartTime()!=null && chargingOrderListVO.getEndTime()!=null){
+ LocalDateTime startTime = chargingOrderListVO.getStartTime();
+ LocalDateTime endTime = chargingOrderListVO.getEndTime();
+ // 计算时间差 单位秒
+ long between = ChronoUnit.SECONDS.between(startTime, endTime);
+ chargingOrderListVO.setChargingSecond(between);
}
// 获取开始SOC 结束soc
if (chargingOrderListVO.getCode()!=null){
@@ -1637,9 +1644,16 @@
if (site!=null){
chargingOrderListVO.setSiteName(site.getName());
}
+ if (chargingOrderListVO.getStartTime()!=null && chargingOrderListVO.getEndTime()!=null){
+ LocalDateTime startTime = chargingOrderListVO.getStartTime();
+ LocalDateTime endTime = chargingOrderListVO.getEndTime();
+ // 计算时间差 单位秒
+ long between = ChronoUnit.SECONDS.between(startTime, endTime);
+ chargingOrderListVO.setChargingSecond(between);
+ }
if (chargingOrderListVO.getChargingGunId()!=null && chargingOrderListVO.getChargingPileId()!=null){
- TChargingGun data1 = chargingGunClient.getChargingGunById(chargingOrderListVO.getChargingGunId()).getData();
- TChargingPile data2 = chargingPileClient.getChargingPileById(chargingOrderListVO.getChargingPileId()).getData();
+ TChargingGun data1 = allGun.stream().filter(e->e.getId().equals(chargingOrderListVO.getChargingGunId())).findFirst().orElse(null);
+ TChargingPile data2 = allPile.stream().filter(e->e.getId().equals(chargingOrderListVO.getChargingPileId())).findFirst().orElse(null);
if (data2 != null && data1 != null) {
chargingOrderListVO.setTerminalName(data2.getName() + "-" + data1.getName());
}
@@ -1762,6 +1776,8 @@
public ChargingOrderListInfoVO chargingInfo(String uid) {
TChargingOrder chargingOrder= this.getById(uid);
ChargingOrderListInfoVO chargingOrderListInfoVO = new ChargingOrderListInfoVO();
+ chargingOrderListInfoVO.setStartTime(chargingOrder.getStartTime());
+ chargingOrderListInfoVO.setEndTime(chargingOrder.getEndTime());
chargingOrderListInfoVO.setStatus(chargingOrder.getStatus());
BigDecimal bigDecimal = new BigDecimal("0.006");
if (chargingOrder.getOrderAmount()!=null){
@@ -1838,13 +1854,12 @@
chargingOrderListInfoVO.setList(data6);
}
- // 获取充电时间
- UploadRealTimeMonitoringData data5 = uploadRealTimeMonitoringDataClient.chargingOrderInfo(chargingOrder.getCode()).getData();
- if (data5!=null){
- if (data5.getTime_remaining()!=null){
- chargingOrderListInfoVO.setChargingSecond(data5.getCumulative_charging_time()*60L+"");
-
- }
+ if (chargingOrderListInfoVO.getStartTime()!=null && chargingOrderListInfoVO.getEndTime()!=null){
+ LocalDateTime startTime = chargingOrderListInfoVO.getStartTime();
+ LocalDateTime endTime = chargingOrderListInfoVO.getEndTime();
+ // 计算时间差 单位秒
+ long between = ChronoUnit.SECONDS.between(startTime, endTime);
+ chargingOrderListInfoVO.setChargingSecond(between+"");
}
if (chargingOrder.getAppUserCarId()!=null){
@@ -1938,11 +1953,11 @@
*/
@Override
@GlobalTransactional(rollbackFor = Exception.class)
- public void endChargeBillingCharge(TransactionRecordMessageVO vo) {
+ public R endChargeBillingCharge(TransactionRecordMessageVO vo) {
TChargingOrder chargingOrder = this.getOne(new LambdaQueryWrapper<TChargingOrder>().eq(TChargingOrder::getCode, vo.getTransaction_serial_number()));
Integer status = chargingOrder.getStatus();
if(status == 5){
- return;
+ return R.ok();
}
//如果使用优惠券需要判断优惠券是否满足使用条件
@@ -2082,6 +2097,7 @@
}
}catch (Exception e){
e.printStackTrace();
+ R.fail("处理失败");
}
//开始处理明细
@@ -2169,16 +2185,20 @@
discountAmount = discountAmount.setScale(4, RoundingMode.HALF_EVEN);
payAmount = payAmount.subtract(discountAmount);
periodServicePrice_total = periodServicePrice_total.subtract(discountAmount);
-
+
TChargingOrder order = new TChargingOrder();
order.setId(chargingOrder.getId());
order.setAppUserId(chargingOrder.getAppUserId());
UploadRealTimeMonitoringData uploadRealTimeMonitoringData = uploadRealTimeMonitoringDataClient.chargingOrderInfo(chargingOrder.getCode()).getData();
if(null != uploadRealTimeMonitoringData && null == chargingOrder.getEndMode()){
Integer soc = uploadRealTimeMonitoringData.getSoc();
- order.setEndMode(soc > 98 ? 2 : 3);
- }else{
- order.setEndMode(1);
+ if(soc > 98){
+ order.setEndMode(2);
+ }else if(order.getResidualAmount().compareTo(new BigDecimal(1)) <= 0){
+ order.setEndMode(3);
+ }else{
+ order.setEndMode(0);
+ }
}
order.setResidualAmount(rechargeAmount.subtract(total).setScale(2, RoundingMode.HALF_EVEN));
order.setStartTime(LocalDateTime.parse(vo.getStart_time(), DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SS")));
@@ -2362,6 +2382,7 @@
}
}
+ return R.ok();
}
--
Gitblit v1.7.1