fix(oms): 出入库业务单下发执行单时订单来源继承业务单(数据导入/手动创建/系统生成)不再写死"客户预约"; 手动创建业务单来源为空兜底"手动创建"; 出库下发明细过滤del_flag, 修复编辑后软删旧明细参与仓库分组导致多生成执行单且数量叠加
This commit is contained in:
+4
-2
@@ -176,6 +176,10 @@ public class ReservationStockInOrderDomainService {
|
||||
// //统计总体积
|
||||
// BigDecimal volumeLimit = stockInOrderDO.getMaterialDetailList().stream().map(ReservationInMaterialDetailDO::getVolumeLimit).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add);
|
||||
// stockInOrderDO.setVolumeLimit(volumeLimit);
|
||||
// 订单来源为空时兜底为手动创建(导入/预约下发等路径已显式设置,不受影响),下发执行单时随业务单继承
|
||||
if (stockInOrderDO.getReservationOrderSource() == null || stockInOrderDO.getReservationOrderSource().isEmpty()) {
|
||||
stockInOrderDO.setReservationOrderSource("手动创建");
|
||||
}
|
||||
stockInOrderService.insert(stockInOrderDO);
|
||||
return materialDetailService.batchInsert(stockInOrderDO.getInOrderNumber(), stockInOrderDO.getMaterialDetailList());
|
||||
}
|
||||
@@ -614,7 +618,6 @@ public class ReservationStockInOrderDomainService {
|
||||
reservationStockInOrder.setOrderTypeName("普通入库");
|
||||
reservationStockInOrder.setBusinessType("pu_tong_ru_ku");
|
||||
}
|
||||
reservationStockInOrder.setReservationOrderSource("客户预约");
|
||||
reservationStockInOrder.setWarehouseId(warehouseId);
|
||||
if (warehouseId == null || warehouseId == 0L){
|
||||
reservationStockInOrder.setWarehouseId(byId.getWarehouseId());
|
||||
@@ -1042,7 +1045,6 @@ public class ReservationStockInOrderDomainService {
|
||||
reservationStockInOrder.setOrderTypeName("普通入库");
|
||||
reservationStockInOrder.setBusinessType("pu_tong_ru_ku");
|
||||
}
|
||||
reservationStockInOrder.setReservationOrderSource("客户预约");
|
||||
reservationStockInOrder.setWarehouseId(warehouseId);
|
||||
// reservationStockInOrder.setOrganizationId(orgId);
|
||||
// reservationStockInOrder.setOrganizationName(orgName);
|
||||
|
||||
+14
-4
@@ -232,6 +232,10 @@ public class ReservationStockOutOrderDomainService {
|
||||
if (stockOutOrderDO.getCheckTaskDistribution() == null) {
|
||||
stockOutOrderDO.setCheckTaskDistribution(2);
|
||||
}
|
||||
// 订单来源为空时兜底为手动创建(导入/预约下发等路径已显式设置,不受影响),下发执行单时随业务单继承
|
||||
if (stockOutOrderDO.getReservationOrderSource() == null || stockOutOrderDO.getReservationOrderSource().isEmpty()) {
|
||||
stockOutOrderDO.setReservationOrderSource("手动创建");
|
||||
}
|
||||
stockOutOrderService.insert(stockOutOrderDO);
|
||||
List<ReservationDeliveryDetailsLink> reservationDeliveryDetailsLinkList = stockOutOrderDO.getReservationDeliveryDetailsLinkList();
|
||||
if (reservationDeliveryDetailsLinkList != null && !reservationDeliveryDetailsLinkList.isEmpty()){
|
||||
@@ -666,7 +670,11 @@ public class ReservationStockOutOrderDomainService {
|
||||
// 自愈: 历史版本反审/取消下发的归档明细可能仍占用unique_id, 先置空释放键位再重新下发
|
||||
releaseArchivedDetailUniqueId(inOrderNumber);
|
||||
List<String> executionInOrderNumbers = new ArrayList<>();
|
||||
List<ReservationOutMaterialDetail> materialDetailList = outMaterialDetailService.list(new QueryWrapper<ReservationOutMaterialDetail>().lambda().eq(ReservationOutMaterialDetail::getOutOrderNumber, inOrderNumber));
|
||||
// 下发明细必须过滤软删行(del_flag=1):编辑对账软删的旧行仍留表内,
|
||||
// 不滤会参与按仓库分组/数量汇总,多生成执行单且数量叠加(入库侧同查询已过滤)
|
||||
List<ReservationOutMaterialDetail> materialDetailList = outMaterialDetailService.list(new QueryWrapper<ReservationOutMaterialDetail>().lambda()
|
||||
.eq(ReservationOutMaterialDetail::getOutOrderNumber, inOrderNumber)
|
||||
.eq(ReservationOutMaterialDetail::getDelFlag, 1));
|
||||
|
||||
// 按照 warehouseId 分组
|
||||
Map<Long, List<ReservationOutMaterialDetail>> materialDetailGroupByWarehouse = materialDetailList.stream()
|
||||
@@ -684,7 +692,6 @@ public class ReservationStockOutOrderDomainService {
|
||||
reservationStockInOrder.setOrderTypeCode("pu_tong_chu_ku");
|
||||
reservationStockInOrder.setOrderTypeName("普通出库");
|
||||
reservationStockInOrder.setBusinessType("pu_tong_chu_ku");
|
||||
reservationStockInOrder.setReservationOrderSource("客户预约");
|
||||
reservationStockInOrder.setWarehouseId(warehouseId);
|
||||
reservationStockInOrder.setWarehouseCode(warehouseCode);
|
||||
reservationStockInOrder.setWarehouseName(warehouseName);
|
||||
@@ -956,7 +963,11 @@ public class ReservationStockOutOrderDomainService {
|
||||
String inOrderNumber = byId.getOutOrderNumber();
|
||||
// 自愈: 历史版本反审/取消下发的归档明细可能仍占用unique_id, 先置空释放键位再重新下发
|
||||
releaseArchivedDetailUniqueId(inOrderNumber);
|
||||
List<ReservationOutMaterialDetail> materialDetailList = outMaterialDetailService.list(new QueryWrapper<ReservationOutMaterialDetail>().lambda().eq(ReservationOutMaterialDetail::getOutOrderNumber, inOrderNumber));
|
||||
// 下发明细必须过滤软删行(del_flag=1):编辑对账软删的旧行仍留表内,
|
||||
// 不滤会参与按仓库分组/数量汇总,多生成执行单且数量叠加(入库侧同查询已过滤)
|
||||
List<ReservationOutMaterialDetail> materialDetailList = outMaterialDetailService.list(new QueryWrapper<ReservationOutMaterialDetail>().lambda()
|
||||
.eq(ReservationOutMaterialDetail::getOutOrderNumber, inOrderNumber)
|
||||
.eq(ReservationOutMaterialDetail::getDelFlag, 1));
|
||||
|
||||
// 按照 warehouseId 分组
|
||||
Map<Long, List<ReservationOutMaterialDetail>> materialDetailGroupByWarehouse = materialDetailList.stream()
|
||||
@@ -1020,7 +1031,6 @@ public class ReservationStockOutOrderDomainService {
|
||||
reservationStockInOrder.setOrderTypeCode("pu_tong_chu_ku");
|
||||
reservationStockInOrder.setOrderTypeName("普通出库");
|
||||
reservationStockInOrder.setBusinessType("pu_tong_chu_ku");
|
||||
reservationStockInOrder.setReservationOrderSource("客户预约");
|
||||
reservationStockInOrder.setWarehouseId(warehouseId);
|
||||
reservationStockInOrder.setOrganizationId(orgId);
|
||||
reservationStockInOrder.setOrganizationName(orgName);
|
||||
|
||||
Reference in New Issue
Block a user