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:
+3
@@ -169,6 +169,9 @@ public class ExecutionOutMaterialDetail extends BaseVOEntity {
|
||||
@ApiModelProperty("分配仓库id")
|
||||
private Long warehouseId;
|
||||
|
||||
@ApiModelProperty("库存锁定模式: 1-下单冻结 2-分配库存冻结(默认), 下发时从业务单明细复制")
|
||||
private Integer stockLockMode;
|
||||
|
||||
@ApiModelProperty("分配仓库编码")
|
||||
@Excel(name = "分配仓库编码")
|
||||
private String warehouseCode;
|
||||
|
||||
+3
@@ -183,6 +183,9 @@ public class ExecutionOutMaterialDetailPO extends ExecutionStockOutOrderBaseDO {
|
||||
@ApiModelProperty("分配仓库id")
|
||||
private Long warehouseId;
|
||||
|
||||
@ApiModelProperty("库存锁定模式: 1-下单冻结 2-分配库存冻结(默认)")
|
||||
private Integer stockLockMode;
|
||||
|
||||
@ApiModelProperty("分配仓库编码")
|
||||
@Excel(name = "分配仓库编码")
|
||||
private String warehouseCode;
|
||||
|
||||
+3
@@ -519,4 +519,7 @@ public class ExecutionStockOutOrder extends BaseVOEntity {
|
||||
|
||||
@ApiModelProperty("反审标记: 0-无 1-已反审(业务单反审时软删del_flag=2并打标记)")
|
||||
private Integer reverseFlag;
|
||||
|
||||
@ApiModelProperty("库存锁定模式: 1-下单冻结 2-分配库存冻结(默认), 下发时按该仓明细行取值")
|
||||
private Integer stockLockMode;
|
||||
}
|
||||
|
||||
+2
@@ -31,6 +31,8 @@ public class ExecutionStockOutOrderPO extends BaseVOEntity {
|
||||
private Long outOrderId;
|
||||
@ApiModelProperty("反审标记: 1-已反审(反审软删归档, 【已反审】tab按 delFlag=2+reverseFlag=1 查询)")
|
||||
private Integer reverseFlag;
|
||||
@ApiModelProperty("库存锁定模式: 1-下单冻结 2-分配库存冻结(默认), 下发时按该仓明细行取值")
|
||||
private Integer stockLockMode;
|
||||
@ApiModelProperty("总价")
|
||||
@Excel(name = "总价")
|
||||
private BigDecimal amount;
|
||||
|
||||
+3
@@ -171,6 +171,9 @@ public class ReservationOutMaterialDetail extends BaseVOEntity {
|
||||
@ApiModelProperty("分配仓库id")
|
||||
private Long warehouseId;
|
||||
|
||||
@ApiModelProperty("库存锁定模式: 1-下单冻结 2-分配库存冻结(默认), 保存时按行仓库判定")
|
||||
private Integer stockLockMode;
|
||||
|
||||
@ApiModelProperty("分配仓库编码")
|
||||
@Excel(name = "分配仓库编码")
|
||||
private String warehouseCode;
|
||||
|
||||
+3
@@ -184,6 +184,9 @@ public class ReservationOutMaterialDetailPO extends ReservationStockOutOrderBase
|
||||
@ApiModelProperty("分配仓库id")
|
||||
private Long warehouseId;
|
||||
|
||||
@ApiModelProperty("库存锁定模式: 1-下单冻结 2-分配库存冻结(默认)")
|
||||
private Integer stockLockMode;
|
||||
|
||||
@ApiModelProperty("分配仓库编码")
|
||||
@Excel(name = "分配仓库编码")
|
||||
private String warehouseCode;
|
||||
|
||||
+3
@@ -175,6 +175,9 @@ public class ReservationOutMaterialDetailDO extends BaseVOEntity {
|
||||
@ApiModelProperty("分配仓库id")
|
||||
private Long warehouseId;
|
||||
|
||||
@ApiModelProperty("库存锁定模式: 1-下单冻结 2-分配库存冻结(默认)")
|
||||
private Integer stockLockMode;
|
||||
|
||||
@ApiModelProperty("分配仓库编码")
|
||||
@Excel(name = "分配仓库编码")
|
||||
private String warehouseCode;
|
||||
|
||||
+3
@@ -518,6 +518,9 @@ public class ReservationStockOutOrder extends BaseVOEntity {
|
||||
@ApiModelProperty("反审状态: 0-无 1-已反审(反审后status回退为1-已创建,重新审核通过自动复位0)")
|
||||
private Integer reverseStatus;
|
||||
|
||||
@ApiModelProperty("库存锁定模式JSON(多仓多执行单): [{\"executionOrderNumber\":\"CK001\",\"warehouseCode\":\"QZ\",\"warehouseName\":\"青洲仓\",\"stockLockMode\":1}]; 下单按仓写入, 下发后回填执行单号")
|
||||
private String stockLockModeJson;
|
||||
|
||||
@ApiModelProperty("反审人id")
|
||||
private Long reverseBy;
|
||||
|
||||
|
||||
+3
@@ -541,6 +541,9 @@ public class ReservationStockOutOrderPO extends BaseVOEntity {
|
||||
@ApiModelProperty("反审状态: 0-无 1-已反审(反审后status回退为1-已创建,重新审核通过自动复位0)")
|
||||
private Integer reverseStatus;
|
||||
|
||||
@ApiModelProperty("库存锁定模式JSON(多仓多执行单): [{\"executionOrderNumber\":\"CK001\",\"warehouseCode\":\"QZ\",\"warehouseName\":\"青洲仓\",\"stockLockMode\":1}]; 下单按仓写入, 下发后回填执行单号; stockLockMode: 1-下单冻结 2-分配库存冻结")
|
||||
private String stockLockModeJson;
|
||||
|
||||
@ApiModelProperty("反审人id")
|
||||
private Long reverseBy;
|
||||
|
||||
|
||||
+3
@@ -594,6 +594,9 @@ public class ReservationStockOutOrderDO extends BaseVOEntity {
|
||||
@ApiModelProperty("反审状态: 0-无 1-已反审(反审后status回退为1-已创建,重新审核通过自动复位0)")
|
||||
private Integer reverseStatus;
|
||||
|
||||
@ApiModelProperty("库存锁定模式JSON(多仓多执行单); 下单按仓写入, 下发后回填执行单号")
|
||||
private String stockLockModeJson;
|
||||
|
||||
@ApiModelProperty("反审人id")
|
||||
private Long reverseBy;
|
||||
|
||||
|
||||
+75
@@ -227,6 +227,8 @@ public class ReservationStockOutOrderDomainService {
|
||||
|
||||
// 与 update / batchInsert 一致:前端传计划数量为 quantity,非 outboundQuantity
|
||||
setMaterialDetailInfo(stockOutOrderDO);
|
||||
// 明细行冗余存储库存锁定模式(1-下单冻结 2-分配冻结,按行仓库判定),供回显与下发链路复制
|
||||
fillDetailStockLockMode(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);
|
||||
@@ -287,6 +289,8 @@ public class ReservationStockOutOrderDomainService {
|
||||
|
||||
//设置物料信息
|
||||
setMaterialDetailInfo(stockOutOrderDO);
|
||||
// 明细行冗余存储库存锁定模式(按行仓库判定),与 insert 同口径
|
||||
fillDetailStockLockMode(stockOutOrderDO);
|
||||
//统计种类
|
||||
stockOutOrderDO.setMaterialQuantity(stockOutOrderDO.getMaterialDetailList().size());
|
||||
//统计总数量
|
||||
@@ -331,6 +335,49 @@ public class ReservationStockOutOrderDomainService {
|
||||
return warehouseFeignPO != null && warehouseFeignPO.getStockLockMode() != null && warehouseFeignPO.getStockLockMode() == 1;
|
||||
}
|
||||
|
||||
/**
|
||||
* 明细行冗余存储库存锁定模式(存储+回显):按行仓库(行 warehouseId 优先,空取单头)实时判定,
|
||||
* 1-下单冻结 2-分配库存冻结(默认)。保存/编辑时重算(幂等),下发后随明细复制传递到执行单/WMS;
|
||||
* 供老预约单下发路径复用(public)。
|
||||
*/
|
||||
public void fillDetailStockLockMode(List<ReservationOutMaterialDetailDO> details, Long defaultWarehouseId) {
|
||||
if (CollectionUtils.isEmpty(details)) {
|
||||
return;
|
||||
}
|
||||
for (ReservationOutMaterialDetailDO detail : details) {
|
||||
Long warehouseId = detail.getWarehouseId() != null ? detail.getWarehouseId() : defaultWarehouseId;
|
||||
detail.setStockLockMode(isOrderFreezeWarehouse(warehouseId) ? 1 : 2);
|
||||
}
|
||||
}
|
||||
|
||||
private void fillDetailStockLockMode(ReservationStockOutOrderDO stockOutOrderDO) {
|
||||
fillDetailStockLockMode(stockOutOrderDO.getMaterialDetailList(), stockOutOrderDO.getWarehouseId());
|
||||
// 单头库存锁定模式JSON(仓级,元素不含执行单号——下发后在 issueOrder/executeAndIssue 覆盖为执行单级)
|
||||
stockOutOrderDO.setStockLockModeJson(buildStockLockModeJsonByDetails(stockOutOrderDO.getMaterialDetailList()));
|
||||
}
|
||||
|
||||
/**
|
||||
* 按明细行仓库去重组装库存锁定模式JSON:
|
||||
* [{"warehouseId":13,"warehouseCode":"QZ","warehouseName":"青洲仓","stockLockMode":1}]
|
||||
*/
|
||||
private String buildStockLockModeJsonByDetails(List<ReservationOutMaterialDetailDO> details) {
|
||||
if (CollectionUtils.isEmpty(details)) {
|
||||
return null;
|
||||
}
|
||||
Map<Long, Map<String, Object>> warehouseJsonMap = new LinkedHashMap<>();
|
||||
for (ReservationOutMaterialDetailDO detail : details) {
|
||||
warehouseJsonMap.computeIfAbsent(detail.getWarehouseId(), k -> {
|
||||
Map<String, Object> item = new LinkedHashMap<>();
|
||||
item.put("warehouseId", k);
|
||||
item.put("warehouseCode", detail.getWarehouseCode());
|
||||
item.put("warehouseName", detail.getWarehouseName());
|
||||
item.put("stockLockMode", detail.getStockLockMode() != null ? detail.getStockLockMode() : 2);
|
||||
return item;
|
||||
});
|
||||
}
|
||||
return JSON.toJSONString(warehouseJsonMap.values());
|
||||
}
|
||||
|
||||
/**
|
||||
* 出库单保存时下单冻结:筛选下单冻结模式仓库的明细,先冻结WMS库存再落库(失败抛异常阻断保存)。
|
||||
* ★下单冻结模式仓库明细强制必选库存批次:未关联 materialInventoryId 无法确定冻结哪条库存行,直接阻断。
|
||||
@@ -492,6 +539,8 @@ public class ReservationStockOutOrderDomainService {
|
||||
}
|
||||
//设置物料信息
|
||||
setMaterialDetailInfo(stockOutOrderDO);
|
||||
// 明细行冗余存储库存锁定模式:编辑时按当前行仓库重算(幂等;未冻结单的仓库模式可能已切换)
|
||||
fillDetailStockLockMode(stockOutOrderDO);
|
||||
// 下单冻结模式编辑重锁(原子):先WMS侧释放原冻结+按新明细重锁(同一事务),成功后才改本地;
|
||||
// 已下发WMS的冻结单不可编辑,须先取消下发(判据=活动执行单,issueStatus 不可靠)
|
||||
handleFreezeOnUpdate(stockOutOrderDO, stockInOrderPO);
|
||||
@@ -606,6 +655,8 @@ public class ReservationStockOutOrderDomainService {
|
||||
reservationOutMaterialDetail.setMaterialBaseInfoId(materialBaseInfoPO.getMaterialBaseInfoId());
|
||||
reservationOutMaterialDetail.setMaterialCode(materialBaseInfoPO.getMaterialCode());
|
||||
reservationOutMaterialDetail.setMaterialName(materialBaseInfoPO.getMaterialName());
|
||||
// TZPD 外部推入单不参与下单冻结(R8),明细库存锁定模式固定为 2-分配库存冻结
|
||||
reservationOutMaterialDetail.setStockLockMode(2);
|
||||
return outMaterialDetailService.save(reservationOutMaterialDetail);
|
||||
}
|
||||
|
||||
@@ -876,6 +927,8 @@ public class ReservationStockOutOrderDomainService {
|
||||
// 按照 warehouseId 分组
|
||||
Map<Long, List<ReservationOutMaterialDetail>> materialDetailGroupByWarehouse = materialDetailList.stream()
|
||||
.collect(Collectors.groupingBy(ReservationOutMaterialDetail::getWarehouseId));
|
||||
// 各仓执行单的库存锁定模式JSON元素(forEach后覆盖回写业务单单头,元素带执行单号)
|
||||
List<Map<String, Object>> stockLockModeJsonItems = new ArrayList<>();
|
||||
materialDetailGroupByWarehouse.forEach((warehouseId, details) -> {
|
||||
Long topOrgId = reservationStockInOrderMapper.getTopOrgId(warehouseId);
|
||||
Long orgId = reservationStockInOrderMapper.getOrgId(warehouseId);
|
||||
@@ -902,6 +955,8 @@ public class ReservationStockOutOrderDomainService {
|
||||
// reservationStockInOrder.setTopOrganizationId(topOrgId);
|
||||
|
||||
reservationStockInOrder.setBusinessOutOrderNumber(inOrderNumber);
|
||||
// 库存锁定模式:取该仓明细行首个非空值(下单时判定,与明细/实际冻结行为一致)
|
||||
reservationStockInOrder.setStockLockMode(details.stream().map(ReservationOutMaterialDetail::getStockLockMode).filter(Objects::nonNull).findFirst().orElse(2));
|
||||
// reservationStockInOrder.setOutOrderNumber(generateExecutionOrderNumber(warehouseCode));
|
||||
|
||||
//设置单号(仓库单号规则: Feign优先, system服务失败/降级时本地跨库兜底)
|
||||
@@ -952,9 +1007,17 @@ public class ReservationStockOutOrderDomainService {
|
||||
reservationStockInOrder.setQuantity(quantity);
|
||||
executionStockOutOrderService.save(reservationStockInOrder);
|
||||
executionInOrderNumbers.add(reservationStockInOrder.getOutOrderNumber());
|
||||
Map<String, Object> lockModeItem = new LinkedHashMap<>();
|
||||
lockModeItem.put("executionOrderNumber", reservationStockInOrder.getOutOrderNumber());
|
||||
lockModeItem.put("warehouseCode", reservationStockInOrder.getWarehouseCode());
|
||||
lockModeItem.put("warehouseName", reservationStockInOrder.getWarehouseName());
|
||||
lockModeItem.put("stockLockMode", reservationStockInOrder.getStockLockMode());
|
||||
stockLockModeJsonItems.add(lockModeItem);
|
||||
executionOutMaterialDetailService.saveBatch(inMaterialDetailList);
|
||||
});
|
||||
byId.setExecutionOutOrderNumber(String.join(",", executionInOrderNumbers));
|
||||
// 单头库存锁定模式JSON覆盖为执行单级(元素带执行单号)
|
||||
byId.setStockLockModeJson(JSON.toJSONString(stockLockModeJsonItems));
|
||||
stockOutOrderService.updateById(byId);
|
||||
}
|
||||
return update;
|
||||
@@ -1224,6 +1287,8 @@ public class ReservationStockOutOrderDomainService {
|
||||
}
|
||||
|
||||
List<String> executionInOrderNumbers = new ArrayList<>();
|
||||
// 各仓执行单的库存锁定模式JSON元素(forEach后覆盖回写业务单单头,元素带执行单号)
|
||||
List<Map<String, Object>> stockLockModeJsonItems = new ArrayList<>();
|
||||
materialDetailGroupByWarehouse.forEach((warehouseId, details) -> {
|
||||
if (warehouseId == null) warehouseId = warehouseId1;
|
||||
Long topOrgId = reservationStockInOrderMapper.getTopOrgId(warehouseId);
|
||||
@@ -1248,6 +1313,8 @@ public class ReservationStockOutOrderDomainService {
|
||||
reservationStockInOrder.setWarehouseCode(warehouseCode);
|
||||
reservationStockInOrder.setWarehouseName(warehouseName);
|
||||
reservationStockInOrder.setBusinessOutOrderNumber(inOrderNumber);
|
||||
// 库存锁定模式:取该仓明细行首个非空值(下单时判定,与明细/实际冻结行为一致)
|
||||
reservationStockInOrder.setStockLockMode(details.stream().map(ReservationOutMaterialDetail::getStockLockMode).filter(Objects::nonNull).findFirst().orElse(2));
|
||||
|
||||
|
||||
//设置单号(仓库单号规则: Feign优先, system服务失败/降级时本地跨库兜底)
|
||||
@@ -1296,6 +1363,12 @@ public class ReservationStockOutOrderDomainService {
|
||||
BigDecimal quantity = details.stream().map(ReservationOutMaterialDetail::getQuantity).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add);
|
||||
reservationStockInOrder.setQuantity(quantity);
|
||||
executionInOrderNumbers.add(reservationStockInOrder.getOutOrderNumber());
|
||||
Map<String, Object> lockModeItem = new LinkedHashMap<>();
|
||||
lockModeItem.put("executionOrderNumber", reservationStockInOrder.getOutOrderNumber());
|
||||
lockModeItem.put("warehouseCode", reservationStockInOrder.getWarehouseCode());
|
||||
lockModeItem.put("warehouseName", reservationStockInOrder.getWarehouseName());
|
||||
lockModeItem.put("stockLockMode", reservationStockInOrder.getStockLockMode());
|
||||
stockLockModeJsonItems.add(lockModeItem);
|
||||
executionStockOutOrderService.save(reservationStockInOrder);
|
||||
executionOutMaterialDetailService.saveBatch(inMaterialDetailList);
|
||||
|
||||
@@ -1308,6 +1381,8 @@ public class ReservationStockOutOrderDomainService {
|
||||
stockOutOrderApplicationService.issueOrder(param);
|
||||
});
|
||||
byId.setExecutionOutOrderNumber(String.join(",", executionInOrderNumbers));
|
||||
// 单头库存锁定模式JSON覆盖为执行单级(元素带执行单号)
|
||||
byId.setStockLockModeJson(JSON.toJSONString(stockLockModeJsonItems));
|
||||
stockOutOrderService.updateById(byId);
|
||||
}
|
||||
return update;
|
||||
|
||||
+9
@@ -431,6 +431,13 @@ public class ReserveStockOutOrderDomainService {
|
||||
Long shipperId = reservationStockOutOrder.getShipperId();
|
||||
String jsbz = reservationStockInOrderMapper.getJsbz(shipperId);
|
||||
reservationStockOutOrder.setSettlementCurrency(jsbz);
|
||||
// 单头库存锁定模式JSON:老预约单下发的业务单不走下单冻结钩子(WMS分配时才冻结),固定 2-分配库存冻结(单仓单元素)
|
||||
Map<String, Object> stockLockModeItem = new LinkedHashMap<>();
|
||||
stockLockModeItem.put("warehouseId", reservationStockOutOrder.getWarehouseId());
|
||||
stockLockModeItem.put("warehouseCode", reservationStockOutOrder.getWarehouseCode());
|
||||
stockLockModeItem.put("warehouseName", reservationStockOutOrder.getWarehouseName());
|
||||
stockLockModeItem.put("stockLockMode", 2);
|
||||
reservationStockOutOrder.setStockLockModeJson(JSON.toJSONString(java.util.Collections.singletonList(stockLockModeItem)));
|
||||
// 保留旧单号,用于查询源明细数据
|
||||
String oldOutOrderNumber = reservationStockOutOrder.getOutOrderNumber();
|
||||
// 生成出库业务单号,防止与已生成的出库业务单号重复
|
||||
@@ -445,6 +452,8 @@ public class ReserveStockOutOrderDomainService {
|
||||
ReservationOutMaterialDetail reservationOutMaterialDetail = new ReservationOutMaterialDetail();
|
||||
BeanUtils.copyProperties(reserveOutMaterialDetail, reservationOutMaterialDetail,"materialDetailId");
|
||||
// reservationOutMaterialDetail.setOutOrderNumber(newOrderNumber); // 使用新单号保持与主表关联
|
||||
// 老预约单下发生成的业务单不走下单冻结钩子(客户预约单在WMS分配时才冻结),明细模式固定为 2-分配库存冻结
|
||||
reservationOutMaterialDetail.setStockLockMode(2);
|
||||
String lot = generateDateSerialNumber();
|
||||
lot = lot+"-"+index;
|
||||
index++;
|
||||
|
||||
+3
-2
@@ -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" />
|
||||
@@ -119,7 +120,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,
|
||||
@@ -477,7 +478,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
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.warehouse_id, a.warehouse_code, a.warehouse_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.level, a.parent_unique_id, a.allow_modify,
|
||||
|
||||
+2
-1
@@ -53,6 +53,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
<result property="updateByName" column="update_by_name" />
|
||||
<result property="delFlag" column="del_flag" />
|
||||
<result property="reverseFlag" column="reverse_flag" />
|
||||
<result property="stockLockMode" column="stock_lock_mode" />
|
||||
<result property="overStockId" column="over_stock_id" />
|
||||
<result property="overStockStatus" column="over_stock_status" />
|
||||
<result property="overStockType" column="over_stock_type" />
|
||||
@@ -129,7 +130,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
a.cancel_time, a.close_order, a.close_remark, a.close_by, a.close_by_name, a.close_time, a.check_status,a.BUSINESS_ORDER_NO,
|
||||
a.check_task_distribution, a.check_task_distribution_time, a.check_operators_by, a.check_operators_name, a.mobilize_code,
|
||||
a.remark, a.create_time, a.create_by, a.create_by_name,a.business_number,a.train_no,a.amount,a.business_out_order_number,
|
||||
a.update_time, a.update_by, a.update_by_name, a.del_flag, a.reverse_flag, a.over_stock_id, a.over_stock_status, a.over_stock_type,a."TO",
|
||||
a.update_time, a.update_by, a.update_by_name, a.del_flag, a.reverse_flag, a.stock_lock_mode, a.over_stock_id, a.over_stock_status, a.over_stock_type,a."TO",
|
||||
a.CONTACT_PERSON,a.VEHICLE_MODEL_PLATE,a.ENTRUST_NO,a.TEL,a.DRIVER_SIGN,a.FAX,a.DECLARE_CUSTOMS,a.MANUFACTURER,
|
||||
a.CUSTOMS_DECLARER_INFO,a.DELIVERY_ADDR,a.ENTRY_EXIT_CUSTOMS,a.DEPARTURE_ARRIVAL_COUNTRY,a.CARRIER,a.CONTAINER_NO,a.CONTAINER_NO_NAME,a.OUTBOUND_DATE,
|
||||
a.COMPLETE_TIME,a.ORDER_DATE,a.TRANSPORT_MODE_CODE,a.TRANSPORT_MODE_NAME,a.SUPERVISION_MODE_CODE,a.SUPERVISION_MODE_NAME,
|
||||
|
||||
+2
-1
@@ -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" />
|
||||
@@ -121,7 +122,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,
|
||||
|
||||
+3
-1
@@ -118,6 +118,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
<result property="discount" column="DISCOUNT" />
|
||||
<result property="totalOutboundQuantity" column="TOTAL_OUTBOUND_QUANTITY" />
|
||||
<result property="reverseStatus" column="REVERSE_STATUS" />
|
||||
<result property="stockLockModeJson" column="STOCK_LOCK_MODE_JSON" />
|
||||
<result property="reverseBy" column="REVERSE_BY" />
|
||||
<result property="reverseByName" column="REVERSE_BY_NAME" />
|
||||
<result property="reverseTime" column="REVERSE_TIME" />
|
||||
@@ -142,7 +143,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
a.DIRECTOR_NAME ,a.DIRECTOR_PHONE,a.DIRECTOR_ID,a.RESERVATION_ORDER_SOURCE,a.OUTBOUND_TIME,a.RETURN_QUANTITY,a.DELIVERY_NAME,a.CUSTOMER_NUMBER,a.INVOICE_NUMBER,a.RETURN_ORDER_NUMBER,a.TOTAL_AMOUNT,
|
||||
a.ROUTE,a.PUSH_TIME,a.PUSH_STATUS,a.PUSH_BY,a.PUSH_BY_NAME,a.execution_out_order_number,a.LINE_CODE,a.LINE_NAME,a.SHUTTLE_NO,
|
||||
a.TOTAL_WAREHOUSE_RENT,a.BUSINESS_CHARGE_TYPE,a.BUSINESS_PRICE_WAY,a.DISCOUNT,
|
||||
a.REVERSE_STATUS,a.REVERSE_BY,a.REVERSE_BY_NAME,a.REVERSE_TIME,a.REVERSE_REMARK
|
||||
a.REVERSE_STATUS,a.REVERSE_BY,a.REVERSE_BY_NAME,a.REVERSE_TIME,a.REVERSE_REMARK,
|
||||
a.STOCK_LOCK_MODE_JSON
|
||||
</sql>
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user