From e125d529c1c3748bcf15c619576b2c9e1cc69d54 Mon Sep 17 00:00:00 2001 From: 无关风月 <443237572@qq.com> Date: 星期五, 18 十月 2024 18:21:08 +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 | 136 ++++++++++++++++++++++----------------------- 1 files changed, 67 insertions(+), 69 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 a17d686..12118eb 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 @@ -205,6 +205,7 @@ Map<String, Object> map = new HashMap<>(); int size = this.baseMapper.getMyChargingOrderList(appUserId, 1, null, null).size(); map.put("number", size); + query.setPageCurr((query.getPageCurr() - 1) * query.getPageSize()); List<TChargingOrder> list = this.baseMapper.getMyChargingOrderList(appUserId, query.getType(), query.getPageCurr(), query.getPageSize()); List<MyChargingOrderList> orderLists = new ArrayList<>(); for (TChargingOrder tChargingOrder : list) { @@ -317,6 +318,8 @@ @Override public List<MyChargingOrderList> getNoInvoicedOrder(GetNoInvoicedOrder query) { Long appUserId = tokenService.getLoginUserApplet().getUserId(); + + query.setPageCurr((query.getPageCurr() - 1) * query.getPageSize()); List<TChargingOrder> orderList = this.baseMapper.getNoInvoicedOrder(appUserId, query.getMonth(), query.getPageCurr(), query.getPageSize()); List<MyChargingOrderList> list = new ArrayList<>(); for (TChargingOrder tChargingOrder : orderList) { @@ -930,7 +933,9 @@ chargingDetails.setCompletionRatio(data.getSoc()); chargingDetails.setRemainingChargeTime(data.getTime_remaining()); chargingDetails.setChargedDegrees(data.getCharging_degree()); - chargingDetails.setChargedTime(data.getCumulative_charging_time()); + Integer h = Integer.valueOf(data.getCumulative_charging_time() / 60); + Integer m = Integer.valueOf(data.getCumulative_charging_time() % 60); + chargingDetails.setChargedTime(String.format("%02d", h) + ":" + String.format("%02d", m)); } ChargingHandshake chargingHandshake = chargingHandshakeClient.getDataByOrderCode(one.getCode()).getData(); if(null != chargingHandshake && null != data && null != one.getAppUserCarId()){ @@ -1775,72 +1780,64 @@ //获取订单的计费策略 List<AccountingStrategyDetailOrder> accountingStrategyDetailOrderList = accountingStrategyDetailOrderClient.getAllAccountingStrategyDetailOrder(chargingOrder.getId()).getData(); - AccountingStrategyDetailOrder accountingStrategyDetailOrder = accountingStrategyDetailOrderList.get(accountingStrategyDetailOrderList.size() - 1); - if(accountingStrategyDetailOrder.getEndTime().equals("00:00")){ - accountingStrategyDetailOrder.setEndTime("24:00"); - } chargingOrderAccountingStrategyService.remove(new LambdaQueryWrapper<TChargingOrderAccountingStrategy>().eq(TChargingOrderAccountingStrategy::getChargingOrderId, chargingOrder.getId())); - for (int i = 0; i < 12; i++) { + for (int i = 0; i < accountingStrategyDetailOrderList.size(); i++) { Class<? extends TransactionRecordMessageVO> clazz = vo.getClass(); try { - Object invoke1 = clazz.getMethod("getTime" + (i + 1)).invoke(vo); - if(null != invoke1){ - String[] split = invoke1.toString().split("-"); - AccountingStrategyDetailOrder strategyDetail = accountingStrategyDetailOrderList.stream().filter(s -> s.getStartTime().equals(split[0]) && s.getEndTime().equals(split[1])).findFirst().get(); - //阶段(1=尖阶段,2=峰阶段,3=平阶段,4=谷阶段) - Object invoke = null; - switch (strategyDetail.getType()){ - case 1: - //充电度数 - invoke = clazz.getMethod("getSharp_peak_charge" + (i + 1)).invoke(vo); - break; - case 2: - //充电度数 - invoke = clazz.getMethod("getPeak_charge" + (i + 1)).invoke(vo); - break; - case 3: - //充电度数 - invoke = clazz.getMethod("getFlat_peak_charge" + (i + 1)).invoke(vo); - break; - case 4: - //充电度数 - invoke = clazz.getMethod("getLow_peak_charge" + (i + 1)).invoke(vo); - break; - } - if(null == invoke || invoke.toString().equals("0")){ - continue; - } - BigDecimal Sharp_peak_charge = new BigDecimal(invoke.toString()); - TChargingOrderAccountingStrategy chargingOrderAccountingStrategy = new TChargingOrderAccountingStrategy(); - chargingOrderAccountingStrategy.setChargingOrderId(chargingOrder.getId()); - chargingOrderAccountingStrategy.setAccountingStrategyDetailId(strategyDetail.getId()); - chargingOrderAccountingStrategy.setType(strategyDetail.getType()); - chargingOrderAccountingStrategy.setStartTime(chargingOrder.getStartTime().format(DateTimeFormatter.ofPattern("HH:mm"))); - chargingOrderAccountingStrategy.setEndTime(LocalDateTime.now().format(DateTimeFormatter.ofPattern("HH:mm"))); - chargingOrderAccountingStrategy.setElectrovalence(strategyDetail.getElectrovalence()); - chargingOrderAccountingStrategy.setServiceCharge(strategyDetail.getServiceCharge()); - chargingOrderAccountingStrategy.setCostServiceCharge(strategyDetail.getCostServiceCharge()); - //已充电总度数 - BigDecimal electrovalenc = strategyDetail.getElectrovalence().multiply(Sharp_peak_charge); - BigDecimal originalServicePrice = strategyDetail.getServiceCharge().multiply(Sharp_peak_charge); - BigDecimal serviceCharge = originalServicePrice; - //计算优惠金额 - if(null != chargingOrder.getVipDiscount()){ - serviceCharge = serviceCharge.multiply(chargingOrder.getVipDiscount().divide(new BigDecimal(10))); - } - chargingOrderAccountingStrategy.setChargingCapacity(Sharp_peak_charge); - chargingOrderAccountingStrategy.setPeriodElectricPrice(electrovalenc); - chargingOrderAccountingStrategy.setPeriodServicePrice(serviceCharge); - chargingOrderAccountingStrategy.setPeriodOriginalServicePrice(originalServicePrice); - chargingOrderAccountingStrategy.setCreateTime(LocalDateTime.now()); - chargingOrderAccountingStrategyService.save(chargingOrderAccountingStrategy); - - BigDecimal periodElectricPrice = chargingOrderAccountingStrategy.getPeriodElectricPrice(); - BigDecimal periodServicePrice = chargingOrderAccountingStrategy.getPeriodOriginalServicePrice(); - periodElectricPrice_total = periodElectricPrice_total.add(periodElectricPrice); - periodServicePrice_total = periodServicePrice_total.add(periodServicePrice); - total = total.add(periodElectricPrice).add(periodServicePrice); + AccountingStrategyDetailOrder strategyDetail = accountingStrategyDetailOrderList.get(i); + //阶段(1=尖阶段,2=峰阶段,3=平阶段,4=谷阶段) + Object invoke = null; + switch (strategyDetail.getType()){ + case 1: + //充电度数 + invoke = clazz.getMethod("getSpike_charge" + (i + 1)).invoke(vo); + break; + case 2: + //充电度数 + invoke = clazz.getMethod("getPeak_charge" + (i + 1)).invoke(vo); + break; + case 3: + //充电度数 + invoke = clazz.getMethod("getFlat_charge" + (i + 1)).invoke(vo); + break; + case 4: + //充电度数 + invoke = clazz.getMethod("getValley_charge" + (i + 1)).invoke(vo); + break; } + if(null == invoke || Integer.valueOf(invoke.toString()) == 0){ + continue; + } + BigDecimal sharp_peak_charge = new BigDecimal(invoke.toString()); + TChargingOrderAccountingStrategy chargingOrderAccountingStrategy = new TChargingOrderAccountingStrategy(); + chargingOrderAccountingStrategy.setChargingOrderId(chargingOrder.getId()); + chargingOrderAccountingStrategy.setAccountingStrategyDetailId(strategyDetail.getId()); + chargingOrderAccountingStrategy.setType(strategyDetail.getType()); + chargingOrderAccountingStrategy.setStartTime(chargingOrder.getStartTime().format(DateTimeFormatter.ofPattern("HH:mm"))); + chargingOrderAccountingStrategy.setEndTime(LocalDateTime.now().format(DateTimeFormatter.ofPattern("HH:mm"))); + chargingOrderAccountingStrategy.setElectrovalence(strategyDetail.getElectrovalence()); + chargingOrderAccountingStrategy.setServiceCharge(strategyDetail.getServiceCharge()); + chargingOrderAccountingStrategy.setCostServiceCharge(strategyDetail.getCostServiceCharge()); + //已充电总度数 + BigDecimal electrovalenc = strategyDetail.getElectrovalence().multiply(sharp_peak_charge).setScale(2, RoundingMode.DOWN); + BigDecimal originalServicePrice = strategyDetail.getServiceCharge().multiply(sharp_peak_charge).setScale(2, RoundingMode.DOWN); + BigDecimal serviceCharge = originalServicePrice; + //计算优惠金额 + if(null != chargingOrder.getVipDiscount()){ + serviceCharge = serviceCharge.multiply(chargingOrder.getVipDiscount().divide(new BigDecimal(10))).setScale(2, RoundingMode.DOWN); + } + chargingOrderAccountingStrategy.setChargingCapacity(sharp_peak_charge); + chargingOrderAccountingStrategy.setPeriodElectricPrice(electrovalenc); + chargingOrderAccountingStrategy.setPeriodServicePrice(serviceCharge); + chargingOrderAccountingStrategy.setPeriodOriginalServicePrice(originalServicePrice); + chargingOrderAccountingStrategy.setCreateTime(LocalDateTime.now()); + chargingOrderAccountingStrategyService.save(chargingOrderAccountingStrategy); + + BigDecimal periodElectricPrice = chargingOrderAccountingStrategy.getPeriodElectricPrice(); + BigDecimal periodServicePrice = chargingOrderAccountingStrategy.getPeriodOriginalServicePrice(); + periodElectricPrice_total = periodElectricPrice_total.add(periodElectricPrice); + periodServicePrice_total = periodServicePrice_total.add(periodServicePrice); + total = total.add(periodElectricPrice.add(periodServicePrice)); } catch (IllegalAccessException e) { throw new RuntimeException(e); } catch (InvocationTargetException e) { @@ -1901,11 +1898,12 @@ order.setStartTime(LocalDateTime.parse(vo.getStart_time(), DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SS"))); 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.DOWN)); - order.setVipDiscountAmount(discountAmount.setScale(2, RoundingMode.DOWN)); - order.setServiceCharge(periodServicePrice_total.setScale(2, RoundingMode.DOWN)); - order.setElectrovalence(periodElectricPrice_total.setScale(2, RoundingMode.DOWN)); + order.setOrderAmount(orderAmount); + order.setVipDiscountAmount(discountAmount); + order.setServiceCharge(periodServicePrice_total); + order.setElectrovalence(periodElectricPrice_total); order.setChargingCapacity(vo.getTotal_electricity()); + order.setElectricity(vo.getTotal_electricity()); //计算优惠券 if(null != chargingOrder.getAppCouponId()){ @@ -1942,8 +1940,8 @@ } } } - order.setPaymentAmount(payAmount.setScale(2, RoundingMode.DOWN)); - order.setRefundAmount(refundAmount.setScale(2, RoundingMode.DOWN)); + order.setPaymentAmount(payAmount); + order.setRefundAmount(refundAmount); order.setRefundStatus(1); this.updateById(order); chargingOrder = this.getById(order.getId()); -- Gitblit v1.7.1