From 76cbf6741c91bf91469e406dc052e688e4fd6103 Mon Sep 17 00:00:00 2001
From: 无关风月 <443237572@qq.com>
Date: 星期四, 13 二月 2025 16:35:52 +0800
Subject: [PATCH] bug修改
---
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java | 187 ++++++++++++++++++++++++++--------------------
1 files changed, 104 insertions(+), 83 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..d599596 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
@@ -66,6 +66,7 @@
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.StringUtils;
@@ -396,7 +397,7 @@
if(null != data){
//支付失败,删除无效的订单
String tradeStatus = data.getTradeStatus();
- if(tradeStatus.equals("TRADE_CLOSED")){
+ if(null != tradeStatus && tradeStatus.equals("TRADE_CLOSED")){
this.removeById(tChargingOrder.getId());
}
}
@@ -599,6 +600,7 @@
if(null != data && data.getChargeNum() > 0){
//计算折扣
List<AccountingStrategyDetailOrder> list = accountingStrategyDetailOrderClient.getAllAccountingStrategyDetailOrder(chargingOrder.getId()).getData();
+ list.get(list.size() - 1).setEndTime("23:59");
//将数据叠加两份,处理跨天的情况
list.addAll(list);
boolean sta = false;
@@ -1100,7 +1102,7 @@
if(1 == doubleIntegration){
num1 *= 2;
}
-
+
}
GetInviteUser query = new GetInviteUser();
@@ -1190,8 +1192,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;
@@ -1208,7 +1214,7 @@
endTime2 = split[1];
}
PageInfo<ChargingOrderVO> pageInfo = new PageInfo<>(dto.getPageCurr(),dto.getPageSize());
- PageInfo<ChargingOrderVO> pageInfo1 = new PageInfo<>(1,9999999);
+ PageInfo<ChargingOrderVO> pageInfo1 = new PageInfo<>(1,999999999);
if (StringUtils.hasLength(dto.getPhone())){
List<Long> data = appUserClient.getUserIdsByPhone(dto.getPhone()).getData();
@@ -1264,6 +1270,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 +1284,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 +1309,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 +1445,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 +1544,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 +1646,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 +1778,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 +1856,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 +1955,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 +2099,7 @@
}
}catch (Exception e){
e.printStackTrace();
+ R.fail("处理失败");
}
//开始处理明细
@@ -2169,16 +2187,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(chargingOrder.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 +2384,7 @@
}
}
+ return R.ok();
}
@@ -2898,6 +2921,8 @@
return pageInfo;
}
+ @Autowired
+ private TChargingOrderService chargingOrderService;
@Override
public SettlementTotalVO settlementTotal(String time) {
Long userId = tokenService.getLoginUser().getUserid();
@@ -2912,6 +2937,14 @@
if (siteIds.isEmpty()){
siteIds.add(-1);
}
+ List<Site> siteList = siteClient.getSiteAll().getData();
+ List<TChargingGun> gunList = chargingGunClient.getAllGun().getData();
+ List<TChargingPile> pileList = chargingGunClient.getAllPile().getData();
+ List<TAppUser> userList = appUserClient.getAllUser().getData();
+ List<TAppUserCar> carList = appUserCarClient.getAllCar().getData();
+ List<TChargingOrder> totalOrder = chargingOrderService.list(new LambdaQueryWrapper<>(TChargingOrder.class)
+ .eq(TChargingOrder::getRechargePaymentStatus, 2));
+ List<TChargingOrderRefund> totalRefund = chargingOrderRefundService.lambdaQuery().eq(TChargingOrderRefund::getRefundStatus, 2).list();
SettlementTotalVO res = new SettlementTotalVO();
List<TSettlementConfirm> list1 = tSettlementConfirmMapper.settlementTotal(time,siteIds);
LocalDateTime parse = LocalDateTime.parse(time, DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
@@ -2959,9 +2992,9 @@
for (TSettlementConfirm tSettlementConfirm : list1) {
tSettlementConfirm.setXuhao(i);
tSettlementConfirm.setMetering(tSettlementConfirm.getSupplyElectronic());
- List<Site> data1 = siteClient.getSiteByIds(Arrays.asList(tSettlementConfirm.getSiteId())).getData();
- if (!data1.isEmpty()){
- tSettlementConfirm.setSiteName(data1.get(0).getName());
+ Site site = siteList.stream().filter(e -> e.getId().equals(tSettlementConfirm.getSiteId())).findFirst().orElse(null);
+ if (site!=null){
+ tSettlementConfirm.setSiteName(site.getName());
}
if (tSettlementConfirm.getMeteringElectronic()!=null){
meteringElectronic = meteringElectronic.add(tSettlementConfirm.getMeteringElectronic());
@@ -3006,26 +3039,17 @@
eq.between("end_time", tSettlementConfirm.getStartTime(), tSettlementConfirm.getEndTime());
break;
}
- List<TChargingOrder> tChargingOrders = this.baseMapper.selectList(eq);
- Map<String,TChargingOrder> map = new HashMap<>();
- StringBuilder stringBuilder = new StringBuilder();
- for (TChargingOrder tChargingOrder : tChargingOrders) {
- stringBuilder.append(tChargingOrder.getCode()).append(",");
-
- }
+ List<TChargingOrder> tChargingOrders = totalOrder.stream().filter(e-> e.getPayTime()
+ .isBefore(tSettlementConfirm.getEndTime())
+ && e.getPayTime().isAfter(tSettlementConfirm.getStartTime())&&e.getSiteId().equals(tSettlementConfirm.getSiteId())).collect(Collectors.toList());
// 充电总时长
-
- Long temp = 1L;
- if (StringUtils.hasLength(stringBuilder.toString())){
- String substring = stringBuilder.substring(0, stringBuilder.length() - 1);
- for (String s : substring.split(",")) {
- UploadRealTimeMonitoringData data6 = uploadRealTimeMonitoringDataClient.chargingOrderInfo(s).getData();
- if (data6!=null){
- temp+=(data6.getCumulative_charging_time()*60);
-
- }
-
- }
+ Long temp = 0L;
+ for (TChargingOrder tChargingOrder : tChargingOrders) {
+ LocalDateTime startTime = tChargingOrder.getStartTime();
+ LocalDateTime endTime = tChargingOrder.getEndTime();
+ // 计算时间差 单位秒
+ long between = ChronoUnit.SECONDS.between(startTime, endTime);
+ temp+=between;
}
List<TChargingPile> data = siteClient.getPileListBySiteId(tSettlementConfirm.getSiteId()).getData();
// 计算充电桩的功率平均值
@@ -3037,7 +3061,7 @@
tSettlementConfirm.setIncome(tSettlementConfirm.getElectrovalence().add(tSettlementConfirm.getServiceCharge()));
//利用率=充电量/(桩数量*功率*时间)
- List<TChargingPile> data2 = chargingPileClient.getChargingPileBySiteId(tSettlementConfirm.getSiteId()).getData();
+ List<TChargingPile> data2 = pileList.stream().filter(e -> e.getSiteId().equals(tSettlementConfirm.getSiteId())).collect(Collectors.toList());
BigDecimal bigDecimal2 = new BigDecimal("0");
if (data2!=null && (!data2.isEmpty())){
@@ -3153,11 +3177,16 @@
if (siteIds.isEmpty()){
siteIds.add(-1);
}
+ List<Site> siteList = siteClient.getSiteAll().getData();
+ List<TChargingGun> gunList = chargingGunClient.getAllGun().getData();
+ List<TChargingPile> pileList = chargingGunClient.getAllPile().getData();
+ List<TAppUser> userList = appUserClient.getAllUser().getData();
+ List<TAppUserCar> carList = appUserCarClient.getAllCar().getData();
+ List<TChargingOrder> totalOrder = chargingOrderService.list(new LambdaQueryWrapper<>(TChargingOrder.class)
+ .eq(TChargingOrder::getRechargePaymentStatus, 2));
SettlementTotalVO res = new SettlementTotalVO();
List<TSettlementConfirm> list1 = tSettlementConfirmMapper.settlementTotal(time,siteIds);
LocalDateTime parse = LocalDateTime.parse(time, DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
- // 减少一个月
- LocalDateTime minus = parse.minusMonths(1);
List<TSettlementConfirm> list2 = tSettlementConfirmMapper.settlementTotal(time,siteIds);
// 合计
List<TSettlementConfirm> total = new ArrayList<>();
@@ -3200,7 +3229,7 @@
for (TSettlementConfirm tSettlementConfirm : list1) {
tSettlementConfirm.setXuhao(i);
tSettlementConfirm.setMetering(tSettlementConfirm.getSupplyElectronic());
- List<Site> data1 = siteClient.getSiteByIds(Arrays.asList(tSettlementConfirm.getSiteId())).getData();
+ List<Site> data1 = siteList.stream().filter(e -> e.getId().equals(tSettlementConfirm.getSiteId())).collect(Collectors.toList());
if (!data1.isEmpty()){
tSettlementConfirm.setSiteName(data1.get(0).getName());
}
@@ -3247,26 +3276,18 @@
eq.between("end_time", tSettlementConfirm.getStartTime(), tSettlementConfirm.getEndTime());
break;
}
- List<TChargingOrder> tChargingOrders = this.baseMapper.selectList(eq);
- Map<String,TChargingOrder> map = new HashMap<>();
- StringBuilder stringBuilder = new StringBuilder();
- for (TChargingOrder tChargingOrder : tChargingOrders) {
- stringBuilder.append(tChargingOrder.getCode()).append(",");
- }
+ List<TChargingOrder> tChargingOrders = totalOrder.stream().filter(e-> e.getPayTime()
+ .isBefore(tSettlementConfirm.getEndTime())
+ && e.getPayTime().isAfter(tSettlementConfirm.getStartTime())&&e.getSiteId().equals(tSettlementConfirm.getSiteId())).collect(Collectors.toList());
// 充电总时长
-
- Long temp = 1L;
- if (StringUtils.hasLength(stringBuilder.toString())){
- String substring = stringBuilder.substring(0, stringBuilder.length() - 1);
- for (String s : substring.split(",")) {
- UploadRealTimeMonitoringData data6 = uploadRealTimeMonitoringDataClient.chargingOrderInfo(s).getData();
- if (data6!=null){
- temp+=(data6.getCumulative_charging_time()*60);
-
- }
-
- }
+ Long temp = 0L;
+ for (TChargingOrder tChargingOrder : tChargingOrders) {
+ LocalDateTime startTime = tChargingOrder.getStartTime();
+ LocalDateTime endTime = tChargingOrder.getEndTime();
+ // 计算时间差 单位秒
+ long between = ChronoUnit.SECONDS.between(startTime, endTime);
+ temp+=between;
}
List<TChargingPile> data = siteClient.getPileListBySiteId(tSettlementConfirm.getSiteId()).getData();
// 计算充电桩的功率平均值
--
Gitblit v1.7.1