From 9bc378e6bb9b4563a0dec222e1c2d5d3278632cb Mon Sep 17 00:00:00 2001 From: Pu Zhibing <393733352@qq.com> Date: 星期三, 17 九月 2025 17:41:54 +0800 Subject: [PATCH] 修改bug --- ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java | 152 +++++++++++++++++++++----------------------------- 1 files changed, 63 insertions(+), 89 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 d956b76..88b4cf1 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); @@ -940,7 +941,7 @@ chargingGun.setStatus(4); chargingGunClient.updateChargingGunById(chargingGun); //推送状态给三方平台 - tcecClient.pushChargingGunStatus(chargingGun.getFullNumber(), chargingGun.getStatus()); + tcecClient.pushChargingGunStatus(chargingGun.getFullNumber(), 4); } redisService.setCacheObject("AQJC_" + order.getChargingGunId(), preChargeCheck1, 24L, TimeUnit.HOURS); this.updateById(order); @@ -1289,12 +1290,6 @@ sendMessageClient.platformStopCharging(platformStopCharging); log.info(code1 + ":-------------------远程停止充电请求-------------------"); log.info(platformStopCharging.toString()); - - //推送监管平台订单状态和订单详情 - ChargingOrderVo chargingOrderVo = new ChargingOrderVo(); - BeanUtils.copyProperties(order, chargingOrderVo); - chargingMessageClient.pushOrderInfo(chargingOrderVo); - chargingMessageClient.pushOrderStatus(chargingOrderVo); }); //推送三方平台 if (2 == order.getOrderSource()) { @@ -1609,42 +1604,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")); @@ -1832,9 +1792,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) { @@ -2329,6 +2287,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(); @@ -2539,31 +2501,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)); } //计算优惠券 @@ -2588,9 +2547,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) { @@ -2610,8 +2569,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()); } } @@ -2625,13 +2584,15 @@ 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()); //推送三方平台 if (2 == chargingOrder.getOrderSource()) { @@ -2648,9 +2609,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(); @@ -2668,9 +2629,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()); + tcecClient.pushChargingGunStatus(chargingGun.getFullNumber(), 2); } //添加积分 @@ -2807,6 +2769,12 @@ summaryData.setElectricPrice(electronic_reduce.setScale(2, BigDecimal.ROUND_HALF_EVEN)); summaryData.setServicePrice(serviceMoney.setScale(2, BigDecimal.ROUND_HALF_EVEN)); chargingOrderSummaryDataService.save(summaryData); + + //推送监管平台订单状态和订单详情 + ChargingOrderVo chargingOrderVo = new ChargingOrderVo(); + BeanUtils.copyProperties(chargingOrder, chargingOrderVo); + chargingMessageClient.pushOrderInfo(chargingOrderVo); + chargingMessageClient.pushOrderStatus(chargingOrderVo); } catch (Exception e) { e.printStackTrace(); } finally { @@ -4104,6 +4072,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); @@ -4183,12 +4153,6 @@ sendMessageClient.platformStopCharging(platformStopCharging); log.info(code1 + ":-------------------远程停止充电请求-------------------"); log.info(platformStopCharging.toString()); - - //推送监管平台订单状态和订单详情 - ChargingOrderVo chargingOrderVo = new ChargingOrderVo(); - BeanUtils.copyProperties(chargingOrder, chargingOrderVo); - chargingMessageClient.pushOrderInfo(chargingOrderVo); - chargingMessageClient.pushOrderStatus(chargingOrderVo); }); return R.ok(); } @@ -4224,9 +4188,9 @@ @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.notificationEquipChargeStatus(chargingOrder.getStartChargeSeq(), chargingOrder.getOperatorId()); +// tcecClient.notificationStopChargeResult(chargingOrder.getStartChargeSeq(), chargingOrder.getChargingGunId().toString(), +// chargingOrder.getOperatorId()); tcecClient.notificationChargeOrderInfo(chargingOrder.getStartChargeSeq(), chargingOrder.getOperatorId()); return R.ok(); } @@ -4330,9 +4294,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; } @@ -4368,4 +4333,13 @@ public List<TChargingOrder> findChargingOrder() { return this.baseMapper.findChargingOrder(); } + + /** + * 获取已结束的数据 + * @return + */ + @Override + public List<TChargingOrder> findEndChargingOrder() { + return this.baseMapper.findEndChargingOrder(); + } } -- Gitblit v1.7.1