From b47c2fed1a54f838abf2c1f14da4516f811d9065 Mon Sep 17 00:00:00 2001 From: 无关风月 <443237572@qq.com> Date: 星期四, 20 三月 2025 15:31:03 +0800 Subject: [PATCH] 充电桩bug修改 --- ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java | 166 ++++++++++++++++++++++--------------------------------- 1 files changed, 66 insertions(+), 100 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 39274ab..282599d 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 @@ -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; @@ -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,7 +2570,7 @@ return this.baseMapper.queryPowerLevel(siteIds,statisticsQueryDto); } - + @Override public List<Map<String, Object>> usersDay(ChargingStatisticsQueryDto statisticsQueryDto) { @@ -2909,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()); @@ -2935,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); @@ -2966,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); } } // 累加会员折扣 @@ -2995,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)); - } + } -- Gitblit v1.7.1