MdpSchemaDefinition.cs 71 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103
  1. namespace Admin.NET.Plugin.AiDOP.DataPlatform.Schema;
  2. /// <summary>
  3. /// 中立层表(mdp_std_* / mdp_stg_* / dwd_*)DDL 唯一来源。
  4. /// 服务通过 <see cref="MdpSchemaAligner.ExecuteAsync(ISqlSugarClient, string, SugarParameter[])"/> + <see cref="Ddl"/> 增量对齐;禁止在 *MdpSync* 服务内再写中立 CREATE。
  5. /// </summary>
  6. /// <remarks>
  7. /// 自 *MdpSync* 服务原文搬入;同表多处时保留列更多的一份(本轮无冲突合并)。
  8. /// 已知必含列:mdp_std_work_order_schedule.approved_flag/void_flag;mdp_std_s6_report.start_work_date/task_no/domain。
  9. /// mdp_std_fqc_result_detail 的 j1..j50 由原服务 Enumerable.Range 展开为静态列(与运行时一致)。
  10. /// T8BaseInboundMdpSyncService 的 StgDdl/StdDdl 为插值模板,未搬入。
  11. /// </remarks>
  12. public static class MdpSchemaDefinition
  13. {
  14. private static readonly Dictionary<string, string> Tables = new(StringComparer.OrdinalIgnoreCase)
  15. {
  16. ["mdp_std_fqc_result"] =
  17. """
  18. CREATE TABLE IF NOT EXISTS mdp_std_fqc_result (
  19. id BIGINT AUTO_INCREMENT PRIMARY KEY,
  20. tenant_id BIGINT NOT NULL DEFAULT 0,
  21. source_system VARCHAR(50) NOT NULL DEFAULT '',
  22. bill_no VARCHAR(80) NULL,
  23. inspect_time DATETIME NULL,
  24. production_batch_no VARCHAR(255) NULL,
  25. material_code VARCHAR(255) NULL,
  26. material_name VARCHAR(255) NULL,
  27. spec VARCHAR(255) NULL,
  28. inspector VARCHAR(255) NULL,
  29. inspect_qty DECIMAL(18,6) NULL,
  30. source_bill_no VARCHAR(100) NULL,
  31. production_order_no VARCHAR(255) NULL,
  32. order_qty DECIMAL(18,6) NULL,
  33. sap_work_order_no VARCHAR(64) NULL,
  34. judgment VARCHAR(32) NULL,
  35. qualified_qty DECIMAL(18,6) NULL,
  36. unqualified_qty DECIMAL(18,6) NULL,
  37. fire_no TEXT NULL,
  38. inspect_spec_no VARCHAR(255) NULL,
  39. inspect_spec_version VARCHAR(255) NULL,
  40. source_row_id VARCHAR(100) NOT NULL,
  41. source_biz_key VARCHAR(200) NULL,
  42. sync_batch_id VARCHAR(100) NOT NULL,
  43. sync_time DATETIME NOT NULL,
  44. update_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  45. UNIQUE KEY uk_mdp_std_fqc_result (tenant_id, source_row_id),
  46. KEY idx_mdp_std_fqc_result_bill (tenant_id, bill_no),
  47. KEY idx_mdp_std_fqc_result_inspect (tenant_id, inspect_time)
  48. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='S7 FQC 检验单(结果)标准层'
  49. """,
  50. ["mdp_std_fqc_result_detail"] =
  51. """
  52. CREATE TABLE IF NOT EXISTS mdp_std_fqc_result_detail (
  53. id BIGINT AUTO_INCREMENT PRIMARY KEY,
  54. tenant_id BIGINT NOT NULL DEFAULT 0,
  55. std_result_id BIGINT NULL,
  56. glid VARCHAR(100) NULL,
  57. seq_no INT NULL,
  58. inspection_item TEXT NULL,
  59. accept_standard TEXT NULL,
  60. tech_requirement TEXT NULL,
  61. sampling_plan TEXT NULL,
  62. sample_qty VARCHAR(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL,
  63. upper_limit VARCHAR(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL,
  64. lower_limit VARCHAR(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL,
  65. size_specification VARCHAR(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL,
  66. judgment VARCHAR(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL,
  67. non_numeric_ok BIGINT NULL,
  68. non_numeric_ng BIGINT NULL,
  69. remark TEXT NULL,
  70. j1 VARCHAR(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL,
  71. j2 VARCHAR(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL,
  72. j3 VARCHAR(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL,
  73. j4 VARCHAR(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL,
  74. j5 VARCHAR(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL,
  75. j6 VARCHAR(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL,
  76. j7 VARCHAR(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL,
  77. j8 VARCHAR(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL,
  78. j9 VARCHAR(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL,
  79. j10 VARCHAR(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL,
  80. j11 VARCHAR(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL,
  81. j12 VARCHAR(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL,
  82. j13 VARCHAR(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL,
  83. j14 VARCHAR(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL,
  84. j15 VARCHAR(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL,
  85. j16 VARCHAR(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL,
  86. j17 VARCHAR(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL,
  87. j18 VARCHAR(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL,
  88. j19 VARCHAR(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL,
  89. j20 VARCHAR(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL,
  90. j21 VARCHAR(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL,
  91. j22 VARCHAR(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL,
  92. j23 VARCHAR(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL,
  93. j24 VARCHAR(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL,
  94. j25 VARCHAR(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL,
  95. j26 VARCHAR(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL,
  96. j27 VARCHAR(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL,
  97. j28 VARCHAR(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL,
  98. j29 VARCHAR(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL,
  99. j30 VARCHAR(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL,
  100. j31 VARCHAR(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL,
  101. j32 VARCHAR(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL,
  102. j33 VARCHAR(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL,
  103. j34 VARCHAR(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL,
  104. j35 VARCHAR(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL,
  105. j36 VARCHAR(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL,
  106. j37 VARCHAR(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL,
  107. j38 VARCHAR(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL,
  108. j39 VARCHAR(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL,
  109. j40 VARCHAR(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL,
  110. j41 VARCHAR(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL,
  111. j42 VARCHAR(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL,
  112. j43 VARCHAR(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL,
  113. j44 VARCHAR(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL,
  114. j45 VARCHAR(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL,
  115. j46 VARCHAR(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL,
  116. j47 VARCHAR(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL,
  117. j48 VARCHAR(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL,
  118. j49 VARCHAR(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL,
  119. j50 VARCHAR(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL,
  120. source_row_id VARCHAR(100) NOT NULL,
  121. source_biz_key VARCHAR(200) NULL,
  122. sync_batch_id VARCHAR(100) NOT NULL,
  123. sync_time DATETIME NOT NULL,
  124. update_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  125. UNIQUE KEY uk_mdp_std_fqc_result_dtl (tenant_id, source_row_id),
  126. KEY idx_mdp_std_fqc_result_dtl_head (tenant_id, glid),
  127. KEY idx_mdp_std_fqc_result_dtl_stdres (std_result_id)
  128. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='S7 FQC 检验单明细标准层(j1-j50样本)'
  129. """,
  130. ["mdp_std_fqc_task"] =
  131. """
  132. CREATE TABLE IF NOT EXISTS mdp_std_fqc_task (
  133. id BIGINT AUTO_INCREMENT PRIMARY KEY,
  134. tenant_id BIGINT NOT NULL DEFAULT 0,
  135. source_system VARCHAR(50) NOT NULL DEFAULT '',
  136. bill_no VARCHAR(80) NULL,
  137. production_order_no VARCHAR(255) NULL,
  138. apply_org_id BIGINT NULL,
  139. apply_time DATETIME NULL,
  140. material_code VARCHAR(255) NULL,
  141. product_name VARCHAR(255) NULL,
  142. product_model VARCHAR(255) NULL,
  143. production_batch_no VARCHAR(255) NULL,
  144. order_qty DECIMAL(18,6) NULL,
  145. qty DECIMAL(18,6) NULL,
  146. applicant VARCHAR(50) NULL,
  147. remark TEXT NULL,
  148. priority VARCHAR(255) NULL,
  149. inspect_start_time DATETIME NULL,
  150. inspect_finish_time DATETIME NULL,
  151. inspector VARCHAR(255) NULL,
  152. inspect_progress VARCHAR(255) NULL,
  153. sales_order_no VARCHAR(100) NULL,
  154. sales_order_line VARCHAR(50) NULL,
  155. apply_flag TINYINT NOT NULL DEFAULT 0,
  156. domain VARCHAR(80) NULL,
  157. source_row_id VARCHAR(100) NOT NULL,
  158. source_biz_key VARCHAR(200) NULL,
  159. sync_batch_id VARCHAR(100) NOT NULL,
  160. sync_time DATETIME NOT NULL,
  161. update_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  162. UNIQUE KEY uk_mdp_std_fqc_task (tenant_id, source_system, source_row_id),
  163. KEY idx_mdp_std_fqc_task_bill (tenant_id, bill_no),
  164. KEY idx_mdp_std_fqc_task_apply (tenant_id, apply_time)
  165. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='S7 FQC 检验任务标准层'
  166. """,
  167. ["mdp_std_ipqc_inspection"] =
  168. """
  169. CREATE TABLE IF NOT EXISTS mdp_std_ipqc_inspection (
  170. id BIGINT AUTO_INCREMENT PRIMARY KEY,
  171. tenant_id BIGINT NOT NULL DEFAULT 0,
  172. factory_id BIGINT NULL DEFAULT 1,
  173. source_system VARCHAR(50) NOT NULL DEFAULT '',
  174. bill_no VARCHAR(64) NOT NULL,
  175. product_model VARCHAR(255) NULL,
  176. production_batch_no VARCHAR(255) NULL,
  177. production_work_order VARCHAR(255) NULL,
  178. result_judgement VARCHAR(32) NULL,
  179. attachment TEXT NULL,
  180. remark TEXT NULL,
  181. inspector VARCHAR(255) NULL,
  182. process_code VARCHAR(255) NULL,
  183. process_name VARCHAR(255) NULL,
  184. production_person VARCHAR(255) NULL,
  185. sample_qty DECIMAL(18,6) NULL,
  186. form_no VARCHAR(255) NULL,
  187. version_no VARCHAR(255) NULL,
  188. effective_date DATETIME NULL,
  189. material_code VARCHAR(255) NULL,
  190. material_name VARCHAR(255) NULL,
  191. inspec_standard_version VARCHAR(255) NULL,
  192. inspec_standard_code VARCHAR(255) NULL,
  193. inspection_status VARCHAR(255) NULL,
  194. source_row_id VARCHAR(100) NOT NULL,
  195. source_biz_key VARCHAR(200) NULL,
  196. sync_batch_id VARCHAR(100) NOT NULL,
  197. sync_time DATETIME NOT NULL,
  198. update_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  199. UNIQUE KEY uk_mdp_std_ipqc_insp (tenant_id, source_row_id),
  200. KEY idx_mdp_std_ipqc_insp_bill (tenant_id, bill_no),
  201. KEY idx_mdp_std_ipqc_insp_effdate (tenant_id, effective_date)
  202. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='S6过程检验单头标准层'
  203. """,
  204. ["mdp_std_ipqc_inspection_detail"] =
  205. """
  206. CREATE TABLE IF NOT EXISTS mdp_std_ipqc_inspection_detail (
  207. id BIGINT AUTO_INCREMENT PRIMARY KEY,
  208. tenant_id BIGINT NOT NULL DEFAULT 0,
  209. std_head_id BIGINT NULL,
  210. source_head_id VARCHAR(100) NULL,
  211. inspection_item TEXT NULL,
  212. inspection_basis TEXT NULL,
  213. technical_standard TEXT NULL,
  214. inspection_method TEXT NULL,
  215. upper_limit VARCHAR(255) NULL,
  216. lower_limit VARCHAR(255) NULL,
  217. process_code VARCHAR(255) NULL,
  218. process_name VARCHAR(255) NULL,
  219. measurement_instrument VARCHAR(255) NULL,
  220. inspector VARCHAR(255) NULL,
  221. inspection_time DATETIME NULL,
  222. sample_qty INT NULL,
  223. inspection_qty DECIMAL(18,6) NULL,
  224. unqualified_qty DECIMAL(18,6) NULL,
  225. result_judgement VARCHAR(32) NULL,
  226. non_numeric_ok INT NULL,
  227. non_numeric_ng INT NULL,
  228. remark TEXT NULL,
  229. attachment TEXT NULL,
  230. source_row_id VARCHAR(100) NOT NULL,
  231. source_biz_key VARCHAR(200) NULL,
  232. sync_batch_id VARCHAR(100) NOT NULL,
  233. sync_time DATETIME NOT NULL,
  234. update_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  235. UNIQUE KEY uk_mdp_std_ipqc_insp_dtl (tenant_id, source_row_id),
  236. KEY idx_mdp_std_ipqc_insp_dtl_head (std_head_id)
  237. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='S6过程检验单明细标准层(确定子集列;j1-j70后置)'
  238. """,
  239. ["mdp_std_iqc_receipt_state"] =
  240. """
  241. CREATE TABLE IF NOT EXISTS `mdp_std_iqc_receipt_state` (
  242. `id` BIGINT NOT NULL,
  243. `tenant_id` BIGINT NOT NULL,
  244. `domain` VARCHAR(20) NOT NULL DEFAULT '',
  245. `fbillno` VARCHAR(50) NOT NULL DEFAULT '',
  246. `qc_nbr` VARCHAR(50) NULL,
  247. `item_num` VARCHAR(100) NULL,
  248. `location` VARCHAR(50) NULL,
  249. `lot_serial` VARCHAR(100) NULL,
  250. `rct_nbr` VARCHAR(50) NULL,
  251. `pur_ord` VARCHAR(50) NULL,
  252. `pur_line` INT NULL,
  253. `potype` VARCHAR(20) NULL,
  254. `qty_ordered` DECIMAL(18,4) NOT NULL DEFAULT 0,
  255. `received_cum_qty` DECIMAL(18,4) NOT NULL DEFAULT 0,
  256. `returned_cum_qty` DECIMAL(18,4) NOT NULL DEFAULT 0,
  257. `sample_qty` DECIMAL(18,4) NOT NULL DEFAULT 0,
  258. `receipt_pending_qty` DECIMAL(18,4) NOT NULL DEFAULT 0,
  259. `receivable_detail_count` INT NOT NULL DEFAULT 0,
  260. `source_system` VARCHAR(50) NULL,
  261. `sync_batch_id` VARCHAR(50) NULL,
  262. `sync_time` DATETIME NULL,
  263. `create_time` DATETIME NULL,
  264. PRIMARY KEY (`id`),
  265. UNIQUE KEY `uk_mdp_std_iqc_rct` (`tenant_id`,`domain`,`fbillno`)
  266. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='L0 IQC收货标准层(只读贴源)'
  267. """,
  268. ["mdp_std_operation_schedule"] =
  269. """
  270. CREATE TABLE IF NOT EXISTS mdp_std_operation_schedule (
  271. id BIGINT AUTO_INCREMENT PRIMARY KEY,
  272. tenant_id BIGINT NOT NULL DEFAULT 0,
  273. factory_id BIGINT NULL,
  274. source_system VARCHAR(50) NOT NULL DEFAULT '',
  275. work_order VARCHAR(100) NOT NULL,
  276. op_no VARCHAR(50) NULL,
  277. work_center VARCHAR(100) NULL,
  278. line_code VARCHAR(100) NULL,
  279. item_code VARCHAR(100) NULL,
  280. plan_date DATETIME NULL,
  281. prod_date DATETIME NULL,
  282. start_time DATETIME NULL,
  283. end_time DATETIME NULL,
  284. ord_qty DECIMAL(18,6) NULL,
  285. comp_qty DECIMAL(18,6) NULL,
  286. run_crew DECIMAL(18,6) NULL,
  287. employee VARCHAR(200) NULL,
  288. source_biz_key VARCHAR(200) NULL,
  289. sync_batch_id VARCHAR(100) NOT NULL,
  290. sync_time DATETIME NOT NULL,
  291. update_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  292. UNIQUE KEY uk_std_operation_schedule (tenant_id, source_biz_key),
  293. KEY idx_std_operation_schedule_work_order (tenant_id, work_order),
  294. KEY idx_std_operation_schedule_batch (sync_batch_id)
  295. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='S2标准工序排程'
  296. """,
  297. ["mdp_std_outsource_issue"] =
  298. """
  299. CREATE TABLE IF NOT EXISTS mdp_std_outsource_issue (
  300. id BIGINT AUTO_INCREMENT PRIMARY KEY,
  301. tenant_id BIGINT NOT NULL DEFAULT 0,
  302. factory_id BIGINT NULL DEFAULT 1,
  303. source_system VARCHAR(50) NOT NULL DEFAULT '',
  304. bill_no VARCHAR(24) NOT NULL,
  305. issue_date DATETIME NULL,
  306. outsource_no VARCHAR(60) NULL,
  307. work_order VARCHAR(64) NULL,
  308. department_code VARCHAR(20) NULL,
  309. department_name VARCHAR(255) NULL,
  310. issuer VARCHAR(255) NULL,
  311. status VARCHAR(8) NULL,
  312. status_desc VARCHAR(20) NULL,
  313. remark VARCHAR(200) NULL,
  314. create_user VARCHAR(24) NULL,
  315. source_create_time DATETIME NULL,
  316. eff_date DATETIME NULL,
  317. source_biz_key VARCHAR(200) NULL,
  318. sync_batch_id VARCHAR(100) NOT NULL,
  319. sync_time DATETIME NOT NULL,
  320. update_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  321. UNIQUE KEY uk_mdp_std_outsrc_issue (tenant_id, bill_no),
  322. KEY idx_mdp_std_outsrc_issue_date (tenant_id, issue_date)
  323. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='S5委外发料单头标准层'
  324. """,
  325. ["mdp_std_outsource_issue_detail"] =
  326. """
  327. CREATE TABLE IF NOT EXISTS mdp_std_outsource_issue_detail (
  328. id BIGINT AUTO_INCREMENT PRIMARY KEY,
  329. tenant_id BIGINT NOT NULL DEFAULT 0,
  330. std_head_id BIGINT NULL,
  331. bill_no VARCHAR(24) NOT NULL,
  332. line SMALLINT NOT NULL DEFAULT 0,
  333. item_num VARCHAR(24) NULL,
  334. item_name TEXT NULL,
  335. um VARCHAR(8) NULL,
  336. qty_ord DECIMAL(18,6) NULL DEFAULT 0,
  337. location_from VARCHAR(8) NULL,
  338. location_to VARCHAR(8) NULL,
  339. status VARCHAR(8) NULL,
  340. remark TEXT NULL,
  341. source_biz_key VARCHAR(200) NULL,
  342. sync_batch_id VARCHAR(100) NOT NULL,
  343. sync_time DATETIME NOT NULL,
  344. update_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  345. UNIQUE KEY uk_mdp_std_outsrc_issue_dtl (tenant_id, source_biz_key),
  346. KEY idx_mdp_std_outsrc_issue_dtl_head (std_head_id),
  347. KEY idx_mdp_std_outsrc_issue_dtl_bill (tenant_id, bill_no)
  348. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='S5委外发料单明细标准层'
  349. """,
  350. ["mdp_std_production_issue"] =
  351. """
  352. CREATE TABLE IF NOT EXISTS mdp_std_production_issue (
  353. id BIGINT AUTO_INCREMENT PRIMARY KEY,
  354. tenant_id BIGINT NOT NULL DEFAULT 0,
  355. factory_id BIGINT NULL DEFAULT 1,
  356. source_system VARCHAR(50) NOT NULL DEFAULT '',
  357. domain VARCHAR(80) NOT NULL,
  358. rec_id INT NOT NULL,
  359. nbr VARCHAR(24) NULL,
  360. issue_date DATETIME NULL,
  361. status VARCHAR(8) NULL,
  362. status_desc VARCHAR(20) NULL,
  363. work_ord VARCHAR(64) NULL,
  364. department VARCHAR(8) NULL,
  365. department_desc VARCHAR(255) NULL,
  366. qty_ord DECIMAL(18,5) NULL DEFAULT 0,
  367. prod_line VARCHAR(8) NULL,
  368. applicant_name VARCHAR(12) NULL,
  369. issue_user VARCHAR(255) NULL,
  370. user1 TEXT NULL,
  371. remark VARCHAR(200) NULL,
  372. create_user VARCHAR(24) NULL,
  373. source_create_time DATETIME NULL,
  374. pretreatment_state VARCHAR(50) NULL,
  375. trans_type VARCHAR(24) NULL,
  376. trans_type_text VARCHAR(50) NULL,
  377. eff_date DATETIME NULL,
  378. address VARCHAR(120) NULL,
  379. source_biz_key VARCHAR(200) NULL,
  380. sync_batch_id VARCHAR(100) NOT NULL,
  381. sync_time DATETIME NOT NULL,
  382. create_time DATETIME DEFAULT CURRENT_TIMESTAMP,
  383. update_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  384. UNIQUE KEY uk_mdp_std_prod_issue (tenant_id, domain, rec_id),
  385. KEY idx_mdp_std_prod_issue_nbr (tenant_id, nbr),
  386. KEY idx_mdp_std_prod_issue_date (tenant_id, issue_date),
  387. KEY idx_mdp_std_prod_issue_status (tenant_id, status),
  388. KEY idx_mdp_std_prod_issue_workord (tenant_id, work_ord),
  389. KEY idx_mdp_std_prod_issue_prodline (tenant_id, prod_line),
  390. KEY idx_mdp_std_prod_issue_dept (tenant_id, department)
  391. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='S5生产领料单头标准层'
  392. """,
  393. ["mdp_std_production_receipt"] =
  394. """
  395. CREATE TABLE IF NOT EXISTS mdp_std_production_receipt (
  396. id BIGINT AUTO_INCREMENT PRIMARY KEY,
  397. tenant_id BIGINT NOT NULL DEFAULT 0,
  398. factory_id BIGINT NULL DEFAULT 1,
  399. source_system VARCHAR(50) NOT NULL DEFAULT '',
  400. domain VARCHAR(80) NOT NULL,
  401. master_rec_id INT NULL,
  402. detail_rec_id INT NOT NULL,
  403. nbr VARCHAR(24) NULL,
  404. line SMALLINT NOT NULL DEFAULT 0,
  405. receipt_date DATETIME NULL,
  406. status VARCHAR(8) NULL,
  407. status_desc VARCHAR(20) NULL,
  408. remark VARCHAR(200) NULL,
  409. prod_line VARCHAR(8) NULL,
  410. work_ord VARCHAR(64) NULL,
  411. erp_work_ord VARCHAR(60) NULL,
  412. department VARCHAR(8) NULL,
  413. department_desc VARCHAR(255) NULL,
  414. applicant_name VARCHAR(12) NULL,
  415. item_num VARCHAR(24) NULL,
  416. item_name VARCHAR(200) NULL,
  417. item_spec VARCHAR(200) NULL,
  418. um VARCHAR(8) NULL,
  419. location_to VARCHAR(8) NULL,
  420. location_to_desc VARCHAR(255) NULL,
  421. lot_serial VARCHAR(120) NULL,
  422. qty_rec DECIMAL(18,5) NULL DEFAULT 0,
  423. qty_to DECIMAL(18,5) NULL DEFAULT 0,
  424. location_from VARCHAR(8) NULL,
  425. location_from_desc VARCHAR(255) NULL,
  426. ord_nbr VARCHAR(48) NULL,
  427. source_biz_key VARCHAR(200) NULL,
  428. sync_batch_id VARCHAR(100) NOT NULL,
  429. sync_time DATETIME NOT NULL,
  430. closed_flag TINYINT NOT NULL DEFAULT 0,
  431. closed_time DATETIME NULL,
  432. task_no VARCHAR(80) NULL,
  433. create_time DATETIME DEFAULT CURRENT_TIMESTAMP,
  434. update_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  435. UNIQUE KEY uk_mdp_std_prod_receipt (tenant_id, domain, detail_rec_id),
  436. KEY idx_mdp_std_prod_rcpt_nbr (tenant_id, nbr),
  437. KEY idx_mdp_std_prod_rcpt_date (tenant_id, receipt_date),
  438. KEY idx_mdp_std_prod_rcpt_workord (tenant_id, work_ord),
  439. KEY idx_mdp_std_prod_rcpt_erp (tenant_id, erp_work_ord),
  440. KEY idx_mdp_std_prod_rcpt_lot (tenant_id, lot_serial),
  441. KEY idx_mdp_std_prod_rcpt_item (tenant_id, item_num),
  442. KEY idx_mdp_std_prod_rcpt_locto (tenant_id, location_to)
  443. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='S5生产入库单标准层(扁平,一行=一条明细)'
  444. """,
  445. ["mdp_std_production_return"] =
  446. """
  447. CREATE TABLE IF NOT EXISTS mdp_std_production_return (
  448. id BIGINT AUTO_INCREMENT PRIMARY KEY,
  449. tenant_id BIGINT NOT NULL DEFAULT 0,
  450. factory_id BIGINT NULL DEFAULT 1,
  451. source_system VARCHAR(50) NOT NULL DEFAULT '',
  452. domain VARCHAR(80) NOT NULL,
  453. rec_id INT NOT NULL,
  454. nbr VARCHAR(24) NULL,
  455. return_date DATETIME NULL,
  456. status VARCHAR(8) NULL,
  457. status_desc VARCHAR(20) NULL,
  458. work_ord VARCHAR(64) NULL,
  459. department VARCHAR(8) NULL,
  460. department_desc VARCHAR(255) NULL,
  461. qty_ord DECIMAL(18,5) NULL DEFAULT 0,
  462. prod_line VARCHAR(8) NULL,
  463. applicant_name VARCHAR(12) NULL,
  464. return_user VARCHAR(255) NULL,
  465. user1 TEXT NULL,
  466. user2 TEXT NULL,
  467. remark VARCHAR(200) NULL,
  468. create_user VARCHAR(24) NULL,
  469. source_create_time DATETIME NULL,
  470. trans_type VARCHAR(24) NULL,
  471. trans_type_text VARCHAR(50) NULL,
  472. eff_date DATETIME NULL,
  473. ufld1 VARCHAR(50) NULL,
  474. source_biz_key VARCHAR(200) NULL,
  475. sync_batch_id VARCHAR(100) NOT NULL,
  476. sync_time DATETIME NOT NULL,
  477. create_time DATETIME DEFAULT CURRENT_TIMESTAMP,
  478. update_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  479. UNIQUE KEY uk_mdp_std_prod_rtn (tenant_id, domain, rec_id),
  480. KEY idx_mdp_std_prod_rtn_nbr (tenant_id, nbr),
  481. KEY idx_mdp_std_prod_rtn_date (tenant_id, return_date),
  482. KEY idx_mdp_std_prod_rtn_status (tenant_id, status),
  483. KEY idx_mdp_std_prod_rtn_workord (tenant_id, work_ord),
  484. KEY idx_mdp_std_prod_rtn_prodline (tenant_id, prod_line),
  485. KEY idx_mdp_std_prod_rtn_dept (tenant_id, department)
  486. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='S5生产退料单头标准层'
  487. """,
  488. ["mdp_std_production_return_detail"] =
  489. """
  490. CREATE TABLE IF NOT EXISTS mdp_std_production_return_detail (
  491. id BIGINT AUTO_INCREMENT PRIMARY KEY,
  492. tenant_id BIGINT NOT NULL DEFAULT 0,
  493. std_head_id BIGINT NULL,
  494. domain VARCHAR(80) NOT NULL,
  495. nbr_rec_id INT NOT NULL,
  496. rec_id INT NULL,
  497. line SMALLINT NOT NULL DEFAULT 0,
  498. item_num VARCHAR(24) NULL,
  499. item_name VARCHAR(200) NULL,
  500. item_spec VARCHAR(200) NULL,
  501. um VARCHAR(8) NULL,
  502. qty_to DECIMAL(18,5) NULL DEFAULT 0,
  503. qty_rec DECIMAL(18,5) NULL DEFAULT 0,
  504. location_from VARCHAR(8) NULL,
  505. location_from_desc VARCHAR(255) NULL,
  506. location_to VARCHAR(8) NULL,
  507. location_to_desc VARCHAR(255) NULL,
  508. lot_serial VARCHAR(120) NULL,
  509. status VARCHAR(8) NULL,
  510. status_desc VARCHAR(20) NULL,
  511. remark VARCHAR(500) NULL,
  512. work_ord VARCHAR(64) NULL,
  513. source_biz_key VARCHAR(200) NULL,
  514. sync_batch_id VARCHAR(100) NOT NULL,
  515. sync_time DATETIME NOT NULL,
  516. create_time DATETIME DEFAULT CURRENT_TIMESTAMP,
  517. update_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  518. UNIQUE KEY uk_mdp_std_prod_rtn_dtl (tenant_id, domain, nbr_rec_id, line),
  519. KEY idx_mdp_std_prod_rtn_dtl_head (tenant_id, std_head_id),
  520. KEY idx_mdp_std_prod_rtn_dtl_item (tenant_id, item_num),
  521. KEY idx_mdp_std_prod_rtn_dtl_locto (tenant_id, location_to),
  522. KEY idx_mdp_std_prod_rtn_dtl_lot (tenant_id, lot_serial)
  523. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='S5生产退料单明细标准层'
  524. """,
  525. ["mdp_std_purchase_receipt"] =
  526. """
  527. CREATE TABLE IF NOT EXISTS mdp_std_purchase_receipt (
  528. id BIGINT AUTO_INCREMENT PRIMARY KEY,
  529. tenant_id BIGINT NOT NULL DEFAULT 0,
  530. factory_id BIGINT NULL DEFAULT 1,
  531. source_system VARCHAR(50) NOT NULL DEFAULT '',
  532. domain VARCHAR(24) NOT NULL,
  533. receiver VARCHAR(24) NOT NULL,
  534. line SMALLINT NOT NULL DEFAULT 0,
  535. rct_date DATETIME NULL,
  536. supp VARCHAR(20) NULL,
  537. sort_name VARCHAR(255) NULL,
  538. item_num VARCHAR(60) NULL,
  539. item_name VARCHAR(200) NULL,
  540. item_spec VARCHAR(200) NULL,
  541. um VARCHAR(8) NULL,
  542. qty_ordered DECIMAL(18,6) NULL DEFAULT 0,
  543. qty_received DECIMAL(18,6) NULL DEFAULT 0,
  544. lot_serial VARCHAR(120) NULL,
  545. location VARCHAR(8) NULL,
  546. ord_nbr VARCHAR(24) NULL,
  547. ord_line SMALLINT NULL,
  548. blanket_line INT NULL,
  549. pur_ord VARCHAR(24) NULL,
  550. pur_line SMALLINT NULL,
  551. sales_job VARCHAR(200) NULL,
  552. address1 VARCHAR(200) NULL,
  553. req VARCHAR(20) NULL,
  554. req_line INT NULL,
  555. dop_req VARCHAR(255) NULL,
  556. source_biz_key VARCHAR(200) NULL,
  557. sync_batch_id VARCHAR(100) NOT NULL,
  558. sync_time DATETIME NOT NULL,
  559. approved_flag TINYINT NOT NULL DEFAULT 1,
  560. approved_time DATETIME NULL,
  561. create_time DATETIME DEFAULT CURRENT_TIMESTAMP,
  562. update_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  563. UNIQUE KEY uk_mdp_std_pur_rct (tenant_id, domain, receiver, line),
  564. KEY idx_mdp_std_pur_rct_date (tenant_id, rct_date),
  565. KEY idx_mdp_std_pur_rct_item (tenant_id, item_num),
  566. KEY idx_mdp_std_pur_rct_supp (tenant_id, supp),
  567. KEY idx_mdp_std_pur_rct_purord (tenant_id, pur_ord),
  568. KEY idx_mdp_std_pur_rct_salesjob (tenant_id, sales_job),
  569. KEY idx_mdp_std_pur_rct_req (tenant_id, req),
  570. KEY idx_mdp_std_pur_rct_dopreq (tenant_id, dop_req)
  571. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='S5采购收货单标准层'
  572. """,
  573. ["mdp_std_s4_iqc"] =
  574. """
  575. CREATE TABLE IF NOT EXISTS mdp_std_s4_iqc (
  576. id BIGINT AUTO_INCREMENT PRIMARY KEY,
  577. tenant_id BIGINT NOT NULL DEFAULT 0,
  578. factory_id BIGINT NULL DEFAULT 1,
  579. source_system VARCHAR(50) NOT NULL DEFAULT '',
  580. po_no VARCHAR(50) NULL, po_line VARCHAR(50) NULL,
  581. supplier_code VARCHAR(50) NULL, item_code VARCHAR(50) NULL,
  582. receipt_qty DECIMAL(18,6) NULL DEFAULT 0,
  583. sample_qty DECIMAL(18,6) NULL DEFAULT 0,
  584. defect_qty DECIMAL(18,6) NULL DEFAULT 0,
  585. qc_result VARCHAR(20) NULL, receipt_date DATETIME NULL,
  586. source_biz_key VARCHAR(200) NULL,
  587. sync_batch_id VARCHAR(100) NOT NULL, sync_time DATETIME NOT NULL,
  588. update_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  589. UNIQUE KEY uk_std_s4_iqc (tenant_id, source_biz_key)
  590. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4
  591. """,
  592. ["mdp_std_s4_return"] =
  593. """
  594. CREATE TABLE IF NOT EXISTS mdp_std_s4_return (
  595. id BIGINT AUTO_INCREMENT PRIMARY KEY,
  596. tenant_id BIGINT NOT NULL DEFAULT 0,
  597. factory_id BIGINT NULL DEFAULT 1,
  598. source_system VARCHAR(50) NOT NULL DEFAULT '',
  599. po_no VARCHAR(50) NULL, po_line VARCHAR(50) NULL,
  600. supplier_code VARCHAR(50) NULL, item_code VARCHAR(50) NULL,
  601. return_qty DECIMAL(18,6) NULL DEFAULT 0,
  602. return_reason VARCHAR(200) NULL, return_status VARCHAR(50) NULL,
  603. source_biz_key VARCHAR(200) NULL,
  604. sync_batch_id VARCHAR(100) NOT NULL, sync_time DATETIME NOT NULL,
  605. update_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  606. UNIQUE KEY uk_std_s4_return (tenant_id, source_biz_key)
  607. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4
  608. """,
  609. ["mdp_std_s4_shipment"] =
  610. """
  611. CREATE TABLE IF NOT EXISTS mdp_std_s4_shipment (
  612. id BIGINT AUTO_INCREMENT PRIMARY KEY,
  613. tenant_id BIGINT NOT NULL DEFAULT 0,
  614. factory_id BIGINT NULL DEFAULT 1,
  615. source_system VARCHAR(50) NOT NULL DEFAULT '',
  616. shipment_no VARCHAR(50) NULL, po_no VARCHAR(50) NULL, po_line VARCHAR(50) NULL,
  617. supplier_code VARCHAR(50) NULL, item_code VARCHAR(50) NULL,
  618. ship_qty DECIMAL(18,6) NULL DEFAULT 0, ship_date DATETIME NULL,
  619. source_biz_key VARCHAR(200) NULL,
  620. sync_batch_id VARCHAR(100) NOT NULL, sync_time DATETIME NOT NULL,
  621. update_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  622. UNIQUE KEY uk_std_s4_shipment (tenant_id, source_biz_key)
  623. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4
  624. """,
  625. ["mdp_std_s4_shortage"] =
  626. """
  627. CREATE TABLE IF NOT EXISTS mdp_std_s4_shortage (
  628. id BIGINT AUTO_INCREMENT PRIMARY KEY,
  629. tenant_id BIGINT NOT NULL DEFAULT 0,
  630. factory_id BIGINT NULL DEFAULT 1,
  631. source_system VARCHAR(50) NOT NULL DEFAULT '',
  632. work_order VARCHAR(100) NULL, supplier_code VARCHAR(50) NULL, item_code VARCHAR(50) NULL,
  633. shortage_qty DECIMAL(18,6) NULL DEFAULT 0, risk_level VARCHAR(20) NULL, need_date DATETIME NULL,
  634. source_biz_key VARCHAR(200) NULL,
  635. sync_batch_id VARCHAR(100) NOT NULL, sync_time DATETIME NOT NULL,
  636. update_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  637. UNIQUE KEY uk_std_s4_shortage (tenant_id, source_biz_key)
  638. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4
  639. """,
  640. ["mdp_std_s6_report"] =
  641. """
  642. CREATE TABLE IF NOT EXISTS mdp_std_s6_report (
  643. id bigint NOT NULL AUTO_INCREMENT,
  644. tenant_id bigint NOT NULL DEFAULT 0,
  645. factory_id bigint DEFAULT 1,
  646. source_system varchar(50) NOT NULL DEFAULT 'T8',
  647. work_order_no varchar(100) NOT NULL,
  648. report_date datetime DEFAULT NULL,
  649. report_qty decimal(18,6) DEFAULT NULL,
  650. start_work_date datetime DEFAULT NULL,
  651. task_no varchar(80) DEFAULT NULL,
  652. domain varchar(80) DEFAULT NULL,
  653. ztid varchar(50) DEFAULT NULL,
  654. source_row_id varchar(100) NOT NULL,
  655. source_biz_key varchar(200) NOT NULL,
  656. sync_batch_id varchar(100) NOT NULL,
  657. sync_time datetime NOT NULL,
  658. update_time datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  659. PRIMARY KEY (id),
  660. UNIQUE KEY uk_mdp_std_s6_report (tenant_id, source_system, source_biz_key)
  661. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4
  662. """,
  663. ["mdp_std_work_order_schedule"] =
  664. """
  665. CREATE TABLE IF NOT EXISTS mdp_std_work_order_schedule (
  666. id BIGINT AUTO_INCREMENT PRIMARY KEY,
  667. tenant_id BIGINT NOT NULL DEFAULT 0,
  668. factory_id BIGINT NULL,
  669. source_system VARCHAR(50) NOT NULL DEFAULT '',
  670. work_order VARCHAR(100) NOT NULL,
  671. doc_type VARCHAR(32) NOT NULL DEFAULT 'PROD_TASK',
  672. sales_order_no VARCHAR(100) NULL,
  673. item_code VARCHAR(100) NULL,
  674. item_name VARCHAR(200) NULL,
  675. site_code VARCHAR(50) NULL,
  676. status VARCHAR(50) NULL,
  677. priority DECIMAL(18,6) NULL,
  678. urgent_flag TINYINT NOT NULL DEFAULT 0,
  679. qty_ordered DECIMAL(18,6) NULL,
  680. qty_completed DECIMAL(18,6) NULL,
  681. order_date DATETIME NULL,
  682. due_date DATETIME NULL,
  683. release_date DATETIME NULL,
  684. prod_line VARCHAR(100) NULL,
  685. specification VARCHAR(200) NULL,
  686. lot_serial VARCHAR(100) NULL,
  687. drawing_no VARCHAR(100) NULL,
  688. project VARCHAR(200) NULL,
  689. work_order_type VARCHAR(50) NULL,
  690. labor_variance DECIMAL(18,6) NULL,
  691. source_biz_key VARCHAR(200) NULL,
  692. sync_batch_id VARCHAR(100) NOT NULL,
  693. sync_time DATETIME NOT NULL,
  694. approved_flag TINYINT NOT NULL DEFAULT 1,
  695. void_flag TINYINT NOT NULL DEFAULT 0,
  696. update_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  697. UNIQUE KEY uk_std_wo_sched_type (tenant_id, doc_type, work_order),
  698. KEY idx_std_work_order_schedule_batch (sync_batch_id),
  699. KEY idx_std_work_order_schedule_due (tenant_id, due_date)
  700. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='S2标准工单排程'
  701. """,
  702. ["mdp_stg_fqc_pull"] =
  703. """
  704. CREATE TABLE IF NOT EXISTS mdp_stg_fqc_pull (
  705. id BIGINT PRIMARY KEY AUTO_INCREMENT,
  706. tenant_id BIGINT NOT NULL,
  707. source_system VARCHAR(50) NULL,
  708. source_table VARCHAR(200),
  709. source_row_id VARCHAR(200),
  710. source_biz_key VARCHAR(300) NULL,
  711. raw_data JSON,
  712. sync_batch_id VARCHAR(100),
  713. sync_time DATETIME NULL DEFAULT CURRENT_TIMESTAMP,
  714. process_status VARCHAR(20) NOT NULL DEFAULT 'PENDING',
  715. process_message VARCHAR(500) NULL,
  716. create_time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
  717. update_time DATETIME NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  718. UNIQUE KEY uk_source_key (source_system, source_table, source_biz_key),
  719. KEY idx_batch (sync_batch_id),
  720. KEY idx_src (source_table, source_row_id),
  721. KEY idx_tenant (tenant_id)
  722. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='S7 FQC 执行器贴源层(任务/结果/明细共表,source_table 区分)'
  723. """,
  724. ["mdp_stg_ipqc_inspection"] =
  725. """
  726. CREATE TABLE IF NOT EXISTS mdp_stg_ipqc_inspection (
  727. id BIGINT AUTO_INCREMENT PRIMARY KEY,
  728. tenant_id BIGINT NOT NULL DEFAULT 0,
  729. factory_id BIGINT NULL DEFAULT 1,
  730. source_system VARCHAR(50) NOT NULL DEFAULT '',
  731. source_table VARCHAR(100) NOT NULL,
  732. source_row_id VARCHAR(100) NOT NULL,
  733. source_biz_key VARCHAR(200) NULL,
  734. sync_batch_id VARCHAR(100) NOT NULL,
  735. sync_time DATETIME NOT NULL,
  736. process_status VARCHAR(20) NOT NULL DEFAULT 'PENDING',
  737. raw_data JSON NOT NULL,
  738. update_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  739. UNIQUE KEY uk_mdp_stg_ipqc_insp (tenant_id, source_table, source_row_id)
  740. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='S6过程检验单头贴源层'
  741. """,
  742. ["mdp_stg_ipqc_inspection_detail"] =
  743. """
  744. CREATE TABLE IF NOT EXISTS mdp_stg_ipqc_inspection_detail (
  745. id BIGINT AUTO_INCREMENT PRIMARY KEY,
  746. tenant_id BIGINT NOT NULL DEFAULT 0,
  747. factory_id BIGINT NULL DEFAULT 1,
  748. source_system VARCHAR(50) NOT NULL DEFAULT '',
  749. source_table VARCHAR(100) NOT NULL,
  750. source_row_id VARCHAR(100) NOT NULL,
  751. source_biz_key VARCHAR(200) NULL,
  752. sync_batch_id VARCHAR(100) NOT NULL,
  753. sync_time DATETIME NOT NULL,
  754. process_status VARCHAR(20) NOT NULL DEFAULT 'PENDING',
  755. raw_data JSON NOT NULL,
  756. update_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  757. UNIQUE KEY uk_mdp_stg_ipqc_insp_dtl (tenant_id, source_table, source_row_id)
  758. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='S6过程检验单明细贴源层'
  759. """,
  760. ["mdp_stg_ipqc_pull"] =
  761. """
  762. CREATE TABLE IF NOT EXISTS mdp_stg_ipqc_pull (
  763. id BIGINT PRIMARY KEY AUTO_INCREMENT,
  764. tenant_id BIGINT NOT NULL,
  765. source_system VARCHAR(50) NULL,
  766. source_table VARCHAR(200),
  767. source_row_id VARCHAR(200),
  768. source_biz_key VARCHAR(300) NULL,
  769. raw_data JSON,
  770. sync_batch_id VARCHAR(100),
  771. sync_time DATETIME NULL DEFAULT CURRENT_TIMESTAMP,
  772. process_status VARCHAR(20) NOT NULL DEFAULT 'PENDING',
  773. process_message VARCHAR(500) NULL,
  774. create_time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
  775. update_time DATETIME NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  776. UNIQUE KEY uk_source_key (source_system, source_table, source_biz_key),
  777. KEY idx_batch (sync_batch_id),
  778. KEY idx_src (source_table, source_row_id),
  779. KEY idx_tenant (tenant_id)
  780. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='S6 IPQC 执行器贴源层'
  781. """,
  782. ["mdp_stg_outsource_issue_pull"] =
  783. """
  784. CREATE TABLE IF NOT EXISTS mdp_stg_outsource_issue_pull (
  785. id BIGINT PRIMARY KEY AUTO_INCREMENT,
  786. tenant_id BIGINT NOT NULL,
  787. source_system VARCHAR(50) NULL,
  788. source_table VARCHAR(200),
  789. source_row_id VARCHAR(200),
  790. source_biz_key VARCHAR(300) NULL,
  791. raw_data JSON,
  792. sync_batch_id VARCHAR(100),
  793. sync_time DATETIME NULL DEFAULT CURRENT_TIMESTAMP,
  794. process_status VARCHAR(20) NOT NULL DEFAULT 'PENDING',
  795. process_message VARCHAR(500) NULL,
  796. create_time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
  797. update_time DATETIME NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  798. UNIQUE KEY uk_source_key (source_system, source_table, source_biz_key),
  799. KEY idx_batch (sync_batch_id),
  800. KEY idx_src (source_table, source_row_id),
  801. KEY idx_tenant (tenant_id)
  802. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='S5委外发料执行器贴源层(头/明细共表,source_table 区分)'
  803. """,
  804. ["mdp_stg_production_issue"] =
  805. """
  806. CREATE TABLE IF NOT EXISTS mdp_stg_production_issue (
  807. id BIGINT PRIMARY KEY AUTO_INCREMENT,
  808. tenant_id BIGINT NOT NULL,
  809. source_system VARCHAR(50) NULL,
  810. source_table VARCHAR(200),
  811. source_row_id VARCHAR(200),
  812. source_biz_key VARCHAR(300) NULL,
  813. raw_data JSON,
  814. sync_batch_id VARCHAR(100),
  815. sync_time DATETIME NULL DEFAULT CURRENT_TIMESTAMP,
  816. process_status VARCHAR(20) NOT NULL DEFAULT 'PENDING',
  817. process_message VARCHAR(500) NULL,
  818. create_time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
  819. update_time DATETIME NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  820. UNIQUE KEY uk_source_key (source_system, source_table, source_biz_key),
  821. KEY idx_batch (sync_batch_id),
  822. KEY idx_src (source_table, source_row_id),
  823. KEY idx_tenant (tenant_id)
  824. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='S5生产领料执行器贴源层'
  825. """,
  826. ["mdp_stg_production_receipt"] =
  827. """
  828. CREATE TABLE IF NOT EXISTS mdp_stg_production_receipt (
  829. id BIGINT PRIMARY KEY AUTO_INCREMENT,
  830. tenant_id BIGINT NOT NULL,
  831. source_system VARCHAR(50) NULL,
  832. source_table VARCHAR(200),
  833. source_row_id VARCHAR(200),
  834. source_biz_key VARCHAR(300) NULL,
  835. raw_data JSON,
  836. sync_batch_id VARCHAR(100),
  837. sync_time DATETIME NULL DEFAULT CURRENT_TIMESTAMP,
  838. process_status VARCHAR(20) NOT NULL DEFAULT 'PENDING',
  839. process_message VARCHAR(500) NULL,
  840. create_time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
  841. update_time DATETIME NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  842. UNIQUE KEY uk_source_key (source_system, source_table, source_biz_key),
  843. KEY idx_batch (sync_batch_id),
  844. KEY idx_src (source_table, source_row_id),
  845. KEY idx_tenant (tenant_id)
  846. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='S7成品入库执行器贴源层'
  847. """,
  848. ["mdp_stg_production_return"] =
  849. """
  850. CREATE TABLE IF NOT EXISTS mdp_stg_production_return (
  851. id BIGINT PRIMARY KEY AUTO_INCREMENT,
  852. tenant_id BIGINT NOT NULL,
  853. source_system VARCHAR(50) NULL,
  854. source_table VARCHAR(200),
  855. source_row_id VARCHAR(200),
  856. source_biz_key VARCHAR(300) NULL,
  857. raw_data JSON,
  858. sync_batch_id VARCHAR(100),
  859. sync_time DATETIME NULL DEFAULT CURRENT_TIMESTAMP,
  860. process_status VARCHAR(20) NOT NULL DEFAULT 'PENDING',
  861. process_message VARCHAR(500) NULL,
  862. create_time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
  863. update_time DATETIME NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  864. UNIQUE KEY uk_source_key (source_system, source_table, source_biz_key),
  865. KEY idx_batch (sync_batch_id),
  866. KEY idx_src (source_table, source_row_id),
  867. KEY idx_tenant (tenant_id)
  868. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='S5生产退料执行器贴源层(头/明细共表,source_table 区分)'
  869. """,
  870. ["mdp_stg_purchase_receipt"] =
  871. """
  872. CREATE TABLE IF NOT EXISTS mdp_stg_purchase_receipt (
  873. id BIGINT PRIMARY KEY AUTO_INCREMENT,
  874. tenant_id BIGINT NOT NULL,
  875. source_system VARCHAR(50) NULL,
  876. source_table VARCHAR(200),
  877. source_row_id VARCHAR(200),
  878. source_biz_key VARCHAR(300) NULL,
  879. raw_data JSON,
  880. sync_batch_id VARCHAR(100),
  881. sync_time DATETIME NULL DEFAULT CURRENT_TIMESTAMP,
  882. process_status VARCHAR(20) NOT NULL DEFAULT 'PENDING',
  883. process_message VARCHAR(500) NULL,
  884. create_time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
  885. update_time DATETIME NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  886. UNIQUE KEY uk_source_key (source_system, source_table, source_biz_key),
  887. KEY idx_batch (sync_batch_id),
  888. KEY idx_src (source_table, source_row_id),
  889. KEY idx_tenant (tenant_id)
  890. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='S5采购收货贴源层'
  891. """,
  892. ["mdp_stg_s4_iqc"] =
  893. """
  894. CREATE TABLE IF NOT EXISTS mdp_stg_s4_iqc (
  895. id BIGINT AUTO_INCREMENT PRIMARY KEY,
  896. tenant_id BIGINT NOT NULL DEFAULT 0,
  897. source_system VARCHAR(50) NOT NULL DEFAULT '',
  898. source_table VARCHAR(100) NOT NULL,
  899. source_row_id VARCHAR(100) NOT NULL,
  900. source_biz_key VARCHAR(200) NULL,
  901. sync_batch_id VARCHAR(100) NOT NULL,
  902. sync_time DATETIME NOT NULL,
  903. process_status VARCHAR(20) NOT NULL DEFAULT 'PENDING',
  904. process_message VARCHAR(500) NULL,
  905. raw_data JSON NOT NULL,
  906. create_time DATETIME NULL DEFAULT CURRENT_TIMESTAMP,
  907. update_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  908. UNIQUE KEY uk_mdp_stg_s4_iqc (tenant_id, source_table, source_row_id),
  909. UNIQUE KEY uk_source_key (source_system, source_table, source_biz_key)
  910. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4
  911. """,
  912. ["mdp_stg_s4_return"] =
  913. """
  914. CREATE TABLE IF NOT EXISTS mdp_stg_s4_return LIKE mdp_stg_s4_iqc
  915. """,
  916. ["mdp_stg_s4_shipment"] =
  917. """
  918. CREATE TABLE IF NOT EXISTS mdp_stg_s4_shipment LIKE mdp_stg_s4_iqc
  919. """,
  920. ["mdp_stg_s4_shortage"] =
  921. """
  922. CREATE TABLE IF NOT EXISTS mdp_stg_s4_shortage LIKE mdp_stg_s4_iqc
  923. """,
  924. ["mdp_stg_s6_report"] =
  925. """
  926. CREATE TABLE IF NOT EXISTS mdp_stg_s6_report (
  927. id bigint NOT NULL AUTO_INCREMENT,
  928. tenant_id bigint NOT NULL DEFAULT 0,
  929. source_system varchar(50) DEFAULT NULL,
  930. source_table varchar(200) DEFAULT NULL,
  931. source_row_id varchar(200) DEFAULT NULL,
  932. source_biz_key varchar(300) DEFAULT NULL,
  933. raw_data json DEFAULT NULL,
  934. sync_batch_id varchar(100) DEFAULT NULL,
  935. create_time datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
  936. sync_time datetime DEFAULT CURRENT_TIMESTAMP,
  937. process_status varchar(20) NOT NULL DEFAULT 'PENDING',
  938. process_message varchar(500) DEFAULT NULL,
  939. update_time datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  940. PRIMARY KEY (id),
  941. UNIQUE KEY uk_source_key (source_system, source_table, source_biz_key)
  942. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4
  943. """,
  944. ["mdp_stg_schedule"] =
  945. """
  946. CREATE TABLE IF NOT EXISTS mdp_stg_schedule (
  947. id BIGINT AUTO_INCREMENT PRIMARY KEY,
  948. tenant_id BIGINT NOT NULL DEFAULT 0,
  949. factory_id VARCHAR(64) NULL,
  950. source_system VARCHAR(50) NOT NULL DEFAULT '',
  951. source_table VARCHAR(100) NOT NULL,
  952. source_row_id VARCHAR(100) NOT NULL,
  953. source_biz_key VARCHAR(200) NULL,
  954. sync_batch_id VARCHAR(100) NOT NULL,
  955. sync_time DATETIME NOT NULL,
  956. process_status VARCHAR(20) NOT NULL DEFAULT 'PENDING',
  957. process_message VARCHAR(500) NULL,
  958. raw_data JSON NOT NULL,
  959. create_time DATETIME NULL DEFAULT CURRENT_TIMESTAMP,
  960. update_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  961. UNIQUE KEY uk_mdp_stg_schedule (tenant_id, source_table, source_row_id),
  962. UNIQUE KEY uk_source_key (source_system, source_table, source_biz_key),
  963. KEY idx_mdp_stg_schedule_batch (sync_batch_id),
  964. KEY idx_mdp_stg_schedule_biz (source_biz_key)
  965. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='S2生产排程贴源层'
  966. """,
  967. ["dwd_order_schedule_trans"] =
  968. """
  969. CREATE TABLE IF NOT EXISTS dwd_order_schedule_trans (
  970. id BIGINT AUTO_INCREMENT PRIMARY KEY,
  971. tenant_id BIGINT NOT NULL DEFAULT 0,
  972. factory_id BIGINT NOT NULL DEFAULT 1,
  973. stat_date DATE NOT NULL,
  974. doc_type VARCHAR(32) NOT NULL DEFAULT 'PROD_TASK',
  975. work_order VARCHAR(100) NOT NULL,
  976. sales_order_no VARCHAR(100) NULL,
  977. item_code VARCHAR(100) NULL,
  978. item_name VARCHAR(200) NULL,
  979. site_code VARCHAR(50) NULL,
  980. prod_line VARCHAR(100) NULL,
  981. status VARCHAR(50) NULL,
  982. urgent_flag TINYINT NOT NULL DEFAULT 0,
  983. qty_ordered DECIMAL(18,6) NULL,
  984. qty_completed DECIMAL(18,6) NULL,
  985. order_date DATETIME NULL,
  986. due_date DATETIME NULL,
  987. release_date DATETIME NULL,
  988. first_plan_date DATETIME NULL,
  989. last_plan_date DATETIME NULL,
  990. first_start_time DATETIME NULL,
  991. last_end_time DATETIME NULL,
  992. operation_count INT NOT NULL DEFAULT 0,
  993. scheduled_qty DECIMAL(18,6) NULL,
  994. completed_op_qty DECIMAL(18,6) NULL,
  995. schedule_cycle_days DECIMAL(18,6) NULL,
  996. schedule_satisfaction_flag TINYINT NOT NULL DEFAULT 0,
  997. wip_qty DECIMAL(18,6) NULL,
  998. resource_person_count DECIMAL(18,6) NULL,
  999. calc_batch_id VARCHAR(100) NOT NULL,
  1000. calc_time DATETIME NOT NULL,
  1001. update_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  1002. UNIQUE KEY uk_dwd_order_schedule_trans (tenant_id, doc_type, work_order, calc_batch_id),
  1003. KEY idx_dwd_order_schedule_trans_batch (calc_batch_id),
  1004. KEY idx_dwd_order_schedule_trans_stat (tenant_id, stat_date),
  1005. KEY idx_dwd_order_schedule_trans_order (tenant_id, sales_order_no)
  1006. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='S2订单工单排程DWD'
  1007. """,
  1008. ["dwd_requirement_examine_detail"] =
  1009. """
  1010. CREATE TABLE IF NOT EXISTS dwd_requirement_examine_detail (
  1011. id BIGINT AUTO_INCREMENT PRIMARY KEY,
  1012. tenant_id BIGINT NOT NULL,
  1013. factory_id BIGINT NULL,
  1014. stat_date DATE NOT NULL,
  1015. row_id BIGINT NOT NULL,
  1016. parent_row_id BIGINT NULL,
  1017. examine_id BIGINT NULL,
  1018. order_entry_id BIGINT NULL,
  1019. bill_no VARCHAR(100) NULL,
  1020. morder_no VARCHAR(100) NULL,
  1021. num VARCHAR(100) NULL,
  1022. item_number VARCHAR(100) NULL,
  1023. item_name VARCHAR(200) NULL,
  1024. bom_number VARCHAR(100) NULL,
  1025. model VARCHAR(200) NULL,
  1026. kitting_time DATE NULL,
  1027. item_type VARCHAR(50) NULL,
  1028. erp_cls_name VARCHAR(80) NULL,
  1029. qty DECIMAL(18,4) NULL,
  1030. wastage DECIMAL(18,4) NULL,
  1031. -- ── 齐套三量的标准名(B3 决定:不另起别名列)──────────────────────────────
  1032. -- need_count / use_qty / lack_qty 就是本表「需求量 / 已满足量 / 缺口量」的标准列名,
  1033. -- 不新增 required_qty / satisfied_qty / shortage_qty 别名列:
  1034. -- 别名列 = 同一个数字有两个写入点,迟早对不上;而重算一套更会凭空造出与源系统不一致的口径。
  1035. -- 恒等式 lack_qty + use_qty = need_count 由源系统保证,
  1036. -- 实测(aidopdev,只读)1019060/1019060 行全部成立,最大绝对偏差 0.0000,三列均无 NULL。
  1037. need_count DECIMAL(18,4) NULL COMMENT '标准列·需求量(齐套恒等式:lack_qty + use_qty = need_count)',
  1038. sqty DECIMAL(18,4) NULL,
  1039. use_qty DECIMAL(18,4) NULL COMMENT '标准列·已满足量(不要新增 satisfied_qty 别名)',
  1040. self_lack_qty DECIMAL(18,4) NULL,
  1041. lack_qty DECIMAL(18,4) NULL COMMENT '标准列·缺口量(不要新增 shortage_qty 别名)',
  1042. mo_qty DECIMAL(18,4) NULL,
  1043. make_qty DECIMAL(18,4) NULL,
  1044. purchase_qty DECIMAL(18,4) NULL,
  1045. purchase_occupy_qty DECIMAL(18,4) NULL,
  1046. satisfy_time DATE NULL,
  1047. have_ic_subs VARCHAR(10) NULL,
  1048. substitute_code VARCHAR(100) NULL,
  1049. create_time DATETIME NULL,
  1050. source_system VARCHAR(50) NOT NULL DEFAULT '',
  1051. sync_batch_id VARCHAR(100) NOT NULL,
  1052. calc_batch_id VARCHAR(100) NOT NULL,
  1053. calc_time DATETIME NOT NULL,
  1054. update_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  1055. -- ⚠️ 以下三列必须与 UpdateScripts/1.0.516.sql 的 ALTER ... ADD COLUMN 保持「同名同类型同顺序」。
  1056. -- 本表没有 SqlSugar 实体、也没有 UpdateScripts 的 CREATE,schema 由「本 DDL + ALTER 脚本」两处共同定义:
  1057. -- 新库走本 DDL 一次建全,旧库走 ALTER 追加。ALTER ADD COLUMN 默认追加到表尾,
  1058. -- 故这三列在此也必须放在 update_time 之后,否则新库与迁移库的列序会分叉。
  1059. bom_level INT NULL COMMENT 'BOM 层级 ← raw_data.$.level;1=成品根,>1=投入料',
  1060. material_role VARCHAR(32) NULL COMMENT '物料角色枚举:FINISHED_GOOD_ROOT / INPUT_MATERIAL',
  1061. is_current_flag TINYINT NOT NULL DEFAULT 0 COMMENT '1=属于当前快照批次;同一 (tenant, factory) 作用域内恒只有一个批次为 1',
  1062. UNIQUE KEY uk_dwd_req_exam_detail (tenant_id, row_id, calc_batch_id),
  1063. KEY idx_req_exam_tenant_batch (tenant_id, calc_batch_id),
  1064. KEY idx_req_exam_bill (tenant_id, bill_no),
  1065. KEY idx_req_exam_item (tenant_id, item_number),
  1066. KEY idx_req_exam_current (tenant_id, is_current_flag, morder_no)
  1067. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='S1需求明细核验DWD'
  1068. """,
  1069. ["dwd_s4_purchase_execution"] =
  1070. """
  1071. CREATE TABLE IF NOT EXISTS dwd_s4_purchase_execution (
  1072. id BIGINT AUTO_INCREMENT PRIMARY KEY,
  1073. tenant_id BIGINT NOT NULL, factory_id BIGINT NOT NULL DEFAULT 1, stat_date DATE NOT NULL,
  1074. po_no VARCHAR(50) NULL, po_line VARCHAR(50) NULL,
  1075. supplier_code VARCHAR(50) NULL, item_code VARCHAR(50) NULL,
  1076. order_qty DECIMAL(12,3) NULL DEFAULT 0, delivery_qty DECIMAL(12,3) NULL DEFAULT 0,
  1077. received_qty DECIMAL(12,3) NULL DEFAULT 0, returned_qty DECIMAL(12,3) NULL DEFAULT 0,
  1078. shortage_qty DECIMAL(12,3) NULL DEFAULT 0,
  1079. due_date DATE NULL, actual_arrival_date DATE NULL, risk_level VARCHAR(20) NULL,
  1080. source_system VARCHAR(20) NULL DEFAULT '',
  1081. sync_batch_id VARCHAR(100) NULL, sync_time DATETIME NULL,
  1082. update_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  1083. UNIQUE KEY uk_dwd_s4_pe (tenant_id, stat_date, po_no, po_line, item_code),
  1084. KEY idx_dwd_s4_pe_date (tenant_id, stat_date),
  1085. KEY idx_dwd_s4_pe_supplier (tenant_id, supplier_code)
  1086. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4
  1087. """,
  1088. };
  1089. /// <summary>按表名取 CREATE TABLE IF NOT EXISTS(或 LIKE)原文。</summary>
  1090. public static string Ddl(string tableName)
  1091. {
  1092. if (string.IsNullOrWhiteSpace(tableName))
  1093. throw new ArgumentException("表名不能为空", nameof(tableName));
  1094. if (!Tables.TryGetValue(tableName.Trim(), out var ddl))
  1095. throw new InvalidOperationException($"未登记中台表 DDL:{tableName}");
  1096. return ddl;
  1097. }
  1098. /// <summary>已登记的中立表名(测试与清单用)。</summary>
  1099. public static IReadOnlyCollection<string> TableNames => Tables.Keys;
  1100. }