namespace Admin.NET.Plugin.AiDOP.DataPlatform.Schema;
///
/// 中立层表(mdp_std_* / mdp_stg_* / dwd_*)DDL 唯一来源。
/// 服务通过 + 增量对齐;禁止在 *MdpSync* 服务内再写中立 CREATE。
///
///
/// 自 *MdpSync* 服务原文搬入;同表多处时保留列更多的一份(本轮无冲突合并)。
/// 已知必含列:mdp_std_work_order_schedule.approved_flag/void_flag;mdp_std_s6_report.start_work_date/task_no/domain。
/// mdp_std_fqc_result_detail 的 j1..j50 由原服务 Enumerable.Range 展开为静态列(与运行时一致)。
/// T8BaseInboundMdpSyncService 的 StgDdl/StdDdl 为插值模板,未搬入。
///
public static class MdpSchemaDefinition
{
private static readonly Dictionary Tables = new(StringComparer.OrdinalIgnoreCase)
{
["mdp_std_fqc_result"] =
"""
CREATE TABLE IF NOT EXISTS mdp_std_fqc_result (
id BIGINT AUTO_INCREMENT PRIMARY KEY,
tenant_id BIGINT NOT NULL DEFAULT 0,
source_system VARCHAR(50) NOT NULL DEFAULT '',
bill_no VARCHAR(80) NULL,
inspect_time DATETIME NULL,
production_batch_no VARCHAR(255) NULL,
material_code VARCHAR(255) NULL,
material_name VARCHAR(255) NULL,
spec VARCHAR(255) NULL,
inspector VARCHAR(255) NULL,
inspect_qty DECIMAL(18,6) NULL,
source_bill_no VARCHAR(100) NULL,
production_order_no VARCHAR(255) NULL,
order_qty DECIMAL(18,6) NULL,
sap_work_order_no VARCHAR(64) NULL,
judgment VARCHAR(32) NULL,
qualified_qty DECIMAL(18,6) NULL,
unqualified_qty DECIMAL(18,6) NULL,
fire_no TEXT NULL,
inspect_spec_no VARCHAR(255) NULL,
inspect_spec_version VARCHAR(255) NULL,
source_row_id VARCHAR(100) NOT NULL,
source_biz_key VARCHAR(200) NULL,
sync_batch_id VARCHAR(100) NOT NULL,
sync_time DATETIME NOT NULL,
update_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
UNIQUE KEY uk_mdp_std_fqc_result (tenant_id, source_row_id),
KEY idx_mdp_std_fqc_result_bill (tenant_id, bill_no),
KEY idx_mdp_std_fqc_result_inspect (tenant_id, inspect_time)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='S7 FQC 检验单(结果)标准层'
""",
["mdp_std_fqc_result_detail"] =
"""
CREATE TABLE IF NOT EXISTS mdp_std_fqc_result_detail (
id BIGINT AUTO_INCREMENT PRIMARY KEY,
tenant_id BIGINT NOT NULL DEFAULT 0,
std_result_id BIGINT NULL,
glid VARCHAR(100) NULL,
seq_no INT NULL,
inspection_item TEXT NULL,
accept_standard TEXT NULL,
tech_requirement TEXT NULL,
sampling_plan TEXT NULL,
sample_qty VARCHAR(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL,
upper_limit VARCHAR(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL,
lower_limit VARCHAR(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL,
size_specification VARCHAR(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL,
judgment VARCHAR(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL,
non_numeric_ok BIGINT NULL,
non_numeric_ng BIGINT NULL,
remark TEXT NULL,
j1 VARCHAR(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL,
j2 VARCHAR(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL,
j3 VARCHAR(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL,
j4 VARCHAR(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL,
j5 VARCHAR(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL,
j6 VARCHAR(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL,
j7 VARCHAR(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL,
j8 VARCHAR(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL,
j9 VARCHAR(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL,
j10 VARCHAR(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL,
j11 VARCHAR(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL,
j12 VARCHAR(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL,
j13 VARCHAR(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL,
j14 VARCHAR(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL,
j15 VARCHAR(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL,
j16 VARCHAR(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL,
j17 VARCHAR(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL,
j18 VARCHAR(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL,
j19 VARCHAR(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL,
j20 VARCHAR(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL,
j21 VARCHAR(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL,
j22 VARCHAR(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL,
j23 VARCHAR(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL,
j24 VARCHAR(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL,
j25 VARCHAR(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL,
j26 VARCHAR(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL,
j27 VARCHAR(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL,
j28 VARCHAR(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL,
j29 VARCHAR(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL,
j30 VARCHAR(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL,
j31 VARCHAR(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL,
j32 VARCHAR(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL,
j33 VARCHAR(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL,
j34 VARCHAR(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL,
j35 VARCHAR(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL,
j36 VARCHAR(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL,
j37 VARCHAR(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL,
j38 VARCHAR(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL,
j39 VARCHAR(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL,
j40 VARCHAR(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL,
j41 VARCHAR(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL,
j42 VARCHAR(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL,
j43 VARCHAR(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL,
j44 VARCHAR(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL,
j45 VARCHAR(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL,
j46 VARCHAR(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL,
j47 VARCHAR(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL,
j48 VARCHAR(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL,
j49 VARCHAR(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL,
j50 VARCHAR(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL,
source_row_id VARCHAR(100) NOT NULL,
source_biz_key VARCHAR(200) NULL,
sync_batch_id VARCHAR(100) NOT NULL,
sync_time DATETIME NOT NULL,
update_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
UNIQUE KEY uk_mdp_std_fqc_result_dtl (tenant_id, source_row_id),
KEY idx_mdp_std_fqc_result_dtl_head (tenant_id, glid),
KEY idx_mdp_std_fqc_result_dtl_stdres (std_result_id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='S7 FQC 检验单明细标准层(j1-j50样本)'
""",
["mdp_std_fqc_task"] =
"""
CREATE TABLE IF NOT EXISTS mdp_std_fqc_task (
id BIGINT AUTO_INCREMENT PRIMARY KEY,
tenant_id BIGINT NOT NULL DEFAULT 0,
source_system VARCHAR(50) NOT NULL DEFAULT '',
bill_no VARCHAR(80) NULL,
production_order_no VARCHAR(255) NULL,
apply_org_id BIGINT NULL,
apply_time DATETIME NULL,
material_code VARCHAR(255) NULL,
product_name VARCHAR(255) NULL,
product_model VARCHAR(255) NULL,
production_batch_no VARCHAR(255) NULL,
order_qty DECIMAL(18,6) NULL,
qty DECIMAL(18,6) NULL,
applicant VARCHAR(50) NULL,
remark TEXT NULL,
priority VARCHAR(255) NULL,
inspect_start_time DATETIME NULL,
inspect_finish_time DATETIME NULL,
inspector VARCHAR(255) NULL,
inspect_progress VARCHAR(255) NULL,
sales_order_no VARCHAR(100) NULL,
sales_order_line VARCHAR(50) NULL,
apply_flag TINYINT NOT NULL DEFAULT 0,
domain VARCHAR(80) NULL,
source_row_id VARCHAR(100) NOT NULL,
source_biz_key VARCHAR(200) NULL,
sync_batch_id VARCHAR(100) NOT NULL,
sync_time DATETIME NOT NULL,
update_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
UNIQUE KEY uk_mdp_std_fqc_task (tenant_id, source_system, source_row_id),
KEY idx_mdp_std_fqc_task_bill (tenant_id, bill_no),
KEY idx_mdp_std_fqc_task_apply (tenant_id, apply_time)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='S7 FQC 检验任务标准层'
""",
["mdp_std_ipqc_inspection"] =
"""
CREATE TABLE IF NOT EXISTS mdp_std_ipqc_inspection (
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 '',
bill_no VARCHAR(64) NOT NULL,
product_model VARCHAR(255) NULL,
production_batch_no VARCHAR(255) NULL,
production_work_order VARCHAR(255) NULL,
result_judgement VARCHAR(32) NULL,
attachment TEXT NULL,
remark TEXT NULL,
inspector VARCHAR(255) NULL,
process_code VARCHAR(255) NULL,
process_name VARCHAR(255) NULL,
production_person VARCHAR(255) NULL,
sample_qty DECIMAL(18,6) NULL,
form_no VARCHAR(255) NULL,
version_no VARCHAR(255) NULL,
effective_date DATETIME NULL,
material_code VARCHAR(255) NULL,
material_name VARCHAR(255) NULL,
inspec_standard_version VARCHAR(255) NULL,
inspec_standard_code VARCHAR(255) NULL,
inspection_status VARCHAR(255) NULL,
source_row_id VARCHAR(100) NOT NULL,
source_biz_key VARCHAR(200) NULL,
sync_batch_id VARCHAR(100) NOT NULL,
sync_time DATETIME NOT NULL,
update_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
UNIQUE KEY uk_mdp_std_ipqc_insp (tenant_id, source_row_id),
KEY idx_mdp_std_ipqc_insp_bill (tenant_id, bill_no),
KEY idx_mdp_std_ipqc_insp_effdate (tenant_id, effective_date)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='S6过程检验单头标准层'
""",
["mdp_std_ipqc_inspection_detail"] =
"""
CREATE TABLE IF NOT EXISTS mdp_std_ipqc_inspection_detail (
id BIGINT AUTO_INCREMENT PRIMARY KEY,
tenant_id BIGINT NOT NULL DEFAULT 0,
std_head_id BIGINT NULL,
source_head_id VARCHAR(100) NULL,
inspection_item TEXT NULL,
inspection_basis TEXT NULL,
technical_standard TEXT NULL,
inspection_method TEXT NULL,
upper_limit VARCHAR(255) NULL,
lower_limit VARCHAR(255) NULL,
process_code VARCHAR(255) NULL,
process_name VARCHAR(255) NULL,
measurement_instrument VARCHAR(255) NULL,
inspector VARCHAR(255) NULL,
inspection_time DATETIME NULL,
sample_qty INT NULL,
inspection_qty DECIMAL(18,6) NULL,
unqualified_qty DECIMAL(18,6) NULL,
result_judgement VARCHAR(32) NULL,
non_numeric_ok INT NULL,
non_numeric_ng INT NULL,
remark TEXT NULL,
attachment TEXT NULL,
source_row_id VARCHAR(100) NOT NULL,
source_biz_key VARCHAR(200) NULL,
sync_batch_id VARCHAR(100) NOT NULL,
sync_time DATETIME NOT NULL,
update_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
UNIQUE KEY uk_mdp_std_ipqc_insp_dtl (tenant_id, source_row_id),
KEY idx_mdp_std_ipqc_insp_dtl_head (std_head_id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='S6过程检验单明细标准层(确定子集列;j1-j70后置)'
""",
["mdp_std_iqc_receipt_state"] =
"""
CREATE TABLE IF NOT EXISTS `mdp_std_iqc_receipt_state` (
`id` BIGINT NOT NULL,
`tenant_id` BIGINT NOT NULL,
`domain` VARCHAR(20) NOT NULL DEFAULT '',
`fbillno` VARCHAR(50) NOT NULL DEFAULT '',
`qc_nbr` VARCHAR(50) NULL,
`item_num` VARCHAR(100) NULL,
`location` VARCHAR(50) NULL,
`lot_serial` VARCHAR(100) NULL,
`rct_nbr` VARCHAR(50) NULL,
`pur_ord` VARCHAR(50) NULL,
`pur_line` INT NULL,
`potype` VARCHAR(20) NULL,
`qty_ordered` DECIMAL(18,4) NOT NULL DEFAULT 0,
`received_cum_qty` DECIMAL(18,4) NOT NULL DEFAULT 0,
`returned_cum_qty` DECIMAL(18,4) NOT NULL DEFAULT 0,
`sample_qty` DECIMAL(18,4) NOT NULL DEFAULT 0,
`receipt_pending_qty` DECIMAL(18,4) NOT NULL DEFAULT 0,
`receivable_detail_count` INT NOT NULL DEFAULT 0,
`source_system` VARCHAR(50) NULL,
`sync_batch_id` VARCHAR(50) NULL,
`sync_time` DATETIME NULL,
`create_time` DATETIME NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `uk_mdp_std_iqc_rct` (`tenant_id`,`domain`,`fbillno`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='L0 IQC收货标准层(只读贴源)'
""",
["mdp_std_operation_schedule"] =
"""
CREATE TABLE IF NOT EXISTS mdp_std_operation_schedule (
id BIGINT AUTO_INCREMENT PRIMARY KEY,
tenant_id BIGINT NOT NULL DEFAULT 0,
factory_id BIGINT NULL,
source_system VARCHAR(50) NOT NULL DEFAULT '',
work_order VARCHAR(100) NOT NULL,
op_no VARCHAR(50) NULL,
work_center VARCHAR(100) NULL,
line_code VARCHAR(100) NULL,
item_code VARCHAR(100) NULL,
plan_date DATETIME NULL,
prod_date DATETIME NULL,
start_time DATETIME NULL,
end_time DATETIME NULL,
ord_qty DECIMAL(18,6) NULL,
comp_qty DECIMAL(18,6) NULL,
run_crew DECIMAL(18,6) NULL,
employee VARCHAR(200) NULL,
source_biz_key VARCHAR(200) NULL,
sync_batch_id VARCHAR(100) NOT NULL,
sync_time DATETIME NOT NULL,
update_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
UNIQUE KEY uk_std_operation_schedule (tenant_id, source_biz_key),
KEY idx_std_operation_schedule_work_order (tenant_id, work_order),
KEY idx_std_operation_schedule_batch (sync_batch_id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='S2标准工序排程'
""",
["mdp_std_outsource_issue"] =
"""
CREATE TABLE IF NOT EXISTS mdp_std_outsource_issue (
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 '',
bill_no VARCHAR(24) NOT NULL,
issue_date DATETIME NULL,
outsource_no VARCHAR(60) NULL,
work_order VARCHAR(64) NULL,
department_code VARCHAR(20) NULL,
department_name VARCHAR(255) NULL,
issuer VARCHAR(255) NULL,
status VARCHAR(8) NULL,
status_desc VARCHAR(20) NULL,
remark VARCHAR(200) NULL,
create_user VARCHAR(24) NULL,
source_create_time DATETIME NULL,
eff_date DATETIME NULL,
source_biz_key VARCHAR(200) NULL,
sync_batch_id VARCHAR(100) NOT NULL,
sync_time DATETIME NOT NULL,
update_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
UNIQUE KEY uk_mdp_std_outsrc_issue (tenant_id, bill_no),
KEY idx_mdp_std_outsrc_issue_date (tenant_id, issue_date)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='S5委外发料单头标准层'
""",
["mdp_std_outsource_issue_detail"] =
"""
CREATE TABLE IF NOT EXISTS mdp_std_outsource_issue_detail (
id BIGINT AUTO_INCREMENT PRIMARY KEY,
tenant_id BIGINT NOT NULL DEFAULT 0,
std_head_id BIGINT NULL,
bill_no VARCHAR(24) NOT NULL,
line SMALLINT NOT NULL DEFAULT 0,
item_num VARCHAR(24) NULL,
item_name TEXT NULL,
um VARCHAR(8) NULL,
qty_ord DECIMAL(18,6) NULL DEFAULT 0,
location_from VARCHAR(8) NULL,
location_to VARCHAR(8) NULL,
status VARCHAR(8) NULL,
remark TEXT NULL,
source_biz_key VARCHAR(200) NULL,
sync_batch_id VARCHAR(100) NOT NULL,
sync_time DATETIME NOT NULL,
update_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
UNIQUE KEY uk_mdp_std_outsrc_issue_dtl (tenant_id, source_biz_key),
KEY idx_mdp_std_outsrc_issue_dtl_head (std_head_id),
KEY idx_mdp_std_outsrc_issue_dtl_bill (tenant_id, bill_no)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='S5委外发料单明细标准层'
""",
["mdp_std_production_issue"] =
"""
CREATE TABLE IF NOT EXISTS mdp_std_production_issue (
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 '',
domain VARCHAR(80) NOT NULL,
rec_id INT NOT NULL,
nbr VARCHAR(24) NULL,
issue_date DATETIME NULL,
status VARCHAR(8) NULL,
status_desc VARCHAR(20) NULL,
work_ord VARCHAR(64) NULL,
department VARCHAR(8) NULL,
department_desc VARCHAR(255) NULL,
qty_ord DECIMAL(18,5) NULL DEFAULT 0,
prod_line VARCHAR(8) NULL,
applicant_name VARCHAR(12) NULL,
issue_user VARCHAR(255) NULL,
user1 TEXT NULL,
remark VARCHAR(200) NULL,
create_user VARCHAR(24) NULL,
source_create_time DATETIME NULL,
pretreatment_state VARCHAR(50) NULL,
trans_type VARCHAR(24) NULL,
trans_type_text VARCHAR(50) NULL,
eff_date DATETIME NULL,
address VARCHAR(120) NULL,
source_biz_key VARCHAR(200) NULL,
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_issue (tenant_id, domain, rec_id),
KEY idx_mdp_std_prod_issue_nbr (tenant_id, nbr),
KEY idx_mdp_std_prod_issue_date (tenant_id, issue_date),
KEY idx_mdp_std_prod_issue_status (tenant_id, status),
KEY idx_mdp_std_prod_issue_workord (tenant_id, work_ord),
KEY idx_mdp_std_prod_issue_prodline (tenant_id, prod_line),
KEY idx_mdp_std_prod_issue_dept (tenant_id, department)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='S5生产领料单头标准层'
""",
["mdp_std_production_receipt"] =
"""
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 '',
domain VARCHAR(80) NOT NULL,
master_rec_id INT NULL,
detail_rec_id INT NOT NULL,
nbr VARCHAR(24) NULL,
line SMALLINT NOT NULL DEFAULT 0,
receipt_date DATETIME NULL,
status VARCHAR(8) NULL,
status_desc VARCHAR(20) NULL,
remark VARCHAR(200) NULL,
prod_line VARCHAR(8) NULL,
work_ord VARCHAR(64) NULL,
erp_work_ord VARCHAR(60) NULL,
department VARCHAR(8) NULL,
department_desc VARCHAR(255) NULL,
applicant_name VARCHAR(12) NULL,
item_num VARCHAR(24) NULL,
item_name VARCHAR(200) NULL,
item_spec VARCHAR(200) NULL,
um VARCHAR(8) NULL,
location_to VARCHAR(8) NULL,
location_to_desc VARCHAR(255) NULL,
lot_serial VARCHAR(120) NULL,
qty_rec DECIMAL(18,5) NULL DEFAULT 0,
qty_to DECIMAL(18,5) NULL DEFAULT 0,
location_from VARCHAR(8) NULL,
location_from_desc VARCHAR(255) NULL,
ord_nbr VARCHAR(48) NULL,
source_biz_key VARCHAR(200) NULL,
sync_batch_id VARCHAR(100) NOT NULL,
sync_time DATETIME NOT NULL,
closed_flag TINYINT NOT NULL DEFAULT 0,
closed_time DATETIME NULL,
task_no VARCHAR(80) 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生产入库单标准层(扁平,一行=一条明细)'
""",
["mdp_std_production_return"] =
"""
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 '',
domain VARCHAR(80) NOT NULL,
rec_id INT NOT NULL,
nbr VARCHAR(24) NULL,
return_date DATETIME NULL,
status VARCHAR(8) NULL,
status_desc VARCHAR(20) NULL,
work_ord VARCHAR(64) NULL,
department VARCHAR(8) NULL,
department_desc VARCHAR(255) NULL,
qty_ord DECIMAL(18,5) NULL DEFAULT 0,
prod_line VARCHAR(8) NULL,
applicant_name VARCHAR(12) NULL,
return_user VARCHAR(255) NULL,
user1 TEXT NULL,
user2 TEXT NULL,
remark VARCHAR(200) NULL,
create_user VARCHAR(24) NULL,
source_create_time DATETIME NULL,
trans_type VARCHAR(24) NULL,
trans_type_text VARCHAR(50) NULL,
eff_date DATETIME NULL,
ufld1 VARCHAR(50) NULL,
source_biz_key VARCHAR(200) NULL,
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生产退料单头标准层'
""",
["mdp_std_production_return_detail"] =
"""
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,
domain VARCHAR(80) NOT NULL,
nbr_rec_id INT NOT NULL,
rec_id INT NULL,
line SMALLINT NOT NULL DEFAULT 0,
item_num VARCHAR(24) NULL,
item_name VARCHAR(200) NULL,
item_spec VARCHAR(200) NULL,
um VARCHAR(8) NULL,
qty_to DECIMAL(18,5) NULL DEFAULT 0,
qty_rec DECIMAL(18,5) NULL DEFAULT 0,
location_from VARCHAR(8) NULL,
location_from_desc VARCHAR(255) NULL,
location_to VARCHAR(8) NULL,
location_to_desc VARCHAR(255) NULL,
lot_serial VARCHAR(120) NULL,
status VARCHAR(8) NULL,
status_desc VARCHAR(20) NULL,
remark VARCHAR(500) NULL,
work_ord VARCHAR(64) NULL,
source_biz_key VARCHAR(200) NULL,
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生产退料单明细标准层'
""",
["mdp_std_purchase_receipt"] =
"""
CREATE TABLE IF NOT EXISTS mdp_std_purchase_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 '',
domain VARCHAR(24) NOT NULL,
receiver VARCHAR(24) NOT NULL,
line SMALLINT NOT NULL DEFAULT 0,
rct_date DATETIME NULL,
supp VARCHAR(20) NULL,
sort_name VARCHAR(255) NULL,
item_num VARCHAR(60) NULL,
item_name VARCHAR(200) NULL,
item_spec VARCHAR(200) NULL,
um VARCHAR(8) NULL,
qty_ordered DECIMAL(18,6) NULL DEFAULT 0,
qty_received DECIMAL(18,6) NULL DEFAULT 0,
lot_serial VARCHAR(120) NULL,
location VARCHAR(8) NULL,
ord_nbr VARCHAR(24) NULL,
ord_line SMALLINT NULL,
blanket_line INT NULL,
pur_ord VARCHAR(24) NULL,
pur_line SMALLINT NULL,
sales_job VARCHAR(200) NULL,
address1 VARCHAR(200) NULL,
req VARCHAR(20) NULL,
req_line INT NULL,
dop_req VARCHAR(255) NULL,
source_biz_key VARCHAR(200) NULL,
sync_batch_id VARCHAR(100) NOT NULL,
sync_time DATETIME NOT NULL,
approved_flag TINYINT NOT NULL DEFAULT 1,
approved_time DATETIME NULL,
create_time DATETIME DEFAULT CURRENT_TIMESTAMP,
update_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
UNIQUE KEY uk_mdp_std_pur_rct (tenant_id, domain, receiver, line),
KEY idx_mdp_std_pur_rct_date (tenant_id, rct_date),
KEY idx_mdp_std_pur_rct_item (tenant_id, item_num),
KEY idx_mdp_std_pur_rct_supp (tenant_id, supp),
KEY idx_mdp_std_pur_rct_purord (tenant_id, pur_ord),
KEY idx_mdp_std_pur_rct_salesjob (tenant_id, sales_job),
KEY idx_mdp_std_pur_rct_req (tenant_id, req),
KEY idx_mdp_std_pur_rct_dopreq (tenant_id, dop_req)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='S5采购收货单标准层'
""",
["mdp_std_s4_iqc"] =
"""
CREATE TABLE IF NOT EXISTS mdp_std_s4_iqc (
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 '',
po_no VARCHAR(50) NULL, po_line VARCHAR(50) NULL,
supplier_code VARCHAR(50) NULL, item_code VARCHAR(50) NULL,
receipt_qty DECIMAL(18,6) NULL DEFAULT 0,
sample_qty DECIMAL(18,6) NULL DEFAULT 0,
defect_qty DECIMAL(18,6) NULL DEFAULT 0,
qc_result VARCHAR(20) NULL, receipt_date DATETIME NULL,
source_biz_key VARCHAR(200) NULL,
sync_batch_id VARCHAR(100) NOT NULL, sync_time DATETIME NOT NULL,
update_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
UNIQUE KEY uk_std_s4_iqc (tenant_id, source_biz_key)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4
""",
["mdp_std_s4_return"] =
"""
CREATE TABLE IF NOT EXISTS mdp_std_s4_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 '',
po_no VARCHAR(50) NULL, po_line VARCHAR(50) NULL,
supplier_code VARCHAR(50) NULL, item_code VARCHAR(50) NULL,
return_qty DECIMAL(18,6) NULL DEFAULT 0,
return_reason VARCHAR(200) NULL, return_status VARCHAR(50) NULL,
source_biz_key VARCHAR(200) NULL,
sync_batch_id VARCHAR(100) NOT NULL, sync_time DATETIME NOT NULL,
update_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
UNIQUE KEY uk_std_s4_return (tenant_id, source_biz_key)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4
""",
["mdp_std_s4_shipment"] =
"""
CREATE TABLE IF NOT EXISTS mdp_std_s4_shipment (
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 '',
shipment_no VARCHAR(50) NULL, po_no VARCHAR(50) NULL, po_line VARCHAR(50) NULL,
supplier_code VARCHAR(50) NULL, item_code VARCHAR(50) NULL,
ship_qty DECIMAL(18,6) NULL DEFAULT 0, ship_date DATETIME NULL,
source_biz_key VARCHAR(200) NULL,
sync_batch_id VARCHAR(100) NOT NULL, sync_time DATETIME NOT NULL,
update_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
UNIQUE KEY uk_std_s4_shipment (tenant_id, source_biz_key)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4
""",
["mdp_std_s4_shortage"] =
"""
CREATE TABLE IF NOT EXISTS mdp_std_s4_shortage (
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 '',
work_order VARCHAR(100) NULL, supplier_code VARCHAR(50) NULL, item_code VARCHAR(50) NULL,
shortage_qty DECIMAL(18,6) NULL DEFAULT 0, risk_level VARCHAR(20) NULL, need_date DATETIME NULL,
source_biz_key VARCHAR(200) NULL,
sync_batch_id VARCHAR(100) NOT NULL, sync_time DATETIME NOT NULL,
update_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
UNIQUE KEY uk_std_s4_shortage (tenant_id, source_biz_key)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4
""",
["mdp_std_s6_report"] =
"""
CREATE TABLE IF NOT EXISTS mdp_std_s6_report (
id bigint NOT NULL AUTO_INCREMENT,
tenant_id bigint NOT NULL DEFAULT 0,
factory_id bigint DEFAULT 1,
source_system varchar(50) NOT NULL DEFAULT 'T8',
work_order_no varchar(100) NOT NULL,
report_date datetime DEFAULT NULL,
report_qty decimal(18,6) DEFAULT NULL,
start_work_date datetime DEFAULT NULL,
task_no varchar(80) DEFAULT NULL,
domain varchar(80) DEFAULT NULL,
ztid varchar(50) DEFAULT NULL,
source_row_id varchar(100) NOT NULL,
source_biz_key varchar(200) NOT NULL,
sync_batch_id varchar(100) NOT NULL,
sync_time datetime NOT NULL,
update_time datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (id),
UNIQUE KEY uk_mdp_std_s6_report (tenant_id, source_system, source_biz_key)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4
""",
["mdp_std_work_order_schedule"] =
"""
CREATE TABLE IF NOT EXISTS mdp_std_work_order_schedule (
id BIGINT AUTO_INCREMENT PRIMARY KEY,
tenant_id BIGINT NOT NULL DEFAULT 0,
factory_id BIGINT NULL,
source_system VARCHAR(50) NOT NULL DEFAULT '',
work_order VARCHAR(100) NOT NULL,
doc_type VARCHAR(32) NOT NULL DEFAULT 'PROD_TASK',
sales_order_no VARCHAR(100) NULL,
item_code VARCHAR(100) NULL,
item_name VARCHAR(200) NULL,
site_code VARCHAR(50) NULL,
status VARCHAR(50) NULL,
priority DECIMAL(18,6) NULL,
urgent_flag TINYINT NOT NULL DEFAULT 0,
qty_ordered DECIMAL(18,6) NULL,
qty_completed DECIMAL(18,6) NULL,
order_date DATETIME NULL,
due_date DATETIME NULL,
release_date DATETIME NULL,
prod_line VARCHAR(100) NULL,
specification VARCHAR(200) NULL,
lot_serial VARCHAR(100) NULL,
drawing_no VARCHAR(100) NULL,
project VARCHAR(200) NULL,
work_order_type VARCHAR(50) NULL,
labor_variance DECIMAL(18,6) NULL,
source_biz_key VARCHAR(200) NULL,
sync_batch_id VARCHAR(100) NOT NULL,
sync_time DATETIME NOT NULL,
approved_flag TINYINT NOT NULL DEFAULT 1,
void_flag TINYINT NOT NULL DEFAULT 0,
update_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
UNIQUE KEY uk_std_wo_sched_type (tenant_id, doc_type, work_order),
KEY idx_std_work_order_schedule_batch (sync_batch_id),
KEY idx_std_work_order_schedule_due (tenant_id, due_date)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='S2标准工单排程'
""",
["mdp_stg_fqc_pull"] =
"""
CREATE TABLE IF NOT EXISTS mdp_stg_fqc_pull (
id BIGINT PRIMARY KEY AUTO_INCREMENT,
tenant_id BIGINT NOT NULL,
source_system VARCHAR(50) NULL,
source_table VARCHAR(200),
source_row_id VARCHAR(200),
source_biz_key VARCHAR(300) NULL,
raw_data JSON,
sync_batch_id VARCHAR(100),
sync_time DATETIME NULL DEFAULT CURRENT_TIMESTAMP,
process_status VARCHAR(20) NOT NULL DEFAULT 'PENDING',
process_message VARCHAR(500) NULL,
create_time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
update_time DATETIME NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
UNIQUE KEY uk_source_key (source_system, source_table, source_biz_key),
KEY idx_batch (sync_batch_id),
KEY idx_src (source_table, source_row_id),
KEY idx_tenant (tenant_id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='S7 FQC 执行器贴源层(任务/结果/明细共表,source_table 区分)'
""",
["mdp_stg_ipqc_inspection"] =
"""
CREATE TABLE IF NOT EXISTS mdp_stg_ipqc_inspection (
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 '',
source_table VARCHAR(100) NOT NULL,
source_row_id VARCHAR(100) NOT NULL,
source_biz_key VARCHAR(200) NULL,
sync_batch_id VARCHAR(100) NOT NULL,
sync_time DATETIME NOT NULL,
process_status VARCHAR(20) NOT NULL DEFAULT 'PENDING',
raw_data JSON NOT NULL,
update_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
UNIQUE KEY uk_mdp_stg_ipqc_insp (tenant_id, source_table, source_row_id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='S6过程检验单头贴源层'
""",
["mdp_stg_ipqc_inspection_detail"] =
"""
CREATE TABLE IF NOT EXISTS mdp_stg_ipqc_inspection_detail (
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 '',
source_table VARCHAR(100) NOT NULL,
source_row_id VARCHAR(100) NOT NULL,
source_biz_key VARCHAR(200) NULL,
sync_batch_id VARCHAR(100) NOT NULL,
sync_time DATETIME NOT NULL,
process_status VARCHAR(20) NOT NULL DEFAULT 'PENDING',
raw_data JSON NOT NULL,
update_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
UNIQUE KEY uk_mdp_stg_ipqc_insp_dtl (tenant_id, source_table, source_row_id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='S6过程检验单明细贴源层'
""",
["mdp_stg_ipqc_pull"] =
"""
CREATE TABLE IF NOT EXISTS mdp_stg_ipqc_pull (
id BIGINT PRIMARY KEY AUTO_INCREMENT,
tenant_id BIGINT NOT NULL,
source_system VARCHAR(50) NULL,
source_table VARCHAR(200),
source_row_id VARCHAR(200),
source_biz_key VARCHAR(300) NULL,
raw_data JSON,
sync_batch_id VARCHAR(100),
sync_time DATETIME NULL DEFAULT CURRENT_TIMESTAMP,
process_status VARCHAR(20) NOT NULL DEFAULT 'PENDING',
process_message VARCHAR(500) NULL,
create_time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
update_time DATETIME NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
UNIQUE KEY uk_source_key (source_system, source_table, source_biz_key),
KEY idx_batch (sync_batch_id),
KEY idx_src (source_table, source_row_id),
KEY idx_tenant (tenant_id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='S6 IPQC 执行器贴源层'
""",
["mdp_stg_outsource_issue_pull"] =
"""
CREATE TABLE IF NOT EXISTS mdp_stg_outsource_issue_pull (
id BIGINT PRIMARY KEY AUTO_INCREMENT,
tenant_id BIGINT NOT NULL,
source_system VARCHAR(50) NULL,
source_table VARCHAR(200),
source_row_id VARCHAR(200),
source_biz_key VARCHAR(300) NULL,
raw_data JSON,
sync_batch_id VARCHAR(100),
sync_time DATETIME NULL DEFAULT CURRENT_TIMESTAMP,
process_status VARCHAR(20) NOT NULL DEFAULT 'PENDING',
process_message VARCHAR(500) NULL,
create_time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
update_time DATETIME NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
UNIQUE KEY uk_source_key (source_system, source_table, source_biz_key),
KEY idx_batch (sync_batch_id),
KEY idx_src (source_table, source_row_id),
KEY idx_tenant (tenant_id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='S5委外发料执行器贴源层(头/明细共表,source_table 区分)'
""",
["mdp_stg_production_issue"] =
"""
CREATE TABLE IF NOT EXISTS mdp_stg_production_issue (
id BIGINT PRIMARY KEY AUTO_INCREMENT,
tenant_id BIGINT NOT NULL,
source_system VARCHAR(50) NULL,
source_table VARCHAR(200),
source_row_id VARCHAR(200),
source_biz_key VARCHAR(300) NULL,
raw_data JSON,
sync_batch_id VARCHAR(100),
sync_time DATETIME NULL DEFAULT CURRENT_TIMESTAMP,
process_status VARCHAR(20) NOT NULL DEFAULT 'PENDING',
process_message VARCHAR(500) NULL,
create_time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
update_time DATETIME NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
UNIQUE KEY uk_source_key (source_system, source_table, source_biz_key),
KEY idx_batch (sync_batch_id),
KEY idx_src (source_table, source_row_id),
KEY idx_tenant (tenant_id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='S5生产领料执行器贴源层'
""",
["mdp_stg_production_receipt"] =
"""
CREATE TABLE IF NOT EXISTS mdp_stg_production_receipt (
id BIGINT PRIMARY KEY AUTO_INCREMENT,
tenant_id BIGINT NOT NULL,
source_system VARCHAR(50) NULL,
source_table VARCHAR(200),
source_row_id VARCHAR(200),
source_biz_key VARCHAR(300) NULL,
raw_data JSON,
sync_batch_id VARCHAR(100),
sync_time DATETIME NULL DEFAULT CURRENT_TIMESTAMP,
process_status VARCHAR(20) NOT NULL DEFAULT 'PENDING',
process_message VARCHAR(500) NULL,
create_time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
update_time DATETIME NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
UNIQUE KEY uk_source_key (source_system, source_table, source_biz_key),
KEY idx_batch (sync_batch_id),
KEY idx_src (source_table, source_row_id),
KEY idx_tenant (tenant_id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='S7成品入库执行器贴源层'
""",
["mdp_stg_production_return"] =
"""
CREATE TABLE IF NOT EXISTS mdp_stg_production_return (
id BIGINT PRIMARY KEY AUTO_INCREMENT,
tenant_id BIGINT NOT NULL,
source_system VARCHAR(50) NULL,
source_table VARCHAR(200),
source_row_id VARCHAR(200),
source_biz_key VARCHAR(300) NULL,
raw_data JSON,
sync_batch_id VARCHAR(100),
sync_time DATETIME NULL DEFAULT CURRENT_TIMESTAMP,
process_status VARCHAR(20) NOT NULL DEFAULT 'PENDING',
process_message VARCHAR(500) NULL,
create_time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
update_time DATETIME NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
UNIQUE KEY uk_source_key (source_system, source_table, source_biz_key),
KEY idx_batch (sync_batch_id),
KEY idx_src (source_table, source_row_id),
KEY idx_tenant (tenant_id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='S5生产退料执行器贴源层(头/明细共表,source_table 区分)'
""",
["mdp_stg_purchase_receipt"] =
"""
CREATE TABLE IF NOT EXISTS mdp_stg_purchase_receipt (
id BIGINT PRIMARY KEY AUTO_INCREMENT,
tenant_id BIGINT NOT NULL,
source_system VARCHAR(50) NULL,
source_table VARCHAR(200),
source_row_id VARCHAR(200),
source_biz_key VARCHAR(300) NULL,
raw_data JSON,
sync_batch_id VARCHAR(100),
sync_time DATETIME NULL DEFAULT CURRENT_TIMESTAMP,
process_status VARCHAR(20) NOT NULL DEFAULT 'PENDING',
process_message VARCHAR(500) NULL,
create_time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
update_time DATETIME NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
UNIQUE KEY uk_source_key (source_system, source_table, source_biz_key),
KEY idx_batch (sync_batch_id),
KEY idx_src (source_table, source_row_id),
KEY idx_tenant (tenant_id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='S5采购收货贴源层'
""",
["mdp_stg_s4_iqc"] =
"""
CREATE TABLE IF NOT EXISTS mdp_stg_s4_iqc (
id BIGINT AUTO_INCREMENT PRIMARY KEY,
tenant_id BIGINT NOT NULL DEFAULT 0,
source_system VARCHAR(50) NOT NULL DEFAULT '',
source_table VARCHAR(100) NOT NULL,
source_row_id VARCHAR(100) NOT NULL,
source_biz_key VARCHAR(200) NULL,
sync_batch_id VARCHAR(100) NOT NULL,
sync_time DATETIME NOT NULL,
process_status VARCHAR(20) NOT NULL DEFAULT 'PENDING',
process_message VARCHAR(500) NULL,
raw_data JSON NOT NULL,
create_time DATETIME NULL DEFAULT CURRENT_TIMESTAMP,
update_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
UNIQUE KEY uk_mdp_stg_s4_iqc (tenant_id, source_table, source_row_id),
UNIQUE KEY uk_source_key (source_system, source_table, source_biz_key)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4
""",
["mdp_stg_s4_return"] =
"""
CREATE TABLE IF NOT EXISTS mdp_stg_s4_return LIKE mdp_stg_s4_iqc
""",
["mdp_stg_s4_shipment"] =
"""
CREATE TABLE IF NOT EXISTS mdp_stg_s4_shipment LIKE mdp_stg_s4_iqc
""",
["mdp_stg_s4_shortage"] =
"""
CREATE TABLE IF NOT EXISTS mdp_stg_s4_shortage LIKE mdp_stg_s4_iqc
""",
["mdp_stg_s6_report"] =
"""
CREATE TABLE IF NOT EXISTS mdp_stg_s6_report (
id bigint NOT NULL AUTO_INCREMENT,
tenant_id bigint NOT NULL DEFAULT 0,
source_system varchar(50) DEFAULT NULL,
source_table varchar(200) DEFAULT NULL,
source_row_id varchar(200) DEFAULT NULL,
source_biz_key varchar(300) DEFAULT NULL,
raw_data json DEFAULT NULL,
sync_batch_id varchar(100) DEFAULT NULL,
create_time datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
sync_time datetime DEFAULT CURRENT_TIMESTAMP,
process_status varchar(20) NOT NULL DEFAULT 'PENDING',
process_message varchar(500) DEFAULT NULL,
update_time datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (id),
UNIQUE KEY uk_source_key (source_system, source_table, source_biz_key)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4
""",
["mdp_stg_schedule"] =
"""
CREATE TABLE IF NOT EXISTS mdp_stg_schedule (
id BIGINT AUTO_INCREMENT PRIMARY KEY,
tenant_id BIGINT NOT NULL DEFAULT 0,
factory_id VARCHAR(64) NULL,
source_system VARCHAR(50) NOT NULL DEFAULT '',
source_table VARCHAR(100) NOT NULL,
source_row_id VARCHAR(100) NOT NULL,
source_biz_key VARCHAR(200) NULL,
sync_batch_id VARCHAR(100) NOT NULL,
sync_time DATETIME NOT NULL,
process_status VARCHAR(20) NOT NULL DEFAULT 'PENDING',
process_message VARCHAR(500) NULL,
raw_data JSON NOT NULL,
create_time DATETIME NULL DEFAULT CURRENT_TIMESTAMP,
update_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
UNIQUE KEY uk_mdp_stg_schedule (tenant_id, source_table, source_row_id),
UNIQUE KEY uk_source_key (source_system, source_table, source_biz_key),
KEY idx_mdp_stg_schedule_batch (sync_batch_id),
KEY idx_mdp_stg_schedule_biz (source_biz_key)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='S2生产排程贴源层'
""",
["dwd_order_schedule_trans"] =
"""
CREATE TABLE IF NOT EXISTS dwd_order_schedule_trans (
id BIGINT AUTO_INCREMENT PRIMARY KEY,
tenant_id BIGINT NOT NULL DEFAULT 0,
factory_id BIGINT NOT NULL DEFAULT 1,
stat_date DATE NOT NULL,
doc_type VARCHAR(32) NOT NULL DEFAULT 'PROD_TASK',
work_order VARCHAR(100) NOT NULL,
sales_order_no VARCHAR(100) NULL,
item_code VARCHAR(100) NULL,
item_name VARCHAR(200) NULL,
site_code VARCHAR(50) NULL,
prod_line VARCHAR(100) NULL,
status VARCHAR(50) NULL,
urgent_flag TINYINT NOT NULL DEFAULT 0,
qty_ordered DECIMAL(18,6) NULL,
qty_completed DECIMAL(18,6) NULL,
order_date DATETIME NULL,
due_date DATETIME NULL,
release_date DATETIME NULL,
first_plan_date DATETIME NULL,
last_plan_date DATETIME NULL,
first_start_time DATETIME NULL,
last_end_time DATETIME NULL,
operation_count INT NOT NULL DEFAULT 0,
scheduled_qty DECIMAL(18,6) NULL,
completed_op_qty DECIMAL(18,6) NULL,
schedule_cycle_days DECIMAL(18,6) NULL,
schedule_satisfaction_flag TINYINT NOT NULL DEFAULT 0,
wip_qty DECIMAL(18,6) NULL,
resource_person_count DECIMAL(18,6) NULL,
calc_batch_id VARCHAR(100) NOT NULL,
calc_time DATETIME NOT NULL,
update_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
UNIQUE KEY uk_dwd_order_schedule_trans (tenant_id, doc_type, work_order, calc_batch_id),
KEY idx_dwd_order_schedule_trans_batch (calc_batch_id),
KEY idx_dwd_order_schedule_trans_stat (tenant_id, stat_date),
KEY idx_dwd_order_schedule_trans_order (tenant_id, sales_order_no)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='S2订单工单排程DWD'
""",
["dwd_requirement_examine_detail"] =
"""
CREATE TABLE IF NOT EXISTS dwd_requirement_examine_detail (
id BIGINT AUTO_INCREMENT PRIMARY KEY,
tenant_id BIGINT NOT NULL,
factory_id BIGINT NULL,
stat_date DATE NOT NULL,
row_id BIGINT NOT NULL,
parent_row_id BIGINT NULL,
examine_id BIGINT NULL,
order_entry_id BIGINT NULL,
bill_no VARCHAR(100) NULL,
morder_no VARCHAR(100) NULL,
num VARCHAR(100) NULL,
item_number VARCHAR(100) NULL,
item_name VARCHAR(200) NULL,
bom_number VARCHAR(100) NULL,
model VARCHAR(200) NULL,
kitting_time DATE NULL,
item_type VARCHAR(50) NULL,
erp_cls_name VARCHAR(80) NULL,
qty DECIMAL(18,4) NULL,
wastage DECIMAL(18,4) NULL,
-- ── 齐套三量的标准名(B3 决定:不另起别名列)──────────────────────────────
-- need_count / use_qty / lack_qty 就是本表「需求量 / 已满足量 / 缺口量」的标准列名,
-- 不新增 required_qty / satisfied_qty / shortage_qty 别名列:
-- 别名列 = 同一个数字有两个写入点,迟早对不上;而重算一套更会凭空造出与源系统不一致的口径。
-- 恒等式 lack_qty + use_qty = need_count 由源系统保证,
-- 实测(aidopdev,只读)1019060/1019060 行全部成立,最大绝对偏差 0.0000,三列均无 NULL。
need_count DECIMAL(18,4) NULL COMMENT '标准列·需求量(齐套恒等式:lack_qty + use_qty = need_count)',
sqty DECIMAL(18,4) NULL,
use_qty DECIMAL(18,4) NULL COMMENT '标准列·已满足量(不要新增 satisfied_qty 别名)',
self_lack_qty DECIMAL(18,4) NULL,
lack_qty DECIMAL(18,4) NULL COMMENT '标准列·缺口量(不要新增 shortage_qty 别名)',
mo_qty DECIMAL(18,4) NULL,
make_qty DECIMAL(18,4) NULL,
purchase_qty DECIMAL(18,4) NULL,
purchase_occupy_qty DECIMAL(18,4) NULL,
satisfy_time DATE NULL,
have_ic_subs VARCHAR(10) NULL,
substitute_code VARCHAR(100) NULL,
create_time DATETIME NULL,
source_system VARCHAR(50) NOT NULL DEFAULT '',
sync_batch_id VARCHAR(100) NOT NULL,
calc_batch_id VARCHAR(100) NOT NULL,
calc_time DATETIME NOT NULL,
update_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
-- ⚠️ 以下三列必须与 UpdateScripts/1.0.516.sql 的 ALTER ... ADD COLUMN 保持「同名同类型同顺序」。
-- 本表没有 SqlSugar 实体、也没有 UpdateScripts 的 CREATE,schema 由「本 DDL + ALTER 脚本」两处共同定义:
-- 新库走本 DDL 一次建全,旧库走 ALTER 追加。ALTER ADD COLUMN 默认追加到表尾,
-- 故这三列在此也必须放在 update_time 之后,否则新库与迁移库的列序会分叉。
bom_level INT NULL COMMENT 'BOM 层级 ← raw_data.$.level;1=成品根,>1=投入料',
material_role VARCHAR(32) NULL COMMENT '物料角色枚举:FINISHED_GOOD_ROOT / INPUT_MATERIAL',
is_current_flag TINYINT NOT NULL DEFAULT 0 COMMENT '1=属于当前快照批次;同一 (tenant, factory) 作用域内恒只有一个批次为 1',
UNIQUE KEY uk_dwd_req_exam_detail (tenant_id, row_id, calc_batch_id),
KEY idx_req_exam_tenant_batch (tenant_id, calc_batch_id),
KEY idx_req_exam_bill (tenant_id, bill_no),
KEY idx_req_exam_item (tenant_id, item_number),
KEY idx_req_exam_current (tenant_id, is_current_flag, morder_no)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='S1需求明细核验DWD'
""",
["dwd_s4_purchase_execution"] =
"""
CREATE TABLE IF NOT EXISTS dwd_s4_purchase_execution (
id BIGINT AUTO_INCREMENT PRIMARY KEY,
tenant_id BIGINT NOT NULL, factory_id BIGINT NOT NULL DEFAULT 1, stat_date DATE NOT NULL,
po_no VARCHAR(50) NULL, po_line VARCHAR(50) NULL,
supplier_code VARCHAR(50) NULL, item_code VARCHAR(50) NULL,
order_qty DECIMAL(12,3) NULL DEFAULT 0, delivery_qty DECIMAL(12,3) NULL DEFAULT 0,
received_qty DECIMAL(12,3) NULL DEFAULT 0, returned_qty DECIMAL(12,3) NULL DEFAULT 0,
shortage_qty DECIMAL(12,3) NULL DEFAULT 0,
due_date DATE NULL, actual_arrival_date DATE NULL, risk_level VARCHAR(20) NULL,
source_system VARCHAR(20) NULL DEFAULT '',
sync_batch_id VARCHAR(100) NULL, sync_time DATETIME NULL,
update_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
UNIQUE KEY uk_dwd_s4_pe (tenant_id, stat_date, po_no, po_line, item_code),
KEY idx_dwd_s4_pe_date (tenant_id, stat_date),
KEY idx_dwd_s4_pe_supplier (tenant_id, supplier_code)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4
""",
};
/// 按表名取 CREATE TABLE IF NOT EXISTS(或 LIKE)原文。
public static string Ddl(string tableName)
{
if (string.IsNullOrWhiteSpace(tableName))
throw new ArgumentException("表名不能为空", nameof(tableName));
if (!Tables.TryGetValue(tableName.Trim(), out var ddl))
throw new InvalidOperationException($"未登记中台表 DDL:{tableName}");
return ddl;
}
/// 已登记的中立表名(测试与清单用)。
public static IReadOnlyCollection TableNames => Tables.Keys;
}