From 2bbe60be84875485e01fa11fbe78a038ad00b17f Mon Sep 17 00:00:00 2001 From: "han\\hanst" Date: Mon, 24 Nov 2025 16:46:01 +0800 Subject: [PATCH] =?UTF-8?q?=E6=94=B9=E5=8D=95=E5=AF=BC=E5=85=A5=E6=A0=87?= =?UTF-8?q?=E8=AE=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ecss/service/impl/CoDelServiceImpl.java | 38 +++++++++++++++---- 1 file changed, 31 insertions(+), 7 deletions(-) diff --git a/src/main/java/com/xujie/sys/modules/ecss/service/impl/CoDelServiceImpl.java b/src/main/java/com/xujie/sys/modules/ecss/service/impl/CoDelServiceImpl.java index cd9b6d50..e0fe5978 100644 --- a/src/main/java/com/xujie/sys/modules/ecss/service/impl/CoDelServiceImpl.java +++ b/src/main/java/com/xujie/sys/modules/ecss/service/impl/CoDelServiceImpl.java @@ -817,16 +817,35 @@ public class CoDelServiceImpl implements CoDelService { for (int i = 0; i < excelList.size(); i++) { excelList.get(i).setDelNo(headerData.getDelNo()); excelList.get(i).setItemNo(i + 1); - excelList.get(i).setModifyFlag(true); - // 判断数量是否变化:按itemNo匹配原数据,比较同一行的数量是否变化 + // 判断数据是否变化:按itemNo匹配原数据,对比PN和数量 Integer itemNo = i + 1; EcssCoDelNotifyDetailData originalDetail = originalDataMap.get(itemNo); - // 如果原数据中不存在该itemNo(新增行),或者pn不同(换料),或者数量不同,则标记modifyQtyFlag=true - if (originalDetail == null || - !originalDetail.getPn().equals(excelList.get(i).getPn()) || - !originalDetail.getQty().equals(excelList.get(i).getQty())) { + // 判断是否有修改(包括新增、换料、数量变更) + boolean isModified = false; + boolean isQtyModified = false; + + if (originalDetail == null) { + // 新增行:原数据中不存在该itemNo + isModified = true; + isQtyModified = true; + } else if (!originalDetail.getPn().equals(excelList.get(i).getPn())) { + // 换料:PN不同 + isModified = true; + isQtyModified = true; + } else if (!originalDetail.getQty().equals(excelList.get(i).getQty())) { + // 数量变更:PN相同但数量不同 + isModified = true; + isQtyModified = true; + } + // 其他情况:PN和数量都相同,无变化,isModified保持false + + // 只有真正有变化的才标记modifyFlag=true + excelList.get(i).setModifyFlag(isModified); + + // 设置数量变化标记 + if (isQtyModified) { excelList.get(i).setModifyQtyFlag(true); } } @@ -3997,7 +4016,12 @@ public class CoDelServiceImpl implements CoDelService { // 将通知单状态更新为已下达 headerData.setNotifyStatus("已下达"); coDelMapper.changeEcssDelStatus(headerData); - + clearPalletData(headerData); + EcssCoDelPalletHeaderData inData = new EcssCoDelPalletHeaderData(); + inData.setSite(headerData.getSite()); + inData.setBuNo(headerData.getBuNo()); + inData.setDelNo(headerData.getDelNo()); + coDelMapper.deletePalletHeader(inData); log.info("发货通知单{}状态已更新为已下达", headerData.getDelNo()); } catch (Exception e) {