-- 采购入库流程优化 - 数据库同步脚本
-- 执行日期: 2026-07-10
-- 说明: 双向同步数据库与 DO 类字段

-- =====================
-- 1. 到货通知行表补充字段
-- =====================

-- 添加到货数量（DO 有，数据库无）
ALTER TABLE mes_wm_arrival_notice_line
ADD COLUMN arrival_quantity DECIMAL(24,6) COMMENT '到货数量' AFTER item_id;

-- 添加合格数量（DO 有，数据库无）
ALTER TABLE mes_wm_arrival_notice_line
ADD COLUMN qualified_quantity DECIMAL(24,6) COMMENT '合格数量' AFTER arrival_quantity;

-- 添加是否需检验标志（DO 有，数据库无）
ALTER TABLE mes_wm_arrival_notice_line
ADD COLUMN iqc_check_flag BIT DEFAULT b'0' COMMENT '是否需要来料检验' AFTER qualified_quantity;

-- 添加检验单编号（DO 有，数据库无）
ALTER TABLE mes_wm_arrival_notice_line
ADD COLUMN iqc_id BIGINT COMMENT '来料检验单编号' AFTER iqc_check_flag;

-- 将 quantity 改名为合适的字段名（避免歧义，保留原字段作为备用）
-- ALTER TABLE mes_wm_arrival_notice_line CHANGE COLUMN quantity reserved_quantity DECIMAL(24,6) COMMENT '预留数量';

-- =====================
-- 2. 采购入库行表补充字段
-- =====================

-- 添加到货通知行ID（DO 有，数据库无）
ALTER TABLE mes_wm_item_receipt_line
ADD COLUMN arrival_notice_line_id BIGINT COMMENT '到货通知单行编号' AFTER receipt_id;

-- 将 quantity 改名为 received_quantity（与 DO 字段名一致）
ALTER TABLE mes_wm_item_receipt_line
CHANGE COLUMN quantity received_quantity DECIMAL(24,6) COMMENT '入库数量';

-- 添加批次编号（DO 有，数据库无）
ALTER TABLE mes_wm_item_receipt_line
ADD COLUMN batch_id BIGINT COMMENT '批次编号' AFTER received_quantity;

-- 添加批次编码（DO 有，数据库无）
ALTER TABLE mes_wm_item_receipt_line
ADD COLUMN batch_code VARCHAR(64) COMMENT '批次编码' AFTER batch_id;

-- 添加生产日期（DO 有，数据库无）
ALTER TABLE mes_wm_item_receipt_line
ADD COLUMN production_date DATETIME COMMENT '生产日期' AFTER batch_code;

-- 添加有效期（DO 有，数据库无）
ALTER TABLE mes_wm_item_receipt_line
ADD COLUMN expire_date DATETIME COMMENT '有效期' AFTER production_date;

-- 添加生产批号（DO 有，数据库无）
ALTER TABLE mes_wm_item_receipt_line
ADD COLUMN lot_number VARCHAR(64) COMMENT '生产批号' AFTER expire_date;

-- =====================
-- 3. 采购入库明细表补充字段
-- =====================

-- DO 缺少 material_stock_id 字段，但数据库已有，无需操作

-- =====================
-- 4. 采购入库主表添加索引
-- =====================

-- 添加流程实例索引（便于查询审批状态）
ALTER TABLE mes_wm_item_receipt
ADD INDEX idx_process_instance_id (process_instance_id);