OMS新增计划数量为0问题

This commit is contained in:
秦鸿展
2026-04-18 11:07:07 +08:00
parent 3acca20d16
commit bd2a5915ba
2 changed files with 14 additions and 3 deletions
@@ -157,7 +157,12 @@ public class ReservationOutMaterialDetailImpl extends ServiceImpl<ReservationOut
outMaterialDetail.setCreateBy(loginUser.getUserid());
outMaterialDetail.setCreateByName(userRealName);
outMaterialDetail.setCreateTime(new Date());
outMaterialDetail.setQuantity(outMaterialDetail.getOutboundQuantity());
// 计划数量:接口常传 quantity;有 outboundQuantity 时与 quantity 对齐,否则用 quantity 回填 outbound
if (outMaterialDetail.getOutboundQuantity() != null) {
outMaterialDetail.setQuantity(outMaterialDetail.getOutboundQuantity());
} else if (outMaterialDetail.getQuantity() != null) {
outMaterialDetail.setOutboundQuantity(outMaterialDetail.getQuantity());
}
String materialNo = outMaterialDetail.getMaterialNo();
List<MaterialBaseInfoPO> materialBaseInfos = reservationStockInOrderMapper.getMaterialBaseInfoList(materialNo);
//List<MaterialBaseInfoPO> materialBaseInfos = materialBaseInfoMapper.selectList(new QueryWrapper<MaterialBaseInfo>().lambda().eq(MaterialBaseInfo::getMaterialCode, materialNo));
@@ -118,9 +118,15 @@ public class ReservationStockOutOrderDomainService {
if (stockOutOrderDO.getOutOrderNumber() == null) {
stockOutOrderDO.setOutOrderNumber(OrderSequence.getOrderCode("CK"));
}
//统计总数量
BigDecimal quantity = stockOutOrderDO.getMaterialDetailList().stream().map(ReservationOutMaterialDetailDO::getOutboundQuantity).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add);
// 与 update / batchInsert 一致:前端传计划数量为 quantity,非 outboundQuantity
setMaterialDetailInfo(stockOutOrderDO);
stockOutOrderDO.setMaterialQuantity(stockOutOrderDO.getMaterialDetailList().size());
BigDecimal quantity = stockOutOrderDO.getMaterialDetailList().stream().map(ReservationOutMaterialDetailDO::getQuantity).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add);
stockOutOrderDO.setQuantity(quantity);
BigDecimal weightLimit = stockOutOrderDO.getMaterialDetailList().stream().map(ReservationOutMaterialDetailDO::getWeightLimit).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add);
stockOutOrderDO.setWeightLimit(weightLimit);
BigDecimal volumeLimit = stockOutOrderDO.getMaterialDetailList().stream().map(ReservationOutMaterialDetailDO::getVolumeLimit).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add);
stockOutOrderDO.setVolumeLimit(volumeLimit);
// 复核下发状态默认为否(2
if (stockOutOrderDO.getCheckTaskDistribution() == null) {
stockOutOrderDO.setCheckTaskDistribution(2);