Pu Zhibing
3 天以前 082b9ab8643bc5e81f2e70b8e9400fdaba62e686
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;
@@ -1826,9 +1825,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 +2320,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 +2534,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 +2580,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 +2602,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,13 +2617,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()) {
@@ -2642,9 +2642,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();
@@ -4218,9 +4218,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();
   }