PDA移位修改

This commit is contained in:
秦鸿展
2026-03-14 15:37:56 +08:00
parent 7dac63da34
commit 360ffdc0d3
3 changed files with 91 additions and 21 deletions
@@ -104,6 +104,10 @@ public class ShiftManageDomainService {
Map<Long, List<OutMaterialDetailSerialNumberPO>> inMaterialDetailSerialNumberMap = outMaterialDetailSerialNumberPOList.stream()
.collect(Collectors.groupingBy(OutMaterialDetailSerialNumberPO::getMaterialDetailUniqueId));
shiftMaterialDetailPOList.forEach(shiftMaterialDetailPO -> {
// 第一次移位显示:shiftQuantity 等于计划数量 quantity
if (shiftMaterialDetailPO.getShiftQuantity() == null || shiftMaterialDetailPO.getShiftQuantity().compareTo(BigDecimal.ZERO) == 0) {
shiftMaterialDetailPO.setShiftQuantity(shiftMaterialDetailPO.getQuantity() != null ? shiftMaterialDetailPO.getQuantity() : BigDecimal.ZERO);
}
// PDA移位页面:父级也填充批次属性、净重、毛重、面积、体积,保证顶层结构有值
fillMaterialMoreDetailForShiftDetail(shiftMaterialDetailPO);
// 填充 totalNetWeight 等,供 PDA 表单区(移入数量、移入库位、容器旁)显示
@@ -113,6 +117,10 @@ public class ShiftManageDomainService {
List<ShiftMaterialDetailPO> shiftMaterialDetailPOChildrenNowList = new ArrayList<>();
ShiftMaterialDetailPO shiftMaterialDetailPOChildrenNow = new ShiftMaterialDetailPO();
BeanUtils.copyProperties(shiftMaterialDetailPO, shiftMaterialDetailPOChildrenNow, "children");
// parent_copy 首次显示时 shiftQuantity 等于计划数量
if (shiftMaterialDetailPOChildrenNow.getShiftQuantity() == null || shiftMaterialDetailPOChildrenNow.getShiftQuantity().compareTo(BigDecimal.ZERO) == 0) {
shiftMaterialDetailPOChildrenNow.setShiftQuantity(shiftMaterialDetailPOChildrenNow.getQuantity() != null ? shiftMaterialDetailPOChildrenNow.getQuantity() : BigDecimal.ZERO);
}
List<OutMaterialDetailSerialNumberPO> materialDetailSerialNumberList = inMaterialDetailSerialNumberMap.get(shiftMaterialDetailPO.getUniqueId());
if (!CollectionUtils.isEmpty(materialDetailSerialNumberList)){
shiftMaterialDetailPOChildrenNow.setMaterialDetailSerialNumberList(materialDetailSerialNumberList);
@@ -126,18 +134,24 @@ public class ShiftManageDomainService {
shiftMaterialDetailPOChildrenNowList.add(shiftMaterialDetailPOChildrenNow);
//子集
List<ShiftMaterialDetailPO> shiftMaterialDetailPOChildrenList = shiftMaterialDetailPO.getChildren();
shiftMaterialDetailPOChildrenList.forEach(receiptMaterialDetailPOChildren -> {
fillMaterialMoreDetailForShiftDetail(receiptMaterialDetailPOChildren);
fillTotalWeightVolumeArea(receiptMaterialDetailPOChildren);
fillNewStorageLocationName(receiptMaterialDetailPOChildren);
List<OutMaterialDetailSerialNumberPO> materialDetailSerialNumberChildrenList = inMaterialDetailSerialNumberMap.get(shiftMaterialDetailPO.getUniqueId());
if (!CollectionUtils.isEmpty(materialDetailSerialNumberChildrenList)){
receiptMaterialDetailPOChildren.setMaterialDetailSerialNumberList(materialDetailSerialNumberChildrenList);
}else {
receiptMaterialDetailPOChildren.setMaterialDetailSerialNumberList(new ArrayList<>());
}
});
shiftMaterialDetailPOChildrenNowList.addAll(shiftMaterialDetailPOChildrenList);
if (shiftMaterialDetailPOChildrenList != null) {
shiftMaterialDetailPOChildrenList.forEach(receiptMaterialDetailPOChildren -> {
// 第一次移位显示:子项 shiftQuantity 等于计划数量
if (receiptMaterialDetailPOChildren.getShiftQuantity() == null || receiptMaterialDetailPOChildren.getShiftQuantity().compareTo(BigDecimal.ZERO) == 0) {
receiptMaterialDetailPOChildren.setShiftQuantity(receiptMaterialDetailPOChildren.getQuantity() != null ? receiptMaterialDetailPOChildren.getQuantity() : BigDecimal.ZERO);
}
fillMaterialMoreDetailForShiftDetail(receiptMaterialDetailPOChildren);
fillTotalWeightVolumeArea(receiptMaterialDetailPOChildren);
fillNewStorageLocationName(receiptMaterialDetailPOChildren);
List<OutMaterialDetailSerialNumberPO> materialDetailSerialNumberChildrenList = inMaterialDetailSerialNumberMap.get(shiftMaterialDetailPO.getUniqueId());
if (!CollectionUtils.isEmpty(materialDetailSerialNumberChildrenList)){
receiptMaterialDetailPOChildren.setMaterialDetailSerialNumberList(materialDetailSerialNumberChildrenList);
}else {
receiptMaterialDetailPOChildren.setMaterialDetailSerialNumberList(new ArrayList<>());
}
});
shiftMaterialDetailPOChildrenNowList.addAll(shiftMaterialDetailPOChildrenList);
}
shiftMaterialDetailPO.setChildren(shiftMaterialDetailPOChildrenNowList);
});
shiftManagePO.setShiftMaterialDetailList(shiftMaterialDetailPOList);
@@ -676,10 +690,14 @@ public class ShiftManageDomainService {
ShiftMaterialDetailDO shiftMaterialDetailDO = new ShiftMaterialDetailDO();
shiftMaterialDetailDO.setShiftNumber(shiftNumber);
List<ShiftMaterialDetailPO> shiftMaterialDetailPOList = shiftMaterialDetailService.queryListChildren(shiftMaterialDetailDO);
Map<String, List<MaterialMoreDetailPO>> MaterialMoreDetailMap = shiftMaterialDetailList.stream().collect(Collectors.toMap(
ShiftMaterialDetailDO::getShiftNumber,
ShiftMaterialDetailDO::getMaterialMoreDetailList
));
// 避免 NPEgetMaterialMoreDetailList 可能为 null;同一 shift 下 shiftNumber 重复需合并
Map<String, List<MaterialMoreDetailPO>> MaterialMoreDetailMap = shiftMaterialDetailList.stream()
.filter(d -> d.getShiftNumber() != null)
.collect(Collectors.toMap(
ShiftMaterialDetailDO::getShiftNumber,
d -> d.getMaterialMoreDetailList() != null ? d.getMaterialMoreDetailList() : new ArrayList<>(),
(a, b) -> a
));
for (ShiftMaterialDetailPO shiftMaterialDetailPO : shiftMaterialDetailPOList){
MaterialInventory materialInventoryOldDb = materialInventoryService.getById(shiftMaterialDetailPO.getMaterialInventoryId());
BigDecimal shiftQuantity = shiftMaterialDetailPO.getShiftQuantity();