1.0.562.sql 24 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262
  1. -- ============================================================================
  2. -- 1.0.562 · 中立标准层:4 张新表 + 既有表补列 + 库存事务码迁移 + 宽表改名
  3. -- 幂等。AutoVersionUpdate 按 ; 拆句、无事务。语句内不得再嵌套分号。
  4. -- 口径:approved_flag 默认 1(源系统不提供审核标记时视为已审核)。
  5. -- ============================================================================
  6. CREATE TABLE IF NOT EXISTS mdp_std_work_order_line (
  7. id BIGINT AUTO_INCREMENT PRIMARY KEY,
  8. tenant_id BIGINT NOT NULL DEFAULT 0,
  9. factory_id BIGINT NULL DEFAULT 1,
  10. source_system VARCHAR(50) NOT NULL DEFAULT 'AIDOP',
  11. domain VARCHAR(80) NULL,
  12. doc_type VARCHAR(32) NOT NULL,
  13. src_doc_type_raw VARCHAR(64) NULL,
  14. order_no VARCHAR(120) NOT NULL,
  15. line_no VARCHAR(50) NULL,
  16. task_no VARCHAR(80) NULL,
  17. item_code VARCHAR(100) NULL,
  18. qty_planned DECIMAL(18,6) NULL DEFAULT 0,
  19. qty_completed DECIMAL(18,6) NULL DEFAULT 0,
  20. plan_finish_date DATETIME NULL,
  21. release_time DATETIME NULL,
  22. closed_flag TINYINT NOT NULL DEFAULT 0,
  23. closed_time DATETIME NULL,
  24. approved_flag TINYINT NOT NULL DEFAULT 1,
  25. void_flag TINYINT NOT NULL DEFAULT 0,
  26. source_row_id VARCHAR(100) NOT NULL,
  27. source_biz_key VARCHAR(200) NOT NULL,
  28. sync_batch_id VARCHAR(100) NOT NULL,
  29. sync_time DATETIME NOT NULL,
  30. create_time DATETIME DEFAULT CURRENT_TIMESTAMP,
  31. update_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  32. UNIQUE KEY uk_std_wo_line (tenant_id, source_system, source_biz_key),
  33. KEY idx_std_wo_line_order (tenant_id, doc_type, order_no, line_no),
  34. KEY idx_std_wo_line_task (tenant_id, task_no),
  35. KEY idx_std_wo_line_plan (tenant_id, plan_finish_date),
  36. KEY idx_std_wo_line_closed (tenant_id, closed_flag, closed_time)
  37. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='中立任务/订单行';
  38. CREATE TABLE IF NOT EXISTS mdp_std_work_order_bom (
  39. id BIGINT AUTO_INCREMENT PRIMARY KEY,
  40. tenant_id BIGINT NOT NULL DEFAULT 0,
  41. factory_id BIGINT NULL DEFAULT 1,
  42. source_system VARCHAR(50) NOT NULL DEFAULT 'AIDOP',
  43. domain VARCHAR(80) NULL,
  44. order_no VARCHAR(120) NOT NULL,
  45. order_line_no VARCHAR(50) NULL,
  46. task_no VARCHAR(80) NULL,
  47. item_code VARCHAR(100) NULL,
  48. qty_required DECIMAL(18,6) NULL DEFAULT 0,
  49. unit VARCHAR(50) NULL,
  50. source_row_id VARCHAR(100) NOT NULL,
  51. source_biz_key VARCHAR(200) NOT NULL,
  52. sync_batch_id VARCHAR(100) NOT NULL,
  53. sync_time DATETIME NOT NULL,
  54. update_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  55. UNIQUE KEY uk_std_wo_bom (tenant_id, source_system, source_biz_key),
  56. KEY idx_std_wo_bom_order (tenant_id, order_no),
  57. KEY idx_std_wo_bom_item (tenant_id, item_code)
  58. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='中立任务用料清单';
  59. CREATE TABLE IF NOT EXISTS mdp_std_employee (
  60. id BIGINT AUTO_INCREMENT PRIMARY KEY,
  61. tenant_id BIGINT NOT NULL DEFAULT 0,
  62. factory_id BIGINT NULL DEFAULT 1,
  63. source_system VARCHAR(50) NOT NULL DEFAULT 'AIDOP',
  64. domain VARCHAR(80) NOT NULL,
  65. employee_no VARCHAR(100) NOT NULL,
  66. employee_name VARCHAR(100) NULL,
  67. department_code VARCHAR(50) NULL,
  68. department_name VARCHAR(200) NULL,
  69. position_code VARCHAR(32) NOT NULL DEFAULT 'OTHER',
  70. src_position_raw VARCHAR(100) NULL,
  71. employment_status VARCHAR(32) NOT NULL DEFAULT 'ACTIVE',
  72. src_employment_status_raw VARCHAR(100) NULL,
  73. source_row_id VARCHAR(100) NOT NULL,
  74. source_biz_key VARCHAR(200) NOT NULL,
  75. sync_batch_id VARCHAR(100) NOT NULL,
  76. sync_time DATETIME NOT NULL,
  77. update_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  78. UNIQUE KEY uk_std_employee (tenant_id, source_system, domain, employee_no),
  79. KEY idx_std_employee_pos (tenant_id, position_code, employment_status)
  80. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='中立人员与岗位';
  81. CREATE TABLE IF NOT EXISTS mdp_std_inventory_balance_monthly (
  82. id BIGINT AUTO_INCREMENT PRIMARY KEY,
  83. tenant_id BIGINT NOT NULL DEFAULT 0,
  84. factory_id BIGINT NULL DEFAULT 1,
  85. source_system VARCHAR(50) NOT NULL DEFAULT 'AIDOP',
  86. domain VARCHAR(80) NULL,
  87. period_ym VARCHAR(6) NOT NULL,
  88. category_code VARCHAR(50) NOT NULL DEFAULT '',
  89. category_name VARCHAR(200) NULL,
  90. warehouse_code VARCHAR(50) NOT NULL DEFAULT '',
  91. warehouse_name VARCHAR(200) NULL,
  92. item_code VARCHAR(100) NOT NULL DEFAULT '',
  93. avg_balance_amount DECIMAL(18,6) NOT NULL DEFAULT 0,
  94. issue_cost_amount DECIMAL(18,6) NOT NULL DEFAULT 0,
  95. source_biz_key VARCHAR(200) NOT NULL,
  96. sync_batch_id VARCHAR(100) NOT NULL,
  97. sync_time DATETIME NOT NULL,
  98. update_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  99. UNIQUE KEY uk_std_inv_bal_m (tenant_id, source_system, period_ym, category_code, warehouse_code, item_code),
  100. KEY idx_std_inv_bal_m_period (tenant_id, period_ym)
  101. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='月度库存金额(成本口径)';
  102. -- mdp_std_inv_trans 补列
  103. SET @sql := IF((SELECT COUNT(*) FROM information_schema.COLUMNS WHERE TABLE_SCHEMA=DATABASE() AND TABLE_NAME='mdp_std_inv_trans' AND COLUMN_NAME='biz_doc_type')=0, 'ALTER TABLE `mdp_std_inv_trans` ADD COLUMN `biz_doc_type` VARCHAR(32) NOT NULL DEFAULT ''OTHER'' COMMENT ''中立业务单据类型''', 'DO 0');
  104. PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
  105. SET @sql := IF((SELECT COUNT(*) FROM information_schema.COLUMNS WHERE TABLE_SCHEMA=DATABASE() AND TABLE_NAME='mdp_std_inv_trans' AND COLUMN_NAME='src_biz_doc_type_raw')=0, 'ALTER TABLE `mdp_std_inv_trans` ADD COLUMN `src_biz_doc_type_raw` VARCHAR(100) NULL', 'DO 0');
  106. PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
  107. SET @sql := IF((SELECT COUNT(*) FROM information_schema.COLUMNS WHERE TABLE_SCHEMA=DATABASE() AND TABLE_NAME='mdp_std_inv_trans' AND COLUMN_NAME='src_trans_type_raw')=0, 'ALTER TABLE `mdp_std_inv_trans` ADD COLUMN `src_trans_type_raw` VARCHAR(64) NULL', 'DO 0');
  108. PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
  109. SET @sql := IF((SELECT COUNT(*) FROM information_schema.COLUMNS WHERE TABLE_SCHEMA=DATABASE() AND TABLE_NAME='mdp_std_inv_trans' AND COLUMN_NAME='approved_time')=0, 'ALTER TABLE `mdp_std_inv_trans` ADD COLUMN `approved_time` DATETIME NULL', 'DO 0');
  110. PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
  111. SET @sql := IF((SELECT COUNT(*) FROM information_schema.COLUMNS WHERE TABLE_SCHEMA=DATABASE() AND TABLE_NAME='mdp_std_inv_trans' AND COLUMN_NAME='approved_flag')=0, 'ALTER TABLE `mdp_std_inv_trans` ADD COLUMN `approved_flag` TINYINT NOT NULL DEFAULT 1', 'DO 0');
  112. PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
  113. SET @sql := IF((SELECT COUNT(*) FROM information_schema.COLUMNS WHERE TABLE_SCHEMA=DATABASE() AND TABLE_NAME='mdp_std_inv_trans' AND COLUMN_NAME='void_flag')=0, 'ALTER TABLE `mdp_std_inv_trans` ADD COLUMN `void_flag` TINYINT NOT NULL DEFAULT 0', 'DO 0');
  114. PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
  115. SET @sql := IF((SELECT COUNT(*) FROM information_schema.COLUMNS WHERE TABLE_SCHEMA=DATABASE() AND TABLE_NAME='mdp_std_inv_trans' AND COLUMN_NAME='summary_flag')=0, 'ALTER TABLE `mdp_std_inv_trans` ADD COLUMN `summary_flag` TINYINT NOT NULL DEFAULT 0', 'DO 0');
  116. PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
  117. SET @sql := IF((SELECT COUNT(*) FROM information_schema.COLUMNS WHERE TABLE_SCHEMA=DATABASE() AND TABLE_NAME='mdp_std_inv_trans' AND COLUMN_NAME='ref_task_no')=0, 'ALTER TABLE `mdp_std_inv_trans` ADD COLUMN `ref_task_no` VARCHAR(80) NULL', 'DO 0');
  118. PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
  119. SET @sql := IF((SELECT COUNT(*) FROM information_schema.COLUMNS WHERE TABLE_SCHEMA=DATABASE() AND TABLE_NAME='mdp_std_inv_trans' AND COLUMN_NAME='doc_qty')=0, 'ALTER TABLE `mdp_std_inv_trans` ADD COLUMN `doc_qty` DECIMAL(18,6) NULL COMMENT ''单据数量,供完工判定与计划量比较''', 'DO 0');
  120. PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
  121. SET @sql := IF((SELECT COUNT(*) FROM information_schema.COLUMNS WHERE TABLE_SCHEMA=DATABASE() AND TABLE_NAME='mdp_std_inv_trans' AND COLUMN_NAME='line_closed_flag')=0, 'ALTER TABLE `mdp_std_inv_trans` ADD COLUMN `line_closed_flag` TINYINT NOT NULL DEFAULT 0', 'DO 0');
  122. PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
  123. SET @sql := IF((SELECT COUNT(*) FROM information_schema.COLUMNS WHERE TABLE_SCHEMA=DATABASE() AND TABLE_NAME='mdp_std_inv_trans' AND COLUMN_NAME='line_closed_time')=0, 'ALTER TABLE `mdp_std_inv_trans` ADD COLUMN `line_closed_time` DATETIME NULL', 'DO 0');
  124. PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
  125. -- 原始事务码迁到 src_trans_type_raw,trans_type 只留中立阶段码
  126. UPDATE mdp_std_inv_trans
  127. SET src_trans_type_raw = trans_type
  128. WHERE src_trans_type_raw IS NULL
  129. AND trans_type IS NOT NULL
  130. AND trans_type NOT IN ('MAT_RECEIPT','MAT_IQC_RELEASE','MAT_PUTAWAY','MAT_PICK','MAT_ISSUE','MAT_LINE','FG_RECEIPT','FG_PUTAWAY','FG_PICK','FG_SHIP','FG_PROD_RECEIPT','FG_FQC_RELEASE');
  131. UPDATE mdp_std_inv_trans
  132. SET trans_type = CASE src_trans_type_raw
  133. WHEN 'iss-wo' THEN 'MAT_ISSUE'
  134. WHEN 'rct-po' THEN 'MAT_RECEIPT'
  135. WHEN 'rct-unp' THEN 'MAT_RECEIPT'
  136. WHEN 'MAT_RECEIPT' THEN 'MAT_RECEIPT'
  137. WHEN 'MAT_IQC_RELEASE' THEN 'MAT_IQC_RELEASE'
  138. WHEN 'MAT_PUTAWAY' THEN 'MAT_PUTAWAY'
  139. WHEN 'MAT_PICK' THEN 'MAT_PICK'
  140. WHEN 'MAT_ISSUE' THEN 'MAT_ISSUE'
  141. WHEN 'MAT_LINE' THEN 'MAT_LINE'
  142. WHEN 'FG_RECEIPT' THEN 'FG_RECEIPT'
  143. WHEN 'FG_PUTAWAY' THEN 'FG_PUTAWAY'
  144. WHEN 'FG_PICK' THEN 'FG_PICK'
  145. WHEN 'FG_SHIP' THEN 'FG_SHIP'
  146. WHEN 'FG_PROD_RECEIPT' THEN 'FG_PROD_RECEIPT'
  147. WHEN 'FG_FQC_RELEASE' THEN 'FG_FQC_RELEASE'
  148. ELSE NULL END,
  149. biz_doc_type = CASE src_trans_type_raw
  150. WHEN 'iss-wo' THEN 'PROD_ISSUE'
  151. WHEN 'rct-wo' THEN 'PROD_RECEIPT'
  152. WHEN 'rct-po' THEN 'PUR_RECEIPT'
  153. WHEN 'rct-unp' THEN 'PUR_RECEIPT'
  154. WHEN 'iss-so' THEN 'SALES_SHIP'
  155. ELSE biz_doc_type END
  156. WHERE src_trans_type_raw IS NOT NULL
  157. AND (trans_type IS NULL OR trans_type NOT IN ('MAT_RECEIPT','MAT_IQC_RELEASE','MAT_PUTAWAY','MAT_PICK','MAT_ISSUE','MAT_LINE','FG_RECEIPT','FG_PUTAWAY','FG_PICK','FG_SHIP','FG_PROD_RECEIPT','FG_FQC_RELEASE'));
  158. -- 工单排程补列,并把唯一键扩成(租户、单据类型、单号),避免生产任务与销售订单重号覆盖
  159. SET @sql := IF((SELECT COUNT(*) FROM information_schema.COLUMNS WHERE TABLE_SCHEMA=DATABASE() AND TABLE_NAME='mdp_std_work_order_schedule' AND COLUMN_NAME='doc_type')=0, 'ALTER TABLE `mdp_std_work_order_schedule` ADD COLUMN `doc_type` VARCHAR(32) NOT NULL DEFAULT ''PROD_TASK''', 'DO 0');
  160. PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
  161. SET @sql := IF((SELECT COUNT(*) FROM information_schema.COLUMNS WHERE TABLE_SCHEMA=DATABASE() AND TABLE_NAME='mdp_std_work_order_schedule' AND COLUMN_NAME='approved_flag')=0, 'ALTER TABLE `mdp_std_work_order_schedule` ADD COLUMN `approved_flag` TINYINT NOT NULL DEFAULT 1', 'DO 0');
  162. PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
  163. SET @sql := IF((SELECT COUNT(*) FROM information_schema.COLUMNS WHERE TABLE_SCHEMA=DATABASE() AND TABLE_NAME='mdp_std_work_order_schedule' AND COLUMN_NAME='void_flag')=0, 'ALTER TABLE `mdp_std_work_order_schedule` ADD COLUMN `void_flag` TINYINT NOT NULL DEFAULT 0', 'DO 0');
  164. PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
  165. SET @sql := IF((SELECT COUNT(*) FROM information_schema.STATISTICS WHERE TABLE_SCHEMA=DATABASE() AND TABLE_NAME='mdp_std_work_order_schedule' AND INDEX_NAME='uk_std_work_order_schedule')>0 AND (SELECT COUNT(*) FROM information_schema.STATISTICS WHERE TABLE_SCHEMA=DATABASE() AND TABLE_NAME='mdp_std_work_order_schedule' AND INDEX_NAME='uk_std_wo_sched_type')=0, 'ALTER TABLE `mdp_std_work_order_schedule` DROP INDEX `uk_std_work_order_schedule`, ADD UNIQUE KEY `uk_std_wo_sched_type` (`tenant_id`,`doc_type`,`work_order`)', 'DO 0');
  166. PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
  167. SET @sql := IF((SELECT COUNT(*) FROM information_schema.COLUMNS WHERE TABLE_SCHEMA=DATABASE() AND TABLE_NAME='mdp_std_production_receipt' AND COLUMN_NAME='closed_flag')=0, 'ALTER TABLE `mdp_std_production_receipt` ADD COLUMN `closed_flag` TINYINT NOT NULL DEFAULT 0', 'DO 0');
  168. PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
  169. SET @sql := IF((SELECT COUNT(*) FROM information_schema.COLUMNS WHERE TABLE_SCHEMA=DATABASE() AND TABLE_NAME='mdp_std_production_receipt' AND COLUMN_NAME='closed_time')=0, 'ALTER TABLE `mdp_std_production_receipt` ADD COLUMN `closed_time` DATETIME NULL', 'DO 0');
  170. PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
  171. SET @sql := IF((SELECT COUNT(*) FROM information_schema.COLUMNS WHERE TABLE_SCHEMA=DATABASE() AND TABLE_NAME='mdp_std_production_receipt' AND COLUMN_NAME='task_no')=0, 'ALTER TABLE `mdp_std_production_receipt` ADD COLUMN `task_no` VARCHAR(80) NULL', 'DO 0');
  172. PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
  173. SET @sql := IF((SELECT COUNT(*) FROM information_schema.COLUMNS WHERE TABLE_SCHEMA=DATABASE() AND TABLE_NAME='mdp_std_purchase_receipt' AND COLUMN_NAME='approved_flag')=0, 'ALTER TABLE `mdp_std_purchase_receipt` ADD COLUMN `approved_flag` TINYINT NOT NULL DEFAULT 1', 'DO 0');
  174. PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
  175. SET @sql := IF((SELECT COUNT(*) FROM information_schema.COLUMNS WHERE TABLE_SCHEMA=DATABASE() AND TABLE_NAME='mdp_std_purchase_receipt' AND COLUMN_NAME='approved_time')=0, 'ALTER TABLE `mdp_std_purchase_receipt` ADD COLUMN `approved_time` DATETIME NULL', 'DO 0');
  176. PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
  177. SET @sql := IF((SELECT COUNT(*) FROM information_schema.COLUMNS WHERE TABLE_SCHEMA=DATABASE() AND TABLE_NAME='mdp_std_s6_report' AND COLUMN_NAME='start_work_date')=0, 'ALTER TABLE `mdp_std_s6_report` ADD COLUMN `start_work_date` DATETIME NULL', 'DO 0');
  178. PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
  179. SET @sql := IF((SELECT COUNT(*) FROM information_schema.COLUMNS WHERE TABLE_SCHEMA=DATABASE() AND TABLE_NAME='mdp_std_s6_report' AND COLUMN_NAME='task_no')=0, 'ALTER TABLE `mdp_std_s6_report` ADD COLUMN `task_no` VARCHAR(80) NULL', 'DO 0');
  180. PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
  181. SET @sql := IF((SELECT COUNT(*) FROM information_schema.COLUMNS WHERE TABLE_SCHEMA=DATABASE() AND TABLE_NAME='mdp_std_s6_report' AND COLUMN_NAME='domain')=0, 'ALTER TABLE `mdp_std_s6_report` ADD COLUMN `domain` VARCHAR(80) NULL', 'DO 0');
  182. PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
  183. SET @sql := IF((SELECT COUNT(*) FROM information_schema.COLUMNS WHERE TABLE_SCHEMA=DATABASE() AND TABLE_NAME='mdp_std_fqc_task' AND COLUMN_NAME='sales_order_no')=0, 'ALTER TABLE `mdp_std_fqc_task` ADD COLUMN `sales_order_no` VARCHAR(100) NULL', 'DO 0');
  184. PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
  185. SET @sql := IF((SELECT COUNT(*) FROM information_schema.COLUMNS WHERE TABLE_SCHEMA=DATABASE() AND TABLE_NAME='mdp_std_fqc_task' AND COLUMN_NAME='sales_order_line')=0, 'ALTER TABLE `mdp_std_fqc_task` ADD COLUMN `sales_order_line` VARCHAR(50) NULL', 'DO 0');
  186. PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
  187. SET @sql := IF((SELECT COUNT(*) FROM information_schema.COLUMNS WHERE TABLE_SCHEMA=DATABASE() AND TABLE_NAME='mdp_std_fqc_task' AND COLUMN_NAME='apply_flag')=0, 'ALTER TABLE `mdp_std_fqc_task` ADD COLUMN `apply_flag` TINYINT NOT NULL DEFAULT 0', 'DO 0');
  188. PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
  189. SET @sql := IF((SELECT COUNT(*) FROM information_schema.COLUMNS WHERE TABLE_SCHEMA=DATABASE() AND TABLE_NAME='mdp_std_fqc_task' AND COLUMN_NAME='domain')=0, 'ALTER TABLE `mdp_std_fqc_task` ADD COLUMN `domain` VARCHAR(80) NULL', 'DO 0');
  190. PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
  191. SET @sql := IF((SELECT COUNT(*) FROM information_schema.COLUMNS WHERE TABLE_SCHEMA=DATABASE() AND TABLE_NAME='mdp_std_so' AND COLUMN_NAME='line_closed_flag')=0, 'ALTER TABLE `mdp_std_so` ADD COLUMN `line_closed_flag` TINYINT NOT NULL DEFAULT 0', 'DO 0');
  192. PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
  193. SET @sql := IF((SELECT COUNT(*) FROM information_schema.COLUMNS WHERE TABLE_SCHEMA=DATABASE() AND TABLE_NAME='mdp_std_so' AND COLUMN_NAME='line_closed_time')=0, 'ALTER TABLE `mdp_std_so` ADD COLUMN `line_closed_time` DATETIME NULL', 'DO 0');
  194. PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
  195. -- 九张宽表去掉 t8 前缀,旧名保留为视图
  196. SET @sql := IF((SELECT COUNT(*) FROM information_schema.TABLES WHERE TABLE_SCHEMA=DATABASE() AND TABLE_NAME='dwd_t8_material_online_cycle' AND TABLE_TYPE='BASE TABLE')=1, 'RENAME TABLE `dwd_t8_material_online_cycle` TO `dwd_material_online_cycle`', 'DO 0');
  197. PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
  198. SET @sql := IF((SELECT COUNT(*) FROM information_schema.TABLES WHERE TABLE_SCHEMA=DATABASE() AND TABLE_NAME='dwd_material_online_cycle' AND TABLE_TYPE='BASE TABLE')=1 AND (SELECT COUNT(*) FROM information_schema.TABLES WHERE TABLE_SCHEMA=DATABASE() AND TABLE_NAME='dwd_t8_material_online_cycle')=0, 'CREATE VIEW `dwd_t8_material_online_cycle` AS SELECT * FROM `dwd_material_online_cycle`', 'DO 0');
  199. PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
  200. SET @sql := IF((SELECT COUNT(*) FROM information_schema.TABLES WHERE TABLE_SCHEMA=DATABASE() AND TABLE_NAME='dwd_t8_material_online_fulfillment' AND TABLE_TYPE='BASE TABLE')=1, 'RENAME TABLE `dwd_t8_material_online_fulfillment` TO `dwd_material_online_fulfillment`', 'DO 0');
  201. PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
  202. SET @sql := IF((SELECT COUNT(*) FROM information_schema.TABLES WHERE TABLE_SCHEMA=DATABASE() AND TABLE_NAME='dwd_material_online_fulfillment' AND TABLE_TYPE='BASE TABLE')=1 AND (SELECT COUNT(*) FROM information_schema.TABLES WHERE TABLE_SCHEMA=DATABASE() AND TABLE_NAME='dwd_t8_material_online_fulfillment')=0, 'CREATE VIEW `dwd_t8_material_online_fulfillment` AS SELECT * FROM `dwd_material_online_fulfillment`', 'DO 0');
  203. PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
  204. SET @sql := IF((SELECT COUNT(*) FROM information_schema.TABLES WHERE TABLE_SCHEMA=DATABASE() AND TABLE_NAME='dwd_t8_material_warehouse_efficiency' AND TABLE_TYPE='BASE TABLE')=1, 'RENAME TABLE `dwd_t8_material_warehouse_efficiency` TO `dwd_material_warehouse_efficiency`', 'DO 0');
  205. PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
  206. SET @sql := IF((SELECT COUNT(*) FROM information_schema.TABLES WHERE TABLE_SCHEMA=DATABASE() AND TABLE_NAME='dwd_material_warehouse_efficiency' AND TABLE_TYPE='BASE TABLE')=1 AND (SELECT COUNT(*) FROM information_schema.TABLES WHERE TABLE_SCHEMA=DATABASE() AND TABLE_NAME='dwd_t8_material_warehouse_efficiency')=0, 'CREATE VIEW `dwd_t8_material_warehouse_efficiency` AS SELECT * FROM `dwd_material_warehouse_efficiency`', 'DO 0');
  207. PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
  208. SET @sql := IF((SELECT COUNT(*) FROM information_schema.TABLES WHERE TABLE_SCHEMA=DATABASE() AND TABLE_NAME='dwd_t8_material_inventory_turnover' AND TABLE_TYPE='BASE TABLE')=1, 'RENAME TABLE `dwd_t8_material_inventory_turnover` TO `dwd_material_inventory_turnover`', 'DO 0');
  209. PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
  210. SET @sql := IF((SELECT COUNT(*) FROM information_schema.TABLES WHERE TABLE_SCHEMA=DATABASE() AND TABLE_NAME='dwd_material_inventory_turnover' AND TABLE_TYPE='BASE TABLE')=1 AND (SELECT COUNT(*) FROM information_schema.TABLES WHERE TABLE_SCHEMA=DATABASE() AND TABLE_NAME='dwd_t8_material_inventory_turnover')=0, 'CREATE VIEW `dwd_t8_material_inventory_turnover` AS SELECT * FROM `dwd_material_inventory_turnover`', 'DO 0');
  211. PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
  212. SET @sql := IF((SELECT COUNT(*) FROM information_schema.TABLES WHERE TABLE_SCHEMA=DATABASE() AND TABLE_NAME='dwd_t8_work_order_mfg_fulfillment' AND TABLE_TYPE='BASE TABLE')=1, 'RENAME TABLE `dwd_t8_work_order_mfg_fulfillment` TO `dwd_work_order_mfg_fulfillment`', 'DO 0');
  213. PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
  214. SET @sql := IF((SELECT COUNT(*) FROM information_schema.TABLES WHERE TABLE_SCHEMA=DATABASE() AND TABLE_NAME='dwd_work_order_mfg_fulfillment' AND TABLE_TYPE='BASE TABLE')=1 AND (SELECT COUNT(*) FROM information_schema.TABLES WHERE TABLE_SCHEMA=DATABASE() AND TABLE_NAME='dwd_t8_work_order_mfg_fulfillment')=0, 'CREATE VIEW `dwd_t8_work_order_mfg_fulfillment` AS SELECT * FROM `dwd_work_order_mfg_fulfillment`', 'DO 0');
  215. PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
  216. SET @sql := IF((SELECT COUNT(*) FROM information_schema.TABLES WHERE TABLE_SCHEMA=DATABASE() AND TABLE_NAME='dwd_t8_work_order_mfg_efficiency' AND TABLE_TYPE='BASE TABLE')=1, 'RENAME TABLE `dwd_t8_work_order_mfg_efficiency` TO `dwd_work_order_mfg_efficiency`', 'DO 0');
  217. PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
  218. SET @sql := IF((SELECT COUNT(*) FROM information_schema.TABLES WHERE TABLE_SCHEMA=DATABASE() AND TABLE_NAME='dwd_work_order_mfg_efficiency' AND TABLE_TYPE='BASE TABLE')=1 AND (SELECT COUNT(*) FROM information_schema.TABLES WHERE TABLE_SCHEMA=DATABASE() AND TABLE_NAME='dwd_t8_work_order_mfg_efficiency')=0, 'CREATE VIEW `dwd_t8_work_order_mfg_efficiency` AS SELECT * FROM `dwd_work_order_mfg_efficiency`', 'DO 0');
  219. PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
  220. SET @sql := IF((SELECT COUNT(*) FROM information_schema.TABLES WHERE TABLE_SCHEMA=DATABASE() AND TABLE_NAME='dwd_t8_order_shipment_cycle' AND TABLE_TYPE='BASE TABLE')=1, 'RENAME TABLE `dwd_t8_order_shipment_cycle` TO `dwd_order_shipment_cycle`', 'DO 0');
  221. PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
  222. SET @sql := IF((SELECT COUNT(*) FROM information_schema.TABLES WHERE TABLE_SCHEMA=DATABASE() AND TABLE_NAME='dwd_order_shipment_cycle' AND TABLE_TYPE='BASE TABLE')=1 AND (SELECT COUNT(*) FROM information_schema.TABLES WHERE TABLE_SCHEMA=DATABASE() AND TABLE_NAME='dwd_t8_order_shipment_cycle')=0, 'CREATE VIEW `dwd_t8_order_shipment_cycle` AS SELECT * FROM `dwd_order_shipment_cycle`', 'DO 0');
  223. PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
  224. SET @sql := IF((SELECT COUNT(*) FROM information_schema.TABLES WHERE TABLE_SCHEMA=DATABASE() AND TABLE_NAME='dwd_t8_order_shipment_fulfillment' AND TABLE_TYPE='BASE TABLE')=1, 'RENAME TABLE `dwd_t8_order_shipment_fulfillment` TO `dwd_order_shipment_fulfillment`', 'DO 0');
  225. PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
  226. SET @sql := IF((SELECT COUNT(*) FROM information_schema.TABLES WHERE TABLE_SCHEMA=DATABASE() AND TABLE_NAME='dwd_order_shipment_fulfillment' AND TABLE_TYPE='BASE TABLE')=1 AND (SELECT COUNT(*) FROM information_schema.TABLES WHERE TABLE_SCHEMA=DATABASE() AND TABLE_NAME='dwd_t8_order_shipment_fulfillment')=0, 'CREATE VIEW `dwd_t8_order_shipment_fulfillment` AS SELECT * FROM `dwd_order_shipment_fulfillment`', 'DO 0');
  227. PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
  228. SET @sql := IF((SELECT COUNT(*) FROM information_schema.TABLES WHERE TABLE_SCHEMA=DATABASE() AND TABLE_NAME='dwd_t8_finished_warehouse_efficiency' AND TABLE_TYPE='BASE TABLE')=1, 'RENAME TABLE `dwd_t8_finished_warehouse_efficiency` TO `dwd_finished_warehouse_efficiency`', 'DO 0');
  229. PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
  230. SET @sql := IF((SELECT COUNT(*) FROM information_schema.TABLES WHERE TABLE_SCHEMA=DATABASE() AND TABLE_NAME='dwd_finished_warehouse_efficiency' AND TABLE_TYPE='BASE TABLE')=1 AND (SELECT COUNT(*) FROM information_schema.TABLES WHERE TABLE_SCHEMA=DATABASE() AND TABLE_NAME='dwd_t8_finished_warehouse_efficiency')=0, 'CREATE VIEW `dwd_t8_finished_warehouse_efficiency` AS SELECT * FROM `dwd_finished_warehouse_efficiency`', 'DO 0');
  231. PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
  232. UPDATE ado_smart_ops_kpi_dimension_config
  233. SET SqlScript = REPLACE(SqlScript, 'dwd_t8_', 'dwd_'),
  234. BusinessSqlSource = REPLACE(BusinessSqlSource, 'dwd_t8_', 'dwd_')
  235. WHERE SqlScript LIKE '%dwd_t8_%' OR BusinessSqlSource LIKE '%dwd_t8_%';
  236. UPDATE ado_smart_ops_kpi_calc_config
  237. SET SqlScript = REPLACE(SqlScript, 'dwd_t8_', 'dwd_')
  238. WHERE SqlScript LIKE '%dwd_t8_%';