自动化立体仓库 - WMS系统
*
lsh
11 小时以前 f0a7fa09eeef7fd9dc97173b5ef8e319d17c7f28
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
<?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.zy.asrs.mapper.OrderDetlPakoutMapper">
 
    <!-- 通用查询映射结果 -->
    <resultMap id="BaseResultMap" type="com.zy.asrs.entity.OrderDetlPakout">
        <id column="id" property="id" />
        <result column="order_id" property="orderId" />
        <result column="order_no" property="orderNo" />
        <result column="anfme" property="anfme" />
        <result column="work_qty" property="workQty" />
        <result column="qty" property="qty" />
        <result column="matnr" property="matnr" />
        <result column="maktx" property="maktx" />
        <result column="batch" property="batch" />
        <result column="specs" property="specs" />
        <result column="model" property="model" />
        <result column="color" property="color" />
        <result column="brand" property="brand" />
        <result column="unit" property="unit" />
        <result column="price" property="price" />
        <result column="sku" property="sku" />
        <result column="units" property="units" />
        <result column="barcode" property="barcode" />
        <result column="origin" property="origin" />
        <result column="manu" property="manu" />
        <result column="manu_date" property="manuDate" />
        <result column="item_num" property="itemNum" />
        <result column="safe_qty" property="safeQty" />
        <result column="weight" property="weight" />
        <result column="length" property="length" />
        <result column="volume" property="volume" />
        <result column="three_code" property="threeCode" />
        <result column="supp" property="supp" />
        <result column="supp_code" property="suppCode" />
        <result column="be_batch" property="beBatch" />
        <result column="dead_time" property="deadTime" />
        <result column="dead_warn" property="deadWarn" />
        <result column="source" property="source" />
        <result column="inspect" property="inspect" />
        <result column="danger" property="danger" />
        <result column="status" property="status" />
        <result column="create_by" property="createBy" />
        <result column="create_time" property="createTime" />
        <result column="update_by" property="updateBy" />
        <result column="update_time" property="updateTime" />
        <result column="memo" property="memo" />
        <result column="tk_type" property="tkType" />
        <result column="roll_up" property="rollUp" />
 
    </resultMap>
 
    <!-- 明细视图B的通用查询映射结果 -->
    <resultMap id="PakoutDetailResultMap" type="com.zy.asrs.entity.result.OrderPakoutDetailVo">
        <id column="id" property="id" jdbcType="BIGINT"/>
        <result column="item_name" property="itemName" jdbcType="VARCHAR"/>
        <result column="matnr" property="matnr" jdbcType="VARCHAR"/>
        <result column="batch" property="batch" jdbcType="VARCHAR"/>
        <result column="model" property="model" jdbcType="VARCHAR"/>
        <result column="origin" property="origin" jdbcType="VARCHAR"/>
        <result column="danger" property="danger" jdbcType="INTEGER"/>
        <result column="status" property="status" jdbcType="INTEGER"/>
        <result column="specs" property="specs" jdbcType="VARCHAR"/>
        <result column="brand" property="brand" jdbcType="VARCHAR"/>
        <result column="price" property="price" jdbcType="DECIMAL"/>
        <result column="weight" property="weight" jdbcType="DECIMAL"/>
        <result column="roughWeight" property="roughWeight" jdbcType="DECIMAL"/>
        <result column="volume" property="volume" jdbcType="DECIMAL"/>
 
        <!-- 数量字段 -->
        <result column="anfme" property="anfme" jdbcType="DECIMAL"/>
        <result column="qty" property="qty" jdbcType="DECIMAL"/>
        <result column="units" property="units" jdbcType="DECIMAL"/>
        <result column="safe_qty" property="safeQty" jdbcType="DECIMAL"/>
        <result column="work_qty" property="workQty" jdbcType="DECIMAL"/>
 
        <!-- 其他字段 -->
        <result column="order_id" property="orderId" jdbcType="BIGINT"/>
        <result column="order_no" property="orderNo" jdbcType="VARCHAR"/>
        <result column="maktx" property="maktx" jdbcType="VARCHAR"/>
        <result column="color" property="color" jdbcType="VARCHAR"/>
        <result column="unit" property="unit" jdbcType="VARCHAR"/>
        <result column="sku" property="sku" jdbcType="VARCHAR"/>
        <result column="barcode" property="barcode" jdbcType="VARCHAR"/>
        <result column="manu" property="manu" jdbcType="VARCHAR"/>
        <result column="manu_date" property="manuDate" jdbcType="VARCHAR"/>
        <result column="item_num" property="itemNum" jdbcType="VARCHAR"/>
        <result column="length" property="length" jdbcType="DECIMAL"/>
        <result column="three_code" property="threeCode" jdbcType="VARCHAR"/>
        <result column="supp" property="supp" jdbcType="VARCHAR"/>
        <result column="supp_code" property="suppCode" jdbcType="VARCHAR"/>
        <result column="be_batch" property="beBatch" jdbcType="INTEGER"/>
        <result column="dead_time" property="deadTime" jdbcType="VARCHAR"/>
        <result column="dead_warn" property="deadWarn" jdbcType="INTEGER"/>
        <result column="source" property="source" jdbcType="INTEGER"/>
        <result column="inspect" property="inspect" jdbcType="INTEGER"/>
        <result column="tk_type" property="tkType" jdbcType="INTEGER"/>
        <result column="roll_up" property="rollUp" jdbcType="BIGINT"/>
        <result column="create_by" property="createBy" jdbcType="BIGINT"/>
        <result column="create_time" property="createTime" jdbcType="TIMESTAMP"/>
        <result column="update_by" property="updateBy" jdbcType="BIGINT"/>
        <result column="update_time" property="updateTime" jdbcType="TIMESTAMP"/>
        <result column="memo" property="memo" jdbcType="VARCHAR"/>
    </resultMap>
 
    <select id="selectItem" resultMap="BaseResultMap">
        select * from man_order_detl_pakout
        where 1=1
        and order_id = #{orderId}
        and matnr = #{matnr}
        <choose>
            <when test="batch != null and batch != ''">
                and batch = #{batch}
            </when>
            <otherwise>
                and (batch IS NULL OR batch = '')
            </otherwise>
        </choose>
    </select>
 
    <select id="selectItemByOrderNo" resultMap="BaseResultMap">
        select * from man_order_detl_pakout
        where 1=1
        and order_no = #{orderNo}
        and matnr = #{matnr}
        <if test="batch!=null and batch!='' ">
            and batch = #{batch}
        </if>
    </select>
 
    <select id="selectWorkingDetls" resultMap="BaseResultMap">
        select * from man_order_detl_pakout
        where 1=1
        and order_id = #{orderId}
        and qty &lt; anfme
    </select>
 
    <sql id="pakOutPageCondition">
        <if test="order_id!=null and order_id!='' ">
            and mod.order_id like '%' + #{order_id} + '%'
        </if>
        <if test="matnr!=null and matnr!='' ">
            and mod.matnr like '%' + #{matnr} + '%'
        </if>
        <if test="maktx!=null and maktx!='' ">
            and mod.maktx like '%' + #{maktx} + '%'
        </if>
        <if test="batch!=null and batch!='' ">
            and mod.batch like '%' + #{batch} + '%'
        </if>
    </sql>
 
    <select id="getPakoutPage" resultMap="BaseResultMap">
        select * from
        (
            select
            ROW_NUMBER() over (order by mo.create_time desc) as row,
            mod.*
            from man_order_detl_pakout mod
            inner join man_order_pakout mo on mod.order_id = mo.id
            inner join man_doc_type mdt on mo.doc_type = mdt.doc_id
            where 1=1
            and mo.settle &lt;= 2
            and mo.status = 1
            and mdt.pakout = 1
            <include refid="pakOutPageCondition"></include>
        ) t where t.row between ((#{pageNumber}-1)*#{pageSize}+1) and (#{pageNumber}*#{pageSize})
    </select>
 
    <select id="getPakoutPageCount" parameterType="java.util.Map" resultType="java.lang.Integer">
        select
        count(1)
        from man_order_detl mod
        inner join man_order mo on mod.order_id = mo.id
        inner join man_doc_type mdt on mo.doc_type = mdt.doc_id
        where 1=1
        and mo.settle &lt;= 2
        and mo.status = 1
        and mdt.pakout = 1
        <include refid="pakOutPageCondition"></include>
    </select>
 
    <update id="increase">
        update man_order_detl_pakout
        set qty = qty + #{qty}
        where 1=1
        and order_id = #{orderId}
        and matnr = #{matnr}
        <choose>
            <when test="batch != null and batch != ''">
                and batch = #{batch}
            </when>
            <otherwise>
                and (batch IS NULL OR batch = '')
            </otherwise>
        </choose>
    </update>
 
    <update id="decrease">
        update man_order_detl_pakout
        set work_qty = work_qty - #{qty}
        where 1=1
        and order_no = #{orderNo}
        and matnr = #{matnr}
        <choose>
            <when test="batch != null and batch != ''">
                and batch = #{batch}
            </when>
            <otherwise>
                and (batch IS NULL OR batch = '')
            </otherwise>
        </choose>
    </update>
 
    <update id="modifyStatus">
        update man_order_detl_pakout
        set status = #{status}
        where 1=1
        and order_id = #{orderId}
    </update>
 
    <insert id="addToLogTable">
        INSERT INTO man_order_detl_pakout_log SELECT * FROM man_order_detl_pakout WHERE id = #{id}
    </insert>
 
    <update id="increaseQtyByOrderNo">
        update man_order_detl_pakout
        set qty = qty + #{qty}
        where 1=1
        and order_no = #{orderNo}
        and matnr = #{matnr}
        <choose>
            <when test="batch != null and batch != ''">
                and batch = #{batch}
            </when>
            <otherwise>
                and (batch IS NULL OR batch = '')
            </otherwise>
        </choose>
    </update>
 
    <update id="increaseWorkQty">
        update man_order_detl_pakout
        set work_qty = work_qty + #{workQty}
        where 1=1
        and order_id = #{orderId}
        and matnr = #{matnr}
        <choose>
            <when test="batch != null and batch != ''">
                and batch = #{batch}
            </when>
            <otherwise>
                and (batch IS NULL OR batch = '')
            </otherwise>
        </choose>
    </update>
 
    <select id="selectOrderPakoutDetailVoList" resultMap="PakoutDetailResultMap">
        SELECT * FROM v_pakout_detail
        WHERE 1 = 1
        <if test="itemName != null and itemName != ''">
            AND item_name LIKE CONCAT('%', #{itemName}, '%')
        </if>
        ORDER BY create_time DESC
    </select>
 
    <select id="selectOrderPakoutDetailVoListTotal" resultType="Long">
        SELECT count(1) FROM v_pakout_detail
        WHERE 1 = 1
        <if test="itemName != null and itemName != ''">
            AND item_name LIKE CONCAT('%', #{itemName}, '%')
        </if>
    </select>
 
</mapper>