李林
2024-03-18 0d98e9c2d06c5d8b7b6de5ec433a12713744ae6b
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
<?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.InsSampleMapper">
 
    <resultMap id="BaseResultMap" type="com.yuanchu.mom.pojo.InsSample">
            <id property="id" column="id" jdbcType="INTEGER"/>
            <result property="insResult" column="ins_result" jdbcType="INTEGER"/>
            <result property="insOrderId" column="ins_order_id" jdbcType="INTEGER"/>
            <result property="joinModel" column="join_model" jdbcType="VARCHAR"/>
            <result property="joinName" column="join_name" jdbcType="VARCHAR"/>
            <result property="sampleCode" column="sample_code" 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="isLeave" column="is_leave" jdbcType="INTEGER"/>
            <result property="leaveNum" column="leave_num" jdbcType="INTEGER"/>
            <result property="insProgress" column="ins_progress" jdbcType="VARCHAR"/>
            <result property="insState" column="ins_state" jdbcType="INTEGER"/>
            <result property="sendTime" column="send_time" jdbcType="TIMESTAMP"/>
            <result property="joinNum" column="join_num" jdbcType="INTEGER"/>
            <result property="remark" column="remark" jdbcType="VARCHAR"/>
            <result property="appointed" column="appointed" jdbcType="TIMESTAMP"/>
            <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"/>
    </resultMap>
 
    <sql id="Base_Column_List">
        id,ins_result,ins_order_id,
        join_model,join_name,sample_code,
        factory,laboratory,sample_type,
        sample,model,is_leave,
        leave_num,ins_progress,ins_state,
        send_time,join_num,remark,
        appointed,create_user,update_user,
        create_time,update_time
    </sql>
    <select id="findInsSampleAndOrder" resultType="com.yuanchu.mom.vo.InsOrderPlanVO">
        SELECT DISTINCT
            io.entrust_code,
            io.type,
            tempA.id,
            tempA.sample,
            tempA.sample_code,
            tempA.send_time,
            tempA.appointed,
            tempA.ins_state,
            tempA.ins_result,
            tempA.user_id,
            tempA.ins_order_id,
            tempA.sample_user_id,
            ipr.son_laboratory
        FROM
            (
                SELECT
                    temp.*
                FROM
                    (
                        SELECT
                            isa.id,
                            isa.sample,
                            isa.sample_code,
                            isa.send_time,
                            isa.appointed,
                            isa.ins_state,
                            isa.ins_result,
                            isu.user_id,
                            isa.ins_order_id,
                            isu.id as sample_user_id
                        FROM
                            ins_sample isa
                                LEFT JOIN ins_sample_user isu ON isa.id = isu.ins_sample_id
                    ) AS temp
                WHERE
                    temp.user_id = #{ew.userId}
                   OR ( SELECT COUNT(*) FROM ins_sample_user WHERE ins_sample_id = temp.id ) = 0
            ) AS tempA
                LEFT JOIN ins_order io ON tempA.ins_order_id = io.id
                LEFT JOIN ins_product ipr ON tempA.id = ipr.ins_sample_id
        WHERE
          io.state = #{ew.state}
          AND ipr.state = 1
          AND ipr.son_laboratory = #{ew.childrenLaboratory}
          <if test="ew.insState!=null and ew.insState!=''">
              AND tempA.ins_state = #{ew.insState}
          </if>
          <if test="ew.sampleName!=null and ew.sampleName!=''">
              AND tempA.sample like concat('%',#{ew.sampleName},'%')
          </if>
          <if test="ew.viewSelf==true">
              AND tempA.sample_user_id is not null
          </if>
          ORDER BY io.type DESC
    </select>
</mapper>