feat(oms,wms): 出库全链路物料明细/单头增加库存锁定模式字段(存储+回显)
- 出库业务单明细/执行单明细/WMS出库明细/拣货明细/复核明细新增stockLockMode; 业务单单头新增JSON数组字段、执行单单头新增单值字段 - 下单/编辑时按明细行仓库实时判定(1-下单冻结 2-分配库存冻结默认), 下发后沿 执行单→WMS推单→拣货→复核 逐级复制继承, 交接单回显内存组装 - 业务单单头JSON两段式: 下单按仓写入(无执行单号), 下发覆盖为执行单级(带CK执行单号) - WMS自建/通知/调拨单明细固定2; TZPD外部推入/老预约单下发路径固定2 - 达梦SQL脚本(OMS库4表+WMS库3表), 明细列DEFAULT 2存量自动回填
This commit is contained in:
+4
@@ -222,6 +222,8 @@ public class HandoverTaskOrderDomainService {
|
||||
}
|
||||
TaskHandoverMaterialDetailPO detail = new TaskHandoverMaterialDetailPO();
|
||||
detail.setMaterialDetailId(omd.getMaterialDetailId());
|
||||
// 库存锁定模式:回显取自出库单明细
|
||||
detail.setStockLockMode(omd.getStockLockMode());
|
||||
detail.setUniqueId(omd.getUniqueId());
|
||||
detail.setTaskNumber(handoverTaskOrderPO.getTaskNumber());
|
||||
detail.setOrganizationId(omd.getOrganizationId());
|
||||
@@ -306,6 +308,8 @@ public class HandoverTaskOrderDomainService {
|
||||
}
|
||||
TaskHandoverMaterialDetailPO detail = new TaskHandoverMaterialDetailPO();
|
||||
detail.setMaterialDetailId(omd.getMaterialDetailId());
|
||||
// 库存锁定模式:回显取自出库单明细
|
||||
detail.setStockLockMode(omd.getStockLockMode());
|
||||
detail.setUniqueId(omd.getUniqueId());
|
||||
detail.setTaskNumber(handoverTaskOrderPO.getTaskNumber());
|
||||
detail.setOrganizationId(omd.getOrganizationId());
|
||||
|
||||
+3
@@ -170,6 +170,9 @@ public class OutMaterialDetail extends BaseVOEntity {
|
||||
@ApiModelProperty("分配仓库id")
|
||||
private Long warehouseId;
|
||||
|
||||
@ApiModelProperty("库存锁定模式: 1-下单冻结 2-分配库存冻结(默认), OMS推单复制/WMS自建为2")
|
||||
private Integer stockLockMode;
|
||||
|
||||
@ApiModelProperty("分配仓库编码")
|
||||
@Excel(name = "分配仓库编码")
|
||||
private String warehouseCode;
|
||||
|
||||
+9
@@ -228,6 +228,11 @@ public class OutMaterialDetailImpl extends ServiceImpl<OutMaterialDetailMapper,
|
||||
outMaterialDetail.setCreateByName(userRealName);
|
||||
outMaterialDetail.setCreateTime(new Date());
|
||||
outMaterialDetail.setQuantity(outMaterialDetail.getOutboundQuantity());
|
||||
// 库存锁定模式:WMS自建/通知/调拨单不参与下单冻结,明细固定 2-分配库存冻结
|
||||
// (OMS推单走 omsOrderAddDetail 直存 saveBatch 不经此处,其值随推送携带,互不影响)
|
||||
if (outMaterialDetail.getStockLockMode() == null) {
|
||||
outMaterialDetail.setStockLockMode(2);
|
||||
}
|
||||
String materialNo = outMaterialDetail.getMaterialNo();
|
||||
List<MaterialBaseInfo> materialBaseInfos = materialBaseInfoMapper.selectList(new QueryWrapper<MaterialBaseInfo>().lambda().eq(MaterialBaseInfo::getMaterialCode, materialNo));
|
||||
if (!CollectionUtils.isEmpty(materialBaseInfos) && materialBaseInfos.size() > 0) {
|
||||
@@ -282,6 +287,10 @@ public class OutMaterialDetailImpl extends ServiceImpl<OutMaterialDetailMapper,
|
||||
outMaterialDetail.setOrganizationId(outMaterialDetailBaseDO.getOrganizationId());
|
||||
outMaterialDetail.setOrganizationName(outMaterialDetailBaseDO.getOrganizationName());
|
||||
outMaterialDetail.setTopOrganizationId(outMaterialDetailBaseDO.getTopOrganizationId());
|
||||
// 编辑时新增行:未显式带值的固定 2-分配库存冻结(已存行不受影响,updateById 忽略 null)
|
||||
if (outMaterialDetail.getStockLockMode() == null) {
|
||||
outMaterialDetail.setStockLockMode(2);
|
||||
}
|
||||
}else {
|
||||
BeanUtils.copyProperties(outMaterialDetailDO, outMaterialDetail);
|
||||
outMaterialDetail.setUpdateBy(loginUser.getUserid());
|
||||
|
||||
+3
@@ -184,6 +184,9 @@ public class OutMaterialDetailPO extends StockOutOrderBaseDO {
|
||||
@ApiModelProperty("分配仓库id")
|
||||
private Long warehouseId;
|
||||
|
||||
@ApiModelProperty("库存锁定模式: 1-下单冻结 2-分配库存冻结(默认)")
|
||||
private Integer stockLockMode;
|
||||
|
||||
@ApiModelProperty("分配仓库编码")
|
||||
@Excel(name = "分配仓库编码")
|
||||
private String warehouseCode;
|
||||
|
||||
+3
@@ -174,6 +174,9 @@ public class OutMaterialDetailDO extends BaseVOEntity {
|
||||
@ApiModelProperty("分配仓库id")
|
||||
private Long warehouseId;
|
||||
|
||||
@ApiModelProperty("库存锁定模式: 1-下单冻结 2-分配库存冻结(默认)")
|
||||
private Integer stockLockMode;
|
||||
|
||||
@ApiModelProperty("分配仓库编码")
|
||||
@Excel(name = "分配仓库编码")
|
||||
private String warehouseCode;
|
||||
|
||||
+3
@@ -161,6 +161,9 @@ public class PickingMaterialDetail extends BaseVOEntity {
|
||||
@Excel(name = "仓库id")
|
||||
private Long warehouseId;
|
||||
|
||||
@ApiModelProperty("库存锁定模式: 1-下单冻结 2-分配库存冻结(默认), 生成时从出库单明细复制")
|
||||
private Integer stockLockMode;
|
||||
|
||||
@ApiModelProperty("仓库编码")
|
||||
@Excel(name = "仓库编码")
|
||||
private String warehouseCode;
|
||||
|
||||
+3
@@ -170,6 +170,9 @@ public class PickingMaterialDetailPO extends BaseVOEntity {
|
||||
@Excel(name = "仓库id")
|
||||
private Long warehouseId;
|
||||
|
||||
@ApiModelProperty("库存锁定模式: 1-下单冻结 2-分配库存冻结(默认)")
|
||||
private Integer stockLockMode;
|
||||
|
||||
@ApiModelProperty("仓库编码")
|
||||
@Excel(name = "仓库编码")
|
||||
private String warehouseCode;
|
||||
|
||||
+3
@@ -158,6 +158,9 @@ public class PickingMaterialDetailDO extends BaseVOEntity {
|
||||
@Excel(name = "仓库id")
|
||||
private Long warehouseId;
|
||||
|
||||
@ApiModelProperty("库存锁定模式: 1-下单冻结 2-分配库存冻结(默认)")
|
||||
private Integer stockLockMode;
|
||||
|
||||
@ApiModelProperty("仓库编码")
|
||||
@Excel(name = "仓库编码")
|
||||
private String warehouseCode;
|
||||
|
||||
+6
@@ -206,6 +206,8 @@ public class ReviewOrderDomainService {
|
||||
d.setReviewOrderId(reviewOrderId);
|
||||
d.setReviewOrderNumber(reviewOrderNumber);
|
||||
d.setOutOrderNumber(outOrderNumber);
|
||||
// 库存锁定模式:随拣货明细取值(拣货行未带出时从出库明细兜底)
|
||||
d.setStockLockMode(line.getStockLockMode());
|
||||
d.setOutUniqueId(line.getOutUniqueId());
|
||||
d.setMaterialBaseInfoId(line.getMaterialBaseInfoId());
|
||||
d.setMaterialCode(line.getMaterialCode());
|
||||
@@ -265,6 +267,10 @@ public class ReviewOrderDomainService {
|
||||
}
|
||||
if (outMd != null) {
|
||||
d.setMaterialDetailId(outMd.getMaterialDetailId());
|
||||
// 库存锁定模式:拣货明细行未带出时,从出库明细兜底
|
||||
if (d.getStockLockMode() == null) {
|
||||
d.setStockLockMode(outMd.getStockLockMode());
|
||||
}
|
||||
// 物料编码/名称:拣货明细行若未落库或未映射出值,从出库明细兜底(避免复核单、复核作业任务明细为空)
|
||||
if (!StringUtils.hasText(d.getMaterialCode())) {
|
||||
d.setMaterialCode(outMd.getMaterialCode());
|
||||
|
||||
@@ -30,6 +30,9 @@ public class ReviewMaterialDetail extends BaseVOEntity {
|
||||
|
||||
private String outOrderNumber;
|
||||
|
||||
@ApiModelProperty("库存锁定模式: 1-下单冻结 2-分配库存冻结(默认), 生成时从拣货明细取值")
|
||||
private Integer stockLockMode;
|
||||
|
||||
private Long outUniqueId;
|
||||
|
||||
private Long materialDetailId;
|
||||
|
||||
+3
@@ -31,6 +31,9 @@ public class ReviewMaterialDetailPO extends BaseVOEntity {
|
||||
@ApiModelProperty("出库单号")
|
||||
private String outOrderNumber;
|
||||
|
||||
@ApiModelProperty("库存锁定模式: 1-下单冻结 2-分配库存冻结(默认)")
|
||||
private Integer stockLockMode;
|
||||
|
||||
@ApiModelProperty("出库明细 unique_id")
|
||||
private Long outUniqueId;
|
||||
|
||||
|
||||
+3
@@ -26,6 +26,9 @@ public class TaskHandoverMaterialDetailPO extends BaseVOEntity {
|
||||
@ApiModelProperty("出库单物料明细id")
|
||||
private Long materialDetailId;
|
||||
|
||||
@ApiModelProperty("库存锁定模式: 1-下单冻结 2-分配库存冻结(默认), 回显时取自出库单明细")
|
||||
private Integer stockLockMode;
|
||||
|
||||
@ApiModelProperty("组织表ID")
|
||||
@Excel(name = "组织表ID")
|
||||
private Long organizationId;
|
||||
|
||||
@@ -32,6 +32,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
<result property="serialNumberManage" column="serial_number_manage" />
|
||||
<result property="materialInventoryId" column="material_inventory_id" />
|
||||
<result property="warehouseId" column="warehouse_id" />
|
||||
<result property="stockLockMode" column="stock_lock_mode" />
|
||||
<result property="warehouseCode" column="warehouse_code" />
|
||||
<result property="warehouseName" column="warehouse_name" />
|
||||
<result property="storageSectionId" column="storage_section_id" />
|
||||
@@ -125,7 +126,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
a.material_detail_id, a.organization_id, a.organization_name, a.top_organization_id, a.unique_id, a.out_order_number, a.material_base_info_id, a.line_number, a.material_code, a.material_name, a.bar_code, a.weight_limit, a.volume_limit,
|
||||
a.quantity, a.already_allocation_quantity, a.allocation_quantity, a.picking_quantity, a.check_quantity, ROUND(GREATEST(0, IFNULL(a.quantity, 0) - IFNULL(a.check_quantity, 0), IFNULL(a.picking_quantity, 0) - IFNULL(a.check_quantity, 0)), 2) AS wait_check_quantity,
|
||||
a.pack_id, a.pack_code, a.pack_name, a.pack_detail_id, a.unit_code, a.unit_name, a.material_warehouse_control_id, a.serial_number_manage,
|
||||
a.warehouse_id, a.warehouse_code, a.warehouse_name, a.storage_section_id, a.storage_code, a.storage_name, a.storage_location_id, a.storage_location_code, a.storage_location_name, a.level, a.parent_unique_id, a.allow_modify,
|
||||
a.warehouse_id, a.stock_lock_mode, a.warehouse_code, a.warehouse_name, a.storage_section_id, a.storage_code, a.storage_name, a.storage_location_id, a.storage_location_code, a.storage_location_name, a.level, a.parent_unique_id, a.allow_modify,
|
||||
a.material_inventory_id, a.batch_number, a.container_id, a.container_code, a.container_type, a.container_type_name, a.material_status_code, a.material_status_name,
|
||||
a.remark, a.create_time, a.create_by,gen_picking_order,
|
||||
a.create_by_name, a.update_time, a.update_by, a.update_by_name, a.del_flag, a.over_stock_id, a.over_stock_status, a.over_stock_type,
|
||||
|
||||
+2
-1
@@ -31,6 +31,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
<result property="materialWarehouseControlId" column="material_warehouse_control_id" />
|
||||
<result property="serialNumberManage" column="serial_number_manage" />
|
||||
<result property="warehouseId" column="warehouse_id" />
|
||||
<result property="stockLockMode" column="stock_lock_mode" />
|
||||
<result property="warehouseCode" column="warehouse_code" />
|
||||
<result property="warehouseName" column="warehouse_name" />
|
||||
<result property="storageSectionId" column="storage_section_id" />
|
||||
@@ -91,7 +92,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
a.volume_limit, a.quantity, a.picking_quantity, a.pack_id, a.pack_code, a.pack_name,
|
||||
a.pack_detail_id, a.unit_code, a.unit_name, a.material_warehouse_control_id, a.serial_number_manage,
|
||||
a.material_inventory_id, a.batch_number, a.container_id, a.container_code, a.container_type, a.container_type_name, a.material_status_code, a.material_status_name,
|
||||
a.warehouse_id, a.warehouse_code, a.warehouse_name, a.storage_section_id, a.storage_code, a.storage_name,
|
||||
a.warehouse_id, a.stock_lock_mode, a.warehouse_code, a.warehouse_name, a.storage_section_id, a.storage_code, a.storage_name,
|
||||
a.storage_location_id, a.storage_location_code, a.storage_location_name, a.remark,
|
||||
a.BATCH_REF_NO, a.SHEET_REF_NO, a.BOX_PALLET_NO, a.EXT_ATTR_1, a.EXT_ATTR_2,
|
||||
a.PRODUCTION_DATE, a.EXPIRY_DATE, a.INVENTORY_DATE, a.EXT_ATTR_3, a.EXT_ATTR_4,
|
||||
|
||||
@@ -43,6 +43,7 @@
|
||||
<result property="reviewOrderId" column="review_order_id"/>
|
||||
<result property="reviewOrderNumber" column="review_order_number"/>
|
||||
<result property="outOrderNumber" column="out_order_number"/>
|
||||
<result property="stockLockMode" column="stock_lock_mode"/>
|
||||
<result property="outUniqueId" column="out_unique_id"/>
|
||||
<result property="materialDetailId" column="material_detail_id"/>
|
||||
<result property="materialBaseInfoId" column="material_base_info_id"/>
|
||||
@@ -268,6 +269,7 @@
|
||||
d.review_order_id,
|
||||
d.review_order_number,
|
||||
d.out_order_number,
|
||||
d.stock_lock_mode,
|
||||
d.out_unique_id,
|
||||
d.material_detail_id,
|
||||
d.material_base_info_id,
|
||||
|
||||
@@ -446,6 +446,7 @@
|
||||
SELECT b.lot_no,
|
||||
b.warehouse_code,
|
||||
b.warehouse_name,
|
||||
b.stock_lock_mode,
|
||||
b.material_name,
|
||||
b.storage_location_name,
|
||||
b.storage_location_code,
|
||||
@@ -474,6 +475,7 @@
|
||||
<result property="specificationModel" column="specification_model"/>
|
||||
<result property="quantity" column="quantity"/>
|
||||
<result property="warehouseId" column="warehouse_id"/>
|
||||
<result property="stockLockMode" column="stock_lock_mode"/>
|
||||
<result property="materialBaseInfoId" column="material_base_info_id"/>
|
||||
<result property="copyCode" column="copy_code"/>
|
||||
<result property="outboundQuantity" column="outbound_quantity"/>
|
||||
@@ -516,6 +518,7 @@
|
||||
b.warehouse_code,
|
||||
b.warehouse_name,
|
||||
b.warehouse_id,
|
||||
b.stock_lock_mode,
|
||||
b.storage_location_name,
|
||||
b.lot_no,
|
||||
b.piece_count,
|
||||
|
||||
Reference in New Issue
Block a user