Pu Zhibing
2024-11-02 00779ea0f8374e5bbdffc8faa20d65e3c72616c2
Merge remote-tracking branch 'origin/master'
7个文件已修改
103 ■■■■■ 已修改文件
ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/model/TChargingOrder.java 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/model/TChargingOrderRefund.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-chargingPile/src/main/resources/template/账户结算账单.xlsx 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/ChargingBillController.java 13 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/FinancialSettlementController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingBillServiceImpl.java 53 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/model/TChargingOrder.java
@@ -34,7 +34,9 @@
    @ApiModelProperty(value = "序号")
    @TableField(exist = false)
    private Integer xuhao;
    @ApiModelProperty(value = "退款描述")
    @TableField(exist = false)
    private String refundContent;
    @ApiModelProperty(value = "订单编号")
    @TableField("code")
    private String code;
@@ -206,6 +208,9 @@
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @TableField("refund_time")
    private LocalDateTime refundTime;
    @ApiModelProperty(value = "退款成功时间")
    @TableField(exist = false)
    private String refundTime1;
    @ApiModelProperty(value = "总电量")
    @TableField("total_electricity")
    private BigDecimal totalElectricity;
ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/model/TChargingOrderRefund.java
@@ -40,6 +40,7 @@
    @TableField("refund_code")
    private String refundCode;
    @ApiModelProperty(value = "退款金额")
    @TableField("refund_amount")
    private BigDecimal refundAmount;
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
@@ -75,12 +75,13 @@
        List<ChargingBillListVO> records = res.getList().getRecords();
        accountListVO.setBillCount(records.size());
        accountListVO.setTotalAmount(res.getPaymentAmount().subtract(res.getRefundAmount())
                .subtract(res.getCommissionAmount()).subtract(res.getSharingAmount()));
        accountListVO.setPaymentAmount(res.getPaymentAmount());
        accountListVO.setRefundAmount(res.getRefundAmount());
        accountListVO.setCommissionAmount(res.getCommissionAmount());
        accountListVO.setSharingAmount(res.getSharingAmount());
                .subtract(res.getCommissionAmount().setScale(2,BigDecimal.ROUND_DOWN)).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));
        accountListVO.setSharingAmount(res.getSharingAmount().setScale(2, BigDecimal.ROUND_DOWN));
        accountListVO.setList(res.getList());
        accountListVO.setOrderList(res.getExportList());
        return R.ok(accountListVO);
    }
    @PostMapping(value = "/chargingBillList")
@@ -337,7 +338,7 @@
            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.getOrderAmount().toString());
            chargingBillPayExport.setPaymentAmount(tChargingOrder.getChargeAmount().toString());
            chargingBillPayExport.setTotal("");
            chargingBillPayExports.add(chargingBillPayExport);
            i++;
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/FinancialSettlementController.java
@@ -189,7 +189,7 @@
                BigDecimal size = new BigDecimal(stageCost.size());
                for (TChargingOrderAccountingStrategy tChargingOrderAccountingStrategy : stageCost) {
                    bigDecimal1 = bigDecimal1.add(tChargingOrderAccountingStrategy.getElectrovalence());
                    bigDecimal1 = bigDecimal1.add(tChargingOrderAccountingStrategy.getPeriodElectricPrice());
                    bigDecimal2 = bigDecimal2.add(tChargingOrderAccountingStrategy.getPeriodServicePrice());
                    bigDecimal3 = bigDecimal3.add(tChargingOrderAccountingStrategy.getPeriodOriginalServicePrice());
                }
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingBillServiceImpl.java
@@ -10,6 +10,7 @@
import com.ruoyi.chargingPile.api.model.Site;
import com.ruoyi.chargingPile.api.model.TChargingGun;
import com.ruoyi.chargingPile.api.model.TChargingPile;
import com.ruoyi.common.core.utils.DateUtils;
import com.ruoyi.integration.api.feignClient.UploadRealTimeMonitoringDataClient;
import com.ruoyi.integration.api.model.UploadRealTimeMonitoringData;
import com.ruoyi.order.api.model.TChargingOrder;
@@ -78,8 +79,7 @@
            }
        }
        ChargingBillVO chargingBillVO = new ChargingBillVO();
        List<TChargingOrder> exports = new ArrayList<>();
        List<TChargingOrder> tChargingOrders1 = new ArrayList<>();
        String startTime1 = null;
        String startTime2 = null;
        if (StringUtils.hasLength(dto.getStartTime())){
@@ -101,10 +101,8 @@
        BigDecimal sharingAmountTotal = new BigDecimal("0");
        BigDecimal chargingCapacityTotal = new BigDecimal("0");
        BigDecimal discountTotal = new BigDecimal("0");
        BigDecimal refundAmount = new BigDecimal("0");
        int orderCount = 0;
        for (ChargingBillListVO chargingBillListVO : list) {
            String temp = "";
            String temp1 = "";
            switch (chargingBillListVO.getType()){
@@ -161,6 +159,7 @@
            BigDecimal commissionAmount = new BigDecimal("0");
            BigDecimal sharingAmount = new BigDecimal("0");
            BigDecimal chargingCapacity = new BigDecimal("0");
            BigDecimal refundAmount = new BigDecimal("0");
            orderCount+=tChargingOrders.size();
            chargingBillVO.setCategory("");
            chargingBillVO.setExportList(tChargingOrders);
@@ -300,7 +299,6 @@
                }
            }
            exports.addAll(tChargingOrders);
            // 将chargingSecond 这是以秒为单位存放的总秒数 将其转化为xx小时xx分钟xx秒
            int hours = chargingSecond / 3600;
            int minutes = (chargingSecond % 3600) / 60;
@@ -317,11 +315,11 @@
            chargingBillListVO.setRefundAmount(refundAmount == null?BigDecimal.ZERO:refundAmount);
            chargingBillListVO.setElectrovalence(electrovalence == null?BigDecimal.ZERO:electrovalence);
            chargingBillListVO.setServiceCharge(serviceCharge == null?BigDecimal.ZERO:serviceCharge);
            chargingBillListVO.setCommissionAmount(commissionAmount == null?BigDecimal.ZERO:commissionAmount.setScale(2, RoundingMode.HALF_DOWN));
            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(paymentAmount.subtract(refundAmount==null?BigDecimal.ZERO:chargingBillListVO.getRefundAmount()
                            .subtract(commissionAmount).subtract(sharingAmount).setScale(2, RoundingMode.HALF_DOWN)));
            chargingBillListVO.setBillMoney(paymentAmount.subtract(refundAmount==null?BigDecimal.ZERO:refundAmount)
                            .subtract(commissionAmount.setScale(2,BigDecimal.ROUND_DOWN)).subtract(sharingAmount).setScale(2, BigDecimal.ROUND_DOWN));
            switch (chargingBillListVO.getType()){
                case 1:
                    chargingBillListVO.setSiteName("全站");
@@ -371,6 +369,7 @@
                eq.eq("site_id", chargingBillListVO.getSiteId());
            }
            List<TChargingOrder> tChargingOrders = chargingOrderList.selectList(eq);
            tChargingOrders1.addAll(tChargingOrders);
            orderCount+=tChargingOrders.size();
            chargingBillVO.setCategory("");
            chargingBillVO.setExportList(tChargingOrders);
@@ -391,6 +390,10 @@
                        .eq(TChargingOrderRefund::getRefundStatus, 2).list();
                for (TChargingOrderRefund tChargingOrderRefund : list2) {
                    refundAmountTotal =refundAmountTotal.add(tChargingOrderRefund.getRefundAmount());
                    tChargingOrder.setRefundAmount(tChargingOrderRefund.getRefundAmount());
                    tChargingOrder.setRefundContent(tChargingOrderRefund.getRefundReason());
                    tChargingOrder.setRefundCode(tChargingOrderRefund.getRefundCode());
                    tChargingOrder.setRefundTime1(DateUtils.localDateTimeToString(tChargingOrderRefund.getRefundTime()));
                }
                // 累加累计服务费
                if (tChargingOrder.getServiceCharge()!=null){
@@ -419,16 +422,16 @@
            }
        }
        chargingBillVO.setChargingCapacity(chargingCapacityTotal);
        chargingBillVO.setPaymentAmount(paymentAmountTotal.setScale(2, RoundingMode.HALF_DOWN));
        chargingBillVO.setPaymentAmount(paymentAmountTotal);
        chargingBillVO.setOrderAmount(paymentAmountTotal.subtract(refundAmountTotal).subtract(commissionAmountTotal).subtract(sharingAmountTotal));
        chargingBillVO.setElectrovalence(electrovalenceTotal.setScale(2, RoundingMode.HALF_DOWN));
        chargingBillVO.setServiceCharge(serviceChargeTotal.setScale(2, RoundingMode.HALF_DOWN));
        chargingBillVO.setElectrovalence(electrovalenceTotal);
        chargingBillVO.setServiceCharge(serviceChargeTotal);
        chargingBillVO.setOrderCount(orderCount);
        chargingBillVO.setCommissionAmount(commissionAmountTotal.setScale(2, RoundingMode.HALF_DOWN));
        chargingBillVO.setSharingAmount(sharingAmountTotal.setScale(2, RoundingMode.HALF_DOWN));
        chargingBillVO.setCommissionAmount(commissionAmountTotal);
        chargingBillVO.setSharingAmount(sharingAmountTotal);
        chargingBillVO.setDiscount(discountTotal);
        chargingBillVO.setRefundAmount(refundAmountTotal);
        chargingBillVO.setExportList(tChargingOrders1);
        pageInfo.setRecords(list);
        chargingBillVO.setList(pageInfo);
        return chargingBillVO;
@@ -662,12 +665,12 @@
            String timeString = String.format("%d小时%d分钟%d秒", hours, minutes, seconds);
            chargingBillVO.setChargingTime(timeString);
            chargingBillListVO.setPaymentAmount(orderAmount.subtract(commissionAmount).subtract(sharingAmount).setScale(2,RoundingMode.HALF_DOWN));
            chargingBillListVO.setPaymentAmount(orderAmount.subtract(commissionAmount).subtract(sharingAmount).setScale(2,BigDecimal.ROUND_DOWN));
            chargingBillListVO.setOrderAmount(orderAmount);
            chargingBillListVO.setElectrovalence(electrovalence);
            chargingBillListVO.setServiceCharge(serviceCharge.setScale(2,RoundingMode.HALF_DOWN));
            chargingBillListVO.setCommissionAmount(commissionAmount.setScale(2,RoundingMode.HALF_DOWN));
            chargingBillListVO.setSharingAmount(sharingAmount.setScale(2,RoundingMode.HALF_DOWN));
            chargingBillListVO.setServiceCharge(serviceCharge.setScale(2,BigDecimal.ROUND_DOWN));
            chargingBillListVO.setCommissionAmount(commissionAmount.setScale(2,BigDecimal.ROUND_DOWN));
            chargingBillListVO.setSharingAmount(sharingAmount.setScale(2,BigDecimal.ROUND_DOWN));
            chargingBillListVO.setChargingCapacity(chargingCapacity);
            switch (chargingBillListVO.getType()){
                case 1:
@@ -777,14 +780,14 @@
            }
        }
        chargingBillVO.setChargingCapacity(chargingCapacityTotal);
        chargingBillVO.setPaymentAmount(orderAmountTotal.subtract(commissionAmountTotal).subtract(sharingAmountTotal).setScale(2, RoundingMode.HALF_DOWN));
        chargingBillVO.setOrderAmount(orderAmountTotal.setScale(2, RoundingMode.HALF_DOWN));
        chargingBillVO.setElectrovalence(electrovalenceTotal.setScale(2, RoundingMode.HALF_DOWN));
        chargingBillVO.setServiceCharge(serviceChargeTotal.setScale(2, RoundingMode.HALF_DOWN));
        chargingBillVO.setPaymentAmount(orderAmountTotal.subtract(commissionAmountTotal).subtract(sharingAmountTotal).setScale(2, BigDecimal.ROUND_DOWN));
        chargingBillVO.setOrderAmount(orderAmountTotal.setScale(2, BigDecimal.ROUND_DOWN));
        chargingBillVO.setElectrovalence(electrovalenceTotal.setScale(2, BigDecimal.ROUND_DOWN));
        chargingBillVO.setServiceCharge(serviceChargeTotal.setScale(2, BigDecimal.ROUND_DOWN));
        chargingBillVO.setOrderCount(orderCount);
        chargingBillVO.setCommissionAmount(commissionAmountTotal.setScale(2, RoundingMode.HALF_DOWN));
        chargingBillVO.setSharingAmount(sharingAmountTotal.setScale(2, RoundingMode.HALF_DOWN));
        chargingBillVO.setDiscount(discountTotal.setScale(2, RoundingMode.HALF_DOWN));
        chargingBillVO.setCommissionAmount(commissionAmountTotal.setScale(2, BigDecimal.ROUND_DOWN));
        chargingBillVO.setSharingAmount(sharingAmountTotal.setScale(2, BigDecimal.ROUND_DOWN));
        chargingBillVO.setDiscount(discountTotal.setScale(2, BigDecimal.ROUND_DOWN));
        pageInfo.setRecords(list);
        chargingBillVO.setList(pageInfo);
        return chargingBillVO;
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java
@@ -1298,9 +1298,9 @@
                payOrderDto.setFinalAmount(payOrderDto.getOrderAmount());
            }
            if (payOrderDto.getType()==1&&payOrderDto.getStatus()==3){
                payOrderDto.setFinalAmount(payOrderDto.getRechargeAmount());
                payOrderDto.setOrderAmount(payOrderDto.getRechargeAmount());
                payOrderDto.setPaymentAmount(payOrderDto.getRechargeAmount());
                payOrderDto.setFinalAmount(payOrderDto.getOrderAmount());
                payOrderDto.setOrderAmount(payOrderDto.getOrderAmount());
                payOrderDto.setPaymentAmount(payOrderDto.getOrderAmount());
            }
        }
        pageInfo.setRecords(list);
@@ -2586,6 +2586,7 @@
            }
        }
        // 三方交易手续费 三方收费*0.6%
        commissionAmount = sharingAmount.multiply(new BigDecimal("0.006"));
        // 订单手续费 订单支付金额 - 退款金额*0.6%
@@ -2593,7 +2594,7 @@
        tSettlementConfirm.setSharingAmount(sharingAmount.setScale(2, RoundingMode.HALF_DOWN));
        tSettlementConfirm.setCommissionAmount(commissionAmount.setScale(2, RoundingMode.HALF_DOWN));
        tSettlementConfirm.setElectrovalence(electrovalence.setScale(2, RoundingMode.HALF_DOWN));
        tSettlementConfirm.setServiceCharge(serviceCharge.subtract(commissionAmount).setScale(2, RoundingMode.HALF_DOWN));
        tSettlementConfirm.setServiceCharge(serviceCharge.subtract(orderCommission).setScale(2, RoundingMode.HALF_DOWN));
        tSettlementConfirm.setOrderCommission(orderCommission);
        tSettlementConfirm.setVipDiscount(vipDiscount);
        tSettlementConfirm.setCouponDiscount(couponDiscount);
@@ -2605,6 +2606,8 @@
        tSettlementConfirm.setType(dto.getType());
        if (dto.getState() == 2){
            tSettlementConfirm.setServiceMoney(dto.getServiceCharge().subtract(dto.getVenue()).subtract(dto.getClean())
                    .subtract(dto.getMaintain()).multiply(dto.getServicePartner()));
            tSettlementConfirm.setSupplyElectronic(dto.getSupplyElectronic());
            tSettlementConfirm.setVenue(dto.getVenue());
            tSettlementConfirm.setMetering(dto.getMetering());
@@ -2619,26 +2622,26 @@
            tSettlementConfirm.setTotalService(dto.getTotalService());
            tSettlementConfirm.setRemark(dto.getRemark());
            tSettlementConfirm.setServicePartner(dto.getServicePartner());
            tSettlementConfirm.setServiceMoney(dto.getServiceMoney());
            BigDecimal subtract = new BigDecimal("1").subtract(dto.getProportionPartner().multiply(new BigDecimal("0.01")));
            BigDecimal subtract = new BigDecimal("1").subtract(dto.getProportionPartner());
            BigDecimal subtract9 = new BigDecimal("1").subtract(dto.getServicePartner());
            // 总电损费用
            BigDecimal divide = tSettlementConfirm.getProportionMoney().divide(subtract, 2, RoundingMode.HALF_DOWN);
            // 平台承担电损
            BigDecimal subtract1 = divide.subtract(tSettlementConfirm.getProportionMoney());
            BigDecimal multiply = dto.getServiceMoney().multiply(subtract);
            BigDecimal subtract2 = multiply.subtract(subtract1);
            tSettlementConfirm.setNewMoney(subtract2);
            tSettlementConfirm.setNewMoney(dto.getServiceCharge().subtract(dto.getVenue()).subtract(dto.getClean())
                    .subtract(dto.getMaintain()).multiply(subtract9).subtract(subtract1));
            tSettlementConfirm.setTotalService(dto.getTotalService());
            tSettlementConfirm.setServiceRemark(dto.getServiceRemark());
            tSettlementConfirm.setDistribution(dto.getDistribution());
            tSettlementConfirm.setIncome(dto.getElectrovalence().add(dto.getServiceCharge()));
            tSettlementConfirm.setCost(dto.getVenue().add(dto.getClean()).add(dto.getMaintain()).add(dto.getSupplyElectronic()));
            BigDecimal divide1 = tSettlementConfirm.getProportionMoney().divide(tSettlementConfirm.getProportionPartner(), 2, RoundingMode.HALF_DOWN);
            tSettlementConfirm.setProfitMoney(tSettlementConfirm.getServiceCharge().multiply(tSettlementConfirm.getServicePartner())
                    .subtract(divide1));
            tSettlementConfirm.setNewSettlement(subtract2.subtract(tSettlementConfirm.getCost()));
            tSettlementConfirm.setProfitMoney(tSettlementConfirm.getIncome().subtract(tSettlementConfirm.getCost()));
            tSettlementConfirm.setNewSettlement(tSettlementConfirm.getProfitMoney().add(tSettlementConfirm.getCost()));
            tSettlementConfirm.setServiceMoney(dto.getServiceCharge().subtract(dto.getVenue()).subtract(dto.getClean())
                    .subtract(dto.getMaintain()).multiply(dto.getServicePartner()));
            tSettlementConfirmMapper.insert(tSettlementConfirm);
        }
        return tSettlementConfirm;