Browse Source

改单导入标记

java8
han\hanst 2 months ago
parent
commit
2bbe60be84
  1. 38
      src/main/java/com/xujie/sys/modules/ecss/service/impl/CoDelServiceImpl.java

38
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) {

Loading…
Cancel
Save