-- ============================================================ -- 1.0.214.sql -- S5-PRODUCTION-RECEIPT-MDP-PIPELINE-1 -- -- 业务目标: -- 1) 新建 S5 生产入库单标准层 mdp_std_production_receipt(只读数据中台,DOP 内部,扁平单表: -- 一行 = 一条 NbrDetail 明细)。源 NbrMaster(Type='WOI',IsActive=1) + NbrDetail(Domain+Nbr join) -- + DepartmentMaster / ItemMaster / LocationMaster。不建 stg、不建 dwd;不读/不改 S2/S3/S4;不写源表。 -- 2) 将「生产入库单」菜单(Id=1329015020005,仓储管理目录下)的 Component -- 由 placeholder 重指到真实页面 /aidop/s5/warehouse/productionReceiptList。 -- -- 安全保证: -- - DDL 仅 CREATE TABLE IF NOT EXISTS,幂等;不 DROP / TRUNCATE。 -- - 菜单仅 UPDATE 该单条 Component / Remark / UpdateTime;不改 Path/Name/Pid/Title/Type/OrderNo; -- 不 INSERT/DELETE;不动 SysTenantMenu / SysRoleMenu;不动其它菜单;不碰 S7 菜单。 -- - 不动源单据表(NbrMaster/NbrDetail 等),不碰 S2 写路径,不碰退料/委外/采购收货资产。 -- ============================================================ CREATE TABLE IF NOT EXISTS mdp_std_production_receipt ( id BIGINT AUTO_INCREMENT PRIMARY KEY, tenant_id BIGINT NOT NULL DEFAULT 0, factory_id BIGINT NULL DEFAULT 1, source_system VARCHAR(50) NOT NULL DEFAULT 'AIDOP', domain VARCHAR(80) NOT NULL COMMENT '工厂/域 NbrMaster.Domain', master_rec_id INT NULL COMMENT '源头主键 NbrMaster.RecID', detail_rec_id INT NOT NULL COMMENT '源明细主键 NbrDetail.RecID(扁平粒度唯一)', nbr VARCHAR(24) NULL COMMENT '入库单号 NbrMaster.Nbr', line SMALLINT NOT NULL DEFAULT 0 COMMENT '项次 NbrDetail.Line', receipt_date DATETIME NULL COMMENT '入库日期 NbrMaster.Date', status VARCHAR(8) NULL COMMENT '状态原值 NbrMaster.Status', status_desc VARCHAR(20) NULL COMMENT '状态中文(本批暂=raw)', remark VARCHAR(200) NULL COMMENT '备注 NbrMaster.Remark(列表显示名“入库类型”,待确认)', prod_line VARCHAR(8) NULL COMMENT '生产线 NbrDetail.ProdLine', work_ord VARCHAR(64) NULL COMMENT '工单号 NbrDetail.WorkOrd', erp_work_ord VARCHAR(60) NULL COMMENT 'ERP工单号 NbrDetail.Address', department VARCHAR(8) NULL COMMENT '部门编码 NbrMaster.Department', department_desc VARCHAR(255) NULL COMMENT '部门(编码+DepartmentMaster.Descr)', applicant_name VARCHAR(12) NULL COMMENT '申请人 NbrMaster.Name', item_num VARCHAR(24) NULL COMMENT '物料编码 NbrDetail.ItemNum', item_name VARCHAR(200) NULL COMMENT '物料名称 ItemMaster.Descr', item_spec VARCHAR(200) NULL COMMENT '物料型号/规格 ItemMaster.Descr1', um VARCHAR(8) NULL COMMENT '单位 ItemMaster.UM', location_to VARCHAR(8) NULL COMMENT '入库库位 NbrDetail.LocationTo', location_to_desc VARCHAR(255) NULL COMMENT '入库库位名 LocationMaster.descr', lot_serial VARCHAR(120) NULL COMMENT '批序号 NbrDetail.LotSerial', qty_rec DECIMAL(18,5) NULL DEFAULT 0 COMMENT '数量 NbrDetail.QtyRec(列表展示)', qty_to DECIMAL(18,5) NULL DEFAULT 0 COMMENT '入库数量候选 NbrDetail.QtyTo(保留,本批不展示)', location_from VARCHAR(8) NULL COMMENT '转出库位 NbrDetail.LocationFrom(保留,不展示)', location_from_desc VARCHAR(255) NULL COMMENT '转出库位名 LocationMaster.descr(保留,不展示)', ord_nbr VARCHAR(48) NULL COMMENT '相关单号 NbrDetail.OrdNbr', source_biz_key VARCHAR(200) NULL COMMENT 'domain:detail_rec_id', sync_batch_id VARCHAR(100) NOT NULL, sync_time DATETIME NOT NULL, create_time DATETIME DEFAULT CURRENT_TIMESTAMP, update_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, UNIQUE KEY uk_mdp_std_prod_receipt (tenant_id, domain, detail_rec_id), KEY idx_mdp_std_prod_rcpt_nbr (tenant_id, nbr), KEY idx_mdp_std_prod_rcpt_date (tenant_id, receipt_date), KEY idx_mdp_std_prod_rcpt_workord (tenant_id, work_ord), KEY idx_mdp_std_prod_rcpt_erp (tenant_id, erp_work_ord), KEY idx_mdp_std_prod_rcpt_lot (tenant_id, lot_serial), KEY idx_mdp_std_prod_rcpt_item (tenant_id, item_num), KEY idx_mdp_std_prod_rcpt_locto (tenant_id, location_to) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='S5生产入库单标准层(扁平,一行=一条明细)'; UPDATE SysMenu SET Component = '/aidop/s5/warehouse/productionReceiptList', Remark = 'S5 生产入库单(只读扁平,数据中台标准层 mdp_std_production_receipt)', UpdateTime = NOW() WHERE Id = 1329015020005;