From 2b3d8f5134d4fd231fed1cdb9ef032348e261547 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: Tue, 27 Oct 2026 10:25:18 +0800 Subject: [PATCH] =?UTF-8?q?=E5=B7=A5=E5=8D=95=E6=9C=89=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../HaiAnSOIssueNotifyOrderMaterialListData.java | 6 ++++++ ...SOIssueNotifyOrderMaterialListAllocMapper.java | 8 ++++++++ ...ueNotifyOrderMaterialListAllocServiceImpl.java | 15 +++++++++++++++ .../autoWareHourceHaian/HaiAnNewIssureMapper.xml | 3 ++- ...nSOIssueNotifyOrderMaterialListAllocMapper.xml | 9 +++++++++ 5 files changed, 40 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/gaotao/modules/autoWareHourceHaian/entity/HaiAnSOIssueNotifyOrderMaterialListData.java b/src/main/java/com/gaotao/modules/autoWareHourceHaian/entity/HaiAnSOIssueNotifyOrderMaterialListData.java index 9a2c2be5..2c0ef1f7 100644 --- a/src/main/java/com/gaotao/modules/autoWareHourceHaian/entity/HaiAnSOIssueNotifyOrderMaterialListData.java +++ b/src/main/java/com/gaotao/modules/autoWareHourceHaian/entity/HaiAnSOIssueNotifyOrderMaterialListData.java @@ -105,6 +105,12 @@ public class HaiAnSOIssueNotifyOrderMaterialListData extends HaiAnSOIssueNotifyO */ private String isInWh; + /** + * 所属订单行是否已推送WCS。来源 haian_SOIssueNotifyOrderList.push_wms_flag,Y=已推送。不落材料表,只给材料明细决定能否指定物料。- rqrq + */ + @com.baomidou.mybatisplus.annotation.TableField(exist = false) + private String pushWmsFlag; + /** * 工单序列(扩展展示字段) - rqrq */ diff --git a/src/main/java/com/gaotao/modules/autoWareHourceHaian/mapper/HaiAnSOIssueNotifyOrderMaterialListAllocMapper.java b/src/main/java/com/gaotao/modules/autoWareHourceHaian/mapper/HaiAnSOIssueNotifyOrderMaterialListAllocMapper.java index c0bf7437..18cc026b 100644 --- a/src/main/java/com/gaotao/modules/autoWareHourceHaian/mapper/HaiAnSOIssueNotifyOrderMaterialListAllocMapper.java +++ b/src/main/java/com/gaotao/modules/autoWareHourceHaian/mapper/HaiAnSOIssueNotifyOrderMaterialListAllocMapper.java @@ -76,4 +76,12 @@ public interface HaiAnSOIssueNotifyOrderMaterialListAllocMapper { List listAllocBomItemNos(@Param("site") String site, @Param("notifyNo") String notifyNo, @Param("itemNo") BigDecimal itemNo); + + /** + * @author rqrq + * @Description 读取订单行是否已推送WCS。保存指定前用来拒绝已推送行,查不到返回空。- rqrq + */ + String selectOrderPushWmsFlag(@Param("site") String site, + @Param("notifyNo") String notifyNo, + @Param("itemNo") BigDecimal itemNo); } diff --git a/src/main/java/com/gaotao/modules/autoWareHourceHaian/service/impl/HaiAnSOIssueNotifyOrderMaterialListAllocServiceImpl.java b/src/main/java/com/gaotao/modules/autoWareHourceHaian/service/impl/HaiAnSOIssueNotifyOrderMaterialListAllocServiceImpl.java index 4c50839e..2e2f5db9 100644 --- a/src/main/java/com/gaotao/modules/autoWareHourceHaian/service/impl/HaiAnSOIssueNotifyOrderMaterialListAllocServiceImpl.java +++ b/src/main/java/com/gaotao/modules/autoWareHourceHaian/service/impl/HaiAnSOIssueNotifyOrderMaterialListAllocServiceImpl.java @@ -60,6 +60,8 @@ public class HaiAnSOIssueNotifyOrderMaterialListAllocServiceImpl implements HaiA validateRequestKey(requestData); // 保存前先按site+notifyNo读主单状态;未下达(UNISSUE)禁止改指定,避免未正式下达就锁定标签/批次 - rqrq validateIssuedHeader(requestData); + // 订单行已推送WCS后库存任务已下发,再改指定会和立库任务不一致,直接拒绝。- rqrq + validateOrderNotPushed(requestData); // 校验材料行仍存在:入参site+notifyNo+itemNo+BOMItemNo;找不到则拒绝保存,避免写孤儿指定记录 - rqrq validateExistingMaterial(requestData); List incoming = requestData.getAllocList(); @@ -290,6 +292,19 @@ public class HaiAnSOIssueNotifyOrderMaterialListAllocServiceImpl implements HaiA } } + /** + * @author rqrq + * @Description 已推送WCS的订单行不允许再保存指定物料。按site+申请单+订单序号读 push_wms_flag,Y 则中断,避免立库已接单后改分配。- rqrq + */ + private void validateOrderNotPushed(HaiAnNoOrderMaterialAllocRequestData requestData) { + // 读取订单行推送标记;查询失败中断保存,不能把未知状态当成未推送。- rqrq + String pushWmsFlag = allocMapper.selectOrderPushWmsFlag( + requestData.getSite(), requestData.getNotifyNo(), requestData.getItemNo()); + if ("Y".equalsIgnoreCase(StringUtils.defaultString(pushWmsFlag).trim())) { + throw new RuntimeException("该订单行已推送WCS,不允许指定物料"); + } + } + private void validateExistingMaterial(HaiAnNoOrderMaterialAllocRequestData requestData) { HaiAnSOIssueNotifyOrderMaterialListData query = new HaiAnSOIssueNotifyOrderMaterialListData(); query.setSite(requestData.getSite()); diff --git a/src/main/resources/mapper/autoWareHourceHaian/HaiAnNewIssureMapper.xml b/src/main/resources/mapper/autoWareHourceHaian/HaiAnNewIssureMapper.xml index b3f2d85a..fc8103ab 100644 --- a/src/main/resources/mapper/autoWareHourceHaian/HaiAnNewIssureMapper.xml +++ b/src/main/resources/mapper/autoWareHourceHaian/HaiAnNewIssureMapper.xml @@ -47,7 +47,8 @@ b.need_date AS needDate, a.remark, a.batch_no AS batchNo, - ISNULL(pa.is_in_wh, '未维护') AS isInWh + ISNULL(pa.is_in_wh, '未维护') AS isInWh, + b.push_wms_flag AS pushWmsFlag FROM haian_SOIssueNotifyOrderMaterialList a WITH (NOLOCK) LEFT JOIN haian_SOIssueNotifyOrderList b WITH (NOLOCK) ON a.site = b.site diff --git a/src/main/resources/mapper/autoWareHourceHaian/HaiAnSOIssueNotifyOrderMaterialListAllocMapper.xml b/src/main/resources/mapper/autoWareHourceHaian/HaiAnSOIssueNotifyOrderMaterialListAllocMapper.xml index 5c09f882..dfd8eb69 100644 --- a/src/main/resources/mapper/autoWareHourceHaian/HaiAnSOIssueNotifyOrderMaterialListAllocMapper.xml +++ b/src/main/resources/mapper/autoWareHourceHaian/HaiAnSOIssueNotifyOrderMaterialListAllocMapper.xml @@ -154,6 +154,15 @@ AND notify_no = #{notifyNo} + + +