From b1012d23b8ae65e45902900c687bf68f39840ac2 Mon Sep 17 00:00:00 2001
From: pang.jiabao <pang_jiabao@163.com>
Date: 星期一, 17 十一月 2025 09:24:37 +0800
Subject: [PATCH] 高并发下库位抢占导致的数据错乱
---
src/main/resources/mapper/OrderDetlMapper.xml | 76 +++++++++++++++++++++++--------------
1 files changed, 47 insertions(+), 29 deletions(-)
diff --git a/src/main/resources/mapper/OrderDetlMapper.xml b/src/main/resources/mapper/OrderDetlMapper.xml
index b8e55d7..f18898e 100644
--- a/src/main/resources/mapper/OrderDetlMapper.xml
+++ b/src/main/resources/mapper/OrderDetlMapper.xml
@@ -28,7 +28,7 @@
<result column="item_num" property="itemNum" />
<result column="safe_qty" property="safeQty" />
<result column="weight" property="weight" />
- <result column="length" property="length" />
+ <result column="man_length" property="manLength" />
<result column="volume" property="volume" />
<result column="three_code" property="threeCode" />
<result column="supp" property="supp" />
@@ -45,22 +45,38 @@
<result column="update_by" property="updateBy" />
<result column="update_time" property="updateTime" />
<result column="memo" property="memo" />
+ <result column="pakin_pakout_status" property="pakinPakoutStatus" />
+ <result column="line_number" property="lineNumber" />
+ <result column="standby1" property="standby1" />
+ <result column="standby2" property="standby2" />
+ <result column="standby3" property="standby3" />
+ <result column="box_type1" property="boxType1" />
+ <result column="box_type2" property="boxType2" />
+ <result column="box_type3" property="boxType3" />
</resultMap>
+
+ <sql id="standbyAll">
+ and batch = #{batch}
+ and brand = #{brand}
+ and standby1 = #{standby1}
+ and standby2 = #{standby2}
+ and standby3 = #{standby3}
+ and box_type1 = #{boxType1}
+ and box_type2 = #{boxType2}
+ and box_type3 = #{boxType3}
+ </sql>
+ <sql id="standbyAllMemo">
+ -- and line_number = #{lineNumber}
+ -- and specs = #{specs}
+ </sql>
<select id="selectItem" resultMap="BaseResultMap">
select * from man_order_detl
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>
+ <include refid="standbyAll"></include>
</select>
<select id="selectItemByOrderNo" resultMap="BaseResultMap">
@@ -68,9 +84,7 @@
where 1=1
and order_no = #{orderNo}
and matnr = #{matnr}
- <if test="batch!=null and batch!='' ">
- and batch = #{batch}
- </if>
+ <include refid="standbyAll"></include>
</select>
<select id="selectWorkingDetls" resultMap="BaseResultMap">
@@ -131,30 +145,16 @@
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>
+ <include refid="standbyAll"></include>
</update>
<update id="decrease">
update man_order_detl
- set qty = qty - #{qty}
+ 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>
+ <include refid="standbyAll"></include>
</update>
<update id="modifyStatus">
@@ -168,12 +168,30 @@
INSERT INTO man_order_detl_log SELECT * FROM man_order_detl WHERE id = #{id}
</insert>
+ <update id="increaseQtyByOrderNo">
+ update man_order_detl
+ set qty = qty + #{qty}
+ where 1=1
+ and order_no = #{orderNo}
+ and matnr = #{matnr}
+ <include refid="standbyAll"></include>
+ </update>
+
<update id="increaseWorkQty">
update man_order_detl
set work_qty = work_qty + #{workQty}
where 1=1
and order_id = #{orderId}
and matnr = #{matnr}
+ <include refid="standbyAll"></include>
+ </update>
+
+ <update id="increaseWorkQtyByOrderNo">
+ update man_order_detl
+ 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}
--
Gitblit v1.9.1