Pu Zhibing
3 天以前 50dde470ec18f292e8e58547ef1c4a4cbd4138b2
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);
@@ -1531,6 +1532,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 +1605,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 +1793,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 +2288,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 +2502,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 +2548,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 +2570,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 +2585,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 +2610,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 +2630,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);
         }
         
         //添加积分
@@ -2917,7 +2886,6 @@
            tChargingOrder.setStatus(5);
         }
         
         TChargingOrderRefund chargingOrderRefund = new TChargingOrderRefund();
         chargingOrderRefund.setChargingOrderId(tChargingOrder.getId());
         chargingOrderRefund.setRefundAmount(payOrderQueryDto.getRefundAmount());
@@ -2926,7 +2894,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 +2908,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 +2961,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 +3044,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 +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);
@@ -4218,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();
   }
@@ -4363,4 +4333,13 @@
   public List<TChargingOrder> findChargingOrder() {
      return this.baseMapper.findChargingOrder();
   }
   /**
    * 获取已结束的数据
    * @return
    */
   @Override
   public List<TChargingOrder> findEndChargingOrder() {
      return this.baseMapper.findEndChargingOrder();
   }
}