liding
2026-05-20 4d99e718536ac77dff26dde8da7a59cdc9b52de8
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
<?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.quality.mapper.QualityUnqualifiedMapper">
    <select id="qualityUnqualifiedListPage" resultType="com.ruoyi.quality.pojo.QualityUnqualified">
        SELECT
        qu.id,
        qu.inspect_type,
        qu.inspect_state,
        qu.check_time,
        qu.check_name,
        qu.product_id,
        qu.product_name,
        qu.unit,
        qu.quantity,
        qu.defective_phenomena,
        qu.deal_result,
        qu.deal_name,
        qu.deal_time,
        qu.quarantine_lifted,
        qu.model,
        pm.material_code as materialCode,
        CASE
        WHEN qu.inspect_id is null THEN true
        ELSE false
        END AS method
        FROM quality_unqualified qu
        LEFT JOIN product_model pm ON qu.model = pm.model and qu.product_id = pm.product_id
        where
        1=1
        <if test="qualityUnqualified.inspectType != null ">
            AND inspect_type = #{qualityUnqualified.inspectType}
        </if>
        <if test="qualityUnqualified.inspectState != null ">
            AND inspect_state = #{qualityUnqualified.inspectState}
        </if>
        <if test="qualityUnqualified.productName != null and qualityUnqualified.productName != '' ">
            AND product_name = #{qualityUnqualified.productName}
        </if>
        <if test="qualityUnqualified.entryDateStart != null and qualityUnqualified.entryDateStart != '' ">
            AND check_time &gt;= DATE_FORMAT(#{qualityUnqualified.entryDateStart},'%Y-%m-%d')
        </if>
        <if test="qualityUnqualified.entryDateEnd != null and qualityUnqualified.entryDateEnd != '' ">
            AND check_time &lt;= DATE_FORMAT(#{qualityUnqualified.entryDateEnd},'%Y-%m-%d')
        </if>
    </select>
 
    <select id="qualityUnqualifiedExport" resultType="com.ruoyi.quality.pojo.QualityUnqualified">
        SELECT
        qu.*,
        pm.material_code as materialCode
        FROM quality_unqualified qu
        LEFT JOIN product_model pm ON qu.model = pm.model
        where
        1=1
        <if test="qualityUnqualified.inspectType != null">
            AND inspect_type = #{qualityUnqualified.inspectType}
        </if>
        <if test="qualityUnqualified.inspectState != null">
            AND inspect_state = #{qualityUnqualified.inspectState}
        </if>
        <if test="qualityUnqualified.productName != null and qualityUnqualified.productName != '' ">
            AND product_name = #{qualityUnqualified.productName}
        </if>
    </select>
 
    <select id="getUnqualified" resultType="com.ruoyi.quality.pojo.QualityUnqualified">
        SELECT
            qu.id,
            qu.inspect_type,
            qu.inspect_state,
            qu.check_time,
            qu.check_name,
            qu.product_id,
            qu.product_name,
            qu.unit,
            qu.quantity,
            qu.defective_phenomena,
            qu.deal_result,
            qu.deal_name,
            qu.deal_time,
            qi.process,
            qu.model,
            pm.material_code as materialCode,
            CASE
                WHEN qu.inspect_id is null THEN true
                ELSE false
                END AS method
        FROM quality_unqualified qu
        LEFT JOIN product_model pm ON qu.model = pm.model AND pm.product_id = qu.product_id
        LEFT JOIN quality_inspect qi ON qu.inspect_id = qi.id
        where
            1=1
            and qu.id = #{id}
    </select>
 
    <select id="getModelId" resultType="java.lang.Long">
        select pm.id
        from product_model pm
        left join product p on pm.product_id = p.id
        where pm.model = #{model}
          and p.product_name = #{productName}
    </select>
 
    <select id="selectUnqualifiedByProductOrderAndProcessNames" resultType="com.ruoyi.quality.pojo.QualityUnqualified">
        SELECT DISTINCT qu.*
        FROM quality_unqualified qu
        JOIN quality_inspect qi ON qu.inspect_id = qi.id
        JOIN production_product_main ppm ON qi.product_main_id = ppm.id
        JOIN product_work_order pwo ON ppm.work_order_id = pwo.id
        WHERE qi.process IN
        <foreach collection="processNames" item="processName" open="(" separator="," close=")">
            #{processName}
        </foreach>
        AND pwo.product_order_id = #{productOrderId}
        AND qu.deal_result = '隔离'
        AND qu.quarantine_lifted = false
    </select>
 
    <select id="selectUnqualifiedWithProductionOrder" resultType="com.ruoyi.quality.pojo.QualityUnqualified">
        SELECT
        po.id as productOrderId,
        po.nps_no as productOrderNpsNo
        FROM quality_unqualified qu
        LEFT JOIN quality_inspect qi ON qu.inspect_id = qi.id
        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
        WHERE po.id IS NOT NULL
        GROUP BY po.id
    </select>
</mapper>