Pu Zhibing
2024-11-06 bb18fbb5291e13b0545b90e8d8641c8392f7a112
Merge remote-tracking branch 'origin/master'
5个文件已修改
123 ■■■■ 已修改文件
ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TParkingRecordServiceImpl.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-chargingPile/src/main/resources/mapper/chargingPile/TParkingRecordMapper.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/ChargingBillController.java 81 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingBillServiceImpl.java 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TParkingRecordServiceImpl.java
@@ -76,7 +76,8 @@
            }else{
                tParkingRecordVO.setFeeDuration(tParkingRecordVO.getParkingDuration()-tParkingRecordVO.getFreeDuration());
            }
            tParkingRecordVO.setOrderAmount(tParkingRecordVO.getOrderAmount().add(tParkingRecordVO.getTimeoutAmount()));
            tParkingRecordVO.setParkingFee(tParkingRecordVO.getOrderAmount());
        }
        pageInfo.setRecords(list);
        // 查询总数
ruoyi-service/ruoyi-chargingPile/src/main/resources/mapper/chargingPile/TParkingRecordMapper.xml
@@ -30,7 +30,7 @@
    <select id="pageList" resultType="com.ruoyi.chargingPile.api.vo.TParkingRecordVO">
        select
        tpr.id, tpr.code,tpr.app_user_id, tpr.license_plate, tpr.vehicle_color, tpr.charging_order_id, tpr.parking_lot_id, tpr.in_parking_time, tpr.out_parking_time,
        tpr.parking_duration, tpr.order_amount, tpr.status, tpr.out_parking_type, tpr.create_time,(tpr.order_amount - tpr.timeout_amount) as parkingFee,tpr.timeout_amount,
        tpr.parking_duration, tpr.order_amount, tpr.status, tpr.out_parking_type, tpr.create_time,(tpr.order_amount + tpr.timeout_amount) as parkingFee,tpr.timeout_amount,
        tpr.free_duration,(tpr.parking_duration - tpr.free_duration) as feeDuration,ts.name as siteName
        from t_parking_record tpr
        left join t_parking_lot tpl on tpr.parking_lot_id = tpl.id
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/ChargingBillController.java
@@ -41,11 +41,9 @@
import java.time.LocalTime;
import java.time.format.DateTimeFormatter;
import java.time.temporal.TemporalAdjusters;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.*;
import java.util.concurrent.atomic.AtomicInteger;
import java.util.stream.Collectors;
/**
 * <p>
@@ -66,7 +64,63 @@
    private SiteClient siteClient;
    @Resource
    private TChargingOrderService chargingOrderService;
//    @GetMapping(value = "/test")
//    public R accountAdd() {
//        TChargingBill tChargingBill = new TChargingBill();
//        Random random = new Random();
//        String randomDigits = random.ints(10, 0, 10) // 生成10个随机数字,范围在0-9
//                .mapToObj(String::valueOf)
//                .collect(Collectors.joining()); // 将其连接成一个字符串
//        tChargingBill.setCode("JSD"+randomDigits );
//        tChargingBill.setType(1);
//        tChargingBill.setSiteId(0);
//        tChargingBill.setBillTime(LocalDateTime.now().plusDays(1));
//        tChargingBill.setStatus(1);
//        tChargingBill.setOrderState(2);
//        tChargingBill.setBillType(1);
//        chargingBillService.save(tChargingBill);
//        TChargingBill tChargingBill1 = new TChargingBill();
//        Random random1 = new Random();
//        String randomDigits1 = random1.ints(10, 0, 10) // 生成10个随机数字,范围在0-9
//                .mapToObj(String::valueOf)
//                .collect(Collectors.joining()); // 将其连接成一个字符串
//        tChargingBill1.setCode("JSD"+randomDigits1);
//        tChargingBill1.setType(2);
//        tChargingBill1.setSiteId(13);
//        tChargingBill1.setBillTime(LocalDateTime.now().plusDays(1));
//        tChargingBill1.setStatus(1);
//        tChargingBill1.setOrderState(2);
//        tChargingBill1.setBillType(1);
//        chargingBillService.save(tChargingBill1);
//
//        TChargingBill tChargingBil3 = new TChargingBill();
//        Random random2 = new Random();
//        String randomDigits2 = random2.ints(10, 0, 10) // 生成10个随机数字,范围在0-9
//                .mapToObj(String::valueOf)
//                .collect(Collectors.joining()); // 将其连接成一个字符串
//        tChargingBil3.setCode("JSD"+randomDigits2 );
//        tChargingBil3.setType(1);
//        tChargingBil3.setSiteId(0);
//        tChargingBil3.setBillTime(LocalDateTime.now().plusDays(1));
//        tChargingBil3.setStatus(1);
//        tChargingBil3.setOrderState(2);
//        tChargingBil3.setBillType(2);
//        chargingBillService.save(tChargingBil3);
//        TChargingBill tChargingBill14 = new TChargingBill();
//        Random random3 = new Random();
//        String randomDigits3 = random3.ints(10, 0, 10) // 生成10个随机数字,范围在0-9
//                .mapToObj(String::valueOf)
//                .collect(Collectors.joining()); // 将其连接成一个字符串
//        tChargingBill14.setCode("JSD"+randomDigits3);
//        tChargingBill14.setType(2);
//        tChargingBill14.setSiteId(13);
//        tChargingBill14.setBillTime(LocalDateTime.now().plusDays(1));
//        tChargingBill14.setStatus(1);
//        tChargingBill14.setOrderState(2);
//        tChargingBill14.setBillType(2);
//        chargingBillService.save(tChargingBill14);
//        return R.ok();
//    }
    @PostMapping(value = "/accountBillList")
    @ApiOperation(value = "列表查询", tags = {"管理后台-账户结算账单"})
    public R<AccountListVO> accountBillList(@RequestBody ChargingListQuery dto) {
@@ -74,8 +128,7 @@
        ChargingBillVO res = chargingBillService.chargingBillList1(dto);
        List<ChargingBillListVO> records = res.getList().getRecords();
        accountListVO.setBillCount(records.size());
        accountListVO.setTotalAmount(res.getPaymentAmount().subtract(res.getRefundAmount())
                .subtract(res.getCommissionAmount().setScale(2,BigDecimal.ROUND_DOWN)).subtract(res.getSharingAmount()).setScale(2, BigDecimal.ROUND_DOWN));
        accountListVO.setTotalAmount(res.getPaymentAmount().subtract(res.getRefundAmount()).subtract(res.getCommissionAmount()).subtract(res.getSharingAmount()).setScale(2, BigDecimal.ROUND_DOWN));
        accountListVO.setPaymentAmount(res.getPaymentAmount().setScale(2, BigDecimal.ROUND_DOWN));
        accountListVO.setRefundAmount(res.getRefundAmount().setScale(2, BigDecimal.ROUND_DOWN));
        accountListVO.setCommissionAmount(res.getCommissionAmount().setScale(2, BigDecimal.ROUND_DOWN));
@@ -287,6 +340,7 @@
        BigDecimal paymentAmount = new BigDecimal("0");
        BigDecimal refundAmount = new BigDecimal("0");
        BigDecimal commissionAmount = new BigDecimal("0");
        BigDecimal sharingAmount = new BigDecimal("0");
        List<TChargingOrder> tChargingOrders = chargingOrderService.list(eq);
        // 累加支付金额
@@ -296,9 +350,9 @@
        int i =1;
        for (TChargingOrder tChargingOrder : tChargingOrders) {
            // 账单信息
            paymentAmount = paymentAmount.add(tChargingOrder.getChargeAmount());
            commissionAmount = commissionAmount.add(tChargingOrder.getPaymentAmount().multiply(bigDecimal1).setScale(2, BigDecimal.ROUND_DOWN))
                    ;
            paymentAmount = paymentAmount.add(tChargingOrder.getRechargeAmount());
            commissionAmount = commissionAmount.add(tChargingOrder.getPaymentAmount().multiply(bigDecimal1).setScale(2, BigDecimal.ROUND_DOWN));
            sharingAmount = sharingAmount.add(tChargingOrder.getSharingAmount());
            // 退款信息
            ChargingBillRefundExport chargingBillRefundExport = new ChargingBillRefundExport();
            ChargingBillPayExport chargingBillPayExport = new ChargingBillPayExport();
@@ -342,11 +396,11 @@
            chargingBillPayExport.setRechargeSerialNumber(tChargingOrder.getRechargeSerialNumber());
            chargingBillPayExport.setCode(tChargingOrder.getCode());
            chargingBillPayExport.setPayTime(tChargingOrder.getPayTime()!=null?DateUtils.parseDateToStr("yyyy-MM-dd HH:mm:ss",DateUtils.toDate(tChargingOrder.getPayTime())):"");
            chargingBillPayExport.setPaymentAmount(tChargingOrder.getChargeAmount().toString());
            chargingBillPayExport.setPaymentAmount(tChargingOrder.getRechargeAmount().toString());
            chargingBillPayExport.setTotal("");
            chargingBillPayExports.add(chargingBillPayExport);
            i++;
            bigDecimal = bigDecimal.add(tChargingOrder.getChargeAmount());
            bigDecimal = bigDecimal.add(tChargingOrder.getRechargeAmount());
        }
        if (!chargingBillPayExports.isEmpty()){
            chargingBillPayExports.get(0).setTotal(bigDecimal+"");
@@ -362,7 +416,8 @@
        }
        chargingBillExport.setPaymentAmount(paymentAmount);
        chargingBillExport.setRefundAmount(refundAmount);
        chargingBillExport.setIncome(paymentAmount.subtract(refundAmount).subtract(commissionAmount).setScale(2, BigDecimal.ROUND_DOWN));
        chargingBillExport.setIncome(paymentAmount.subtract(refundAmount).subtract(commissionAmount)
                .subtract(sharingAmount).setScale(2, BigDecimal.ROUND_DOWN));
        chargingBillExports.add(chargingBillExport);
        // 导出
        List<Map<String, Object>> sheetsList = new ArrayList<>();
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingBillServiceImpl.java
@@ -266,7 +266,7 @@
                if (data3!=null)tChargingOrder.setUserName(data3.getName());
                // 累加实收金额 支付结算金额
                if (tChargingOrder.getChargeAmount()!=null){
                    paymentAmount = paymentAmount.add(tChargingOrder.getChargeAmount());
                    paymentAmount = paymentAmount.add(tChargingOrder.getRechargeAmount());
                }
                // 总金额
                if (tChargingOrder.getOrderAmount()!=null){
@@ -383,7 +383,7 @@
            chargingBillVO.setExportList(tChargingOrders);
            for (TChargingOrder tChargingOrder : tChargingOrders) {
                if (tChargingOrder.getOrderAmount()!=null){
                    paymentAmountTotal = paymentAmountTotal.add(tChargingOrder.getChargeAmount());
                    paymentAmountTotal = paymentAmountTotal.add(tChargingOrder.getRechargeAmount());
                }
                // 累加订单金额
@@ -753,9 +753,9 @@
                    paymentAmountTotal = paymentAmountTotal.add(tChargingOrder.getPaymentAmount());
                }
                // 累加订单金额
                if (tChargingOrder.getOrderAmount()!=null){
                    orderAmount = orderAmount.add(tChargingOrder.getPaymentAmount());
                    orderAmountTotal = orderAmountTotal.add(tChargingOrder.getPaymentAmount());
                if (tChargingOrder.getRechargeAmount()!=null){
                    orderAmount = orderAmount.add(tChargingOrder.getRechargeAmount());
                    orderAmountTotal = orderAmountTotal.add(tChargingOrder.getRechargeAmount());
                }
                // 累加累计电费
                if (tChargingOrder.getElectrovalence()!=null){
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java
@@ -1216,9 +1216,12 @@
         BigDecimal income = new BigDecimal("0");
         BigDecimal electronicMoney = new BigDecimal("0");
         BigDecimal serviceMoney = new BigDecimal("0");
         BigDecimal commissionMoney = new BigDecimal("0");
         BigDecimal refundMoney = new BigDecimal("0");
         BigDecimal paymentMoney = new BigDecimal("0");
        for (ChargingOrderVO chargingOrderVO : list) {
            chargingOrderVO.setCommissionAmount(chargingOrderVO.getOrderAmount().multiply(new BigDecimal("0.006")));
            chargingOrderVO.setPlatFormMoney(chargingOrderVO.getOrderAmount().multiply(new BigDecimal("0.006")));
            chargingOrderVO.setCommissionAmount(chargingOrderVO.getOrderAmount()!=null?chargingOrderVO.getOrderAmount().multiply(new BigDecimal("0.006")):new BigDecimal("0"));
            chargingOrderVO.setPlatFormMoney(chargingOrderVO.getOrderAmount()!=null?chargingOrderVO.getOrderAmount().multiply(new BigDecimal("0.006")).setScale(2,BigDecimal.ROUND_DOWN):new BigDecimal("0"));
            chargingOrderVO.setUid(chargingOrderVO.getId()+"");
            TChargingGun data3 = chargingGunClient.getChargingGunById(chargingOrderVO.getChargingGunId()).getData();
            TChargingPile data2 = chargingPileClient.getChargingPileById(chargingOrderVO.getChargingPileId()).getData();
@@ -1259,6 +1262,8 @@
            }
        }
        for (ChargingOrderVO chargingOrderVO : list1) {
            paymentMoney= paymentMoney.add(chargingOrderVO.getPaymentAmount()!=null?chargingOrderVO.getPaymentAmount():new BigDecimal("0"));
            commissionMoney = commissionMoney.add(chargingOrderVO.getOrderAmount()!=null?chargingOrderVO.getOrderAmount().multiply(new BigDecimal("0.006")):new BigDecimal("0"));
            if (chargingOrderVO.getChargingCapacity()!=null){
                total = total.add(chargingOrderVO.getElectricity());
            }
@@ -1271,17 +1276,19 @@
                chargingOrderVO.setChargingSecond(l);
                time+=l;
            }
            electronicMoney = electronicMoney.add(chargingOrderVO.getElectrovalence());
            serviceMoney = serviceMoney.add(chargingOrderVO.getServiceCharge());
            income = income.add(chargingOrderVO.getPaymentAmount());
            List<TChargingOrderRefund> list2 = chargingOrderRefundService.lambdaQuery().eq(TChargingOrderRefund::getRefundStatus, 2)
                    .eq(TChargingOrderRefund::getChargingOrderId, chargingOrderVO.getId()).list();
            for (TChargingOrderRefund tChargingOrderRefund : list2) {
                if (tChargingOrderRefund.getRefundStatus()==2){
                    refundMoney = refundMoney.add(tChargingOrderRefund.getRefundTotalAmount());
                }
            }
            electronicMoney = electronicMoney.add(chargingOrderVO.getElectrovalence()!=null?chargingOrderVO.getElectrovalence():new BigDecimal("0"));
            serviceMoney = serviceMoney.add(chargingOrderVO.getServiceCharge()!=null?chargingOrderVO.getServiceCharge():new BigDecimal("0"));
        }
        tCharingOrderVO.setTotal(total);
        tCharingOrderVO.setTime(time);
        tCharingOrderVO.setIncome(income);
        tCharingOrderVO.setIncome(income.subtract(commissionMoney));
        tCharingOrderVO.setElectronicMoney(electronicMoney);
        tCharingOrderVO.setServiceMoney(serviceMoney);
        pageInfo.setRecords(list);