Pu Zhibing
2025-03-06 1b81b84edaeea9b200c622e4a34c49b4b1aaac92
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java
@@ -648,21 +648,19 @@
                  long times = rechargeAmount1.divide(s_total_amount, 0, RoundingMode.DOWN).longValue();
                  if(times > m){
                     //充电时间跨度两个计费策略,需要继续对下一个策略进行计算
                     serviceCharge = s_server_amount.multiply(new BigDecimal(m));
                     serviceCharge = serviceCharge.add(s_server_amount.multiply(new BigDecimal(m)));
                     rechargeAmount1 = rechargeAmount1.subtract(s_total_amount.multiply(new BigDecimal(m)));
                     if(null != discount){
                        discountAmount = discountAmount.add(serviceCharge.multiply(new BigDecimal(1).subtract(discount)));
                     }
                     nowTimeMillis = null;
                  }else{
                     serviceCharge = s_server_amount.multiply(new BigDecimal(times));
                     if(null != discount){
                        discountAmount = discountAmount.add(serviceCharge.multiply(new BigDecimal(1).subtract(discount)));
                     }
                     serviceCharge = serviceCharge.add(s_server_amount.multiply(new BigDecimal(times)));
                     break;
                  }
               }
            }
            if(null != discount){
               discountAmount = serviceCharge.multiply(new BigDecimal(1).subtract(discount));
            }
            if(discountAmount.compareTo(BigDecimal.ZERO) >= 0){
               //计算会员最大优惠金额
               TVip vip = vipClient.getInfo1(appUser.getVipId()).getData();
@@ -673,9 +671,12 @@
               }
            }
            discountAmount = discountAmount.setScale(4, RoundingMode.HALF_EVEN);
            if(discountAmount.compareTo(BigDecimal.ZERO) >= 0){
               data.setChargeNum(data.getChargeNum() - 1);
               appUserVipDetailClient.updateAppUserVipDetail(data);
            }
         }
      }
      
      //机子上显示的金额为用户充值的金额+会员折扣金额
      BigDecimal account_balance = chargingOrder.getRechargeAmount().add(discountAmount).setScale(4, RoundingMode.HALF_EVEN);
@@ -924,6 +925,18 @@
               BigDecimal refund_fee = new BigDecimal(null == refund_fee1 ? "0" : refund_fee1.toString()).divide(new BigDecimal(100));
               chargingOrderRefund.setRefundFee(refund_fee);
               chargingOrderRefundService.updateById(chargingOrderRefund);
               //回退会员折扣次数
               if(chargingOrder.getVipDiscountAmount().compareTo(BigDecimal.ZERO) > 0){
                  TAppUser appUser = appUserClient.getUserById(chargingOrder.getAppUserId()).getData();
                  GetAppUserVipDetail getAppUserVipDetail = new GetAppUserVipDetail();
                  getAppUserVipDetail.setAppUserId(chargingOrder.getAppUserId());
                  getAppUserVipDetail.setVipId(appUser.getVipId());
                  TAppUserVipDetail data = appUserVipDetailClient.getAppUserVipDetail(getAppUserVipDetail).getData();
                  if(null != data){
                     data.setChargeNum(data.getChargeNum() + 1);
                     appUserVipDetailClient.updateAppUserVipDetail(data);
                  }
               }
            }
         }
         if(2 == rechargePaymentType){
@@ -935,6 +948,19 @@
            RefundResp resp = aliPaymentClient.refund(dto).getData();
            if(null != resp){
               chargingOrderRefundService.save(chargingOrderRefund);
               //回退会员折扣次数
               if(chargingOrder.getVipDiscountAmount().compareTo(BigDecimal.ZERO) > 0){
                  TAppUser appUser = appUserClient.getUserById(chargingOrder.getAppUserId()).getData();
                  GetAppUserVipDetail getAppUserVipDetail = new GetAppUserVipDetail();
                  getAppUserVipDetail.setAppUserId(chargingOrder.getAppUserId());
                  getAppUserVipDetail.setVipId(appUser.getVipId());
                  TAppUserVipDetail data = appUserVipDetailClient.getAppUserVipDetail(getAppUserVipDetail).getData();
                  if(null != data){
                     data.setChargeNum(data.getChargeNum() + 1);
                     appUserVipDetailClient.updateAppUserVipDetail(data);
                  }
               }
               try {
                  Thread.sleep(1000);
               } catch (InterruptedException e) {
@@ -1244,7 +1270,6 @@
      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;
@@ -1311,14 +1336,12 @@
      List<ChargingOrderVO> list1 = this.baseMapper.chargingOrder(pageInfo1,dto,startTime1,startTime2,endTime1,endTime2);
       BigDecimal total = new BigDecimal("0");
       long time = 0L;
       BigDecimal income = new BigDecimal("0");
       BigDecimal electronicMoney = new BigDecimal("0");
       BigDecimal serviceMoney = new BigDecimal("0");
       BigDecimal commissionMoney = new BigDecimal("0");
       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>());
      List<TChargingOrderAccountingStrategy> list3 = chargingOrderAccountingStrategyService.list();
      for (ChargingOrderVO chargingOrderVO : list) {
         if (roleType == 2){
@@ -1327,8 +1350,8 @@
               List<Boolean> t1= partnerClient.getChargingOrderMenu(sysUser.getObjectId(),siteId).getData();
               chargingOrderVO.setAuthRecord(t1.get(0));
            }
         }
         chargingOrderVO.setSharingAmount(chargingOrderVO.getServiceCharge()!=null?chargingOrderVO.getServiceCharge().multiply(new BigDecimal("0.2")).setScale(2,BigDecimal.ROUND_DOWN):new BigDecimal("0"));
         chargingOrderVO.setCommissionAmount(chargingOrderVO.getRechargeAmount()!=null?chargingOrderVO.getRechargeAmount().multiply(new BigDecimal("0.006")):new BigDecimal("0"));
         chargingOrderVO.setPlatFormMoney(chargingOrderVO.getRechargeAmount()!=null?chargingOrderVO.getRechargeAmount().multiply(new BigDecimal("0.006")).setScale(2,BigDecimal.ROUND_DOWN):new BigDecimal("0"));
         chargingOrderVO.setUid(chargingOrderVO.getId()+"");
@@ -1376,14 +1399,16 @@
      }
      List<Long> orderIds = list1.stream().map(TChargingOrder::getId).collect(Collectors.toList());
      if(orderIds.isEmpty())orderIds.add(-1L);
      List<TChargingOrderRefund> chargingOrderRefunds = chargingOrderRefundService.lambdaQuery()
            .in(TChargingOrderRefund::getChargingOrderId, orderIds)
            .eq(TChargingOrderRefund::getRefundStatus,2).list();
      for (ChargingOrderVO chargingOrderVO : list1) {
         paymentMoney= paymentMoney.add(chargingOrderVO.getPaymentAmount()!=null?chargingOrderVO.getPaymentAmount():new BigDecimal("0"));
         if (!chargingOrderVO.getOrderSource().equals(2)) {
            paymentMoney = paymentMoney.add(chargingOrderVO.getPaymentAmount() != null ? chargingOrderVO.getPaymentAmount() : new BigDecimal("0"));
         }else{
            paymentMoney = paymentMoney.add(chargingOrderVO.getServiceCharge() != null ? chargingOrderVO.getServiceCharge().multiply(new BigDecimal("0.2")).setScale(2, BigDecimal.ROUND_DOWN) : new BigDecimal("0"));
         }
         if (chargingOrderVO.getRechargeAmount()!=null){
            commissionMoney = commissionMoney.add(chargingOrderVO.getRechargeAmount().multiply(new BigDecimal("0.006")).setScale(2,BigDecimal.ROUND_DOWN));
         }
@@ -1403,7 +1428,11 @@
               refundMoney = refundMoney.add(tChargingOrderRefund.getRefundTotalAmount());
         }
         electronicMoney = electronicMoney.add(chargingOrderVO.getElectrovalence()!=null?chargingOrderVO.getElectrovalence():new BigDecimal("0"));
         serviceMoney = serviceMoney.add(chargingOrderVO.getServiceCharge()!=null?chargingOrderVO.getServiceCharge():new BigDecimal("0"));
         if (!chargingOrderVO.getOrderSource().equals(2)){
            serviceMoney = serviceMoney.add(chargingOrderVO.getServiceCharge()!=null?chargingOrderVO.getServiceCharge():new BigDecimal("0"));
         }else{
            serviceMoney = serviceMoney.add(chargingOrderVO.getServiceCharge()!=null?chargingOrderVO.getServiceCharge().multiply(new BigDecimal("0.2")).setScale(2,BigDecimal.ROUND_DOWN):new BigDecimal("0"));
         }
      }
      tCharingOrderVO.setTotal(total);
      tCharingOrderVO.setTime(time);
@@ -1491,6 +1520,8 @@
   @Resource
   private SysUserClient sysUserClient;
   @Override
   public ChargingOrderTimeVO chargingList(ChargingListQuery dto) {
      String startTime1 = null;
@@ -1689,7 +1720,13 @@
                  "0"+"%(平)/"+
                  "0"+"%(谷)");
         }
         if (chargingOrderListVO.getOrderSource().equals(2)){
            chargingOrderListVO.setSharingAmount(chargingOrderListVO.getServiceCharge()!=null?
                  chargingOrderListVO.getServiceCharge().multiply(new BigDecimal("0.2")).setScale(2,BigDecimal.ROUND_HALF_UP)
                  :new BigDecimal("0"));
         }else{
            chargingOrderListVO.setSharingAmount(new BigDecimal("0"));
         }
      }
      // 不分页
      PageInfo<ChargingOrderListVO> pageInfo1 = new PageInfo<>(1,999999999);
@@ -1741,39 +1778,78 @@
      BigDecimal feng = new BigDecimal("0");
      BigDecimal ping = new BigDecimal("0");
      BigDecimal gu = new BigDecimal("0");
      List<Long> collect = list1.stream().map(ChargingOrderListVO::getId).collect(Collectors.toList());
      List<TChargingOrderAccountingStrategy> chargingOrderAccountingStrategies = chargingOrderAccountingStrategyService.lambdaQuery()
            .in(TChargingOrderAccountingStrategy::getChargingOrderId,collect).list();
      List<TChargingOrderAccountingStrategy> chargingOrderAccountingStrategies = chargingOrderAccountingStrategyService.list();
      for (ChargingOrderListVO chargingOrderListVO : list1) {
         if (chargingOrderListVO.getChargingCapacity()!=null)electronic = electronic.add(chargingOrderListVO.getElectricity());
         if (chargingOrderListVO.getPaymentAmount()!=null)paymentAmount = paymentAmount.add(chargingOrderListVO.getPaymentAmount());
         if (chargingOrderListVO.getPaymentAmount()!=null){
            if (chargingOrderListVO.getOrderSource().equals(2)){
               paymentAmount = paymentAmount.add(chargingOrderListVO.getServiceCharge()!=null?chargingOrderListVO.getServiceCharge().multiply(new BigDecimal("0.2").setScale(2,BigDecimal.ROUND_HALF_UP)):new BigDecimal("0"));
            }else{
               paymentAmount = paymentAmount.add(chargingOrderListVO.getPaymentAmount());
            }
         }
         if (chargingOrderListVO.getElectrovalence()!=null)electrovalence = electrovalence.add(chargingOrderListVO.getElectrovalence());
         if (chargingOrderListVO.getServiceCharge()!=null)serviceCharge = serviceCharge.add(chargingOrderListVO.getServiceCharge());
         List<TChargingOrderAccountingStrategy> list2 = chargingOrderAccountingStrategies.stream().filter(e -> e.getChargingOrderId().equals(chargingOrderListVO.getId()))
               .collect(Collectors.toList());
         for (TChargingOrderAccountingStrategy temp : list2) {
            switch (temp.getType()){
               case 1:
                  if (temp.getChargingCapacity()!=null)jian = jian.add(temp.getChargingCapacity());
                  if (temp.getChargingCapacity()!=null)jianElectronic = jianElectronic.add(temp.getElectrovalence());
                  if (temp.getChargingCapacity()!=null)jianService = jianService.add(temp.getServiceCharge());
                  break;
               case 2:
                  if (temp.getChargingCapacity()!=null)feng = feng.add(temp.getChargingCapacity());
                  if (temp.getChargingCapacity()!=null)fengElectronic = fengElectronic.add(temp.getElectrovalence());
                  if (temp.getChargingCapacity()!=null)fengService = fengService.add(temp.getServiceCharge());
                  break;
               case 3:
                  if (temp.getChargingCapacity()!=null)ping = ping.add(temp.getChargingCapacity());
                  if (temp.getChargingCapacity()!=null)pingElectronic = pingElectronic.add(temp.getElectrovalence());
                  if (temp.getChargingCapacity()!=null)pingService = pingService.add(temp.getServiceCharge());
                  break;
               case 4:
                  if (temp.getChargingCapacity()!=null)gu = gu.add(temp.getChargingCapacity());
                  if (temp.getChargingCapacity()!=null)guElectronic = guElectronic.add(temp.getElectrovalence());
                  if (temp.getChargingCapacity()!=null)guService = guService.add(temp.getServiceCharge());
                  break;
         if (chargingOrderListVO.getServiceCharge()!=null){
            if (chargingOrderListVO.getOrderSource().equals(2)){
               serviceCharge = serviceCharge.add(chargingOrderListVO.getServiceCharge().multiply(new BigDecimal("0.2").setScale(2,BigDecimal.ROUND_HALF_UP)));
            }else{
               serviceCharge = serviceCharge.add(chargingOrderListVO.getServiceCharge());
            }
         }
         if (!chargingOrderListVO.getOrderSource().equals(2)){
            List<TChargingOrderAccountingStrategy> list2 = chargingOrderAccountingStrategies.stream().filter(e -> e.getChargingOrderId().equals(chargingOrderListVO.getId()))
                  .collect(Collectors.toList());
            for (TChargingOrderAccountingStrategy temp : list2) {
               switch (temp.getType()){
                  case 1:
                     if (temp.getChargingCapacity()!=null)jian = jian.add(temp.getChargingCapacity());
                     if (temp.getElectrovalence()!=null)jianElectronic = jianElectronic.add(temp.getElectrovalence());
                     if (temp.getServiceCharge()!=null)jianService = jianService.add(temp.getServiceCharge());
                     break;
                  case 2:
                     if (temp.getChargingCapacity()!=null)feng = feng.add(temp.getChargingCapacity());
                     if (temp.getElectrovalence()!=null)fengElectronic = fengElectronic.add(temp.getElectrovalence());
                     if (temp.getServiceCharge()!=null)fengService = fengService.add(temp.getServiceCharge());
                     break;
                  case 3:
                     if (temp.getChargingCapacity()!=null)ping = ping.add(temp.getChargingCapacity());
                     if (temp.getElectrovalence()!=null)pingElectronic = pingElectronic.add(temp.getElectrovalence());
                     if (temp.getServiceCharge()!=null)pingService = pingService.add(temp.getServiceCharge());
                     break;
                  case 4:
                     if (temp.getChargingCapacity()!=null)gu = gu.add(temp.getChargingCapacity());
                     if (temp.getElectrovalence()!=null)guElectronic = guElectronic.add(temp.getElectrovalence());
                     if (temp.getServiceCharge()!=null)guService = guService.add(temp.getServiceCharge());
                     break;
               }
            }
         }else{
            List<TChargingOrderAccountingStrategy> list2 = chargingOrderAccountingStrategies.stream().filter(e -> e.getChargingOrderId().equals(chargingOrderListVO.getId()))
                  .collect(Collectors.toList());
            for (TChargingOrderAccountingStrategy temp : list2) {
               switch (temp.getType()){
                  case 1:
                     if (temp.getChargingCapacity()!=null)jian = jian.add(temp.getChargingCapacity());
                     if (temp.getElectrovalence()!=null)jianElectronic = jianElectronic.add(temp.getElectrovalence());
                     if (temp.getServiceCharge()!=null)jianService = jianService.add(temp.getServiceCharge().multiply(new BigDecimal("0.2").setScale(2,BigDecimal.ROUND_HALF_UP)));
                     break;
                  case 2:
                     if (temp.getChargingCapacity()!=null)feng = feng.add(temp.getChargingCapacity());
                     if (temp.getElectrovalence()!=null)fengElectronic = fengElectronic.add(temp.getElectrovalence());
                     if (temp.getServiceCharge()!=null)fengService = fengService.add(temp.getServiceCharge().multiply(new BigDecimal("0.2").setScale(2,BigDecimal.ROUND_HALF_UP)));
                     break;
                  case 3:
                     if (temp.getChargingCapacity()!=null)ping = ping.add(temp.getChargingCapacity());
                     if (temp.getElectrovalence()!=null)pingElectronic = pingElectronic.add(temp.getElectrovalence());
                     if (temp.getServiceCharge()!=null)pingService = pingService.add(temp.getServiceCharge().multiply(new BigDecimal("0.2").setScale(2,BigDecimal.ROUND_HALF_UP)));
                     break;
                  case 4:
                     if (temp.getChargingCapacity()!=null)gu = gu.add(temp.getChargingCapacity());
                     if (temp.getElectrovalence()!=null)guElectronic = guElectronic.add(temp.getElectrovalence());
                     if (temp.getServiceCharge()!=null)guService = guService.add(temp.getServiceCharge().multiply(new BigDecimal("0.2").setScale(2,BigDecimal.ROUND_HALF_UP)));
                     break;
               }
            }
         }
      }
@@ -1782,28 +1858,29 @@
      chargingOrderTimeVO.setPaymentAmount(paymentAmount);
      chargingOrderTimeVO.setElectrovalence(electrovalence);
      chargingOrderTimeVO.setServiceCharge(serviceCharge);
      // 计算尖峰平谷充电量占比
      // 计算尖峰平谷充电到账占比
      BigDecimal add = jianElectronic.add(fengElectronic).add(pingElectronic).add(guElectronic);
      // 计算尖峰平谷服务费占比
      BigDecimal add1 = jianService.add(fengService).add(pingService).add(guService);
      // 计算尖峰平谷充电到账占比
      // 计算尖峰平谷充电量占比
      BigDecimal add2 = jian.add(feng).add(ping).add(gu);
      if (add.compareTo(new BigDecimal("0"))!=0){
         chargingOrderTimeVO.setCapacityProportion(jianElectronic+"度/"+fengElectronic+"度/"+pingElectronic+"度/"+guElectronic+"度-"
               +jianElectronic.divide(add,4,BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal("100"))+"%/"
               +fengElectronic.divide(add,4,BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal("100"))+"%/"
               +pingElectronic.divide(add,4,BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal("100"))+"%/"
               +guElectronic.divide(add,4,BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal("100"))+"%");
         chargingOrderTimeVO.setCapacityProportion(jian+"度/"+feng+"度/"+ping+"度/"+gu+"度-"
               +jian.divide(add2,4,BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal("100"))+"%/"
               +feng.divide(add2,4,BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal("100"))+"%/"
               +ping.divide(add2,4,BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal("100"))+"%/"
               +gu.divide(add2,4,BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal("100"))+"%");
         chargingOrderTimeVO.setServiceProportion(jianService+"元/"+fengService+"元/"+pingService+"元/"+guService+"元-"
               +jianService.divide(add1,4,BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal("100"))+"%/"
               +fengService.divide(add1,4,BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal("100"))+"%/"
               +pingService.divide(add1,4,BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal("100"))+"%/"
               +guService.divide(add1,4,BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal("100"))+"%");
         chargingOrderTimeVO.setElectronicProportion(jian+"元/"+feng+"元/"+ping+"元/"+gu+"元-"
               +jian.divide(add2,4,BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal("100"))+"%/"
               +feng.divide(add2,4,BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal("100"))+"%/"
               +ping.divide(add2,4,BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal("100"))+"%/"
               +gu.divide(add2,4,BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal("100"))+"%");
         chargingOrderTimeVO.setElectronicProportion(jianElectronic+"元/"+fengElectronic+"元/"+pingElectronic+"元/"+guElectronic+"元-"
               +jianElectronic.divide(add,4,BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal("100"))+"%/"
               +fengElectronic.divide(add,4,BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal("100"))+"%/"
               +pingElectronic.divide(add,4,BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal("100"))+"%/"
               +guElectronic.divide(add,4,BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal("100"))+"%");
      }else{
         chargingOrderTimeVO.setCapacityProportion(jianElectronic+"度/"+fengElectronic+"度/"+pingElectronic+"度/"+guElectronic+"度-"
               +"0"+"%/"
@@ -1933,7 +2010,12 @@
      chargingOrderListInfoVO.setUid(chargingOrder.getId().toString());
      chargingOrderListInfoVO.setCouponDiscountAmount(chargingOrder.getCouponDiscountAmount());
      chargingOrderListInfoVO.setVipDiscountAmount(chargingOrder.getVipDiscountAmount());
      chargingOrderListInfoVO.setSharingAmount(chargingOrder.getSharingAmount());
      if (chargingOrder.getOrderSource().equals(2)){
         chargingOrderListInfoVO.setSharingAmount(chargingOrder.getServiceCharge().multiply(new BigDecimal("0.2")).setScale(2, BigDecimal.ROUND_HALF_UP));
      }else{
         chargingOrderListInfoVO.setSharingAmount(chargingOrder.getSharingAmount());
      }
      // 查询费用明细列表
      List<TChargingOrderAccountingStrategy> list = chargingOrderAccountingStrategyService.lambdaQuery()
            .eq(TChargingOrderAccountingStrategy::getChargingOrderId, chargingOrder.getId())
@@ -2085,7 +2167,7 @@
               AccountingStrategyDetailOrderVo vo1 = new AccountingStrategyDetailOrderVo();
               BeanUtils.copyProperties(strategyDetail, vo1);
               vo1.setChargingCapacity(sharp_peak_charge);
               lists.add(vo1);
               lists.add(0, vo1);
            }
            
            //第二天的
@@ -2831,8 +2913,8 @@
         }
         // 累加分佣
         if (tChargingOrder.getSharingAmount()!=null) {
            sharingAmount = sharingAmount.add(tChargingOrder.getSharingAmount());
         if (tChargingOrder.getOrderSource()==2) {
            sharingAmount = sharingAmount.add(tChargingOrder.getServiceCharge().multiply(new BigDecimal("0.2")).setScale(2,BigDecimal.ROUND_DOWN));
         }
         // 累加电费
         if (tChargingOrder.getElectrovalence()!=null) {
@@ -2840,8 +2922,11 @@
         }
         // 累加服务费
         if (tChargingOrder.getServiceCharge()!=null){
            serviceCharge = serviceCharge.add(tChargingOrder.getServiceCharge());
            if (tChargingOrder.getOrderSource()==2) {
               serviceCharge = serviceCharge.add(tChargingOrder.getServiceCharge().multiply(new BigDecimal("0.2")).setScale(2,BigDecimal.ROUND_DOWN));
            }else{
               serviceCharge = serviceCharge.add(tChargingOrder.getServiceCharge());
            }
         }
         // 累加会员折扣
         if (tChargingOrder.getVipDiscountAmount()!=null){
@@ -3669,7 +3754,6 @@
      chargingOrder.setStatus(2);
      chargingOrder.setPayTime(LocalDateTime.now());
      chargingOrder.setChargeAmount(chargingOrder.getRechargeAmount());
      chargingOrder.setVipDiscountAmount(BigDecimal.ZERO);
      this.save(chargingOrder);
      
      Integer accountingStrategyId = tChargingGun.getAccountingStrategyId();