wujianwei
2025-08-15 d6ef95a56915bd2c04a5956f632e5833afe627e1
修改关联
9个文件已修改
76 ■■■■■ 已修改文件
service/src/main/java/com/ruoyi/cwgl/domain/EstimatedReceivable.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
service/src/main/java/com/ruoyi/cwgl/domain/EstimatedReceivableBill.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
service/src/main/java/com/ruoyi/cwgl/domain/EstimatedReceivableBillLog.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
service/src/main/java/com/ruoyi/cwgl/domain/PendingSettlementBusiness.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
service/src/main/java/com/ruoyi/cwgl/domain/vo/CreateBillVo.java 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
service/src/main/java/com/ruoyi/cwgl/service/impl/EstimatedReceivableBillServiceImpl.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
service/src/main/java/com/ruoyi/cwgl/service/impl/EstimatedReceivableServiceImpl.java 11 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
service/src/main/java/com/ruoyi/cwgl/service/impl/PendingSettlementBusinessServiceImpl.java 21 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
service/src/main/resources/mapper/cwgl/EstimatedReceivableBillLogMapper.xml 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
service/src/main/java/com/ruoyi/cwgl/domain/EstimatedReceivable.java
@@ -75,7 +75,7 @@
    @Excel(name = "预估费用金额")
        @TableField("estimated_amount")
    private Long estimatedAmount;
    private BigDecimal estimatedAmount;
    /** 币制 */
service/src/main/java/com/ruoyi/cwgl/domain/EstimatedReceivableBill.java
@@ -54,20 +54,20 @@
    @Excel(name = "应结算金额")
        @TableField("total_amount")
    private Long totalAmount;
    private BigDecimal totalAmount;
    /** 已结算金额 */
    @Excel(name = "已结算金额")
        @TableField("settled_amount")
    private Long settledAmount;
    private BigDecimal settledAmount;
    /**
     * 本次结算金额
     */
    @TableField(exist = false)
    private Long settlementAmount;
    private BigDecimal settlementAmount;
    /** 开票状态 */
    @Excel(name = "开票状态")
service/src/main/java/com/ruoyi/cwgl/domain/EstimatedReceivableBillLog.java
@@ -44,5 +44,10 @@
        @TableField("operation")
    private String operation;
    /**
     * 附件名称
     */
    @TableField("file_name")
    private String fileName;
}
service/src/main/java/com/ruoyi/cwgl/domain/PendingSettlementBusiness.java
@@ -167,21 +167,21 @@
    @Excel(name = "预估总收入")
        @TableField("estimated_total_income")
    private Long estimatedTotalIncome;
    private BigDecimal estimatedTotalIncome;
    /** 预估总成本 */
    @Excel(name = "预估总成本")
        @TableField("estimated_total_cost")
    private Long estimatedTotalCost;
    private BigDecimal estimatedTotalCost;
    /** 预估利润 */
    @Excel(name = "预估利润")
        @TableField("estimated_profit")
    private Long estimatedProfit;
    private BigDecimal estimatedProfit;
    /** 电子锁 */
service/src/main/java/com/ruoyi/cwgl/domain/vo/CreateBillVo.java
@@ -3,6 +3,8 @@
import lombok.Data;
import java.math.BigDecimal;
/**
 * 创建账单vo
 */
@@ -28,5 +30,5 @@
    /**
     * 结算金额
     */
    private Long price;
    private BigDecimal price;
}
service/src/main/java/com/ruoyi/cwgl/service/impl/EstimatedReceivableBillServiceImpl.java
@@ -1,5 +1,6 @@
package com.ruoyi.cwgl.service.impl;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
@@ -215,11 +216,11 @@
        Integer id = estimatedReceivableBill.getId();
        EstimatedReceivableBill oldData = estimatedReceivableBillMapper.selectEstimatedReceivableBillById(id);
        //应结算金额
        Long totalAmount = oldData.getTotalAmount()==null?0L:oldData.getTotalAmount();
        BigDecimal totalAmount = oldData.getTotalAmount()==null?BigDecimal.ZERO:oldData.getTotalAmount();
        //已结算金额
        Long settledAmount = oldData.getSettledAmount()==null?0L:oldData.getSettledAmount();
        BigDecimal settledAmount = oldData.getSettledAmount()==null?BigDecimal.ZERO:oldData.getSettledAmount();
        //当前提交金额
        Long settlementAmount = estimatedReceivableBill.getSettlementAmount();
        BigDecimal settlementAmount = estimatedReceivableBill.getSettlementAmount();
        EstimatedReceivableBillLog estimatedReceivableBillLog = new EstimatedReceivableBillLog();
        estimatedReceivableBill.setSettledAmount(settlementAmount);
@@ -227,10 +228,11 @@
        estimatedReceivableBillLog.setBillId(estimatedReceivableBill.getId());
        estimatedReceivableBillLog.setCreateBy(SecurityUtils.getUsername());
        estimatedReceivableBillLog.setOperation("本次提交金额"+ settlementAmount);
        estimatedReceivableBillLog.setFileName(estimatedReceivableBill.getAttachment());
        logService.insertEstimatedReceivableBillLog(estimatedReceivableBillLog);
        settledAmount = settledAmount+settlementAmount;
        settledAmount = settledAmount.add(settlementAmount);
        List<String>dispatchNos =pendingSettlementBusinessMapper.selectPendingSettlementBusinessDispatchNos(estimatedReceivableBill.getId());
        if (settledAmount>totalAmount){
        if (settledAmount.compareTo(totalAmount) > 0){
            //已结算大于应计算金额为已结算
            estimatedReceivableBill.setStatus(2);
            estimatedReceivableMapper.updateEstimatedReceivableBillStatus(dispatchNos,3);
@@ -252,8 +254,8 @@
        EstimatedReceivableBill estimatedReceivableBill = estimatedReceivableBillMapper.selectEstimatedReceivableBillById(billId);
        estimatedReceivableBill.setDispatchCount(estimatedReceivableBill.getDispatchCount()-1);
        //应结算金额修改
        Long totalAmount = estimatedReceivableBill.getTotalAmount();
        estimatedReceivableBill.setTotalAmount(totalAmount-pendingSettlementBusiness.getEstimatedTotalIncome());
        BigDecimal totalAmount = estimatedReceivableBill.getTotalAmount();
        estimatedReceivableBill.setTotalAmount(totalAmount.subtract(pendingSettlementBusiness.getEstimatedTotalIncome()));
        EstimatedReceivableBillLog estimatedReceivableBillLog = new EstimatedReceivableBillLog();
        estimatedReceivableBillLog.setCreateTime(new Date());
        estimatedReceivableBillLog.setBillId(billId);
service/src/main/java/com/ruoyi/cwgl/service/impl/EstimatedReceivableServiceImpl.java
@@ -1,5 +1,6 @@
package com.ruoyi.cwgl.service.impl;
import java.math.BigDecimal;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
@@ -158,19 +159,19 @@
            throw new ServiceException("结算中或已结算无法修改");
        }
        //原本金额
        Long oldAmount = estimatedReceivable1.getEstimatedAmount();
        BigDecimal oldAmount = estimatedReceivable1.getEstimatedAmount();
        //新金额
        Long newAmount = estimatedReceivable.getEstimatedAmount();
        BigDecimal newAmount = estimatedReceivable.getEstimatedAmount();
        if (!oldAmount.equals(newAmount)) {
              PendingSettlementBusiness pendingSettlementBusiness = pendingSettlementBusinessMapper.selectPendingSettlementBusinessByNo(estimatedReceivable.getDispatchNo());
              if (pendingSettlementBusiness!=null) {
                  Long estimatedTotalIncome = pendingSettlementBusiness.getEstimatedTotalIncome();
                  pendingSettlementBusiness.setEstimatedTotalIncome(estimatedTotalIncome-oldAmount+newAmount);
                  BigDecimal estimatedTotalIncome = pendingSettlementBusiness.getEstimatedTotalIncome();
                  pendingSettlementBusiness.setEstimatedTotalIncome(estimatedTotalIncome.subtract(oldAmount).add(newAmount));
                  pendingSettlementBusinessMapper.updatePendingSettlementBusiness(pendingSettlementBusiness);
                  if (pendingSettlementBusiness.getBillId() != null) {
                      EstimatedReceivableBill estimatedReceivableBill = estimatedReceivableBillMapper.selectEstimatedReceivableBillById(pendingSettlementBusiness.getBillId());
                            estimatedReceivableBill.setTotalAmount(estimatedReceivableBill.getTotalAmount() -oldAmount + newAmount);
                            estimatedReceivableBill.setTotalAmount(estimatedReceivableBill.getTotalAmount().subtract( oldAmount).add( newAmount));
                            estimatedReceivableBillMapper.updateEstimatedReceivableBill(estimatedReceivableBill);
                  }
              }
service/src/main/java/com/ruoyi/cwgl/service/impl/PendingSettlementBusinessServiceImpl.java
@@ -1,5 +1,6 @@
package com.ruoyi.cwgl.service.impl;
import java.math.BigDecimal;
import java.text.SimpleDateFormat;
import java.util.Arrays;
import java.util.Date;
@@ -248,7 +249,7 @@
        String customerName = pendingSettlementBusinesses.get(0).getCustomerName();
        createBillVo.setCustomerName(customerName);
        createBillVo.setCount(pendingSettlementBusinesses.size());
        long priceTotal = 0L;
        BigDecimal priceTotal = BigDecimal.ZERO;
        for (PendingSettlementBusiness pendingSettlementBusiness : pendingSettlementBusinesses) {
            if (pendingSettlementBusiness.getIsCreate().equals(1)){
                throw new ServiceException(pendingSettlementBusiness.getDispatchNo()+"已入账");
@@ -258,7 +259,7 @@
                    throw new ServiceException("只能选择相同客户名称的数据");
                }
                priceTotal += pendingSettlementBusiness.getEstimatedTotalIncome()==null?0L:pendingSettlementBusiness.getEstimatedTotalIncome();
                priceTotal =priceTotal.add( pendingSettlementBusiness.getEstimatedTotalIncome()==null?BigDecimal.ZERO:pendingSettlementBusiness.getEstimatedTotalIncome());
        }
        createBillVo.setPrice(priceTotal);
        return createBillVo;
@@ -272,9 +273,9 @@
        }
        pendingSettlementBusiness.setIsCreate(0);
        List<PendingSettlementBusiness> pendingSettlementBusinesses = pendingSettlementBusinessMapper.selectPendingSettlementBusinessList(pendingSettlementBusiness);
        long priceTotal = pendingSettlementBusinesses.stream()
                .mapToLong(b -> Optional.ofNullable(b.getEstimatedTotalIncome()).orElse(0L))
                .sum();
        BigDecimal priceTotal =  pendingSettlementBusinesses.stream()
                .map(b -> Optional.ofNullable(b.getEstimatedTotalIncome()).orElse(BigDecimal.ZERO))
                .reduce(BigDecimal.ZERO, BigDecimal::add);
        CreateBillVo createBillVo = new CreateBillVo();
        createBillVo.setCustomerName(customerName);
        createBillVo.setCount(pendingSettlementBusinesses.size());
@@ -313,7 +314,7 @@
        estimatedReceivableBill.setCustomerName(createBillVo.getCustomerName());
        estimatedReceivableBill.setDispatchCount(createBillVo.getCount());
        estimatedReceivableBill.setTotalAmount(createBillVo.getPrice());
        estimatedReceivableBill.setSettledAmount(0L);
        estimatedReceivableBill.setSettledAmount(BigDecimal.ZERO);
        estimatedReceivableBill.setInvoiceStatus(0);
        estimatedReceivableBill.setStatus(0);
        estimatedReceivableBill.setCreateBy(username);
@@ -347,9 +348,9 @@
        Date date = new Date();
        String datePart = dateFormat.format(date);
        long priceTotal = pendingSettlementBusinesses.stream()
                .mapToLong(b -> Optional.ofNullable(b.getEstimatedTotalIncome()).orElse(0L))
                .sum();
        BigDecimal priceTotal = pendingSettlementBusinesses.stream()
                .map(b -> Optional.ofNullable(b.getEstimatedTotalIncome()).orElse(BigDecimal.ZERO))
                .reduce(BigDecimal.ZERO, BigDecimal::add);
        //调度单集合
        List<String> collect = pendingSettlementBusinesses.stream().map(PendingSettlementBusiness::getDispatchNo).collect(Collectors.toList());
        EstimatedReceivableBill estimatedReceivableBill = new EstimatedReceivableBill();
@@ -359,7 +360,7 @@
        estimatedReceivableBill.setCustomerName(customerName);
        estimatedReceivableBill.setDispatchCount(pendingSettlementBusinesses.size());
        estimatedReceivableBill.setTotalAmount(priceTotal);
        estimatedReceivableBill.setSettledAmount(0L);
        estimatedReceivableBill.setSettledAmount(BigDecimal.ZERO);
        estimatedReceivableBill.setInvoiceStatus(0);
        estimatedReceivableBill.setStatus(0);
        estimatedReceivableBill.setCreateBy(username);
service/src/main/resources/mapper/cwgl/EstimatedReceivableBillLogMapper.xml
@@ -10,10 +10,11 @@
        <result property="createBy"    column="create_by"    />
        <result property="createTime"    column="create_time"    />
        <result property="operation"    column="operation"    />
        <result property="fileName"    column="file_name"    />
    </resultMap>
    <sql id="selectEstimatedReceivableBillLogVo">
        select thisTab.id, thisTab.bill_id, thisTab.create_by, thisTab.create_time, thisTab.operation from estimated_receivable_bill_log AS thisTab
        select thisTab.id, thisTab.bill_id, thisTab.create_by, thisTab.create_time, thisTab.operation, thisTab.file_name from estimated_receivable_bill_log AS thisTab
    </sql>
    <sql id="selectEstimatedReceivableBillLogVoCount">
        select count(0) from estimated_receivable_bill_log as thisTab
@@ -53,12 +54,14 @@
            <if test="createBy != null">create_by,</if>
            <if test="createTime != null">create_time,</if>
            <if test="operation != null">operation,</if>
            <if test="fileName != null">file_name,</if>
         </trim>
        <trim prefix="values (" suffix=")" suffixOverrides=",">
            <if test="billId != null">#{billId},</if>
            <if test="createBy != null">#{createBy},</if>
            <if test="createTime != null">#{createTime},</if>
            <if test="operation != null">#{operation},</if>
            <if test="fileName != null">#{fileName},</if>
         </trim>
    </insert>