Merge remote-tracking branch 'origin/dev' into dev

This commit is contained in:
zhou-hongcheng
2026-02-26 15:18:45 +08:00
29 changed files with 515 additions and 88 deletions
@@ -24,6 +24,10 @@ import com.mhd.wms.domain.pickingMaterialDetail.service.PickingMaterialDetailDom
import com.mhd.wms.domain.pickingOrder.repository.po.PickingOrderPO;
import com.mhd.wms.domain.pickingOrder.repository.todo.PickingOrderDO;
import com.mhd.wms.domain.pickingOrder.service.PickingOrderDomainService;
import com.mhd.wms.domain.outMaterialDetail.repository.facade.IOutMaterialDetailService;
import com.mhd.wms.domain.outMaterialDetail.entity.OutMaterialDetail;
import com.mhd.wms.domain.outMaterialDetail.repository.po.OutMaterialDetailPO;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -53,6 +57,8 @@ public class PickingOrderApplicationService {
private UserServiceFeign userServiceFeign;
@Autowired
private SystemServiceFeign systemServiceFeign;
@Autowired
private IOutMaterialDetailService outMaterialDetailService;
/**
@@ -611,10 +617,43 @@ public class PickingOrderApplicationService {
PickingMaterialDetailDO returnPickingMaterialDetailDO = new PickingMaterialDetailDO();
BeanUtils.copyProperties(pickingMaterialDetailPO, returnPickingMaterialDetailDO);
returnPickingMaterialDetailDO.setActualQuantity(pickingMaterialDetailDO.getActualQuantity());
returnPickingMaterialDetailDO.setTotalArea(pickingMaterialDetailDO.getTotalArea());
returnPickingMaterialDetailDO.setTotalVolume(pickingMaterialDetailDO.getTotalVolume());
returnPickingMaterialDetailDO.setTotalGrossWeight(pickingMaterialDetailDO.getTotalGrossWeight());
returnPickingMaterialDetailDO.setTotalNetWeight(pickingMaterialDetailDO.getTotalNetWeight());
// 毛重、净重、面积、体积:如果前端传递了值,使用前端传递的值(允许修改);否则从出库单明细中自动带出
Long outUniqueId = pickingMaterialDetailPO.getOutUniqueId();
OutMaterialDetail outMaterialDetail = null;
if (outUniqueId != null) {
outMaterialDetail = outMaterialDetailService.getOne(new QueryWrapper<OutMaterialDetail>().lambda()
.eq(OutMaterialDetail::getUniqueId, outUniqueId)
.eq(OutMaterialDetail::getDelFlag, 1));
}
// 总面积:优先使用前端传递的值,如果为空则从出库单明细中获取
if (pickingMaterialDetailDO.getTotalArea() != null) {
returnPickingMaterialDetailDO.setTotalArea(pickingMaterialDetailDO.getTotalArea());
} else if (outMaterialDetail != null && outMaterialDetail.getTotalArea() != null) {
returnPickingMaterialDetailDO.setTotalArea(outMaterialDetail.getTotalArea());
}
// 总体积:优先使用前端传递的值,如果为空则从出库单明细中获取
if (pickingMaterialDetailDO.getTotalVolume() != null) {
returnPickingMaterialDetailDO.setTotalVolume(pickingMaterialDetailDO.getTotalVolume());
} else if (outMaterialDetail != null && outMaterialDetail.getTotalVolume() != null) {
returnPickingMaterialDetailDO.setTotalVolume(outMaterialDetail.getTotalVolume());
}
// 总毛重:优先使用前端传递的值,如果为空则从出库单明细中获取
if (pickingMaterialDetailDO.getTotalGrossWeight() != null) {
returnPickingMaterialDetailDO.setTotalGrossWeight(pickingMaterialDetailDO.getTotalGrossWeight());
} else if (outMaterialDetail != null && outMaterialDetail.getTotalGrossWeight() != null) {
returnPickingMaterialDetailDO.setTotalGrossWeight(outMaterialDetail.getTotalGrossWeight());
}
// 总净重:优先使用前端传递的值,如果为空则从出库单明细中获取
if (pickingMaterialDetailDO.getTotalNetWeight() != null) {
returnPickingMaterialDetailDO.setTotalNetWeight(pickingMaterialDetailDO.getTotalNetWeight());
} else if (outMaterialDetail != null && outMaterialDetail.getTotalNetWeight() != null) {
returnPickingMaterialDetailDO.setTotalNetWeight(outMaterialDetail.getTotalNetWeight());
}
//是否开启了序列号管理
if (pickingMaterialDetailPO.getSerialNumberManage() == 1){
if (CollectionUtils.isEmpty(pickingMaterialDetailDO.getMaterialDetailSerialNumberList())){
@@ -665,18 +665,20 @@ public class StockReceiptOrderApplicationService {
List<ReceiptMaterialDetailDO> receiptMaterialDetailDOList = stockReceiptOrderDO.getMaterialDetailList();
receiptMaterialDetailDOList.forEach(receiptMaterialDetailDO -> {
List<ReceiptMaterialDetailDO> receiptMaterialDetailDOChildrenList1 = receiptMaterialDetailDO.getChildren();
ReceiptMaterialDetailDO receiptMaterialDetailDOChildren = receiptMaterialDetailDOChildrenList1.stream().filter(p -> 1 == p.getLevel()).collect(Collectors.toList()).get(0);
receiptMaterialDetailDO.setMaterialDetailId(receiptMaterialDetailDOChildren.getMaterialDetailId());
receiptMaterialDetailDO.setReceiptQuantity(receiptMaterialDetailDOChildren.getReceiptQuantity());
receiptMaterialDetailDO.setMaterialStatusCode(receiptMaterialDetailDOChildren.getMaterialStatusCode());
receiptMaterialDetailDO.setBatchNumber(receiptMaterialDetailDOChildren.getBatchNumber());
receiptMaterialDetailDO.setContainerId(receiptMaterialDetailDOChildren.getContainerId());
receiptMaterialDetailDO.setLevel(receiptMaterialDetailDOChildren.getLevel());
receiptMaterialDetailDO.setMaterialMoreDetailList(receiptMaterialDetailDOChildren.getMaterialMoreDetailList());
receiptMaterialDetailDO.setMaterialDetailSerialNumberList(receiptMaterialDetailDOChildren.getMaterialDetailSerialNumberList());
//只留二级
List<ReceiptMaterialDetailDO> receiptMaterialDetailDOChildrenList2 = receiptMaterialDetailDOChildrenList1.stream().filter(p -> 2 == p.getLevel()).collect(Collectors.toList());
receiptMaterialDetailDO.setChildren(receiptMaterialDetailDOChildrenList2);
if (receiptMaterialDetailDOChildrenList1 != null && receiptMaterialDetailDOChildrenList1.size() > 0) {
ReceiptMaterialDetailDO receiptMaterialDetailDOChildren = receiptMaterialDetailDOChildrenList1.stream().filter(p -> 1 == p.getLevel()).collect(Collectors.toList()).get(0);
receiptMaterialDetailDO.setMaterialDetailId(receiptMaterialDetailDOChildren.getMaterialDetailId());
receiptMaterialDetailDO.setReceiptQuantity(receiptMaterialDetailDOChildren.getReceiptQuantity());
receiptMaterialDetailDO.setMaterialStatusCode(receiptMaterialDetailDOChildren.getMaterialStatusCode());
receiptMaterialDetailDO.setBatchNumber(receiptMaterialDetailDOChildren.getBatchNumber());
receiptMaterialDetailDO.setContainerId(receiptMaterialDetailDOChildren.getContainerId());
receiptMaterialDetailDO.setLevel(receiptMaterialDetailDOChildren.getLevel());
receiptMaterialDetailDO.setMaterialMoreDetailList(receiptMaterialDetailDOChildren.getMaterialMoreDetailList());
receiptMaterialDetailDO.setMaterialDetailSerialNumberList(receiptMaterialDetailDOChildren.getMaterialDetailSerialNumberList());
//只留二级
List<ReceiptMaterialDetailDO> receiptMaterialDetailDOChildrenList2 = receiptMaterialDetailDOChildrenList1.stream().filter(p -> 2 == p.getLevel()).collect(Collectors.toList());
receiptMaterialDetailDO.setChildren(receiptMaterialDetailDOChildrenList2);
}
});
//收货装配参数
StockReceiptOrderDO assembleStockReceiptOrderDO = assembleParamByReceipt(stockReceiptOrderDO);
@@ -727,24 +729,26 @@ public class StockReceiptOrderApplicationService {
List<ReceiptMaterialDetailDO> receiptMaterialDetailDOList = stockReceiptOrderDO.getMaterialDetailList();
receiptMaterialDetailDOList.forEach(receiptMaterialDetailDO -> {
List<ReceiptMaterialDetailDO> receiptMaterialDetailDOChildrenList1 = receiptMaterialDetailDO.getChildren();
ReceiptMaterialDetailDO receiptMaterialDetailDOChildren = receiptMaterialDetailDOChildrenList1.get(0);
receiptMaterialDetailDO.setMaterialDetailId(receiptMaterialDetailDOChildren.getMaterialDetailId());
receiptMaterialDetailDO.setReceiptQuantity(receiptMaterialDetailDOChildren.getReceiptQuantity());
receiptMaterialDetailDO.setMaterialStatusCode(receiptMaterialDetailDOChildren.getMaterialStatusCode());
receiptMaterialDetailDO.setBatchNumber(receiptMaterialDetailDOChildren.getBatchNumber());
receiptMaterialDetailDO.setContainerId(receiptMaterialDetailDOChildren.getContainerId());
receiptMaterialDetailDO.setLevel(receiptMaterialDetailDOChildren.getLevel());
receiptMaterialDetailDO.setMaterialMoreDetailList(receiptMaterialDetailDOChildren.getMaterialMoreDetailList());
receiptMaterialDetailDO.setMaterialDetailSerialNumberList(receiptMaterialDetailDOChildren.getMaterialDetailSerialNumberList());
//只留二级
List<ReceiptMaterialDetailDO> receiptMaterialDetailDOChildrenList2 = new ArrayList<>();
for (int i = 0; i < receiptMaterialDetailDOChildrenList1.size(); i++){
if (i == 0){
continue;
if (receiptMaterialDetailDOChildrenList1 != null && receiptMaterialDetailDOChildrenList1.size() > 0) {
ReceiptMaterialDetailDO receiptMaterialDetailDOChildren = receiptMaterialDetailDOChildrenList1.get(0);
receiptMaterialDetailDO.setMaterialDetailId(receiptMaterialDetailDOChildren.getMaterialDetailId());
receiptMaterialDetailDO.setReceiptQuantity(receiptMaterialDetailDOChildren.getReceiptQuantity());
receiptMaterialDetailDO.setMaterialStatusCode(receiptMaterialDetailDOChildren.getMaterialStatusCode());
receiptMaterialDetailDO.setBatchNumber(receiptMaterialDetailDOChildren.getBatchNumber());
receiptMaterialDetailDO.setContainerId(receiptMaterialDetailDOChildren.getContainerId());
receiptMaterialDetailDO.setLevel(receiptMaterialDetailDOChildren.getLevel());
receiptMaterialDetailDO.setMaterialMoreDetailList(receiptMaterialDetailDOChildren.getMaterialMoreDetailList());
receiptMaterialDetailDO.setMaterialDetailSerialNumberList(receiptMaterialDetailDOChildren.getMaterialDetailSerialNumberList());
//只留二级
List<ReceiptMaterialDetailDO> receiptMaterialDetailDOChildrenList2 = new ArrayList<>();
for (int i = 0; i < receiptMaterialDetailDOChildrenList1.size(); i++){
if (i == 0){
continue;
}
receiptMaterialDetailDOChildrenList2.add(receiptMaterialDetailDOChildrenList1.get(i));
}
receiptMaterialDetailDOChildrenList2.add(receiptMaterialDetailDOChildrenList1.get(i));
receiptMaterialDetailDO.setChildren(receiptMaterialDetailDOChildrenList2);
}
receiptMaterialDetailDO.setChildren(receiptMaterialDetailDOChildrenList2);
});
NoReceiptOrderDO noReceiptOrderDO = assembleParamByNoOrderReceipt(stockReceiptOrderDO);
return stockReceiptOrderDomainService.noOrderReceipt(noReceiptOrderDO);