zhuo
2025-03-27 3c901b2289729b8d13689a52faaffb3cd1124594
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
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
<?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.InsProductMapper">
 
    <update id="updateInspected">
        UPDATE ins_product p
        SET p.state=0
        WHERE EXISTS(
                      SELECT 1
                      FROM ins_sample s
                      WHERE s.ins_order_id IN (
                          SELECT o.id
                          FROM ins_order o
                          WHERE o.id = #{id}
                      )
                        AND p.ins_sample_id = s.id
                        AND p.state = 1
                        AND p.ins_result IS NULL
                  );
    </update>
 
    <select id="selectOrderManDay" resultType="java.lang.Integer">
        select coalesce(max(ip.man_day), 0)
        from ins_order io
                 left join ins_sample isa on io.id = isa.ins_order_id
                 left join ins_product ip on isa.id = ip.ins_sample_id
        where io.id = #{orderId}
    </select>
    <select id="selectUserById" resultType="java.util.Map">
        select account, name, company, phone, name_en
        from user
        where id = #{userId}
    </select>
    <select id="getProductAndResult" resultType="com.ruoyi.inspect.dto.ProductResultDto2">
        select ip.id,
               ip.inspection_item,
               ip.inspection_item_subclass,
               ip.laboratory,
               ip.unit,
               ipr.equip_name equipValue,
               io.entrust_code,
               ipr.update_time,
               ip.ins_result,
               u.name         updateUserName
        from ins_product ip
                 left join ins_product_result ipr on ip.id = ipr.ins_product_id
                 left join ins_sample isa on isa.id = ip.ins_sample_id
                 left join ins_order io on io.id = isa.ins_order_id
                 left join user u on u.id = ipr.update_user
        where ip.ins_sample_id = #{sampleId}
          and ip.ins_result is not null
          and template_id is not null
    </select>
    <select id="selectFiberInsProduct" resultType="com.ruoyi.inspect.pojo.InsProduct">
        select * from ins_product
        where state = 1
        and is_binding != 1
        and (ins_fibers_id is not null or ins_fiber_id is not null)
        and ins_result is null
        and son_laboratory = #{laboratory}
        and ins_sample_id in
        <foreach collection="ids" index="index" item="item" open="(" separator="," close=")">
            #{item}
        </foreach>
    </select>
    <select id="selectNoProducts" resultType="com.ruoyi.inspect.pojo.InsProduct">
        select *
        from (select ip.*, sample_code
              from ins_product ip
                       left join ins_sample is2 on ip.ins_sample_id = is2.id
              where state = 1
                and is2.ins_order_id = #{orderId}
        <if test="noIds != null and noIds.size() > 0">
            and ip.id in
            <foreach collection="noIds" index="index" open="(" separator="," close=")" item="val">
                #{val}
            </foreach>
        </if>
        ) A
    </select>
    <select id="selectInsProductCountByOrderId" resultType="java.lang.Integer">
        select COUNT(1)
        from ins_product ip
                 left join ins_sample isa on ip.ins_sample_id = isa.id
                 left join ins_order io on isa.ins_order_id = io.id
        where io.id = #{orderId}
          and (ip.ins_result is null or ip.ins_result = 2)
          and ip.state = 1
    </select>
    <select id="selectListBySampleIds" resultType="com.ruoyi.inspect.dto.SampleProductRawAnalysisDto">
        select ins.id                                                  ins_sample_id,
               ins.sample_code,
               ip.id                                                   ins_product_id,
               concat(ip.inspection_item, ip.inspection_item_subclass) inspection_item,
               ip.`last_value`,
               iiq.update_batch_no,
               iiq.supplier_name,
               ins.sample,
               ip.ins_result
        from ins_product ip
                 left join ins_sample ins on ins.id = ip.ins_sample_id
                 left join ins_order io1 on io1.id = ins.ins_order_id
                 left join ifs_inventory_quantity iiq on iiq.id = io1.ifs_inventory_id
        where ip.inspection_value_type = 1
        and ip.ins_sample_id in
        <foreach collection="sampleIds" index="index" open="(" separator="," close=")" item="val">
            #{val}
        </foreach>
    </select>
    <select id="selectItemNameBySampleIds" resultType="java.lang.String">
        select concat(ip.inspection_item, ip.inspection_item_subclass)
        from ins_product ip
                 left join ins_sample ins on ins.id = ip.ins_sample_id
        where ip.inspection_value_type = 1
        and ip.ins_sample_id in
        <foreach collection="sampleIds" index="index" open="(" separator="," close=")" item="val">
            #{val}
        </foreach>
 
        group by concat(ip.inspection_item, ip.inspection_item_subclass)
    </select>
    <select id="selectUnqualifiedList" resultType="java.lang.String">
        select distinct concat(ip.inspection_item_class, ip.inspection_item, ip.inspection_item_subclass)
        from ins_product ip
                 left join ins_sample is2 on is2.id = ip.ins_sample_id
                 left join ins_order io2 on io2.id = is2.ins_order_id
        where io2.id = #{orderId}
    </select>
 
    <!--查询判断是否有不判定项目,和全都是判定项-->
    <select id="selectNoJudge" resultType="java.lang.Integer">
        select CASE
                   WHEN SUM(CASE WHEN ip.ins_result = 3 THEN 1 ELSE 0 END) = COUNT(*) THEN 3
                   WHEN SUM(CASE WHEN ip.ins_result = 3 THEN 1 ELSE 0 END) > 0 THEN 2
                   ELSE 1 END AS result_flag
        from ins_product ip
                 left join ins_sample is2 on is2.id = ip.ins_sample_id
                 left join ins_order io2 on io2.id = is2.ins_order_id
        where io2.id = #{orderId}
        and ip.is_binding != 1
    </select>
 
    <!-- 根据订单查询产品id -->
    <select id="selectProductByOrderId" resultType="com.ruoyi.inspect.pojo.InsProduct">
        select ip.*, is2.sample_code
        from ins_product ip
                 left join ins_sample is2 on is2.id = ip.ins_sample_id
        where is2.ins_order_id = #{orderId}
    </select>
    <select id="selectAnalysis" resultType="com.ruoyi.inspect.dto.InsProductAnalysisDto">
        select ip.id insProductId,
               ip.`last_value`,
               io.id insOrderId,
               is2.id insSampleId
        from ins_product ip
                 left join ins_sample is2 on is2.id = ip.ins_sample_id
                 left join ins_order io on io.id = is2.ins_order_id
                 left join ifs_inventory_quantity iiq on iiq.id = io.ifs_inventory_id
        where concat(ip.inspection_item, ip.inspection_item_subclass) = concat(#{insProduct.inspectionItem}, #{insProduct.inspectionItemSubclass})
          and ip.model = #{insProduct.model}
          and iiq.supplier_name = #{supplierName}
          and io.state = 4
          and ip.ins_result = 1
        order by io.first_submit_date desc
        limit 10
    </select>
</mapper>