Fixiaobai
2023-09-04 dd2554435b9ced61e2a6a06627145fca3bf2685b
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
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
<?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.limslaboratory.mapper.MeteringPlanMapper">
 
    <select id="pagingQueryOfMeasurementLedger" resultType="map">
        SELECT
        i.`equipment_code` equipmentCode,
        i.`equipment_name` equipmentName,
        m.measurement_unit measurementUnit,
        i.measuring_range measuringRange,
        i.term_validity termValidity,
        m.result result,
        m.end_date endDate,
        u.NAME name ,
        m.`create_time` createTime,
        m.code code
        FROM
        metrical_information m
        LEFT JOIN `user` u ON u.id = m.user_id
        LEFT JOIN instrument i ON i.`id` = m.`instrument_id`
        WHERE 1=1
        and (m.state=1 and i.state=1 and m.result is not null)
        <if test="dto.code!=null and dto.code!=''">
            and i.`equipment_code` like concat('%',#{dto.code},'%')
        </if>
        <if test="dto.name!=null and dto.name!=''">
            and i.`equipment_name` like concat('%',#{dto.name},'%')
        </if>
        <if test="dto.unit!=null and dto.unit!=''">
            and m.measurement_unit like concat('%',#{dto.unit},'%')
        </if>
    </select>
 
    <select id="limitConditionMeteringPlan" resultMap="MeteringPlanAndInfoMap">
        SELECT p.id id,
        u.`name` createName,
        p.planned_order_number plannedOrderNumber,
        p.begin_time beginTime,
        p.end_time endTime,
        IF(IFNULL(i.result, 0) > 0, 1, 0) status,
        (SELECT name FROM `user` u WHERE p.measure_person = u.id) measureName,
        i.`code` iCode,
        p.unit unit,
        p.create_time createTime
        FROM (SELECT id, unit ,measure_person, create_Person, begin_Time, end_Time, planned_order_number, create_time
        from metering_plan
        where 1=1
        <if test="dto.plannedOrderNumber!=null and dto.plannedOrderNumber!=''">
            and planned_order_number like concat('%',#{dto.plannedOrderNumber},'%')
        </if>
        LIMIT #{limitPage.start},#{limitPage.end}) p
        LEFT JOIN metrical_information i ON p.id = i.plan
        LEFT JOIN `user` u ON p.create_Person = u.id
        where 1 = 1
    </select>
    <select id="getTotal" resultType="java.util.Map">
        select count(id) num from metering_plan where 1=1
        <if test="dto.plannedOrderNumber!=null and dto.plannedOrderNumber!=''">
            and planned_order_number like concat('%',#{dto.plannedOrderNumber},'%')
        </if>
    </select>
    <select id="getPlanMeasureInstrument"
            resultMap="measureInsAndPlanMap">
        SELECT m.planned_order_number                              plannedOrderNumber,
               (SELECT NAME FROM USER WHERE id = m.measure_person) measureName,
               m.begin_time                                        beginTime,
               m.end_time                                          endTime,
               m.unit                                              unit,
               u.`name`                                            createName,
               m.create_time                                       createTime,
               im.equipment_code                                   equipmentCode,
               im.equipment_name                                   equipmentName,
               im.measuring_range                                  measuringRange,
               im.term_validity                                    termValidity,
               im.result                                           result,
               im.end_date                                         endDate,
               im.imName                                           imName,
               im.create_time                                      imCreateTime,
               im.measurement_unit                                 imUnit,
               im.`code`                                           imCode,
               im.id                                                imId,
               im.uncertainty                                       uncertainty ,
               im.performance_index                                  performanceIndex ,
               im.remarks                                           remarks
        FROM metering_plan m
                 LEFT JOIN `user` u ON m.create_Person = u.id
                 LEFT JOIN (
            SELECT i.equipment_code,
                   i.equipment_name,
                   i.measuring_range,
                   im.id,
                   i.term_validity,
                   im.uncertainty,
                   im.performance_index,
                   im.remarks,
                   im.result,
                   im.end_date,
                   (SELECT NAME FROM USER WHERE id = im.user_id) imName,
                   im.create_time,
                   im.measurement_unit,
                   im.`code`,
                   im.plan
            FROM metrical_information im,
                 metering_plan m,
                 instrument i
            WHERE im.instrument_id = i.id
              and m.id = im.plan
              and im.plan = #{id}
              LIMIT #{limitPage.start}
                , #{limitPage.end}
        ) im ON m.id = im.plan
        WHERE 1 = 1
          AND m.id = #{id}
    </select>
    <select id="limitGetPlanMeasureInstrument" resultMap="MetricalInfoAndInsMap">
        SELECT i.equipment_code                              equipmentCode,
               i.equipment_name                              equipmentName,
               i.measuring_range                             measuringRange,
               i.term_validity                               termValidity,
               im.result                                     result,
               im.end_date                                   endDate,
               (SELECT NAME FROM USER WHERE id = im.user_id) imName,
               im.create_time                                imCreateTime,
               im.measurement_unit                           imUnit,
               im.`code`                                     imCode,
               im.id                                            imId,
               im.uncertainty                                       uncertainty ,
               im.performance_index                                  performanceIndex ,
               im.remarks                                           remarks
        FROM metrical_information im,
             metering_plan m,
             instrument i
        WHERE im.instrument_id = i.id
          and m.id = im.plan
          and im.plan = #{id} LIMIT #{limitPage.start}
            , #{limitPage.end}
    </select>
    <select id="countPlanMeasurIns" resultType="java.util.Map">
        SELECT count(im.id) total
        FROM metrical_information im,
             metering_plan m,
             instrument i
        WHERE im.instrument_id = i.id
          and m.id = im.plan
          and im.plan = #{id}
    </select>
 
    <resultMap id="MetricalInfoAndInsMap" type="MetricalInfoAndIns">
        <result property="code" column="imCode"/>
        <result property="measurementUnit" column="imUnit"/>
        <result property="imCreateTime" column="imCreateTime"/>
        <result property="measurementName" column="imName"/>
        <result property="endDate" column="endDate"/>
        <result property="result" column="result"/>
        <result property="termValidity" column="termValidity"/>
        <result property="measuringRange" column="measuringRange"/>
        <result property="equipmentName" column="equipmentName"/>
        <result property="equipmentCode" column="equipmentCode"/>
        <result property="imId" column="imId"/>
        <result property="performanceIndex" column="performanceIndex"/>
        <result property="uncertainty" column="uncertainty"/>
        <result property="remarks" column="remarks"/>
    </resultMap>
 
    <resultMap id="measureInsAndPlanMap" type="meteringPlanAndInfoAndIns">
        <result property="id" column="id"/>
        <result property="createPerson" column="createName"/>
        <result property="beginTime" column="beginTime"/>
        <result property="endTime" column="endTime"/>
        <result property="plannedOrderNumber" column="plannedOrderNumber"/>
        <result property="measurePerson" column="measureName"/>
        <result property="createTime" column="createTime"/>
        <result property="unit" column="unit"/>
        <collection property="metricalInfoAndInsList" ofType="metricalInfoAndIns">
            <result property="code" column="imCode"/>
            <result property="measurementUnit" column="imUnit"/>
            <result property="imCreateTime" column="imCreateTime"/>
            <result property="measurementName" column="imName"/>
            <result property="endDate" column="endDate"/>
            <result property="result" column="result"/>
            <result property="termValidity" column="termValidity"/>
            <result property="measuringRange" column="measuringRange"/>
            <result property="equipmentName" column="equipmentName"/>
            <result property="equipmentCode" column="equipmentCode"/>
            <result property="imId" column="imId"/>
            <result property="performanceIndex" column="performanceIndex"/>
            <result property="uncertainty" column="uncertainty"/>
            <result property="remarks" column="remarks"/>
        </collection>
    </resultMap>
 
    <resultMap id="MeteringPlanAndInfoMap" type="meteringPlanAndInfo">
        <result property="id" column="id"/>
        <result property="createPerson" column="createName"/>
        <result property="beginTime" column="beginTime"/>
        <result property="endTime" column="endTime"/>
        <result property="plannedOrderNumber" column="plannedOrderNumber"/>
        <result property="measurePerson" column="measureName"/>
        <result property="createTime" column="createTime"/>
        <result property="unit" column="unit"/>
        <collection property="resultList" ofType="MetricalInformation">
            <result property="code" column="iCode"/>
            <result property="result" column="status"/>
        </collection>
    </resultMap>
</mapper>