sen
2025-08-18 155d0cb16d9549c701d9ad59e519a7fc5bc899a2
Merge remote-tracking branch 'origin/yagwly_fa_master' into yagwly_fa_master
5个文件已修改
55 ■■■■ 已修改文件
quartz/src/main/java/com/ruoyi/quartz/task/SettlementTask.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
service/src/main/java/com/ruoyi/cwgl/domain/PendingSettlementBusiness.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
service/src/main/java/com/ruoyi/cwgl/mapper/PendingSettlementBusinessMapper.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
service/src/main/java/com/ruoyi/cwgl/service/impl/EstimatedReceivableBillServiceImpl.java 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
service/src/main/resources/mapper/cwgl/PendingSettlementBusinessMapper.xml 39 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
quartz/src/main/java/com/ruoyi/quartz/task/SettlementTask.java
@@ -48,6 +48,7 @@
        List<EstimatedReceivable> estimatedReceivables = new ArrayList<>();
        for (PendingSettlementBusiness pendingSettlementBusiness : pendingSettlementBusinesses) {
            pendingSettlementBusiness.setIsCreate(0);
            ReceivableLineTruckPriceRule exactMatchingRule = ExactPricingRuleMatcher.findExactMatchingRule(receivableLineTruckPriceRules, pendingSettlementBusiness.getCustomerName(), pendingSettlementBusiness.getDepartureLocation(), pendingSettlementBusiness.getArrivalLocation(), pendingSettlementBusiness.getVehicleType());
            if (exactMatchingRule!=null) {
                //应收数据
service/src/main/java/com/ruoyi/cwgl/domain/PendingSettlementBusiness.java
@@ -391,10 +391,16 @@
     */
    @TableField("bill_id")
    private Integer billId;
    /** 关联账单状态 */
    @Excel(name = "关联账单状态")
    @TableField("related_bill_status")
    private Integer relatedBillStatus;
    /**
     * 关联账单id
     */
    @Excel(name = "账单名称")
    @TableField("bill_name")
    private String billName;
service/src/main/java/com/ruoyi/cwgl/mapper/PendingSettlementBusinessMapper.java
@@ -110,4 +110,6 @@
    void updatePendingSettlementBusinessByBillId(@Param("id") Integer id, @Param("billName")String billName);
    PendingSettlementBusiness selectPendingSettlementBusinessByNo(String dispatchNo);
    void updateEstimatedReceivableBillStatus(@Param("list") List<String> list, @Param("status") int status);
}
service/src/main/java/com/ruoyi/cwgl/service/impl/EstimatedReceivableBillServiceImpl.java
@@ -160,6 +160,7 @@
        estimatedReceivableBillLog.setOperation("修改账单名称为"+estimatedReceivableBill.getBillName());
        logService.insertEstimatedReceivableBillLog(estimatedReceivableBillLog);
         pendingSettlementBusinessMapper.updatePendingSettlementBusinessByBillId(estimatedReceivableBill.getId(),estimatedReceivableBill.getBillName());
        return estimatedReceivableBillMapper.updateEstimatedReceivableBill(estimatedReceivableBill);
    }
@@ -230,7 +231,7 @@
        estimatedReceivableBillLog.setOperation("本次提交金额"+ settlementAmount);
        estimatedReceivableBillLog.setFileName(estimatedReceivableBill.getAttachment());
        logService.insertEstimatedReceivableBillLog(estimatedReceivableBillLog);
        settledAmount = settledAmount.add(settlementAmount);
        List<String>dispatchNos =pendingSettlementBusinessMapper.selectPendingSettlementBusinessDispatchNos(estimatedReceivableBill.getId());
        // 检查当前提交金额+已结算金额是否超过应结算金额
        if (settlementAmount.add(settledAmount).compareTo(totalAmount) > 0) {
@@ -241,11 +242,15 @@
            //已结算大于应计算金额为已结算
            estimatedReceivableBill.setStatus(2);
            estimatedReceivableMapper.updateEstimatedReceivableBillStatus(dispatchNos,3);
            pendingSettlementBusinessMapper.updateEstimatedReceivableBillStatus(dispatchNos,3);
        }else {
            //否则部分结算
            estimatedReceivableBill.setStatus(1);
            estimatedReceivableMapper.updateEstimatedReceivableBillStatus(dispatchNos,2);
           pendingSettlementBusinessMapper.updateEstimatedReceivableBillStatus(dispatchNos,2);
        }
        settledAmount = settledAmount.add(settlementAmount);
        estimatedReceivableBill.setSettledAmount(settledAmount);
        return estimatedReceivableBillMapper.updateEstimatedReceivableBill(estimatedReceivableBill);
    }
service/src/main/resources/mapper/cwgl/PendingSettlementBusinessMapper.xml
@@ -60,10 +60,11 @@
        <result property="confirmedTotalCost"    column="confirmed_total_cost"    />
        <result property="isIncomeMatched"    column="is_income_matched"    />
        <result property="isCostMatched"    column="is_cost_matched"    />
        <result property="relatedBillStatus"    column="related_bill_status"    />
    </resultMap>
    <sql id="selectPendingSettlementBusinessVo">
        select thisTab.id, thisTab.booking_no, thisTab.customer_id, thisTab.carrier_id, thisTab.project_name, thisTab.dispatch_no, thisTab.created_time, thisTab.transport_mode, thisTab.product_id, thisTab.customer_name, thisTab.operation_mode, thisTab.carrier_name, thisTab.departure_location, thisTab.arrival_location, thisTab.vehicle_id, thisTab.license_plate_number, thisTab.vehicle_type, thisTab.main_driver, thisTab.assistant_driver, thisTab.point_num, thisTab.business_contact, thisTab.estimated_total_income, thisTab.estimated_total_cost, thisTab.estimated_profit, thisTab.electronic_lock, thisTab.re_weighing_weight, thisTab.quantity, thisTab.actual_departure_time, thisTab.required_arrival_time, thisTab.actual_arrival_time, thisTab.be_return, thisTab.dispatch_quantity, thisTab.dispatch_weight, thisTab.dispatch_volume, thisTab.empty_mileage, thisTab.empty_fuel, thisTab.heavy_mileage, thisTab.heavy_fuel, thisTab.be_scheduled, thisTab.tracking_no, thisTab.seal_no, thisTab.schedule_no, thisTab.transport_status, thisTab.estimated_bill_id, thisTab.settlement_bill_id, thisTab.bill_id, thisTab.settlement_status, thisTab.create_time, thisTab.update_time, thisTab.is_create, thisTab.bill_name, thisTab.confirmed_total_income, thisTab.confirmed_total_cost, thisTab.is_income_matched, thisTab.is_cost_matched from pending_settlement_business AS thisTab
        select thisTab.id, thisTab.booking_no, thisTab.customer_id, thisTab.carrier_id, thisTab.project_name, thisTab.dispatch_no, thisTab.created_time, thisTab.transport_mode, thisTab.product_id, thisTab.customer_name, thisTab.operation_mode, thisTab.carrier_name, thisTab.departure_location, thisTab.arrival_location, thisTab.vehicle_id, thisTab.license_plate_number, thisTab.vehicle_type, thisTab.main_driver, thisTab.assistant_driver, thisTab.point_num, thisTab.business_contact, thisTab.estimated_total_income, thisTab.estimated_total_cost, thisTab.estimated_profit, thisTab.electronic_lock, thisTab.re_weighing_weight, thisTab.quantity, thisTab.actual_departure_time, thisTab.required_arrival_time, thisTab.actual_arrival_time, thisTab.be_return, thisTab.dispatch_quantity, thisTab.dispatch_weight, thisTab.dispatch_volume, thisTab.empty_mileage, thisTab.empty_fuel, thisTab.heavy_mileage, thisTab.heavy_fuel, thisTab.be_scheduled, thisTab.tracking_no, thisTab.seal_no, thisTab.schedule_no, thisTab.transport_status, thisTab.estimated_bill_id, thisTab.settlement_bill_id, thisTab.bill_id, thisTab.settlement_status, thisTab.create_time, thisTab.update_time, thisTab.is_create, thisTab.bill_name, thisTab.confirmed_total_income, thisTab.confirmed_total_cost, thisTab.is_income_matched, thisTab.is_cost_matched, thisTab.related_bill_status from pending_settlement_business AS thisTab
    </sql>
    <sql id="selectPendingSettlementBusinessVoCount">
        select count(0) from pending_settlement_business as thisTab
@@ -541,16 +542,33 @@
    <update id="updatePendingSettlementBusinessIsCreate">
        UPDATE pending_settlement_business
        SET is_create = 1 ,bill_id = #{id},bill_name = #{billName}
        SET is_create = 1 ,bill_id = #{id},bill_name = #{billName},related_bill_status = 1
        WHERE dispatch_no IN
        <foreach item="item" collection="list" open="(" separator="," close=")">
            #{item}
        </foreach>
    </update>
    <update id="updatePendingSettlementBusinessByBillId">
          UPDATE pending_settlement_business set bill_name = #{billName}
          where bill_id = #{id}
            UPDATE pending_settlement_business p
            JOIN estimated_receivable e ON p.dispatch_no = e.dispatch_no
            SET
            p.bill_name = #{billName},
            e.related_bill_name = #{billName}
            WHERE p.bill_id = #{id};
    </update>
    <update id="updateEstimatedReceivableBillStatus">
        UPDATE pending_settlement_business p
        JOIN estimated_receivable e ON p.dispatch_no = e.dispatch_no
        SET
        p.is_create = 1,
        p.bill_id = #{id},
        p.bill_name = #{billName},
        p.related_bill_status = 1,
        e.related_bill_name = #{billName}
        WHERE p.dispatch_no IN
        <foreach item="item" collection="list" open="(" separator="," close=")">
            #{item}
        </foreach>
    </update>
    <!--删除-->
@@ -564,8 +582,15 @@
        </foreach>
    </delete>
    <delete id="cancelRelevancy">
         UPDATE pending_settlement_business set bill_id = null ,bill_name = null,is_create = 0
         where id = #{id}
       UPDATE pending_settlement_business p
LEFT JOIN estimated_receivable e ON p.dispatch_no = e.dispatch_no
SET
    p.bill_id = NULL,
    p.bill_name = NULL,
    p.is_create = 0,
    p.related_bill_status = 0,
    e.related_bill_name = NULL
    WHERE p.id = #{id}
    </delete>
</mapper>