PDA历史记录查询修改

This commit is contained in:
秦鸿展
2026-03-14 17:33:36 +08:00
parent 977cbd683b
commit 85c0ef48ae
5 changed files with 42 additions and 5 deletions
@@ -413,8 +413,9 @@ public class StockReceiptOrderApplicationService {
if (CollectionUtils.isEmpty(children)) {
continue;
}
// 主行 alreadyReceiptQuantity = 主行 receiptQuantity + 所有子项 receiptQuantity
BigDecimal alreadyReceiptQuantitySum = parent.getReceiptQuantity() != null ? parent.getReceiptQuantity() : BigDecimal.ZERO;
// 若存在 parent_copy(子项 uniqueId 与主项相同),主行数量仅取自子项,避免重复累加
boolean hasParentCopy = children.stream().anyMatch(c -> parent.getUniqueId() != null && parent.getUniqueId().equals(c.getUniqueId()));
BigDecimal alreadyReceiptQuantitySum = (hasParentCopy ? BigDecimal.ZERO : (parent.getReceiptQuantity() != null ? parent.getReceiptQuantity() : BigDecimal.ZERO));
Integer maxReceiptStatus = parent.getReceiptStatus();
for (ReceiptMaterialDetailPO child : children) {
if (child.getReceiptQuantity() != null) {
@@ -194,6 +194,20 @@ public class StockShelfOrderApplicationService {
ShelfMaterialDetailDO shelfMaterialDetailDO = new ShelfMaterialDetailDO();
shelfMaterialDetailDO.setShelfOrderNumber(stockShelfOrderPO.getShelfOrderNumber());
List<ShelfMaterialDetailPO> shelfMaterialDetailPOList = shelfMaterialDetailDomainService.queryListChildren(shelfMaterialDetailDO);
// 主项无子项时:添加 parent_copy 到 children,供详情页展示(详情页从 children 读取数据)
for (ShelfMaterialDetailPO parent : shelfMaterialDetailPOList) {
if (CollectionUtils.isEmpty(parent.getChildren())) {
ShelfMaterialDetailPO parentCopy = new ShelfMaterialDetailPO();
BeanUtils.copyProperties(parent, parentCopy, "children");
parentCopy.setLevel(2);
parentCopy.setParentUniqueId(parent.getUniqueId());
parentCopy.setQuantity(null);
parentCopy.setChildren(new ArrayList<>());
List<ShelfMaterialDetailPO> children = new ArrayList<>();
children.add(parentCopy);
parent.setChildren(children);
}
}
// 性能优化:批量获取批次属性,避免N+1查询问题
// 1. 收集所有唯一的materialBaseInfoId
@@ -1,5 +1,6 @@
package com.mhd.wms.domain.stockOutTaskOrder.repository.po;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.mhd.common.core.annotation.Excel;
import com.mhd.common.core.web.domain.BaseVOEntity;
import com.mhd.wms.domain.taskPickingMaterialDetail.repository.po.TaskPickingMaterialDetailPO;
@@ -68,4 +69,12 @@ public class TaskMaterialPO extends BaseVOEntity {
@ApiModelProperty("拣货作业物料详情")
private List<TaskPickingMaterialDetailPO> taskPickingMaterialDetailList;
/**
* taskPickingMaterialDetailList 同值供详情页从 children 读取与收货单上架单结构一致
*/
@JsonProperty("children")
public List<TaskPickingMaterialDetailPO> getChildren() {
return taskPickingMaterialDetailList;
}
}
@@ -228,10 +228,23 @@ public class StockReceiptOrderDomainService {
receiptMaterialDetailPOChildren.setQuantity(null);
});
} else {
// 主项无子项时点击分批收货前确保主项也有批次属性否则 PDA 不显示
// 主项无子项时添加 parent_copy children供详情页展示详情页从 children 读取数据
if (CollectionUtils.isEmpty(receiptMaterialDetailPO.getMaterialMoreDetailList())) {
receiptMaterialDetailPO.setMaterialMoreDetailList(getMaterialMoreDetail(receiptMaterialDetailPO));
}
ReceiptMaterialDetailPO parentCopy = new ReceiptMaterialDetailPO();
BeanUtils.copyProperties(receiptMaterialDetailPO, parentCopy, "children");
parentCopy.setLevel(2);
parentCopy.setParentUniqueId(receiptMaterialDetailPO.getUniqueId());
parentCopy.setQuantity(null);
parentCopy.setChildren(new ArrayList<>());
if (CollectionUtils.isEmpty(parentCopy.getMaterialMoreDetailList())) {
parentCopy.setMaterialMoreDetailList(receiptMaterialDetailPO.getMaterialMoreDetailList());
}
List<InMaterialDetailSerialNumberPO> serialList = inMaterialDetailSerialNumberMap.get(receiptMaterialDetailPO.getUniqueId());
parentCopy.setMaterialDetailSerialNumberList(serialList != null ? serialList : new ArrayList<>());
receiptMaterialDetailPOChildrenList = new ArrayList<>();
receiptMaterialDetailPOChildrenList.add(parentCopy);
}
receiptMaterialDetailPO.setChildren(receiptMaterialDetailPOChildrenList != null ? receiptMaterialDetailPOChildrenList : new ArrayList<>());
});
@@ -38,7 +38,7 @@ public class StockOutOrderAppApi extends BaseController {
/**
* 分页查询出库单列表PDA复核查询
* 查询条件warehouse_id用户关联仓库check_operators_by当前用户check_status&lt;3
* 查询条件warehouse_id用户关联仓库check_operators_by当前用户check_status&gt;2
*/
@ApiOperation("查询出库单列表")
@GetMapping("/list")
@@ -50,7 +50,7 @@ public class StockOutOrderAppApi extends BaseController {
stockOutOrderDO.setCheckOperatorsBy(userPo.getUserId());
stockOutOrderDO.setOrganizationId(userPo.getOrganizationId());
stockOutOrderDO.setTopOrganizationId(userPo.getTopOrganizationId());
stockOutOrderDO.setLtCheckStatus(3);
stockOutOrderDO.setGtCheckStatus(2);
stockOutOrderDO.setDelFlag(1);
AssociationWarehouseCacheDO associationWarehouseCacheDO = SystemServiceCacheUtil.getAssociationWarehouseCache(loginUser.getUserid());
if (associationWarehouseCacheDO != null) {