puzhibing
2026-04-02 67473ebd48956fad160368667887f0ef6ddb74f2
修改bug
2个文件已修改
24 ■■■■■ 已修改文件
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/util/task/TaskUtil.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java
@@ -2361,24 +2361,22 @@
     *
     * @param vo
     */
    @Transactional
    @Override
    @Transactional
    public R endChargeBillingCharge(TransactionRecordMessageVO vo) {
        RLock lock = redissonClient.getLock("endOrder:" + vo.getTransaction_serial_number());
        try {
            boolean tryLock = lock.tryLock(60, 60, TimeUnit.SECONDS);
            if(tryLock){
                Object cacheObject = redisService.getCacheObject("chargingOrderStatus:" + vo.getTransaction_serial_number());
                if(null != cacheObject && 5 == (int)cacheObject){
                    return R.ok();
                }
                TChargingOrder chargingOrder = this.getOne(new LambdaQueryWrapper<TChargingOrder>().eq(TChargingOrder::getCode, vo.getTransaction_serial_number()));
                if (null == chargingOrder) {
                    return R.ok();
                    log.error("订单不存在,订单号:{}", vo.getTransaction_serial_number());
                    return R.fail("订单不存在,订单号:" + vo.getTransaction_serial_number());
                }
                Integer status = chargingOrder.getStatus();
                if (status == 5) {
                    return R.ok();
                    log.info("订单已结算,订单号:{}", vo.getTransaction_serial_number());
                    return R.fail("订单已结算,订单号:" + vo.getTransaction_serial_number());
                }
                //如果使用优惠券需要判断优惠券是否满足使用条件
@@ -2686,7 +2684,6 @@
                    chargingOrder.setEndSoc(new BigDecimal(desc.getSoc()));
                }
                this.updateById(chargingOrder);
                redisService.setCacheObject("chargingOrderStatus:" + vo.getTransaction_serial_number(), 5, 100L, TimeUnit.SECONDS);
                chargingOrder = this.getById(chargingOrder.getId());
                Site site = siteClient.getSiteByIds(Arrays.asList(chargingOrder.getSiteId())).getData().get(0);
@@ -2809,13 +2806,12 @@
                            model.setAmount(amount);
                            R<Map<String, Object>> result = wxPaymentClient.refundOrderR(model);
                            if (200 == result.getCode()) {
                                chargingOrderRefundService.save(chargingOrderRefund);
                                //手续费
                                Map<String, Object> amount1 = (Map<String, Object>) result.getData().get("amount");
                                Object refund_fee1 = amount1.get("refund_fee");
                                BigDecimal refund_fee = new BigDecimal(null == refund_fee1 ? "0" : refund_fee1.toString()).divide(new BigDecimal(100));
                                chargingOrderRefund.setRefundFee(refund_fee);
                                chargingOrderRefundService.updateById(chargingOrderRefund);
                                chargingOrderRefundService.save(chargingOrderRefund);
                            }
                        }
                        if (2 == rechargePaymentType) {
@@ -2890,7 +2886,7 @@
                }
                TChargingOrderSummaryData summaryData = new TChargingOrderSummaryData();
                summaryData.setChargingOrderId(chargingOrder.getId());
                summaryData.setChargingCapacity(chargingCapacity);
                summaryData.setChargingCapacity(chargingCapacity.setScale(6, RoundingMode.HALF_EVEN));
                summaryData.setChargingDuration(time);
                summaryData.setIncome(paymentMoney.setScale(2, BigDecimal.ROUND_HALF_EVEN));
                summaryData.setElectricPrice(electronic_reduce.setScale(2, BigDecimal.ROUND_HALF_EVEN));
@@ -4395,10 +4391,10 @@
                long between = ChronoUnit.SECONDS.between(startTime, endTime);
                time += between;
            }
            TChargingOrderSummaryData summaryData = new TChargingOrderSummaryData();
            summaryData.setChargingOrderId(chargingOrderVO.getId());
            summaryData.setChargingCapacity(chargingCapacity);
            summaryData.setChargingCapacity(chargingCapacity.setScale(6, RoundingMode.HALF_EVEN));
            summaryData.setChargingDuration(time);
            summaryData.setIncome(paymentMoney.setScale(2, BigDecimal.ROUND_HALF_EVEN));
            summaryData.setElectricPrice(electronic_reduce.setScale(2, BigDecimal.ROUND_HALF_EVEN));
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/util/task/TaskUtil.java
@@ -739,7 +739,7 @@
                    }
                    TChargingOrderSummaryData summaryData = new TChargingOrderSummaryData();
                    summaryData.setChargingOrderId(order.getId());
                    summaryData.setChargingCapacity(chargingCapacity);
                    summaryData.setChargingCapacity(chargingCapacity.setScale(6, RoundingMode.HALF_EVEN));
                    summaryData.setChargingDuration(time);
                    summaryData.setIncome(paymentMoney.setScale(2, BigDecimal.ROUND_HALF_EVEN));
                    summaryData.setElectricPrice(electronic_reduce.setScale(2, BigDecimal.ROUND_HALF_EVEN));