|
|
|
@ -132,15 +132,16 @@ public class BoxForNotificationServiceImpl implements BoxForNotificationService |
|
|
|
} |
|
|
|
List<OutboundNotificationDetailEntity> 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() |
|
|
|
); |
|
|
|
|