Merge branch 'dev_qinhongzhanWMS' into wms_dev

This commit is contained in:
秦鸿展
2026-01-26 17:33:56 +08:00
5 changed files with 415 additions and 60 deletions
@@ -216,6 +216,22 @@ public class ReceiptMaterialDetailPO extends BaseVOEntity {
@Excel(name = "是否生成上架单: 1-是 2-否")
private Integer genStockShelf;
@ApiModelProperty("总净重(KG)")
@Excel(name = "总净重(KG)")
private BigDecimal totalNetWeight;
@ApiModelProperty("总毛重(KG)")
@Excel(name = "总毛重(KG)")
private BigDecimal totalGrossWeight;
@ApiModelProperty("总体积(CBM)")
@Excel(name = "总体积(CBM)")
private BigDecimal totalVolume;
@ApiModelProperty("总面积(SQM)")
@Excel(name = "总面积(SQM)")
private BigDecimal totalArea;
@ApiModelProperty("物料明细子集")
private List<ReceiptMaterialDetailPO> children;
@@ -24,6 +24,7 @@ import com.mhd.wms.domain.containerUsageRecord.repository.todo.ContainerUsageRec
import com.mhd.wms.domain.deliveTask.repository.facade.IDeliveTaskService;
import com.mhd.wms.domain.deliveTask.repository.todo.DeliveTaskDO;
import com.mhd.wms.domain.inMaterialDetail.repository.facade.IInMaterialDetailService;
import com.mhd.wms.domain.inMaterialDetail.repository.po.InMaterialDetailPO;
import com.mhd.wms.domain.inMaterialDetailSerialNumber.repository.facade.IInMaterialDetailSerialNumberService;
import com.mhd.wms.domain.inMaterialDetailSerialNumber.repository.po.InMaterialDetailSerialNumberPO;
import com.mhd.wms.domain.inMaterialDetailSerialNumber.repository.todo.InMaterialDetailSerialNumberDO;
@@ -703,6 +704,26 @@ public class StockReceiptOrderDomainService {
List<ReceiptMaterialDetailPO> receiptMaterialDetailPOS = receiptMaterialDetailService.queryList(receiptMaterialDetailDO);
//上架单明细集合
List<ShelfMaterialDetailDO> shelfMaterialDetailDOList = new ArrayList<>();
// 批量查询入库单明细,用于获取净重、毛重、体积、面积等字段
List<Long> inUniqueIds = receiptMaterialDetailPOS.stream()
.filter(r -> 2 == r.getGenStockShelf() && r.getInUniqueId() != null)
.map(ReceiptMaterialDetailPO::getInUniqueId)
.distinct()
.collect(Collectors.toList());
Map<Long, InMaterialDetailPO> inMaterialDetailMap = new HashMap<>();
if (!CollectionUtils.isEmpty(inUniqueIds)) {
// 使用 MyBatis-Plus 的 QueryWrapper 批量查询入库单明细
QueryWrapper<com.mhd.wms.domain.inMaterialDetail.entity.InMaterialDetail> queryWrapper = new QueryWrapper<>();
queryWrapper.in("unique_id", inUniqueIds);
queryWrapper.eq("del_flag", 1);
List<com.mhd.wms.domain.inMaterialDetail.entity.InMaterialDetail> inMaterialDetailList = iInMaterialDetailService.list(queryWrapper);
// 转换为 PO 对象
for (com.mhd.wms.domain.inMaterialDetail.entity.InMaterialDetail inMaterialDetail : inMaterialDetailList) {
InMaterialDetailPO inMaterialDetailPO = new InMaterialDetailPO();
BeanUtils.copyProperties(inMaterialDetail, inMaterialDetailPO);
inMaterialDetailMap.put(inMaterialDetail.getUniqueId(), inMaterialDetailPO);
}
}
for (ReceiptMaterialDetailPO receiptMaterialDetailPO : receiptMaterialDetailPOS) {
if (2 == receiptMaterialDetailPO.getGenStockShelf()) {
ShelfMaterialDetailDO shelfMaterialDetailDO = new ShelfMaterialDetailDO();
@@ -710,6 +731,9 @@ public class StockReceiptOrderDomainService {
shelfMaterialDetailDO.setQuantity(receiptMaterialDetailPO.getReceiptQuantity());
shelfMaterialDetailDO.setInUniqueId(receiptMaterialDetailPO.getInUniqueId());
shelfMaterialDetailDO.setReceiptUniqueId(receiptMaterialDetailPO.getUniqueId());
// 从入库单明细中获取净重、毛重、体积、面积等字段
// 注意:由于 ShelfMaterialDetailDO 中没有这些字段,这些字段需要在查询时通过关联查询获取
// 或者需要先在上架单明细实体类中添加这些字段
shelfMaterialDetailDOList.add(shelfMaterialDetailDO);
receiptQuantity = receiptQuantity.add(receiptMaterialDetailPO.getReceiptQuantity());
}