Pu Zhibing
2025-03-20 4b9e8610e48d5a4fd4e0ceb55c79b3f36146bc2b
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingBillServiceImpl.java
@@ -387,7 +387,7 @@
                chargingBillVO.setPaymentAmount(BigDecimal.ZERO);
            }
            chargingBillListVO.setPaymentAmount(paymentAmount.subtract(sharingAmount));
            chargingBillListVO.setPaymentAmount(paymentAmount);
            chargingBillListVO.setOrderAmount(refundAmount);
            chargingBillListVO.setRefundAmount(refundAmount == null?BigDecimal.ZERO:refundAmount);
            chargingBillListVO.setElectrovalence(electrovalence == null?BigDecimal.ZERO:electrovalence);
@@ -395,7 +395,7 @@
            chargingBillListVO.setCommissionAmount(commissionAmount == null?BigDecimal.ZERO:commissionAmount.setScale(2,BigDecimal.ROUND_DOWN));
            chargingBillListVO.setSharingAmount(sharingAmount == null?BigDecimal.ZERO:sharingAmount);
            chargingBillListVO.setChargingCapacity(chargingCapacity == null?BigDecimal.ZERO:chargingCapacity);
            chargingBillListVO.setBillMoney(orderAmount
            chargingBillListVO.setBillMoney(paymentAmount
                            .subtract(commissionAmount.setScale(2,BigDecimal.ROUND_DOWN)).subtract(sharingAmount).setScale(2, BigDecimal.ROUND_DOWN));
            switch (chargingBillListVO.getType()){
                case 1:
@@ -640,7 +640,10 @@
                    break;
                case 2:
                    temp = "各个站点账单";
                    temp1 = data6.stream().filter(e->e.getId().equals(chargingBillListVO.getSiteId())).findFirst().orElse(new Site()).getName();
                    Site site = data6.stream().filter(e -> e.getId().equals(chargingBillListVO.getSiteId())).findFirst().orElse(null);
                    if(site!=null){
                        temp1 = site.getName();
                    }
                    break;
            }
            chargingBillVO.setCategory(temp);
@@ -748,8 +751,7 @@
                            break;
                    }
                }
                BigDecimal add = tChargingOrder.getElectrovalence().add(tChargingOrder.getServiceCharge());
                tChargingOrder.setTotalAmount(add.toString());
                tChargingOrder.setDiscount(tChargingOrder.getCouponDiscountAmount()!=null?tChargingOrder.getCouponDiscountAmount().toString():"0");
                if (tChargingOrder.getStartTime()!=null && tChargingOrder.getEndTime()!=null){
                    LocalDateTime startTime = tChargingOrder.getStartTime();
@@ -795,9 +797,12 @@
                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 charging_capacity = list4.stream().map(TChargingOrderAccountingStrategy::getChargingCapacity).reduce(BigDecimal.ZERO, BigDecimal::add);
                if ( !tChargingOrder.getOrderSource().equals(2)){
                    // 实收
                    paymentAmount = paymentAmount.add(electronic_reduce).add(service_reduce);
                    BigDecimal add = electronic_reduce.add(service_reduce);
                    tChargingOrder.setTotalAmount(add.toString());
                }
                // 总金额
                if (tChargingOrder.getRechargeAmount()!=null){
@@ -816,19 +821,18 @@
                        sharingAmount = sharingAmount.add(service_reduce.multiply(new BigDecimal("0.2")).setScale(2,BigDecimal.ROUND_DOWN));
                        // 累加实收
                        paymentAmount = paymentAmount.add(electronic_reduce).add(service_reduce.multiply(new BigDecimal("0.8")).setScale(2,BigDecimal.ROUND_DOWN));
                        BigDecimal add = electronic_reduce.add(service_reduce.multiply(new BigDecimal("0.8")));
                        tChargingOrder.setTotalAmount(add.toString());
                    }else {
                        serviceCharge = serviceCharge.add(service_reduce);
                    }
                // 累加平台手续费
                if (tChargingOrder.getRechargeAmount()!=null){
                    commissionAmount = commissionAmount.add(tChargingOrder.getRechargeAmount().multiply(BigDecimal.valueOf(0.006))
                            .setScale(2,BigDecimal.ROUND_DOWN));
                    commissionAmount = commissionAmount.add(tChargingOrder.getRechargeAmount().multiply(BigDecimal.valueOf(0.006)).setScale(2,BigDecimal.ROUND_DOWN));
                }
                // 累加充电度数
                chargingCapacity = chargingCapacity.add(charging_capacity);
            }
            // 将chargingSecond 这是以秒为单位存放的总秒数 将其转化为xx小时xx分钟xx秒
            int hours = chargingSecond / 3600;
@@ -863,7 +867,9 @@
        }
        for (ChargingBillListVO chargingBillListVO : list1) {
            if (dto.getType() == 1){
                if (chargingBillListVO.getSiteId()!=0){
                    continue;
                }
            }else{
                if (chargingBillListVO.getSiteId()!=0&&!siteIds.contains(chargingBillListVO.getSiteId())){
                    continue;
@@ -886,7 +892,6 @@
            chargingBillListVO.setUid(chargingBillListVO.getId().toString());
            // 根据账单的出账时间 查询上个月的充电订单
            LocalDateTime localDate = chargingBillListVO.getBillTime().minusMonths(1);
//            LocalDateTime localDate = chargingBillListVO.getBillTime().minusDays(1);
            // 账单周期
            chargingBillListVO.setBillWeek(localDate.format(java.time.format.DateTimeFormatter.ofPattern("yyyy-MM")));
            // 获取 LocalDate 对象
@@ -952,8 +957,7 @@
                    // 累加平台手续费
                if (tChargingOrder.getOrderAmount()!=null){
                    commissionAmount = commissionAmount.add(tChargingOrder.getRechargeAmount().multiply(new BigDecimal("0.006")).setScale(2,BigDecimal.ROUND_DOWN));
                    commissionAmountTotal = commissionAmountTotal.add(tChargingOrder.getRechargeAmount().multiply(new BigDecimal("0.006"))
                            .setScale(2,BigDecimal.ROUND_DOWN));
                    commissionAmountTotal = commissionAmountTotal.add(tChargingOrder.getRechargeAmount().multiply(new BigDecimal("0.006")).setScale(2,BigDecimal.ROUND_DOWN));
                }
                // 累加充电度数