wujianwei
2025-08-18 ae17d63c823add96e0a2800fb95f468bc16531e1
service/src/main/resources/mapper/cwgl/PendingSettlementBusinessMapper.xml
@@ -53,10 +53,18 @@
        <result property="settlementStatus"    column="settlement_status"    />
        <result property="createTime"    column="create_time"    />
        <result property="updateTime"    column="update_time"    />
        <result property="isCreate"    column="is_create"    />
        <result property="billId"    column="bill_id"    />
        <result property="billName"    column="bill_name"    />
        <result property="confirmedTotalIncome"    column="confirmed_total_income"    />
        <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.settlement_status, thisTab.create_time, thisTab.update_time 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
@@ -98,8 +106,14 @@
        <if test="dispatchVolume != null "> and thisTab.dispatch_volume = #{dispatchVolume}</if>
        <if test="emptyMileage != null "> and thisTab.empty_mileage = #{emptyMileage}</if>
        <if test="emptyFuel != null "> and thisTab.empty_fuel = #{emptyFuel}</if>
        <if test="isCreate != null "> and thisTab.is_create = #{isCreate}</if>
        <if test="billId != null "> and thisTab.bill_id = #{billId}</if>
        <if test="heavyMileage != null "> and thisTab.heavy_mileage = #{heavyMileage}</if>
        <if test="heavyFuel != null "> and thisTab.heavy_fuel = #{heavyFuel}</if>
        <if test="confirmedTotalIncome != null "> and thisTab.confirmed_total_income = #{confirmedTotalIncome}</if>
        <if test="confirmedTotalCost != null "> and thisTab.confirmed_total_cost = #{confirmedTotalCost}</if>
        <if test="isIncomeMatched != null "> and thisTab.is_income_matched = #{isIncomeMatched}</if>
        <if test="isCostMatched != null "> and thisTab.is_cost_matched = #{isCostMatched}</if>
        <if test="beScheduled != null  and beScheduled != ''"> and thisTab.be_scheduled = #{beScheduled}</if>
        <if test="trackingNo != null  and trackingNo != ''"> and thisTab.tracking_no = #{trackingNo}</if>
        <if test="sealNo != null  and sealNo != ''"> and thisTab.seal_no = #{sealNo}</if>
@@ -265,6 +279,20 @@
   rt.STATUS = 'ACTIVE'
   AND rt.NAME = '应付线路整车价格' and rtd.REFERENCE1='运费'
    </select>
    <select id="selectCustomName" resultType="java.lang.String">
        SELECT customer_name from pending_settlement_business group by customer_name
    </select>
    <select id="selectPendingSettlementBusinessDispatchNos" resultType="java.lang.String">
        SELECT dispatch_no from pending_settlement_business where  bill_id =    #{id}
    </select>
    <select id="selectPendingSettlementBusinessByNo"
            resultMap="PendingSettlementBusinessResult">
        <include refid="selectPendingSettlementBusinessVo"/>
        where dispatch_no = #{dispatchNo}
    </select>
    <!-- 新增 -->
    <insert id="insertPendingSettlementBusiness" parameterType="com.ruoyi.cwgl.domain.PendingSettlementBusiness"  useGeneratedKeys="true" keyProperty="id">
@@ -317,6 +345,11 @@
            <if test="settlementStatus != null">settlement_status,</if>
            <if test="createTime != null">create_time,</if>
            <if test="updateTime != null">update_time,</if>
            <if test="isCreate != null">is_create,</if>
            <if test="confirmedTotalIncome != null">confirmed_total_income,</if>
            <if test="confirmedTotalCost != null">confirmed_total_cost,</if>
            <if test="isIncomeMatched != null">is_income_matched,</if>
            <if test="isCostMatched != null">is_cost_matched,</if>
         </trim>
        <trim prefix="values (" suffix=")" suffixOverrides=",">
            <if test="bookingNo != null">#{bookingNo},</if>
@@ -366,17 +399,22 @@
            <if test="settlementStatus != null">#{settlementStatus},</if>
            <if test="createTime != null">#{createTime},</if>
            <if test="updateTime != null">#{updateTime},</if>
            <if test="isCreate != null">#{isCreate},</if>
            <if test="confirmedTotalIncome != null">#{confirmedTotalIncome},</if>
            <if test="confirmedTotalCost != null">#{confirmedTotalCost},</if>
            <if test="isIncomeMatched != null">#{isIncomeMatched},</if>
            <if test="isCostMatched != null">#{isCostMatched},</if>
         </trim>
    </insert>
    <insert id="insertPendingSettlementBusinessBatch" parameterType="java.util.List"  useGeneratedKeys="true" keyProperty="id">
    <insert id="insertPendingSettlementBusinessBatch" parameterType="java.util.List">
        insert into pending_settlement_business
        <trim prefix="(" suffix=") values" suffixOverrides=",">
            id,booking_no,customer_id,carrier_id,project_name,dispatch_no,created_time,transport_mode,product_id,customer_name,operation_mode,carrier_name,departure_location,arrival_location,vehicle_id,license_plate_number,vehicle_type,main_driver,assistant_driver,point_num,business_contact,estimated_total_income,estimated_total_cost,estimated_profit,electronic_lock,re_weighing_weight,quantity,actual_departure_time,required_arrival_time,actual_arrival_time,be_return,dispatch_quantity,dispatch_weight,dispatch_volume,empty_mileage,empty_fuel,heavy_mileage,heavy_fuel,be_scheduled,tracking_no,seal_no,schedule_no,transport_status,estimated_bill_id,settlement_bill_id,settlement_status,create_time,update_time,
            booking_no,customer_id,carrier_id,project_name,dispatch_no,created_time,transport_mode,product_id,customer_name,operation_mode,carrier_name,departure_location,arrival_location,vehicle_id,license_plate_number,vehicle_type,main_driver,assistant_driver,point_num,business_contact,estimated_total_income,estimated_total_cost,estimated_profit,electronic_lock,re_weighing_weight,quantity,actual_departure_time,required_arrival_time,actual_arrival_time,be_return,dispatch_quantity,dispatch_weight,dispatch_volume,empty_mileage,empty_fuel,heavy_mileage,heavy_fuel,be_scheduled,tracking_no,seal_no,schedule_no,transport_status,estimated_bill_id,settlement_bill_id,settlement_status,create_time,update_time,is_create,is_income_matched,is_cost_matched,
        </trim>
        <foreach item="item" index="index" collection="list" separator=",">
            <trim prefix="(" suffix=") " suffixOverrides=",">
                #{item.id},#{item.bookingNo},#{item.customerId},#{item.carrierId},#{item.projectName},#{item.dispatchNo},#{item.createdTime},#{item.transportMode},#{item.productId},#{item.customerName},#{item.operationMode},#{item.carrierName},#{item.departureLocation},#{item.arrivalLocation},#{item.vehicleId},#{item.licensePlateNumber},#{item.vehicleType},#{item.mainDriver},#{item.assistantDriver},#{item.pointNum},#{item.businessContact},#{item.estimatedTotalIncome},#{item.estimatedTotalCost},#{item.estimatedProfit},#{item.electronicLock},#{item.reWeighingWeight},#{item.quantity},#{item.actualDepartureTime},#{item.requiredArrivalTime},#{item.actualArrivalTime},#{item.beReturn},#{item.dispatchQuantity},#{item.dispatchWeight},#{item.dispatchVolume},#{item.emptyMileage},#{item.emptyFuel},#{item.heavyMileage},#{item.heavyFuel},#{item.beScheduled},#{item.trackingNo},#{item.sealNo},#{item.scheduleNo},#{item.transportStatus},#{item.estimatedBillId},#{item.settlementBillId},#{item.settlementStatus},#{item.createTime},#{item.updateTime},
                #{item.bookingNo},#{item.customerId},#{item.carrierId},#{item.projectName},#{item.dispatchNo},#{item.createdTime},#{item.transportMode},#{item.productId},#{item.customerName},#{item.operationMode},#{item.carrierName},#{item.departureLocation},#{item.arrivalLocation},#{item.vehicleId},#{item.licensePlateNumber},#{item.vehicleType},#{item.mainDriver},#{item.assistantDriver},#{item.pointNum},#{item.businessContact},#{item.estimatedTotalIncome},#{item.estimatedTotalCost},#{item.estimatedProfit},#{item.electronicLock},#{item.reWeighingWeight},#{item.quantity},#{item.actualDepartureTime},#{item.requiredArrivalTime},#{item.actualArrivalTime},#{item.beReturn},#{item.dispatchQuantity},#{item.dispatchWeight},#{item.dispatchVolume},#{item.emptyMileage},#{item.emptyFuel},#{item.heavyMileage},#{item.heavyFuel},#{item.beScheduled},#{item.trackingNo},#{item.sealNo},#{item.scheduleNo},#{item.transportStatus},#{item.estimatedBillId},#{item.settlementBillId},#{item.settlementStatus},#{item.createTime},#{item.updateTime},#{item.isCreate},#{item.isIncomeMatched},#{item.isCostMatched},
            </trim>
        </foreach>
    </insert>
@@ -432,6 +470,7 @@
            <if test="settlementStatus != null">settlement_status = #{settlementStatus},</if>
            <if test="createTime != null">create_time = #{createTime},</if>
            <if test="updateTime != null">update_time = #{updateTime},</if>
            <if test="isCreate != null">is_create = #{isCreate},</if>
        </trim>
        where id = #{id}
    </update>
@@ -487,6 +526,7 @@
                <if test="item.settlementStatus != null">settlement_status = #{item.settlementStatus},</if>
                <if test="item.createTime != null">create_time = #{item.createTime},</if>
                <if test="item.updateTime != null">update_time = #{item.updateTime},</if>
                <if test="item.isCreate != null">is_create = #{item.isCreate},</if>
            </trim>
        where id = #{item.id}
        </foreach>
@@ -499,6 +539,44 @@
        </foreach>
    </update>
    <update id="updatePendingSettlementBusinessIsCreate">
        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},
        e.related_bill_status = 1
        WHERE p.dispatch_no IN
        <foreach item="item" collection="list" open="(" separator="," close=")">
            #{item}
        </foreach>
    </update>
    <update id="updatePendingSettlementBusinessByBillId">
            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}
        e.related_bill_status = 1
        WHERE p.dispatch_no IN
        <foreach item="item" collection="list" open="(" separator="," close=")">
            #{item}
        </foreach>
    </update>
    <!--删除-->
    <delete id="deletePendingSettlementBusinessById" parameterType="Integer">
@@ -510,5 +588,16 @@
            #{id}
        </foreach>
    </delete>
    <delete id="cancelRelevancy">
       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>