From d56e45a6bf3ad11809fbf51dff0dfbe853860d43 Mon Sep 17 00:00:00 2001 From: 无关风月 <443237572@qq.com> Date: 星期三, 19 三月 2025 20:56:33 +0800 Subject: [PATCH] Merge branch 'master' of http://120.76.84.145:10101/gitblit/r/java/mx_charging_pile --- ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java | 206 +++++++++++++++++++++++++++++--------------------- 1 files changed, 119 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 75c13ed..7470c9b 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 @@ -1406,24 +1406,31 @@ } } - 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"); for (ChargingOrderVO chargingOrderVO : list1) { + if(null == chargingOrderVO.getStatus() || 5 != chargingOrderVO.getStatus()){ + continue; + } List<TChargingOrderAccountingStrategy> list4 = list3.stream().filter(e -> e.getChargingOrderId().equals(chargingOrderVO.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); + electronicMoney = electronicMoney.add(electronic_reduce); + total = total.add(chargingCapacity); if (!chargingOrderVO.getOrderSource().equals(2)) { - paymentMoney = paymentMoney.add(chargingOrderVO.getPaymentAmount() != null ? chargingOrderVO.getPaymentAmount() : new BigDecimal("0")); + serviceMoney = serviceMoney.add(service_reduce); + paymentMoney = paymentMoney.add(electronic_reduce).add(service_reduce); }else{ - paymentMoney = paymentMoney.add(electronic_reduce).add(service_reduce.multiply(new BigDecimal("0.8")).setScale(2, BigDecimal.ROUND_DOWN)); - } -// if (chargingOrderVO.getRechargeAmount()!=null){ -// commissionMoney = commissionMoney.add(chargingOrderVO.getRechargeAmount().multiply(new BigDecimal("0.006")).setScale(2,BigDecimal.ROUND_DOWN)); -// } - if (chargingOrderVO.getChargingCapacity()!=null){ - total = total.add(chargingOrderVO.getElectricity()!=null?chargingOrderVO.getElectricity():new BigDecimal("0")); + serviceMoney = serviceMoney.add(service_reduce.multiply(new BigDecimal("0.8"))); + paymentMoney = paymentMoney.add(electronic_reduce).add(service_reduce.multiply(new BigDecimal("0.8"))); } if (chargingOrderVO.getStartTime()!=null && chargingOrderVO.getEndTime()!=null){ LocalDateTime startTime = chargingOrderVO.getStartTime(); @@ -1437,20 +1444,12 @@ for (TChargingOrderRefund tChargingOrderRefund : list2) { refundMoney = refundMoney.add(tChargingOrderRefund.getRefundTotalAmount()); } - - //充电明细 - electronicMoney = electronicMoney.add(electronic_reduce); - if (!chargingOrderVO.getOrderSource().equals(2)){ - serviceMoney = serviceMoney.add(service_reduce); - }else{ - serviceMoney = serviceMoney.add(service_reduce.multiply(new BigDecimal("0.8"))); - } } tCharingOrderVO.setTotal(total); tCharingOrderVO.setTime(time); - tCharingOrderVO.setIncome(paymentMoney); - tCharingOrderVO.setElectronicMoney(electronicMoney); - tCharingOrderVO.setServiceMoney(serviceMoney); + tCharingOrderVO.setIncome(paymentMoney.setScale(2, BigDecimal.ROUND_HALF_EVEN)); + tCharingOrderVO.setElectronicMoney(electronicMoney.setScale(2, BigDecimal.ROUND_HALF_EVEN)); + tCharingOrderVO.setServiceMoney(serviceMoney.setScale(2, BigDecimal.ROUND_HALF_EVEN)); pageInfo.setRecords(list); tCharingOrderVO.setList(pageInfo); return tCharingOrderVO; @@ -1500,8 +1499,8 @@ } @Override - public Map<String, Object> countAll(LocalDate sixBefore,List<Integer> siteIds) { - return this.baseMapper.countAll(sixBefore,siteIds); + public Map<String, Object> countAll(List<Integer> siteIds) { + return this.baseMapper.countAll(siteIds); } @Override @@ -1519,24 +1518,24 @@ } @Override - public List<Map<String, Object>> getWeekData(LocalDate start,LocalDate end) { + public List<Map<String, Object>> getWeekData(LocalDate start,LocalDate end,List<Integer> siteIds) { LocalDateTime start1 = start.atStartOfDay(); LocalDateTime end1 = end.atTime(LocalTime.MAX); - return this.baseMapper.getWeekData(start1,end1); + return this.baseMapper.getWeekData(start1,end1,siteIds); } @Override - public List<Map<String, Object>> getMonthData(LocalDate start,LocalDate end) { + public List<Map<String, Object>> getMonthData(LocalDate start,LocalDate end,List<Integer> siteIds) { LocalDateTime start1 = start.atStartOfDay(); LocalDateTime end1 = end.atTime(LocalTime.MAX); - return this.baseMapper.getMonthData(start1,end1); + return this.baseMapper.getMonthData(start1,end1,siteIds); } @Override - public List<Map<String, Object>> getYearData(LocalDate start,LocalDate end) { + public List<Map<String, Object>> getYearData(LocalDate start,LocalDate end,List<Integer> siteIds) { LocalDateTime start1 = start.atStartOfDay(); LocalDateTime end1 = end.atTime(LocalTime.MAX); - return this.baseMapper.getYearData(start1,end1); + return this.baseMapper.getYearData(start1,end1,siteIds); } @Resource @@ -1801,22 +1800,18 @@ BigDecimal gu = new BigDecimal("0"); List<TChargingOrderAccountingStrategy> chargingOrderAccountingStrategies = chargingOrderAccountingStrategyService.list(); for (ChargingOrderListVO chargingOrderListVO : list1) { - if (chargingOrderListVO.getChargingCapacity()!=null)electronic = electronic.add(chargingOrderListVO.getElectricity()); - - 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){ - 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()); - } + List<TChargingOrderAccountingStrategy> collect = chargingOrderAccountingStrategies.stream().filter(s -> s.getChargingOrderId().equals(chargingOrderListVO.getId())).collect(Collectors.toList()); + BigDecimal periodServicePrice = collect.stream().map(TChargingOrderAccountingStrategy::getPeriodServicePrice).reduce(BigDecimal.ZERO, BigDecimal::add); + BigDecimal periodElectricPrice = collect.stream().map(TChargingOrderAccountingStrategy::getPeriodElectricPrice).reduce(BigDecimal.ZERO, BigDecimal::add); + BigDecimal chargingCapacity = collect.stream().map(TChargingOrderAccountingStrategy::getChargingCapacity).reduce(BigDecimal.ZERO, BigDecimal::add); + electronic = electronic.add(chargingCapacity); + electrovalence = electrovalence.add(periodElectricPrice); + if (chargingOrderListVO.getOrderSource().equals(2)){ + serviceCharge = serviceCharge.add(periodServicePrice.multiply(new BigDecimal("0.8"))); + paymentAmount = paymentAmount.add(periodElectricPrice).add(periodServicePrice.multiply(new BigDecimal("0.8"))); + }else{ + serviceCharge = serviceCharge.add(periodServicePrice); + paymentAmount = paymentAmount.add(periodElectricPrice).add(periodServicePrice); } if (!chargingOrderListVO.getOrderSource().equals(2)){ List<TChargingOrderAccountingStrategy> list2 = chargingOrderAccountingStrategies.stream().filter(e -> e.getChargingOrderId().equals(chargingOrderListVO.getId())) @@ -1824,24 +1819,48 @@ 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()); + 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()); + 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()); + 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()); + 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; } } @@ -1851,34 +1870,58 @@ 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))); + 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))); + 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))); + 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))); + 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; } } } } - chargingOrderTimeVO.setChargingCapacity(electronic); - chargingOrderTimeVO.setPaymentAmount(paymentAmount); - chargingOrderTimeVO.setElectrovalence(electrovalence); - chargingOrderTimeVO.setServiceCharge(serviceCharge); + chargingOrderTimeVO.setChargingCapacity(electronic.setScale(2, BigDecimal.ROUND_HALF_EVEN)); + chargingOrderTimeVO.setPaymentAmount(paymentAmount.setScale(2, BigDecimal.ROUND_HALF_EVEN)); + 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); @@ -2558,11 +2601,11 @@ @Override - public List<Map<String, Object>> getByDate(LocalDate start,LocalDate end) { + public List<Map<String, Object>> getByDate(LocalDate start,LocalDate end,List<Integer> siteIds) { LocalDateTime start1 = start.atStartOfDay(); LocalDateTime end1 = end.atTime(LocalTime.MAX); - return this.baseMapper.getByDate(start1,end1); + return this.baseMapper.getByDate(start1,end1,siteIds); } @Override @@ -2575,10 +2618,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) { @@ -3125,13 +3165,9 @@ siteIds.add(-1); } List<Site> siteList = siteClient.getSiteAll().getData(); - List<TChargingGun> gunList = chargingGunClient.getAllGun().getData(); List<TChargingPile> pileList = chargingGunClient.getAllPile().getData(); - List<TAppUser> userList = appUserClient.getAllUser().getData(); - List<TAppUserCar> carList = appUserCarClient.getAllCar().getData(); List<TChargingOrder> totalOrder = chargingOrderService.list(new LambdaQueryWrapper<>(TChargingOrder.class) - .eq(TChargingOrder::getRechargePaymentStatus, 2)); - List<TChargingOrderRefund> totalRefund = chargingOrderRefundService.lambdaQuery().eq(TChargingOrderRefund::getRefundStatus, 2).list(); + .eq(TChargingOrder::getRechargePaymentStatus, 2).eq(TChargingOrder::getStatus, 5)); SettlementTotalVO res = new SettlementTotalVO(); List<TSettlementConfirm> list1 = tSettlementConfirmMapper.settlementTotal(time,siteIds); LocalDateTime parse = LocalDateTime.parse(time, DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")); @@ -3168,8 +3204,6 @@ BigDecimal orderCommission = new BigDecimal("0"); BigDecimal vipDiscount = new BigDecimal("0"); BigDecimal couponDiscount = new BigDecimal("0"); -// tSettlementConfirm1.setIncomePercentage(); -// tSettlementConfirm1.setTotalPercentage(); tSettlementConfirm1.setElectronicRefund(0); // 上月成本合计 BigDecimal beforeCost= new BigDecimal("0"); @@ -3244,7 +3278,6 @@ for (TChargingPile datum : data) { bigDecimal = bigDecimal.add(datum.getRatedPower()); } - tSettlementConfirm.setIncome(tSettlementConfirm.getElectrovalence().add(tSettlementConfirm.getServiceCharge())); //利用率=充电量/(桩数量*功率*时间) @@ -3334,7 +3367,6 @@ BigDecimal subtract = income.subtract(beforeIncome).divide(beforeIncome,2,RoundingMode.HALF_DOWN).multiply(new BigDecimal("100")); tSettlementConfirm.setIncomePercentage(subtract+"%"); tSettlementConfirm.setIncomePercentage(subtract+"%"); - } // 比较总利润 收入合计-成本合计 BigDecimal subtract1 = income.subtract(cost); -- Gitblit v1.7.1