feat(wms,oms):库存管理-库存查询新增进货日期、入库日期查询条件,新增进货日期字段贯通收货-上架-库存全链路
需求:OMS/WMS 库存管理-库存查询页增加查询条件:物料分类(后端已支持,无需改动)、
进货日期(新增字段)、入库日期。
一、DDL(sql/20260831_wms_oms_add_purchase_date.sql)
WMS 收货明细、上架明细、物料库存及 OMS 预留库存共 4 张表新增 PURCHASE_DATE DATE 列,
附批次明细配置模板、执行前检查与回滚语句;须先执行 DDL 再发布服务。
二、进货日期录入与落库链路(收货→上架→WMS库存→OMS库存)
1、录入入口为收货批次属性「进货日期」标签(批次规则配置,标签须一字不差),
ReceiptMaterialDetailImpl 两处标签解析新增分支;
2、收货明细→上架明细:StockReceiptOrderDomainService 6 处日期拷贝点补 setPurchaseDate(含子项);
3、上架落库:stockIn/sj 赋值写入 material_inventory;
4、同步 OMS:MaterialInventoryOmsParamDO 新增字段经 Feign omsEdit 传递,
写入 reservation_material_inventory;
5、库存行合并键:批次规则勾选后进货日期参与分行(getParam 映射 + selectListByWhere 全等匹配),
OMS omsEdit 行匹配同步按进货日期区分,避免不同进货日期误合并到同一行。
三、查询条件(两模块 /list 接口)
1、进货日期:purchaseDate(单日精确)+ purchaseDateStart/purchaseDateEnd(区间,End 含当天);
2、入库日期:WMS 新增 createTimeStart/createTimeEnd(按库存行创建时间过滤,与 OMS 现有口径一致);
3、列表/导出返回新增 purchaseDate 字段,分组查询取 MAX(purchase_date)。
说明:历史库存进货日期为空,按进货日期查询查不到存量数据(无来源可回填),区间查询会排除空值行。
This commit is contained in:
+2
@@ -83,6 +83,8 @@ public class MaterialInventoryOmsParamDO extends BaseVOEntity {
|
||||
private Date productionDate;
|
||||
//过期日期
|
||||
private Date expiryDate;
|
||||
//进货日期
|
||||
private Date purchaseDate;
|
||||
|
||||
private String executioOrderNumber;
|
||||
|
||||
|
||||
+6
@@ -210,6 +210,12 @@ public class ReservationMaterialInventory extends BaseVOEntity {
|
||||
@Excel(name = "存货日期", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
|
||||
private Date inventoryDate;
|
||||
|
||||
@ApiModelProperty("进货日期")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
|
||||
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
@Excel(name = "进货日期", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
|
||||
private Date purchaseDate;
|
||||
|
||||
@ApiModelProperty("ExtAttr3")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
|
||||
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
|
||||
+9
@@ -127,6 +127,9 @@ public class ReservationMaterialInventoryImpl extends ServiceImpl<ReservationMat
|
||||
String batchNumber = materialInventoryOmsParamDO.getBatchNumber();
|
||||
Long materialBaseInfoId = materialInventoryOmsParamDO.getMaterialBaseInfoId();
|
||||
Long warehouseId = materialInventoryOmsParamDO.getWarehouseId();
|
||||
// 进货日期参与行匹配:WMS 库存行按批次属性(含进货日期)分行后,OMS 同步按进货日期区分,避免不同进货日期误合并;
|
||||
// 为空时匹配 purchase_date 为空的行,存量行为不变
|
||||
Date purchaseDate = materialInventoryOmsParamDO.getPurchaseDate();
|
||||
LambdaQueryWrapper<ReservationMaterialInventory> param = new LambdaQueryWrapper<ReservationMaterialInventory>()
|
||||
// .eq(ReservationMaterialInventory::getInOrderNumber, inOrderNumber)
|
||||
//.eq(ReservationMaterialInventory::getLotNumber, lotNumber)
|
||||
@@ -148,6 +151,11 @@ public class ReservationMaterialInventoryImpl extends ServiceImpl<ReservationMat
|
||||
} else {
|
||||
param.isNull(ReservationMaterialInventory::getBatchNumber);
|
||||
}
|
||||
if (purchaseDate != null) {
|
||||
param.eq(ReservationMaterialInventory::getPurchaseDate, purchaseDate);
|
||||
} else {
|
||||
param.isNull(ReservationMaterialInventory::getPurchaseDate);
|
||||
}
|
||||
List<ReservationMaterialInventory> reservationMaterialInventories = materialInventoryMapper.selectList(param);
|
||||
if (reservationMaterialInventories != null && reservationMaterialInventories.size() > 0) {
|
||||
ReservationMaterialInventory reservationMaterialInventory = reservationMaterialInventories.get(0);
|
||||
@@ -542,6 +550,7 @@ public class ReservationMaterialInventoryImpl extends ServiceImpl<ReservationMat
|
||||
// materialInventory.setExtAttr4(materialInventoryParamDO.getExtAttr4());
|
||||
materialInventory.setExpiryDate(materialInventoryParamDO.getExpiryDate());
|
||||
// materialInventory.setInventoryDate(materialInventoryParamDO.getInventoryDate());
|
||||
materialInventory.setPurchaseDate(materialInventoryParamDO.getPurchaseDate());
|
||||
materialInventory.setBatchNumber(materialInventoryParamDO.getBatchNumber());
|
||||
String batchNo = materialInventoryParamDO.getBatchNo();
|
||||
if (batchNo != null) {
|
||||
|
||||
+6
@@ -192,6 +192,12 @@ public class ReservationMaterialInventoryPO extends MaterialBasePO {
|
||||
@Excel(name = "存货日期", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
|
||||
private Date inventoryDate;
|
||||
|
||||
@ApiModelProperty("进货日期")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
|
||||
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
@Excel(name = "进货日期", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
|
||||
private Date purchaseDate;
|
||||
|
||||
@ApiModelProperty("ExtAttr3")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
|
||||
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
|
||||
+9
@@ -217,6 +217,12 @@ public class ReservationMaterialInventoryDO extends MaterialBaseDO {
|
||||
@Excel(name = "存货日期", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
|
||||
private Date inventoryDate;
|
||||
|
||||
@ApiModelProperty("进货日期")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
|
||||
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
@Excel(name = "进货日期", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
|
||||
private Date purchaseDate;
|
||||
|
||||
@ApiModelProperty("ExtAttr3")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
|
||||
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
@@ -253,8 +259,11 @@ public class ReservationMaterialInventoryDO extends MaterialBaseDO {
|
||||
private String createTimeEnd;
|
||||
private String expiryDateStr;
|
||||
private String productionDateStr;
|
||||
private String purchaseDateStr;
|
||||
private String expiryDateStart;
|
||||
private String expiryDateEnd;
|
||||
private String purchaseDateStart;
|
||||
private String purchaseDateEnd;
|
||||
|
||||
@ApiModelProperty("导出按到期日分组排序标识:仅 queryRule=wlExpiry 时生效,true-到期日倒序(日期近的在前、空值最后、0库存靠后);不传-保持原有排序")
|
||||
private Boolean orderByExpiryDate;
|
||||
|
||||
+2
@@ -193,5 +193,7 @@ public class ReservationMaterialInventoryDTO extends MaterialBaseDTO {
|
||||
private String createTimeEnd;
|
||||
private String expiryDate;
|
||||
private String productionDate;
|
||||
/** 进货日期(yyyy-MM-dd,单日精确查询) */
|
||||
private String purchaseDate;
|
||||
|
||||
}
|
||||
+5
@@ -53,6 +53,8 @@ public class ReservationMaterialInventoryApi extends BaseController {
|
||||
@RequestParam(value = "customerName", required = false) String customerName,
|
||||
@RequestParam(value = "expiryDateStart", required = false) String expiryDateStart,
|
||||
@RequestParam(value = "expiryDateEnd", required = false) String expiryDateEnd,
|
||||
@RequestParam(value = "purchaseDateStart", required = false) String purchaseDateStart,
|
||||
@RequestParam(value = "purchaseDateEnd", required = false) String purchaseDateEnd,
|
||||
@RequestParam(value = "excludeZeroInventoryQuantity", required = false) Boolean excludeZeroInventoryQuantity,
|
||||
@RequestParam(value = "orderByExpiryDate", required = false) Boolean orderByExpiryDate)
|
||||
{
|
||||
@@ -82,8 +84,11 @@ public class ReservationMaterialInventoryApi extends BaseController {
|
||||
ReservationMaterialInventoryDO materialInventoryDO = materialInventoryAssembler.toDO(materialInventoryDTO);
|
||||
materialInventoryDO.setExpiryDateStr(materialInventoryDTO.getExpiryDate());
|
||||
materialInventoryDO.setProductionDateStr(materialInventoryDTO.getProductionDate());
|
||||
materialInventoryDO.setPurchaseDateStr(materialInventoryDTO.getPurchaseDate());
|
||||
materialInventoryDO.setExpiryDateStart(expiryDateStart);
|
||||
materialInventoryDO.setExpiryDateEnd(expiryDateEnd);
|
||||
materialInventoryDO.setPurchaseDateStart(purchaseDateStart);
|
||||
materialInventoryDO.setPurchaseDateEnd(purchaseDateEnd);
|
||||
// 导出场景:queryRule=wlExpiry + orderByExpiryDate=true 时 SQL 按到期日倒序分组
|
||||
// (日期近的在前、空值最后、0库存靠后、同到期日按更新时间倒序)
|
||||
materialInventoryDO.setOrderByExpiryDate(orderByExpiryDate);
|
||||
|
||||
+13
-1
@@ -56,6 +56,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
<result property="productionDate" column="production_date" />
|
||||
<result property="expiryDate" column="expiry_date" />
|
||||
<result property="inventoryDate" column="inventory_date" />
|
||||
<result property="purchaseDate" column="purchase_date" />
|
||||
<result property="batchRefNo" column="batch_ref_no" />
|
||||
<result property="sheetRefNo" column="sheet_ref_no" />
|
||||
<result property="boxPalletNo" column="box_pallet_no" />
|
||||
@@ -138,7 +139,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
IFNULL (sum(a.GROSS_WEIGHT), 0) GROSS_WEIGHT,
|
||||
IFNULL (sum(a.VOLUME), 0) VOLUME,
|
||||
a.ext_attr_1, a.ext_attr_2, a.ext_attr_3, a.ext_attr_4,
|
||||
a.production_date, a.expiry_date, a.inventory_date,
|
||||
a.production_date, a.expiry_date, a.inventory_date, a.purchase_date,
|
||||
a.BATCH_REF_NO, a.SHEET_REF_NO, a.BOX_PALLET_NO,nvl(a.unit_name,b.unit_name) as unit_name,
|
||||
a.bar_code as inv_bar_code,
|
||||
a.in_order_number,a.lot_number
|
||||
@@ -280,6 +281,15 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
<if test="expiryDateEnd != null and expiryDateEnd != ''">
|
||||
and a.expiry_date <![CDATA[ < ]]> DATEADD(DAY, 1, #{expiryDateEnd})
|
||||
</if>
|
||||
<if test="purchaseDateStr != null and purchaseDateStr != ''">
|
||||
AND TO_CHAR(a.purchase_date, 'yyyy-MM-dd') = #{purchaseDateStr}
|
||||
</if>
|
||||
<if test="purchaseDateStart != null and purchaseDateStart != ''">
|
||||
and a.purchase_date >= #{purchaseDateStart}
|
||||
</if>
|
||||
<if test="purchaseDateEnd != null and purchaseDateEnd != ''">
|
||||
and a.purchase_date <![CDATA[ < ]]> DATEADD(DAY, 1, #{purchaseDateEnd})
|
||||
</if>
|
||||
</sql>
|
||||
|
||||
<!-- 导出排除库存为0:所有维度查询(all/hz/wl/kw/wlkw/wlExpiry)的库存数量均为SUM聚合值,
|
||||
@@ -367,6 +377,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
MAX(a.unit_name) AS unit_name,
|
||||
MAX(a.production_date) AS production_date,
|
||||
MAX(a.inventory_date) AS inventory_date,
|
||||
MAX(a.purchase_date) AS purchase_date,
|
||||
MAX(a.batch_ref_no) AS batch_ref_no, MAX(a.sheet_ref_no) AS sheet_ref_no, MAX(a.box_pallet_no) AS box_pallet_no,
|
||||
MAX(a.bar_code) AS inv_bar_code,
|
||||
MAX(a.in_order_number) AS in_order_number, MAX(a.lot_number) AS lot_number,
|
||||
@@ -461,6 +472,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
<result property="productionDate" column="production_date" />
|
||||
<result property="expiryDate" column="expiry_date" />
|
||||
<result property="inventoryDate" column="inventory_date" />
|
||||
<result property="purchaseDate" column="purchase_date" />
|
||||
<result property="extAttr3" column="ext_attr_3" />
|
||||
<result property="extAttr4" column="ext_attr_4" />
|
||||
<result property="remark" column="remark" />
|
||||
|
||||
+6
@@ -210,6 +210,12 @@ public class MaterialInventory extends BaseVOEntity {
|
||||
@Excel(name = "存货日期", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
|
||||
private Date inventoryDate;
|
||||
|
||||
@ApiModelProperty("进货日期")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
|
||||
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
@Excel(name = "进货日期", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
|
||||
private Date purchaseDate;
|
||||
|
||||
@ApiModelProperty("ExtAttr3")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
|
||||
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
|
||||
+1
@@ -874,6 +874,7 @@ public class MaterialInventoryImpl extends ServiceImpl<MaterialInventoryMapper,
|
||||
materialInventory.setExtAttr4(materialInventoryParamDO.getExtAttr4());
|
||||
materialInventory.setExpiryDate(materialInventoryParamDO.getExpiryDate());
|
||||
materialInventory.setInventoryDate(materialInventoryParamDO.getInventoryDate());
|
||||
materialInventory.setPurchaseDate(materialInventoryParamDO.getPurchaseDate());
|
||||
materialInventory.setBatchNumber(materialInventoryParamDO.getBatchNumber());
|
||||
materialInventory.setUnit(materialBaseInfo.getUnitCode());
|
||||
materialInventory.setUnitName(materialBaseInfo.getUnitName());
|
||||
|
||||
+6
@@ -194,6 +194,12 @@ public class MaterialInventoryPO extends MaterialBasePO {
|
||||
@Excel(name = "存货日期", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
|
||||
private Date inventoryDate;
|
||||
|
||||
@ApiModelProperty("进货日期")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
|
||||
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
@Excel(name = "进货日期", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
|
||||
private Date purchaseDate;
|
||||
|
||||
@ApiModelProperty("ExtAttr3")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
|
||||
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
|
||||
+14
@@ -218,6 +218,12 @@ public class MaterialInventoryDO extends MaterialBaseDO {
|
||||
@Excel(name = "存货日期", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
|
||||
private Date inventoryDate;
|
||||
|
||||
@ApiModelProperty("进货日期")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
|
||||
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
@Excel(name = "进货日期", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
|
||||
private Date purchaseDate;
|
||||
|
||||
@ApiModelProperty("ExtAttr3")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
|
||||
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
@@ -253,6 +259,7 @@ public class MaterialInventoryDO extends MaterialBaseDO {
|
||||
private String expiryDateStr;
|
||||
private String productionDateStr;
|
||||
private String updateTimeStr;
|
||||
private String purchaseDateStr;
|
||||
|
||||
private String expiryDateStart;
|
||||
private String expiryDateEnd;
|
||||
@@ -263,6 +270,13 @@ public class MaterialInventoryDO extends MaterialBaseDO {
|
||||
private String updateTimeStart;
|
||||
private String updateTimeEnd;
|
||||
|
||||
private String purchaseDateStart;
|
||||
private String purchaseDateEnd;
|
||||
|
||||
/** 入库日期(库存行创建时间)区间查询 */
|
||||
private String createTimeStart;
|
||||
private String createTimeEnd;
|
||||
|
||||
@ApiModelProperty("库存分配匹配:箱号/卡板号 token 列表(明细多值拆分后,OR 匹配;空则不参与匹配)")
|
||||
private List<String> boxPalletNoList;
|
||||
|
||||
|
||||
+2
@@ -88,6 +88,8 @@ public class MaterialInventoryParamDO extends MaterialBaseDO {
|
||||
private Date expiryDate;
|
||||
//库存日期
|
||||
private Date inventoryDate;
|
||||
//进货日期
|
||||
private Date purchaseDate;
|
||||
//扩展字段3
|
||||
private Date extAttr3;
|
||||
//扩展字段4
|
||||
|
||||
+5
@@ -286,6 +286,11 @@ public class ReceiptMaterialDetail extends BaseVOEntity {
|
||||
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
|
||||
private Date inventoryDate;
|
||||
|
||||
@ApiModelProperty("进货日期")
|
||||
@Excel(name = "进货日期", width = 30, dateFormat = "yyyy-MM-dd")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
|
||||
private Date purchaseDate;
|
||||
|
||||
@ApiModelProperty("扩展属性1")
|
||||
@Excel(name = "扩展属性1")
|
||||
@TableField("ext_attr_1")
|
||||
|
||||
+18
@@ -770,6 +770,15 @@ public class ReceiptMaterialDetailImpl extends ServiceImpl<ReceiptMaterialDetail
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
receiptMaterialDetailDO.setInventoryDate(date);
|
||||
} else if ("进货日期".equals(batchLabels)) {
|
||||
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
|
||||
Date date = null;
|
||||
try {
|
||||
date = sdf.parse(attributeValue);
|
||||
} catch (ParseException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
receiptMaterialDetailDO.setPurchaseDate(date);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1274,6 +1283,15 @@ public class ReceiptMaterialDetailImpl extends ServiceImpl<ReceiptMaterialDetail
|
||||
log.warn("库存日期格式转换失败,物料:{},原始值:{}", receiptMaterialDetailDO.getMaterialName(), attributeValue);
|
||||
}
|
||||
break;
|
||||
case "进货日期":
|
||||
try {
|
||||
if (attributeValue.matches("\\d{4}-\\d{2}-\\d{2}.*")) {
|
||||
receiptMaterialDetailDO.setPurchaseDate(DateUtils.parseDate(attributeValue));
|
||||
}
|
||||
} catch (Exception e) {
|
||||
log.warn("进货日期格式转换失败,物料:{},原始值:{}", receiptMaterialDetailDO.getMaterialName(), attributeValue);
|
||||
}
|
||||
break;
|
||||
case "总净重":
|
||||
case "净重(KG)":
|
||||
case "净重":
|
||||
|
||||
+5
@@ -316,6 +316,11 @@ public class ReceiptMaterialDetailPO extends BaseVOEntity {
|
||||
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
|
||||
private Date inventoryDate;
|
||||
|
||||
@ApiModelProperty("进货日期")
|
||||
@Excel(name = "进货日期", width = 30, dateFormat = "yyyy-MM-dd")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
|
||||
private Date purchaseDate;
|
||||
|
||||
@ApiModelProperty("扩展属性1")
|
||||
@Excel(name = "扩展属性1")
|
||||
private String extAttr1;
|
||||
|
||||
+5
@@ -300,6 +300,11 @@ public class ReceiptMaterialDetailDO extends BaseVOEntity {
|
||||
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
|
||||
private Date inventoryDate;
|
||||
|
||||
@ApiModelProperty("进货日期")
|
||||
@Excel(name = "进货日期", width = 30, dateFormat = "yyyy-MM-dd")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
|
||||
private Date purchaseDate;
|
||||
|
||||
@ApiModelProperty("扩展属性1")
|
||||
@Excel(name = "扩展属性1")
|
||||
private String extAttr1;
|
||||
|
||||
+7
@@ -301,6 +301,13 @@ public class ShelfMaterialDetail extends BaseVOEntity {
|
||||
@TableField("inventory_date")
|
||||
private Date inventoryDate;
|
||||
|
||||
@ApiModelProperty("进货日期")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
|
||||
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
@Excel(name = "进货日期", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
|
||||
@TableField("purchase_date")
|
||||
private Date purchaseDate;
|
||||
|
||||
@ApiModelProperty("ExtAttr3")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
|
||||
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
|
||||
+6
@@ -313,6 +313,12 @@ public class ShelfMaterialDetailDO extends BaseVOEntity {
|
||||
@Excel(name = "存货日期", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
|
||||
private Date inventoryDate;
|
||||
|
||||
@ApiModelProperty("进货日期")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
|
||||
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
@Excel(name = "进货日期", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
|
||||
private Date purchaseDate;
|
||||
|
||||
@ApiModelProperty("ExtAttr3")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
|
||||
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
|
||||
+9
-3
@@ -1493,6 +1493,7 @@ public class StockReceiptOrderDomainService {
|
||||
shelfMaterialDetailDO.setTotalGrossWeight(receiptMaterialDetailDO.getTotalGrossWeight());
|
||||
shelfMaterialDetailDO.setExpiryDate(receiptMaterialDetailDO.getExpiryDate());
|
||||
shelfMaterialDetailDO.setInventoryDate(receiptMaterialDetailDO.getInventoryDate());
|
||||
shelfMaterialDetailDO.setPurchaseDate(receiptMaterialDetailDO.getPurchaseDate());
|
||||
shelfMaterialDetailDO.setBatchRefNo(receiptMaterialDetailDO.getBatchRefNo());
|
||||
shelfMaterialDetailDO.setSheetRefNo(receiptMaterialDetailDO.getSheetRefNo());
|
||||
shelfMaterialDetailDO.setBoxPalletNo(receiptMaterialDetailDO.getBoxPalletNo());
|
||||
@@ -1533,6 +1534,7 @@ public class StockReceiptOrderDomainService {
|
||||
shelfMaterialDetailDOChildren.setProductionDate(receiptMaterialDetailDOChildren.getProductionDate());
|
||||
shelfMaterialDetailDOChildren.setExpiryDate(receiptMaterialDetailDOChildren.getExpiryDate());
|
||||
shelfMaterialDetailDOChildren.setInventoryDate(receiptMaterialDetailDOChildren.getInventoryDate());
|
||||
shelfMaterialDetailDOChildren.setPurchaseDate(receiptMaterialDetailDOChildren.getPurchaseDate());
|
||||
shelfMaterialDetailDOChildren.setBatchRefNo(receiptMaterialDetailDOChildren.getBatchRefNo());
|
||||
shelfMaterialDetailDOChildren.setSheetRefNo(receiptMaterialDetailDOChildren.getSheetRefNo());
|
||||
shelfMaterialDetailDOChildren.setBoxPalletNo(receiptMaterialDetailDOChildren.getBoxPalletNo());
|
||||
@@ -1634,10 +1636,11 @@ public class StockReceiptOrderDomainService {
|
||||
shelfMaterialDetailDO.setTotalVolume(receiptMaterialDetailPO.getTotalVolume());
|
||||
shelfMaterialDetailDO.setTotalNetWeight(receiptMaterialDetailPO.getTotalNetWeight());
|
||||
shelfMaterialDetailDO.setTotalGrossWeight(receiptMaterialDetailPO.getTotalGrossWeight());
|
||||
// 传递生产日期、过期日期、存货日期、Batch Ref NO's、Sheet Ref NO's、箱号/卡板号、扩展属性1-4
|
||||
// 传递生产日期、过期日期、存货日期、进货日期、Batch Ref NO's、Sheet Ref NO's、箱号/卡板号、扩展属性1-4
|
||||
shelfMaterialDetailDO.setProductionDate(receiptMaterialDetailPO.getProductionDate());
|
||||
shelfMaterialDetailDO.setExpiryDate(receiptMaterialDetailPO.getExpiryDate());
|
||||
shelfMaterialDetailDO.setInventoryDate(receiptMaterialDetailPO.getInventoryDate());
|
||||
shelfMaterialDetailDO.setPurchaseDate(receiptMaterialDetailPO.getPurchaseDate());
|
||||
shelfMaterialDetailDO.setBatchRefNo(receiptMaterialDetailPO.getBatchRefNo());
|
||||
shelfMaterialDetailDO.setSheetRefNo(receiptMaterialDetailPO.getSheetRefNo());
|
||||
shelfMaterialDetailDO.setBoxPalletNo(receiptMaterialDetailPO.getBoxPalletNo());
|
||||
@@ -1686,6 +1689,7 @@ public class StockReceiptOrderDomainService {
|
||||
shelfMaterialDetailDOChildren.setProductionDate(receiptMaterialDetailPOChildren.getProductionDate());
|
||||
shelfMaterialDetailDOChildren.setExpiryDate(receiptMaterialDetailPOChildren.getExpiryDate());
|
||||
shelfMaterialDetailDOChildren.setInventoryDate(receiptMaterialDetailPOChildren.getInventoryDate());
|
||||
shelfMaterialDetailDOChildren.setPurchaseDate(receiptMaterialDetailPOChildren.getPurchaseDate());
|
||||
shelfMaterialDetailDOChildren.setBatchRefNo(receiptMaterialDetailPOChildren.getBatchRefNo());
|
||||
shelfMaterialDetailDOChildren.setSheetRefNo(receiptMaterialDetailPOChildren.getSheetRefNo());
|
||||
shelfMaterialDetailDOChildren.setBoxPalletNo(receiptMaterialDetailPOChildren.getBoxPalletNo());
|
||||
@@ -1767,10 +1771,11 @@ public class StockReceiptOrderDomainService {
|
||||
shelfMaterialDetailDO.setQuantity(receiptMaterialDetailPO.getReceiptQuantity());
|
||||
shelfMaterialDetailDO.setInUniqueId(receiptMaterialDetailPO.getInUniqueId());
|
||||
shelfMaterialDetailDO.setReceiptUniqueId(receiptMaterialDetailPO.getUniqueId());
|
||||
// 传递生产日期、过期日期、存货日期、Batch Ref NO's、Sheet Ref NO's、箱号/卡板号、扩展属性1-4
|
||||
// 传递生产日期、过期日期、存货日期、进货日期、Batch Ref NO's、Sheet Ref NO's、箱号/卡板号、扩展属性1-4
|
||||
shelfMaterialDetailDO.setProductionDate(receiptMaterialDetailPO.getProductionDate());
|
||||
shelfMaterialDetailDO.setExpiryDate(receiptMaterialDetailPO.getExpiryDate());
|
||||
shelfMaterialDetailDO.setInventoryDate(receiptMaterialDetailPO.getInventoryDate());
|
||||
shelfMaterialDetailDO.setPurchaseDate(receiptMaterialDetailPO.getPurchaseDate());
|
||||
shelfMaterialDetailDO.setBatchRefNo(receiptMaterialDetailPO.getBatchRefNo());
|
||||
shelfMaterialDetailDO.setSheetRefNo(receiptMaterialDetailPO.getSheetRefNo());
|
||||
shelfMaterialDetailDO.setBoxPalletNo(receiptMaterialDetailPO.getBoxPalletNo());
|
||||
@@ -1809,10 +1814,11 @@ public class StockReceiptOrderDomainService {
|
||||
shelfMaterialDetailDOChildren.setInUniqueId(receiptMaterialDetailPO.getInUniqueId());
|
||||
// 子项使用自身的 uniqueId 作为 receiptUniqueId,以便正确关联 material_more_detail 中的扩展属性
|
||||
shelfMaterialDetailDOChildren.setReceiptUniqueId(receiptMaterialDetailDOChildren.getUniqueId());
|
||||
// 传递生产日期、过期日期、存货日期、Batch Ref NO's、Sheet Ref NO's、箱号/卡板号、扩展属性1-4
|
||||
// 传递生产日期、过期日期、存货日期、进货日期、Batch Ref NO's、Sheet Ref NO's、箱号/卡板号、扩展属性1-4
|
||||
shelfMaterialDetailDOChildren.setProductionDate(receiptMaterialDetailDOChildren.getProductionDate());
|
||||
shelfMaterialDetailDOChildren.setExpiryDate(receiptMaterialDetailDOChildren.getExpiryDate());
|
||||
shelfMaterialDetailDOChildren.setInventoryDate(receiptMaterialDetailDOChildren.getInventoryDate());
|
||||
shelfMaterialDetailDOChildren.setPurchaseDate(receiptMaterialDetailDOChildren.getPurchaseDate());
|
||||
shelfMaterialDetailDOChildren.setBatchRefNo(receiptMaterialDetailDOChildren.getBatchRefNo());
|
||||
shelfMaterialDetailDOChildren.setSheetRefNo(receiptMaterialDetailDOChildren.getSheetRefNo());
|
||||
shelfMaterialDetailDOChildren.setBoxPalletNo(receiptMaterialDetailDOChildren.getBoxPalletNo());
|
||||
|
||||
+5
@@ -1262,6 +1262,7 @@ public class StockShelfOrderDomainService {
|
||||
inventoryParamDO.setInventoryDate(shelfMaterialDetail.getInventoryDate());
|
||||
inventoryParamDO.setExpiryDate(shelfMaterialDetail.getExpiryDate());
|
||||
inventoryParamDO.setProductionDate(shelfMaterialDetail.getProductionDate());
|
||||
inventoryParamDO.setPurchaseDate(shelfMaterialDetail.getPurchaseDate());
|
||||
inventoryParamDO.setBoxPalletNo(shelfMaterialDetail.getBoxPalletNo());
|
||||
inventoryParamDO.setSheetRefNo(shelfMaterialDetail.getSheetRefNo());
|
||||
inventoryParamDO.setBatchRefNo(shelfMaterialDetail.getBatchRefNo());
|
||||
@@ -1348,6 +1349,7 @@ public class StockShelfOrderDomainService {
|
||||
BeanUtils.copyProperties(inventoryParamDO, materialInventoryOmsParamDO);
|
||||
materialInventoryOmsParamDO.setProductionDate(materialInventoryPO.getProductionDate());
|
||||
materialInventoryOmsParamDO.setExpiryDate(materialInventoryPO.getExpiryDate());
|
||||
materialInventoryOmsParamDO.setPurchaseDate(materialInventoryPO.getPurchaseDate());
|
||||
materialInventoryOmsParamDO.setMaterialBaseInfoId(materialInventoryPO.getMaterialBaseInfoId());
|
||||
materialInventoryOmsParamDO.setWarehouseId(materialInventoryPO.getWarehouseId());
|
||||
materialInventoryOmsParamDO.setLotNumber(materialInventoryPO.getLotNumber());
|
||||
@@ -1510,6 +1512,9 @@ public class StockShelfOrderDomainService {
|
||||
case "production_date":
|
||||
param.setProductionDate(shelfMaterialDetail.getProductionDate());
|
||||
break;
|
||||
case "purchase_date":
|
||||
param.setPurchaseDate(shelfMaterialDetail.getPurchaseDate());
|
||||
break;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
|
||||
+10
@@ -190,9 +190,12 @@ public class MaterialInventoryDTO extends MaterialBaseDTO {
|
||||
private Boolean excludeZeroInventoryQuantity;
|
||||
private String expiryDate;
|
||||
private String productionDate;
|
||||
/** 进货日期(yyyy-MM-dd,单日精确查询) */
|
||||
private String purchaseDate;
|
||||
private String expiryDateStr;
|
||||
private String productionDateStr;
|
||||
private String updateTimeStr;
|
||||
private String purchaseDateStr;
|
||||
|
||||
private String expiryDateStart;
|
||||
private String expiryDateEnd;
|
||||
@@ -203,4 +206,11 @@ public class MaterialInventoryDTO extends MaterialBaseDTO {
|
||||
private String updateTimeStart;
|
||||
private String updateTimeEnd;
|
||||
|
||||
private String purchaseDateStart;
|
||||
private String purchaseDateEnd;
|
||||
|
||||
/** 入库日期(库存行创建时间)区间查询 */
|
||||
private String createTimeStart;
|
||||
private String createTimeEnd;
|
||||
|
||||
}
|
||||
+6
@@ -311,6 +311,12 @@ public class ShelfMaterialDetailDTO extends BaseVOEntity {
|
||||
@Excel(name = "存货日期", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
|
||||
private Date inventoryDate;
|
||||
|
||||
@ApiModelProperty("进货日期")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
|
||||
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
@Excel(name = "进货日期", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
|
||||
private Date purchaseDate;
|
||||
|
||||
@ApiModelProperty("ExtAttr3")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
|
||||
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
|
||||
+6
-1
@@ -60,6 +60,8 @@ public class MaterialInventoryApi extends BaseController {
|
||||
@RequestParam(value = "excludeZeroInventoryQuantity", required = false) Boolean excludeZeroInventoryQuantity,
|
||||
@RequestParam(value = "expiryDateStart", required = false) String expiryDateStart,
|
||||
@RequestParam(value = "expiryDateEnd", required = false) String expiryDateEnd,
|
||||
@RequestParam(value = "purchaseDateStart", required = false) String purchaseDateStart,
|
||||
@RequestParam(value = "purchaseDateEnd", required = false) String purchaseDateEnd,
|
||||
@RequestParam(value = "orderByExpiryDate", required = false) Boolean orderByExpiryDate)
|
||||
{
|
||||
if (Boolean.TRUE.equals(excludeZeroInventoryQuantity)) {
|
||||
@@ -91,8 +93,11 @@ public class MaterialInventoryApi extends BaseController {
|
||||
MaterialInventoryDO materialInventoryDO = materialInventoryAssembler.toDO(materialInventoryDTO);
|
||||
materialInventoryDO.setExpiryDateStr(materialInventoryDTO.getExpiryDate());
|
||||
materialInventoryDO.setProductionDateStr(materialInventoryDTO.getProductionDate());
|
||||
materialInventoryDO.setPurchaseDateStr(materialInventoryDTO.getPurchaseDate());
|
||||
materialInventoryDO.setExpiryDateStart(expiryDateStart);
|
||||
materialInventoryDO.setExpiryDateEnd(expiryDateEnd);
|
||||
materialInventoryDO.setPurchaseDateStart(purchaseDateStart);
|
||||
materialInventoryDO.setPurchaseDateEnd(purchaseDateEnd);
|
||||
// 导出场景:queryRule=wlExpiry + orderByExpiryDate=true 时 SQL 按到期日倒序分组(与 OMS 库存查询导出一致)
|
||||
materialInventoryDO.setOrderByExpiryDate(orderByExpiryDate);
|
||||
Date updateTime = materialInventoryDTO.getUpdateTime();
|
||||
@@ -167,7 +172,7 @@ public class MaterialInventoryApi extends BaseController {
|
||||
// materialDetailId 是新接口专用参数(出库单明细ID),库存 DTO 的同名字段语义是「上架单明细ID」,
|
||||
// 泄入原查询会生成错误的 a.material_detail_id 条件导致查空,进原查询前显式清除
|
||||
materialInventoryDTO.setMaterialDetailId(null);
|
||||
return list(materialInventoryDTO, customerName, excludeZeroInventoryQuantity, expiryDateStart, expiryDateEnd, orderByExpiryDate);
|
||||
return list(materialInventoryDTO, customerName, excludeZeroInventoryQuantity, expiryDateStart, expiryDateEnd, null, null, orderByExpiryDate);
|
||||
}
|
||||
|
||||
@ApiOperation("查询物料库存列表不分页;queryRule=hz 时按货主+物料分组(同一物料在不同货主各占一行)")
|
||||
|
||||
@@ -56,6 +56,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
<result property="productionDate" column="production_date" />
|
||||
<result property="expiryDate" column="expiry_date" />
|
||||
<result property="inventoryDate" column="inventory_date" />
|
||||
<result property="purchaseDate" column="purchase_date" />
|
||||
<result property="batchRefNo" column="batch_ref_no" />
|
||||
<result property="sheetRefNo" column="sheet_ref_no" />
|
||||
<result property="boxPalletNo" column="box_pallet_no" />
|
||||
@@ -84,7 +85,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
IFNULL (sum(a.GROSS_WEIGHT), 0) GROSS_WEIGHT,
|
||||
IFNULL (sum(a.VOLUME), 0) VOLUME,
|
||||
a.ext_attr_1, a.ext_attr_2, a.ext_attr_3, a.ext_attr_4,
|
||||
a.production_date, a.expiry_date, a.inventory_date,
|
||||
a.production_date, a.expiry_date, a.inventory_date, a.purchase_date,
|
||||
a.BATCH_REF_NO, a.SHEET_REF_NO, a.BOX_PALLET_NO,nvl(a.unit_name,b.unit_name) as unit_name,
|
||||
a.bar_code as inv_bar_code,
|
||||
a.in_order_number,a.lot_number,
|
||||
@@ -108,7 +109,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
IFNULL (sum(a.GROSS_WEIGHT), 0) GROSS_WEIGHT,
|
||||
IFNULL (sum(a.VOLUME), 0) VOLUME,
|
||||
a.ext_attr_1, a.ext_attr_2, a.ext_attr_3, a.ext_attr_4,
|
||||
a.production_date, a.expiry_date, a.inventory_date,
|
||||
a.production_date, a.expiry_date, a.inventory_date, a.purchase_date,
|
||||
a.BATCH_REF_NO, a.SHEET_REF_NO, a.BOX_PALLET_NO,nvl(a.unit_name,b.unit_name) as unit_name,
|
||||
a.bar_code as inv_bar_code,
|
||||
a.in_order_number,a.lot_number,
|
||||
@@ -263,6 +264,21 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
<if test="expiryDateEnd != null and expiryDateEnd != ''">
|
||||
and a.expiry_date <![CDATA[ < ]]> DATEADD(DAY, 1, #{expiryDateEnd})
|
||||
</if>
|
||||
<if test="purchaseDateStr != null and purchaseDateStr != ''">
|
||||
AND TO_CHAR(a.purchase_date, 'yyyy-MM-dd') = #{purchaseDateStr}
|
||||
</if>
|
||||
<if test="purchaseDateStart != null and purchaseDateStart != ''">
|
||||
and a.purchase_date >= #{purchaseDateStart}
|
||||
</if>
|
||||
<if test="purchaseDateEnd != null and purchaseDateEnd != ''">
|
||||
and a.purchase_date <![CDATA[ < ]]> DATEADD(DAY, 1, #{purchaseDateEnd})
|
||||
</if>
|
||||
<if test="createTimeStart != null and createTimeStart != ''">
|
||||
and date_format(a.create_time,'%Y-%m-%d') >= #{createTimeStart}
|
||||
</if>
|
||||
<if test="createTimeEnd != null and createTimeEnd != ''">
|
||||
and date_format(a.create_time,'%Y-%m-%d') <= #{createTimeEnd}
|
||||
</if>
|
||||
</sql>
|
||||
|
||||
<!-- 与 selectMaterialInventoryPo1 相同条件,表别名为 mi(用于 queryListByWl 最新明细子查询) -->
|
||||
@@ -534,6 +550,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
MAX(a.unit_name) AS unit_name,
|
||||
MAX(a.production_date) AS production_date,
|
||||
MAX(a.inventory_date) AS inventory_date,
|
||||
MAX(a.purchase_date) AS purchase_date,
|
||||
MAX(a.batch_ref_no) AS batch_ref_no, MAX(a.sheet_ref_no) AS sheet_ref_no, MAX(a.box_pallet_no) AS box_pallet_no,
|
||||
MAX(a.bar_code) AS inv_bar_code,
|
||||
MAX(a.in_order_number) AS in_order_number, MAX(a.lot_number) AS lot_number,
|
||||
@@ -1195,6 +1212,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
<result property="productionDate" column="production_date" />
|
||||
<result property="expiryDate" column="expiry_date" />
|
||||
<result property="inventoryDate" column="inventory_date" />
|
||||
<result property="purchaseDate" column="purchase_date" />
|
||||
<result property="batchRefNo" column="batch_ref_no" />
|
||||
<result property="sheetRefNo" column="sheet_ref_no" />
|
||||
<result property="boxPalletNo" column="box_pallet_no" />
|
||||
@@ -1513,6 +1531,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
<if test="productionDate != null">
|
||||
AND TRUNC(a.PRODUCTION_DATE) = TRUNC(#{productionDate})
|
||||
</if>
|
||||
<if test="purchaseDate != null">
|
||||
AND TRUNC(a.purchase_date) = TRUNC(#{purchaseDate})
|
||||
</if>
|
||||
<if test="extAttr2 != null and extAttr2 != ''">
|
||||
AND a.EXT_ATTR_2 = #{extAttr2}
|
||||
</if>
|
||||
@@ -1544,6 +1565,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
<if test="productionDate == null">
|
||||
AND a.PRODUCTION_DATE is null
|
||||
</if>
|
||||
<if test="purchaseDate == null">
|
||||
AND a.purchase_date is null
|
||||
</if>
|
||||
<if test="extAttr2 == ''">
|
||||
AND a.EXT_ATTR_2 = #{extAttr2}
|
||||
</if>
|
||||
|
||||
@@ -0,0 +1,68 @@
|
||||
-- =============================================================================
|
||||
-- OMS/WMS 库存查询新增「进货日期」查询条件 —— 新增 PURCHASE_DATE 列
|
||||
-- 日期: 2026-08-31
|
||||
-- 数据库: 达梦(DM8), 兼容 Oracle 语法, 表名/字段名统一大写
|
||||
-- 模式: NGWL_TEST_WMS (mhd_wms) / NGWL_TEST_OMS (mhd_oms)
|
||||
-- 需求:
|
||||
-- OMS-库存管理-库存查询 / WMS-库存管理-库存查询 增加查询条件:
|
||||
-- 物料分类(后端已支持, 无需改表)、进货日期(本脚本, 新字段)、入库日期(复用
|
||||
-- create_time, 无需改表)。
|
||||
-- 说明:
|
||||
-- 1. 进货日期录入入口为「收货批次属性」(batch_detail 配置标签「进货日期」),
|
||||
-- 链路: 收货明细 -> 上架明细 -> WMS 物料库存 -> Feign -> OMS 预留库存。
|
||||
-- 2. 列追加在表尾(DM 不支持 AFTER 定位); 历史数据该列为空, 按进货日期查询
|
||||
-- 查不到存量库存(无来源可回填)。
|
||||
-- 3. DATE 类型与同表现有 PRODUCTION_DATE/EXPIRY_DATE/INVENTORY_DATE 保持一致。
|
||||
-- =============================================================================
|
||||
|
||||
-- WMS 收货明细
|
||||
ALTER TABLE "NGWL_TEST_WMS"."RECEIPT_MATERIAL_DETAIL" ADD COLUMN PURCHASE_DATE DATE;
|
||||
COMMENT ON COLUMN "NGWL_TEST_WMS"."RECEIPT_MATERIAL_DETAIL".PURCHASE_DATE IS '进货日期';
|
||||
|
||||
-- WMS 上架明细
|
||||
ALTER TABLE "NGWL_TEST_WMS"."SHELF_MATERIAL_DETAIL" ADD COLUMN PURCHASE_DATE DATE;
|
||||
COMMENT ON COLUMN "NGWL_TEST_WMS"."SHELF_MATERIAL_DETAIL".PURCHASE_DATE IS '进货日期';
|
||||
|
||||
-- WMS 物料库存
|
||||
ALTER TABLE "NGWL_TEST_WMS"."MATERIAL_INVENTORY" ADD COLUMN PURCHASE_DATE DATE;
|
||||
COMMENT ON COLUMN "NGWL_TEST_WMS"."MATERIAL_INVENTORY".PURCHASE_DATE IS '进货日期';
|
||||
|
||||
-- OMS 预留库存
|
||||
ALTER TABLE "NGWL_TEST_OMS"."RESERVATION_MATERIAL_INVENTORY" ADD COLUMN PURCHASE_DATE DATE;
|
||||
COMMENT ON COLUMN "NGWL_TEST_OMS"."RESERVATION_MATERIAL_INVENTORY".PURCHASE_DATE IS '进货日期';
|
||||
|
||||
-- =============================================================================
|
||||
-- 批次明细配置(可选, 数据操作): 需要按进货日期录入/分行的物料, 在其批次规则中
|
||||
-- 新增一条明细。BATCH_LABELS 必须一字不差为「进货日期」(后端 setMore() 按标签
|
||||
-- 精确匹配解析); IS_DISPLAY=1 时同时参与库存行合并键(不同进货日期分库存行)。
|
||||
--
|
||||
-- 参考现有「生产日期」配置行(格式/控件取值对齐):
|
||||
-- SELECT * FROM "NGWL_TEST_SYSTEM"."BATCH_DETAIL" WHERE BATCH_LABELS = '生产日期';
|
||||
--
|
||||
-- 配置模板(BATCH_ID 等按实际批次规则替换, 建议直接在 系统-批次管理 界面新增):
|
||||
-- INSERT INTO "NGWL_TEST_SYSTEM"."BATCH_DETAIL"
|
||||
-- (BATCH_DETAIL_ID, ORGANIZATION_ID, TOP_ORGANIZATION_ID, BATCH_ID,
|
||||
-- BATCH_LABELS, FIELD_NAME, INPUT_CONTROL, ATTRIBUTE_FORMAT, IS_DISPLAY)
|
||||
-- VALUES
|
||||
-- (<主键>, <组织ID>, <顶级组织ID>, <批次规则ID>,
|
||||
-- '进货日期', 'purchase_date', <同生产日期行>, '2', 1);
|
||||
-- -- ATTRIBUTE_FORMAT: 2-日期
|
||||
-- =============================================================================
|
||||
|
||||
-- =============================================================================
|
||||
-- 执行前检查(确认列不存在, 避免重复执行报错; DM 数据字典标识符按大写存储)
|
||||
-- SELECT OWNER, TABLE_NAME, COLUMN_NAME
|
||||
-- FROM ALL_TAB_COLUMNS
|
||||
-- WHERE COLUMN_NAME = 'PURCHASE_DATE'
|
||||
-- AND OWNER IN ('NGWL_TEST_WMS', 'NGWL_TEST_OMS')
|
||||
-- AND TABLE_NAME IN ('RECEIPT_MATERIAL_DETAIL', 'SHELF_MATERIAL_DETAIL',
|
||||
-- 'MATERIAL_INVENTORY', 'RESERVATION_MATERIAL_INVENTORY');
|
||||
--
|
||||
-- 回滚(发布前执行了本脚本需回退时)
|
||||
-- ALTER TABLE "NGWL_TEST_WMS"."RECEIPT_MATERIAL_DETAIL" DROP COLUMN PURCHASE_DATE;
|
||||
-- ALTER TABLE "NGWL_TEST_WMS"."SHELF_MATERIAL_DETAIL" DROP COLUMN PURCHASE_DATE;
|
||||
-- ALTER TABLE "NGWL_TEST_WMS"."MATERIAL_INVENTORY" DROP COLUMN PURCHASE_DATE;
|
||||
-- ALTER TABLE "NGWL_TEST_OMS"."RESERVATION_MATERIAL_INVENTORY" DROP COLUMN PURCHASE_DATE;
|
||||
--
|
||||
-- 发布顺序: 先执行本 DDL 再发布服务(实体带新字段而表无列, MyBatis-Plus insert 会报错)
|
||||
-- =============================================================================
|
||||
Reference in New Issue
Block a user