czt
2024-07-13 1c1472f51d68382f913e413aa827fd0b028ab589
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
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
<?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.ld.igds.grain.mapper.GrainServiceMapper">
 
    <!-- 基础查询字段 -->
    <sql id="DATA_REPORT_COLUMN">
        g.BATCH_ID_ AS batchId,
        g.COMPANY_ID_ AS companyId,
        g.DEPOT_ID_ AS depotId,
        g.TEMP_MIN_ AS tempMin,
        g.TEMP_MAX_ AS tempMax,
        g.TEMP_AVE_ AS tempAve,
        g.HUMIDITY_IN_ AS humidityIn,
        g.TEMP_IN_ AS tempIn,
        g.HUMIDITY_OUT_ AS humidityOut,
        g.TEMP_OUT_ AS tempOut,
        g.CABLE_ AS cable,
        g.CABLE_CIR_ AS cableCir,
        g.OIL_HEIGHT_ AS oilHeight,
        g.WEATHER_ AS weather,
        g.RECEIVE_DATE_ AS receiveDate,
        g.CHECK_USER_ AS checkUser,
        g.REMARK_ AS remark,
        g.POINTS_ AS points,
 
        d.STORE_KEEPER_NAME_ AS storeKeeperName,
        d.PER_WET_ AS perWet,
        d.PER_IMPURITY_ AS perImpurity,
        d.DEPOT_TYPE_ AS depotType,
        d.STORAGE_REAL_ AS storageReal,
        d.FOOD_VARIETY_ AS foodVariety
    </sql>
 
    <sql id="DATA_COLUMN">
        BATCH_ID_ AS batchId,
        COMPANY_ID_ AS companyId,
        DEPOT_ID_ AS
        depotId,
        TEMP_MIN_ AS tempMin,
        TEMP_MAX_ AS tempMax,
        TEMP_AVE_ AS tempAve,
        HUMIDITY_IN_ AS humidityIn,
        TEMP_IN_ AS tempIn,
        HUMIDITY_OUT_ AS humidityOut,
        TEMP_OUT_ AS tempOut,
        CABLE_ AS cable,
        CABLE_CIR_ AS cableCir,
        OIL_HEIGHT_ AS oilHeight,
        WEATHER_ AS weather,
        RECEIVE_DATE_ AS receiveDate,
        CHECK_USER_ AS checkUser,
        REMARK_ AS remark,
        POINTS_ AS points
    </sql>
 
 
    <!-- 根据参数分页获取 -->
    <select id="pageDataReport" resultType="com.ld.igds.grain.dto.GrainDataReport"
            parameterType="java.util.Map">
        select
        <include refid="DATA_REPORT_COLUMN"/>
        from
        D_GRAIN g LEFT JOIN D_DEPOT d ON g.COMPANY_ID_ = d.COMPANY_ID_ AND
        g.DEPOT_ID_ = d.ID_
        <where>
            <if test="param.companyId != null">AND g.COMPANY_ID_ =
                #{param.companyId}
            </if>
            <if test="param.depotId != null">AND g.DEPOT_ID_ =
                #{param.depotId}
            </if>
            <if test="param.start != null">AND
                g.RECEIVE_DATE_ <![CDATA[ >= ]]>
                #{param.start,jdbcType=DATE}
            </if>
            <if test="param.end != null">AND
                g.RECEIVE_DATE_  <![CDATA[ <= ]]>
                #{param.end,jdbcType=DATE}
            </if>
        </where>
        ORDER BY g.BATCH_ID_ DESC
    </select>
 
    <!-- 根据参数分页获取 -->
    <select id="pageListGrainData" resultType="com.ld.igds.grain.dto.GrainData"
            parameterType="com.ld.igds.grain.dto.GrainParam">
        select
        <include refid="DATA_COLUMN"/>
        from
        D_GRAIN
        <where>
            <if test="param.companyId != null">AND COMPANY_ID_ =
                #{param.companyId}
            </if>
            <if test="param.start != null">AND
                RECEIVE_DATE_ <![CDATA[ >= ]]>
                #{param.start,jdbcType=DATE}
            </if>
            <if test="param.end != null">AND
                RECEIVE_DATE_  <![CDATA[ <= ]]>
                #{param.end,jdbcType=DATE}
            </if>
            <if test="param.depotId != null">AND DEPOT_ID_ = #{param.depotId}</if>
            <if test="param.batchId != null">AND BATCH_ID_ = #{param.batchId}</if>
            <if test="param.extBatchId != null">AND BATCH_ID_ != #{param.extBatchId}</if>
        </where>
        ORDER BY BATCH_ID_ DESC
    </select>
 
    <delete id="deleteListData" parameterType="java.util.List">
        delete from D_GRAIN
        where
        <foreach collection="list" item="item" separator="or">
            ( BATCH_ID_ = #{item.batchId}
            AND COMPANY_ID_=#{item.companyId}
            AND DEPOT_ID_=#{item.depotId}
            )
        </foreach>
    </delete>
 
    <!-- 根据参数分页获取 -->
    <select id="pageListChartData" resultType="com.ld.igds.grain.dto.GrainData"
            parameterType="com.ld.igds.grain.dto.GrainParam">
        select
        <include refid="DATA_COLUMN"/>
        from
        D_GRAIN
        <where>
            <if test="param.companyId != null">AND COMPANY_ID_ =
                #{param.companyId}
            </if>
            <if test="param.start != null">AND
                RECEIVE_DATE_ <![CDATA[ >= ]]>
                #{param.start}
            </if>
            <if test="param.end != null">AND
                RECEIVE_DATE_  <![CDATA[ <= ]]>
                #{param.end}
            </if>
            <if test="param.depotId != null">AND DEPOT_ID_ = #{param.depotId}</if>
            <if test="param.batchId != null">AND BATCH_ID_ = #{param.batchId}</if>
            <if test="param.extBatchId != null">AND BATCH_ID_ != #{param.extBatchId}</if>
        </where>
        ORDER BY BATCH_ID_ ASC
    </select>
 
    <!-- 根据条件获取粮情信息 -->
    <select id="listGrainData" resultType="com.ld.igds.grain.dto.GrainData"
            parameterType="com.ld.igds.grain.dto.GrainParam">
        select
        <include refid="DATA_COLUMN"/>
        from
        D_GRAIN
        <where>
            <if test="param.companyId != null">AND COMPANY_ID_ =
                #{param.companyId}
            </if>
            <if test="param.start != null">AND
                RECEIVE_DATE_ <![CDATA[ >= ]]>
                #{param.start,jdbcType=DATE}
            </if>
            <if test="param.end != null">AND
                RECEIVE_DATE_  <![CDATA[ <= ]]>
                #{param.end,jdbcType=DATE}
            </if>
            <if test="param.depotId != null">AND DEPOT_ID_ = #{param.depotId}</if>
        </where>
        ORDER BY BATCH_ID_ DESC
    </select>
 
 
    <insert id="saveGrain" parameterType="com.ld.igds.models.Grain">
        insert into
        D_GRAIN(BATCH_ID_,
        COMPANY_ID_,
        DEPOT_ID_,
        TEMP_MIN_,
        TEMP_MAX_,
        TEMP_AVE_,
        HUMIDITY_IN_,
        TEMP_IN_,
        HUMIDITY_OUT_,
        TEMP_OUT_,
        CABLE_,
        CABLE_CIR_,
        OIL_HEIGHT_,
        WEATHER_,
        RECEIVE_DATE_,
        CHECK_USER_,
        REMARK_,
        POINTS_
        )values(
        #{data.batchId},
        #{data.companyId},
        #{data.depotId},
        #{data.tempMin},
        #{data.tempMax},
        #{data.tempAve},
        #{data.humidityIn},
        #{data.tempIn},
        #{data.humidityOut},
        #{data.tempOut},
        #{data.cable},
        #{data.cableCir},
        #{data.oilHeight},
        #{data.weather},
        #{data.receiveDate},
        #{data.checkUser},
        #{data.remark},
        #{data.points}
        )
    </insert>
 
    <!-- 获取满足条件的个数-->
    <select id="countGrain" resultType="java.lang.Integer" parameterType="com.ld.igds.models.Grain">
        select count(BATCH_ID_) as count from D_GRAIN where BATCH_ID_ = #{data.batchId} and COMPANY_ID_ = #{data.companyId} and DEPOT_ID_ = #{data.depotId}
    </select>
 
    <!-- 修改数据-->
    <update id="updateGrain" parameterType="com.ld.igds.models.Grain">
        UPDATE D_GRAIN
        <set>
            <if test="data.tempMin != null">TEMP_MIN_ = #{data.tempMin},</if>
            <if test="data.tempMax != null">TEMP_MAX_ = #{data.tempMax},</if>
            <if test="data.tempAve != null">TEMP_AVE_ = #{data.tempAve},</if>
            <if test="data.humidityIn != null">HUMIDITY_IN_ = #{data.humidityIn},</if>
            <if test="data.tempIn != null">TEMP_IN_ = #{data.tempIn},</if>
            <if test="data.tempOut != null">TEMP_OUT_ = #{data.tempOut},</if>
            <if test="data.humidityOut != null">HUMIDITY_OUT_ = #{data.humidityOut},</if>
            <if test="data.cable != null">CABLE_ = #{data.cable},</if>
            <if test="data.weather != null">WEATHER_ = #{data.weather},</if>
            <if test="data.receiveDate != null">RECEIVE_DATE_ = #{data.receiveDate},</if>
            <if test="data.checkUser != null">CHECK_USER_ = #{data.checkUser},</if>
            <if test="data.remark != null">REMARK_ = #{data.remark},</if>
            <if test="data.points != null">POINTS_ = #{data.points},</if>
        </set>
        where BATCH_ID_ = #{data.batchId} and COMPANY_ID_ = #{data.companyId} and DEPOT_ID_ = #{data.depotId}
    </update>
 
 
    <!-- 新增采集点信息 -->
    <insert id="addItem" parameterType="com.ld.igds.grain.dto.GrainItemInfo">
    INSERT INTO D_GRAIN_INFO (
    ID_,NUM_,CABLE_,TEMP_,TEMP_AVE_,RECEIVE_DATE_
    ) values (
    #{data.id},
    #{data.num},
    #{data.cable},
    #{data.temp},
    #{data.tempAve},
    #{data.receiveDate}
    )
    </insert>
 
    <!-- 根据参数获取采集位的粮情信息-->
    <select id="listGrainItemInfo" parameterType="com.ld.igds.grain.dto.GrainPointParam"
            resultType="com.ld.igds.grain.dto.GrainItemInfo">
        select
        ID_ as id,
        NUM_ as num,
        TEMP_ as temp,
        TEMP_AVE_ as tempAve,
        RECEIVE_DATE_ AS receiveDate
        from D_GRAIN_INFO
        <where>
            <if test="param.id != null">AND ID_ LIKE
                #{param.id}
            </if>
            <if test="param.start != null">AND
                RECEIVE_DATE_ <![CDATA[ >= ]]>
                #{param.start,jdbcType=DATE}
            </if>
            AND NUM_ = #{param.num}
        </where>
        ORDER BY RECEIVE_DATE_
    </select>
 
    <!-- 根据仓库获取粮情信息 -->
    <select id="getDepotAndGrain" resultType="com.ld.igds.screen.data.DepotGrainData" parameterType="java.lang.String">
        SELECT
        d.ID_ AS id,
        d.NAME_ AS NAME,
        d.COMPANY_ID_ AS companyId,
        d.DEPT_ID_ AS deptId,
        d.DEPOT_TYPE_ AS depotType,
        d.DEPOT_STATUS_ AS depotStatus,
        d.FOOD_VARIETY_ AS foodVariety,
        d.FOOD_TYPE_ AS foodType,
        d.FOOD_LEVEL_ AS foodLevel,
        d.FOOD_LOCATION_ AS foodLocation,
        d.FOOD_YEAR_ AS foodYear,
        d.STORAGE_REAL_ AS storageReal,
        d.STORE_KEEPER_NAME_ AS storeKeeperName,
        g.TEMP_MAX_ AS tempMax,
        g.TEMP_AVE_ AS tempAve,
        g.TEMP_MIN_ AS tempMin,
        g.HUMIDITY_IN_ AS humidityIn,
        g.TEMP_IN_ AS tempIn,
        g.HUMIDITY_OUT_ AS humidityOut,
        g.TEMP_OUT_ AS tempOut,
        g.RECEIVE_DATE_ AS receiveDate
        FROM
        d_depot d
        LEFT JOIN (
        SELECT
        *
        FROM
        (
        SELECT DISTINCT
        *
        FROM
        d_grain
        ORDER BY
        RECEIVE_DATE_ DESC
        ) a
        GROUP BY
        DEPOT_ID_
        ) g ON d.ID_ = g.DEPOT_ID_
        <where>
            <if test="companyId != null and companyId != ''">AND d.COMPANY_ID_ = #{companyId}</if>
            <if test="deptId != null and deptId != ''">AND d.DEPT_ID_ = #{deptId}</if>
        </where>
        ORDER BY d.ID_
    </select>
</mapper>