From 13ef98c7ec15380f5ef3e0c624e765ca9fbdeb9d Mon Sep 17 00:00:00 2001 From: 无关风月 <443237572@qq.com> Date: 星期四, 20 三月 2025 13:50:21 +0800 Subject: [PATCH] 充电桩bug修改 --- ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java | 136 ++++++++++++++++----------------------------- 1 files changed, 49 insertions(+), 87 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 13328ff..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 @@ -1819,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; } } @@ -1868,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; } } @@ -1923,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); @@ -2915,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()); @@ -2970,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); } } // 累加会员折扣 @@ -2999,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