linan5_dorm_precheck.sql 27 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422
  1. -- 临安5号楼住宿预检查脚本(根据 学校学生住宿情况@临安5号楼.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. ('5106', '1', '黄仁杰', '园林设计241', NULL, 32, '1 黄仁杰 园林设计241'),
  16. ('5106', '2', '楼鹄翔', '园林设计241', NULL, 33, '2 楼鹄翔 园林设计241'),
  17. ('5106', '3', '江晨', '园林设计241', NULL, 34, '3 江晨 园林设计241'),
  18. ('5106', '4', '邓理云', '园林设计241', NULL, 35, '4 邓理云 园林设计241'),
  19. ('5106', '5', '孙佑嘉', '园林设计241', NULL, 36, '5 孙佑嘉 园林设计241'),
  20. ('5106', '6', '汪道涵', '园林设计241', NULL, 37, '6 汪道涵 园林设计241'),
  21. ('5107', '1', '周博浩', '园林设计241', NULL, 41, '1 周博浩 园林设计241'),
  22. ('5107', '2', '黄宇哲', '园林设计241', NULL, 42, '2 黄宇哲 园林设计241'),
  23. ('5107', '3', '郑董楠', '园林设计241', NULL, 43, '3 郑董楠 园林设计241'),
  24. ('5107', '4', NULL, NULL, NULL, 44, '4'),
  25. ('5107', '5', NULL, NULL, NULL, 45, '5'),
  26. ('5107', '6', NULL, NULL, NULL, 46, '6'),
  27. ('5108', '1', '陈恩来', '园林技术241', NULL, 50, '1 陈恩来 园林技术241'),
  28. ('5108', '2', '邢善彪', '园林技术241', NULL, 51, '2 邢善彪 园林技术241'),
  29. ('5108', '3', '庄永庆', '园林技术241', NULL, 52, '3 庄永庆 园林技术241'),
  30. ('5108', '4', '吴鑫', '园林技术241', NULL, 53, '4 吴鑫 园林技术241'),
  31. ('5108', '5', '宋宜有', '园林技术241', NULL, 54, '5 宋宜有 园林技术241'),
  32. ('5108', '6', '沈鑫', '园林技术241', NULL, 55, '6 沈鑫 园林技术241'),
  33. ('5109', '1', '徐孟棋', '园林技术241', NULL, 59, '1 徐孟棋 园林技术241'),
  34. ('5109', '2', '徐子骞', '园林技术241', NULL, 60, '2 徐子骞 园林技术241'),
  35. ('5109', '3', '陈安平', '园林技术241', NULL, 61, '3 陈安平 园林技术241'),
  36. ('5109', '4', '李祥豪', '园林技术241', NULL, 62, '4 李祥豪 园林技术241'),
  37. ('5109', '5', '季维中', '园林技术241', NULL, 63, '5 季维中 园林技术241'),
  38. ('5109', '6', '俞智杰', '园林技术241', NULL, 64, '6 俞智杰 园林技术241'),
  39. ('5110', '1', '陈嘉懿', '园林技术241', NULL, 68, '1 陈嘉懿 园林技术241'),
  40. ('5110', '2', '陈聪', '园林技术241', NULL, 69, '2 陈聪 园林技术241'),
  41. ('5110', '3', '王天乐', '园林技术241', NULL, 70, '3 王天乐 园林技术241'),
  42. ('5110', '4', '王圣贺', '园林技术241', NULL, 71, '4 王圣贺 园林技术241'),
  43. ('5110', '5', '刘彪', '园林技术241', NULL, 72, '5 刘彪 园林技术241'),
  44. ('5110', '6', NULL, NULL, NULL, 73, '6'),
  45. ('5111', '1', '谢明钊', '园林工程241', NULL, 77, '1 谢明钊 园林工程241'),
  46. ('5111', '2', '赖伯尔', '园林工程241', NULL, 78, '2 赖伯尔 园林工程241'),
  47. ('5111', '3', '施嘉龙', '园林工程241', NULL, 79, '3 施嘉龙 园林工程241'),
  48. ('5111', '4', '吕俊勇', '园林工程241', NULL, 80, '4 吕俊勇 园林工程241'),
  49. ('5111', '5', '王昕腾', '园林工程241', NULL, 81, '5 王昕腾 园林工程241'),
  50. ('5111', '6', NULL, NULL, NULL, 82, '6'),
  51. ('5112', '1', '丁宇轩', '园林工程241', NULL, 86, '1 丁宇轩 园林工程241'),
  52. ('5112', '2', '凤清洋', '园林工程241', NULL, 87, '2 凤清洋 园林工程241'),
  53. ('5112', '3', '李潇', '园林工程241', NULL, 88, '3 李潇 园林工程241'),
  54. ('5112', '4', NULL, NULL, NULL, 89, '4'),
  55. ('5112', '5', NULL, NULL, NULL, 90, '5'),
  56. ('5112', '6', NULL, NULL, NULL, 91, '6'),
  57. ('5202', '1', '叶仕杰', '园林技术221', NULL, 95, '1 叶仕杰 园林技术221'),
  58. ('5202', '2', '郑伊浪', '园林技术221', NULL, 96, '2 郑伊浪 园林技术221'),
  59. ('5202', '3', '吴赫', '园林技术221', NULL, 97, '3 吴赫 园林技术221'),
  60. ('5202', '4', '李旭阳', '园林技术221', NULL, 98, '4 李旭阳 园林技术221'),
  61. ('5202', '5', '韩雨捷', '园林技术221', NULL, 99, '5 韩雨捷 园林技术221'),
  62. ('5202', '6', '唐李洋', '园林技术221', NULL, 100, '6 唐李洋 园林技术221'),
  63. ('5203', '1', '罗翔', '园林技术221', NULL, 104, '1 罗翔 园林技术221'),
  64. ('5203', '2', '吴毅涛', '园林技术221', NULL, 105, '2 吴毅涛 园林技术221'),
  65. ('5203', '3', '张金权', '园林技术221', NULL, 106, '3 张金权 园林技术221'),
  66. ('5203', '4', '刘浩楠', '园林技术221', NULL, 107, '4 刘浩楠 园林技术221'),
  67. ('5203', '5', '张楚石', '园林技术221', NULL, 108, '5 张楚石 园林技术221'),
  68. ('5203', '6', '宋佳乐', '园林技术221', NULL, 109, '6 宋佳乐 园林技术221'),
  69. ('5204', '1', '邓杰意', '园林设计221', NULL, 113, '1 邓杰意 园林设计221'),
  70. ('5204', '2', '李斯杰', '园林设计221', NULL, 114, '2 李斯杰 园林设计221'),
  71. ('5204', '3', '陈灿', '园林设计221', NULL, 115, '3 陈灿 园林设计221'),
  72. ('5204', '4', '徐昊', '园林设计221', NULL, 116, '4 徐昊 园林设计221'),
  73. ('5204', '5', '严嘉奇', '园林设计221', NULL, 117, '5 严嘉奇 园林设计221'),
  74. ('5204', '6', NULL, NULL, NULL, 118, '6'),
  75. ('5205', '1', '贾子铂', '园林设计221', NULL, 122, '1 贾子铂 园林设计221'),
  76. ('5205', '2', '陈国庆', '园林设计221', NULL, 123, '2 陈国庆 园林设计221'),
  77. ('5205', '3', '陈哲', '园林设计221', NULL, 124, '3 陈哲 园林设计221'),
  78. ('5205', '4', '马祥雨', '园林设计221', NULL, 125, '4 马祥雨 园林设计221'),
  79. ('5205', '5', NULL, NULL, NULL, 126, '5'),
  80. ('5205', '6', NULL, NULL, NULL, 127, '6'),
  81. ('5206', '1', '卢孜杰', '园林设计231', NULL, 131, '1 卢孜杰 园林设计231'),
  82. ('5206', '2', '陈宗泽', '园林设计231', NULL, 132, '2 陈宗泽 园林设计231'),
  83. ('5206', '3', '屠宋吉', '园林设计231', NULL, 133, '3 屠宋吉 园林设计231'),
  84. ('5206', '4', NULL, NULL, NULL, 134, '4'),
  85. ('5206', '5', NULL, NULL, NULL, 135, '5'),
  86. ('5206', '6', NULL, NULL, NULL, 136, '6'),
  87. ('5207', '1', '周祥祥', '园林设计231', NULL, 140, '1 周祥祥 园林设计231'),
  88. ('5207', '2', '金俊杰', '园林设计231', NULL, 141, '2 金俊杰 园林设计231'),
  89. ('5207', '3', '袁振伟', '园林设计231', NULL, 142, '3 袁振伟 园林设计231'),
  90. ('5207', '4', '沈丽运', '园林设计231', NULL, 143, '4 沈丽运 园林设计231'),
  91. ('5207', '5', '石志强', '园林设计231', NULL, 144, '5 石志强 园林设计231'),
  92. ('5207', '6', '李子豪', '园林设计231', NULL, 145, '6 李子豪 园林设计231'),
  93. ('5209', '1', '沈佳乐', '园林工程241', NULL, 149, '1 沈佳乐 园林工程241'),
  94. ('5209', '2', '柴绍祈', '园林工程241', NULL, 150, '2 柴绍祈 园林工程241'),
  95. ('5209', '3', '刘博林', '园林工程241', NULL, 151, '3 刘博林 园林工程241'),
  96. ('5209', '4', '江恩泽', '园林工程241', NULL, 152, '4 江恩泽 园林工程241'),
  97. ('5209', '5', '吴子卿', '园林工程241', NULL, 153, '5 吴子卿 园林工程241'),
  98. ('5209', '6', '吾嘉陈', '园林工程241', NULL, 154, '6 吾嘉陈 园林工程241'),
  99. ('5210', '1', '陈昊', '园林工程241', NULL, 158, '1 陈昊 园林工程241'),
  100. ('5210', '2', '曾奕博', '园林工程241', NULL, 159, '2 曾奕博 园林工程241'),
  101. ('5210', '3', '黄新宇', '园林工程241', NULL, 160, '3 黄新宇 园林工程241'),
  102. ('5210', '4', '来思泽', '园林工程241', NULL, 161, '4 来思泽 园林工程241'),
  103. ('5210', '5', '陈锶涵', '园林工程241', NULL, 162, '5 陈锶涵 园林工程241'),
  104. ('5210', '6', '张铭泽', '园林工程241', NULL, 163, '6 张铭泽 园林工程241'),
  105. ('5211', '1', '闫诗奥', '园林工程241', NULL, 167, '1 闫诗奥 园林工程241'),
  106. ('5211', '2', '冉生宇', '园林工程241', NULL, 168, '2 冉生宇 园林工程241'),
  107. ('5211', '3', '郑凯', '园林工程241', NULL, 169, '3 郑凯 园林工程241'),
  108. ('5211', '4', '沈晨', '园林工程241', NULL, 170, '4 沈晨 园林工程241'),
  109. ('5211', '5', '姚涵钧', '园林工程241', NULL, 171, '5 姚涵钧 园林工程241'),
  110. ('5211', '6', '朱晨凯', '园林工程241', NULL, 172, '6 朱晨凯 园林工程241'),
  111. ('5212', '1', '郭天乐', '园林工程241', NULL, 176, '1 郭天乐 园林工程241'),
  112. ('5212', '2', '陈茗皓', '园林工程241', NULL, 177, '2 陈茗皓 园林工程241'),
  113. ('5212', '3', '董超然', '园林工程241', NULL, 178, '3 董超然 园林工程241'),
  114. ('5212', '4', '陈栩杭', '园林工程241', NULL, 179, '4 陈栩杭 园林工程241'),
  115. ('5212', '5', '丁楚煜', '园林工程241', NULL, 180, '5 丁楚煜 园林工程241'),
  116. ('5212', '6', NULL, NULL, NULL, 181, '6'),
  117. ('5213', '1', '梁宇晢', '园林工程241', NULL, 185, '1 梁宇晢 园林工程241'),
  118. ('5213', '2', '王文鑫', '园林工程241', NULL, 186, '2 王文鑫 园林工程241'),
  119. ('5213', '3', '周哲浩', '园林工程241', NULL, 187, '3 周哲浩 园林工程241'),
  120. ('5213', '4', '邵宏烽', '园林工程241', NULL, 188, '4 邵宏烽 园林工程241'),
  121. ('5213', '5', NULL, NULL, NULL, 189, '5'),
  122. ('5213', '6', NULL, NULL, NULL, 190, '6'),
  123. ('5301', '1', '葛彦皓', '园林技术221', NULL, 194, '1 葛彦皓 园林技术221'),
  124. ('5301', '2', '沈呈隆', '园林技术221', NULL, 195, '2 沈呈隆 园林技术221'),
  125. ('5301', '3', '罗通', '园林技术221', NULL, 196, '3 罗通 园林技术221'),
  126. ('5301', '4', '俞钧淇', '园林技术221', NULL, 197, '4 俞钧淇 园林技术221'),
  127. ('5301', '5', '王佳杰', '园林技术221', NULL, 198, '5 王佳杰 园林技术221'),
  128. ('5301', '6', '包泽杭', '园林技术221', NULL, 199, '6 包泽杭 园林技术221'),
  129. ('5302', '1', '陈仁杰', '园林技术221', NULL, 203, '1 陈仁杰 园林技术221'),
  130. ('5302', '2', '周航', '园林技术221', NULL, 204, '2 周航 园林技术221'),
  131. ('5302', '3', '沈梓煜', '园林技术221', NULL, 205, '3 沈梓煜 园林技术221'),
  132. ('5302', '4', '林子聪', '园林技术221', NULL, 206, '4 林子聪 园林技术221'),
  133. ('5302', '5', '胡灏', '园林技术221', NULL, 207, '5 胡灏 园林技术221'),
  134. ('5302', '6', NULL, NULL, NULL, 208, '6'),
  135. ('5303', '1', '项轩', '园林工程221', NULL, 212, '1 项轩 园林工程221'),
  136. ('5303', '2', '葛佳浩', '园林工程221', NULL, 213, '2 葛佳浩 园林工程221'),
  137. ('5303', '3', '张鑫晨', '园林工程221', NULL, 214, '3 张鑫晨 园林工程221'),
  138. ('5303', '4', '陈佳杰', '园林工程221', NULL, 215, '4 陈佳杰 园林工程221'),
  139. ('5303', '5', '李泽文', '园林工程221', NULL, 216, '5 李泽文 园林工程221'),
  140. ('5303', '6', '李奕凯', '园林工程221', NULL, 217, '6 李奕凯 园林工程221'),
  141. ('5304', '1', '孔德行', '园林工程221', NULL, 221, '1 孔德行 园林工程221'),
  142. ('5304', '2', '吴鹏', '园林工程221', NULL, 222, '2 吴鹏 园林工程221'),
  143. ('5304', '3', '曾浩', '园林工程221', NULL, 223, '3 曾浩 园林工程221'),
  144. ('5304', '4', '栾嘉瑞', '园林工程221', NULL, 224, '4 栾嘉瑞 园林工程221'),
  145. ('5304', '5', '刘灿', '园林工程221', NULL, 225, '5 刘灿 园林工程221'),
  146. ('5304', '6', '郑坤', '园林工程221', NULL, 226, '6 郑坤 园林工程221'),
  147. ('5305', '1', '权中瑞', '园林工程221', NULL, 230, '1 权中瑞 园林工程221'),
  148. ('5305', '2', '盛俊杰', '园林工程221', NULL, 231, '2 盛俊杰 园林工程221'),
  149. ('5305', '3', '魏朝阳', '园林工程221', NULL, 232, '3 魏朝阳 园林工程221'),
  150. ('5305', '4', '李欣欢', '园林工程221', NULL, 233, '4 李欣欢 园林工程221'),
  151. ('5305', '5', '祝宇涛', '园林工程221', NULL, 234, '5 祝宇涛 园林工程221'),
  152. ('5305', '6', '郭闻翔', '园林工程221', NULL, 235, '6 郭闻翔 园林工程221'),
  153. ('5306', '1', '杨严清', '园林工程221', NULL, 239, '1 杨严清 园林工程221'),
  154. ('5306', '2', '潘博涵', '园林工程221', NULL, 240, '2 潘博涵 园林工程221'),
  155. ('5306', '3', '黄崇云', '园林工程221', NULL, 241, '3 黄崇云 园林工程221'),
  156. ('5306', '4', '陈冠群', '园林工程221', NULL, 242, '4 陈冠群 园林工程221'),
  157. ('5306', '5', '钟洲', '园林工程221', NULL, 243, '5 钟洲 园林工程221'),
  158. ('5306', '6', '王天宝', '园林工程221', NULL, 244, '6 王天宝 园林工程221'),
  159. ('5307', '1', '高浩天', '园林工程221', NULL, 248, '1 高浩天 园林工程221'),
  160. ('5307', '2', '姚锦晨', '园林工程221', NULL, 249, '2 姚锦晨 园林工程221'),
  161. ('5307', '3', '董志敏', '园林工程221', NULL, 250, '3 董志敏 园林工程221'),
  162. ('5307', '4', '严江浩', '园林工程221', NULL, 251, '4 严江浩 园林工程221'),
  163. ('5307', '5', '刘志辉', '园林工程221', NULL, 252, '5 刘志辉 园林工程221'),
  164. ('5307', '6', '张飞龙', '园林工程221', NULL, 253, '6 张飞龙 园林工程221'),
  165. ('5308', '1', '庄黄明', '园林工程221', NULL, 257, '1 庄黄明 园林工程221'),
  166. ('5308', '2', '蒋秦越', '园林工程221', NULL, 258, '2 蒋秦越 园林工程221'),
  167. ('5308', '3', '贾豪', '园林工程221', NULL, 259, '3 贾豪 园林工程221'),
  168. ('5308', '4', '张盛豪', '园林工程221', NULL, 260, '4 张盛豪 园林工程221'),
  169. ('5308', '5', '余鸿鑫', '园林工程221', NULL, 261, '5 余鸿鑫 园林工程221'),
  170. ('5308', '6', '杨泽晨', '园林工程221', NULL, 262, '6 杨泽晨 园林工程221'),
  171. ('5309', '1', '杨祺轩', '园林211', NULL, 266, '1 杨祺轩 园林211'),
  172. ('5309', '2', '来浩翔', '园林211', NULL, 267, '2 来浩翔 园林211'),
  173. ('5309', '3', '张磊', '园林211', NULL, 268, '3 张磊 园林211'),
  174. ('5309', '4', '严力宏', '园林211', NULL, 269, '4 严力宏 园林211'),
  175. ('5309', '5', NULL, NULL, NULL, 270, '5'),
  176. ('5309', '6', NULL, NULL, NULL, 271, '6'),
  177. ('5310', '1', '姚楚轩', '园林211', NULL, 275, '1 姚楚轩 园林211'),
  178. ('5310', '2', '武瑞熙', '园林211', NULL, 276, '2 武瑞熙 园林211'),
  179. ('5310', '3', '邵子昊', '园林211', NULL, 277, '3 邵子昊 园林211'),
  180. ('5310', '4', '童昌旺', '园林211', NULL, 278, '4 童昌旺 园林211'),
  181. ('5310', '5', NULL, NULL, NULL, 279, '5'),
  182. ('5310', '6', NULL, NULL, NULL, 280, '6'),
  183. ('5311', '1', '陈栋炳', '园林211', NULL, 284, '1 陈栋炳 园林211'),
  184. ('5311', '2', '陈飞翔', '园林211', NULL, 285, '2 陈飞翔 园林211'),
  185. ('5311', '3', '袁博恒', '园林211', NULL, 286, '3 袁博恒 园林211'),
  186. ('5311', '4', '李昱晨', '园林211', NULL, 287, '4 李昱晨 园林211'),
  187. ('5311', '5', '蔡雨欣', '园林211', NULL, 288, '5 蔡雨欣 园林211'),
  188. ('5311', '6', '赵政齐', '园林211', NULL, 289, '6 赵政齐 园林211'),
  189. ('5312', '1', '沈晨鑫', '园林211', NULL, 293, '1 沈晨鑫 园林211'),
  190. ('5312', '2', '姚晓宇', '园林211', NULL, 294, '2 姚晓宇 园林211'),
  191. ('5312', '3', '刘志宇', '园林211', NULL, 295, '3 刘志宇 园林211'),
  192. ('5312', '4', '范随腾', '园林211', NULL, 296, '4 范随腾 园林211'),
  193. ('5312', '5', '徐瑞', '园林211', NULL, 297, '5 徐瑞 园林211'),
  194. ('5312', '6', NULL, NULL, NULL, 298, '6'),
  195. ('5313', '1', '周宸可', '园林211', NULL, 302, '1 周宸可 园林211'),
  196. ('5313', '2', '孙凯宇', '园林211', NULL, 303, '2 孙凯宇 园林211'),
  197. ('5313', '3', '俞泽洋', '园林211', NULL, 304, '3 俞泽洋 园林211'),
  198. ('5313', '4', '姜建浩', '园林211', NULL, 305, '4 姜建浩 园林211'),
  199. ('5313', '5', '张宇杰', '园林211', NULL, 306, '5 张宇杰 园林211'),
  200. ('5313', '6', '程潇楠', '园林211', NULL, 307, '6 程潇楠 园林211'),
  201. ('5401', '1', '鲁安', '中药241', NULL, 311, '1 鲁安 中药241'),
  202. ('5401', '2', '骆王馨宸', '中药241', NULL, 312, '2 骆王馨宸 中药241'),
  203. ('5401', '3', '张智勇', '中药241', NULL, 313, '3 张智勇 中药241'),
  204. ('5401', '4', '姜雨桦', '中药241', NULL, 314, '4 姜雨桦 中药241'),
  205. ('5401', '5', '沈嘉蓥', '中药241', NULL, 315, '5 沈嘉蓥 中药241'),
  206. ('5401', '6', NULL, NULL, NULL, 316, '6'),
  207. ('5402', '1', '郑皓', '中药241', NULL, 320, '1 郑皓 中药241'),
  208. ('5402', '2', '胡毅航', '中药241', NULL, 321, '2 胡毅航 中药241'),
  209. ('5402', '3', '魏宇哲', '中药241', NULL, 322, '3 魏宇哲 中药241'),
  210. ('5402', '4', '盛涛', '中药241', NULL, 323, '4 盛涛 中药241'),
  211. ('5402', '5', '王稼杭', '中药241', NULL, 324, '5 王稼杭 中药241'),
  212. ('5402', '6', NULL, NULL, NULL, 325, '6'),
  213. ('5403', '1', '王四元', '中药241', NULL, 329, '1 王四元 中药241'),
  214. ('5403', '2', '周煌程', '中药241', NULL, 330, '2 周煌程 中药241'),
  215. ('5403', '3', '王艺汇', '中药241', NULL, 331, '3 王艺汇 中药241'),
  216. ('5403', '4', '郑铭夕', '中药241', NULL, 332, '4 郑铭夕 中药241'),
  217. ('5403', '5', NULL, NULL, NULL, 333, '5'),
  218. ('5403', '6', NULL, NULL, NULL, 334, '6'),
  219. ('5404', '1', '王炳强', '中药241', NULL, 338, '1 王炳强 中药241'),
  220. ('5404', '2', '陈缪', '中药241', NULL, 339, '2 陈缪 中药241'),
  221. ('5404', '3', '鲁文杰', '中药241', NULL, 340, '3 鲁文杰 中药241'),
  222. ('5404', '4', '陈希贤', '中药241', NULL, 341, '4 陈希贤 中药241'),
  223. ('5404', '5', '杨雨乐', '中药241', NULL, 342, '5 杨雨乐 中药241'),
  224. ('5404', '6', NULL, NULL, NULL, 343, '6'),
  225. ('5406', '1', '张昊哲', '中药221', NULL, 347, '1 张昊哲 中药221'),
  226. ('5406', '2', '周志程', '中药221', NULL, 348, '2 周志程 中药221'),
  227. ('5406', '3', '杨元劭', '中药221', NULL, 349, '3 杨元劭 中药221'),
  228. ('5406', '4', '毕福鑫', '中药221', NULL, 350, '4 毕福鑫 中药221'),
  229. ('5406', '5', '秦晖程', '中药221', NULL, 351, '5 秦晖程 中药221'),
  230. ('5406', '6', NULL, NULL, NULL, 352, '6'),
  231. ('5407', '1', '江天乐', '中药221', NULL, 356, '1 江天乐 中药221'),
  232. ('5407', '2', '陈城', '中药221', NULL, 357, '2 陈城 中药221'),
  233. ('5407', '3', '柴和', '中药221', NULL, 358, '3 柴和 中药221'),
  234. ('5407', '4', NULL, NULL, NULL, 359, '4'),
  235. ('5407', '5', NULL, NULL, NULL, 360, '5'),
  236. ('5407', '6', NULL, NULL, NULL, 361, '6'),
  237. ('5408', '1', '胡铮', '中药211', NULL, 365, '1 胡铮 中药211'),
  238. ('5408', '2', '郑瀚洋', '中药211', NULL, 366, '2 郑瀚洋 中药211'),
  239. ('5408', '3', '许昕颢', '中药211', NULL, 367, '3 许昕颢 中药211'),
  240. ('5408', '4', '许昕磊', '中药211', NULL, 368, '4 许昕磊 中药211'),
  241. ('5408', '5', '刘明', '中药211', NULL, 369, '5 刘明 中药211'),
  242. ('5408', '6', NULL, NULL, NULL, 370, '6'),
  243. ('5409', '1', '张子涵', '中药211', NULL, 374, '1 张子涵 中药211'),
  244. ('5409', '2', '吴志楷', '中药211', NULL, 375, '2 吴志楷 中药211'),
  245. ('5409', '3', '徐黎鑫', '中药211', NULL, 376, '3 徐黎鑫 中药211'),
  246. ('5409', '4', '龚周恒', '中药211', NULL, 377, '4 龚周恒 中药211'),
  247. ('5409', '5', '赵信草', '中药211', NULL, 378, '5 赵信草 中药211'),
  248. ('5409', '6', NULL, NULL, NULL, 379, '6'),
  249. ('5410', '1', '王梓蒙', '中药211', NULL, 383, '1 王梓蒙 中药211'),
  250. ('5410', '2', '俞沈畅', '中药211', NULL, 384, '2 俞沈畅 中药211'),
  251. ('5410', '3', '蒋俊毅', '中药211', NULL, 385, '3 蒋俊毅 中药211'),
  252. ('5410', '4', '许昕恒', '中药211', NULL, 386, '4 许昕恒 中药211'),
  253. ('5410', '5', '金童年', '中药211', NULL, 387, '5 金童年 中药211'),
  254. ('5410', '6', NULL, NULL, NULL, 388, '6'),
  255. ('5411', '1', '李成鑫', '中药231', NULL, 392, '1 李成鑫 中药231'),
  256. ('5411', '2', '陈洋', '中药231', NULL, 393, '2 陈洋 中药231'),
  257. ('5411', '3', '俞梓杭', '中药231', NULL, 394, '3 俞梓杭 中药231'),
  258. ('5411', '4', '肖朗', '中药231', NULL, 395, '4 肖朗 中药231'),
  259. ('5411', '5', '李方治', '中药231', NULL, 396, '5 李方治 中药231'),
  260. ('5411', '6', '黄易', '中药231', NULL, 397, '6 黄易 中药231'),
  261. ('5412', '1', '房博文', '中药231', NULL, 401, '1 房博文 中药231'),
  262. ('5412', '2', '章旸', '中药231', NULL, 402, '2 章旸 中药231'),
  263. ('5412', '3', NULL, NULL, NULL, 403, '3'),
  264. ('5412', '4', NULL, NULL, NULL, 404, '4'),
  265. ('5412', '5', NULL, NULL, NULL, 405, '5'),
  266. ('5412', '6', NULL, NULL, NULL, 406, '6'),
  267. ('5501', '1', '丛日茂', '园林工程231', NULL, 410, '1 丛日茂 园林工程231'),
  268. ('5501', '2', '黄榆匀', '园林工程231', NULL, 411, '2 黄榆匀 园林工程231'),
  269. ('5501', '3', '周毅', '园林工程231', NULL, 412, '3 周毅 园林工程231'),
  270. ('5501', '4', '陈梦奥', '园林工程231', NULL, 413, '4 陈梦奥 园林工程231'),
  271. ('5501', '5', '闫富成', '园林工程231', NULL, 414, '5 闫富成 园林工程231'),
  272. ('5501', '6', NULL, NULL, NULL, 415, '6'),
  273. ('5502', '1', '尹鑫南', '园林工程231', NULL, 419, '1 尹鑫南 园林工程231'),
  274. ('5502', '2', '何洁', '园林工程231', NULL, 420, '2 何洁 园林工程231'),
  275. ('5502', '3', '丁智强', '园林工程231', NULL, 421, '3 丁智强 园林工程231'),
  276. ('5502', '4', '赵家祺', '园林工程231', NULL, 422, '4 赵家祺 园林工程231'),
  277. ('5502', '5', '卢杰', '园林工程231', NULL, 423, '5 卢杰 园林工程231'),
  278. ('5502', '6', NULL, NULL, NULL, 424, '6'),
  279. ('5503', '1', '汪秀鹏', '园林工程231', NULL, 428, '1 汪秀鹏 园林工程231'),
  280. ('5503', '2', '凤翔', '园林工程231', NULL, 429, '2 凤翔 园林工程231'),
  281. ('5503', '3', '陈宇', '园林工程231', NULL, 430, '3 陈宇 园林工程231'),
  282. ('5503', '4', '钱力', '园林工程231', NULL, 431, '4 钱力 园林工程231'),
  283. ('5503', '5', '张王朔', '园林工程231', NULL, 432, '5 张王朔 园林工程231'),
  284. ('5503', '6', NULL, NULL, NULL, 433, '6'),
  285. ('5504', '1', '黄家祥', '园林工程231', NULL, 437, '1 黄家祥 园林工程231'),
  286. ('5504', '2', '严弘毅', '园林工程231', NULL, 438, '2 严弘毅 园林工程231'),
  287. ('5504', '3', '郑楠', '园林工程231', NULL, 439, '3 郑楠 园林工程231'),
  288. ('5504', '4', '陈佳澎', '园林工程231', NULL, 440, '4 陈佳澎 园林工程231'),
  289. ('5504', '5', '刘潇', '园林工程231', NULL, 441, '5 刘潇 园林工程231'),
  290. ('5504', '6', '汪丛俭', '园林工程231', NULL, 442, '6 汪丛俭 园林工程231'),
  291. ('5505', '1', '张驰', '园林工程231', NULL, 446, '1 张驰 园林工程231'),
  292. ('5505', '2', '夏鹏辉', '园林工程231', NULL, 447, '2 夏鹏辉 园林工程231'),
  293. ('5505', '3', '刘宇奥', '园林工程231', NULL, 448, '3 刘宇奥 园林工程231'),
  294. ('5505', '4', '王顺安', '园林工程231', NULL, 449, '4 王顺安 园林工程231'),
  295. ('5505', '5', '祝宇杭', '园林工程231', NULL, 450, '5 祝宇杭 园林工程231'),
  296. ('5505', '6', NULL, NULL, NULL, 451, '6'),
  297. ('5506', '1', '卢贤俊', '园林工程231', NULL, 455, '1 卢贤俊 园林工程231'),
  298. ('5506', '2', '陈锦昌', '园林工程231', NULL, 456, '2 陈锦昌 园林工程231'),
  299. ('5506', '3', '管益明', '园林工程231', NULL, 457, '3 管益明 园林工程231'),
  300. ('5506', '4', '屠俊杰', '园林工程231', NULL, 458, '4 屠俊杰 园林工程231'),
  301. ('5506', '5', '陈进康', '园林工程231', NULL, 459, '5 陈进康 园林工程231'),
  302. ('5506', '6', NULL, NULL, NULL, 460, '6'),
  303. ('5507', '1', '嵇哲豪', '园林工程231', NULL, 464, '1 嵇哲豪 园林工程231'),
  304. ('5507', '2', '滕文硕', '园林工程231', NULL, 465, '2 滕文硕 园林工程231'),
  305. ('5507', '3', '谢宇桐', '园林工程231', NULL, 466, '3 谢宇桐 园林工程231'),
  306. ('5507', '4', '章钰杰', '园林工程231', NULL, 467, '4 章钰杰 园林工程231'),
  307. ('5507', '5', '姚博文', '园林工程231', NULL, 468, '5 姚博文 园林工程231'),
  308. ('5507', '6', '魏晨', '园林工程231', NULL, 469, '6 魏晨 园林工程231')
  309. ;
  310. DROP TEMPORARY TABLE IF EXISTS tmp_assign_norm;
  311. CREATE TEMPORARY TABLE tmp_assign_norm AS
  312. SELECT
  313. TRIM(room_code) AS room_code,
  314. TRIM(bed_name) AS bed_name,
  315. CASE
  316. WHEN NULLIF(TRIM(student_name), '') IN ('宋佳乐', '郑瀚洋') THEN NULL
  317. ELSE NULLIF(TRIM(student_name), '')
  318. END AS student_name,
  319. NULLIF(TRIM(SUBSTRING_INDEX(COALESCE(class_name_raw, ''), ' ', 1)), '') AS class_name,
  320. NULLIF(TRIM(class_name_raw), '') AS class_name_raw,
  321. NULLIF(TRIM(remark), '') AS remark,
  322. source_line,
  323. raw_text
  324. FROM tmp_assign_input_raw;
  325. -- 1) 学生存在性检查(按姓名)
  326. DROP TEMPORARY TABLE IF EXISTS tmp_student_precheck;
  327. CREATE TEMPORARY TABLE tmp_student_precheck AS
  328. SELECT
  329. t.room_code,
  330. t.bed_name,
  331. t.student_name,
  332. COUNT(s.id) AS student_match_count,
  333. GROUP_CONCAT(DISTINCT s.class_name ORDER BY s.class_name SEPARATOR ', ') AS db_class_names,
  334. GROUP_CONCAT(DISTINCT s.id ORDER BY s.id) AS student_ids,
  335. t.source_line,
  336. t.raw_text
  337. FROM tmp_assign_norm t
  338. LEFT JOIN xg_student_msg s
  339. ON s.deleted = 0
  340. AND s.name COLLATE utf8mb4_general_ci = t.student_name COLLATE utf8mb4_general_ci
  341. WHERE t.student_name IS NOT NULL
  342. GROUP BY t.room_code, t.bed_name, t.student_name, t.source_line, t.raw_text;
  343. -- 2) 班级存在性检查(按班级名)
  344. DROP TEMPORARY TABLE IF EXISTS tmp_class_precheck;
  345. CREATE TEMPORARY TABLE tmp_class_precheck AS
  346. SELECT
  347. t.class_name,
  348. COUNT(c.id) AS class_match_count,
  349. GROUP_CONCAT(DISTINCT c.id ORDER BY c.id) AS class_ids
  350. FROM (SELECT DISTINCT class_name FROM tmp_assign_norm WHERE class_name IS NOT NULL) t
  351. LEFT JOIN xg_class_msg c
  352. ON c.deleted = 0
  353. AND c.class_name COLLATE utf8mb4_general_ci = t.class_name COLLATE utf8mb4_general_ci
  354. GROUP BY t.class_name;
  355. -- 3) 学生-班级匹配检查(学生存在,但不在输入班级)
  356. DROP TEMPORARY TABLE IF EXISTS tmp_student_class_precheck;
  357. CREATE TEMPORARY TABLE tmp_student_class_precheck AS
  358. SELECT
  359. t.room_code,
  360. t.bed_name,
  361. t.student_name,
  362. t.class_name AS input_class_name,
  363. COUNT(s_any.id) AS name_match_count,
  364. COUNT(s_exact.id) AS exact_match_count,
  365. GROUP_CONCAT(DISTINCT s_any.class_name ORDER BY s_any.class_name SEPARATOR ', ') AS db_class_names,
  366. t.source_line,
  367. t.raw_text
  368. FROM tmp_assign_norm t
  369. LEFT JOIN xg_student_msg s_any
  370. ON s_any.deleted = 0
  371. AND s_any.name COLLATE utf8mb4_general_ci = t.student_name COLLATE utf8mb4_general_ci
  372. LEFT JOIN xg_student_msg s_exact
  373. ON s_exact.deleted = 0
  374. AND s_exact.name COLLATE utf8mb4_general_ci = t.student_name COLLATE utf8mb4_general_ci
  375. AND s_exact.class_name COLLATE utf8mb4_general_ci = t.class_name COLLATE utf8mb4_general_ci
  376. WHERE t.student_name IS NOT NULL
  377. AND t.class_name IS NOT NULL
  378. GROUP BY t.room_code, t.bed_name, t.student_name, t.class_name, t.source_line, t.raw_text;
  379. -- 4) 统计总览:三类问题数量
  380. SELECT
  381. (SELECT COUNT(*) FROM tmp_student_precheck WHERE student_match_count = 0) AS student_not_found_cnt,
  382. (SELECT COUNT(*) FROM tmp_class_precheck WHERE class_match_count = 0) AS class_not_found_cnt,
  383. (SELECT COUNT(*) FROM tmp_student_class_precheck WHERE name_match_count > 0 AND exact_match_count = 0) AS student_class_mismatch_cnt;
  384. -- 5) 学生不存在明细
  385. SELECT
  386. room_code,
  387. bed_name,
  388. student_name,
  389. source_line,
  390. raw_text
  391. FROM tmp_student_precheck
  392. WHERE student_match_count = 0
  393. ORDER BY room_code, bed_name;
  394. -- 6) 班级不存在明细
  395. SELECT
  396. class_name
  397. FROM tmp_class_precheck
  398. WHERE class_match_count = 0
  399. ORDER BY class_name;
  400. -- 7) 学生和班级不匹配明细
  401. SELECT
  402. room_code,
  403. bed_name,
  404. student_name,
  405. input_class_name,
  406. db_class_names,
  407. source_line,
  408. raw_text
  409. FROM tmp_student_class_precheck
  410. WHERE name_match_count > 0
  411. AND exact_match_count = 0
  412. ORDER BY room_code, bed_name, student_name;