1.0.508.sql 23 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377
  1. -- =====================================================================================
  2. -- 1.0.508 · S0 MASTER DATA PLATFORM · PHASE 2 · C2 参考字典(8 个 ref_*)
  3. --
  4. -- C2-1 独立字典(各自 staging):
  5. -- BarCodeType → mdp_stg_s0_label_type → ref_label_type
  6. -- ImageType → mdp_stg_s0_sop_file_type → ref_sop_file_type
  7. -- qms_quality_base_type → mdp_stg_s0_quality_base_type → ref_quality_base_type
  8. -- C2-2 qms 字典族(**共用 mdp_stg_s0_qms_dict**,靠 source_table 隔离,同 Location/LocationShelf 范式):
  9. -- qms_sampscheme / qms_inspectionitems / qms_inspection_method
  10. -- qms_inspectionfreq / qms_inspectioninstru → ref_*
  11. --
  12. -- 身份口径(沿用 D-025):一律 tenant_id + 业务码;Domain/company/factory 均 LEGACY_SCOPE,不入唯一键。
  13. --
  14. -- 🔴 本组落地时实测出的两个框架地雷(写在这里免得下次重踩):
  15. -- ① bit(1) 源列若用 Int,对账每轮必挂:CAST(b'1' AS CHAR)=0x01 而 CAST(1 AS CHAR)=0x31。
  16. -- PriorityCode.OrderBy 正是 bit(1) —— 故 PriorityCode 整表本批缓做。
  17. -- ② qms 的 FSTATUS/FENABLE 是 varchar,值域含 `已审核`/`已启用`/`A`/`ENABLED`/`INVALID_STATUS`。
  18. -- 用 BoolTrue 会命中可辨识性守卫:4 张表整表归零;qms_inspectionfreq.FENABLE 恰好存活 8/13
  19. -- —— 部分静默丢失,最难发现。⇒ 10 个状态列一律 Str 原样透传。
  20. --
  21. -- 边界:不动源表、不动 S0 CRUD、不动前端、不碰 mdp_std_*、不复用任何 DOPDEMORQ staging。
  22. -- =====================================================================================
  23. -- ── 一、贴源表(4 张;UK 含 source_system,D-022 的结构性防串源前提)──
  24. CREATE TABLE IF NOT EXISTS `mdp_stg_s0_label_type` (
  25. `id` bigint NOT NULL AUTO_INCREMENT,
  26. `tenant_id` bigint NOT NULL DEFAULT 0,
  27. `factory_id` bigint DEFAULT NULL,
  28. `source_system` varchar(50) NOT NULL DEFAULT 'AIDOPDEV_MYSQL',
  29. `source_table` varchar(100) NOT NULL,
  30. `source_row_id` varchar(100) NOT NULL,
  31. `source_biz_key` varchar(300) DEFAULT NULL,
  32. `sync_batch_id` varchar(100) NOT NULL,
  33. `sync_time` datetime NOT NULL,
  34. `process_status` varchar(20) NOT NULL DEFAULT 'PENDING',
  35. `raw_data` json NOT NULL,
  36. `process_message` varchar(500) DEFAULT NULL,
  37. `update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  38. `create_time` datetime DEFAULT CURRENT_TIMESTAMP,
  39. PRIMARY KEY (`id`),
  40. UNIQUE KEY `uk_stg_s0_label_type` (`tenant_id`,`source_system`,`source_table`,`source_row_id`),
  41. KEY `idx_stg_s0_label_type_biz` (`source_biz_key`),
  42. KEY `idx_stg_s0_label_type_batch` (`tenant_id`,`sync_batch_id`)
  43. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='S0 贴源:标签类型(源 BarCodeType)';
  44. CREATE TABLE IF NOT EXISTS `mdp_stg_s0_sop_file_type` (
  45. `id` bigint NOT NULL AUTO_INCREMENT,
  46. `tenant_id` bigint NOT NULL DEFAULT 0,
  47. `factory_id` bigint DEFAULT NULL,
  48. `source_system` varchar(50) NOT NULL DEFAULT 'AIDOPDEV_MYSQL',
  49. `source_table` varchar(100) NOT NULL,
  50. `source_row_id` varchar(100) NOT NULL,
  51. `source_biz_key` varchar(300) DEFAULT NULL,
  52. `sync_batch_id` varchar(100) NOT NULL,
  53. `sync_time` datetime NOT NULL,
  54. `process_status` varchar(20) NOT NULL DEFAULT 'PENDING',
  55. `raw_data` json NOT NULL,
  56. `process_message` varchar(500) DEFAULT NULL,
  57. `update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  58. `create_time` datetime DEFAULT CURRENT_TIMESTAMP,
  59. PRIMARY KEY (`id`),
  60. UNIQUE KEY `uk_stg_s0_sop_file_type` (`tenant_id`,`source_system`,`source_table`,`source_row_id`),
  61. KEY `idx_stg_s0_sop_file_type_biz` (`source_biz_key`),
  62. KEY `idx_stg_s0_sop_file_type_batch` (`tenant_id`,`sync_batch_id`)
  63. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='S0 贴源:SOP 文件类型(源 ImageType)';
  64. CREATE TABLE IF NOT EXISTS `mdp_stg_s0_quality_base_type` (
  65. `id` bigint NOT NULL AUTO_INCREMENT,
  66. `tenant_id` bigint NOT NULL DEFAULT 0,
  67. `factory_id` bigint DEFAULT NULL,
  68. `source_system` varchar(50) NOT NULL DEFAULT 'AIDOPDEV_MYSQL',
  69. `source_table` varchar(100) NOT NULL,
  70. `source_row_id` varchar(100) NOT NULL,
  71. `source_biz_key` varchar(300) DEFAULT NULL,
  72. `sync_batch_id` varchar(100) NOT NULL,
  73. `sync_time` datetime NOT NULL,
  74. `process_status` varchar(20) NOT NULL DEFAULT 'PENDING',
  75. `raw_data` json NOT NULL,
  76. `process_message` varchar(500) DEFAULT NULL,
  77. `update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  78. `create_time` datetime DEFAULT CURRENT_TIMESTAMP,
  79. PRIMARY KEY (`id`),
  80. UNIQUE KEY `uk_stg_s0_quality_base_type` (`tenant_id`,`source_system`,`source_table`,`source_row_id`),
  81. KEY `idx_stg_s0_quality_base_type_biz` (`source_biz_key`),
  82. KEY `idx_stg_s0_quality_base_type_batch` (`tenant_id`,`sync_batch_id`)
  83. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='S0 贴源:质量基础类型(源 qms_quality_base_type)';
  84. CREATE TABLE IF NOT EXISTS `mdp_stg_s0_qms_dict` (
  85. `id` bigint NOT NULL AUTO_INCREMENT,
  86. `tenant_id` bigint NOT NULL DEFAULT 0,
  87. `factory_id` bigint DEFAULT NULL,
  88. `source_system` varchar(50) NOT NULL DEFAULT 'AIDOPDEV_MYSQL',
  89. `source_table` varchar(100) NOT NULL,
  90. `source_row_id` varchar(100) NOT NULL,
  91. `source_biz_key` varchar(300) DEFAULT NULL,
  92. `sync_batch_id` varchar(100) NOT NULL,
  93. `sync_time` datetime NOT NULL,
  94. `process_status` varchar(20) NOT NULL DEFAULT 'PENDING',
  95. `raw_data` json NOT NULL,
  96. `process_message` varchar(500) DEFAULT NULL,
  97. `update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  98. `create_time` datetime DEFAULT CURRENT_TIMESTAMP,
  99. PRIMARY KEY (`id`),
  100. UNIQUE KEY `uk_stg_s0_qms_dict` (`tenant_id`,`source_system`,`source_table`,`source_row_id`),
  101. KEY `idx_stg_s0_qms_dict_biz` (`source_biz_key`),
  102. KEY `idx_stg_s0_qms_dict_batch` (`tenant_id`,`sync_batch_id`)
  103. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='S0 贴源:qms 字典族(5 个源表共用,靠 source_table 隔离)';
  104. -- ── 二、参考表(8 张)──
  105. CREATE TABLE IF NOT EXISTS `ref_label_type` (
  106. `id` bigint NOT NULL AUTO_INCREMENT,
  107. `tenant_id` bigint NOT NULL,
  108. `label_type_code` varchar(100) NOT NULL COMMENT '标签类型码(**唯一业务键**)← $.bar_type',
  109. `label_class` varchar(50) DEFAULT NULL COMMENT '← $.class',
  110. `input_string` varchar(1000) DEFAULT NULL COMMENT '← $.input_string',
  111. `domain_code` varchar(50) DEFAULT NULL COMMENT 'LEGACY_SCOPE ← $.domain_code;**不是身份**',
  112. `company_id` bigint DEFAULT NULL COMMENT 'LEGACY_SCOPE ← $.company_ref_id',
  113. `factory_id` bigint DEFAULT NULL COMMENT 'LEGACY_SCOPE ← $.factory_ref_id',
  114. `source_updated_at` datetime DEFAULT NULL COMMENT '← $.update_time',
  115. `source_system` varchar(50) NOT NULL,
  116. `source_biz_key` varchar(300) NOT NULL,
  117. `sync_batch_id` varchar(64) NOT NULL,
  118. `sync_time` datetime NOT NULL,
  119. `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
  120. `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  121. PRIMARY KEY (`id`),
  122. UNIQUE KEY `uk_ref_label_type` (`tenant_id`,`label_type_code`),
  123. KEY `idx_ref_label_type_batch` (`sync_batch_id`)
  124. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='S0 参考字典:标签类型。源 BarCodeType,FULL REPLACE。';
  125. CREATE TABLE IF NOT EXISTS `ref_sop_file_type` (
  126. `id` bigint NOT NULL AUTO_INCREMENT,
  127. `tenant_id` bigint NOT NULL,
  128. `file_type_code` varchar(100) NOT NULL COMMENT 'SOP 文件类型码(**唯一业务键**)← $.image_type_id',
  129. `file_type_name` varchar(255) DEFAULT NULL COMMENT '← $.descr',
  130. `domain_code` varchar(50) DEFAULT NULL COMMENT 'LEGACY_SCOPE ← $.domain(注意源物理列叫 domain)',
  131. `source_system` varchar(50) NOT NULL,
  132. `source_biz_key` varchar(300) NOT NULL,
  133. `sync_batch_id` varchar(64) NOT NULL,
  134. `sync_time` datetime NOT NULL,
  135. `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
  136. `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  137. PRIMARY KEY (`id`),
  138. UNIQUE KEY `uk_ref_sop_file_type` (`tenant_id`,`file_type_code`),
  139. KEY `idx_ref_sop_file_type_batch` (`sync_batch_id`)
  140. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='S0 参考字典:SOP 文件类型。源 ImageType。**源表无任何时间列,故无 source_updated_at,不得回填**。';
  141. CREATE TABLE IF NOT EXISTS `ref_quality_base_type` (
  142. `id` bigint NOT NULL AUTO_INCREMENT,
  143. `tenant_id` bigint NOT NULL,
  144. `type_category` varchar(100) NOT NULL COMMENT '类别(**业务键第一段**)← $.type_category',
  145. `type_code` varchar(100) NOT NULL COMMENT '编码(**业务键第二段**)← $.type_code',
  146. `short_name` varchar(200) DEFAULT NULL COMMENT '← $.short_name',
  147. `full_name` varchar(255) DEFAULT NULL COMMENT '← $.full_name',
  148. `remark` varchar(500) DEFAULT NULL COMMENT '← $.remark',
  149. `is_active` tinyint(1) NOT NULL COMMENT '← $.is_active',
  150. `source_updated_at` datetime DEFAULT NULL COMMENT '← $.modify_time',
  151. `source_system` varchar(50) NOT NULL,
  152. `source_biz_key` varchar(300) NOT NULL,
  153. `sync_batch_id` varchar(64) NOT NULL,
  154. `sync_time` datetime NOT NULL,
  155. `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
  156. `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  157. PRIMARY KEY (`id`),
  158. UNIQUE KEY `uk_ref_quality_base_type` (`tenant_id`,`type_category`,`type_code`),
  159. KEY `idx_ref_quality_base_type_batch` (`sync_batch_id`)
  160. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='S0 参考字典:质量基础类型。源 qms_quality_base_type。键为两段(CRUD 查重即按 category+code)。';
  161. CREATE TABLE IF NOT EXISTS `ref_sampling_scheme` (
  162. `id` bigint NOT NULL AUTO_INCREMENT,
  163. `tenant_id` bigint NOT NULL,
  164. `scheme_code` varchar(255) NOT NULL COMMENT '抽样方案码(**唯一业务键**)← $.FNUMBER',
  165. `scheme_name` varchar(255) DEFAULT NULL COMMENT '← $.FNAME',
  166. `sampling_type` varchar(255) DEFAULT NULL COMMENT '← $.FSAMPLINGTYPE',
  167. `inspection_level` varchar(255) DEFAULT NULL COMMENT '← $.FINSPECTIONLEVEL',
  168. `strictness` varchar(255) DEFAULT NULL COMMENT '← $.FSTRICTNESS',
  169. `aql_value` varchar(255) DEFAULT NULL COMMENT '← $.FAQLVALUE(源为 varchar,保持 Str)',
  170. `inspection_type` varchar(255) DEFAULT NULL COMMENT '← $.FINSPECTIONTYPE',
  171. `status_code` varchar(255) DEFAULT NULL COMMENT '🔴 Str 透传 ← $.FSTATUS;值域含中文,禁 BoolTrue',
  172. `enable_code` varchar(255) DEFAULT NULL COMMENT '🔴 Str 透传 ← $.FENABLE;同上',
  173. `remark` varchar(255) DEFAULT NULL COMMENT '← $.FCOMMENT',
  174. `source_updated_at` datetime DEFAULT NULL COMMENT '← $.FMODIFYTIME',
  175. `source_system` varchar(50) NOT NULL,
  176. `source_biz_key` varchar(300) NOT NULL,
  177. `sync_batch_id` varchar(64) NOT NULL,
  178. `sync_time` datetime NOT NULL,
  179. `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
  180. `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  181. PRIMARY KEY (`id`),
  182. UNIQUE KEY `uk_ref_sampling_scheme` (`tenant_id`,`scheme_code`),
  183. KEY `idx_ref_sampling_scheme_batch` (`sync_batch_id`)
  184. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='S0 参考字典:抽样方案。源 qms_sampscheme。';
  185. CREATE TABLE IF NOT EXISTS `ref_inspection_item` (
  186. `id` bigint NOT NULL AUTO_INCREMENT,
  187. `tenant_id` bigint NOT NULL,
  188. `item_code` varchar(255) NOT NULL COMMENT '检验项目码(**唯一业务键**)← $.FNUMBER',
  189. `item_name` varchar(255) DEFAULT NULL COMMENT '← $.FNAME',
  190. `check_method_id` bigint DEFAULT NULL COMMENT '← $.FCHECKMETHOD;**源侧代理主键 id,非业务键**,不可用于 dim 解析',
  191. `check_basis_id` bigint DEFAULT NULL COMMENT '← $.FCHECKBASIS;同上',
  192. `status_code` varchar(255) DEFAULT NULL COMMENT '🔴 Str 透传 ← $.FSTATUS',
  193. `enable_code` varchar(255) DEFAULT NULL COMMENT '🔴 Str 透传 ← $.FENABLE',
  194. `remark` varchar(255) DEFAULT NULL COMMENT '← $.FCOMMENT',
  195. `source_updated_at` datetime DEFAULT NULL COMMENT '← $.FMODIFYTIME',
  196. `source_system` varchar(50) NOT NULL,
  197. `source_biz_key` varchar(300) NOT NULL,
  198. `sync_batch_id` varchar(64) NOT NULL,
  199. `sync_time` datetime NOT NULL,
  200. `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
  201. `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  202. PRIMARY KEY (`id`),
  203. UNIQUE KEY `uk_ref_inspection_item` (`tenant_id`,`item_code`),
  204. KEY `idx_ref_inspection_item_batch` (`sync_batch_id`)
  205. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='S0 参考字典:检验项目。源 qms_inspectionitems。';
  206. CREATE TABLE IF NOT EXISTS `ref_inspection_method` (
  207. `id` bigint NOT NULL AUTO_INCREMENT,
  208. `tenant_id` bigint NOT NULL,
  209. `method_code` varchar(255) NOT NULL COMMENT '检验方法码(**唯一业务键**)← $.FNUMBER',
  210. `method_name` varchar(255) DEFAULT NULL COMMENT '← $.FNAME',
  211. `control_strategy` varchar(255) DEFAULT NULL COMMENT '← $.FCTRLSTRATEGY',
  212. `status_code` varchar(255) DEFAULT NULL COMMENT '🔴 Str 透传 ← $.FSTATUS',
  213. `enable_code` varchar(255) DEFAULT NULL COMMENT '🔴 Str 透传 ← $.FENABLE',
  214. `remark` varchar(255) DEFAULT NULL COMMENT '← $.FCOMMENT',
  215. `source_updated_at` datetime DEFAULT NULL COMMENT '← $.FMODIFYTIME',
  216. `source_system` varchar(50) NOT NULL,
  217. `source_biz_key` varchar(300) NOT NULL,
  218. `sync_batch_id` varchar(64) NOT NULL,
  219. `sync_time` datetime NOT NULL,
  220. `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
  221. `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  222. PRIMARY KEY (`id`),
  223. UNIQUE KEY `uk_ref_inspection_method` (`tenant_id`,`method_code`),
  224. KEY `idx_ref_inspection_method_batch` (`sync_batch_id`)
  225. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='S0 参考字典:检验方法。源 qms_inspection_method。';
  226. CREATE TABLE IF NOT EXISTS `ref_inspection_frequency` (
  227. `id` bigint NOT NULL AUTO_INCREMENT,
  228. `tenant_id` bigint NOT NULL,
  229. `frequency_code` varchar(255) NOT NULL COMMENT '检验频次码(**唯一业务键**)← $.FNUMBER',
  230. `frequency_name` varchar(255) DEFAULT NULL COMMENT '← $.FNAME',
  231. `remark` varchar(255) DEFAULT NULL COMMENT '🔴 ← $.FREMARK(本表叫 FREMARK,**不是** FCOMMENT)',
  232. `status_code` varchar(255) DEFAULT NULL COMMENT '🔴 Str 透传 ← $.FSTATUS;值域 A/ENABLED',
  233. `enable_code` varchar(255) DEFAULT NULL COMMENT '🔴 Str 透传 ← $.FENABLE;值域 1/ENABLED —— BoolTrue 会存活 8 丢 5,最阴',
  234. `source_updated_at` datetime DEFAULT NULL COMMENT '← $.FMODIFYTIME',
  235. `source_system` varchar(50) NOT NULL,
  236. `source_biz_key` varchar(300) NOT NULL,
  237. `sync_batch_id` varchar(64) NOT NULL,
  238. `sync_time` datetime NOT NULL,
  239. `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
  240. `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  241. PRIMARY KEY (`id`),
  242. UNIQUE KEY `uk_ref_inspection_frequency` (`tenant_id`,`frequency_code`),
  243. KEY `idx_ref_inspection_frequency_batch` (`sync_batch_id`)
  244. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='S0 参考字典:检验频次。源 qms_inspectionfreq。';
  245. CREATE TABLE IF NOT EXISTS `ref_inspection_instrument` (
  246. `id` bigint NOT NULL AUTO_INCREMENT,
  247. `tenant_id` bigint NOT NULL,
  248. `instrument_code` varchar(255) NOT NULL COMMENT '量检具码(**唯一业务键**)← $.FNUMBER',
  249. `instrument_name` varchar(255) DEFAULT NULL COMMENT '← $.FNAME',
  250. `model` varchar(255) DEFAULT NULL COMMENT '← $.FMODEL',
  251. `specification` varchar(255) DEFAULT NULL COMMENT '← $.FSPECIFICATION',
  252. `manufacturer` varchar(255) DEFAULT NULL COMMENT '← $.FMANUFACTURER',
  253. `gauge_category` varchar(255) DEFAULT NULL COMMENT '← $.gauge_category(源自有 snake_case 列)',
  254. `calibration_cycle_days` int DEFAULT NULL COMMENT '← $.calibration_cycle_days',
  255. `next_calibration_date` varchar(50) DEFAULT NULL COMMENT '← $.next_calibration_date;源是 varchar 存日期串,**Str 透传不用 DateTimeSec**',
  256. `status_code` varchar(255) DEFAULT NULL COMMENT '🔴 Str 透传 ← $.FSTATUS',
  257. `enable_code` varchar(255) DEFAULT NULL COMMENT '🔴 Str 透传 ← $.FENABLE',
  258. `remark` varchar(255) DEFAULT NULL COMMENT '← $.FCOMMENT',
  259. `source_updated_at` datetime DEFAULT NULL COMMENT '← $.FMODIFYTIME',
  260. `source_system` varchar(50) NOT NULL,
  261. `source_biz_key` varchar(300) NOT NULL,
  262. `sync_batch_id` varchar(64) NOT NULL,
  263. `sync_time` datetime NOT NULL,
  264. `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
  265. `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  266. PRIMARY KEY (`id`),
  267. UNIQUE KEY `uk_ref_inspection_instrument` (`tenant_id`,`instrument_code`),
  268. KEY `idx_ref_inspection_instrument_batch` (`sync_batch_id`)
  269. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='S0 参考字典:量检具。源 qms_inspectioninstru。';
  270. -- ── 三、mdp_entity 入站配置(8 条,全 FULL / incr_column=NULL)──
  271. -- biz_key_expr 必须与 Definition.SourceBizKeyColumns 逐字一致,否则 AssertEntityContractAsync 当场报漂移。
  272. SET @src_id = (SELECT `id` FROM `mdp_source` WHERE `source_code` = 'AIDOPDEV_MYSQL' LIMIT 1);
  273. INSERT INTO `mdp_entity`
  274. (`tenant_id`,`source_id`,`entity_code`,`entity_name`,`entity_type`,
  275. `source_table_name`,`target_table_name`,`sync_mode`,`incr_column`,`batch_size`,
  276. `biz_key_expr`,`status`,`create_time`,`update_time`)
  277. SELECT 0, @src_id, 'S0_LABEL_TYPE', 'S0 标签类型字典入站', 'TABLE',
  278. 'BarCodeType', 'mdp_stg_s0_label_type', 'FULL', NULL, 5000,
  279. 'bar_type', 1, NOW(), NOW()
  280. WHERE @src_id IS NOT NULL
  281. AND NOT EXISTS (SELECT 1 FROM `mdp_entity` WHERE `entity_code` = 'S0_LABEL_TYPE');
  282. INSERT INTO `mdp_entity`
  283. (`tenant_id`,`source_id`,`entity_code`,`entity_name`,`entity_type`,
  284. `source_table_name`,`target_table_name`,`sync_mode`,`incr_column`,`batch_size`,
  285. `biz_key_expr`,`status`,`create_time`,`update_time`)
  286. SELECT 0, @src_id, 'S0_SOP_FILE_TYPE', 'S0 SOP 文件类型字典入站', 'TABLE',
  287. 'ImageType', 'mdp_stg_s0_sop_file_type', 'FULL', NULL, 5000,
  288. 'image_type_id', 1, NOW(), NOW()
  289. WHERE @src_id IS NOT NULL
  290. AND NOT EXISTS (SELECT 1 FROM `mdp_entity` WHERE `entity_code` = 'S0_SOP_FILE_TYPE');
  291. INSERT INTO `mdp_entity`
  292. (`tenant_id`,`source_id`,`entity_code`,`entity_name`,`entity_type`,
  293. `source_table_name`,`target_table_name`,`sync_mode`,`incr_column`,`batch_size`,
  294. `biz_key_expr`,`status`,`create_time`,`update_time`)
  295. SELECT 0, @src_id, 'S0_QUALITY_BASE_TYPE', 'S0 质量基础类型字典入站', 'TABLE',
  296. 'qms_quality_base_type', 'mdp_stg_s0_quality_base_type', 'FULL', NULL, 5000,
  297. 'type_category,type_code', 1, NOW(), NOW()
  298. WHERE @src_id IS NOT NULL
  299. AND NOT EXISTS (SELECT 1 FROM `mdp_entity` WHERE `entity_code` = 'S0_QUALITY_BASE_TYPE');
  300. INSERT INTO `mdp_entity`
  301. (`tenant_id`,`source_id`,`entity_code`,`entity_name`,`entity_type`,
  302. `source_table_name`,`target_table_name`,`sync_mode`,`incr_column`,`batch_size`,
  303. `biz_key_expr`,`status`,`create_time`,`update_time`)
  304. SELECT 0, @src_id, 'S0_SAMPLING_SCHEME', 'S0 抽样方案字典入站', 'TABLE',
  305. 'qms_sampscheme', 'mdp_stg_s0_qms_dict', 'FULL', NULL, 5000,
  306. 'FNUMBER', 1, NOW(), NOW()
  307. WHERE @src_id IS NOT NULL
  308. AND NOT EXISTS (SELECT 1 FROM `mdp_entity` WHERE `entity_code` = 'S0_SAMPLING_SCHEME');
  309. INSERT INTO `mdp_entity`
  310. (`tenant_id`,`source_id`,`entity_code`,`entity_name`,`entity_type`,
  311. `source_table_name`,`target_table_name`,`sync_mode`,`incr_column`,`batch_size`,
  312. `biz_key_expr`,`status`,`create_time`,`update_time`)
  313. SELECT 0, @src_id, 'S0_INSPECTION_ITEM', 'S0 检验项目字典入站', 'TABLE',
  314. 'qms_inspectionitems', 'mdp_stg_s0_qms_dict', 'FULL', NULL, 5000,
  315. 'FNUMBER', 1, NOW(), NOW()
  316. WHERE @src_id IS NOT NULL
  317. AND NOT EXISTS (SELECT 1 FROM `mdp_entity` WHERE `entity_code` = 'S0_INSPECTION_ITEM');
  318. INSERT INTO `mdp_entity`
  319. (`tenant_id`,`source_id`,`entity_code`,`entity_name`,`entity_type`,
  320. `source_table_name`,`target_table_name`,`sync_mode`,`incr_column`,`batch_size`,
  321. `biz_key_expr`,`status`,`create_time`,`update_time`)
  322. SELECT 0, @src_id, 'S0_INSPECTION_METHOD', 'S0 检验方法字典入站', 'TABLE',
  323. 'qms_inspection_method', 'mdp_stg_s0_qms_dict', 'FULL', NULL, 5000,
  324. 'FNUMBER', 1, NOW(), NOW()
  325. WHERE @src_id IS NOT NULL
  326. AND NOT EXISTS (SELECT 1 FROM `mdp_entity` WHERE `entity_code` = 'S0_INSPECTION_METHOD');
  327. INSERT INTO `mdp_entity`
  328. (`tenant_id`,`source_id`,`entity_code`,`entity_name`,`entity_type`,
  329. `source_table_name`,`target_table_name`,`sync_mode`,`incr_column`,`batch_size`,
  330. `biz_key_expr`,`status`,`create_time`,`update_time`)
  331. SELECT 0, @src_id, 'S0_INSPECTION_FREQUENCY', 'S0 检验频次字典入站', 'TABLE',
  332. 'qms_inspectionfreq', 'mdp_stg_s0_qms_dict', 'FULL', NULL, 5000,
  333. 'FNUMBER', 1, NOW(), NOW()
  334. WHERE @src_id IS NOT NULL
  335. AND NOT EXISTS (SELECT 1 FROM `mdp_entity` WHERE `entity_code` = 'S0_INSPECTION_FREQUENCY');
  336. INSERT INTO `mdp_entity`
  337. (`tenant_id`,`source_id`,`entity_code`,`entity_name`,`entity_type`,
  338. `source_table_name`,`target_table_name`,`sync_mode`,`incr_column`,`batch_size`,
  339. `biz_key_expr`,`status`,`create_time`,`update_time`)
  340. SELECT 0, @src_id, 'S0_INSPECTION_INSTRUMENT', 'S0 量检具字典入站', 'TABLE',
  341. 'qms_inspectioninstru', 'mdp_stg_s0_qms_dict', 'FULL', NULL, 5000,
  342. 'FNUMBER', 1, NOW(), NOW()
  343. WHERE @src_id IS NOT NULL
  344. AND NOT EXISTS (SELECT 1 FROM `mdp_entity` WHERE `entity_code` = 'S0_INSPECTION_INSTRUMENT');
  345. -- ── 回滚(注释,非可执行)──
  346. -- DROP TABLE IF EXISTS `ref_inspection_instrument`,`ref_inspection_frequency`,`ref_inspection_method`,
  347. -- `ref_inspection_item`,`ref_sampling_scheme`,`ref_quality_base_type`,`ref_sop_file_type`,`ref_label_type`;
  348. -- DROP TABLE IF EXISTS `mdp_stg_s0_qms_dict`,`mdp_stg_s0_quality_base_type`,
  349. -- `mdp_stg_s0_sop_file_type`,`mdp_stg_s0_label_type`;
  350. -- DELETE FROM `mdp_entity` WHERE `tenant_id`=0 AND `entity_code` IN
  351. -- ('S0_LABEL_TYPE','S0_SOP_FILE_TYPE','S0_QUALITY_BASE_TYPE','S0_SAMPLING_SCHEME',
  352. -- 'S0_INSPECTION_ITEM','S0_INSPECTION_METHOD','S0_INSPECTION_FREQUENCY','S0_INSPECTION_INSTRUMENT');