From bb18fbb5291e13b0545b90e8d8641c8392f7a112 Mon Sep 17 00:00:00 2001 From: Pu Zhibing <393733352@qq.com> Date: 星期三, 06 十一月 2024 16:25:37 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java | 57 ++++++++++++++++++++++++++++++++------------------------- 1 files changed, 32 insertions(+), 25 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 4eec6ac..56b0ebf 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 @@ -963,9 +963,8 @@ if(null != chargingHandshake && null != data && null != one.getAppUserCarId()){ BigDecimal bms_battery_capacity = chargingHandshake.getBms_battery_capacity(); TAppUserCar appUserCar = appUserCarClient.getCarByIds(Arrays.asList(one.getAppUserCarId())).getData().get(0); - // 续航 = 电池容量 / 续航里程 * soc - BigDecimal divide = bms_battery_capacity.divide(new BigDecimal(appUserCar.getEndurance())); - BigDecimal multiply = new BigDecimal(data.getSoc() / 100).multiply(divide); + // 续航 = 续航里程 * soc + BigDecimal multiply = new BigDecimal(data.getSoc() / 100).multiply(new BigDecimal(appUserCar.getEndurance())); chargingDetails.setEndurance(multiply); } return chargingDetails; @@ -1092,6 +1091,7 @@ if(1 == doubleIntegration){ num1 *= 2; } + } GetInviteUser query = new GetInviteUser(); @@ -1216,9 +1216,12 @@ 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"); for (ChargingOrderVO chargingOrderVO : list) { - chargingOrderVO.setCommissionAmount(chargingOrderVO.getOrderAmount().multiply(new BigDecimal("0.006"))); - chargingOrderVO.setPlatFormMoney(chargingOrderVO.getOrderAmount().multiply(new BigDecimal("0.006"))); + chargingOrderVO.setCommissionAmount(chargingOrderVO.getOrderAmount()!=null?chargingOrderVO.getOrderAmount().multiply(new BigDecimal("0.006")):new BigDecimal("0")); + chargingOrderVO.setPlatFormMoney(chargingOrderVO.getOrderAmount()!=null?chargingOrderVO.getOrderAmount().multiply(new BigDecimal("0.006")).setScale(2,BigDecimal.ROUND_DOWN):new BigDecimal("0")); chargingOrderVO.setUid(chargingOrderVO.getId()+""); TChargingGun data3 = chargingGunClient.getChargingGunById(chargingOrderVO.getChargingGunId()).getData(); TChargingPile data2 = chargingPileClient.getChargingPileById(chargingOrderVO.getChargingPileId()).getData(); @@ -1259,6 +1262,8 @@ } } for (ChargingOrderVO chargingOrderVO : list1) { + paymentMoney= paymentMoney.add(chargingOrderVO.getPaymentAmount()!=null?chargingOrderVO.getPaymentAmount():new BigDecimal("0")); + commissionMoney = commissionMoney.add(chargingOrderVO.getOrderAmount()!=null?chargingOrderVO.getOrderAmount().multiply(new BigDecimal("0.006")):new BigDecimal("0")); if (chargingOrderVO.getChargingCapacity()!=null){ total = total.add(chargingOrderVO.getElectricity()); } @@ -1271,17 +1276,19 @@ chargingOrderVO.setChargingSecond(l); time+=l; } - electronicMoney = electronicMoney.add(chargingOrderVO.getElectrovalence()); - serviceMoney = serviceMoney.add(chargingOrderVO.getServiceCharge()); - - income = income.add(chargingOrderVO.getPaymentAmount()); - - - + List<TChargingOrderRefund> list2 = chargingOrderRefundService.lambdaQuery().eq(TChargingOrderRefund::getRefundStatus, 2) + .eq(TChargingOrderRefund::getChargingOrderId, chargingOrderVO.getId()).list(); + for (TChargingOrderRefund tChargingOrderRefund : list2) { + if (tChargingOrderRefund.getRefundStatus()==2){ + 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")); } tCharingOrderVO.setTotal(total); tCharingOrderVO.setTime(time); - tCharingOrderVO.setIncome(income); + tCharingOrderVO.setIncome(income.subtract(commissionMoney)); tCharingOrderVO.setElectronicMoney(electronicMoney); tCharingOrderVO.setServiceMoney(serviceMoney); pageInfo.setRecords(list); @@ -1929,20 +1936,20 @@ } //已充电总度数 - BigDecimal electrovalenc = strategyDetail.getElectrovalence().multiply(sharp_peak_charge).setScale(2, RoundingMode.HALF_EVEN); - BigDecimal originalServicePrice = strategyDetail.getServiceCharge().multiply(sharp_peak_charge).setScale(2, RoundingMode.HALF_EVEN); + BigDecimal electrovalenc = strategyDetail.getElectrovalence().multiply(sharp_peak_charge); + BigDecimal originalServicePrice = strategyDetail.getServiceCharge().multiply(sharp_peak_charge); BigDecimal serviceCharge = originalServicePrice; BigDecimal vipDiscountAmount = BigDecimal.ZERO; //计算优惠金额 if(null != chargingOrder.getVipDiscount()){ - vipDiscountAmount = serviceCharge.multiply(new BigDecimal(1).subtract(chargingOrder.getVipDiscount())).setScale(2, RoundingMode.HALF_EVEN); - serviceCharge = serviceCharge.multiply(chargingOrder.getVipDiscount()).setScale(2, RoundingMode.HALF_EVEN); + vipDiscountAmount = serviceCharge.multiply(new BigDecimal(1).subtract(chargingOrder.getVipDiscount())); + serviceCharge = serviceCharge.multiply(chargingOrder.getVipDiscount()); } chargingOrderAccountingStrategy.setChargingCapacity(sharp_peak_charge); - chargingOrderAccountingStrategy.setPeriodElectricPrice(electrovalenc); - chargingOrderAccountingStrategy.setPeriodServicePrice(serviceCharge); - chargingOrderAccountingStrategy.setPeriodOriginalServicePrice(originalServicePrice); - chargingOrderAccountingStrategy.setVipDiscountAmount(vipDiscountAmount); + chargingOrderAccountingStrategy.setPeriodElectricPrice(electrovalenc.setScale(4, RoundingMode.HALF_EVEN)); + chargingOrderAccountingStrategy.setPeriodServicePrice(serviceCharge.setScale(4, RoundingMode.HALF_EVEN)); + chargingOrderAccountingStrategy.setPeriodOriginalServicePrice(originalServicePrice.setScale(4, RoundingMode.HALF_EVEN)); + chargingOrderAccountingStrategy.setVipDiscountAmount(vipDiscountAmount.setScale(4, RoundingMode.HALF_EVEN)); chargingOrderAccountingStrategy.setCreateTime(LocalDateTime.now()); chargingOrderAccountingStrategyService.save(chargingOrderAccountingStrategy); @@ -1987,7 +1994,7 @@ } } //会员折扣金额 - discountAmount = discountAmount.setScale(2, RoundingMode.HALF_EVEN); + discountAmount = discountAmount.setScale(4, RoundingMode.HALF_EVEN); payAmount = payAmount.subtract(discountAmount); periodServicePrice_total = periodServicePrice_total.subtract(discountAmount); @@ -2006,7 +2013,7 @@ 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.setVipDiscountAmount(discountAmount); + order.setVipDiscountAmount(discountAmount.setScale(2, RoundingMode.HALF_EVEN)); order.setElectrovalence(periodElectricPrice_total.setScale(2, RoundingMode.HALF_EVEN)); order.setChargingCapacity(vo.getTotal_electricity()); order.setElectricity(vo.getTotal_electricity()); @@ -2062,13 +2069,13 @@ } } //优惠券优惠金额 - couponDiscount = couponDiscount.setScale(2, RoundingMode.HALF_EVEN); + couponDiscount = couponDiscount.setScale(4, RoundingMode.HALF_EVEN); refundAmount = refundAmount.add(couponDiscount); payAmount = payAmount.subtract(couponDiscount); if(periodServicePrice_total.compareTo(BigDecimal.ZERO) > 0){ periodServicePrice_total = periodServicePrice_total.subtract(couponDiscount); } - order.setCouponDiscountAmount(couponDiscount); + order.setCouponDiscountAmount(couponDiscount.setScale(2, RoundingMode.HALF_EVEN)); order.setServiceCharge(periodServicePrice_total.setScale(2, RoundingMode.HALF_EVEN)); order.setPaymentAmount(payAmount.setScale(2, RoundingMode.HALF_EVEN)); order.setRefundAmount(refundAmount.setScale(2, RoundingMode.HALF_EVEN)); -- Gitblit v1.7.1