2026-05-10_s3_mdp_full_transform_runtime.sql 8.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188
  1. -- S3 MDP full transform runtime rollout for aidopdev.
  2. -- Purpose:
  3. -- - Complete missing S3 first-batch standard/DWD tables.
  4. -- - Record the runtime transform scope now implemented by S3MdpSyncTransformService.
  5. -- - Keep all writes inside mdp_* / dwd_* tables; source business tables are not changed.
  6. CREATE TABLE IF NOT EXISTS mdp_std_supplier (
  7. id BIGINT AUTO_INCREMENT PRIMARY KEY,
  8. tenant_id BIGINT NOT NULL,
  9. factory_id BIGINT NULL,
  10. company_id BIGINT NULL,
  11. source_system VARCHAR(50) NOT NULL,
  12. supplier_code VARCHAR(100) NOT NULL,
  13. supplier_name VARCHAR(200) NULL,
  14. supplier_type VARCHAR(50) NULL,
  15. status VARCHAR(50) NULL,
  16. contact VARCHAR(200) NULL,
  17. address VARCHAR(500) NULL,
  18. currency_type VARCHAR(50) NULL,
  19. source_biz_key VARCHAR(300) NOT NULL,
  20. sync_batch_id VARCHAR(64) NOT NULL,
  21. sync_time DATETIME NOT NULL,
  22. create_time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
  23. update_time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  24. UNIQUE KEY uk_source_key (tenant_id, source_system, source_biz_key),
  25. UNIQUE KEY uk_supplier (tenant_id, supplier_code),
  26. KEY idx_supplier_name (tenant_id, supplier_name)
  27. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='S3标准供应商';
  28. CREATE TABLE IF NOT EXISTS mdp_std_item (
  29. id BIGINT AUTO_INCREMENT PRIMARY KEY,
  30. tenant_id BIGINT NOT NULL,
  31. factory_id BIGINT NULL,
  32. company_id BIGINT NULL,
  33. source_system VARCHAR(50) NOT NULL,
  34. item_code VARCHAR(100) NOT NULL,
  35. item_name VARCHAR(200) NULL,
  36. model VARCHAR(200) NULL,
  37. unit VARCHAR(50) NULL,
  38. item_type VARCHAR(50) NULL,
  39. status VARCHAR(50) NULL,
  40. source_biz_key VARCHAR(300) NOT NULL,
  41. sync_batch_id VARCHAR(64) NOT NULL,
  42. sync_time DATETIME NOT NULL,
  43. create_time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
  44. update_time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  45. UNIQUE KEY uk_source_key (tenant_id, source_system, source_biz_key),
  46. UNIQUE KEY uk_item (tenant_id, item_code),
  47. KEY idx_item_name (tenant_id, item_name)
  48. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='S3标准物料';
  49. CREATE TABLE IF NOT EXISTS mdp_std_purchase_request (
  50. id BIGINT AUTO_INCREMENT PRIMARY KEY,
  51. tenant_id BIGINT NOT NULL,
  52. factory_id BIGINT NULL,
  53. company_id BIGINT NULL,
  54. source_system VARCHAR(50) NOT NULL,
  55. pr_no VARCHAR(100) NOT NULL,
  56. pr_line VARCHAR(50) NULL,
  57. item_code VARCHAR(100) NULL,
  58. item_name VARCHAR(200) NULL,
  59. supplier_code VARCHAR(100) NULL,
  60. request_qty DECIMAL(18,6) NULL,
  61. request_date DATETIME NULL,
  62. send_date DATETIME NULL,
  63. arrive_date DATETIME NULL,
  64. status VARCHAR(50) NULL,
  65. source_biz_key VARCHAR(300) NOT NULL,
  66. sync_batch_id VARCHAR(64) NOT NULL,
  67. sync_time DATETIME NOT NULL,
  68. create_time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
  69. update_time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  70. UNIQUE KEY uk_source_key (tenant_id, source_system, source_biz_key),
  71. KEY idx_item_date (tenant_id, item_code, request_date),
  72. KEY idx_supplier_date (tenant_id, supplier_code, request_date)
  73. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='S3标准采购申请';
  74. CREATE TABLE IF NOT EXISTS mdp_std_delivery_exception (
  75. id BIGINT AUTO_INCREMENT PRIMARY KEY,
  76. tenant_id BIGINT NOT NULL,
  77. source_system VARCHAR(50) NOT NULL,
  78. exception_no VARCHAR(100) NOT NULL,
  79. exception_type VARCHAR(100) NULL,
  80. item_code VARCHAR(100) NULL,
  81. supplier_code VARCHAR(100) NULL,
  82. po_no VARCHAR(100) NULL,
  83. po_line VARCHAR(50) NULL,
  84. need_qty DECIMAL(18,6) NULL,
  85. exception_time DATETIME NULL,
  86. remark VARCHAR(1000) NULL,
  87. status VARCHAR(50) NULL,
  88. source_biz_key VARCHAR(300) NOT NULL,
  89. sync_batch_id VARCHAR(64) NOT NULL,
  90. sync_time DATETIME NOT NULL,
  91. create_time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
  92. update_time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  93. UNIQUE KEY uk_source_key (tenant_id, source_system, source_biz_key),
  94. KEY idx_supplier_time (tenant_id, supplier_code, exception_time),
  95. KEY idx_item_time (tenant_id, item_code, exception_time)
  96. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='S3标准交货异常';
  97. CREATE TABLE IF NOT EXISTS dwd_supply_demand (
  98. id BIGINT AUTO_INCREMENT PRIMARY KEY,
  99. tenant_id BIGINT NOT NULL,
  100. stat_date DATE NOT NULL,
  101. demand_no VARCHAR(100) NOT NULL,
  102. demand_line VARCHAR(50) NULL,
  103. demand_type VARCHAR(50) NULL,
  104. item_code VARCHAR(100) NULL,
  105. item_name VARCHAR(200) NULL,
  106. supplier_code VARCHAR(100) NULL,
  107. required_qty DECIMAL(18,6) NULL,
  108. fulfilled_qty DECIMAL(18,6) NULL,
  109. shortage_qty DECIMAL(18,6) NULL,
  110. required_date DATETIME NULL,
  111. demand_status VARCHAR(50) NULL,
  112. source_system VARCHAR(50) NOT NULL,
  113. sync_batch_id VARCHAR(64) NOT NULL,
  114. calc_time DATETIME NOT NULL,
  115. create_time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
  116. update_time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  117. UNIQUE KEY uk_demand_stat (tenant_id, stat_date, demand_no, demand_line),
  118. KEY idx_item_date (tenant_id, item_code, stat_date),
  119. KEY idx_supplier_date (tenant_id, supplier_code, stat_date)
  120. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='S3供应需求DWD';
  121. CREATE TABLE IF NOT EXISTS dwd_supplier_risk (
  122. id BIGINT AUTO_INCREMENT PRIMARY KEY,
  123. tenant_id BIGINT NOT NULL,
  124. stat_date DATE NOT NULL,
  125. supplier_code VARCHAR(100) NOT NULL,
  126. supplier_name VARCHAR(200) NULL,
  127. item_code VARCHAR(100) NULL,
  128. risk_type VARCHAR(100) NOT NULL,
  129. risk_level VARCHAR(50) NOT NULL,
  130. risk_count INT NOT NULL DEFAULT 0,
  131. risk_qty DECIMAL(18,6) NULL,
  132. risk_reason VARCHAR(500) NULL,
  133. source_system VARCHAR(50) NOT NULL,
  134. calc_batch_id VARCHAR(64) NOT NULL,
  135. calc_time DATETIME NOT NULL,
  136. create_time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
  137. update_time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  138. UNIQUE KEY uk_supplier_risk (tenant_id, stat_date, supplier_code, item_code, risk_type),
  139. KEY idx_level (tenant_id, stat_date, risk_level)
  140. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='S3供应风险DWD';
  141. CREATE TABLE IF NOT EXISTS dwd_process_outsource_delivery (
  142. id BIGINT AUTO_INCREMENT PRIMARY KEY,
  143. tenant_id BIGINT NOT NULL,
  144. stat_date DATE NOT NULL,
  145. work_order VARCHAR(100) NOT NULL,
  146. op_code VARCHAR(50) NOT NULL,
  147. routing_code VARCHAR(100) NULL,
  148. supplier_code VARCHAR(100) NULL,
  149. supplier_name VARCHAR(200) NULL,
  150. po_no VARCHAR(100) NULL,
  151. po_line VARCHAR(50) NULL,
  152. order_qty DECIMAL(18,6) NULL,
  153. completed_qty DECIMAL(18,6) NULL,
  154. remaining_qty DECIMAL(18,6) NULL,
  155. due_date DATETIME NULL,
  156. delivery_status VARCHAR(50) NULL,
  157. risk_level VARCHAR(50) NULL,
  158. source_system VARCHAR(50) NOT NULL,
  159. calc_batch_id VARCHAR(64) NOT NULL,
  160. calc_time DATETIME NOT NULL,
  161. create_time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
  162. update_time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  163. UNIQUE KEY uk_work_op_stat (tenant_id, stat_date, work_order, op_code, po_no, po_line),
  164. KEY idx_supplier_due (tenant_id, supplier_code, due_date),
  165. KEY idx_work_order (tenant_id, work_order)
  166. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='S3/S6工序外协交付DWD';
  167. -- Runtime transform entry point:
  168. -- Admin.NET backend service: S3MdpSyncTransformService.RunFullAsync()
  169. -- Furion Schedule job: S3MdpSyncTransformJob
  170. --
  171. -- Verification examples:
  172. -- SELECT COUNT(*) FROM mdp_std_supplier;
  173. -- SELECT COUNT(*) FROM mdp_std_item;
  174. -- SELECT COUNT(*) FROM mdp_std_supplier_item;
  175. -- SELECT COUNT(*) FROM mdp_std_purchase_order;
  176. -- SELECT COUNT(*) FROM mdp_std_delivery_schedule;
  177. -- SELECT COUNT(*) FROM dwd_supplier_delivery;
  178. -- SELECT COUNT(*) FROM dwd_supplier_risk;
  179. -- SELECT COUNT(*) FROM dwd_process_outsource_delivery;
  180. -- SELECT status, COUNT(*) FROM mdp_sync_log WHERE sync_batch_id LIKE 'S3_MDP_FULL_%' GROUP BY status;