| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188 |
- -- S3 MDP full transform runtime rollout for aidopdev.
- -- Purpose:
- -- - Complete missing S3 first-batch standard/DWD tables.
- -- - Record the runtime transform scope now implemented by S3MdpSyncTransformService.
- -- - Keep all writes inside mdp_* / dwd_* tables; source business tables are not changed.
- CREATE TABLE IF NOT EXISTS mdp_std_supplier (
- id BIGINT AUTO_INCREMENT PRIMARY KEY,
- tenant_id BIGINT NOT NULL,
- factory_id BIGINT NULL,
- company_id BIGINT NULL,
- source_system VARCHAR(50) NOT NULL,
- supplier_code VARCHAR(100) NOT NULL,
- supplier_name VARCHAR(200) NULL,
- supplier_type VARCHAR(50) NULL,
- status VARCHAR(50) NULL,
- contact VARCHAR(200) NULL,
- address VARCHAR(500) NULL,
- currency_type VARCHAR(50) NULL,
- source_biz_key VARCHAR(300) NOT NULL,
- sync_batch_id VARCHAR(64) NOT NULL,
- sync_time DATETIME NOT NULL,
- create_time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
- update_time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
- UNIQUE KEY uk_source_key (tenant_id, source_system, source_biz_key),
- UNIQUE KEY uk_supplier (tenant_id, supplier_code),
- KEY idx_supplier_name (tenant_id, supplier_name)
- ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='S3标准供应商';
- CREATE TABLE IF NOT EXISTS mdp_std_item (
- id BIGINT AUTO_INCREMENT PRIMARY KEY,
- tenant_id BIGINT NOT NULL,
- factory_id BIGINT NULL,
- company_id BIGINT NULL,
- source_system VARCHAR(50) NOT NULL,
- item_code VARCHAR(100) NOT NULL,
- item_name VARCHAR(200) NULL,
- model VARCHAR(200) NULL,
- unit VARCHAR(50) NULL,
- item_type VARCHAR(50) NULL,
- status VARCHAR(50) NULL,
- source_biz_key VARCHAR(300) NOT NULL,
- sync_batch_id VARCHAR(64) NOT NULL,
- sync_time DATETIME NOT NULL,
- create_time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
- update_time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
- UNIQUE KEY uk_source_key (tenant_id, source_system, source_biz_key),
- UNIQUE KEY uk_item (tenant_id, item_code),
- KEY idx_item_name (tenant_id, item_name)
- ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='S3标准物料';
- CREATE TABLE IF NOT EXISTS mdp_std_purchase_request (
- id BIGINT AUTO_INCREMENT PRIMARY KEY,
- tenant_id BIGINT NOT NULL,
- factory_id BIGINT NULL,
- company_id BIGINT NULL,
- source_system VARCHAR(50) NOT NULL,
- pr_no VARCHAR(100) NOT NULL,
- pr_line VARCHAR(50) NULL,
- item_code VARCHAR(100) NULL,
- item_name VARCHAR(200) NULL,
- supplier_code VARCHAR(100) NULL,
- request_qty DECIMAL(18,6) NULL,
- request_date DATETIME NULL,
- send_date DATETIME NULL,
- arrive_date DATETIME NULL,
- status VARCHAR(50) NULL,
- source_biz_key VARCHAR(300) NOT NULL,
- sync_batch_id VARCHAR(64) NOT NULL,
- sync_time DATETIME NOT NULL,
- create_time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
- update_time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
- UNIQUE KEY uk_source_key (tenant_id, source_system, source_biz_key),
- KEY idx_item_date (tenant_id, item_code, request_date),
- KEY idx_supplier_date (tenant_id, supplier_code, request_date)
- ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='S3标准采购申请';
- CREATE TABLE IF NOT EXISTS mdp_std_delivery_exception (
- id BIGINT AUTO_INCREMENT PRIMARY KEY,
- tenant_id BIGINT NOT NULL,
- source_system VARCHAR(50) NOT NULL,
- exception_no VARCHAR(100) NOT NULL,
- exception_type VARCHAR(100) NULL,
- item_code VARCHAR(100) NULL,
- supplier_code VARCHAR(100) NULL,
- po_no VARCHAR(100) NULL,
- po_line VARCHAR(50) NULL,
- need_qty DECIMAL(18,6) NULL,
- exception_time DATETIME NULL,
- remark VARCHAR(1000) NULL,
- status VARCHAR(50) NULL,
- source_biz_key VARCHAR(300) NOT NULL,
- sync_batch_id VARCHAR(64) NOT NULL,
- sync_time DATETIME NOT NULL,
- create_time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
- update_time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
- UNIQUE KEY uk_source_key (tenant_id, source_system, source_biz_key),
- KEY idx_supplier_time (tenant_id, supplier_code, exception_time),
- KEY idx_item_time (tenant_id, item_code, exception_time)
- ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='S3标准交货异常';
- CREATE TABLE IF NOT EXISTS dwd_supply_demand (
- id BIGINT AUTO_INCREMENT PRIMARY KEY,
- tenant_id BIGINT NOT NULL,
- stat_date DATE NOT NULL,
- demand_no VARCHAR(100) NOT NULL,
- demand_line VARCHAR(50) NULL,
- demand_type VARCHAR(50) NULL,
- item_code VARCHAR(100) NULL,
- item_name VARCHAR(200) NULL,
- supplier_code VARCHAR(100) NULL,
- required_qty DECIMAL(18,6) NULL,
- fulfilled_qty DECIMAL(18,6) NULL,
- shortage_qty DECIMAL(18,6) NULL,
- required_date DATETIME NULL,
- demand_status VARCHAR(50) NULL,
- source_system VARCHAR(50) NOT NULL,
- sync_batch_id VARCHAR(64) NOT NULL,
- calc_time DATETIME NOT NULL,
- create_time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
- update_time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
- UNIQUE KEY uk_demand_stat (tenant_id, stat_date, demand_no, demand_line),
- KEY idx_item_date (tenant_id, item_code, stat_date),
- KEY idx_supplier_date (tenant_id, supplier_code, stat_date)
- ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='S3供应需求DWD';
- CREATE TABLE IF NOT EXISTS dwd_supplier_risk (
- id BIGINT AUTO_INCREMENT PRIMARY KEY,
- tenant_id BIGINT NOT NULL,
- stat_date DATE NOT NULL,
- supplier_code VARCHAR(100) NOT NULL,
- supplier_name VARCHAR(200) NULL,
- item_code VARCHAR(100) NULL,
- risk_type VARCHAR(100) NOT NULL,
- risk_level VARCHAR(50) NOT NULL,
- risk_count INT NOT NULL DEFAULT 0,
- risk_qty DECIMAL(18,6) NULL,
- risk_reason VARCHAR(500) NULL,
- source_system VARCHAR(50) NOT NULL,
- calc_batch_id VARCHAR(64) NOT NULL,
- calc_time DATETIME NOT NULL,
- create_time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
- update_time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
- UNIQUE KEY uk_supplier_risk (tenant_id, stat_date, supplier_code, item_code, risk_type),
- KEY idx_level (tenant_id, stat_date, risk_level)
- ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='S3供应风险DWD';
- CREATE TABLE IF NOT EXISTS dwd_process_outsource_delivery (
- id BIGINT AUTO_INCREMENT PRIMARY KEY,
- tenant_id BIGINT NOT NULL,
- stat_date DATE NOT NULL,
- work_order VARCHAR(100) NOT NULL,
- op_code VARCHAR(50) NOT NULL,
- routing_code VARCHAR(100) NULL,
- supplier_code VARCHAR(100) NULL,
- supplier_name VARCHAR(200) NULL,
- po_no VARCHAR(100) NULL,
- po_line VARCHAR(50) NULL,
- order_qty DECIMAL(18,6) NULL,
- completed_qty DECIMAL(18,6) NULL,
- remaining_qty DECIMAL(18,6) NULL,
- due_date DATETIME NULL,
- delivery_status VARCHAR(50) NULL,
- risk_level VARCHAR(50) NULL,
- source_system VARCHAR(50) NOT NULL,
- calc_batch_id VARCHAR(64) NOT NULL,
- calc_time DATETIME NOT NULL,
- create_time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
- update_time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
- UNIQUE KEY uk_work_op_stat (tenant_id, stat_date, work_order, op_code, po_no, po_line),
- KEY idx_supplier_due (tenant_id, supplier_code, due_date),
- KEY idx_work_order (tenant_id, work_order)
- ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='S3/S6工序外协交付DWD';
- -- Runtime transform entry point:
- -- Admin.NET backend service: S3MdpSyncTransformService.RunFullAsync()
- -- Furion Schedule job: S3MdpSyncTransformJob
- --
- -- Verification examples:
- -- SELECT COUNT(*) FROM mdp_std_supplier;
- -- SELECT COUNT(*) FROM mdp_std_item;
- -- SELECT COUNT(*) FROM mdp_std_supplier_item;
- -- SELECT COUNT(*) FROM mdp_std_purchase_order;
- -- SELECT COUNT(*) FROM mdp_std_delivery_schedule;
- -- SELECT COUNT(*) FROM dwd_supplier_delivery;
- -- SELECT COUNT(*) FROM dwd_supplier_risk;
- -- SELECT COUNT(*) FROM dwd_process_outsource_delivery;
- -- SELECT status, COUNT(*) FROM mdp_sync_log WHERE sync_batch_id LIKE 'S3_MDP_FULL_%' GROUP BY status;
|