From 15dcbd07dfb421e81bf2401cc37b8a6bca6d4211 Mon Sep 17 00:00:00 2001
From: Pu Zhibing <393733352@qq.com>
Date: 星期五, 24 十月 2025 18:34:49 +0800
Subject: [PATCH] 修改bug
---
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java | 335 +++++++++++++++++++++++++++----------------------------
1 files changed, 166 insertions(+), 169 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 2eb375b..070bbbc 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
@@ -52,7 +52,6 @@
import com.ruoyi.order.service.TChargingOrderService;
import com.ruoyi.order.service.TOrderEvaluateService;
import com.ruoyi.order.service.*;
-import com.ruoyi.order.util.RedisLock;
import com.ruoyi.order.util.mongodb.service.PlatformStartChargingReplyService;
import com.ruoyi.order.util.mongodb.service.TransactionRecordService;
import com.ruoyi.order.util.mongodb.service.UploadRealTimeMonitoringDataService;
@@ -584,6 +583,8 @@
AccountingStrategyDetailOrder accountingStrategyDetailOrder = new AccountingStrategyDetailOrder();
BeanUtils.copyProperties(tAccountingStrategyDetail, accountingStrategyDetailOrder);
accountingStrategyDetailOrder.setChargingOrderId(chargingOrder.getId());
+ accountingStrategyDetailOrder.setCreateTime(LocalDateTime.now());
+ accountingStrategyDetailOrder.setDelFlag(false);
list1.add(accountingStrategyDetailOrder);
}
accountingStrategyDetailOrderService.saveBatch(list1);
@@ -796,6 +797,7 @@
String key = "AQJC_" + chargingOrder.getChargingGunId();
List<PlatformStartChargingReply> data = platformStartChargingReplyService.getPlatformStartChargingReply(code);
log.info(code + ":-------------------开始检查调起充电结果-------------------" + data.toString());
+ Site site = siteClient.getSiteByIds(Arrays.asList(chargingOrder.getSiteId())).getData().get(0);
if (data.size() != 0) {
PlatformStartChargingReply platformStartChargingReply = data.get(1);
Integer startup_result = platformStartChargingReply.getStartup_result();
@@ -841,7 +843,7 @@
redisService.setCacheObject(key, preChargeCheck1, 24L, TimeUnit.HOURS);
//推送三方平台订单状态
- if (2 == chargingOrder.getOrderSource()) {
+ if (2 == chargingOrder.getOrderSource() && 1 == site.getIsOpenSynchronization()) {
tcecClient.notificationEquipChargeStatus(chargingOrder.getStartChargeSeq(), chargingOrder.getOperatorId());
}
return true;
@@ -875,7 +877,7 @@
this.updateById(order);
redisService.setCacheObject(key, preChargeCheck1, 24L, TimeUnit.HOURS);
//推送三方平台订单状态
- if (2 == chargingOrder.getOrderSource()) {
+ if (2 == chargingOrder.getOrderSource() && 1 == site.getIsOpenSynchronization()) {
tcecClient.notificationEquipChargeStatus(chargingOrder.getStartChargeSeq(), chargingOrder.getOperatorId());
}
return true;
@@ -916,6 +918,7 @@
if (order.getStatus() != 2) {
return;
}
+ Site site = siteClient.getSiteByIds(Arrays.asList(order.getSiteId())).getData().get(0);
String code = order.getCode();
PreChargeCheck preChargeCheck1 = redisService.getCacheObject("AQJC_" + order.getChargingGunId());
if (null != preChargeCheck1) {
@@ -939,8 +942,10 @@
TChargingGun chargingGun = chargingGunClient.getChargingGunById(order.getChargingGunId()).getData();
chargingGun.setStatus(4);
chargingGunClient.updateChargingGunById(chargingGun);
- //推送状态给三方平台
- tcecClient.pushChargingGunStatus(chargingGun.getFullNumber(), chargingGun.getStatus());
+ if(1 == site.getIsOpenSynchronization()){
+ //推送状态给三方平台
+ tcecClient.pushChargingGunStatus(chargingGun.getFullNumber(), 4);
+ }
}
redisService.setCacheObject("AQJC_" + order.getChargingGunId(), preChargeCheck1, 24L, TimeUnit.HOURS);
this.updateById(order);
@@ -962,9 +967,12 @@
result.setStartTime(LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
Operator operator = operatorClient.getOperatorById(order.getOperatorId()).getData();
result.setOperatorID(operator.getOperatorId());
- tcecClient.notificationStartChargeResult(result);
+ if(1 == site.getIsOpenSynchronization()){
+ tcecClient.notificationStartChargeResult(result);
+ tcecClient.notificationEquipChargeStatus(order.getStartChargeSeq(), order.getOperatorId());
+ }
- tcecClient.notificationEquipChargeStatus(order.getStartChargeSeq(), order.getOperatorId());
+
}
}
@@ -1269,12 +1277,14 @@
}
Long userId = tokenService.getLoginUserApplet().getUserId();
if (!order.getAppUserId().equals(userId)) {
+ log.info("【" + order.getCode() + "】主动停止充电失败,用户权限不足。当前登录用户id:{},订单用户id:{}", userId, order.getAppUserId());
return AjaxResult.error("权限不足");
}
order.setEndTime(LocalDateTime.now());
order.setStatus(4);
order.setEndMode(1);
this.updateById(order);
+ log.info("【" + order.getCode() + "】主动停止充电成功,订单状态已被修改。");
String code1 = order.getCode();
TChargingGun chargingGun = chargingGunClient.getChargingGunById(order.getChargingGunId()).getData();
@@ -1290,8 +1300,9 @@
log.info(code1 + ":-------------------远程停止充电请求-------------------");
log.info(platformStopCharging.toString());
});
+ Site site = siteClient.getSiteByIds(Arrays.asList(order.getSiteId())).getData().get(0);
//推送三方平台
- if (2 == order.getOrderSource()) {
+ if (2 == order.getOrderSource() && 1 == site.getIsOpenSynchronization()) {
tcecClient.notificationEquipChargeStatus(order.getStartChargeSeq(), order.getOperatorId());
}
@@ -1531,6 +1542,7 @@
if (siteIds.isEmpty()) siteIds.add(-1);
dto.setSiteIds(siteIds);
List<ChargingOrderVO> list = this.baseMapper.chargingOrder(pageInfo, dto, startTime1, startTime2, endTime1, endTime2);
+
BigDecimal total = new BigDecimal("0");
long time = 0L;
BigDecimal electronicMoney = new BigDecimal("0");
@@ -1603,42 +1615,7 @@
}
}
-
-// List<TChargingOrderRefund> chargingOrderRefunds = chargingOrderRefundService.lambdaQuery()
-// .eq(TChargingOrderRefund::getRefundStatus,2).list();
-
-
Map<String, Object> map = this.baseMapper.chargingOrderNolimit(dto, startTime1, startTime2, endTime1, endTime2);
-// for (ChargingOrderVO chargingOrderVO : list1) {
-// if(null == chargingOrderVO.getStatus() || 5 != chargingOrderVO.getStatus()){
-// continue;
-// }
-// List<TChargingOrderAccountingStrategy> list4 = list3.stream().filter(e -> e.getChargingOrderId().equals(chargingOrderVO.getId())).collect(Collectors.toList());
-// BigDecimal electronic_reduce = list4.stream().map(TChargingOrderAccountingStrategy::getPeriodElectricPrice).reduce(BigDecimal.ZERO, BigDecimal::add);
-// BigDecimal service_reduce = list4.stream().map(TChargingOrderAccountingStrategy::getPeriodServicePrice).reduce(BigDecimal.ZERO, BigDecimal::add);
-// BigDecimal chargingCapacity = list4.stream().map(TChargingOrderAccountingStrategy::getChargingCapacity).reduce(BigDecimal.ZERO, BigDecimal::add);
-// electronicMoney = electronicMoney.add(electronic_reduce);
-// total = total.add(chargingCapacity);
-// if (!chargingOrderVO.getOrderSource().equals(2)) {
-// serviceMoney = serviceMoney.add(service_reduce);
-// paymentMoney = paymentMoney.add(electronic_reduce).add(service_reduce);
-// }else{
-// serviceMoney = serviceMoney.add(service_reduce.multiply(new BigDecimal("0.8")));
-// paymentMoney = paymentMoney.add(electronic_reduce).add(service_reduce.multiply(new BigDecimal("0.8")));
-// }
-// if (chargingOrderVO.getStartTime()!=null && chargingOrderVO.getEndTime()!=null){
-// LocalDateTime startTime = chargingOrderVO.getStartTime();
-// LocalDateTime endTime = chargingOrderVO.getEndTime();
-// // 计算时间差 单位秒
-// long between = ChronoUnit.SECONDS.between(startTime, endTime);
-// time+=between;
-// }
-//// List<TChargingOrderRefund> list2 = chargingOrderRefunds.stream().filter(e -> e.getChargingOrderId() != null && e.getChargingOrderId().equals(chargingOrderVO.getId()))
-//// .collect(Collectors.toList());
-//// for (TChargingOrderRefund tChargingOrderRefund : list2) {
-//// refundMoney = refundMoney.add(tChargingOrderRefund.getRefundTotalAmount());
-//// }
-// }
if (null != map) {
tCharingOrderVO.setTotal(map.get("total") == null ? BigDecimal.ZERO : (BigDecimal) map.get("total"));
tCharingOrderVO.setTime(map.get("time") == null ? 0L : (Long) map.get("time"));
@@ -1826,9 +1803,7 @@
dto.setSiteIds(siteIds);
PageInfo<ChargingOrderListVO> pageInfo = new PageInfo<>(dto.getPageCurr(), dto.getPageSize());
List<ChargingOrderListVO> list = this.baseMapper.chargingList(pageInfo, dto, startTime1, startTime2, endTime1, endTime2);
- List<Integer> siteIdsList = list.stream().map(ChargingOrderListVO::getSiteId).collect(Collectors.toList());
- if (siteIdsList.isEmpty()) siteIdsList.add(-1);
- List<Site> sites = siteClient.getSiteByIds(siteIdsList).getData();
+ List<Site> sites = siteClient.getSiteAll().getData();
for (ChargingOrderListVO chargingOrderListVO : list) {
if (roleType == 2) {
@@ -2323,6 +2298,10 @@
return R.ok();
}
try {
+ Object cacheObject = redisService.getCacheObject("chargingOrderStatus:" + vo.getTransaction_serial_number());
+ if(null != cacheObject && 5 == (int)cacheObject){
+ return R.ok();
+ }
TChargingOrder chargingOrder = this.getOne(new LambdaQueryWrapper<TChargingOrder>().eq(TChargingOrder::getCode, vo.getTransaction_serial_number()));
if (null == chargingOrder) {
return R.ok();
@@ -2533,31 +2512,28 @@
//退款金额=充值金额-实际支付金额
BigDecimal refundAmount = rechargeAmount.subtract(payAmount);
- TChargingOrder order = new TChargingOrder();
- order.setId(chargingOrder.getId());
- order.setAppUserId(chargingOrder.getAppUserId());
UploadRealTimeMonitoringData uploadRealTimeMonitoringData = uploadRealTimeMonitoringDataService.getLastDataById(chargingOrder.getCode());
if (null != uploadRealTimeMonitoringData && null == chargingOrder.getEndMode()) {
Integer soc = uploadRealTimeMonitoringData.getSoc();
if (soc >= 98) {
- order.setEndMode(2);
- } else if (chargingOrder.getResidualAmount().compareTo(new BigDecimal(1)) <= 0) {
- order.setEndMode(3);
+ chargingOrder.setEndMode(2);
+ } else if (null != chargingOrder.getResidualAmount() && chargingOrder.getResidualAmount().compareTo(new BigDecimal(1)) <= 0) {
+ chargingOrder.setEndMode(3);
} else {
- order.setEndMode(0);
+ chargingOrder.setEndMode(1);
}
}
- 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")));
- order.setEndTime(LocalDateTime.parse(vo.getEnd_time(), DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SS")));
- order.setStatus(5);
- order.setOrderAmount(orderAmount.setScale(2, RoundingMode.HALF_EVEN));
- order.setElectrovalence(periodElectricPrice_total.setScale(2, RoundingMode.HALF_EVEN));
- order.setChargingCapacity(vo.getTotal_electricity());
- order.setElectricity(vo.getTotal_electricity());
- order.setVipDiscountAmount(vipDiscountAmount_total);
+ chargingOrder.setResidualAmount(rechargeAmount.subtract(total).setScale(2, RoundingMode.HALF_EVEN));
+ chargingOrder.setStartTime(LocalDateTime.parse(vo.getStart_time(), DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SS")));
+ chargingOrder.setEndTime(LocalDateTime.parse(vo.getEnd_time(), DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SS")));
+ chargingOrder.setStatus(5);
+ chargingOrder.setOrderAmount(orderAmount.setScale(2, RoundingMode.HALF_EVEN));
+ chargingOrder.setElectrovalence(periodElectricPrice_total.setScale(2, RoundingMode.HALF_EVEN));
+ chargingOrder.setChargingCapacity(vo.getTotal_electricity());
+ chargingOrder.setElectricity(vo.getTotal_electricity());
+ chargingOrder.setVipDiscountAmount(vipDiscountAmount_total);
if (vipDiscountAmount_total.compareTo(BigDecimal.ZERO) == 0) {
- order.setVipDiscount(BigDecimal.valueOf(1));
+ chargingOrder.setVipDiscount(BigDecimal.valueOf(1));
}
//计算优惠券
@@ -2582,9 +2558,9 @@
appCoupon.setStatus(2);
appCouponClient.updateAppCoupon(appCoupon);
} else {
- order.setAppCouponId(null);
- order.setCouponDiscountAmount(BigDecimal.ZERO);
appCouponClient.refund(chargingOrder.getAppCouponId().toString());
+ chargingOrder.setAppCouponId(null);
+ chargingOrder.setCouponDiscountAmount(BigDecimal.ZERO);
}
}
if (2 == preferentialMode) {
@@ -2604,8 +2580,8 @@
appCoupon.setStatus(2);
appCouponClient.updateAppCoupon(appCoupon);
} else {
- order.setAppCouponId(null);
- order.setCouponDiscountAmount(BigDecimal.ZERO);
+ chargingOrder.setAppCouponId(null);
+ chargingOrder.setCouponDiscountAmount(BigDecimal.ZERO);
appCouponClient.refund(chargingOrder.getAppCouponId().toString());
}
}
@@ -2619,16 +2595,18 @@
if (serviceCharge_total.compareTo(BigDecimal.ZERO) > 0) {
serviceCharge_total = serviceCharge_total.subtract(couponDiscount);
}
- order.setCouponDiscountAmount(couponDiscount.setScale(2, RoundingMode.HALF_EVEN));
- order.setServiceCharge(serviceCharge_total.setScale(2, RoundingMode.HALF_EVEN));
- order.setPaymentAmount(payAmount.setScale(2, RoundingMode.HALF_EVEN));
- order.setRefundAmount(refundAmount.setScale(2, RoundingMode.HALF_EVEN));
- order.setRefundStatus(1);
- this.updateById(order);
- chargingOrder = this.getById(order.getId());
+ chargingOrder.setCouponDiscountAmount(couponDiscount.setScale(2, RoundingMode.HALF_EVEN));
+ chargingOrder.setServiceCharge(serviceCharge_total.setScale(2, RoundingMode.HALF_EVEN));
+ chargingOrder.setPaymentAmount(payAmount.setScale(2, RoundingMode.HALF_EVEN));
+ chargingOrder.setRefundAmount(refundAmount.setScale(2, RoundingMode.HALF_EVEN));
+ chargingOrder.setRefundStatus(1);
+ this.updateById(chargingOrder);
+ redisService.setCacheObject("chargingOrderStatus:" + vo.getTransaction_serial_number(), 5, 100L, TimeUnit.SECONDS);
+ chargingOrder = this.getById(chargingOrder.getId());
+ Site site = siteClient.getSiteByIds(Arrays.asList(chargingOrder.getSiteId())).getData().get(0);
//推送三方平台
- if (2 == chargingOrder.getOrderSource()) {
+ if (2 == chargingOrder.getOrderSource() && 1 == site.getIsOpenSynchronization()) {
TChargingOrder finalChargingOrder = chargingOrder;
new Thread(new Runnable() {
@Override
@@ -2642,9 +2620,9 @@
}
//开始将优惠券优惠的金额添加到明细中
- BigDecimal couponDiscountAmount = order.getCouponDiscountAmount();
+ BigDecimal couponDiscountAmount = chargingOrder.getCouponDiscountAmount();
if (null != couponDiscountAmount && couponDiscountAmount.compareTo(BigDecimal.ZERO) > 0) {
- List<TChargingOrderAccountingStrategy> list = chargingOrderAccountingStrategyService.list(new LambdaQueryWrapper<TChargingOrderAccountingStrategy>().eq(TChargingOrderAccountingStrategy::getChargingOrderId, order.getId()));
+ List<TChargingOrderAccountingStrategy> list = chargingOrderAccountingStrategyService.list(new LambdaQueryWrapper<TChargingOrderAccountingStrategy>().eq(TChargingOrderAccountingStrategy::getChargingOrderId, chargingOrder.getId()));
BigDecimal reduce = list.stream().map(TChargingOrderAccountingStrategy::getPeriodServicePrice).reduce(BigDecimal.ZERO, BigDecimal::add);
for (TChargingOrderAccountingStrategy chargingOrderAccountingStrategy : list) {
BigDecimal periodServicePrice = chargingOrderAccountingStrategy.getPeriodServicePrice();
@@ -2662,9 +2640,10 @@
chargingGun.setStatus(2);
chargingGun.setChargingPower(BigDecimal.ZERO);
chargingGunClient.updateChargingGunById(chargingGun);
+ chargingGun = chargingGunClient.getChargingGunById(chargingOrder.getChargingGunId()).getData();
//推送状态给三方平台
- if (2 == chargingOrder.getOrderSource()) {
- tcecClient.pushChargingGunStatus(chargingGun.getFullNumber(), chargingGun.getStatus());
+ if (2 == chargingOrder.getOrderSource() && 1 == site.getIsOpenSynchronization()) {
+ tcecClient.pushChargingGunStatus(chargingGun.getFullNumber(), 2);
}
//添加积分
@@ -2917,7 +2896,6 @@
tChargingOrder.setStatus(5);
}
-
TChargingOrderRefund chargingOrderRefund = new TChargingOrderRefund();
chargingOrderRefund.setChargingOrderId(tChargingOrder.getId());
chargingOrderRefund.setRefundAmount(payOrderQueryDto.getRefundAmount());
@@ -2926,7 +2904,7 @@
chargingOrderRefund.setRefundTime(LocalDateTime.now());
chargingOrderRefund.setCode(tChargingOrder.getCode());
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS");
- chargingOrderRefund.setRefundCode("GDF" + sdf.format(new Date()) + (Double.valueOf(Math.random() * 1000).intValue()));
+ chargingOrderRefund.setRefundCode("CDF" + sdf.format(new Date()) + (Double.valueOf(Math.random() * 1000).intValue()));
chargingOrderRefund.setRefundTitle("后台退款");
chargingOrderRefund.setRefundContent("后台退款");
chargingOrderRefund.setRefundReason("后台退款");
@@ -2940,7 +2918,7 @@
model.setOut_refund_no(chargingOrderRefund.getRefundCode());
model.setTransaction_id(tChargingOrder.getRechargeSerialNumber());
model.setReason("取消订单");
- model.setNotify_url("/order/t-shopping-order/cancelShoppingOrderWxRefund");
+ model.setNotify_url("/payment/wx/refund/notify");
WxPaymentRefundModel.RefundAmount amount = new WxPaymentRefundModel.RefundAmount();
amount.setRefund(payOrderQueryDto.getRefundAmount().multiply(new BigDecimal(100)).intValue());
amount.setTotal(tChargingOrder.getRechargeAmount().multiply(new BigDecimal(100)).intValue());
@@ -2993,69 +2971,69 @@
}
}
if (payOrderQueryDto.getType() == 2) {
- TShoppingOrder tChargingOrder = shoppingOrderService.getById(payOrderQueryDto.getOrderId());
- if (tChargingOrder.getPaymentAmount().compareTo(payOrderQueryDto.getRefundAmount()) == -1) {
+ TShoppingOrder shoppingOrder = shoppingOrderService.getById(payOrderQueryDto.getOrderId());
+ if (shoppingOrder.getPaymentAmount().compareTo(payOrderQueryDto.getRefundAmount()) == -1) {
return R.fail("退款金额需小于支付金额");
}
- if ((tChargingOrder.getPaymentAmount().subtract(tChargingOrder.getRefundAmount()).compareTo(payOrderQueryDto.getRefundAmount())) == 0) {
- tChargingOrder.setStatus(5);
+ if ((shoppingOrder.getPaymentAmount().subtract(shoppingOrder.getRefundAmount()).compareTo(payOrderQueryDto.getRefundAmount())) == 0) {
+ shoppingOrder.setStatus(5);
}
- TShoppingOrderRefund chargingOrderRefund = new TShoppingOrderRefund();
- chargingOrderRefund.setShoppingOrderId(tChargingOrder.getId());
- chargingOrderRefund.setRefundAmount(payOrderQueryDto.getRefundAmount());
- chargingOrderRefund.setRefundStatus(1);
- chargingOrderRefund.setPayType(tChargingOrder.getPaymentType());
- chargingOrderRefund.setRefundTime(LocalDateTime.now());
- chargingOrderRefund.setCode(tChargingOrder.getCode());
+ TShoppingOrderRefund shoppingOrderRefund = new TShoppingOrderRefund();
+ shoppingOrderRefund.setShoppingOrderId(shoppingOrder.getId());
+ shoppingOrderRefund.setRefundAmount(payOrderQueryDto.getRefundAmount());
+ shoppingOrderRefund.setRefundStatus(1);
+ shoppingOrderRefund.setPayType(shoppingOrder.getPaymentType());
+ shoppingOrderRefund.setRefundTime(LocalDateTime.now());
+ shoppingOrderRefund.setCode(shoppingOrder.getCode());
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS");
- chargingOrderRefund.setRefundCode("GDF" + sdf.format(new Date()) + (Double.valueOf(Math.random() * 1000).intValue()));
- chargingOrderRefund.setRefundTitle("后台退款");
- chargingOrderRefund.setRefundContent("后台退款");
- chargingOrderRefund.setRefundReason("后台退款");
- chargingOrderRefund.setRefundRemark(payOrderQueryDto.getRemark());
- chargingOrderRefund.setRefundTotalAmount(tChargingOrder.getRefundAmount().add(payOrderQueryDto.getRefundAmount()));
- chargingOrderRefund.setPayAmount(tChargingOrder.getPaymentAmount());
+ shoppingOrderRefund.setRefundCode("GWF" + sdf.format(new Date()) + (Double.valueOf(Math.random() * 1000).intValue()));
+ shoppingOrderRefund.setRefundTitle("后台退款");
+ shoppingOrderRefund.setRefundContent("后台退款");
+ shoppingOrderRefund.setRefundReason("后台退款");
+ shoppingOrderRefund.setRefundRemark(payOrderQueryDto.getRemark());
+ shoppingOrderRefund.setRefundTotalAmount(shoppingOrder.getRefundAmount().add(payOrderQueryDto.getRefundAmount()));
+ shoppingOrderRefund.setPayAmount(shoppingOrder.getPaymentAmount());
- if (1 == tChargingOrder.getPaymentType()) {
+ if (1 == shoppingOrder.getPaymentType()) {
WxPaymentRefundModel model = new WxPaymentRefundModel();
- model.setOut_trade_no(tChargingOrder.getCode());
- model.setOut_refund_no(chargingOrderRefund.getRefundCode());
- model.setTransaction_id(tChargingOrder.getSerialNumber());
+ model.setOut_trade_no(shoppingOrder.getCode());
+ model.setOut_refund_no(shoppingOrderRefund.getRefundCode());
+ model.setTransaction_id(shoppingOrder.getSerialNumber());
model.setReason("取消订单");
- model.setNotify_url("/order/t-shopping-order/cancelShoppingOrderWxRefund");
+ model.setNotify_url("/payment/wx/refund/notify");
WxPaymentRefundModel.RefundAmount amount = new WxPaymentRefundModel.RefundAmount();
amount.setRefund(payOrderQueryDto.getRefundAmount().multiply(new BigDecimal(100)).intValue());
- amount.setTotal(tChargingOrder.getPaymentAmount().multiply(new BigDecimal(100)).intValue());
+ amount.setTotal(shoppingOrder.getPaymentAmount().multiply(new BigDecimal(100)).intValue());
amount.setCurrency("CNY");
model.setAmount(amount);
R<Map<String, Object>> orderR = wxPaymentClient.refundOrderR(model);
if (200 == orderR.getCode()) {
- tChargingOrder.setRefundStatus(2);
- tChargingOrder.setRefundAmount((tChargingOrder.getRefundAmount() == null ? BigDecimal.valueOf(0) : tChargingOrder.getRefundAmount()).add(payOrderQueryDto.getRefundAmount()));
- shoppingOrderService.updateById(tChargingOrder);
- shoppingOrderRefundService.save(chargingOrderRefund);
+ shoppingOrder.setRefundStatus(2);
+ shoppingOrder.setRefundAmount((shoppingOrder.getRefundAmount() == null ? BigDecimal.valueOf(0) : shoppingOrder.getRefundAmount()).add(payOrderQueryDto.getRefundAmount()));
+ shoppingOrderService.updateById(shoppingOrder);
+ shoppingOrderRefundService.save(shoppingOrderRefund);
//手续费
Map<String, Object> amount1 = (Map<String, Object>) orderR.getData().get("amount");
Object refund_fee1 = amount1.get("refund_fee");
BigDecimal refund_fee = new BigDecimal(null == refund_fee1 ? "0" : refund_fee1.toString()).divide(new BigDecimal(100));
- chargingOrderRefund.setRefundFee(refund_fee);
- shoppingOrderRefundService.updateById(chargingOrderRefund);
+ shoppingOrderRefund.setRefundFee(refund_fee);
+ shoppingOrderRefundService.updateById(shoppingOrderRefund);
}
}
- if (2 == tChargingOrder.getPaymentType()) {
+ if (2 == shoppingOrder.getPaymentType()) {
RefundReq dto = new RefundReq();
- dto.setOutTradeNo(tChargingOrder.getCode());
- dto.setOutRequestNo(tChargingOrder.getCode());
+ dto.setOutTradeNo(shoppingOrder.getCode());
+ dto.setOutRequestNo(shoppingOrder.getCode());
dto.setRefundAmount(payOrderQueryDto.getRefundAmount().toString());
dto.setRefundReason("取消订单");
RefundResp resp = aliPaymentClient.refund(dto).getData();
if (null != resp) {
- tChargingOrder.setRefundStatus(2);
- tChargingOrder.setRefundAmount((tChargingOrder.getRefundAmount() == null ? BigDecimal.valueOf(0) : tChargingOrder.getRefundAmount()).add(payOrderQueryDto.getRefundAmount()));
- shoppingOrderService.updateById(tChargingOrder);
- shoppingOrderRefundService.save(chargingOrderRefund);
+ shoppingOrder.setRefundStatus(2);
+ shoppingOrder.setRefundAmount((shoppingOrder.getRefundAmount() == null ? BigDecimal.valueOf(0) : shoppingOrder.getRefundAmount()).add(payOrderQueryDto.getRefundAmount()));
+ shoppingOrderService.updateById(shoppingOrder);
+ shoppingOrderRefundService.save(shoppingOrderRefund);
}
}
// if(3 == tChargingOrder.getPaymentType()){
@@ -3076,65 +3054,65 @@
}
if (payOrderQueryDto.getType() == 3) {
- TVipOrder tChargingOrder = vipOrderService.getById(payOrderQueryDto.getOrderId());
- if (tChargingOrder.getPaymentAmount().compareTo(payOrderQueryDto.getRefundAmount()) == -1) {
+ TVipOrder vipOrder = vipOrderService.getById(payOrderQueryDto.getOrderId());
+ if (vipOrder.getPaymentAmount().compareTo(payOrderQueryDto.getRefundAmount()) == -1) {
return R.fail("退款金额需小于支付金额");
}
- TVipOrderRefund chargingOrderRefund = new TVipOrderRefund();
- chargingOrderRefund.setVipOrderId(tChargingOrder.getId());
- chargingOrderRefund.setRefundAmount(payOrderQueryDto.getRefundAmount());
- chargingOrderRefund.setRefundStatus(1);
- chargingOrderRefund.setPayType(tChargingOrder.getPaymentType());
- chargingOrderRefund.setRefundTime(LocalDateTime.now());
- chargingOrderRefund.setCode(tChargingOrder.getCode());
+ TVipOrderRefund vipOrderRefund = new TVipOrderRefund();
+ vipOrderRefund.setVipOrderId(vipOrder.getId());
+ vipOrderRefund.setRefundAmount(payOrderQueryDto.getRefundAmount());
+ vipOrderRefund.setRefundStatus(1);
+ vipOrderRefund.setPayType(vipOrder.getPaymentType());
+ vipOrderRefund.setRefundTime(LocalDateTime.now());
+ vipOrderRefund.setCode(vipOrder.getCode());
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS");
- chargingOrderRefund.setRefundCode("GDF" + sdf.format(new Date()) + (Double.valueOf(Math.random() * 1000).intValue()));
- chargingOrderRefund.setRefundTitle("后台退款");
- chargingOrderRefund.setRefundContent("后台退款");
- chargingOrderRefund.setRefundReason("后台退款");
- chargingOrderRefund.setRefundRemark(payOrderQueryDto.getRemark());
- chargingOrderRefund.setRefundTotalAmount(tChargingOrder.getRefundAmount().add(payOrderQueryDto.getRefundAmount()));
- chargingOrderRefund.setPayAmount(tChargingOrder.getPaymentAmount());
+ vipOrderRefund.setRefundCode("HYF" + sdf.format(new Date()) + (Double.valueOf(Math.random() * 1000).intValue()));
+ vipOrderRefund.setRefundTitle("后台退款");
+ vipOrderRefund.setRefundContent("后台退款");
+ vipOrderRefund.setRefundReason("后台退款");
+ vipOrderRefund.setRefundRemark(payOrderQueryDto.getRemark());
+ vipOrderRefund.setRefundTotalAmount(vipOrder.getRefundAmount().add(payOrderQueryDto.getRefundAmount()));
+ vipOrderRefund.setPayAmount(vipOrder.getPaymentAmount());
- if (1 == tChargingOrder.getPaymentType()) {
+ if (1 == vipOrder.getPaymentType()) {
WxPaymentRefundModel model = new WxPaymentRefundModel();
- model.setOut_trade_no(tChargingOrder.getCode());
- model.setOut_refund_no(chargingOrderRefund.getRefundCode());
- model.setTransaction_id(tChargingOrder.getSerialNumber());
+ model.setOut_trade_no(vipOrder.getCode());
+ model.setOut_refund_no(vipOrderRefund.getRefundCode());
+ model.setTransaction_id(vipOrder.getSerialNumber());
model.setReason("取消订单");
- model.setNotify_url("/order/t-shopping-order/cancelShoppingOrderWxRefund");
+ model.setNotify_url("/payment/wx/refund/notify");
WxPaymentRefundModel.RefundAmount amount = new WxPaymentRefundModel.RefundAmount();
amount.setRefund(payOrderQueryDto.getRefundAmount().multiply(new BigDecimal(100)).intValue());
- amount.setTotal(tChargingOrder.getPaymentAmount().multiply(new BigDecimal(100)).intValue());
+ amount.setTotal(vipOrder.getPaymentAmount().multiply(new BigDecimal(100)).intValue());
amount.setCurrency("CNY");
model.setAmount(amount);
R<Map<String, Object>> orderR = wxPaymentClient.refundOrderR(model);
if (200 == orderR.getCode()) {
- tChargingOrder.setRefundStatus(2);
- tChargingOrder.setRefundAmount((tChargingOrder.getRefundAmount() == null ? BigDecimal.valueOf(0) : tChargingOrder.getRefundAmount()).add(payOrderQueryDto.getRefundAmount()));
- vipOrderService.updateById(tChargingOrder);
- vipOrderRefundService.save(chargingOrderRefund);
+ vipOrder.setRefundStatus(2);
+ vipOrder.setRefundAmount((vipOrder.getRefundAmount() == null ? BigDecimal.valueOf(0) : vipOrder.getRefundAmount()).add(payOrderQueryDto.getRefundAmount()));
+ vipOrderService.updateById(vipOrder);
+ vipOrderRefundService.save(vipOrderRefund);
//手续费
Map<String, Object> amount1 = (Map<String, Object>) orderR.getData().get("amount");
Object refund_fee1 = amount1.get("refund_fee");
BigDecimal refund_fee = new BigDecimal(null == refund_fee1 ? "0" : refund_fee1.toString()).divide(new BigDecimal(100));
- chargingOrderRefund.setRefundFee(refund_fee);
- vipOrderRefundService.updateById(chargingOrderRefund);
+ vipOrderRefund.setRefundFee(refund_fee);
+ vipOrderRefundService.updateById(vipOrderRefund);
}
}
- if (2 == tChargingOrder.getPaymentType()) {
+ if (2 == vipOrder.getPaymentType()) {
RefundReq dto = new RefundReq();
- dto.setOutTradeNo(tChargingOrder.getCode());
- dto.setOutRequestNo(tChargingOrder.getCode());
+ dto.setOutTradeNo(vipOrder.getCode());
+ dto.setOutRequestNo(vipOrder.getCode());
dto.setRefundAmount(payOrderQueryDto.getRefundAmount().toString());
dto.setRefundReason("取消订单");
RefundResp resp = aliPaymentClient.refund(dto).getData();
if (null != resp) {
- tChargingOrder.setRefundStatus(2);
- tChargingOrder.setRefundAmount((tChargingOrder.getRefundAmount() == null ? BigDecimal.valueOf(0) : tChargingOrder.getRefundAmount()).add(payOrderQueryDto.getRefundAmount()));
- vipOrderService.updateById(tChargingOrder);
- vipOrderRefundService.save(chargingOrderRefund);
+ vipOrder.setRefundStatus(2);
+ vipOrder.setRefundAmount((vipOrder.getRefundAmount() == null ? BigDecimal.valueOf(0) : vipOrder.getRefundAmount()).add(payOrderQueryDto.getRefundAmount()));
+ vipOrderService.updateById(vipOrder);
+ vipOrderRefundService.save(vipOrderRefund);
}
}
// if(3 == tChargingOrder.getPaymentType()){
@@ -4104,6 +4082,8 @@
AccountingStrategyDetailOrder accountingStrategyDetailOrder = new AccountingStrategyDetailOrder();
BeanUtils.copyProperties(tAccountingStrategyDetail, accountingStrategyDetailOrder);
accountingStrategyDetailOrder.setChargingOrderId(chargingOrder.getId());
+ accountingStrategyDetailOrder.setCreateTime(LocalDateTime.now());
+ accountingStrategyDetailOrder.setDelFlag(false);
list1.add(accountingStrategyDetailOrder);
}
accountingStrategyDetailOrderService.saveBatch(list1);
@@ -4138,9 +4118,11 @@
// scheduler.shutdown();
// }
// }, 5, 1, TimeUnit.SECONDS);
-
- //推送三方平台订单状态
- tcecClient.notificationEquipChargeStatus(chargingOrder.getStartChargeSeq(), chargingOrder.getOperatorId());
+ Site site = siteClient.getSiteByIds(Arrays.asList(chargingOrder.getSiteId())).getData().get(0);
+ if(1 == site.getIsOpenSynchronization()){
+ //推送三方平台订单状态
+ tcecClient.notificationEquipChargeStatus(chargingOrder.getStartChargeSeq(), chargingOrder.getOperatorId());
+ }
return R.ok();
}
@@ -4153,12 +4135,16 @@
*/
@Override
public R tripartitePlatformStopCharge(String startChargeSeq) {
+ log.info("三方平台请求停止充电:" + startChargeSeq);
TChargingOrder order = this.getOne(new LambdaQueryWrapper<TChargingOrder>().eq(TChargingOrder::getStartChargeSeq, startChargeSeq));
Integer status = order.getStatus();
+ String code1 = order.getCode();
if (status != 3) {
+ log.info("【" + code1 + "】三方平台请求停止充电失败:还未开始充电");
return R.fail("还未开始充电");
}
if (status == 4 || status == 5) {
+ log.info("【" + code1 + "】三方平台请求停止充电:不能重复操作");
return R.fail("不能重复操作");
}
TChargingOrder chargingOrder = new TChargingOrder();
@@ -4168,9 +4154,10 @@
chargingOrder.setStatus(4);
chargingOrder.setEndMode(1);
this.updateById(chargingOrder);
- tcecClient.notificationEquipChargeStatus(order.getStartChargeSeq(), order.getOperatorId());
-
- String code1 = order.getCode();
+ Site site = siteClient.getSiteByIds(Arrays.asList(order.getSiteId())).getData().get(0);
+ if(1 == site.getIsOpenSynchronization()){
+ tcecClient.notificationEquipChargeStatus(order.getStartChargeSeq(), order.getOperatorId());
+ }
TChargingGun chargingGun = chargingGunClient.getChargingGunById(order.getChargingGunId()).getData();
//异步线程处理停机
ExecutorService cachedThreadPool = Executors.newFixedThreadPool(1);
@@ -4180,8 +4167,9 @@
PlatformStopCharging platformStopCharging = new PlatformStopCharging();
platformStopCharging.setCharging_pile_code(chargingPile.getCode());
platformStopCharging.setCharging_gun_code(chargingGun.getCode());
+ log.info("【" + code1 + "】三方平台请求停止充电发起消息:" + JSON.toJSONString(platformStopCharging));
sendMessageClient.platformStopCharging(platformStopCharging);
- log.info(code1 + ":-------------------远程停止充电请求-------------------");
+ log.info("【" + code1 + "】三方平台请求停止充电发起消息结束");
log.info(platformStopCharging.toString());
});
return R.ok();
@@ -4218,11 +4206,10 @@
@Override
public R pushOrderInfo(String code) {
TChargingOrder chargingOrder = this.getOne(new LambdaQueryWrapper<TChargingOrder>().eq(TChargingOrder::getCode, code));
- tcecClient.notificationEquipChargeStatus(chargingOrder.getStartChargeSeq(), chargingOrder.getOperatorId());
- tcecClient.notificationStopChargeResult(chargingOrder.getStartChargeSeq(), chargingOrder.getChargingGunId().toString(),
- chargingOrder.getOperatorId());
- tcecClient.notificationChargeOrderInfo(chargingOrder.getStartChargeSeq(), chargingOrder.getOperatorId());
- return R.ok();
+// tcecClient.notificationEquipChargeStatus(chargingOrder.getStartChargeSeq(), chargingOrder.getOperatorId());
+// tcecClient.notificationStopChargeResult(chargingOrder.getStartChargeSeq(), chargingOrder.getChargingGunId().toString(),
+// chargingOrder.getOperatorId());
+ return tcecClient.notificationChargeOrderInfo(chargingOrder.getStartChargeSeq(), chargingOrder.getOperatorId());
}
@@ -4324,9 +4311,10 @@
}
@Override
- public BigDecimal getSumDegreeBySiteIds(List<Integer> siteIds) {
-
- return this.baseMapper.getSumDegreeBySiteIds(siteIds);
+ public Double getSumDegreeBySiteIds(List<Integer> siteIds) {
+ Double sumDegreeBySiteIds = this.baseMapper.getSumDegreeBySiteIds(siteIds);
+
+ return sumDegreeBySiteIds;
}
@@ -4362,4 +4350,13 @@
public List<TChargingOrder> findChargingOrder() {
return this.baseMapper.findChargingOrder();
}
+
+ /**
+ * 获取已结束的数据
+ * @return
+ */
+ @Override
+ public List<TChargingOrder> findEndChargingOrder() {
+ return this.baseMapper.findEndChargingOrder();
+ }
}
--
Gitblit v1.7.1