|
1
2
|
<?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">
|
|
3
4
|
<mapper namespace="com.huaheng.pc.config.location.mapper.LocationMapper">
<resultMap id="BaseResultMap" type="com.huaheng.pc.config.location.domain.Location">
|
|
5
6
7
8
9
10
11
12
13
14
15
|
<!--@mbg.generated-->
<id column="id" jdbcType="INTEGER" property="id" />
<result column="code" jdbcType="VARCHAR" property="code" />
<result column="warehouseCode" jdbcType="VARCHAR" property="warehouseCode" />
<result column="zoneCode" jdbcType="VARCHAR" property="zoneCode" />
<result column="locationType" jdbcType="VARCHAR" property="locationType" />
<result column="containerCode" jdbcType="VARCHAR" property="containerCode" />
<result column="iRow" jdbcType="INTEGER" property="iRow" />
<result column="iColumn" jdbcType="INTEGER" property="iColumn" />
<result column="iLayer" jdbcType="INTEGER" property="iLayer" />
<result column="iGrid" jdbcType="INTEGER" property="iGrid" />
|
|
16
|
<result column="roadway" jdbcType="VARCHAR" property="roadway" />
|
|
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
|
<result column="name" jdbcType="VARCHAR" property="name" />
<result column="lastCycleCountDate" jdbcType="TIMESTAMP" property="lastCycleCountDate" />
<result column="created" jdbcType="TIMESTAMP" property="created" />
<result column="createdBy" jdbcType="VARCHAR" property="createdBy" />
<result column="lastUpdated" jdbcType="TIMESTAMP" property="lastUpdated" />
<result column="lastUpdatedBy" jdbcType="VARCHAR" property="lastUpdatedBy" />
<result column="version" jdbcType="INTEGER" property="version" />
<result column="userDef1" jdbcType="VARCHAR" property="userDef1" />
<result column="userDef2" jdbcType="VARCHAR" property="userDef2" />
<result column="userDef3" jdbcType="VARCHAR" property="userDef3" />
<result column="userDef4" jdbcType="VARCHAR" property="userDef4" />
<result column="userDef5" jdbcType="VARCHAR" property="userDef5" />
<result column="userDef6" jdbcType="VARCHAR" property="userDef6" />
<result column="userDef7" jdbcType="VARCHAR" property="userDef7" />
<result column="userDef8" jdbcType="VARCHAR" property="userDef8" />
<result column="systemCreated" jdbcType="INTEGER" property="systemCreated" />
|
|
33
|
<result column="deleted" jdbcType="BIT" property="deleted" />
|
|
34
35
36
|
</resultMap>
<sql id="Base_Column_List">
<!--@mbg.generated-->
|
|
37
|
id, code, warehouseCode, zoneCode, locationType, containerCode, iRow, iColumn, iLayer,
|
|
38
|
iGrid, roadway, status, `name`, lastCycleCountDate, created, createdBy, lastUpdated, lastUpdatedBy,
|
|
39
|
version, userDef1, userDef2, userDef3, userDef4, userDef5, userDef6, userDef7, userDef8,
|
|
40
|
systemCreated,deleted
|
|
41
|
</sql>
|
|
42
43
44
45
|
<update id="updateStatus">
UPDATE location set `status`=#{status} WHERE warehouseCode=#{warehouseCode} AND `code`=#{code}
</update>
|
|
46
47
|
<select id="position" resultMap="BaseResultMap">
select code from location where #{locatingRule}
|
|
48
|
</select>
|
|
49
|
|
|
50
51
52
53
54
55
56
57
58
59
60
|
<insert id="addList" parameterType="com.huaheng.pc.config.location.domain.Location" keyProperty="id" useGeneratedKeys="true" >
INSERT INTO location(
code,
warehouseCode,
zoneCode,
locationType,
iRow,
iColumn,
iLayer,
iGrid,
roadway,
|
|
61
|
area,
|
|
62
63
|
createdBy,
lastUpdatedBy,
|
|
64
65
|
status,
high
|
|
66
67
68
69
70
71
72
73
74
75
76
77
|
)values
<foreach collection="locations" item="item" index="index" separator=",">
(
#{item.code},
#{item.warehouseCode},
#{item.zoneCode},
#{item.locationType},
#{item.iRow},
#{item.iColumn},
#{item.iLayer},
#{item.iGrid},
#{item.roadway},
|
|
78
|
#{item.area},
|
|
79
80
|
#{item.createdBy},
#{item.lastUpdatedBy},
|
|
81
82
|
#{item.status},
#{item.high}
|
|
83
84
85
86
|
)
</foreach>
</insert>
|
|
87
88
89
90
91
92
93
94
95
96
97
98
|
<update id="updateList" parameterType="com.huaheng.pc.config.location.domain.Location" keyProperty="id" useGeneratedKeys="true" >
replace INTO location(
code,
warehouseCode,
zoneCode,
locationType,
iRow,
iColumn,
iLayer,
iGrid,
rowFlag,
roadway,
|
|
99
|
area,
|
|
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
|
createdBy,
lastUpdatedBy,
status
)values
<foreach collection="locations" item="item" index="index" separator=",">
(
#{item.code},
#{item.warehouseCode},
#{item.zoneCode},
#{item.locationType},
#{item.iRow},
#{item.iColumn},
#{item.iLayer},
#{item.iGrid},
#{item.rowFlag},
#{item.roadway},
|
|
116
|
#{item.area},
|
|
117
118
119
120
121
122
123
|
#{item.createdBy},
#{item.lastUpdatedBy},
#{item.status}
)
</foreach>
</update>
|
|
124
|
<select id="getAllLocation" resultType="com.huaheng.pc.config.location.domain.Location">
|
|
125
|
select max(iRow) as iRow,max(iColumn) as iColumn,max(iLayer) as iLayer,max(iGrid) as iGrid from location l where l.warehouseCode=#{warehouseCode} AND l.zoneCode=#{type}
|
|
126
127
|
</select>
|
|
128
129
130
131
132
133
134
|
<select id="getLocationProp" resultType="java.util.LinkedHashMap">
SELECT w.name warehouseName,ifnull(convert(a.num1/(b.num2+a.num1),decimal(15,2)),0) '有货',ifnull(convert(b.num2/(b.num2+a.num1),decimal(15,2)),0) '无货' from warehouse w
left join
(SELECT count(1) num1,warehouseCode FROM location WHERE containerCode!='' GROUP BY warehouseCode) a on a.warehouseCode=w.code
LEFT JOIN
(SELECT count(1) num2,warehouseCode FROM location WHERE containerCode ='' GROUP BY warehouseCode) b on b.warehouseCode=w.code
</select>
|
|
135
136
|
<select id="pickLocation" resultType="com.huaheng.pc.config.location.domain.Location">
|
|
137
|
select * from location
|
|
138
|
where containerCode != '' and status = 'empty'
|
|
139
|
</select>
|
|
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
|
<select id="selectLocationByContainerEmpty" resultType="com.huaheng.pc.config.location.domain.Location">
SELECT id, code, warehouseCode, zoneCode, locationType, containerCode, iRow, iColumn, iLayer,
iGrid, roadway, `name`, lastCycleCountDate, created, createdBy, lastUpdated, lastUpdatedBy,
version, userDef1, userDef2, userDef3, userDef4, userDef5, userDef6, userDef7, userDef8,
systemCreated
FROM location t
<where>
t.warehouseCode = #{warehouseCode}
<if test="zoneCode != null">
AND zoneCode = #{zoneCode}
</if>
<if test="roadWay != null">
AND roadWay = #{roadWay}
</if>
AND t.status='empty'
AND t.containerCode =''
AND t.`code` NOT in
(SELECT b.locationCode FROM inventory_detail b WHERE b.warehouseCode = #{warehouseCode}
<if test="zoneCode != null">
AND zoneCode = #{zoneCode}
</if>
)
ORDER BY t.lastUpdated ASC
</where>
</select>
|
|
169
170
|
<select id="selectContainerEmpty" resultType="com.huaheng.pc.config.location.domain.Location">
SELECT id, code, warehouseCode, zoneCode, locationType, containerCode, iRow, iColumn, iLayer,
|
|
171
|
iGrid, roadway, `name`, lastCycleCountDate, created, createdBy, lastUpdated, lastUpdatedBy,
|
|
172
173
174
175
176
177
178
179
180
|
version, userDef1, userDef2, userDef3, userDef4, userDef5, userDef6, userDef7, userDef8,
systemCreated
FROM location t
<where>
t.warehouseCode = #{warehouseCode}
AND t.status='empty'
AND t.containerCode !=''
AND t.containerCode is not NULL
AND t.`code` NOT in
|
|
181
|
(SELECT b.locationCode FROM inventory_detail b WHERE b.warehouseCode = #{warehouseCode})
|
|
182
183
184
|
ORDER BY t.lastUpdated ASC
</where>
</select>
|
|
185
|
<select id="getFirstRowOfZone" resultType="java.lang.Integer">
|
|
186
|
select min(iRow) from location where warehouseCode=#{warehouseCode} and zoneCode = #{locationType}
|
|
187
188
|
</select>
<select id="getLastRowOfZone" resultType="java.lang.Integer">
|
|
189
|
select max(iRow) from location where warehouseCode=#{warehouseCode} and zoneCode = #{locationType}
|
|
190
|
</select>
|
|
191
|
|
|
192
193
194
195
196
197
198
199
|
<select id="selectAddress" resultType="com.huaheng.pc.config.location.domain.Location">
SELECT max(row) AS row,max(line) AS line FROM location where type='A' and warehouseCode=#{warehouseCode}
</select>
<select id="selectEmptyAddress" resultType="com.huaheng.pc.config.location.domain.Location">
SELECT DISTINCT l.row,l.line from location l
inner join location_position i on i.warehouseCode=l.warehouseCode and l.code=i.locationCode
inner join points p on i.warehouseCode=p.warehouseCode and i.intX=p.intX and i.intY=p.intY and p.isLocked=#{isLocked} and p.warehouseCode=#{warehouseCode}
</select>
|
|
200
|
|
|
201
202
203
|
<select id="selectlistEmpty" resultType="java.lang.String">
SELECT a.code from (SELECT * from location where iRow=3 and containerCode='' and zoneCode='LK' and warehouseCode=#{warehouseCode}) a
INNER JOIN (SELECT * from location where iRow=2 and containerCode!='' and zoneCode='LK' and warehouseCode=#{warehouseCode}) b on a.iColumn=b.iColumn and a.iLayer=b.iLayer and a.iGrid=b.iGrid
|
|
204
205
|
</select>
<select id="selectCode" resultType="com.huaheng.pc.config.location.domain.Location">
|
|
206
|
select l.* from location l inner join task_header t on t.status<=10 and l.zoneCode='LK' and (t.fromLocation = l.code or t.toLocation =l.code) and l.containerCode !='' and l.warehouseCode=#{warehouseCode}
|
|
207
208
209
210
211
212
213
214
215
216
|
</select>
<select id="selectByPrefix" resultType="com.huaheng.pc.config.location.domain.Location">
select * from location
<where> warehouseCode=#{warehouseCode} and locationType=#{type} and containerCode ='' and status='empty'
<if test="roadway != null">
AND roadway = #{roadway}
</if>
</where>
|
|
217
|
order by iColumn desc,FIND_IN_SET(iRow,'3,1,2'),iGrid desc,iLayer asc limit 1
|
|
218
219
220
221
222
223
224
225
226
227
|
</select>
<select id="selectModelByOld" resultType="com.huaheng.pc.config.location.domain.Location">
select * from location
<where> warehouseCode=#{warehouseCode} and locationType=#{locationType} and containerCode ='' and status='empty' and code !=#{code}
<if test="roadway != null">
AND roadway = #{roadway}
</if>
</where>
|
|
228
|
order by iColumn desc,FIND_IN_SET(iRow,'3,1,2'),iGrid desc,iLayer asc limit 1
|
|
229
230
231
232
233
234
235
236
|
</select>
<select id="selectModelByOlds" resultType="com.huaheng.pc.config.location.domain.Location">
select * from location
where warehouseCode=#{location.warehouseCode} and locationType=#{location.locationType} and containerCode ='' and status='empty' and code not in
<foreach item="item" index="index" collection="codes" open="(" separator="," close=")">
#{item}
</foreach>
|
|
237
|
order by iColumn desc,FIND_IN_SET(iRow,'3,1,2'),iGrid desc,iLayer asc limit 1
|
|
238
239
240
241
242
243
244
245
246
247
248
249
250
|
</select>
<select id="getLocationAajacentIsNull" resultType="com.huaheng.pc.config.location.domain.Location">
select * from location where zoneCode='LK' and status='empty' and roadWay=2
<choose>
<when test="flag==true">
and length(containerCode)>1
</when>
<otherwise>
and (containerCode is null or containerCode ='')
</otherwise>
</choose>
|
|
251
|
and iLayer=#{layer}
|
|
252
253
254
255
256
257
258
259
|
<choose>
<when test="line==23">
and iColumn < 23 ORDER BY iColumn desc
</when>
<when test="line==1">
and iColumn > 1 ORDER BY iColumn asc
</when>
<otherwise>
|
|
260
|
and iColumn >=#{line} ORDER BY iColumn asc
|
|
261
262
263
264
265
266
|
</otherwise>
</choose>
limit 2
</select>
<select id="getLocationRoadWay" resultType="com.huaheng.pc.config.location.domain.Location">
|
|
267
|
select * from location where roadway = #{roadway} and zoneCode ="LK" and length(containerCode) > 1 and status="empty" and iLayer=ceiling(rand()*8) limit 1
|
|
268
269
270
271
272
273
274
275
276
277
278
|
</select>
<select id="getLocationAdjacent" resultType="com.huaheng.pc.config.location.domain.Location">
select * from location where zoneCode='LK' and status='empty' and roadWay=2
<choose>
<when test="flag==true">
and length(containerCode)>1
</when>
<otherwise>
and (containerCode is null or containerCode ='')
</otherwise>
</choose>
|
|
279
|
and (iColumn between #{line}-2 and #{line}+2) and (iLayer between #{layer}-3 and #{layer}+3) and iColumn >1
|
|
280
|
</select>
|
|
281
282
283
284
285
286
|
<select id="getLocationOfRule" resultType="com.huaheng.pc.config.location.domain.Location">
select * from location where zoneCode='XC' and status = 'empty'
AND (containerCode IS NULL OR containerCode = '') ORDER BY iColumn asc,iRow asc LIMIT 1
</select>
|
|
287
288
289
290
291
292
|
<select id="selectListInventory" resultType="com.huaheng.pc.config.location.domain.Location">
SELECT l.code from location l inner join container c on
l.warehouseCode=c.warehouseCode and l.status='empty' and l.zoneCode=#{zoneCode}
and l.containerCode =c.code and c.status!='empty' ORDER BY code asc limit 2
</select>
|
|
293
294
295
296
297
298
299
300
301
|
<update id="updateStatusNew">
UPDATE location
SET `status`= #{status}
WHERE warehouseCode = #{warehouseCode}
AND `code`= #{code}
AND `status` = #{oldStatus}
</update>
</mapper>
|