liding
3 小时以前 51786b723d0a91d11476776d9ce50af7994dc4bd
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
<?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.inspect.mapper.InsSampleReceiptMapper">
    <sql id="receiptColumns">
        r.id receipt_id, r.ins_order_id order_id, r.ins_sample_id sample_id, r.status,
        isa.sample sample_name, isa.sample_code, io.entrust_code,
        COALESCE(iost.method_standard, sm.code) method_standard,
        ip.inspection_item, r.main_inspector_id, u.name main_inspector_name,
        COALESCE(isa.remark, io.remark) remark, r.reject_remark, r.receive_time,
        ru.name receive_user_name
    </sql>
    <select id="selectPage" resultType="com.ruoyi.inspect.dto.SampleReceiptPageDto">
        SELECT
        <include refid="receiptColumns"/>
        FROM ins_sample_receipt r
        JOIN ins_order io ON io.id = r.ins_order_id
        JOIN ins_sample isa ON isa.id = r.ins_sample_id
        LEFT JOIN standard_method sm ON sm.id = isa.standard_method_list_id
        LEFT JOIN (
        SELECT ins_order_id,
        GROUP_CONCAT(DISTINCT number ORDER BY sort SEPARATOR '\n') method_standard
        FROM ins_order_standard_template
        GROUP BY ins_order_id
        ) iost ON iost.ins_order_id = io.id
        LEFT JOIN (
        SELECT ins_sample_id,
        GROUP_CONCAT(DISTINCT inspection_item ORDER BY sort SEPARATOR '\n') inspection_item
        FROM ins_product
        WHERE state = 1
        GROUP BY ins_sample_id
        ) ip ON ip.ins_sample_id = isa.id
        LEFT JOIN user u ON u.id = r.main_inspector_id
        LEFT JOIN user ru ON ru.id = r.receive_user_id
        WHERE 1 = 1
        <if test="query.status != null">AND r.status = #{query.status}</if>
        <if test="query.entrustCode != null and query.entrustCode != ''">AND io.entrust_code LIKE CONCAT('%',
            #{query.entrustCode}, '%')
        </if>
        <if test="query.sampleCode != null and query.sampleCode != ''">AND isa.sample_code LIKE CONCAT('%',
            #{query.sampleCode}, '%')
        </if>
        <if test="query.sampleName != null and query.sampleName != ''">AND isa.sample LIKE CONCAT('%',
            #{query.sampleName}, '%')
        </if>
        GROUP BY r.id
        ORDER BY r.create_time DESC
    </select>
    <select id="selectDetail" resultType="com.ruoyi.inspect.dto.SampleReceiptPageDto">
        SELECT <include refid="receiptColumns"/>
        FROM ins_sample_receipt r
        JOIN ins_order io ON io.id = r.ins_order_id
        JOIN ins_sample isa ON isa.id = r.ins_sample_id
        LEFT JOIN standard_method sm ON sm.id = isa.standard_method_list_id
        LEFT JOIN (
            SELECT ins_order_id,
                   GROUP_CONCAT(DISTINCT number ORDER BY sort SEPARATOR '\n') method_standard
            FROM ins_order_standard_template
            GROUP BY ins_order_id
        ) iost ON iost.ins_order_id = io.id
        LEFT JOIN (
            SELECT ins_sample_id,
                   GROUP_CONCAT(DISTINCT inspection_item ORDER BY sort SEPARATOR '\n') inspection_item
            FROM ins_product
            WHERE state = 1
            GROUP BY ins_sample_id
        ) ip ON ip.ins_sample_id = isa.id
        LEFT JOIN user u ON u.id = r.main_inspector_id
        LEFT JOIN user ru ON ru.id = r.receive_user_id
        WHERE r.id = #{id}
        GROUP BY r.id
    </select>
    <select id="selectExportList" resultType="com.ruoyi.inspect.dto.SampleReceiptPageDto">
        SELECT <include refid="receiptColumns"/>
        FROM ins_sample_receipt r
        JOIN ins_order io ON io.id = r.ins_order_id
        JOIN ins_sample isa ON isa.id = r.ins_sample_id
        LEFT JOIN standard_method sm ON sm.id = isa.standard_method_list_id
        LEFT JOIN (
            SELECT ins_order_id,
                   GROUP_CONCAT(DISTINCT number ORDER BY sort SEPARATOR '\n') method_standard
            FROM ins_order_standard_template
            GROUP BY ins_order_id
        ) iost ON iost.ins_order_id = io.id
        LEFT JOIN (
            SELECT ins_sample_id,
                   GROUP_CONCAT(DISTINCT inspection_item ORDER BY sort SEPARATOR '\n') inspection_item
            FROM ins_product
            WHERE state = 1
            GROUP BY ins_sample_id
        ) ip ON ip.ins_sample_id = isa.id
        LEFT JOIN user u ON u.id = r.main_inspector_id
        LEFT JOIN user ru ON ru.id = r.receive_user_id
        WHERE 1 = 1
        <if test="query.status != null"> AND r.status = #{query.status}</if>
        <if test="query.entrustCode != null and query.entrustCode != ''"> AND io.entrust_code LIKE CONCAT('%', #{query.entrustCode}, '%')</if>
        <if test="query.sampleCode != null and query.sampleCode != ''"> AND isa.sample_code LIKE CONCAT('%', #{query.sampleCode}, '%')</if>
        <if test="query.sampleName != null and query.sampleName != ''"> AND isa.sample LIKE CONCAT('%', #{query.sampleName}, '%')</if>
        GROUP BY r.id
        ORDER BY r.create_time DESC
    </select>
    <select id="selectForUpdate" resultType="com.ruoyi.inspect.pojo.InsSampleReceipt">
        SELECT * FROM ins_sample_receipt WHERE id = #{id} FOR UPDATE
    </select>
    <insert id="insertIgnore">
        INSERT IGNORE INTO ins_sample_receipt(ins_order_id, ins_sample_id, status, create_time, update_time)
        VALUES(#{orderId}, #{sampleId}, 0, NOW(), NOW())
    </insert>
</mapper>