-- ============================================================ -- 1.0.213.sql -- S5-PRODUCTION-RETURN-MDP-PIPELINE-1 -- -- 业务目标: -- 1) 新建 S5 生产退料单标准层 head-detail 双表(只读数据中台,DOP 内部): -- mdp_std_production_return(头) 源 NbrMaster(Type='WOD',IsActive=1,IsReturn=0) -- mdp_std_production_return_detail(明细)源 NbrDetail(Type='WOD', NbrRecID→NbrMaster.RecID) -- 不建 stg、不建 dwd;不读/不改 S3/S4;不写源表。 -- 2) 将「生产退料单」菜单(Id=1329015020004,仓储管理目录下)的 Component -- 由 placeholder 重指到真实页面 /aidop/s5/warehouse/productionReturnList。 -- -- 安全保证: -- - DDL 仅 CREATE TABLE IF NOT EXISTS,幂等;不 DROP / TRUNCATE。 -- - 菜单仅 UPDATE 该单条 Component / Remark / UpdateTime;不改 Path/Name/Pid/Title/Type/OrderNo; -- 不 INSERT/DELETE;不动 SysTenantMenu / SysRoleMenu;不动其它菜单。 -- - 不动源单据表(NbrMaster/NbrDetail 等),不动 S3/S4 资产,不碰 S2 写路径。 -- ============================================================ CREATE TABLE IF NOT EXISTS mdp_std_production_return ( 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', rec_id INT NOT NULL COMMENT '源头主键 NbrMaster.RecID', nbr VARCHAR(24) NULL COMMENT '退料单号 NbrMaster.Nbr', return_date DATETIME NULL COMMENT '退料日期 NbrMaster.Date', status VARCHAR(8) NULL COMMENT '状态原值 NbrMaster.Status', status_desc VARCHAR(20) NULL COMMENT '状态中文(C→关闭)', work_ord VARCHAR(64) NULL COMMENT 'SAP单号/工单号 NbrMaster.WorkOrd', department VARCHAR(8) NULL COMMENT '部门编码 NbrMaster.Department', department_desc VARCHAR(255) NULL COMMENT '部门(编码+DepartmentMaster.Descr)', qty_ord DECIMAL(18,5) NULL DEFAULT 0 COMMENT '数量 NbrMaster.QtyOrd(默认隐藏)', prod_line VARCHAR(8) NULL COMMENT '生产线 NbrMaster.ProdLine', applicant_name VARCHAR(12) NULL COMMENT '申请人 NbrMaster.Name', return_user VARCHAR(255) NULL COMMENT '退料人(本批取 NbrMaster.User1)', user1 TEXT NULL COMMENT '原始 NbrMaster.User1', user2 TEXT NULL COMMENT '原始 NbrMaster.User2', remark VARCHAR(200) NULL COMMENT '备注 NbrMaster.Remark', create_user VARCHAR(24) NULL COMMENT '创建用户 NbrMaster.CreateUser', source_create_time DATETIME NULL COMMENT '源创建时间 NbrMaster.CreateTime', trans_type VARCHAR(24) NULL COMMENT '事务类型 NbrMaster.TransType', trans_type_text VARCHAR(50) NULL COMMENT '事务类型文案(旧系统恒空)', eff_date DATETIME NULL COMMENT '生效日期 NbrMaster.EffDate', ufld1 VARCHAR(50) NULL COMMENT '用户字段1 NbrMaster.Ufld1', source_biz_key VARCHAR(200) NULL COMMENT 'domain: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_rtn (tenant_id, domain, rec_id), KEY idx_mdp_std_prod_rtn_nbr (tenant_id, nbr), KEY idx_mdp_std_prod_rtn_date (tenant_id, return_date), KEY idx_mdp_std_prod_rtn_status (tenant_id, status), KEY idx_mdp_std_prod_rtn_workord (tenant_id, work_ord), KEY idx_mdp_std_prod_rtn_prodline (tenant_id, prod_line), KEY idx_mdp_std_prod_rtn_dept (tenant_id, department) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='S5生产退料单头标准层'; CREATE TABLE IF NOT EXISTS mdp_std_production_return_detail ( id BIGINT AUTO_INCREMENT PRIMARY KEY, tenant_id BIGINT NOT NULL DEFAULT 0, std_head_id BIGINT NULL COMMENT '回填头 mdp_std_production_return.id', domain VARCHAR(80) NOT NULL COMMENT '工厂/域', nbr_rec_id INT NOT NULL COMMENT '关联头 NbrDetail.NbrRecID→NbrMaster.RecID', rec_id INT NULL COMMENT '源明细主键 NbrDetail.RecID', line SMALLINT NOT NULL DEFAULT 0 COMMENT '项次 NbrDetail.Line', 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 '单位 NbrDetail.UM', qty_to DECIMAL(18,5) NULL DEFAULT 0 COMMENT '退料数量 NbrDetail.QtyTo', qty_rec DECIMAL(18,5) NULL DEFAULT 0 COMMENT '已退数 NbrDetail.QtyRec', location_from VARCHAR(8) NULL COMMENT '转出库位 NbrDetail.LocationFrom', location_from_desc VARCHAR(255) NULL COMMENT '转出库位名 LocationMaster.descr', 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', status VARCHAR(8) NULL COMMENT '状态原值 NbrDetail.Status', status_desc VARCHAR(20) NULL COMMENT '状态中文(C→关闭)', remark VARCHAR(500) NULL COMMENT '备注 NbrDetail.Remark', work_ord VARCHAR(64) NULL COMMENT '工单 NbrDetail.WorkOrd', source_biz_key VARCHAR(200) NULL COMMENT 'domain:nbr_rec_id:line', 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_rtn_dtl (tenant_id, domain, nbr_rec_id, line), KEY idx_mdp_std_prod_rtn_dtl_head (tenant_id, std_head_id), KEY idx_mdp_std_prod_rtn_dtl_item (tenant_id, item_num), KEY idx_mdp_std_prod_rtn_dtl_locto (tenant_id, location_to), KEY idx_mdp_std_prod_rtn_dtl_lot (tenant_id, lot_serial) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='S5生产退料单明细标准层'; UPDATE SysMenu SET Component = '/aidop/s5/warehouse/productionReturnList', Remark = 'S5 生产退料单(只读 head-detail,数据中台标准层 mdp_std_production_return)', UpdateTime = NOW() WHERE Id = 1329015020004;