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
<?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.yuanchu.mom.mapper.InsProductMapper">
    <resultMap id="BaseResultMap" type="com.yuanchu.mom.pojo.InsProduct">
        <id property="id" column="id" jdbcType="INTEGER"/>
        <result property="inspectionItem" column="inspection_item" jdbcType="VARCHAR"/>
        <result property="inspectionItemClass" column="inspection_item_class" jdbcType="VARCHAR"/>
        <result property="inspectionItemSubclass" column="inspection_item_subclass" jdbcType="VARCHAR"/>
        <result property="factory" column="factory" jdbcType="VARCHAR"/>
        <result property="laboratory" column="laboratory" jdbcType="VARCHAR"/>
        <result property="sampleType" column="sample_type" jdbcType="VARCHAR"/>
        <result property="sample" column="sample" jdbcType="VARCHAR"/>
        <result property="model" column="model" jdbcType="VARCHAR"/>
        <result property="sonLaboratory" column="son_laboratory" jdbcType="VARCHAR"/>
        <result property="unit" column="unit" jdbcType="VARCHAR"/>
        <result property="price" column="price" jdbcType="DECIMAL"/>
        <result property="manHour" column="man_hour" jdbcType="DOUBLE"/>
        <result property="manHourGroup" column="man_hour_group" jdbcType="VARCHAR"/>
        <result property="inspectionItemType" column="inspection_item_type" jdbcType="VARCHAR"/>
        <result property="inspectionValueType" column="inspection_value_type" jdbcType="VARCHAR"/>
        <result property="deviceGroup" column="device_group" jdbcType="VARCHAR"/>
        <result property="checkoutNumber" column="checkout_number" jdbcType="INTEGER"/>
        <result property="section" column="section" jdbcType="VARCHAR"/>
        <result property="valueType" column="value_type" jdbcType="VARCHAR"/>
        <result property="method" column="method" jdbcType="VARCHAR"/>
        <result property="manDay" column="man_day" jdbcType="INTEGER"/>
        <result property="bsm" column="bsm" jdbcType="VARCHAR"/>
        <result property="ask" column="ask" jdbcType="VARCHAR"/>
        <result property="lastValue" column="last_value" jdbcType="VARCHAR"/>
        <result property="insResult" column="ins_result" jdbcType="INTEGER"/>
        <result property="state" column="state" jdbcType="INTEGER"/>
        <result property="insSampleId" column="ins_sample_id" jdbcType="INTEGER"/>
        <result property="createUser" column="create_user" jdbcType="INTEGER"/>
        <result property="updateUser" column="update_user" jdbcType="INTEGER"/>
        <result property="createTime" column="create_time" jdbcType="TIMESTAMP"/>
        <result property="updateTime" column="update_time" jdbcType="TIMESTAMP"/>
        <result property="templateId" column="template_id" jdbcType="INTEGER"/>
    </resultMap>
    <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 name, company, phone, address, name_en
        from user
        where id = #{userId}
    </select>
    <select id="getProductAndResult" resultType="com.yuanchu.mom.dto.ProductResultDto2">
        select ip.id,
               ip.inspection_item,
               ip.inspection_item_subclass,
               ip.son_laboratory,
               ip.unit,
               ipr.equip_name equipValue,
               io.entrust_code,
               ipr.update_time,
               ip.`last_value`,
               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 template_id is not null
    </select>
    <select id="selectNoProducts" resultType="com.yuanchu.mom.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 ip.ins_result is null
                and state = 1
                and is2.ins_order_id = #{orderId}) A
    </select>
 
    <select id="selectInsProductCountByOrderId" resultType="int">
        select COUNT(1)
        from ins_product ip
                 left join ins_sample isa on ip.ins_sample_id = isa.id
        where isa.id = #{sampleId}
          and (ip.ins_result is null or ip.ins_result = 2)
          and ip.state = 1
    </select>
</mapper>