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/WrkMastLogMapper.xml | 63 +++++++++++++++++++++++++++++++
1 files changed, 62 insertions(+), 1 deletions(-)
diff --git a/src/main/resources/mapper/WrkMastLogMapper.xml b/src/main/resources/mapper/WrkMastLogMapper.xml
index 907a75a..c1dcaa2 100644
--- a/src/main/resources/mapper/WrkMastLogMapper.xml
+++ b/src/main/resources/mapper/WrkMastLogMapper.xml
@@ -57,11 +57,72 @@
<result column="log_err_time" property="logErrTime" />
<result column="log_err_memo" property="logErrMemo" />
<result column="barcode" property="barcode" />
- <result column="Pdc_type" property="PdcType" />
<result column="ctn_no" property="ctnNo" />
<result column="full_plt" property="fullPlt" />
<result column="pre_have" property="preHave" />
<result column="take_none" property="takeNone" />
+ <result column="rgv_no" property="rgvNo" />
+ <result column="rgv_ssta_no" property="rgvSstaNo" />
+ <result column="rgv_dsta_no" property="rgvDstaNo" />
+ <result column="rgv_create_time" property="rgvCreateTime" />
+ <result column="rgv_finish_time" property="rgvFinishTime" />
+ <result column="work_no_other" property="workNoOther" />
+ <result column="Pdc_type" property="pdcType" />
</resultMap>
+ <sql id="queryWhere">
+ <where>
+ <if test="param.wrk_no != null and param.wrk_no != ''"> and a.wrk_no = #{param.wrk_no}</if>
+ <if test="param.io_type != null and param.io_type != ''"> and a.io_type = #{param.io_type}</if>
+ <if test="param.matnr != null and param.matnr != ''"> and b.matnr = #{param.matnr}</if>
+ <if test="param.maktx != null and param.maktx != ''"> and b.maktx = #{param.maktx}</if>
+ <if test="param.batch != null and param.batch != ''"> and b.batch = #{param.batch}</if>
+ <if test="param.zpallet != null and param.zpallet != ''"> and a.barcode = #{param.zpallet}</if>
+ <if test="param.loc_no != null and param.loc_no != ''"> and (a.loc_no = #{param.loc_no} or a.source_loc_no = #{param.loc_no})</if>
+ <if test="param.startTime != null and param.startTime != ''"> and a.io_time >= #{param.startTime}</if>
+ <if test="param.endTime != null and param.endTime != ''"> and a.io_time <= #{param.endTime}</if>
+ </where>
+ </sql>
+ <select id="inventoryFlowList" resultType="com.zy.asrs.entity.InventoryFlowDto">
+ select
+ *
+ from
+ (
+ select
+ ROW_NUMBER() over (order by a.modi_time desc) id,
+ a.wrk_no wrkNo,
+ a.io_type ioType,
+ a.io_time ioTime,
+ a.wrk_sts wrkSts,
+ a.source_loc_no sourceLocNo,
+ a.loc_no locNo,
+ a.barcode zpallet,
+ b.matnr ,
+ b.maktx ,
+ b.order_no orderNo,
+ b.batch ,
+ b.anfme ,
+ b.modi_time modiTime,
+ b.modi_user modiUser
+ from
+ asr_wrk_mast_log a
+ inner join asr_wrk_detl_log b on
+ a.wrk_no = b.wrk_no
+ and a.io_time = b.io_time
+ and a.wrk_sts in(5, 15)
+ <include refid="queryWhere"></include>
+ ) c
+ where
+ c.id BETWEEN (#{curr} - 1) * (#{limit} + 1) and #{curr} * #{limit}
+ </select>
+ <select id="inventoryFlowListCount" resultType="java.lang.Integer">
+ select count(*)
+ from
+ asr_wrk_mast_log a
+ inner join asr_wrk_detl_log b on
+ a.wrk_no = b.wrk_no
+ and a.io_time = b.io_time
+ and a.wrk_sts in(5, 15)
+ <include refid="queryWhere"></include>
+ </select>
</mapper>
--
Gitblit v1.9.1