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);
|
// BigDecimal volumeLimit = stockInOrderDO.getMaterialDetailList().stream().map(ReservationInMaterialDetailDO::getVolumeLimit).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add);
|
||||||
// stockInOrderDO.setVolumeLimit(volumeLimit);
|
// stockInOrderDO.setVolumeLimit(volumeLimit);
|
||||||
|
// 订单来源为空时兜底为手动创建(导入/预约下发等路径已显式设置,不受影响),下发执行单时随业务单继承
|
||||||
|
if (stockInOrderDO.getReservationOrderSource() == null || stockInOrderDO.getReservationOrderSource().isEmpty()) {
|
||||||
|
stockInOrderDO.setReservationOrderSource("手动创建");
|
||||||
|
}
|
||||||
stockInOrderService.insert(stockInOrderDO);
|
stockInOrderService.insert(stockInOrderDO);
|
||||||
return materialDetailService.batchInsert(stockInOrderDO.getInOrderNumber(), stockInOrderDO.getMaterialDetailList());
|
return materialDetailService.batchInsert(stockInOrderDO.getInOrderNumber(), stockInOrderDO.getMaterialDetailList());
|
||||||
}
|
}
|
||||||
@@ -614,7 +618,6 @@ public class ReservationStockInOrderDomainService {
|
|||||||
reservationStockInOrder.setOrderTypeName("普通入库");
|
reservationStockInOrder.setOrderTypeName("普通入库");
|
||||||
reservationStockInOrder.setBusinessType("pu_tong_ru_ku");
|
reservationStockInOrder.setBusinessType("pu_tong_ru_ku");
|
||||||
}
|
}
|
||||||
reservationStockInOrder.setReservationOrderSource("客户预约");
|
|
||||||
reservationStockInOrder.setWarehouseId(warehouseId);
|
reservationStockInOrder.setWarehouseId(warehouseId);
|
||||||
if (warehouseId == null || warehouseId == 0L){
|
if (warehouseId == null || warehouseId == 0L){
|
||||||
reservationStockInOrder.setWarehouseId(byId.getWarehouseId());
|
reservationStockInOrder.setWarehouseId(byId.getWarehouseId());
|
||||||
@@ -1042,7 +1045,6 @@ public class ReservationStockInOrderDomainService {
|
|||||||
reservationStockInOrder.setOrderTypeName("普通入库");
|
reservationStockInOrder.setOrderTypeName("普通入库");
|
||||||
reservationStockInOrder.setBusinessType("pu_tong_ru_ku");
|
reservationStockInOrder.setBusinessType("pu_tong_ru_ku");
|
||||||
}
|
}
|
||||||
reservationStockInOrder.setReservationOrderSource("客户预约");
|
|
||||||
reservationStockInOrder.setWarehouseId(warehouseId);
|
reservationStockInOrder.setWarehouseId(warehouseId);
|
||||||
// reservationStockInOrder.setOrganizationId(orgId);
|
// reservationStockInOrder.setOrganizationId(orgId);
|
||||||
// reservationStockInOrder.setOrganizationName(orgName);
|
// reservationStockInOrder.setOrganizationName(orgName);
|
||||||
|
|||||||
+14
-4
@@ -232,6 +232,10 @@ public class ReservationStockOutOrderDomainService {
|
|||||||
if (stockOutOrderDO.getCheckTaskDistribution() == null) {
|
if (stockOutOrderDO.getCheckTaskDistribution() == null) {
|
||||||
stockOutOrderDO.setCheckTaskDistribution(2);
|
stockOutOrderDO.setCheckTaskDistribution(2);
|
||||||
}
|
}
|
||||||
|
// 订单来源为空时兜底为手动创建(导入/预约下发等路径已显式设置,不受影响),下发执行单时随业务单继承
|
||||||
|
if (stockOutOrderDO.getReservationOrderSource() == null || stockOutOrderDO.getReservationOrderSource().isEmpty()) {
|
||||||
|
stockOutOrderDO.setReservationOrderSource("手动创建");
|
||||||
|
}
|
||||||
stockOutOrderService.insert(stockOutOrderDO);
|
stockOutOrderService.insert(stockOutOrderDO);
|
||||||
List<ReservationDeliveryDetailsLink> reservationDeliveryDetailsLinkList = stockOutOrderDO.getReservationDeliveryDetailsLinkList();
|
List<ReservationDeliveryDetailsLink> reservationDeliveryDetailsLinkList = stockOutOrderDO.getReservationDeliveryDetailsLinkList();
|
||||||
if (reservationDeliveryDetailsLinkList != null && !reservationDeliveryDetailsLinkList.isEmpty()){
|
if (reservationDeliveryDetailsLinkList != null && !reservationDeliveryDetailsLinkList.isEmpty()){
|
||||||
@@ -666,7 +670,11 @@ public class ReservationStockOutOrderDomainService {
|
|||||||
// 自愈: 历史版本反审/取消下发的归档明细可能仍占用unique_id, 先置空释放键位再重新下发
|
// 自愈: 历史版本反审/取消下发的归档明细可能仍占用unique_id, 先置空释放键位再重新下发
|
||||||
releaseArchivedDetailUniqueId(inOrderNumber);
|
releaseArchivedDetailUniqueId(inOrderNumber);
|
||||||
List<String> executionInOrderNumbers = new ArrayList<>();
|
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 分组
|
// 按照 warehouseId 分组
|
||||||
Map<Long, List<ReservationOutMaterialDetail>> materialDetailGroupByWarehouse = materialDetailList.stream()
|
Map<Long, List<ReservationOutMaterialDetail>> materialDetailGroupByWarehouse = materialDetailList.stream()
|
||||||
@@ -684,7 +692,6 @@ public class ReservationStockOutOrderDomainService {
|
|||||||
reservationStockInOrder.setOrderTypeCode("pu_tong_chu_ku");
|
reservationStockInOrder.setOrderTypeCode("pu_tong_chu_ku");
|
||||||
reservationStockInOrder.setOrderTypeName("普通出库");
|
reservationStockInOrder.setOrderTypeName("普通出库");
|
||||||
reservationStockInOrder.setBusinessType("pu_tong_chu_ku");
|
reservationStockInOrder.setBusinessType("pu_tong_chu_ku");
|
||||||
reservationStockInOrder.setReservationOrderSource("客户预约");
|
|
||||||
reservationStockInOrder.setWarehouseId(warehouseId);
|
reservationStockInOrder.setWarehouseId(warehouseId);
|
||||||
reservationStockInOrder.setWarehouseCode(warehouseCode);
|
reservationStockInOrder.setWarehouseCode(warehouseCode);
|
||||||
reservationStockInOrder.setWarehouseName(warehouseName);
|
reservationStockInOrder.setWarehouseName(warehouseName);
|
||||||
@@ -956,7 +963,11 @@ public class ReservationStockOutOrderDomainService {
|
|||||||
String inOrderNumber = byId.getOutOrderNumber();
|
String inOrderNumber = byId.getOutOrderNumber();
|
||||||
// 自愈: 历史版本反审/取消下发的归档明细可能仍占用unique_id, 先置空释放键位再重新下发
|
// 自愈: 历史版本反审/取消下发的归档明细可能仍占用unique_id, 先置空释放键位再重新下发
|
||||||
releaseArchivedDetailUniqueId(inOrderNumber);
|
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 分组
|
// 按照 warehouseId 分组
|
||||||
Map<Long, List<ReservationOutMaterialDetail>> materialDetailGroupByWarehouse = materialDetailList.stream()
|
Map<Long, List<ReservationOutMaterialDetail>> materialDetailGroupByWarehouse = materialDetailList.stream()
|
||||||
@@ -1020,7 +1031,6 @@ public class ReservationStockOutOrderDomainService {
|
|||||||
reservationStockInOrder.setOrderTypeCode("pu_tong_chu_ku");
|
reservationStockInOrder.setOrderTypeCode("pu_tong_chu_ku");
|
||||||
reservationStockInOrder.setOrderTypeName("普通出库");
|
reservationStockInOrder.setOrderTypeName("普通出库");
|
||||||
reservationStockInOrder.setBusinessType("pu_tong_chu_ku");
|
reservationStockInOrder.setBusinessType("pu_tong_chu_ku");
|
||||||
reservationStockInOrder.setReservationOrderSource("客户预约");
|
|
||||||
reservationStockInOrder.setWarehouseId(warehouseId);
|
reservationStockInOrder.setWarehouseId(warehouseId);
|
||||||
reservationStockInOrder.setOrganizationId(orgId);
|
reservationStockInOrder.setOrganizationId(orgId);
|
||||||
reservationStockInOrder.setOrganizationName(orgName);
|
reservationStockInOrder.setOrganizationName(orgName);
|
||||||
|
|||||||
Reference in New Issue
Block a user