Pu Zhibing
2025-04-17 64d91e3c3414b928254d36c6a2c9cb0dd7262dcf
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java
@@ -731,7 +731,7 @@
         Integer counter = counter_map.get(code);
         PreChargeCheck preChargeCheck1 = redisService.getCacheObject(key);
         //5分钟内还未插枪则取消充电,退回金额。
         if(failure_cause == 5 && (null == counter || counter < 300)){
         if(failure_cause == 5 && (null == counter || counter < 1800)){
            counter = (null == counter ? 0 : counter) + 1;
            counter_map.put(code, counter);
            //启动失败
@@ -772,7 +772,7 @@
         log.info(code + ":-------------------未上传开启充电结果-------------------" + counter);
         PreChargeCheck preChargeCheck1 = redisService.getCacheObject(key);
         //5分钟内未启动成功,退回金额。
         if(null == counter || counter < 300){
         if(null == counter || counter < 1800){
            counter = (null == counter ? 0 : counter) + 1;
            boot_failed_map.put(code, counter);
            //启动失败
@@ -1287,7 +1287,6 @@
         endTime2 = split[1];
      }
      PageInfo<ChargingOrderVO> pageInfo = new PageInfo<>(dto.getPageCurr(),dto.getPageSize());
      PageInfo<ChargingOrderVO> pageInfo1 = new PageInfo<>(1,999999999);
      if (StringUtils.hasLength(dto.getPhone())){
         List<Long> data = appUserClient.getUserIdsByPhone(dto.getPhone()).getData();
@@ -1333,7 +1332,14 @@
      if (siteIds.isEmpty())siteIds.add(-1);
      dto.setSiteIds(siteIds);
      List<ChargingOrderVO> list = this.baseMapper.chargingOrder(pageInfo,dto,startTime1,startTime2,endTime1,endTime2);
      List<ChargingOrderVO> list1 = this.baseMapper.chargingOrder(pageInfo1,dto,startTime1,startTime2,endTime1,endTime2);
      List<ChargingOrderVO> list1 = this.baseMapper.chargingOrderNolimit(dto,startTime1,startTime2,endTime1,endTime2);
       BigDecimal total = new BigDecimal("0");
       long time = 0L;
       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<TChargingOrderAccountingStrategy> list3 = chargingOrderAccountingStrategyService.list();
      for (ChargingOrderVO chargingOrderVO : list) {
@@ -1402,13 +1408,13 @@
      List<TChargingOrderRefund> chargingOrderRefunds = chargingOrderRefundService.lambdaQuery()
            .eq(TChargingOrderRefund::getRefundStatus,2).list();
       BigDecimal total = new BigDecimal("0");
       long time = 0L;
       BigDecimal electronicMoney = new BigDecimal("0");
       BigDecimal serviceMoney = new BigDecimal("0");
       BigDecimal refundMoney = new BigDecimal("0");
       BigDecimal paymentMoney = new BigDecimal("0");
//       BigDecimal total = new BigDecimal("0");
//       long time = 0L;
//       BigDecimal electronicMoney = new BigDecimal("0");
//       BigDecimal serviceMoney = new BigDecimal("0");
//       BigDecimal refundMoney = new BigDecimal("0");
//       BigDecimal paymentMoney = new BigDecimal("0");
      for (ChargingOrderVO chargingOrderVO : list1) {
         if(null == chargingOrderVO.getStatus() || 5 != chargingOrderVO.getStatus()){
            continue;
@@ -1493,8 +1499,8 @@
   }
   @Override
   public Map<String, Object> countAll(LocalDateTime sixBefore,List<Integer> siteIds) {
      return this.baseMapper.countAll(sixBefore,siteIds);
   public Map<String, Object> countAll(List<Integer> siteIds) {
      return this.baseMapper.countAll(siteIds);
   }
   @Override
@@ -1813,48 +1819,24 @@
            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());
                     }
                     jian = jian.add(temp.getChargingCapacity());
                     jianElectronic = jianElectronic.add(temp.getPeriodElectricPrice()).add(temp.getPeriodServicePrice());
                     jianService = jianService.add(temp.getPeriodServicePrice());
                     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());
                     }
                     feng = feng.add(temp.getChargingCapacity());
                     fengElectronic = fengElectronic.add(temp.getPeriodElectricPrice()).add(temp.getPeriodServicePrice());
                     fengService = fengService.add(temp.getPeriodServicePrice());
                     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());
                     }
                     ping = ping.add(temp.getChargingCapacity());
                     pingElectronic = pingElectronic.add(temp.getPeriodElectricPrice()).add(temp.getPeriodServicePrice());
                     pingService = pingService.add(temp.getPeriodServicePrice());
                     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());
                     }
                     gu = gu.add(temp.getChargingCapacity());
                     guElectronic = guElectronic.add(temp.getPeriodElectricPrice()).add(temp.getPeriodServicePrice());
                     guService = guService.add(temp.getPeriodServicePrice());
                     break;
               }
            }
@@ -1862,50 +1844,27 @@
            List<TChargingOrderAccountingStrategy> list2 = chargingOrderAccountingStrategies.stream().filter(e -> e.getChargingOrderId().equals(chargingOrderListVO.getId()))
                  .collect(Collectors.toList());
            for (TChargingOrderAccountingStrategy temp : list2) {
               BigDecimal multiply = temp.getPeriodServicePrice().multiply(new BigDecimal("0.8"));
               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)));
                     }
                     jian = jian.add(temp.getChargingCapacity());
                     jianElectronic = jianElectronic.add(temp.getPeriodElectricPrice()).add(multiply);
                     jianService = jianService.add(multiply);
                     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)));
                     }
                     feng = feng.add(temp.getChargingCapacity());
                     fengElectronic = fengElectronic.add(temp.getPeriodElectricPrice()).add(multiply);
                     fengService = fengService.add(multiply);
                     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)));
                     }
                     ping = ping.add(temp.getChargingCapacity());
                     pingElectronic = pingElectronic.add(temp.getPeriodElectricPrice()).add(multiply);
                     pingService = pingService.add(multiply);
                     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)));
                     }
                     gu = gu.add(temp.getChargingCapacity());
                     guElectronic = guElectronic.add(temp.getPeriodElectricPrice()).add(multiply);
                     guService = guService.add(multiply);
                     break;
               }
            }
@@ -1917,7 +1876,6 @@
      chargingOrderTimeVO.setElectrovalence(electrovalence.setScale(2, BigDecimal.ROUND_HALF_EVEN));
      chargingOrderTimeVO.setServiceCharge(serviceCharge.setScale(2, BigDecimal.ROUND_HALF_EVEN));
      // 计算尖峰平谷充电到账占比
      BigDecimal add = jianElectronic.add(fengElectronic).add(pingElectronic).add(guElectronic);
      // 计算尖峰平谷服务费占比
      BigDecimal add1 = jianService.add(fengService).add(pingService).add(guService);
@@ -2612,10 +2570,7 @@
      return this.baseMapper.queryPowerLevel(siteIds,statisticsQueryDto);
   }
   @Override
   public List<Map<String, Object>> queryOrderCountAndMoneyBySiteIdDate(List<Integer> siteIds) {
      return this.baseMapper.queryOrderCountAndMoneyBySiteIdDate(siteIds);
   }
   @Override
   public List<Map<String, Object>> usersDay(ChargingStatisticsQueryDto statisticsQueryDto) {
@@ -2912,6 +2867,8 @@
   @Override
   public TSettlementConfirm settlementAdd(SettlementConfirmAdd dto) {
      List<Site> data = siteClient.getSiteByIds(Arrays.asList(dto.getSiteId())).getData();
      List<TChargingOrderAccountingStrategy> list3 = chargingOrderAccountingStrategyService.list();
      TSettlementConfirm tSettlementConfirm = new TSettlementConfirm();
      if (!data.isEmpty()){
         tSettlementConfirm.setSiteName(data.get(0).getName());
@@ -2938,9 +2895,7 @@
      // 根据站点id和开始时间和结束时间和归属日期 查询充电订单列表
      QueryWrapper<TChargingOrder> eq = new QueryWrapper<TChargingOrder>()
            .eq("site_id", dto.getSiteId())
            .eq("status", 5)
            .eq("recharge_payment_status",2);
            .eq("site_id", dto.getSiteId());
      switch (dto.getType()){
         case 1:
            eq.between("pay_time", localDateTime, localDateTime1);
@@ -2969,25 +2924,37 @@
      // 支付订单金额 需要减去退款金额
      BigDecimal paymentAmount = new BigDecimal("0");
      for (TChargingOrder tChargingOrder : tChargingOrders) {
         // 累加充电总度数
         if (tChargingOrder.getChargingCapacity()!=null){
            chargingElectronic = chargingElectronic.add(tChargingOrder.getChargingCapacity());
         if(null == tChargingOrder.getStatus() || 5 != tChargingOrder.getStatus()){
            continue;
         }
         List<TChargingOrderAccountingStrategy> list4 = list3.stream().filter(e -> e.getChargingOrderId().equals(tChargingOrder.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);
         // 累加充电总度数
         chargingElectronic = chargingElectronic.add(chargingCapacity);
         // 累加分佣
         if (tChargingOrder.getOrderSource()==2) {
            sharingAmount = sharingAmount.add(tChargingOrder.getServiceCharge().multiply(new BigDecimal("0.2")).setScale(2,BigDecimal.ROUND_DOWN));
            sharingAmount = sharingAmount.add(service_reduce.multiply(new BigDecimal("0.2")).setScale(2,BigDecimal.ROUND_DOWN));
         }
         // 累加电费
         if (tChargingOrder.getElectrovalence()!=null) {
         electrovalence = electrovalence.add(tChargingOrder.getElectrovalence());
         electrovalence = electrovalence.add(electronic_reduce);
         if (tChargingOrder.getPaymentAmount()!=null && tChargingOrder.getOrderSource()!=2){
            paymentAmount = paymentAmount.add(tChargingOrder.getPaymentAmount());
         }
         if (tChargingOrder.getRechargeAmount()!=null){
            orderCommission = orderCommission.add(tChargingOrder.getRechargeAmount().multiply(new BigDecimal("0.006"))
                  .setScale(2,BigDecimal.ROUND_DOWN));
         }
         // 累加服务费
         if (tChargingOrder.getServiceCharge()!=null){
            if (tChargingOrder.getOrderSource()==2) {
               serviceCharge = serviceCharge.add(tChargingOrder.getServiceCharge().multiply(new BigDecimal("0.2")).setScale(2,BigDecimal.ROUND_DOWN));
               serviceCharge = serviceCharge.add(service_reduce.multiply(new BigDecimal("0.8")).setScale(2,BigDecimal.ROUND_DOWN));
               paymentAmount = paymentAmount.add(electronic_reduce).add(service_reduce.multiply(new BigDecimal("0.8")));
            }else{
               serviceCharge = serviceCharge.add(tChargingOrder.getServiceCharge());
               serviceCharge = serviceCharge.add(service_reduce);
            }
         }
         // 累加会员折扣
@@ -2998,11 +2965,7 @@
         if (tChargingOrder.getCouponDiscountAmount()!=null){
            couponDiscount = couponDiscount.add(tChargingOrder.getCouponDiscountAmount());
         }
         if (tChargingOrder.getPaymentAmount()!=null){
            paymentAmount = paymentAmount.add(tChargingOrder.getPaymentAmount());
            orderCommission = orderCommission.add(tChargingOrder.getRechargeAmount().multiply(new BigDecimal("0.006"))
                  .setScale(2,BigDecimal.ROUND_DOWN));
         }
      }