From 14d920beb67e0f2d1d0e4a390e9834f4fcfd79dc Mon Sep 17 00:00:00 2001 From: puzhibing <393733352@qq.com> Date: 星期三, 16 十月 2024 19:21:26 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java | 21 +++++++++++++++++---- 1 files changed, 17 insertions(+), 4 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 46e04b6..9e757f3 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 @@ -1692,6 +1692,7 @@ * @param query */ @Override + @GlobalTransactional(rollbackFor = Exception.class) public void chargeMonitoring(UploadRealTimeMonitoringDataQuery query) { if(com.ruoyi.common.core.utils.StringUtils.isNotEmpty(query.getTransaction_serial_number())){ //获取当前的计费策略 @@ -1787,12 +1788,17 @@ BigDecimal residualAmount = chargingOrder.getRechargeAmount().subtract(t).setScale(4, RoundingMode.HALF_EVEN); chargingOrder.setResidualAmount(residualAmount); if(query.getOutput_current().compareTo(BigDecimal.ZERO) != 0){ - BigDecimal divide = query.getOutput_current().multiply(query.getOutput_voltage()).divide(new BigDecimal(1000)); + BigDecimal divide = (query.getOutput_current().multiply(query.getOutput_voltage())).divide(new BigDecimal(1000)); chargingOrder.setChargingPower(divide); chargingOrder.setCurrent(query.getOutput_current()); chargingOrder.setVoltage(query.getOutput_voltage()); chargingOrder.setPower(query.getOutput_current().multiply(query.getOutput_voltage())); chargingOrder.setNeedElec(query.getOutput_current()); + + TChargingGun chargingGun = chargingGunClient.getChargingGunById(chargingOrder.getChargingGunId()).getData(); + chargingGun.setChargingPower(divide); + chargingGun.setSoc(query.getSoc()); + chargingGunClient.updateChargingGunById(chargingGun); } chargingOrder.setElectricity(query.getCharging_degree()); chargingOrder.setTotalElectricity(new BigDecimal(100 - query.getSoc())); @@ -1861,13 +1867,16 @@ if(StringUtils.hasLength(time)){ //充电度数 Object invoke = clazz.getMethod("getSharp_peak_charge" + (i + 1)).invoke(vo); + if(null == invoke || invoke.toString().equals("0")){ + continue; + } BigDecimal Sharp_peak_charge = new BigDecimal(invoke.toString()); //充电金额 Object invoke1 = clazz.getMethod("getSharp_peak_amount" + (i + 1)).invoke(vo); BigDecimal sharp_peak_amount = new BigDecimal(invoke1.toString()); - String[] split = time.split("~"); - AccountingStrategyDetailOrder strategyDetail = accountingStrategyDetailOrderList.stream().filter(s -> s.getStartTime().equals(split[1]) && s.getEndTime().equals(split[2])).findFirst().get(); + String[] split = time.split("-"); + AccountingStrategyDetailOrder strategyDetail = accountingStrategyDetailOrderList.stream().filter(s -> s.getStartTime().equals(split[0]) && s.getEndTime().equals(split[1])).findFirst().get(); TChargingOrderAccountingStrategy chargingOrderAccountingStrategy = new TChargingOrderAccountingStrategy(); chargingOrderAccountingStrategy.setChargingOrderId(chargingOrder.getId()); @@ -1956,12 +1965,14 @@ order.setEndMode(1); } order.setResidualAmount(rechargeAmount.subtract(total)); - order.setEndTime(LocalDateTime.now()); + 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); order.setVipDiscountAmount(discountAmount); order.setServiceCharge(periodServicePrice_total); order.setElectrovalence(periodElectricPrice_total); + order.setChargingCapacity(vo.getTotal_electricity()); //计算优惠券 if(null != chargingOrder.getAppCouponId()){ @@ -2007,6 +2018,8 @@ // 将枪状态重置为空闲 TChargingGun chargingGun = chargingGunClient.getChargingGunById(chargingOrder.getChargingGunId()).getData(); chargingGun.setStatus(2); + chargingGun.setChargingPower(BigDecimal.ZERO); + chargingGun.setSoc(0); chargingGunClient.updateChargingGunById(chargingGun); //添加积分 -- Gitblit v1.7.1