gongchunyi
7 天以前 89a43445e5fc57796abdbd0460695581ed2dfdaa
src/main/resources/mapper/quality/QualityInspectMapper.xml
@@ -3,10 +3,40 @@
<mapper namespace="com.ruoyi.quality.mapper.QualityInspectMapper">
    <select id="qualityInspectListPage" resultType="com.ruoyi.quality.pojo.QualityInspect">
        SELECT
        qi.*,
        qi.id,
        qi.inspect_type,
        qi.check_time,
        qi.supplier,
        qi.customer,
        qi.process,
        qi.check_name,
        qi.product_id,
        qi.product_name,
        qi.model,
        ifnull(pm.unit, qi.unit) as unit,
        qi.quantity,
        qi.check_company,
        qi.check_result,
        qi.create_time,
        qi.create_user,
        qi.update_time,
        qi.update_user,
        qi.tenant_id,
        qi.inspect_state,
        qi.approval_status,
        qi.approve_user_ids,
        qi.purchase_ledger_id,
        qi.product_main_id,
        qi.defective_phenomena,
        qi.product_model_id,
        qi.test_standard_id,
        <choose>
            <when test="qualityInspect.inspectType == 0">
                pl.purchase_contract_number as purchase_contract_no,
                pm.thickness
            </when>
            <when test="qualityInspect.inspectType == 1">
                pwo.work_order_no,
                pm.thickness
            </when>
            <otherwise>
@@ -47,7 +77,13 @@
        <if test="qualityInspect.entryDateEnd != null and qualityInspect.entryDateEnd != '' ">
            AND qi.check_time &lt;= DATE_FORMAT(#{qualityInspect.entryDateEnd},'%Y-%m-%d')
        </if>
        ORDER BY qi.check_time DESC
        <if test="qualityInspect.approvalStatus != null">
            AND qi.approval_status = #{qualityInspect.approvalStatus}
        </if>
        <if test="qualityInspect.approveUserIds != null and qualityInspect.approveUserIds != '' ">
            AND qi.approve_user_ids like concat('%',#{qualityInspect.approveUserIds},'%')
        </if>
        ORDER BY qi.id DESC
    </select>
    <select id="qualityInspectExport" resultType="com.ruoyi.quality.pojo.QualityInspect">
@@ -68,6 +104,12 @@
        <if test="qualityInspect.productName != null and qualityInspect.productName != '' ">
            AND product_name = #{qualityInspect.productName}
        </if>
        <if test="qualityInspect.approvalStatus != null">
            AND approval_status = #{qualityInspect.approvalStatus}
        </if>
        <if test="qualityInspect.approveUserIds != null and qualityInspect.approveUserIds != '' ">
            AND approve_user_ids like concat('%',#{qualityInspect.approveUserIds},'%')
        </if>
    </select>
    <delete id="deleteByProductMainIds">
@@ -85,7 +127,7 @@
                                               id           AS root_id,
                                               product_name AS root_name
                                        FROM product
                                        WHERE product_name IN ('原料', '半成品', '成品')
                                        WHERE product_name IN ('原材料', '半成品', '成品')
                                        UNION ALL
                                        SELECT p.id,
                                               p.parent_id,
@@ -95,7 +137,7 @@
                                        FROM product p
                                                 INNER JOIN product_tree pt ON p.parent_id = pt.id)
        SELECT CASE pt.root_name
                   WHEN '原料' THEN 0
                   WHEN '原材料' THEN 0
                   WHEN '半成品' THEN 1
                   WHEN '成品' THEN 2
                   END                     AS modelType,
@@ -117,12 +159,12 @@
        WITH RECURSIVE product_tree AS (SELECT id,
                                               product_name,
                                               CASE product_name
                                                   WHEN '原料' THEN 0
                                                   WHEN '原材料' THEN 0
                                                   WHEN '半成品' THEN 1
                                                   WHEN '成品' THEN 2
                                                   END AS modelType
                                        FROM product
                                        WHERE product_name IN ('原料', '半成品', '成品')
                                        WHERE product_name IN ('原材料', '半成品', '成品')
                                        UNION ALL
@@ -173,12 +215,12 @@
            product_tree AS (SELECT id,
                                    product_name,
                                    CASE product_name
                                        WHEN '原料' THEN 0
                                        WHEN '原材料' THEN 0
                                        WHEN '半成品' THEN 1
                                        WHEN '成品' THEN 2
                                        END AS modelType
                             FROM product
                             WHERE product_name IN ('原料', '半成品', '成品')
                             WHERE product_name IN ('原材料', '半成品', '成品')
                             UNION ALL
@@ -241,12 +283,12 @@
            product_tree AS (SELECT id,
                                    product_name,
                                    CASE product_name
                                        WHEN '原料' THEN 0
                                        WHEN '原材料' THEN 0
                                        WHEN '半成品' THEN 1
                                        WHEN '成品' THEN 2
                                        END AS modelType
                             FROM product
                             WHERE product_name IN ('原料', '半成品', '成品')
                             WHERE product_name IN ('原材料', '半成品', '成品')
                             UNION ALL
@@ -291,7 +333,7 @@
                       WHERE month_num &lt; 12),
            product_tree AS (SELECT id, product_name AS root_name
                             FROM product
                             WHERE product_name IN ('原料', '半成品', '成品')
                             WHERE product_name IN ('原材料', '半成品', '成品')
                             UNION ALL
@@ -313,7 +355,7 @@
                   WHEN 12 THEN '十二月'
                   END                                                                      AS month,
               COALESCE(SUM(CASE WHEN pt.root_name = '原料' THEN qi.quantity ELSE 0 END), 0)  AS rawMaterialCount,
               COALESCE(SUM(CASE WHEN pt.root_name = '原材料' THEN qi.quantity ELSE 0 END), 0)  AS rawMaterialCount,
               COALESCE(SUM(CASE WHEN pt.root_name = '半成品' THEN qi.quantity ELSE 0 END), 0) AS processCount,
@@ -338,7 +380,7 @@
            root_node AS (SELECT id, product_name
                          FROM product
                          WHERE (
                                        (#{modelType} = 1 AND product_name = '原料')
                                    (#{modelType} = 1 AND product_name = '原材料')
                                        OR (#{modelType} = 2 AND product_name = '半成品')
                                        OR (#{modelType} = 3 AND product_name = '成品')
                                    )),
@@ -350,11 +392,11 @@
                                    INNER JOIN target_ids ti ON p.parent_id = ti.id),
            parameter_counts AS (SELECT qip.parameter_item AS name,
                                        COUNT(*)           AS count
                                 FROM quality_inspect_param qip
                                          JOIN quality_inspect qi ON qip.inspect_id = qi.id
                                 WHERE qi.inspect_state = 1
                                   AND qi.product_id IN (SELECT id FROM target_ids)
                                 GROUP BY qip.parameter_item),
                                  FROM quality_inspect_param qip
                                           JOIN quality_inspect qi ON qip.inspect_id = qi.id
                                  WHERE qi.inspect_state = 1
                                    AND qi.product_id IN (SELECT id FROM target_ids)
                                  GROUP BY qip.parameter_item),
            ranked AS (SELECT name, count, ROW_NUMBER() OVER (ORDER BY count DESC) AS rn
                       FROM parameter_counts),
            total AS (SELECT SUM(count) AS total_count