fix(oms):入库链路计划数量翻倍修复
明细batchUpdate软删条件缺陷(入/出库共6个明细实现类):软删旧明细要求本次提交 至少一行走更新分支,"删光旧物料全部换新物料"时提交列表全为新增行,旧行漏软删 (del_flag仍=1),下发后执行单计划数量=旧+新叠加。改为库内有明细即对账软删
This commit is contained in:
+5
-2
@@ -260,8 +260,11 @@ public class ExecutionInMaterialDetailImpl extends ServiceImpl<ExecutionInMateri
|
||||
}
|
||||
inMaterialDetailList.add(inMaterialDetail);
|
||||
}
|
||||
//需修改的物料明细id集合不为空
|
||||
if (!CollectionUtils.isEmpty(inMaterialDetailDbList) && !CollectionUtils.isEmpty(materialDetailIdsByUpdate)){
|
||||
// 库内存在有效明细即做对账软删:提交列表未覆盖的库内行视为用户已删除。
|
||||
// 修复:此前还要求 materialDetailIdsByUpdate 非空(至少一行走更新分支),
|
||||
// "删光旧物料全部换新物料"时该集合为空,旧行漏软删(del_flag仍=1),
|
||||
// 下发后计划数量=旧+新叠加。removeAll(空列表)为安全no-op
|
||||
if (!CollectionUtils.isEmpty(inMaterialDetailDbList)){
|
||||
List<Long> materialDetailIdsByDb = inMaterialDetailDbList.stream().map(ExecutionInMaterialDetail::getMaterialDetailId).collect(Collectors.toList());
|
||||
//过滤需要修改的id集合
|
||||
materialDetailIdsByDb.removeAll(materialDetailIdsByUpdate);
|
||||
|
||||
+5
-2
@@ -217,8 +217,11 @@ public class ExecutionOutMaterialDetailImpl extends ServiceImpl<ExecutionOutMate
|
||||
}
|
||||
outMaterialDetailList.add(outMaterialDetail);
|
||||
}
|
||||
//需修改的物料明细id集合不为空
|
||||
if (!CollectionUtils.isEmpty(materialDetailIdsByUpdate)){
|
||||
// 库内存在明细即做对账软删:提交列表未覆盖的库内行视为用户已删除。
|
||||
// 修复:此前要求 materialDetailIdsByUpdate 非空(至少一行走更新分支),
|
||||
// "删光旧物料全部换新物料"时该集合为空,旧行漏软删(del_flag仍=1),
|
||||
// 下发后计划数量=旧+新叠加。removeAll(空列表)为安全no-op
|
||||
if (!CollectionUtils.isEmpty(outMaterialDetailDbList)){
|
||||
List<Long> materialDetailIdsByDb = outMaterialDetailDbList.stream().map(ExecutionOutMaterialDetail::getMaterialDetailId).collect(Collectors.toList());
|
||||
//过滤需要修改的id集合
|
||||
materialDetailIdsByDb.removeAll(materialDetailIdsByUpdate);
|
||||
|
||||
+5
-2
@@ -256,8 +256,11 @@ public class ReservationInMaterialDetailImpl extends ServiceImpl<ReservationInMa
|
||||
}
|
||||
inMaterialDetailList.add(inMaterialDetail);
|
||||
}
|
||||
//需修改的物料明细id集合不为空
|
||||
if (!CollectionUtils.isEmpty(inMaterialDetailDbList) && !CollectionUtils.isEmpty(materialDetailIdsByUpdate)){
|
||||
// 库内存在有效明细即做对账软删:提交列表未覆盖的库内行视为用户已删除。
|
||||
// 修复:此前还要求 materialDetailIdsByUpdate 非空(至少一行走更新分支),
|
||||
// "删光旧物料全部换新物料"时该集合为空,旧行漏软删(del_flag仍=1),
|
||||
// 下发后执行单计划数量=旧+新叠加。removeAll(空列表)为安全no-op
|
||||
if (!CollectionUtils.isEmpty(inMaterialDetailDbList)){
|
||||
List<Long> materialDetailIdsByDb = inMaterialDetailDbList.stream().map(ReservationInMaterialDetail::getMaterialDetailId).collect(Collectors.toList());
|
||||
//过滤需要修改的id集合
|
||||
materialDetailIdsByDb.removeAll(materialDetailIdsByUpdate);
|
||||
|
||||
+5
-2
@@ -221,8 +221,11 @@ public class ReservationOutMaterialDetailImpl extends ServiceImpl<ReservationOut
|
||||
}
|
||||
outMaterialDetailList.add(outMaterialDetail);
|
||||
}
|
||||
//需修改的物料明细id集合不为空
|
||||
if (!CollectionUtils.isEmpty(materialDetailIdsByUpdate)){
|
||||
// 库内存在明细即做对账软删:提交列表未覆盖的库内行视为用户已删除。
|
||||
// 修复:此前要求 materialDetailIdsByUpdate 非空(至少一行走更新分支),
|
||||
// "删光旧物料全部换新物料"时该集合为空,旧行漏软删(del_flag仍=1),
|
||||
// 下发后计划数量=旧+新叠加。removeAll(空列表)为安全no-op
|
||||
if (!CollectionUtils.isEmpty(outMaterialDetailDbList)){
|
||||
List<Long> materialDetailIdsByDb = outMaterialDetailDbList.stream().map(ReservationOutMaterialDetail::getMaterialDetailId).collect(Collectors.toList());
|
||||
//过滤需要修改的id集合
|
||||
materialDetailIdsByDb.removeAll(materialDetailIdsByUpdate);
|
||||
|
||||
+5
-2
@@ -261,8 +261,11 @@ public class ReserveInMaterialDetailImpl extends ServiceImpl<ReserveInMaterialDe
|
||||
}
|
||||
inMaterialDetailList.add(inMaterialDetail);
|
||||
}
|
||||
//需修改的物料明细id集合不为空
|
||||
if (!CollectionUtils.isEmpty(inMaterialDetailDbList) && !CollectionUtils.isEmpty(materialDetailIdsByUpdate)){
|
||||
// 库内存在有效明细即做对账软删:提交列表未覆盖的库内行视为用户已删除。
|
||||
// 修复:此前还要求 materialDetailIdsByUpdate 非空(至少一行走更新分支),
|
||||
// "删光旧物料全部换新物料"时该集合为空,旧行漏软删(del_flag仍=1),
|
||||
// 下发后计划数量=旧+新叠加。removeAll(空列表)为安全no-op
|
||||
if (!CollectionUtils.isEmpty(inMaterialDetailDbList)){
|
||||
List<Long> materialDetailIdsByDb = inMaterialDetailDbList.stream().map(ReserveInMaterialDetail::getMaterialDetailId).collect(Collectors.toList());
|
||||
//过滤需要修改的id集合
|
||||
materialDetailIdsByDb.removeAll(materialDetailIdsByUpdate);
|
||||
|
||||
+5
-2
@@ -223,8 +223,11 @@ public class ReserveOutMaterialDetailImpl extends ServiceImpl<ReserveOutMaterial
|
||||
}
|
||||
outMaterialDetailList.add(outMaterialDetail);
|
||||
}
|
||||
//需修改的物料明细id集合不为空
|
||||
if (!CollectionUtils.isEmpty(materialDetailIdsByUpdate)){
|
||||
// 库内存在明细即做对账软删:提交列表未覆盖的库内行视为用户已删除。
|
||||
// 修复:此前要求 materialDetailIdsByUpdate 非空(至少一行走更新分支),
|
||||
// "删光旧物料全部换新物料"时该集合为空,旧行漏软删(del_flag仍=1),
|
||||
// 下发后计划数量=旧+新叠加。removeAll(空列表)为安全no-op
|
||||
if (!CollectionUtils.isEmpty(outMaterialDetailDbList)){
|
||||
List<Long> materialDetailIdsByDb = outMaterialDetailDbList.stream().map(ReserveOutMaterialDetail::getMaterialDetailId).collect(Collectors.toList());
|
||||
//过滤需要修改的id集合
|
||||
materialDetailIdsByDb.removeAll(materialDetailIdsByUpdate);
|
||||
|
||||
Reference in New Issue
Block a user