From 392b71766f67328e254fc94cdad5079a72604d54 Mon Sep 17 00:00:00 2001 From: fengyuan_yang <1976974459@qq.com> Date: Wed, 15 Oct 2025 15:16:18 +0800 Subject: [PATCH] =?UTF-8?q?2025-10-15=20=E9=94=80=E5=94=AE=E5=8F=91?= =?UTF-8?q?=E8=B4=A7=E8=A3=85=E7=AE=B1=E7=9A=84=E7=9B=92=E6=B8=85=E5=8D=95?= =?UTF-8?q?=E5=92=8C=E7=AE=B1=E6=B8=85=E5=8D=95=E6=96=B0=E5=A2=9E=E5=88=A0?= =?UTF-8?q?=E9=99=A4=E6=97=B6=E6=9B=B4=E6=96=B0ori=5Fparent=5Froll=5Fno?= =?UTF-8?q?=E5=92=8Cori=5Fparent=5Froll=5Ftype?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dao/BoxForNotificationMapper.java | 7 ++++--- .../impl/BoxForNotificationServiceImpl.java | 17 ++++++++--------- .../boxManage/BoxForNotificationMapper.xml | 19 +++++++++++++++++-- 3 files changed, 29 insertions(+), 14 deletions(-) diff --git a/src/main/java/com/gaotao/modules/boxManage/dao/BoxForNotificationMapper.java b/src/main/java/com/gaotao/modules/boxManage/dao/BoxForNotificationMapper.java index 9fa2fbb..dd79b9d 100644 --- a/src/main/java/com/gaotao/modules/boxManage/dao/BoxForNotificationMapper.java +++ b/src/main/java/com/gaotao/modules/boxManage/dao/BoxForNotificationMapper.java @@ -46,9 +46,10 @@ public interface BoxForNotificationMapper { // 盒清单相关方法 List searchSoReceiveCasesData(SoReceiveCasesData data); void deleteSoReceiveCasesData(SoReceiveCasesData data); - List validateCaseRoll(@Param("site") String site, @Param("partNo") String partNo, @Param("rollNo") String rollNo, @Param("casesNo") String casesNo); - void saveSoReceiveCases(SoReceiveCasesData data); - void updateStockParentRollType(@Param("rollNo") String rollNo, @Param("parentRollNo") String parentRollNo, @Param("parentRollType") String parentRollType, @Param("site") String site, @Param("buNo") String buNo); + List validateCaseRoll(@Param("site") String site, @Param("partNo") String partNo, @Param("rollNo") String rollNo, @Param("casesNo") String casesNo); + void saveSoReceiveCases(SoReceiveCasesData data); + void updateStockParentRollType(@Param("rollNo") String rollNo, @Param("parentRollNo") String parentRollNo, @Param("parentRollType") String parentRollType, @Param("site") String site, @Param("buNo") String buNo); + void restoreStockParentRollType(@Param("rollNo") String rollNo, @Param("site") String site, @Param("buNo") String buNo); /** * 查询出库通知单主记录(关联明细) diff --git a/src/main/java/com/gaotao/modules/boxManage/service/impl/BoxForNotificationServiceImpl.java b/src/main/java/com/gaotao/modules/boxManage/service/impl/BoxForNotificationServiceImpl.java index f072453..00b662f 100644 --- a/src/main/java/com/gaotao/modules/boxManage/service/impl/BoxForNotificationServiceImpl.java +++ b/src/main/java/com/gaotao/modules/boxManage/service/impl/BoxForNotificationServiceImpl.java @@ -132,15 +132,16 @@ public class BoxForNotificationServiceImpl implements BoxForNotificationService } List checkPartNo=boxForNotificationMapper.searchOutboundNotificationDetail(box.getSite(),box.getBuNo(),box.getOrderNo()); // 添加校验逻辑:检查checkPartNo中是否至少有一行记录的partNo与卷的partNo相同 - boolean partNoMatch = checkPartNo.stream() - .anyMatch(detail -> detail.getPartNo() != null && detail.getPartNo().equals(stock.getPartNo())); + boolean partNoMatch = checkPartNo.stream().anyMatch(detail -> detail.getPartNo() != null && detail.getPartNo().equals(stock.getPartNo())); if (!partNoMatch) { throw new RuntimeException("该卷的物料编号与销售发货单中的物料编号不匹配"); } + if(stock.getBatchNo()==null||"".equals(stock.getBatchNo())){ throw new RuntimeException("该卷的批次号为空,无法操作"); } + //---*批号的物料可以通吃 if(!"*".equals(stock.getBatchNo())) { // 校验批次号:只要有一行partNo和batchNo都匹配即可 @@ -212,8 +213,8 @@ public class BoxForNotificationServiceImpl implements BoxForNotificationService throw new RuntimeException("该卷不在指定的箱子内,无法删除"); } - // 3. 删除卷的上级标签 - boxForNotificationMapper.updateStockParentRollNo(data.getFinalRollNo(), data.getFinalRollNo(), data.getSite(), data.getBuNo()); + // 3. 恢复卷的原始上级标签(将 ori_parent_roll_no 和 ori_parent_roll_type 的值赋回给 parent_roll_no 和 parent_roll_type) + boxForNotificationMapper.restoreStockParentRollType(data.getFinalRollNo(), data.getSite(), data.getBuNo()); // 4. 删除箱子中的卷记录 boxForNotificationMapper.deleteBoxRoll(data); boxForNotificationMapper.updateBoxRollQty(data.getSite(),data.getBuNo(),data.getBoxNo()); @@ -242,18 +243,16 @@ public class BoxForNotificationServiceImpl implements BoxForNotificationService throw new RuntimeException("参数不完整"); } - // 删除记录前,需要将对应的库存卷的上级标签恢复为自己的卷号 + // 删除记录前,需要将对应的库存卷的上级标签从 ori_parent_roll_no 和 ori_parent_roll_type 恢复 SoReceiveCasesData caseData = boxForNotificationMapper.searchSoReceiveCasesData(data).stream() .filter(item -> item.getId().equals(data.getId())) .findFirst() .orElse(null); if (caseData != null) { - // 恢复库存的上级标签 - boxForNotificationMapper.updateStockParentRollType( - caseData.getRollNo(), + // 恢复库存的原始上级标签(将 ori_parent_roll_no 和 ori_parent_roll_type 的值赋回给 parent_roll_no 和 parent_roll_type) + boxForNotificationMapper.restoreStockParentRollType( caseData.getRollNo(), - null, data.getSite(), data.getBuNo() ); diff --git a/src/main/resources/mapper/boxManage/BoxForNotificationMapper.xml b/src/main/resources/mapper/boxManage/BoxForNotificationMapper.xml index ba7ba76..3b41fcb 100644 --- a/src/main/resources/mapper/boxManage/BoxForNotificationMapper.xml +++ b/src/main/resources/mapper/boxManage/BoxForNotificationMapper.xml @@ -106,7 +106,10 @@ UPDATE inventory_stock - SET parent_roll_no = #{parentRollNo} , parent_roll_type = '箱标签' + SET ori_parent_roll_no = parent_roll_no, + ori_parent_roll_type = parent_roll_type, + parent_roll_no = #{parentRollNo}, + parent_roll_type = '箱标签' WHERE roll_no = #{rollNo} AND site = #{site} AND bu_no = #{buNo} @@ -256,13 +259,25 @@ UPDATE inventory_stock - SET parent_roll_no = #{parentRollNo}, + SET ori_parent_roll_no = parent_roll_no, + ori_parent_roll_type = parent_roll_type, + parent_roll_no = #{parentRollNo}, parent_roll_type = #{parentRollType} WHERE roll_no = #{rollNo} AND site = #{site} AND bu_no = #{buNo} + + + UPDATE inventory_stock + SET parent_roll_no = ori_parent_roll_no, + parent_roll_type = ori_parent_roll_type + WHERE roll_no = #{rollNo} + AND site = #{site} + AND bu_no = #{buNo} + +