gongchunyi
2 天以前 e2079ea034c7f6bb5fc096fd4d83ed9b2cc3ff13
src/main/resources/mapper/sales/ShippingInfoMapper.xml
@@ -1,22 +1,34 @@
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ruoyi.sales.mapper.ShippingInfoMapper">
    <select id="listPage" resultType="com.ruoyi.sales.pojo.ShippingInfo">
    <select id="listPage" resultType="com.ruoyi.sales.dto.ShippingInfoDto">
        SELECT
        s.id,
        s.sales_ledger_id,
        s.shipping_date,
        s.shipping_car_number,
        s.express_number,
        s.express_company,
        s.shipping_no,
        s.type,
        s.status,
        s.create_time,
        s.update_time,
        s.create_user,
        s.update_user,
        s.tenant_id,
        sl.sales_contract_no,
        slp.specification_model,
        p.product_name,
        pm.thickness,
        sl.customer_name
        FROM shipping_info s
        LEFT JOIN sales_ledger sl ON s.sales_ledger_id = sl.id
        LEFT JOIN sales_ledger_product slp ON s.sales_ledger_product_id = slp.id and slp.type = 1
        left join product_model pm on slp.product_model_id = pm.id
        left join product p on pm.product_id = p.id
        WHERE 1=1
        <if test="req.salesContractNo != null and req.salesContractNo != ''">
            AND sl.sales_contract_no LIKE CONCAT('%',#{req.salesContractNo},'%')
@@ -24,6 +36,19 @@
        <if test="req.shippingCarNumber != null and req.shippingCarNumber != ''">
            AND s.shipping_car_number LIKE CONCAT('%',#{req.shippingCarNumber},'%')
        </if>
        <if test="req.shippingNo != null and req.shippingNo != ''">
            AND s.shipping_no LIKE CONCAT('%',#{req.shippingNo},'%')
        </if>
        <if test="req.expressNumber != null and req.expressNumber != ''">
            AND s.express_number LIKE CONCAT('%',#{req.expressNumber},'%')
        </if>
        <if test="req.shippingDateStart != null and req.shippingDateStart != ''">
            AND s.shipping_date >= #{req.shippingDateStart}
        </if>
        <if test="req.shippingDateEnd != null and req.shippingDateEnd != ''">
            AND s.shipping_date &lt;= #{req.shippingDateEnd}
        </if>
        order by create_time DESC
    </select>
    <select id="listAll" resultType="com.ruoyi.sales.pojo.ShippingInfo">
        SELECT
@@ -39,6 +64,85 @@
            sl.sales_contract_no,
            sl.customer_name
        FROM shipping_info s
                 LEFT JOIN sales_ledger sl ON s.sales_ledger_id = sl.id
        LEFT JOIN sales_ledger sl ON s.sales_ledger_id = sl.id
        ORDER BY s.create_time ASC
    </select>
    <select id="exportList" resultType="com.ruoyi.sales.dto.ShippingInfoDto">
        SELECT
        s.id,
        s.sales_ledger_id,
        s.shipping_date,
        s.shipping_car_number,
        s.express_number,
        s.express_company,
        s.shipping_no,
        s.type,
        s.status,
        s.create_time,
        s.update_time,
        s.create_user,
        s.update_user,
        s.tenant_id,
        sl.sales_contract_no,
        slp.specification_model,
        p.product_name,
        pm.thickness,
        sl.customer_name
        FROM shipping_info s
        LEFT JOIN sales_ledger sl ON s.sales_ledger_id = sl.id
        LEFT JOIN sales_ledger_product slp ON s.sales_ledger_product_id = slp.id and slp.type = 1
        left join product_model pm on slp.product_model_id = pm.id
        left join product p on pm.product_id = p.id
        WHERE 1=1
        <if test="req.salesContractNo != null and req.salesContractNo != ''">
            AND sl.sales_contract_no LIKE CONCAT('%',#{req.salesContractNo},'%')
        </if>
        <if test="req.shippingCarNumber != null and req.shippingCarNumber != ''">
            AND s.shipping_car_number LIKE CONCAT('%',#{req.shippingCarNumber},'%')
        </if>
        <if test="req.expressNumber != null and req.expressNumber != ''">
            AND s.express_number LIKE CONCAT('%',#{req.expressNumber},'%')
        </if>
        <if test="req.shippingDateStart != null and req.shippingDateStart != ''">
            AND s.shipping_date >= #{req.shippingDateStart}
        </if>
        <if test="req.shippingDateEnd != null and req.shippingDateEnd != ''">
            AND s.shipping_date &lt;= #{req.shippingDateEnd}
        </if>
        order by s.create_time DESC
    </select>
    <select id="getReturnManagementDtoById" resultType="com.ruoyi.sales.dto.SalesLedgerProductDto">
        SELECT
        slp.*,
        GREATEST(slp.quantity - COALESCE(rs.total_return_num, 0), 0) AS un_quantity,
        COALESCE(rs.total_return_num, 0) AS total_return_num,
        pm.unit AS product_model_unit,
        pm.thickness AS thickness
        FROM shipping_info si
        LEFT JOIN sales_ledger_product slp ON si.sales_ledger_product_id = slp.id and slp.type = 1
        LEFT JOIN product_model pm ON slp.product_model_id = pm.id
        LEFT JOIN (
        SELECT
        return_sale_ledger_product_id,
        SUM(num) AS total_return_num
        FROM return_sale_product rsp
        left join return_management rm on rm.id = rsp.return_management_id
        left join shipping_info si on si.id = rm.shipping_id
        WHERE 1=1
        GROUP BY return_sale_ledger_product_id
        ) rs ON rs.return_sale_ledger_product_id = slp.id
        <where>
            <if test="shippingId != null">
                si.id = #{shippingId}
            </if>
        </where>
    </select>
    <select id="getShippingInfoByCustomerName" resultType="com.ruoyi.sales.pojo.ShippingInfo">
        select * from shipping_info si
        left join sales_ledger sl on si.sales_ledger_id = sl.id
        where si.status = '已发货' and sl.customer_name = #{customerName}
    </select>
</mapper>