liyong
5 天以前 dee56ed8d52f1d8ee1f89b369561c49e9b3b7c2d
src/main/resources/mapper/sales/SalesLedgerProductMapper.xml
@@ -8,17 +8,24 @@
        SELECT
        T1.*,
        t3.shipping_car_number,
        t3.shipping_date
        t3.shipping_date,
        t3.status as shippingStatus
        t3.shipping_date,
        CASE
        WHEN t2.qualitity > T1.quantity THEN 1
        ELSE 0
        END as has_sufficient_stock
        FROM
        sales_ledger_product T1
        left join shipping_info t3 on T1.id = t3.sales_ledger_product_id
        LEFT JOIN stock_inventory t2 ON T1.product_model_id = t2.product_model_id
        LEFT JOIN shipping_info t3 ON T1.id = t3.sales_ledger_product_id
        <where>
            1=1
            <if test="salesLedgerProduct.salesLedgerId != null and salesLedgerProduct.salesLedgerId != '' ">
                AND  T1.sales_ledger_id = #{salesLedgerProduct.salesLedgerId}
                AND T1.sales_ledger_id = #{salesLedgerProduct.salesLedgerId}
            </if>
            <if test="salesLedgerProduct.type != null and salesLedgerProduct.type != '' ">
                AND  T1.type = #{salesLedgerProduct.type}
                AND T1.type = #{salesLedgerProduct.type}
            </if>
        </where>
    </select>
@@ -27,7 +34,7 @@
        from quality_inspect qi
                 left join production_product_main ppm on qi.product_main_id = ppm.id
                 left join product_work_order pwo on ppm.work_order_id = pwo.id
                 left join product_order  po on pwo.product_order_id = po.id
                 left join product_order po on pwo.product_order_id = po.id
                 left join sales_ledger_product slp on po.product_model_id = slp.id
        where qi.product_main_id = #{productMainId}
@@ -44,22 +51,22 @@
        <where>
            slp.type = 1
            <if test="req.salesContractNo != null and req.salesContractNo != '' ">
                AND  sl.sales_contract_no like concat('%',#{req.salesContractNo},'%')
                AND sl.sales_contract_no like concat('%',#{req.salesContractNo},'%')
            </if>
            <if test="req.customerContractNo != null and req.customerContractNo != '' ">
                AND  sl.customer_contract_no like concat('%',#{req.customerContractNo},'%')
                AND sl.customer_contract_no like concat('%',#{req.customerContractNo},'%')
            </if>
            <if test="req.projectName != null and req.projectName != '' ">
                AND  sl.project_name like concat('%',#{req.projectName},'%')
                AND sl.project_name like concat('%',#{req.projectName},'%')
            </if>
            <if test="req.customerName != null and req.customerName != '' ">
                AND  sl.customer_name like concat('%',#{req.customerName},'%')
                AND sl.customer_name like concat('%',#{req.customerName},'%')
            </if>
            <if test="req.productCategory != null and req.productCategory != '' ">
                AND  slp.product_category like concat('%',#{req.productCategory},'%')
                AND slp.product_category like concat('%',#{req.productCategory},'%')
            </if>
            <if test="req.status != null and req.status ">
                AND  slp.pending_invoice_total &gt; 0
                AND slp.pending_invoice_total &gt; 0
            </if>
        </where>
        order by slp.register_date desc
@@ -76,22 +83,22 @@
        <where>
            slp.type = 2
            <if test="req.purchaseContractNumber != null and req.purchaseContractNumber != '' ">
                AND  sl.purchase_contract_number like concat('%',#{req.purchaseContractNumber},'%')
                AND sl.purchase_contract_number like concat('%',#{req.purchaseContractNumber},'%')
            </if>
            <if test="req.customerContractNo != null and req.customerContractNo != '' ">
                AND  sl.customer_contract_no like concat('%',#{req.customerContractNo},'%')
                AND sl.customer_contract_no like concat('%',#{req.customerContractNo},'%')
            </if>
            <if test="req.projectName != null and req.projectName != '' ">
                AND  sl.project_name like concat('%',#{req.projectName},'%')
                AND sl.project_name like concat('%',#{req.projectName},'%')
            </if>
            <if test="req.customerName != null and req.customerName != '' ">
                AND  sl.customer_name like concat('%',#{req.customerName},'%')
                AND sl.customer_name like concat('%',#{req.customerName},'%')
            </if>
            <if test="req.productCategory != null and req.productCategory != '' ">
                AND  slp.product_category like concat('%',#{req.productCategory},'%')
                AND slp.product_category like concat('%',#{req.productCategory},'%')
            </if>
            <if test="req.status != null and req.status ">
                AND  slp.pending_invoice_total &gt; 0
                AND slp.pending_invoice_total &gt; 0
            </if>
        </where>
        order by slp.register_date desc
@@ -126,4 +133,33 @@
        <!-- 按产品大类排序 -->
        ORDER BY slp.product_category
    </select>
    <select id="selectProductBomStructure" resultType="com.ruoyi.sales.dto.LossProductModelDto">
        select
            a.model,
            a.product_name,
            a.unit,
            sum(a.single_quantity) AS loss_num
        from (SELECT ps.unit,
                     ps.unit_quantity,
                     pm1.model,
                     p.product_name,
                     ps.unit_quantity * slp.quantity AS single_quantity
              FROM sales_ledger sl
                       LEFT JOIN sales_ledger_product slp ON slp.sales_ledger_id = sl.id
                       LEFT JOIN product_model pm ON pm.id = slp.product_model_id
                       LEFT JOIN product_bom pb ON pb.product_model_id = pm.id
                       LEFT JOIN product_structure ps ON pb.id = ps.bom_id
                       LEFT JOIN product_model pm1 ON pm1.id = ps.product_model_id
                       LEFT JOIN product p ON p.id = pm1.product_id
              WHERE sl.id = #{salesLedegerId}) A
        group by a.model, a.product_name, a.unit
    </select>
    <select id="selectProduct" resultType="com.ruoyi.sales.pojo.SalesLedgerProduct">
        select
            p.product_name as product_category,
            pm.model as specification_model,
            pm.id
        from product_model pm
        left join product p on pm.product_id = p.id
    </select>
</mapper>