无关风月
2025-03-05 2c74e3e18bc372f33fcc2f4ea4ab1d9d393c2753
补充管理后台文件上传
9个文件已修改
427 ■■■■ 已修改文件
ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/vo/ChargingOrderListVO.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TApplyChargingPileController.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-chargingPile/src/main/resources/template/充电算帐单已出账.xlsx 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/ChargingBillController.java 18 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/FinancialSettlementController.java 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TChargingOrderController.java 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingBillServiceImpl.java 76 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java 193 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TChargingOrderMapper.xml 108 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/vo/ChargingOrderListVO.java
@@ -31,8 +31,12 @@
    private Long appUserCarId;
    @ApiModelProperty(value = "车牌号")
    private String plateNum;
    @ApiModelProperty(value = "三方平台充电订单号")
    private String startChargeSeq;
    @ApiModelProperty(value = "充电枪id")
    private Integer chargingGunId;
    @ApiModelProperty(value = "订单来源(1=自己平台,2=三方平台)")
    private Integer orderSource;
    @ApiModelProperty(value = "订单编号")
    private String code;
    @ApiModelProperty(value = "订单类型(1=充电订单(小程序),2=充电订单(刷卡))")
ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TApplyChargingPileController.java
@@ -285,7 +285,7 @@
        ChargingListQuery chargingListQuery = new ChargingListQuery();
        chargingListQuery.setUid(uid.getUid());
        chargingListQuery.setPageCurr(1);
        chargingListQuery.setPageSize(99999);
        chargingListQuery.setPageSize(9999999);
        ChargingBillVO data = chargingOrderClient.chargingBillListR(chargingListQuery).getData();
        List<ChargingBillVO> chargingBillVOS = new ArrayList<>();
@@ -308,8 +308,9 @@
            try (ExcelWriter excelWriter = excelWriterBuilder.withTemplate(stream).build()) {
                WriteSheet writeSheet = EasyExcel.writerSheet().build();
                FillConfig fillConfig = FillConfig.builder().direction(WriteDirectionEnum.HORIZONTAL).build();
                FillConfig fillConfig2 = FillConfig.builder().direction(WriteDirectionEnum.VERTICAL).build();
                excelWriter.fill(new FillWrapper("data1", chargingBillVOS), fillConfig, writeSheet);
                excelWriter.fill(new FillWrapper("data2", data.getExportList()), fillConfig, writeSheet);
                excelWriter.fill(new FillWrapper("data2", data.getExportList()), fillConfig2, writeSheet);
                excelWriter.finish();
            } catch (Exception e) {
                return R.fail("excel导出失败!");
@@ -668,7 +669,7 @@
        ChargingListQuery chargingListQuery = new ChargingListQuery();
        chargingListQuery.setUid(uid.getUid());
        chargingListQuery.setPageCurr(1);
        chargingListQuery.setPageSize(99999);
        chargingListQuery.setPageSize(9999999);
        ChargingBillVO data = chargingOrderClient.chargingBillListR(chargingListQuery).getData();
        List<ChargingBillVO> chargingBillVOS = new ArrayList<>();
ruoyi-service/ruoyi-chargingPile/src/main/resources/template/充电算帐单已出账.xlsx
Binary files differ
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/ChargingBillController.java
@@ -377,7 +377,19 @@
        int i =1;
        for (TChargingOrder tChargingOrder : tChargingOrders) {
            // 账单信息
            paymentAmount = paymentAmount.add(tChargingOrder.getRechargeAmount());
            if (!tChargingOrder.getOrderSource().equals(2)){
                chargingBillExport.setPaymentAmount(tChargingOrder.getRechargeAmount());
                paymentAmount = paymentAmount.add(tChargingOrder.getRechargeAmount());
            }else{
                chargingBillExport.setPaymentAmount(tChargingOrder.getServiceCharge()!=null?
                        tChargingOrder.getServiceCharge().multiply(new BigDecimal("0.2")).setScale(2, BigDecimal.ROUND_DOWN)
                        :new BigDecimal("0"));
                paymentAmount = paymentAmount.add(tChargingOrder.getServiceCharge()!=null?
                        tChargingOrder.getServiceCharge().multiply(new BigDecimal("0.2")).setScale(2, BigDecimal.ROUND_DOWN)
                        :new BigDecimal("0"));
            }
            commissionAmount = commissionAmount.add(tChargingOrder.getRechargeAmount().multiply(bigDecimal1).setScale(2, BigDecimal.ROUND_DOWN));
            sharingAmount = sharingAmount.add(tChargingOrder.getSharingAmount()!=null?tChargingOrder.getSharingAmount():new BigDecimal("0"));
            // 退款信息
@@ -443,8 +455,8 @@
        }
        chargingBillExport.setPaymentAmount(paymentAmount);
        chargingBillExport.setRefundAmount(refundAmount);
        chargingBillExport.setIncome(paymentAmount.subtract(refundAmount).subtract(commissionAmount)
                .subtract(sharingAmount).setScale(2, BigDecimal.ROUND_DOWN));
        chargingBillExport.setIncome(paymentAmount.subtract(refundAmount)
                .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/controller/FinancialSettlementController.java
@@ -126,14 +126,11 @@
    @ApiOperation(value = "充电时段统计-导出", tags = {"管理后台-财务结算"})
    @PutMapping("/export")
    public void export(@RequestBody ChargingListQuery dto) {
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        ChargingOrderTimeVO res = chargingOrderService.chargingList(dto);
        List<TChargingOrderExport> tChargingOrderExports = new ArrayList<>();
        List<ChargingOrderListVO> exportList = res.getExportList();
        int i = 0;
        int i = 1;
        List<TChargingGun> data = chargingGunClient.getAllGun().getData();
        List<Site> data9 = siteClient.getSiteAll().getData();
        List<TAppUser> data6 = appUserClient.getAllUser().getData();
        List<Partner> data7 = siteClient.getAllPartner().getData();
@@ -262,7 +259,7 @@
                tChargingOrderExport.setCarType(tAppUserCar.getVehicleModel());
                tChargingOrderExport.setCarBrand(tAppUserCar.getVehicleBrand());
            }
            tChargingOrderExport.setOrderCode(chargingOrderListVO.getCode());
            tChargingOrderExport.setOrderCode(chargingOrderListVO.getStartChargeSeq());
            tChargingOrderExport.setIsSingle("是");
            tChargingOrderExport.setPayTime(chargingOrderListVO.getPayTime()+"");
            tChargingOrderExport.setElectrovalenceSiteName("四川明星新能源科技有限公司");
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TChargingOrderController.java
@@ -1055,9 +1055,21 @@
        map.put("shopAmount",data1);
        BigDecimal data2 =   vipOrderService.getSumAmout(sixBefore);
        map.put("vipAmount",data2);
        List<TChargingOrder> list = chargingOrderService.lambdaQuery().between(TChargingOrder::getCreateTime, sixBefore, LocalDate.now()).list();
        BigDecimal serviceCharge = new BigDecimal("0");
        BigDecimal commissionAmount = new BigDecimal("0");
        for (TChargingOrder chargingOrder : list) {
            if (chargingOrder.getOrderSource().equals(2)){
                serviceCharge = serviceCharge.add(chargingOrder.getServiceCharge()!=null?chargingOrder.getServiceCharge().multiply(new BigDecimal("0.2")).setScale(2,BigDecimal.ROUND_DOWN):new BigDecimal("0"));
                commissionAmount = commissionAmount.add(chargingOrder.getServiceCharge()!=null?chargingOrder.getServiceCharge().multiply(new BigDecimal("0.2")).setScale(2,BigDecimal.ROUND_DOWN):new BigDecimal("0"));
            }else{
                serviceCharge = serviceCharge.add(chargingOrder.getServiceCharge());
            }
        }
        map.put("service_charge",serviceCharge);
        map.put("commission_amount",commissionAmount);
        return R.ok(map);
    }
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingBillServiceImpl.java
@@ -315,6 +315,8 @@
                }
                TAppUser data3 = userList.stream().filter(e -> e.getId().equals(tChargingOrder.getAppUserId())).findFirst().orElse(null);
                if (data3!=null)tChargingOrder.setUserName(data3.getName());
                if (tChargingOrder.getAppUserCarId()!=null){
                    TAppUserCar data4 = carList.stream().filter(e -> e.getId().equals(tChargingOrder.getAppUserCarId())).findFirst().orElse(null);
                    if (data4!=null){
@@ -324,13 +326,12 @@
                }else{
                    tChargingOrder.setLicensePlate(tChargingOrder.getPlateNum());
                }
                if (data3!=null)tChargingOrder.setUserName(data3.getName());
                // 累加实收金额 支付结算金额
                if (tChargingOrder.getRechargeAmount()!=null){
                    paymentAmount = paymentAmount.add(tChargingOrder.getPaymentAmount());
                }
                // 总金额
                if (tChargingOrder.getOrderAmount()!=null){
                if (tChargingOrder.getRechargeAmount()!=null){
                    orderAmount = orderAmount.add(tChargingOrder.getRechargeAmount());
                }
                // 累加累计电费
@@ -375,7 +376,7 @@
            }
            chargingBillListVO.setPaymentAmount(paymentAmount.subtract(sharingAmount));
            chargingBillListVO.setOrderAmount(paymentAmount);
            chargingBillListVO.setOrderAmount(refundAmount);
            chargingBillListVO.setRefundAmount(refundAmount == null?BigDecimal.ZERO:refundAmount);
            chargingBillListVO.setElectrovalence(electrovalence == null?BigDecimal.ZERO:electrovalence);
            chargingBillListVO.setServiceCharge(serviceCharge == null?BigDecimal.ZERO:serviceCharge);
@@ -430,17 +431,14 @@
                    e.getSiteId().equals(chargingBillListVO.getSiteId()) : true &&
                    e.getPayTime().isBefore(lastDayOfMonth.withHour(23).withMinute(59).withSecond(59))
                    && e.getPayTime().isAfter(firstDayOfMonth.withHour(0).withMinute(0).withSecond(0))).collect(Collectors.toList());
            tChargingOrders1.addAll(tChargingOrders);
            chargingBillVO.setCategory("");
            chargingBillVO.setExportList(tChargingOrders);
            for (TChargingOrder tChargingOrder : tChargingOrders) {
                if (tChargingOrder.getOrderAmount()!=null){
                    paymentAmountTotal = paymentAmountTotal.add(tChargingOrder.getPaymentAmount());
                }
                // 累加订单金额
                if (tChargingOrder.getOrderAmount()!=null){
                    orderAmountTotal = orderAmountTotal.add(tChargingOrder.getPaymentAmount());
                if (tChargingOrder.getRechargeAmount()!=null){
                    orderAmountTotal = orderAmountTotal.add(tChargingOrder.getRechargeAmount());
                }
                // 累加累计电费
                if (tChargingOrder.getElectrovalence()!=null){
@@ -481,10 +479,12 @@
                    discountTotal = discountTotal.add(tChargingOrder.getVipDiscountAmount());
                }
            }
            tChargingOrders1.addAll(tChargingOrders);
            chargingBillVO.setExportList(tChargingOrders);
        }
        chargingBillVO.setOrderCount(i);
        chargingBillVO.setChargingCapacity(chargingCapacityTotal);
        chargingBillVO.setPaymentAmount(paymentAmountTotal.subtract(sharingAmountTotal));
        chargingBillVO.setPaymentAmount(paymentAmountTotal);
        chargingBillVO.setOrderAmount(orderAmountTotal);
        chargingBillVO.setElectrovalence(electrovalenceTotal);
        chargingBillVO.setServiceCharge(serviceChargeTotal);
@@ -570,7 +570,6 @@
            siteIds.add(-1);
        }
            dto.setSiteIds(siteIds);
        List<ChargingBillListVO> list = this.baseMapper.chargingBillList(pageInfo,dto,startTime1,startTime2);
        List<ChargingBillListVO> list1 = this.baseMapper.chargingBillListNoLimit(dto,startTime1,startTime2);
        BigDecimal paymentAmountTotal = new BigDecimal("0");
@@ -656,8 +655,10 @@
            chargingBillVO.setCategory("");
            chargingBillListVO.setOrderCount(tChargingOrders.size());
            chargingBillVO.setExportList(tChargingOrders);
            int t = 1;
            for (TChargingOrder tChargingOrder : tChargingOrders) {
                tChargingOrder.setXuhao(t);
                t++;
                if (tChargingOrder.getRechargePaymentType()!=null && tChargingOrder.getRechargePaymentType()==1){
                    chargingBillListVO.setPayTypeName("微信商户");
                }
@@ -753,8 +754,12 @@
                }else{
                    tChargingOrder.setLicensePlate(tChargingOrder.getPlateNum());
                }
                if (data3!=null)tChargingOrder.setUserName(data3.getName());
                if ( tChargingOrder.getPaymentAmount()!=null){
                if (data3!=null){
                    tChargingOrder.setUserName(data3.getName());
                    tChargingOrder.setPhone(data3.getPhone());
                }
                if ( tChargingOrder.getPaymentAmount()!=null&&(!tChargingOrder.getOrderSource().equals(2))){
                    // 实收
                    paymentAmount = paymentAmount.add(tChargingOrder.getPaymentAmount());
                }
                // 总金额
@@ -770,17 +775,22 @@
                }
                // 累加累计服务费
                if (tChargingOrder.getServiceCharge()!=null){
                serviceCharge = serviceCharge.add(tChargingOrder.getServiceCharge());
                    if (tChargingOrder.getOrderSource().equals(2)) {
                        serviceCharge = serviceCharge.add(tChargingOrder.getServiceCharge().multiply(new BigDecimal("0.2")).setScale(2, BigDecimal.ROUND_DOWN));
                        // 累加平台分佣
                        sharingAmount = sharingAmount.add(tChargingOrder.getServiceCharge().multiply(new BigDecimal("0.2")).setScale(2,BigDecimal.ROUND_DOWN));
                        // 累加实收
                        paymentAmount = paymentAmount.add(tChargingOrder.getServiceCharge().multiply(new BigDecimal("0.2")).setScale(2,BigDecimal.ROUND_DOWN));
                    }else {
                        serviceCharge = serviceCharge.add(tChargingOrder.getServiceCharge());
                    }
                }
                // 累加平台手续费
                if (tChargingOrder.getOrderAmount()!=null){
                    commissionAmount = commissionAmount.add(tChargingOrder.getRechargeAmount().multiply(BigDecimal.valueOf(0.006))
                            .setScale(2,BigDecimal.ROUND_DOWN));
                }
                // 累加平台分佣
                if (tChargingOrder.getSharingAmount()!=null){
                    sharingAmount = sharingAmount.add(tChargingOrder.getSharingAmount());
                }
                // 累加充电度数
                if (tChargingOrder.getChargingCapacity()!=null){
                    chargingCapacity = chargingCapacity.add(tChargingOrder.getChargingCapacity());
@@ -857,11 +867,12 @@
            BigDecimal chargingCapacity = new BigDecimal("0");
            chargingBillListVO.setOrderCount(tChargingOrders.size());
            for (TChargingOrder tChargingOrder : tChargingOrders) {
                // 累加实收金额 支付金额减去退款金额
                if (tChargingOrder.getPaymentAmount()!=null){
                // 累加实收金额
                if ( tChargingOrder.getPaymentAmount()!=null&&(!tChargingOrder.getOrderSource().equals(2))){
                    paymentAmount = paymentAmount.add(tChargingOrder.getPaymentAmount());
                    paymentAmountTotal = paymentAmountTotal.add(tChargingOrder.getPaymentAmount());
                }
                // 累加订单金额
                if (tChargingOrder.getRechargeAmount()!=null){
                    orderAmount = orderAmount.add(tChargingOrder.getRechargeAmount());
@@ -877,20 +888,29 @@
                }
                // 累加累计服务费
                if (tChargingOrder.getServiceCharge()!=null){
                    serviceCharge = serviceCharge.add(tChargingOrder.getServiceCharge());
                    serviceChargeTotal = serviceChargeTotal.add(tChargingOrder.getServiceCharge());
                    if (tChargingOrder.getOrderSource().equals(2)) {
                        serviceCharge = serviceCharge.add(tChargingOrder.getServiceCharge().multiply(new BigDecimal("0.2")).setScale(2, BigDecimal.ROUND_DOWN));
                        serviceChargeTotal = serviceChargeTotal.add(tChargingOrder.getServiceCharge().multiply(new BigDecimal("0.2")).setScale(2, BigDecimal.ROUND_DOWN));
                        // 累加平台分佣
                        sharingAmount = sharingAmount.add(tChargingOrder.getServiceCharge().multiply(new BigDecimal("0.2")).setScale(2, BigDecimal.ROUND_DOWN));
                        sharingAmountTotal = sharingAmountTotal.add(tChargingOrder.getServiceCharge().multiply(new BigDecimal("0.2")).setScale(2, BigDecimal.ROUND_DOWN));
                        // 累加实收
                        paymentAmount = paymentAmount.add(tChargingOrder.getServiceCharge().multiply(new BigDecimal("0.2")).setScale(2,BigDecimal.ROUND_DOWN));
                        paymentAmountTotal = paymentAmountTotal.add(tChargingOrder.getServiceCharge().multiply(new BigDecimal("0.2")).setScale(2,BigDecimal.ROUND_DOWN));
                    }else{
                        serviceCharge = serviceCharge.add(tChargingOrder.getServiceCharge());
                        serviceChargeTotal = serviceChargeTotal.add(tChargingOrder.getServiceCharge());
                    }
                }
                // 累加平台手续费
                        // 累加平台手续费
                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));
                }
                // 累加平台分佣
                if (tChargingOrder.getSharingAmount()!=null){
                    sharingAmount = sharingAmount.add(tChargingOrder.getSharingAmount());
                    sharingAmountTotal = sharingAmountTotal.add(tChargingOrder.getSharingAmount());
                }
                // 累加充电度数
                if (tChargingOrder.getElectricity()!=null){
                    chargingCapacity = chargingCapacity.add(tChargingOrder.getElectricity());
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java
@@ -1317,9 +1317,25 @@
         BigDecimal commissionMoney = new BigDecimal("0");
         BigDecimal refundMoney = new BigDecimal("0");
         BigDecimal paymentMoney = new BigDecimal("0");
        List<String> collect2 = list.stream().map(TChargingOrder::getCode).collect(Collectors.toList());
        List<TChargingOrderAccountingStrategy> list3 = chargingOrderAccountingStrategyService.list(new QueryWrapper<TChargingOrderAccountingStrategy>());
        List<Long> collect = list.stream().map(TChargingOrder::getId).collect(Collectors.toList());
        List<TChargingOrderAccountingStrategy> list3 = new ArrayList<>();
        if(collect.size()>=800){
            int i = collect.size() / 800;
            int k = collect.size() % 800;
            for (int j = 0; j <= i; j++) {
                if(j==i&& k>0){
                    list3.addAll(chargingOrderAccountingStrategyService.lambdaQuery()
                            .in(TChargingOrderAccountingStrategy::getChargingOrderId,collect.subList(j * 800, j * 800 + k)).list());
                }else {
                    List<Long> longs = collect.subList(j * 800, (j + 1) * 800);
                    list3.addAll(chargingOrderAccountingStrategyService.lambdaQuery()
                            .in(TChargingOrderAccountingStrategy::getChargingOrderId,longs).list());
                }
            }
        }else {
            list3 = chargingOrderAccountingStrategyService.lambdaQuery()
                    .in(TChargingOrderAccountingStrategy::getChargingOrderId,collect).list();
        }
        for (ChargingOrderVO chargingOrderVO : list) {
            if (roleType == 2){
                for (Integer siteId : siteIds) {
@@ -1327,8 +1343,8 @@
                    List<Boolean> t1= partnerClient.getChargingOrderMenu(sysUser.getObjectId(),siteId).getData();
                    chargingOrderVO.setAuthRecord(t1.get(0));
                }
            }
            chargingOrderVO.setSharingAmount(chargingOrderVO.getServiceCharge()!=null?chargingOrderVO.getServiceCharge().multiply(new BigDecimal("0.2")).setScale(2,BigDecimal.ROUND_DOWN):new BigDecimal("0"));
            chargingOrderVO.setCommissionAmount(chargingOrderVO.getRechargeAmount()!=null?chargingOrderVO.getRechargeAmount().multiply(new BigDecimal("0.006")):new BigDecimal("0"));
            chargingOrderVO.setPlatFormMoney(chargingOrderVO.getRechargeAmount()!=null?chargingOrderVO.getRechargeAmount().multiply(new BigDecimal("0.006")).setScale(2,BigDecimal.ROUND_DOWN):new BigDecimal("0"));
            chargingOrderVO.setUid(chargingOrderVO.getId()+"");
@@ -1383,7 +1399,12 @@
                .eq(TChargingOrderRefund::getRefundStatus,2).list();
        for (ChargingOrderVO chargingOrderVO : list1) {
            paymentMoney= paymentMoney.add(chargingOrderVO.getPaymentAmount()!=null?chargingOrderVO.getPaymentAmount():new BigDecimal("0"));
            if (!chargingOrderVO.getOrderSource().equals(2)) {
                paymentMoney = paymentMoney.add(chargingOrderVO.getPaymentAmount() != null ? chargingOrderVO.getPaymentAmount() : new BigDecimal("0"));
            }else{
                paymentMoney = paymentMoney.add(chargingOrderVO.getServiceCharge() != null ? chargingOrderVO.getServiceCharge().multiply(new BigDecimal("0.2")).setScale(2, BigDecimal.ROUND_DOWN) : new BigDecimal("0"));
            }
            if (chargingOrderVO.getRechargeAmount()!=null){
                commissionMoney = commissionMoney.add(chargingOrderVO.getRechargeAmount().multiply(new BigDecimal("0.006")).setScale(2,BigDecimal.ROUND_DOWN));
            }
@@ -1403,7 +1424,11 @@
                    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"));
            if (!chargingOrderVO.getOrderSource().equals(2)){
                serviceMoney = serviceMoney.add(chargingOrderVO.getServiceCharge()!=null?chargingOrderVO.getServiceCharge():new BigDecimal("0"));
            }else{
                serviceMoney = serviceMoney.add(chargingOrderVO.getServiceCharge()!=null?chargingOrderVO.getServiceCharge().multiply(new BigDecimal("0.2")).setScale(2,BigDecimal.ROUND_DOWN):new BigDecimal("0"));
            }
        }
        tCharingOrderVO.setTotal(total);
        tCharingOrderVO.setTime(time);
@@ -1491,6 +1516,8 @@
    @Resource
    private SysUserClient sysUserClient;
    @Override
    public ChargingOrderTimeVO chargingList(ChargingListQuery dto) {
        String startTime1 = null;
@@ -1689,7 +1716,13 @@
                        "0"+"%(平)/"+
                        "0"+"%(谷)");
            }
            if (chargingOrderListVO.getOrderSource().equals(2)){
                chargingOrderListVO.setSharingAmount(chargingOrderListVO.getServiceCharge()!=null?
                        chargingOrderListVO.getServiceCharge().multiply(new BigDecimal("0.2")).setScale(2,BigDecimal.ROUND_HALF_UP)
                        :new BigDecimal("0"));
            }else{
                chargingOrderListVO.setSharingAmount(new BigDecimal("0"));
            }
        }
        // 不分页
        PageInfo<ChargingOrderListVO> pageInfo1 = new PageInfo<>(1,999999999);
@@ -1742,38 +1775,96 @@
        BigDecimal ping = new BigDecimal("0");
        BigDecimal gu = new BigDecimal("0");
        List<Long> collect = list1.stream().map(ChargingOrderListVO::getId).collect(Collectors.toList());
        List<TChargingOrderAccountingStrategy> chargingOrderAccountingStrategies = chargingOrderAccountingStrategyService.lambdaQuery()
                .in(TChargingOrderAccountingStrategy::getChargingOrderId,collect).list();
        List<TChargingOrderAccountingStrategy> chargingOrderAccountingStrategies = new ArrayList<>();
        if(collect.size()>=800){
            int i = collect.size() / 800;
            int k = collect.size() % 800;
            for (int j = 0; j <= i; j++) {
                if(j==i&& k>0){
                    chargingOrderAccountingStrategies.addAll(chargingOrderAccountingStrategyService.lambdaQuery()
                            .in(TChargingOrderAccountingStrategy::getChargingOrderId,collect.subList(j * 800, j * 800 + k)).list());
                }else {
                    List<Long> longs = collect.subList(j * 800, (j + 1) * 800);
                    chargingOrderAccountingStrategies.addAll(chargingOrderAccountingStrategyService.lambdaQuery()
                            .in(TChargingOrderAccountingStrategy::getChargingOrderId,longs).list());
                }
            }
        }else {
            chargingOrderAccountingStrategies = chargingOrderAccountingStrategyService.lambdaQuery()
                    .in(TChargingOrderAccountingStrategy::getChargingOrderId,collect).list();
        }
        for (ChargingOrderListVO chargingOrderListVO : list1) {
            if (chargingOrderListVO.getChargingCapacity()!=null)electronic = electronic.add(chargingOrderListVO.getElectricity());
            if (chargingOrderListVO.getPaymentAmount()!=null)paymentAmount = paymentAmount.add(chargingOrderListVO.getPaymentAmount());
            if (chargingOrderListVO.getPaymentAmount()!=null){
                if (chargingOrderListVO.getOrderSource().equals(2)){
                    paymentAmount = paymentAmount.add(chargingOrderListVO.getServiceCharge()!=null?chargingOrderListVO.getServiceCharge().multiply(new BigDecimal("0.2").setScale(2,BigDecimal.ROUND_HALF_UP)):new BigDecimal("0"));
                }else{
                    paymentAmount = paymentAmount.add(chargingOrderListVO.getPaymentAmount());
                }
            }
            if (chargingOrderListVO.getElectrovalence()!=null)electrovalence = electrovalence.add(chargingOrderListVO.getElectrovalence());
            if (chargingOrderListVO.getServiceCharge()!=null)serviceCharge = serviceCharge.add(chargingOrderListVO.getServiceCharge());
            List<TChargingOrderAccountingStrategy> list2 = chargingOrderAccountingStrategies.stream().filter(e -> e.getChargingOrderId().equals(chargingOrderListVO.getId()))
                    .collect(Collectors.toList());
            for (TChargingOrderAccountingStrategy temp : list2) {
                switch (temp.getType()){
                    case 1:
                        if (temp.getChargingCapacity()!=null)jian = jian.add(temp.getChargingCapacity());
                        if (temp.getChargingCapacity()!=null)jianElectronic = jianElectronic.add(temp.getElectrovalence());
                        if (temp.getChargingCapacity()!=null)jianService = jianService.add(temp.getServiceCharge());
                        break;
                    case 2:
                        if (temp.getChargingCapacity()!=null)feng = feng.add(temp.getChargingCapacity());
                        if (temp.getChargingCapacity()!=null)fengElectronic = fengElectronic.add(temp.getElectrovalence());
                        if (temp.getChargingCapacity()!=null)fengService = fengService.add(temp.getServiceCharge());
                        break;
                    case 3:
                        if (temp.getChargingCapacity()!=null)ping = ping.add(temp.getChargingCapacity());
                        if (temp.getChargingCapacity()!=null)pingElectronic = pingElectronic.add(temp.getElectrovalence());
                        if (temp.getChargingCapacity()!=null)pingService = pingService.add(temp.getServiceCharge());
                        break;
                    case 4:
                        if (temp.getChargingCapacity()!=null)gu = gu.add(temp.getChargingCapacity());
                        if (temp.getChargingCapacity()!=null)guElectronic = guElectronic.add(temp.getElectrovalence());
                        if (temp.getChargingCapacity()!=null)guService = guService.add(temp.getServiceCharge());
                        break;
            if (chargingOrderListVO.getServiceCharge()!=null){
                if (chargingOrderListVO.getOrderSource().equals(2)){
                    serviceCharge = serviceCharge.add(chargingOrderListVO.getServiceCharge().multiply(new BigDecimal("0.2").setScale(2,BigDecimal.ROUND_HALF_UP)));
                }else{
                    serviceCharge = serviceCharge.add(chargingOrderListVO.getServiceCharge());
                }
            }
            if (!chargingOrderListVO.getOrderSource().equals(2)){
                List<TChargingOrderAccountingStrategy> list2 = chargingOrderAccountingStrategies.stream().filter(e -> e.getChargingOrderId().equals(chargingOrderListVO.getId()))
                        .collect(Collectors.toList());
                for (TChargingOrderAccountingStrategy temp : list2) {
                    switch (temp.getType()){
                        case 1:
                            if (temp.getChargingCapacity()!=null)jian = jian.add(temp.getChargingCapacity());
                            if (temp.getElectrovalence()!=null)jianElectronic = jianElectronic.add(temp.getElectrovalence());
                            if (temp.getServiceCharge()!=null)jianService = jianService.add(temp.getServiceCharge());
                            break;
                        case 2:
                            if (temp.getChargingCapacity()!=null)feng = feng.add(temp.getChargingCapacity());
                            if (temp.getElectrovalence()!=null)fengElectronic = fengElectronic.add(temp.getElectrovalence());
                            if (temp.getServiceCharge()!=null)fengService = fengService.add(temp.getServiceCharge());
                            break;
                        case 3:
                            if (temp.getChargingCapacity()!=null)ping = ping.add(temp.getChargingCapacity());
                            if (temp.getElectrovalence()!=null)pingElectronic = pingElectronic.add(temp.getElectrovalence());
                            if (temp.getServiceCharge()!=null)pingService = pingService.add(temp.getServiceCharge());
                            break;
                        case 4:
                            if (temp.getChargingCapacity()!=null)gu = gu.add(temp.getChargingCapacity());
                            if (temp.getElectrovalence()!=null)guElectronic = guElectronic.add(temp.getElectrovalence());
                            if (temp.getServiceCharge()!=null)guService = guService.add(temp.getServiceCharge());
                            break;
                    }
                }
            }else{
                List<TChargingOrderAccountingStrategy> list2 = chargingOrderAccountingStrategies.stream().filter(e -> e.getChargingOrderId().equals(chargingOrderListVO.getId()))
                        .collect(Collectors.toList());
                for (TChargingOrderAccountingStrategy temp : list2) {
                    switch (temp.getType()){
                        case 1:
                            if (temp.getChargingCapacity()!=null)jian = jian.add(temp.getChargingCapacity());
                            if (temp.getElectrovalence()!=null)jianElectronic = jianElectronic.add(temp.getElectrovalence());
                            if (temp.getServiceCharge()!=null)jianService = jianService.add(temp.getServiceCharge().multiply(new BigDecimal("0.2").setScale(2,BigDecimal.ROUND_HALF_UP)));
                            break;
                        case 2:
                            if (temp.getChargingCapacity()!=null)feng = feng.add(temp.getChargingCapacity());
                            if (temp.getElectrovalence()!=null)fengElectronic = fengElectronic.add(temp.getElectrovalence());
                            if (temp.getServiceCharge()!=null)fengService = fengService.add(temp.getServiceCharge().multiply(new BigDecimal("0.2").setScale(2,BigDecimal.ROUND_HALF_UP)));
                            break;
                        case 3:
                            if (temp.getChargingCapacity()!=null)ping = ping.add(temp.getChargingCapacity());
                            if (temp.getElectrovalence()!=null)pingElectronic = pingElectronic.add(temp.getElectrovalence());
                            if (temp.getServiceCharge()!=null)pingService = pingService.add(temp.getServiceCharge().multiply(new BigDecimal("0.2").setScale(2,BigDecimal.ROUND_HALF_UP)));
                            break;
                        case 4:
                            if (temp.getChargingCapacity()!=null)gu = gu.add(temp.getChargingCapacity());
                            if (temp.getElectrovalence()!=null)guElectronic = guElectronic.add(temp.getElectrovalence());
                            if (temp.getServiceCharge()!=null)guService = guService.add(temp.getServiceCharge().multiply(new BigDecimal("0.2").setScale(2,BigDecimal.ROUND_HALF_UP)));
                            break;
                    }
                }
            }
        }
@@ -1782,28 +1873,29 @@
        chargingOrderTimeVO.setPaymentAmount(paymentAmount);
        chargingOrderTimeVO.setElectrovalence(electrovalence);
        chargingOrderTimeVO.setServiceCharge(serviceCharge);
        // 计算尖峰平谷充电量占比
        // 计算尖峰平谷充电到账占比
        BigDecimal add = jianElectronic.add(fengElectronic).add(pingElectronic).add(guElectronic);
        // 计算尖峰平谷服务费占比
        BigDecimal add1 = jianService.add(fengService).add(pingService).add(guService);
        // 计算尖峰平谷充电到账占比
        // 计算尖峰平谷充电量占比
        BigDecimal add2 = jian.add(feng).add(ping).add(gu);
        if (add.compareTo(new BigDecimal("0"))!=0){
            chargingOrderTimeVO.setCapacityProportion(jianElectronic+"度/"+fengElectronic+"度/"+pingElectronic+"度/"+guElectronic+"度-"
                    +jianElectronic.divide(add,4,BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal("100"))+"%/"
                    +fengElectronic.divide(add,4,BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal("100"))+"%/"
                    +pingElectronic.divide(add,4,BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal("100"))+"%/"
                    +guElectronic.divide(add,4,BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal("100"))+"%");
            chargingOrderTimeVO.setCapacityProportion(jian+"度/"+feng+"度/"+ping+"度/"+gu+"度-"
                    +jian.divide(add2,4,BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal("100"))+"%/"
                    +feng.divide(add2,4,BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal("100"))+"%/"
                    +ping.divide(add2,4,BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal("100"))+"%/"
                    +gu.divide(add2,4,BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal("100"))+"%");
            chargingOrderTimeVO.setServiceProportion(jianService+"元/"+fengService+"元/"+pingService+"元/"+guService+"元-"
                    +jianService.divide(add1,4,BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal("100"))+"%/"
                    +fengService.divide(add1,4,BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal("100"))+"%/"
                    +pingService.divide(add1,4,BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal("100"))+"%/"
                    +guService.divide(add1,4,BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal("100"))+"%");
            chargingOrderTimeVO.setElectronicProportion(jian+"元/"+feng+"元/"+ping+"元/"+gu+"元-"
                    +jian.divide(add2,4,BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal("100"))+"%/"
                    +feng.divide(add2,4,BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal("100"))+"%/"
                    +ping.divide(add2,4,BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal("100"))+"%/"
                    +gu.divide(add2,4,BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal("100"))+"%");
            chargingOrderTimeVO.setElectronicProportion(jianElectronic+"元/"+fengElectronic+"元/"+pingElectronic+"元/"+guElectronic+"元-"
                    +jianElectronic.divide(add,4,BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal("100"))+"%/"
                    +fengElectronic.divide(add,4,BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal("100"))+"%/"
                    +pingElectronic.divide(add,4,BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal("100"))+"%/"
                    +guElectronic.divide(add,4,BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal("100"))+"%");
        }else{
            chargingOrderTimeVO.setCapacityProportion(jianElectronic+"度/"+fengElectronic+"度/"+pingElectronic+"度/"+guElectronic+"度-"
                    +"0"+"%/"
@@ -1933,7 +2025,12 @@
        chargingOrderListInfoVO.setUid(chargingOrder.getId().toString());
        chargingOrderListInfoVO.setCouponDiscountAmount(chargingOrder.getCouponDiscountAmount());
        chargingOrderListInfoVO.setVipDiscountAmount(chargingOrder.getVipDiscountAmount());
        chargingOrderListInfoVO.setSharingAmount(chargingOrder.getSharingAmount());
        if (chargingOrder.getOrderSource().equals(2)){
            chargingOrderListInfoVO.setSharingAmount(chargingOrder.getServiceCharge().multiply(new BigDecimal("0.2")).setScale(2, BigDecimal.ROUND_HALF_UP));
        }else{
            chargingOrderListInfoVO.setSharingAmount(chargingOrder.getSharingAmount());
        }
        // 查询费用明细列表
        List<TChargingOrderAccountingStrategy> list = chargingOrderAccountingStrategyService.lambdaQuery()
                .eq(TChargingOrderAccountingStrategy::getChargingOrderId, chargingOrder.getId())
ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TChargingOrderMapper.xml
@@ -336,13 +336,21 @@
        SELECT
            DATE_FORMAT( subquery.create_time, '%m' ) AS MONTH,
    SUM(electrovalence) AS electrovalence,
    SUM(service_charge) AS service_charge
        SUM(
        CASE
        WHEN subquery.order_source = 0 THEN subquery.service_charge
        WHEN subquery.order_source = 1 THEN subquery.service_charge
        ELSE subquery.service_charge * 0.2
        END
        ) AS service_charge
        FROM
            (
            SELECT
            create_time,
            electrovalence,
            service_charge
            service_charge,
            order_source
            FROM
            t_charging_order
            <where>
@@ -365,7 +373,15 @@
    </select>
    <select id="circle" resultType="com.ruoyi.order.dto.SixCircleDto">
        SELECT
            site_id as siteId,SUM(payment_amount) as paymentAmount
            site_id as siteId,
        SUM(
        CASE
        WHEN order_source = 0 THEN payment_amount
        WHEN order_source = 1 THEN payment_amount
        ELSE service_charge * 0.2
        END P
        ) AS paymentAmount
        FROM
            t_charging_order
        <where>
@@ -398,33 +414,49 @@
    </select>
    <select id="getSumByType" resultType="java.util.Map">
        SELECT
            type,
            SUM( charging_capacity ) as charging_capacity ,
            SUM( period_service_price ) as period_electric_price,
            SUM(period_electric_price) as total_amount
        t1.type,
        SUM( t1.charging_capacity ) as charging_capacity ,
        SUM(
        CASE
        WHEN t2.order_source = 0 THEN t1.period_service_price
        WHEN t2.order_source = 1 THEN t1.period_service_price
        ELSE t1.period_service_price * 0.2
        END
        )as period_electric_price,
        SUM(t1.period_electric_price) as total_amount
        FROM
            t_charging_order_accounting_strategy
        t_charging_order_accounting_strategy t1
        LEFT JOIN t_charging_order t2 on t1.charging_order_id = t2.id
        <where>
            <if test="chargingOrderIds != null and chargingOrderIds.size() > 0">
                AND charging_order_id IN
                AND t1.charging_order_id IN
                <foreach collection="chargingOrderIds" item="chargingOrderId" open="(" separator="," close=")">
                    #{chargingOrderId}
                </foreach>
            </if>
        </where>
        GROUP BY
            type
        t1.type
    </select>
    <select id="getDateData" resultType="java.util.Map">
        SELECT
            DATE_FORMAT( create_time, '%H:00' ) as time,
        CAST(SUM(service_charge) AS DECIMAL(20, 6)) as  servicecharge,
        DATE_FORMAT( create_time, '%H:00' ) as time,
        CAST(
        SUM(
        CASE
        WHEN order_source = 0 THEN service_charge
        WHEN order_source = 1 THEN service_charge
        ELSE service_charge * 0.2
        END
        )AS DECIMAL(20, 6)) as  servicecharge,
        CAST(SUM(charging_capacity) AS DECIMAL(20, 6)) as electrovalence,
        CAST(SUM(electrovalence) AS DECIMAL(20, 4)) AS paymentAmount,
        SUM(payment_amount) AS paymoney,
    count(1) as orderCount
        count(1) as orderCount
        FROM
            t_charging_order
        t_charging_order
        <where>
            del_flag = 0 and recharge_payment_status = 2  and DATE(create_time) = CURDATE()
@@ -443,7 +475,11 @@
    <select id="getWeekData" resultType="java.util.Map">
        SELECT
        DATE_FORMAT( create_time, '%Y-%m-%d' ) as time,
        SUM(service_charge) as servicecharge,
        SUM(CASE
        WHEN order_source = 0 THEN service_charge
        WHEN order_source = 1 THEN service_charge
        ELSE service_charge * 0.2
        END) as servicecharge,
        SUM(charging_capacity) as electrovalence,
        SUM(electrovalence) AS paymentAmount,
        SUM(payment_amount) AS paymoney,
@@ -468,10 +504,19 @@
    <select id="getMonthData" resultType="java.util.Map">
        SELECT
        DATE_FORMAT( create_time, '%Y-%m-%d' ) as time,
        SUM(service_charge) as servicecharge,
        SUM(CASE
        WHEN order_source = 0 THEN service_charge
        WHEN order_source = 1 THEN service_charge
        ELSE service_charge * 0.2
        END) as servicecharge,
        SUM(charging_capacity) as electrovalence,
        SUM(electrovalence) AS paymentAmount,
        SUM(payment_amount) AS paymoney,
        SUM(
        CASE
        WHEN order_source = 0 THEN payment_amount
        WHEN order_source = 1 THEN payment_amount
        ELSE service_charge * 0.2
        END) AS paymoney,
        count(1) as orderCount
        FROM
        t_charging_order
@@ -493,7 +538,11 @@
    <select id="getYearData" resultType="java.util.Map">
        SELECT
        DATE_FORMAT( create_time, '%Y-%m-%d' ) as time,
        SUM(service_charge) as servicecharge,
        SUM(CASE
        WHEN order_source = 0 THEN service_charge
        WHEN order_source = 1 THEN service_charge
        ELSE service_charge * 0.2
        END) as servicecharge,
        SUM(charging_capacity) as electrovalence,
        SUM(electrovalence) AS paymentAmount,
        SUM(payment_amount) AS paymoney,
@@ -520,7 +569,11 @@
    <select id="getByDate" resultType="java.util.Map">
        SELECT
        DATE_FORMAT( create_time, '%Y-%m-%d' ) as time,
        SUM(service_charge) as servicecharge,
        SUM(CASE
        WHEN order_source = 0 THEN service_charge
        WHEN order_source = 1 THEN service_charge
        ELSE service_charge * 0.2
        END) as servicecharge,
        SUM(charging_capacity) as electrovalence,
        SUM(electrovalence) AS paymentAmount,
        SUM(payment_amount) AS paymoney,
@@ -954,11 +1007,16 @@
        </if>
    </select>
    <select id="countBySource" resultType="java.util.Map">
            select
                count(1) as counts,
              source_name as source
            from t_charging_order
            where 1=1
        select
        count(1) as counts,
        case
        when tripartite_platform_name is null then '明星充电'
        when tripartite_platform_name = 'KuaiDian' then '快电'
        when tripartite_platform_name = 'XinDianTu' then '新电途'
        else tripartite_platform_name
        end as source
        from t_charging_order
        where 1=1
        AND  del_flag = 0
        AND recharge_payment_status = 2 and status = 5
            <if test="siteIds != null and siteIds.size() > 0">
@@ -974,7 +1032,7 @@
                and DATE(create_time) >= #{statisticsQueryDto.startTime}
                and DATE(create_time)  &lt;= #{statisticsQueryDto.endTime}
            </if>
            group by source_name
        group by tripartite_platform_name
    </select>