From 97f7c77516fa800bb54911801eb2116b71aca348 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B8=B8=E7=86=9F=E5=90=B4=E5=BD=A6=E7=A5=96?= Date: Wed, 2 Sep 2026 09:47:39 +0800 Subject: [PATCH] =?UTF-8?q?=E7=9B=98=E7=82=B9+=E5=85=B6=E4=BB=96=E5=8A=9F?= =?UTF-8?q?=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mapper/HaiAnNotifyDetailQueryMapper.java | 20 +++++++++++++++---- .../HaiAnNotifyDetailQueryServiceImpl.java | 12 +++++++---- .../HaiAnNotifyDetailQueryMapper.xml | 20 +++++++++++++++++-- 3 files changed, 42 insertions(+), 10 deletions(-) diff --git a/src/main/java/com/gaotao/modules/autoWareHourceHaian/mapper/HaiAnNotifyDetailQueryMapper.java b/src/main/java/com/gaotao/modules/autoWareHourceHaian/mapper/HaiAnNotifyDetailQueryMapper.java index 81dc3757..9e061402 100644 --- a/src/main/java/com/gaotao/modules/autoWareHourceHaian/mapper/HaiAnNotifyDetailQueryMapper.java +++ b/src/main/java/com/gaotao/modules/autoWareHourceHaian/mapper/HaiAnNotifyDetailQueryMapper.java @@ -89,19 +89,31 @@ public interface HaiAnNotifyDetailQueryMapper { /** * @author rqrq - * @Description 查询需要解除预留的标签ID(仍读取老handling_unit) - rqrq + * @Description 查询需要解除预留的标签ID(按大site映射subsite集合约束handling_unit.site,避免跨站点误取) - rqrq + * @param site 大工厂site(用于site_sub反查允许的小site集合) - rqrq + * @param notifyNo 领料单号(对应reserve_order_ref1) - rqrq + * @param itemNo 行号字符串(对应reserve_order_ref2) - rqrq + * @param subSite 子站点(可空,传入时做额外精确收敛) - rqrq */ List haiAnGetReservedLabelsToRelease( + @Param("site") String site, @Param("notifyNo") String notifyNo, - @Param("itemNo") String itemNo + @Param("itemNo") String itemNo, + @Param("subSite") String subSite ); /** * @author rqrq - * @Description 解除handling_unit预留字段,避免强制完成后标签仍被锁定 - rqrq + * @Description 解除handling_unit预留字段,按大site映射subsite集合限制更新范围,避免跨站点误解锁 - rqrq + * @param site 大工厂site(用于site_sub反查允许的小site集合) - rqrq + * @param notifyNo 领料单号(对应reserve_order_ref1) - rqrq + * @param itemNo 行号字符串(对应reserve_order_ref2) - rqrq + * @param subSite 子站点(可空,传入时做额外精确收敛) - rqrq */ void haiAnReleaseHandlingUnitReserve( + @Param("site") String site, @Param("notifyNo") String notifyNo, - @Param("itemNo") String itemNo + @Param("itemNo") String itemNo, + @Param("subSite") String subSite ); } diff --git a/src/main/java/com/gaotao/modules/autoWareHourceHaian/service/impl/HaiAnNotifyDetailQueryServiceImpl.java b/src/main/java/com/gaotao/modules/autoWareHourceHaian/service/impl/HaiAnNotifyDetailQueryServiceImpl.java index a6da3e7a..c75ed935 100644 --- a/src/main/java/com/gaotao/modules/autoWareHourceHaian/service/impl/HaiAnNotifyDetailQueryServiceImpl.java +++ b/src/main/java/com/gaotao/modules/autoWareHourceHaian/service/impl/HaiAnNotifyDetailQueryServiceImpl.java @@ -112,10 +112,12 @@ public class HaiAnNotifyDetailQueryServiceImpl implements HaiAnNotifyDetailQuery ); String itemNoStr = String.valueOf(data.getItemNo()); - // 调用标签查询收集待解除预留的标签ID,关键入参notifyNo+itemNo用于精确定位;失败会导致标签仍处于reserve_flag=Y - rqrq + // 调用标签查询收集待解除预留的标签ID:先按大site反查可用subsite集合,再以notifyNo+itemNo定位;可选subsite进一步收敛,避免跨站点误取 - rqrq List labelIds = haiAnNotifyDetailQueryMapper.haiAnGetReservedLabelsToRelease( + data.getSite(), data.getNotifyNo(), - itemNoStr + itemNoStr, + data.getSubSite() ); // 调用订单更新将transport_flag改为Y,关键入参site+notifyNo+itemNo避免误改其它行;失败将回滚本次强制完成 - rqrq @@ -135,10 +137,12 @@ public class HaiAnNotifyDetailQueryServiceImpl implements HaiAnNotifyDetailQuery ); } if (labelIds != null && !labelIds.isEmpty()) { - // 调用标签更新解除reserve字段,关键入参notifyNo+itemNo用于精准解锁;失败会阻塞后续发料 - rqrq + // 调用标签更新解除reserve字段:更新范围按大site映射出的subsite集合限制,避免误解锁其它站点标签;失败会阻塞后续发料 - rqrq haiAnNotifyDetailQueryMapper.haiAnReleaseHandlingUnitReserve( + data.getSite(), data.getNotifyNo(), - itemNoStr + itemNoStr, + data.getSubSite() ); } diff --git a/src/main/resources/mapper/autoWareHourceHaian/HaiAnNotifyDetailQueryMapper.xml b/src/main/resources/mapper/autoWareHourceHaian/HaiAnNotifyDetailQueryMapper.xml index 13bdaa6c..55babc04 100644 --- a/src/main/resources/mapper/autoWareHourceHaian/HaiAnNotifyDetailQueryMapper.xml +++ b/src/main/resources/mapper/autoWareHourceHaian/HaiAnNotifyDetailQueryMapper.xml @@ -143,16 +143,24 @@ AND remark LIKE '%' + #{soorderNo} + '%' - + - + UPDATE handling_unit SET reserve_flag = 'N', @@ -162,6 +170,14 @@ WHERE reserve_flag = 'Y' AND reserve_order_ref1 = #{notifyNo} AND reserve_order_ref2 = CAST(#{itemNo} AS VARCHAR) + AND UPPER(site) IN ( + SELECT UPPER(subsiteid) + FROM site_sub WITH (NOLOCK) + WHERE UPPER(siteid) = UPPER(#{site}) + ) + + AND UPPER(site) = UPPER(#{subSite}) +