From 0911582d2f80e7f3162fb6d0b59ee12e23de133b Mon Sep 17 00:00:00 2001 From: luodangjia <luodangjia> Date: 星期四, 17 十月 2024 09:39:05 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java | 39 +++++++++++++++++++++++++-------------- 1 files changed, 25 insertions(+), 14 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 7939f1f..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 @@ -890,13 +890,11 @@ * @return */ public AjaxResult chargingOrderStartupFailureWxRefund(String out_refund_no, String refund_id, String tradeState, String success_time){ - if("SUCCESS".equals(tradeState)){ - TChargingOrderRefund one = chargingOrderRefundService.getOne(new LambdaQueryWrapper<TChargingOrderRefund>().eq(TChargingOrderRefund::getRefundCode, out_refund_no)); - one.setRefundSerialNumber(refund_id); - one.setRefundStatus(2); - one.setRefundTime(LocalDateTime.now()); - chargingOrderRefundService.updateById(one); - } + TChargingOrderRefund one = chargingOrderRefundService.getOne(new LambdaQueryWrapper<TChargingOrderRefund>().eq(TChargingOrderRefund::getRefundCode, out_refund_no)); + one.setRefundSerialNumber(refund_id); + one.setRefundStatus(2); + one.setRefundTime(LocalDateTime.now()); + chargingOrderRefundService.updateById(one); return AjaxResult.success(); } @@ -1694,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())){ //获取当前的计费策略 @@ -1789,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())); @@ -1863,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()); @@ -1958,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()){ @@ -2009,6 +2018,8 @@ // 将枪状态重置为空闲 TChargingGun chargingGun = chargingGunClient.getChargingGunById(chargingOrder.getChargingGunId()).getData(); chargingGun.setStatus(2); + chargingGun.setChargingPower(BigDecimal.ZERO); + chargingGun.setSoc(0); chargingGunClient.updateChargingGunById(chargingGun); //添加积分 @@ -2223,10 +2234,10 @@ RefundResp resp = aliPaymentClient.refund(dto).getData(); if(null != resp){ SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-DDTHH:mm:ss+TIMEZONE"); - tChargingOrder.setRefundStatus(2); - tChargingOrder.setRefundAmount((tChargingOrder.getRefundAmount()==null? BigDecimal.valueOf(0) :tChargingOrder.getRefundAmount()).add(payOrderQueryDto.getRefundAmount())); + chargingOrderRefund.setRefundStatus(2); + chargingOrderRefund.setRefundAmount((tChargingOrder.getRefundAmount()==null? BigDecimal.valueOf(0) :tChargingOrder.getRefundAmount()).add(payOrderQueryDto.getRefundAmount())); this.baseMapper.updateById(tChargingOrder); - chargingOrderRefundService.save(chargingOrderRefund); + chargingOrderRefundService.save(chargingOrderRefund); } } -- Gitblit v1.7.1