linan6_dorm_precheck.sql 29 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460
  1. -- 临安6号楼住宿预检查脚本(根据 学校学生住宿情况@临安6号楼.md 自动生成)
  2. -- 说明: 本脚本仅做预检查,不会对正式表进行增删改
  3. DROP TEMPORARY TABLE IF EXISTS tmp_assign_input_raw;
  4. CREATE TEMPORARY TABLE tmp_assign_input_raw (
  5. room_code VARCHAR(20) NOT NULL,
  6. bed_name VARCHAR(20) NOT NULL,
  7. student_name VARCHAR(50) NULL,
  8. class_name_raw VARCHAR(100) NULL,
  9. remark VARCHAR(200) NULL,
  10. source_line INT NULL,
  11. raw_text VARCHAR(255) NULL
  12. );
  13. INSERT INTO tmp_assign_input_raw(room_code, bed_name, student_name, class_name_raw, remark, source_line, raw_text)
  14. VALUES
  15. ('6102', '1', '杨长明', '数控241', NULL, 32, '1 杨长明 数控241'),
  16. ('6102', '2', '王忆凡', '数控241', NULL, 33, '2 王忆凡 数控241'),
  17. ('6102', '3', '谢宇轩', '数控241', NULL, 34, '3 谢宇轩 数控241'),
  18. ('6102', '4', '童乐', '数控241', NULL, 35, '4 童乐 数控241'),
  19. ('6102', '5', '徐俊浩', '数控241', NULL, 36, '5 徐俊浩 数控241'),
  20. ('6102', '6', '许嘉琪', '数控241', NULL, 37, '6 许嘉琪 数控241'),
  21. ('6103', '1', '陈钰林', '数控241', NULL, 41, '1 陈钰林 数控241'),
  22. ('6103', '2', '席天羽', '数控241', NULL, 42, '2 席天羽 数控241'),
  23. ('6103', '3', '王博远', '数控241', NULL, 43, '3 王博远 数控241'),
  24. ('6103', '4', '胡子浩', '数控241', NULL, 44, '4 胡子浩 数控241'),
  25. ('6103', '5', NULL, NULL, NULL, 45, '5'),
  26. ('6103', '6', '张成', '数控241', NULL, 46, '6 张成 数控241'),
  27. ('6104', '1', '司乐乐', '数控241', NULL, 50, '1 司乐乐 数控241'),
  28. ('6104', '2', '高开廉', '数控241', NULL, 51, '2 高开廉 数控241'),
  29. ('6104', '3', '罗睿', '数控241', NULL, 52, '3 罗睿 数控241'),
  30. ('6104', '4', '栾丁瑞', '数控241', NULL, 53, '4 栾丁瑞 数控241'),
  31. ('6104', '5', '江禹麒', '数控241', NULL, 54, '5 江禹麒 数控241'),
  32. ('6104', '6', '刘泽', '数控241', NULL, 55, '6 刘泽 数控241'),
  33. ('6105', '1', '范宇浩', '数控241', NULL, 59, '1 范宇浩 数控241'),
  34. ('6105', '2', '肖祥文', '数控241', NULL, 60, '2 肖祥文 数控241'),
  35. ('6105', '3', NULL, NULL, NULL, 61, '3'),
  36. ('6105', '4', '于金硕', '数控241', NULL, 62, '4 于金硕 数控241'),
  37. ('6105', '5', '甘小丰', '数控241', NULL, 63, '5 甘小丰 数控241'),
  38. ('6105', '6', '刘泳刚', '数控241', NULL, 64, '6 刘泳刚 数控241'),
  39. ('6106', '1', '潘程', '数控241', NULL, 68, '1 潘程 数控241'),
  40. ('6106', '2', '陈宇晨', '数控241', NULL, 69, '2 陈宇晨 数控241'),
  41. ('6106', '3', '程国彬', '数控241', NULL, 70, '3 程国彬 数控241'),
  42. ('6106', '4', '王建', '数控241', NULL, 71, '4 王建 数控241'),
  43. ('6106', '5', '汤轩然', '数控241', NULL, 72, '5 汤轩然 数控241'),
  44. ('6106', '6', '薛清阳', '数控241', NULL, 73, '6 薛清阳 数控241'),
  45. ('6107', '1', '顾锦涛', '数控241', NULL, 77, '1 顾锦涛 数控241'),
  46. ('6107', '2', '余昌皓', '数控241', NULL, 78, '2 余昌皓 数控241'),
  47. ('6107', '3', '吴成睿', '数控241', NULL, 79, '3 吴成睿 数控241'),
  48. ('6107', '4', '任周杰', '数控241', NULL, 80, '4 任周杰 数控241'),
  49. ('6107', '5', '陈郑浩', '数控241', NULL, 81, '5 陈郑浩 数控241'),
  50. ('6107', '6', '沈子皓', '数控241', NULL, 82, '6 沈子皓 数控241'),
  51. ('6108', '1', NULL, NULL, NULL, 86, '1'),
  52. ('6108', '2', '俞子恒', '数控241', NULL, 87, '2 俞子恒 数控241'),
  53. ('6108', '3', NULL, NULL, NULL, 88, '3'),
  54. ('6108', '4', '彭俊峰', '数控241', NULL, 89, '4 彭俊峰 数控241'),
  55. ('6108', '5', '项嘉瑞', '数控241', NULL, 90, '5 项嘉瑞 数控241'),
  56. ('6108', '6', '张世豪', '数控241', NULL, 91, '6 张世豪 数控241'),
  57. ('6109', '1', '徐方浩', '数控241', NULL, 95, '1 徐方浩 数控241'),
  58. ('6109', '2', NULL, NULL, NULL, 96, '2'),
  59. ('6109', '3', '吴进博', '数控241', NULL, 97, '3 吴进博 数控241'),
  60. ('6109', '4', '王龙华', '数控241', NULL, 98, '4 王龙华 数控241'),
  61. ('6109', '5', NULL, NULL, NULL, 99, '5'),
  62. ('6109', '6', '顾承轩', '数控241', NULL, 100, '6 顾承轩 数控241'),
  63. ('6110', '1', '高晓卫', '汽修241', NULL, 104, '1 高晓卫 汽修241'),
  64. ('6110', '2', '曹楚阳', '汽修241', NULL, 105, '2 曹楚阳 汽修241'),
  65. ('6110', '3', '岑烨宇', '汽修241', NULL, 106, '3 岑烨宇 汽修241'),
  66. ('6110', '4', '施烨超', '汽修241', NULL, 107, '4 施烨超 汽修241'),
  67. ('6110', '5', '吴明浩', '汽修241', NULL, 108, '5 吴明浩 汽修241'),
  68. ('6110', '6', '杨承霖', '汽修241', NULL, 109, '6 杨承霖 汽修241'),
  69. ('6111', '1', '岳俊辉', '汽修241', NULL, 113, '1 岳俊辉 汽修241'),
  70. ('6111', '2', '潘一诺', '汽修241', NULL, 114, '2 潘一诺 汽修241'),
  71. ('6111', '3', '夏俊杰', '汽修241', NULL, 115, '3 夏俊杰 汽修241'),
  72. ('6111', '4', '何宇航', '汽修241', NULL, 116, '4 何宇航 汽修241'),
  73. ('6111', '5', NULL, NULL, NULL, 117, '5'),
  74. ('6111', '6', NULL, NULL, NULL, 118, '6'),
  75. ('6112', '1', '陈轲杰', '汽修241', NULL, 122, '1 陈轲杰 汽修241'),
  76. ('6112', '2', '伍家乐', '汽修241', NULL, 123, '2 伍家乐 汽修241'),
  77. ('6112', '3', '周颂', '汽修241', NULL, 124, '3 周颂 汽修241'),
  78. ('6112', '4', NULL, NULL, NULL, 125, '4'),
  79. ('6112', '5', NULL, NULL, NULL, 126, '5'),
  80. ('6112', '6', NULL, NULL, NULL, 127, '6'),
  81. ('6201', '1', '邵靖靖', '数字制造231', '集训', 131, '1 邵靖靖 数字制造231 集训'),
  82. ('6201', '2', '余旭峰', '数字制造231', '集训', 132, '2 余旭峰 数字制造231 集训'),
  83. ('6201', '3', '朱德良', '数字制造231', '集训', 133, '3 朱德良 数字制造231 集训'),
  84. ('6201', '4', NULL, NULL, NULL, 134, '4'),
  85. ('6201', '5', NULL, NULL, NULL, 135, '5'),
  86. ('6201', '6', NULL, NULL, NULL, 136, '6'),
  87. ('6203', '1', '吕宇浩', '数字制造241', NULL, 140, '1 吕宇浩 数字制造241'),
  88. ('6203', '2', '於威成', '数字制造241', NULL, 141, '2 於威成 数字制造241'),
  89. ('6203', '3', '郭靖宇', '数字制造241', NULL, 142, '3 郭靖宇 数字制造241'),
  90. ('6203', '4', '李歆杭', '数字制造241', NULL, 143, '4 李歆杭 数字制造241'),
  91. ('6203', '5', '曾翔宇', '数字制造241', NULL, 144, '5 曾翔宇 数字制造241'),
  92. ('6203', '6', '蔡赵鑫', '数字制造241', NULL, 145, '6 蔡赵鑫 数字制造241'),
  93. ('6204', '1', '姚马彦', '数字制造241', NULL, 149, '1 姚马彦 数字制造241'),
  94. ('6204', '2', '俞哲琦', '数字制造241', NULL, 150, '2 俞哲琦 数字制造241'),
  95. ('6204', '3', '金嘉诚', '数字制造241', NULL, 151, '3 金嘉诚 数字制造241'),
  96. ('6204', '4', '江睿宇', '数字制造241', NULL, 152, '4 江睿宇 数字制造241'),
  97. ('6204', '5', '魏鑫泉', '数字制造241', NULL, 153, '5 魏鑫泉 数字制造241'),
  98. ('6204', '6', '查心宇', '数字制造241', NULL, 154, '6 查心宇 数字制造241'),
  99. ('6205', '1', '胡恩泽', '数字制造241', NULL, 158, '1 胡恩泽 数字制造241'),
  100. ('6205', '2', '袁玉瑞', '数字制造241', NULL, 159, '2 袁玉瑞 数字制造241'),
  101. ('6205', '3', '罗嗣豪', '数字制造241', NULL, 160, '3 罗嗣豪 数字制造241'),
  102. ('6205', '4', '李轩宇', '数字制造241', NULL, 161, '4 李轩宇 数字制造241'),
  103. ('6205', '5', '吴勇豪', '数字制造241', NULL, 162, '5 吴勇豪 数字制造241'),
  104. ('6205', '6', '陈怿轩', '数字制造241', NULL, 163, '6 陈怿轩 数字制造241'),
  105. ('6206', '1', '叶枫', '数字制造241', NULL, 167, '1 叶枫 数字制造241'),
  106. ('6206', '2', '林鑫垒', '数字制造241', NULL, 168, '2 林鑫垒 数字制造241'),
  107. ('6206', '3', NULL, NULL, NULL, 169, '3'),
  108. ('6206', '4', '孙翔', '数字制造241', NULL, 170, '4 孙翔 数字制造241'),
  109. ('6206', '5', '徐贞浩', '数字制造241', NULL, 171, '5 徐贞浩 数字制造241'),
  110. ('6206', '6', '许颖辉', '数字制造241', NULL, 172, '6 许颖辉 数字制造241'),
  111. ('6207', '1', '倪懿泽', '数字制造241', NULL, 176, '1 倪懿泽 数字制造241'),
  112. ('6207', '2', '兰瑞锋', '数字制造241', NULL, 177, '2 兰瑞锋 数字制造241'),
  113. ('6207', '3', '程军强', '数字制造241', NULL, 178, '3 程军强 数字制造241'),
  114. ('6207', '4', '詹宇涛', '数字制造241', NULL, 179, '4 詹宇涛 数字制造241'),
  115. ('6207', '5', '方平钦', '数字制造241', NULL, 180, '5 方平钦 数字制造241'),
  116. ('6207', '6', '孔一鹏', '数字制造241', NULL, 181, '6 孔一鹏 数字制造241'),
  117. ('6208', '1', '蒋粒富', '数字制造241', NULL, 185, '1 蒋粒富 数字制造241'),
  118. ('6208', '2', '罗允浩', '数字制造241', NULL, 186, '2 罗允浩 数字制造241'),
  119. ('6208', '3', '金佳乐', '数字制造241', NULL, 187, '3 金佳乐 数字制造241'),
  120. ('6208', '4', '孙宇', '数字制造241', NULL, 188, '4 孙宇 数字制造241'),
  121. ('6208', '5', '张敏浩', '数字制造241', NULL, 189, '5 张敏浩 数字制造241'),
  122. ('6208', '6', '倪嘉诚', '数字制造241', NULL, 190, '6 倪嘉诚 数字制造241'),
  123. ('6209', '1', '祝城凯', '汽修241', NULL, 194, '1 祝城凯 汽修241'),
  124. ('6209', '2', '董金灏', '汽修241', NULL, 195, '2 董金灏 汽修241'),
  125. ('6209', '3', '徐佳', '汽修241', NULL, 196, '3 徐佳 汽修241'),
  126. ('6209', '4', '沈锦涵', '汽修241', NULL, 197, '4 沈锦涵 汽修241'),
  127. ('6209', '5', NULL, NULL, NULL, 198, '5'),
  128. ('6209', '6', NULL, NULL, NULL, 199, '6'),
  129. ('6210', '1', '倪骏熠', '汽修241', NULL, 203, '1 倪骏熠 汽修241'),
  130. ('6210', '2', '殷锦峰', '汽修241', NULL, 204, '2 殷锦峰 汽修241'),
  131. ('6210', '3', '陈坤', '汽修241', NULL, 205, '3 陈坤 汽修241'),
  132. ('6210', '4', '余帅', '汽修241', NULL, 206, '4 余帅 汽修241'),
  133. ('6210', '5', '蒋锡承', '汽修241', NULL, 207, '5 蒋锡承 汽修241'),
  134. ('6210', '6', NULL, NULL, NULL, 208, '6'),
  135. ('6211', '1', '李好', '汽修241', NULL, 212, '1 李好 汽修241'),
  136. ('6211', '2', '沈晓愚', '汽修241', NULL, 213, '2 沈晓愚 汽修241'),
  137. ('6211', '3', '李鑫宇', '汽修241', NULL, 214, '3 李鑫宇 汽修241'),
  138. ('6211', '4', '刘德颖', '汽修241', NULL, 215, '4 刘德颖 汽修241'),
  139. ('6211', '5', '滕浩', '汽修241', NULL, 216, '5 滕浩 汽修241'),
  140. ('6211', '6', '张翌轩', '汽修241', NULL, 217, '6 张翌轩 汽修241'),
  141. ('6212', '1', '赵海瑞', '汽修241', NULL, 222, '1 赵海瑞 汽修241'),
  142. ('6212', '2', '王启杰', '汽修241', NULL, 223, '2 王启杰 汽修241'),
  143. ('6212', '3', '高佳豪', '汽修241', NULL, 224, '3 高佳豪 汽修241'),
  144. ('6212', '5', '童佳浩', '汽修241', NULL, 225, '5 童佳浩 汽修241'),
  145. ('6212', '6', '余健哲', '汽修241', NULL, 226, '6 余健哲 汽修241'),
  146. ('6213', '1', '毛宇祺', '汽修241', NULL, 230, '1 毛宇祺 汽修241'),
  147. ('6213', '2', '王志成', '汽修241', NULL, 231, '2 王志成 汽修241'),
  148. ('6213', '3', '卓康', '汽修241', NULL, 232, '3 卓康 汽修241'),
  149. ('6213', '4', '陈科', '汽修241', NULL, 233, '4 陈科 汽修241'),
  150. ('6213', '5', '毛宇轩', '汽修241', NULL, 234, '5 毛宇轩 汽修241'),
  151. ('6213', '6', '汪豪彬', '汽修241', NULL, 235, '6 汪豪彬 汽修241'),
  152. ('6301', '1', '洪俞磊', '数控231', NULL, 239, '1 洪俞磊 数控231'),
  153. ('6301', '2', '陈永乐', '数控231', NULL, 240, '2 陈永乐 数控231'),
  154. ('6301', '3', '袁俊杰', '数控231', NULL, 241, '3 袁俊杰 数控231'),
  155. ('6301', '4', '朱国江', '数控231', NULL, 242, '4 朱国江 数控231'),
  156. ('6301', '5', '邓郁文', '数控231', NULL, 243, '5 邓郁文 数控231'),
  157. ('6301', '6', '傅江诚', '数控231', NULL, 244, '6 傅江诚 数控231'),
  158. ('6302', '1', '廖金杭', '数控231', NULL, 248, '1 廖金杭 数控231'),
  159. ('6302', '2', '韩子旭', '数控231', NULL, 249, '2 韩子旭 数控231'),
  160. ('6302', '3', '简洪凯', '数控231', NULL, 250, '3 简洪凯 数控231'),
  161. ('6302', '4', '胡俊', '数控231', NULL, 251, '4 胡俊 数控231'),
  162. ('6302', '5', '毛凯', '数控231', NULL, 252, '5 毛凯 数控231'),
  163. ('6302', '6', '张珑腾', '数控231', NULL, 253, '6 张珑腾 数控231'),
  164. ('6303', '1', '杨鑫杰', '数控231', NULL, 257, '1 杨鑫杰 数控231'),
  165. ('6303', '2', '连宏奕', '数控231', NULL, 258, '2 连宏奕 数控231'),
  166. ('6303', '3', '颊振鑫', '数控231', NULL, 259, '3 颊振鑫 数控231'),
  167. ('6303', '4', '俞培梁', '数控231', NULL, 260, '4 俞培梁 数控231'),
  168. ('6303', '5', '杨润东', '数控231', NULL, 261, '5 杨润东 数控231'),
  169. ('6303', '6', '徐奥权', '数控231', NULL, 262, '6 徐奥权 数控231'),
  170. ('6304', '1', '林嘉恒', '数控231', NULL, 266, '1 林嘉恒 数控231'),
  171. ('6304', '2', '陈逸钦', '数控231', NULL, 267, '2 陈逸钦 数控231'),
  172. ('6304', '3', '李雨航', '数控231', NULL, 268, '3 李雨航 数控231'),
  173. ('6304', '4', '赵文杰', '数控231', NULL, 269, '4 赵文杰 数控231'),
  174. ('6304', '5', '张振东', '数控231', NULL, 270, '5 张振东 数控231'),
  175. ('6304', '6', '陈世昌', '数控231', NULL, 271, '6 陈世昌 数控231'),
  176. ('6305', '1', '邢骏逸', '数控231', NULL, 275, '1 邢骏逸 数控231'),
  177. ('6305', '2', '许骏源', '数控231', NULL, 276, '2 许骏源 数控231'),
  178. ('6305', '3', '张郑权', '数控231', NULL, 277, '3 张郑权 数控231'),
  179. ('6305', '4', '周晟赫', '数控231', NULL, 278, '4 周晟赫 数控231'),
  180. ('6305', '5', '夏华雄', '数控231', NULL, 279, '5 夏华雄 数控231'),
  181. ('6305', '6', '何俊', '数控231', NULL, 280, '6 何俊 数控231'),
  182. ('6306', '1', '胡顺辰', '数控231', NULL, 284, '1 胡顺辰 数控231'),
  183. ('6306', '2', '刘博文', '数控231', NULL, 285, '2 刘博文 数控231'),
  184. ('6306', '3', '王高', '数控231', NULL, 286, '3 王高 数控231'),
  185. ('6306', '4', '孙国钦', '数控231', NULL, 287, '4 孙国钦 数控231'),
  186. ('6306', '5', '肖润鑫', '数控231', NULL, 288, '5 肖润鑫 数控231'),
  187. ('6306', '6', '沈杭', '数控231', NULL, 289, '6 沈杭 数控231'),
  188. ('6307', '1', '余飞龙', '数控231', NULL, 293, '1 余飞龙 数控231'),
  189. ('6307', '2', '应智宸', '数控231', NULL, 294, '2 应智宸 数控231'),
  190. ('6307', '3', '王奥凯', '数控231', NULL, 295, '3 王奥凯 数控231'),
  191. ('6307', '4', '郭俊辉', '数控231', NULL, 296, '4 郭俊辉 数控231'),
  192. ('6307', '5', '周嘉锋', '数控231', NULL, 297, '5 周嘉锋 数控231'),
  193. ('6307', '6', '孙睿', '数控231', NULL, 298, '6 孙睿 数控231'),
  194. ('6401', '1', '张浩', '数控221', NULL, 302, '1 张浩 数控221'),
  195. ('6401', '2', '林文唐', '数控221', NULL, 303, '2 林文唐 数控221'),
  196. ('6401', '3', '王国柱', '数控221', NULL, 304, '3 王国柱 数控221'),
  197. ('6401', '4', '牟家轩', '数控221', NULL, 305, '4 牟家轩 数控221'),
  198. ('6401', '5', '徐诗涛', '数控221', NULL, 306, '5 徐诗涛 数控221'),
  199. ('6401', '6', '陆天路', '数控221', NULL, 307, '6 陆天路 数控221'),
  200. ('6402', '1', '何吉成', '数控221', NULL, 311, '1 何吉成 数控221'),
  201. ('6402', '2', '姜畅', '数控221', NULL, 312, '2 姜畅 数控221'),
  202. ('6402', '3', '柯诗杰', '数控221', NULL, 313, '3 柯诗杰 数控221'),
  203. ('6402', '4', '郑智宇', '数控221', NULL, 314, '4 郑智宇 数控221'),
  204. ('6402', '5', '未建行', '数控221', NULL, 315, '5 未建行 数控221'),
  205. ('6402', '6', '凡福林', '数控221', NULL, 316, '6 凡福林 数控221'),
  206. ('6403', '1', '王一楠', '数控221', NULL, 320, '1 王一楠 数控221'),
  207. ('6403', '2', '朱翔宇', '数控221', NULL, 321, '2 朱翔宇 数控221'),
  208. ('6403', '3', '王可', '数控221', NULL, 322, '3 王可 数控221'),
  209. ('6403', '4', '周骏程', '数控221', NULL, 323, '4 周骏程 数控221'),
  210. ('6403', '5', '余承志', '数控221', NULL, 324, '5 余承志 数控221'),
  211. ('6403', '6', '凌子浩', '数控221', NULL, 325, '6 凌子浩 数控221'),
  212. ('6404', '1', '王俊辉', '数控221', NULL, 329, '1 王俊辉 数控221'),
  213. ('6404', '2', '姬彦宇', '数控221', NULL, 330, '2 姬彦宇 数控221'),
  214. ('6404', '3', '倪春鉴', '数控221', NULL, 331, '3 倪春鉴 数控221'),
  215. ('6404', '4', '宋强', '数控221', NULL, 332, '4 宋强 数控221'),
  216. ('6404', '5', '张俊文', '数控221', NULL, 333, '5 张俊文 数控221'),
  217. ('6404', '6', '王梦林', '数控221', NULL, 334, '6 王梦林 数控221'),
  218. ('6405', '1', '许泽昊', '数控221', NULL, 338, '1 许泽昊 数控221'),
  219. ('6405', '2', '杨子皓', '数控221', NULL, 339, '2 杨子皓 数控221'),
  220. ('6405', '3', '叶凯文', '数控221', NULL, 340, '3 叶凯文 数控221'),
  221. ('6405', '4', '王富音', '数控221', NULL, 341, '4 王富音 数控221'),
  222. ('6405', '5', '林楡富', '数控221', NULL, 342, '5 林楡富 数控221'),
  223. ('6405', '6', '程钟杰', '数控221', NULL, 343, '6 程钟杰 数控221'),
  224. ('6406', '1', '鲍宇航', '数控221', NULL, 347, '1 鲍宇航 数控221'),
  225. ('6406', '2', '王纪炎', '数控221', NULL, 348, '2 王纪炎 数控221'),
  226. ('6406', '3', '黄志强', '数控221', NULL, 349, '3 黄志强 数控221'),
  227. ('6406', '4', '潘怿', '数控221', NULL, 350, '4 潘怿 数控221'),
  228. ('6406', '5', '唐铖', '数控221', NULL, 351, '5 唐铖 数控221'),
  229. ('6406', '6', '魏晨宇', '数控221', NULL, 352, '6 魏晨宇 数控221'),
  230. ('6407', '1', '韩源', '数控221', NULL, 356, '1 韩源 数控221'),
  231. ('6407', '2', '李晓舟', '数控221', NULL, 357, '2 李晓舟 数控221'),
  232. ('6407', '3', '丁文韬', '数控221', NULL, 358, '3 丁文韬 数控221'),
  233. ('6407', '4', NULL, NULL, NULL, 359, '4'),
  234. ('6407', '5', NULL, NULL, NULL, 360, '5'),
  235. ('6407', '6', NULL, NULL, NULL, 361, '6'),
  236. ('6408', '1', '钟涛', '数字制造221', NULL, 365, '1 钟涛 数字制造221'),
  237. ('6408', '2', '杨俊晖', '数字制造221', NULL, 366, '2 杨俊晖 数字制造221'),
  238. ('6408', '3', '项晨', '数字制造221', NULL, 367, '3 项晨 数字制造221'),
  239. ('6408', '4', '金奕凯', '数字制造221', NULL, 368, '4 金奕凯 数字制造221'),
  240. ('6408', '5', '洪一非', '数字制造221', NULL, 369, '5 洪一非 数字制造221'),
  241. ('6408', '6', NULL, NULL, NULL, 370, '6'),
  242. ('6409', '1', '丁文洁', '数字制造221', NULL, 374, '1 丁文洁 数字制造221'),
  243. ('6409', '2', '崔腾', '数字制造221', NULL, 375, '2 崔腾 数字制造221'),
  244. ('6409', '3', '周翌阳', '数字制造221', NULL, 376, '3 周翌阳 数字制造221'),
  245. ('6409', '4', '周锦川', '数字制造221', NULL, 377, '4 周锦川 数字制造221'),
  246. ('6409', '5', NULL, NULL, NULL, 378, '5'),
  247. ('6409', '6', '何斌', '数字制造221', NULL, 379, '6 何斌 数字制造221'),
  248. ('6410', '1', '张佳豪', '数字制造221', NULL, 383, '1 张佳豪 数字制造221'),
  249. ('6410', '2', '熊忠文', '数字制造221', NULL, 384, '2 熊忠文 数字制造221'),
  250. ('6410', '3', '叶锦科', '数字制造221', NULL, 385, '3 叶锦科 数字制造221'),
  251. ('6410', '4', NULL, NULL, NULL, 386, '4'),
  252. ('6410', '5', '姜伯潮', '数字制造221', NULL, 387, '5 姜伯潮 数字制造221'),
  253. ('6410', '6', NULL, NULL, NULL, 388, '6'),
  254. ('6411', '1', '李政', '数字制造221', NULL, 392, '1 李政 数字制造221'),
  255. ('6411', '2', '滕嘉鹏', '数字制造221', NULL, 393, '2 滕嘉鹏 数字制造221'),
  256. ('6411', '3', '罗芳辉', '数字制造221', NULL, 394, '3 罗芳辉 数字制造221'),
  257. ('6411', '4', '王如森', '数字制造221', NULL, 395, '4 王如森 数字制造221'),
  258. ('6411', '5', '王叶佺', '数字制造221', NULL, 396, '5 王叶佺 数字制造221'),
  259. ('6411', '6', NULL, NULL, NULL, 397, '6'),
  260. ('6412', '1', '郑远航', '数字制造221', NULL, 401, '1 郑远航 数字制造221'),
  261. ('6412', '2', '张峻玮', '数字制造221', NULL, 402, '2 张峻玮 数字制造221'),
  262. ('6412', '3', '楼雨铭', '数字制造221', NULL, 403, '3 楼雨铭 数字制造221'),
  263. ('6412', '4', '臧佳玮', '数字制造221', NULL, 404, '4 臧佳玮 数字制造221'),
  264. ('6412', '5', '袁钦宏', '数字制造221', NULL, 405, '5 袁钦宏 数字制造221'),
  265. ('6412', '6', NULL, NULL, NULL, 406, '6'),
  266. ('6413', '1', '方诚迪', '数字制造221', NULL, 410, '1 方诚迪 数字制造221'),
  267. ('6413', '2', '徐正', '数字制造221', NULL, 411, '2 徐正 数字制造221'),
  268. ('6413', '3', '沈鑫程', '数字制造221', NULL, 412, '3 沈鑫程 数字制造221'),
  269. ('6413', '4', '马旭初', '数字制造221', NULL, 413, '4 马旭初 数字制造221'),
  270. ('6413', '5', '姜文轩', '数字制造221', NULL, 414, '5 姜文轩 数字制造221'),
  271. ('6413', '6', NULL, NULL, NULL, 415, '6'),
  272. ('6501', '1', '李梓俊', '汽修221', NULL, 419, '1 李梓俊 汽修221'),
  273. ('6501', '2', '周宁波', '汽修221', NULL, 420, '2 周宁波 汽修221'),
  274. ('6501', '3', '夏涛', '汽修221', NULL, 421, '3 夏涛 汽修221'),
  275. ('6501', '4', '张孺男', '汽修221', NULL, 422, '4 张孺男 汽修221'),
  276. ('6501', '5', '韩望', '汽修221', NULL, 423, '5 韩望 汽修221'),
  277. ('6501', '6', '宁程永', '汽修221', NULL, 424, '6 宁程永 汽修221'),
  278. ('6502', '1', '郭成栋', '汽修221', NULL, 428, '1 郭成栋 汽修221'),
  279. ('6502', '2', '王涛', '汽修221', NULL, 429, '2 王涛 汽修221'),
  280. ('6502', '3', '别云龙', '汽修221', NULL, 430, '3 别云龙 汽修221'),
  281. ('6502', '4', '商杨翌', '汽修221', NULL, 431, '4 商杨翌 汽修221'),
  282. ('6502', '5', '童以晨', '汽修221', NULL, 432, '5 童以晨 汽修221'),
  283. ('6502', '6', '王智庭', '汽修221', NULL, 433, '6 王智庭 汽修221'),
  284. ('6503', '1', '蔡学志', '汽修221', NULL, 437, '1 蔡学志 汽修221'),
  285. ('6503', '2', '吴捍琛', '汽修221', NULL, 438, '2 吴捍琛 汽修221'),
  286. ('6503', '3', '吴云想', '汽修221', NULL, 439, '3 吴云想 汽修221'),
  287. ('6503', '4', '梁绍杰', '汽修221', NULL, 440, '4 梁绍杰 汽修221'),
  288. ('6503', '5', '陈波', '汽修221', NULL, 441, '5 陈波 汽修221'),
  289. ('6503', '6', '姜金瑞', '汽修221', NULL, 442, '6 姜金瑞 汽修221'),
  290. ('6504', '1', '王展宇', '汽修221', NULL, 446, '1 王展宇 汽修221'),
  291. ('6504', '2', '李雄伟', '汽修221', NULL, 447, '2 李雄伟 汽修221'),
  292. ('6504', '3', '张智恺', '汽修221', NULL, 448, '3 张智恺 汽修221'),
  293. ('6504', '4', '吴家友', '汽修221', NULL, 449, '4 吴家友 汽修221'),
  294. ('6504', '5', NULL, NULL, NULL, 450, '5'),
  295. ('6504', '6', NULL, NULL, NULL, 451, '6'),
  296. ('6505', '1', '刘欢', '汽修221', NULL, 455, '1 刘欢 汽修221'),
  297. ('6505', '2', '李静楠', '汽修221', NULL, 456, '2 李静楠 汽修221'),
  298. ('6505', '3', '张博研', '汽修221', NULL, 457, '3 张博研 汽修221'),
  299. ('6505', '4', '江科锐', '汽修221', NULL, 458, '4 江科锐 汽修221'),
  300. ('6505', '5', '张明坤', '汽修221', NULL, 459, '5 张明坤 汽修221'),
  301. ('6505', '6', '冯鑫鹏', '汽修221', NULL, 460, '6 冯鑫鹏 汽修221'),
  302. ('6506', '1', '曾永琪', '汽修221', NULL, 464, '1 曾永琪 汽修221'),
  303. ('6506', '2', '高立凯', '汽修221', NULL, 465, '2 高立凯 汽修221'),
  304. ('6506', '3', '孙翊涛', '汽修221', NULL, 466, '3 孙翊涛 汽修221'),
  305. ('6506', '4', '侯江乐', '汽修221', NULL, 467, '4 侯江乐 汽修221'),
  306. ('6506', '5', '曹博云', '汽修221', NULL, 468, '5 曹博云 汽修221'),
  307. ('6506', '6', '张屹', '汽修221', NULL, 469, '6 张屹 汽修221'),
  308. ('6507', '1', '包新隆', '汽修221', NULL, 473, '1 包新隆 汽修221'),
  309. ('6507', '2', '曾繁强', '汽修221', NULL, 474, '2 曾繁强 汽修221'),
  310. ('6507', '3', '王永恩', '汽修221', NULL, 475, '3 王永恩 汽修221'),
  311. ('6507', '4', '王永乐', '汽修221', NULL, 476, '4 王永乐 汽修221'),
  312. ('6507', '5', '周锋', '汽修221', NULL, 477, '5 周锋 汽修221'),
  313. ('6507', '6', '张文俊', '汽修221', NULL, 478, '6 张文俊 汽修221'),
  314. ('6508', '1', '乐意', '数字制造211', NULL, 482, '1 乐意 数字制造211'),
  315. ('6508', '2', '黄程彬', '数字制造211', NULL, 483, '2 黄程彬 数字制造211'),
  316. ('6508', '3', '叶彤', '数字制造211', NULL, 484, '3 叶彤 数字制造211'),
  317. ('6508', '4', '涂大嵩', '数字制造211', NULL, 485, '4 涂大嵩 数字制造211'),
  318. ('6508', '5', '郑浩', '数字制造211', NULL, 486, '5 郑浩 数字制造211'),
  319. ('6508', '6', NULL, NULL, NULL, 487, '6'),
  320. ('6509', '1', '朱罗战', '数字制造211', NULL, 491, '1 朱罗战 数字制造211'),
  321. ('6509', '2', '陈依楠', '数字制造211', NULL, 492, '2 陈依楠 数字制造211'),
  322. ('6509', '3', '冯致尧', '数字制造211', NULL, 493, '3 冯致尧 数字制造211'),
  323. ('6509', '4', '杨志鹏', '数字制造211', NULL, 494, '4 杨志鹏 数字制造211'),
  324. ('6509', '5', '包佳乐', '数字制造211', NULL, 495, '5 包佳乐 数字制造211'),
  325. ('6509', '6', '李任柏', '数字制造211', NULL, 496, '6 李任柏 数字制造211'),
  326. ('6510', '1', NULL, NULL, NULL, 500, '1'),
  327. ('6510', '2', '戴晨陆', '数字制造211', NULL, 501, '2 戴晨陆 数字制造211'),
  328. ('6510', '3', '万君毅', '数字制造211', NULL, 502, '3 万君毅 数字制造211'),
  329. ('6510', '4', '程佳辉', '数字制造211', NULL, 503, '4 程佳辉 数字制造211'),
  330. ('6510', '5', '庞铭昊', '数字制造211', NULL, 504, '5 庞铭昊 数字制造211'),
  331. ('6510', '6', NULL, NULL, NULL, 505, '6'),
  332. ('6511', '1', '林家辉', '数字制造211', NULL, 509, '1 林家辉 数字制造211'),
  333. ('6511', '2', '王琪乐', '数字制造211', NULL, 510, '2 王琪乐 数字制造211'),
  334. ('6511', '3', '韩天胜', '数字制造211', NULL, 511, '3 韩天胜 数字制造211'),
  335. ('6511', '4', '黄漂', '数字制造211', NULL, 512, '4 黄漂 数字制造211'),
  336. ('6511', '5', '洪靖翔', '数字制造211', NULL, 513, '5 洪靖翔 数字制造211'),
  337. ('6511', '6', '张杭鹏', '数字制造211', NULL, 514, '6 张杭鹏 数字制造211'),
  338. ('6512', '1', '金程凯', '数字制造211', NULL, 518, '1 金程凯 数字制造211'),
  339. ('6512', '2', '刘鑫', '数字制造211', NULL, 519, '2 刘鑫 数字制造211'),
  340. ('6512', '3', '姜文豪', '数字制造211', NULL, 520, '3 姜文豪 数字制造211'),
  341. ('6512', '4', '张鑫', '数字制造211', NULL, 521, '4 张鑫 数字制造211'),
  342. ('6512', '5', '戴倪浩', '数字制造211', NULL, 522, '5 戴倪浩 数字制造211'),
  343. ('6512', '6', '徐泽航', '数字制造211', NULL, 523, '6 徐泽航 数字制造211')
  344. ;
  345. DROP TEMPORARY TABLE IF EXISTS tmp_assign_norm;
  346. CREATE TEMPORARY TABLE tmp_assign_norm AS
  347. SELECT
  348. TRIM(room_code) AS room_code,
  349. TRIM(bed_name) AS bed_name,
  350. CASE
  351. WHEN NULLIF(TRIM(student_name), '') IN ('许嘉琪','吴明浩','童佳浩','颊振鑫','李雨航','王梦林','林楡富','王琪乐') THEN NULL
  352. ELSE NULLIF(TRIM(student_name), '')
  353. END AS student_name,
  354. CASE
  355. WHEN NULLIF(TRIM(student_name), '') = '王建' THEN '药剂173'
  356. ELSE NULLIF(TRIM(SUBSTRING_INDEX(COALESCE(class_name_raw, ''), ' ', 1)), '')
  357. END AS class_name,
  358. NULLIF(TRIM(class_name_raw), '') AS class_name_raw,
  359. NULLIF(TRIM(remark), '') AS remark,
  360. source_line,
  361. raw_text
  362. FROM tmp_assign_input_raw;
  363. -- 1) 学生存在性检查(按姓名)
  364. DROP TEMPORARY TABLE IF EXISTS tmp_student_precheck;
  365. CREATE TEMPORARY TABLE tmp_student_precheck AS
  366. SELECT
  367. t.room_code,
  368. t.bed_name,
  369. t.student_name,
  370. COUNT(s.id) AS student_match_count,
  371. GROUP_CONCAT(DISTINCT s.class_name ORDER BY s.class_name SEPARATOR ', ') AS db_class_names,
  372. GROUP_CONCAT(DISTINCT s.id ORDER BY s.id) AS student_ids,
  373. t.source_line,
  374. t.raw_text
  375. FROM tmp_assign_norm t
  376. LEFT JOIN xg_student_msg s
  377. ON s.deleted = 0
  378. AND s.name COLLATE utf8mb4_general_ci = t.student_name COLLATE utf8mb4_general_ci
  379. WHERE t.student_name IS NOT NULL
  380. GROUP BY t.room_code, t.bed_name, t.student_name, t.source_line, t.raw_text;
  381. -- 2) 班级存在性检查(按班级名)
  382. DROP TEMPORARY TABLE IF EXISTS tmp_class_precheck;
  383. CREATE TEMPORARY TABLE tmp_class_precheck AS
  384. SELECT
  385. t.class_name,
  386. COUNT(c.id) AS class_match_count,
  387. GROUP_CONCAT(DISTINCT c.id ORDER BY c.id) AS class_ids
  388. FROM (SELECT DISTINCT class_name FROM tmp_assign_norm WHERE class_name IS NOT NULL) t
  389. LEFT JOIN xg_class_msg c
  390. ON c.deleted = 0
  391. AND c.class_name COLLATE utf8mb4_general_ci = t.class_name COLLATE utf8mb4_general_ci
  392. GROUP BY t.class_name;
  393. -- 3) 学生-班级匹配检查(学生存在,但不在输入班级)
  394. DROP TEMPORARY TABLE IF EXISTS tmp_student_class_precheck;
  395. CREATE TEMPORARY TABLE tmp_student_class_precheck AS
  396. SELECT
  397. t.room_code,
  398. t.bed_name,
  399. t.student_name,
  400. t.class_name AS input_class_name,
  401. COUNT(s_any.id) AS name_match_count,
  402. COUNT(s_exact.id) AS exact_match_count,
  403. GROUP_CONCAT(DISTINCT s_any.class_name ORDER BY s_any.class_name SEPARATOR ', ') AS db_class_names,
  404. t.source_line,
  405. t.raw_text
  406. FROM tmp_assign_norm t
  407. LEFT JOIN xg_student_msg s_any
  408. ON s_any.deleted = 0
  409. AND s_any.name COLLATE utf8mb4_general_ci = t.student_name COLLATE utf8mb4_general_ci
  410. LEFT JOIN xg_student_msg s_exact
  411. ON s_exact.deleted = 0
  412. AND s_exact.name COLLATE utf8mb4_general_ci = t.student_name COLLATE utf8mb4_general_ci
  413. AND s_exact.class_name COLLATE utf8mb4_general_ci = t.class_name COLLATE utf8mb4_general_ci
  414. WHERE t.student_name IS NOT NULL
  415. AND t.class_name IS NOT NULL
  416. GROUP BY t.room_code, t.bed_name, t.student_name, t.class_name, t.source_line, t.raw_text;
  417. -- 4) 统计总览:三类问题数量
  418. SELECT
  419. (SELECT COUNT(*) FROM tmp_student_precheck WHERE student_match_count = 0) AS student_not_found_cnt,
  420. (SELECT COUNT(*) FROM tmp_class_precheck WHERE class_match_count = 0) AS class_not_found_cnt,
  421. (SELECT COUNT(*) FROM tmp_student_class_precheck WHERE name_match_count > 0 AND exact_match_count = 0) AS student_class_mismatch_cnt;
  422. -- 5) 学生不存在明细
  423. SELECT
  424. room_code,
  425. bed_name,
  426. student_name,
  427. source_line,
  428. raw_text
  429. FROM tmp_student_precheck
  430. WHERE student_match_count = 0
  431. ORDER BY room_code, bed_name;
  432. -- 6) 班级不存在明细
  433. SELECT
  434. class_name
  435. FROM tmp_class_precheck
  436. WHERE class_match_count = 0
  437. ORDER BY class_name;
  438. -- 7) 学生和班级不匹配明细
  439. SELECT
  440. room_code,
  441. bed_name,
  442. student_name,
  443. input_class_name,
  444. db_class_names,
  445. source_line,
  446. raw_text
  447. FROM tmp_student_class_precheck
  448. WHERE name_match_count > 0
  449. AND exact_match_count = 0
  450. ORDER BY room_code, bed_name, student_name;