PDA内容修改
This commit is contained in:
-1
@@ -27,7 +27,6 @@ public class ReceiptMaterialDetailApplicationService {
|
||||
/**
|
||||
* 分页查询物料明细列表
|
||||
*/
|
||||
|
||||
public List<ReceiptMaterialDetailPO> queryList(ReceiptMaterialDetailDO receiptMaterialDetailDO) {
|
||||
LoginUser loginUser = SecurityUtils.getLoginUser();
|
||||
if (loginUser != null){
|
||||
|
||||
+25
@@ -24,6 +24,8 @@ import com.mhd.wms.domain.outMaterialDetail.entity.OutMaterialDetail;
|
||||
import com.mhd.wms.domain.outMaterialDetail.repository.mapper.OutMaterialDetailMapper;
|
||||
import com.mhd.wms.domain.outOrderAbnormal.repository.facade.IOutOrderAbnormalService;
|
||||
import com.mhd.wms.domain.outOrderAbnormal.repository.todo.OutOrderAbnormalBaseDO;
|
||||
import com.mhd.wms.domain.pickingMaterialDetail.entity.PickingMaterialDetail;
|
||||
import com.mhd.wms.domain.pickingMaterialDetail.repository.facade.IPickingMaterialDetailService;
|
||||
import com.mhd.wms.domain.pickingOrder.entity.PickingOrder;
|
||||
import com.mhd.wms.domain.pickingOrder.repository.facade.IPickingOrderService;
|
||||
import com.mhd.wms.domain.pickingOrder.repository.po.PickingOrderPO;
|
||||
@@ -75,6 +77,8 @@ public class StockOutTaskOrderDomainService {
|
||||
@Autowired
|
||||
private IPickingOrderService pickingOrderService;
|
||||
@Autowired
|
||||
private IPickingMaterialDetailService pickingMaterialDetailService;
|
||||
@Autowired
|
||||
private IStockOutOrderService stockOutOrderService;
|
||||
@Autowired
|
||||
private IWaveOutOrderService waveOutOrderService;
|
||||
@@ -519,8 +523,10 @@ public class StockOutTaskOrderDomainService {
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public Boolean updateStockOutOrder(PickingOrderPO pickingOrderPODb) {
|
||||
LoginUser loginUser = SecurityUtils.getLoginUser();
|
||||
// 与 PickingOrderDomainService 一致:只统计已拣货(status=3)的拣货单数量,确保完成拣货后出库单状态正确更新
|
||||
List<PickingOrder> pickingOrderList = pickingOrderService.list(new QueryWrapper<PickingOrder>().lambda()
|
||||
.eq(PickingOrder::getDelFlag, 1)
|
||||
.eq(PickingOrder::getStatus, 3)
|
||||
.eq(PickingOrder::getOrderNumber, pickingOrderPODb.getOrderNumber()));
|
||||
BigDecimal pickingQuantity = pickingOrderList.stream().map(PickingOrder::getPickingQuantity).reduce(BigDecimal.ZERO, BigDecimal::add);
|
||||
if (1 == pickingOrderPODb.getType()){
|
||||
@@ -536,10 +542,29 @@ public class StockOutTaskOrderDomainService {
|
||||
genStockInOrder(stockOutOrderDb);
|
||||
}
|
||||
}
|
||||
// 根据拣货单明细更新出库单物料明细的拣货数量(与 PickingOrderDomainService 一致)
|
||||
for (PickingOrder pickingOrder : pickingOrderList) {
|
||||
List<PickingMaterialDetail> list = pickingMaterialDetailService.list(new QueryWrapper<PickingMaterialDetail>().lambda()
|
||||
.eq(PickingMaterialDetail::getPickingOrderNumber, pickingOrder.getPickingOrderNumber()));
|
||||
for (PickingMaterialDetail pickingMaterialDetail : list) {
|
||||
OutMaterialDetail outMaterialDetail = outMaterialDetailMapper.selectOne(new QueryWrapper<OutMaterialDetail>().lambda()
|
||||
.eq(OutMaterialDetail::getUniqueId, pickingMaterialDetail.getOutUniqueId())
|
||||
.eq(OutMaterialDetail::getDelFlag, 1));
|
||||
if (outMaterialDetail != null) {
|
||||
outMaterialDetail.setPickingQuantity(pickingMaterialDetail.getPickingQuantity());
|
||||
outMaterialDetail.setTotalNetWeight(pickingMaterialDetail.getTotalNetWeight());
|
||||
outMaterialDetail.setTotalGrossWeight(pickingMaterialDetail.getTotalGrossWeight());
|
||||
outMaterialDetail.setTotalVolume(pickingMaterialDetail.getTotalVolume());
|
||||
outMaterialDetail.setTotalArea(pickingMaterialDetail.getTotalArea());
|
||||
outMaterialDetailMapper.updateById(outMaterialDetail);
|
||||
}
|
||||
}
|
||||
}
|
||||
StockOutOrder stockOutOrder = new StockOutOrder();
|
||||
stockOutOrder.setOutOrderNumber(pickingOrderPODb.getOrderNumber());
|
||||
//1-已创建 2-已审核 3-部分分配 4-已分配 5-波次中 6-拣货中 7-拣货完成 8-复核中 9-已出库 10-已取消 11-已关闭
|
||||
stockOutOrder.setStatus(status);
|
||||
stockOutOrder.setPickingQuantity(pickingQuantity);
|
||||
stockOutOrder.setUpdateBy(loginUser.getUserid());
|
||||
stockOutOrder.setUpdateByName(loginUser.getUsername());
|
||||
stockOutOrder.setUpdateTime(new Date());
|
||||
|
||||
+1
-13
@@ -228,23 +228,11 @@ public class StockReceiptOrderDomainService {
|
||||
receiptMaterialDetailPOChildren.setQuantity(null);
|
||||
});
|
||||
} else {
|
||||
// 主项无子项时:添加 parent_copy 到 children,供详情页展示(详情页从 children 读取数据)
|
||||
// 主项无子项时:不添加 parent_copy,避免 PDA 端重复显示两条记录;主项自身已有全部数据,详情页可直接从主项读取
|
||||
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<>());
|
||||
});
|
||||
|
||||
+12
-21
@@ -235,28 +235,19 @@ public class StockShelfOrderDomainService {
|
||||
MaterialMoreDetailDO materialMoreDetailDO = new MaterialMoreDetailDO();
|
||||
materialMoreDetailDO.setOrderNumber(stockShelfOrderPO.getShelfOrderNumber());
|
||||
shelfMaterialDetailPOList.forEach(shelfMaterialDetailPO -> {
|
||||
List<ShelfMaterialDetailPO> shelfMaterialDetailPOChildrenNowList = new ArrayList<>();
|
||||
ShelfMaterialDetailPO shelfMaterialDetailPOChildrenNow = new ShelfMaterialDetailPO();
|
||||
BeanUtils.copyProperties(shelfMaterialDetailPO, shelfMaterialDetailPOChildrenNow, "children");
|
||||
List<InMaterialDetailSerialNumberPO> materialDetailSerialNumberList = inMaterialDetailSerialNumberMap.get(shelfMaterialDetailPO.getUniqueId());
|
||||
if (!CollectionUtils.isEmpty(materialDetailSerialNumberList)){
|
||||
shelfMaterialDetailPOChildrenNow.setMaterialDetailSerialNumberList(materialDetailSerialNumberList);
|
||||
}else {
|
||||
shelfMaterialDetailPOChildrenNow.setMaterialDetailSerialNumberList(new ArrayList<>());
|
||||
}
|
||||
shelfMaterialDetailPOChildrenNowList.add(shelfMaterialDetailPOChildrenNow);
|
||||
//子集
|
||||
// 不添加 parent_copy,避免 PDA 端重复显示两条记录;主项自身已有全部数据,详情页可直接从主项读取
|
||||
List<ShelfMaterialDetailPO> shelfMaterialDetailPOChildrenList = shelfMaterialDetailPO.getChildren();
|
||||
shelfMaterialDetailPOChildrenList.forEach(receiptMaterialDetailPOChildren -> {
|
||||
List<InMaterialDetailSerialNumberPO> materialDetailSerialNumberChildrenList = inMaterialDetailSerialNumberMap.get(shelfMaterialDetailPO.getUniqueId());
|
||||
if (!CollectionUtils.isEmpty(materialDetailSerialNumberChildrenList)){
|
||||
receiptMaterialDetailPOChildren.setMaterialDetailSerialNumberList(materialDetailSerialNumberChildrenList);
|
||||
}else {
|
||||
receiptMaterialDetailPOChildren.setMaterialDetailSerialNumberList(new ArrayList<>());
|
||||
}
|
||||
});
|
||||
shelfMaterialDetailPOChildrenNowList.addAll(shelfMaterialDetailPOChildrenList);
|
||||
shelfMaterialDetailPO.setChildren(shelfMaterialDetailPOChildrenNowList);
|
||||
if (!CollectionUtils.isEmpty(shelfMaterialDetailPOChildrenList)) {
|
||||
shelfMaterialDetailPOChildrenList.forEach(receiptMaterialDetailPOChildren -> {
|
||||
List<InMaterialDetailSerialNumberPO> materialDetailSerialNumberChildrenList = inMaterialDetailSerialNumberMap.get(shelfMaterialDetailPO.getUniqueId());
|
||||
if (!CollectionUtils.isEmpty(materialDetailSerialNumberChildrenList)){
|
||||
receiptMaterialDetailPOChildren.setMaterialDetailSerialNumberList(materialDetailSerialNumberChildrenList);
|
||||
}else {
|
||||
receiptMaterialDetailPOChildren.setMaterialDetailSerialNumberList(new ArrayList<>());
|
||||
}
|
||||
});
|
||||
}
|
||||
shelfMaterialDetailPO.setChildren(shelfMaterialDetailPOChildrenList != null ? shelfMaterialDetailPOChildrenList : new ArrayList<>());
|
||||
});
|
||||
stockShelfOrderPO.setMaterialDetailList(shelfMaterialDetailPOList);
|
||||
return stockShelfOrderPO;
|
||||
|
||||
+30
-6
@@ -160,12 +160,36 @@ public class TaskPickingMaterialDetailImpl extends ServiceImpl<TaskPickingMateri
|
||||
}
|
||||
outMaterialDetailSerialNumberList.addAll(genMaterialDetailSerialNumber(taskPickingMaterialDetailDO));
|
||||
}
|
||||
PickingMaterialDetailDO pickingMaterialDetailDO = new PickingMaterialDetailDO();
|
||||
pickingMaterialDetailDO.setUniqueId(taskPickingMaterialDetailDb.getPickingUniqueId());
|
||||
// 拣货增量用 actualQuantity,picking_quantity += actualQuantity
|
||||
pickingMaterialDetailDO.setPickingQuantity(taskPickingMaterialDetailDO.getActualQuantity() != null ? taskPickingMaterialDetailDO.getActualQuantity() : BigDecimal.ZERO);
|
||||
pickingMaterialDetailList.add(pickingMaterialDetailDO);
|
||||
totalPickingQuantity = totalPickingQuantity.add(taskPickingMaterialDetailDO.getActualQuantity());
|
||||
Long pickingUniqueId = taskPickingMaterialDetailDb.getPickingUniqueId();
|
||||
BigDecimal qty = taskPickingMaterialDetailDO.getActualQuantity() != null ? taskPickingMaterialDetailDO.getActualQuantity() : BigDecimal.ZERO;
|
||||
// 按 pickingUniqueId 聚合,同一拣货明细可能对应多条任务明细
|
||||
PickingMaterialDetailDO existing = pickingMaterialDetailList.stream()
|
||||
.filter(p -> pickingUniqueId.equals(p.getUniqueId())).findFirst().orElse(null);
|
||||
if (existing != null) {
|
||||
existing.setPickingQuantity((existing.getPickingQuantity() != null ? existing.getPickingQuantity() : BigDecimal.ZERO).add(qty));
|
||||
if (taskPickingMaterialDetailDO.getTotalNetWeight() != null) {
|
||||
existing.setTotalNetWeight((existing.getTotalNetWeight() != null ? existing.getTotalNetWeight() : BigDecimal.ZERO).add(taskPickingMaterialDetailDO.getTotalNetWeight()));
|
||||
}
|
||||
if (taskPickingMaterialDetailDO.getTotalGrossWeight() != null) {
|
||||
existing.setTotalGrossWeight((existing.getTotalGrossWeight() != null ? existing.getTotalGrossWeight() : BigDecimal.ZERO).add(taskPickingMaterialDetailDO.getTotalGrossWeight()));
|
||||
}
|
||||
if (taskPickingMaterialDetailDO.getTotalVolume() != null) {
|
||||
existing.setTotalVolume((existing.getTotalVolume() != null ? existing.getTotalVolume() : BigDecimal.ZERO).add(taskPickingMaterialDetailDO.getTotalVolume()));
|
||||
}
|
||||
if (taskPickingMaterialDetailDO.getTotalArea() != null) {
|
||||
existing.setTotalArea((existing.getTotalArea() != null ? existing.getTotalArea() : BigDecimal.ZERO).add(taskPickingMaterialDetailDO.getTotalArea()));
|
||||
}
|
||||
} else {
|
||||
PickingMaterialDetailDO pickingMaterialDetailDO = new PickingMaterialDetailDO();
|
||||
pickingMaterialDetailDO.setUniqueId(pickingUniqueId);
|
||||
pickingMaterialDetailDO.setPickingQuantity(qty);
|
||||
pickingMaterialDetailDO.setTotalNetWeight(taskPickingMaterialDetailDO.getTotalNetWeight());
|
||||
pickingMaterialDetailDO.setTotalGrossWeight(taskPickingMaterialDetailDO.getTotalGrossWeight());
|
||||
pickingMaterialDetailDO.setTotalVolume(taskPickingMaterialDetailDO.getTotalVolume());
|
||||
pickingMaterialDetailDO.setTotalArea(taskPickingMaterialDetailDO.getTotalArea());
|
||||
pickingMaterialDetailList.add(pickingMaterialDetailDO);
|
||||
}
|
||||
totalPickingQuantity = totalPickingQuantity.add(qty);
|
||||
}
|
||||
//保存物料明细信息
|
||||
saveOrUpdateBatch(taskPickingMaterialDetailList);
|
||||
|
||||
+16
@@ -207,4 +207,20 @@ public class TaskPickingMaterialDetailDO extends BaseVOEntity {
|
||||
|
||||
@ApiModelProperty("序列号")
|
||||
private List<OutMaterialDetailSerialNumberDO> materialDetailSerialNumberList;
|
||||
|
||||
@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;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user