jcbt_poverty_application_table.sql 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311
  1. -- ============================================================================
  2. -- 贫困生认定申请管理 - 数据库表创建脚本
  3. -- 创建时间: 2024-12-19
  4. -- 描述: 创建贫困生认定申请相关的数据库表、菜单权限和测试数据
  5. -- ============================================================================
  6. -- ============================================================================
  7. -- 1. 创建贫困生认定申请表
  8. -- ============================================================================
  9. CREATE TABLE IF NOT EXISTS `jcbt_poverty_application` (
  10. `id` bigint(20) NOT NULL COMMENT '主键ID',
  11. `application_no` varchar(50) DEFAULT NULL COMMENT '申请编号',
  12. `academic_year` varchar(20) DEFAULT NULL COMMENT '学年',
  13. `term` int(11) DEFAULT NULL COMMENT '学期',
  14. `student_id` bigint(20) DEFAULT NULL COMMENT '学生ID',
  15. `student_no` varchar(50) DEFAULT NULL COMMENT '学号',
  16. `student_name` varchar(100) DEFAULT NULL COMMENT '学生姓名',
  17. `gender` varchar(10) DEFAULT NULL COMMENT '性别',
  18. `college_id` bigint(20) DEFAULT NULL COMMENT '学院ID',
  19. `college_name` varchar(100) DEFAULT NULL COMMENT '学院名称',
  20. `major_id` bigint(20) DEFAULT NULL COMMENT '专业ID',
  21. `major_name` varchar(100) DEFAULT NULL COMMENT '专业名称',
  22. `class_id` bigint(20) DEFAULT NULL COMMENT '班级ID',
  23. `class_name` varchar(100) DEFAULT NULL COMMENT '班级名称',
  24. `recognition_group` varchar(50) DEFAULT NULL COMMENT '认定群体(特殊群体/其他群体)',
  25. `recognition_type_id` bigint(20) DEFAULT NULL COMMENT '认定类型ID',
  26. `recognition_type_code` varchar(50) DEFAULT NULL COMMENT '认定类型编码',
  27. `recognition_type_name` varchar(100) DEFAULT NULL COMMENT '认定类型名称',
  28. `assistance_type_ids` varchar(500) DEFAULT NULL COMMENT '申请自助类型ID数组(多选)',
  29. `assistance_type_names` varchar(500) DEFAULT NULL COMMENT '申请自助类型名称(多个用逗号分隔)',
  30. `family_economy_summary` text COMMENT '家庭经济情况摘要',
  31. `attach_application_form_url` varchar(500) DEFAULT NULL COMMENT '申请表附件URL',
  32. `attach_application_form_id` bigint(20) DEFAULT NULL COMMENT '申请表附件ID',
  33. `attach_survey_form_url` varchar(500) DEFAULT NULL COMMENT '调查表附件URL',
  34. `attach_survey_form_id` bigint(20) DEFAULT NULL COMMENT '调查表附件ID',
  35. `status` varchar(20) DEFAULT 'DRAFT' COMMENT '申请状态(DRAFT-草稿,SUBMITTED-已提交,REVIEWING-审核中,APPROVED-已通过,REJECTED-已拒绝,WITHDRAWN-已撤回)',
  36. `submitter_id` bigint(20) DEFAULT NULL COMMENT '提交人ID',
  37. `submitter_name` varchar(100) DEFAULT NULL COMMENT '提交人姓名',
  38. `submit_time` datetime DEFAULT NULL COMMENT '提交时间',
  39. `auditor_id` bigint(20) DEFAULT NULL COMMENT '审核人ID',
  40. `auditor_name` varchar(100) DEFAULT NULL COMMENT '审核人姓名',
  41. `audit_time` datetime DEFAULT NULL COMMENT '审核时间',
  42. `audit_opinion` text COMMENT '审核意见',
  43. `remark` varchar(500) DEFAULT NULL COMMENT '备注',
  44. `deleted` bigint(20) DEFAULT '0' COMMENT '逻辑删除标记(0-正常,非0-已删除)',
  45. `tenant_id` varchar(20) DEFAULT '000000' COMMENT '租户编号',
  46. `create_by` bigint(20) DEFAULT NULL COMMENT '创建者',
  47. `create_time` datetime DEFAULT NULL COMMENT '创建时间',
  48. `update_by` bigint(20) DEFAULT NULL COMMENT '更新者',
  49. `update_time` datetime DEFAULT NULL COMMENT '更新时间',
  50. PRIMARY KEY (`id`),
  51. KEY `idx_student_no` (`student_no`),
  52. KEY `idx_status` (`status`),
  53. KEY `idx_academic_year` (`academic_year`),
  54. KEY `idx_college_id` (`college_id`),
  55. KEY `idx_tenant_deleted` (`tenant_id`, `deleted`),
  56. KEY `idx_create_time` (`create_time`)
  57. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='贫困生认定申请表';
  58. -- ============================================================================
  59. -- 2. 插入菜单权限配置
  60. -- ============================================================================
  61. -- 2.1 插入主菜单(贫困生认定申请管理)
  62. INSERT INTO sys_menu VALUES(
  63. '1954043650013946881',
  64. '贫困生认定申请管理',
  65. '1851080776692494337',
  66. '4',
  67. 'jcbt:poverty:application:list',
  68. 'poverty/Application/index',
  69. '',
  70. '',
  71. '1',
  72. '0',
  73. 'C',
  74. '0',
  75. '0',
  76. 'jcbt:poverty:application:list',
  77. 'education',
  78. '103',
  79. '1',
  80. NOW(),
  81. NULL,
  82. NULL,
  83. ''
  84. );
  85. -- 2.2 插入按钮权限
  86. -- 查询按钮
  87. INSERT INTO sys_menu VALUES(
  88. '1954043651013946881',
  89. '贫困生认定申请查询',
  90. '1954043650013946881',
  91. '1',
  92. 'jcbt:poverty:application:query',
  93. '',
  94. '',
  95. '',
  96. '1',
  97. '0',
  98. 'F',
  99. '0',
  100. '0',
  101. 'jcbt:poverty:application:query',
  102. '#',
  103. '103',
  104. '1',
  105. NOW(),
  106. NULL,
  107. NULL,
  108. ''
  109. );
  110. -- 新增按钮
  111. INSERT INTO sys_menu VALUES(
  112. '1954043652013946881',
  113. '贫困生认定申请新增',
  114. '1954043650013946881',
  115. '2',
  116. 'jcbt:poverty:application:add',
  117. '',
  118. '',
  119. '',
  120. '1',
  121. '0',
  122. 'F',
  123. '0',
  124. '0',
  125. 'jcbt:poverty:application:add',
  126. '#',
  127. '103',
  128. '1',
  129. NOW(),
  130. NULL,
  131. NULL,
  132. ''
  133. );
  134. -- 修改按钮
  135. INSERT INTO sys_menu VALUES(
  136. '1954043653013946881',
  137. '贫困生认定申请修改',
  138. '1954043650013946881',
  139. '3',
  140. 'jcbt:poverty:application:edit',
  141. '',
  142. '',
  143. '',
  144. '1',
  145. '0',
  146. 'F',
  147. '0',
  148. '0',
  149. 'jcbt:poverty:application:edit',
  150. '#',
  151. '103',
  152. '1',
  153. NOW(),
  154. NULL,
  155. NULL,
  156. ''
  157. );
  158. -- 删除按钮
  159. INSERT INTO sys_menu VALUES(
  160. '1954043654013946881',
  161. '贫困生认定申请删除',
  162. '1954043650013946881',
  163. '4',
  164. 'jcbt:poverty:application:remove',
  165. '',
  166. '',
  167. '',
  168. '1',
  169. '0',
  170. 'F',
  171. '0',
  172. '0',
  173. 'jcbt:poverty:application:remove',
  174. '#',
  175. '103',
  176. '1',
  177. NOW(),
  178. NULL,
  179. NULL,
  180. ''
  181. );
  182. -- 导出按钮
  183. INSERT INTO sys_menu VALUES(
  184. '1954043655013946881',
  185. '贫困生认定申请导出',
  186. '1954043650013946881',
  187. '5',
  188. 'jcbt:poverty:application:export',
  189. '',
  190. '',
  191. '',
  192. '1',
  193. '0',
  194. 'F',
  195. '0',
  196. '0',
  197. 'jcbt:poverty:application:export',
  198. '#',
  199. '103',
  200. '1',
  201. NOW(),
  202. NULL,
  203. NULL,
  204. ''
  205. );
  206. -- 审核按钮
  207. INSERT INTO sys_menu VALUES(
  208. '1954043656013946881',
  209. '贫困生认定申请审核',
  210. '1954043650013946881',
  211. '6',
  212. 'jcbt:poverty:application:audit',
  213. '',
  214. '',
  215. '',
  216. '1',
  217. '0',
  218. 'F',
  219. '0',
  220. '0',
  221. 'jcbt:poverty:application:audit',
  222. '#',
  223. '103',
  224. '1',
  225. NOW(),
  226. NULL,
  227. NULL,
  228. ''
  229. );
  230. -- ============================================================================
  231. -- 3. 插入字典数据
  232. -- ============================================================================
  233. -- 3.1 申请状态字典
  234. INSERT INTO sys_dict_type VALUES(
  235. (SELECT IFNULL(MAX(dict_id), 0) + 1 FROM sys_dict_type t),
  236. '贫困生申请状态',
  237. 'jcbt_poverty_application_status',
  238. '0',
  239. '103',
  240. '1',
  241. NOW(),
  242. NULL,
  243. NULL,
  244. '贫困生认定申请状态选项'
  245. );
  246. -- 获取刚插入的字典类型ID
  247. SET @dict_type_id = (SELECT dict_id FROM sys_dict_type WHERE dict_type = 'jcbt_poverty_application_status');
  248. -- 插入状态字典数据
  249. INSERT INTO sys_dict_data VALUES(@dict_type_id * 10 + 1, 1, '草稿', 'DRAFT', 'jcbt_poverty_application_status', '', 'info', 'N', '0', '103', '1', NOW(), NULL, NULL, '申请草稿状态');
  250. INSERT INTO sys_dict_data VALUES(@dict_type_id * 10 + 2, 2, '已提交', 'SUBMITTED', 'jcbt_poverty_application_status', '', 'primary', 'N', '0', '103', '1', NOW(), NULL, NULL, '申请已提交状态');
  251. INSERT INTO sys_dict_data VALUES(@dict_type_id * 10 + 3, 3, '审核中', 'REVIEWING', 'jcbt_poverty_application_status', '', 'warning', 'N', '0', '103', '1', NOW(), NULL, NULL, '申请审核中状态');
  252. INSERT INTO sys_dict_data VALUES(@dict_type_id * 10 + 4, 4, '已通过', 'APPROVED', 'jcbt_poverty_application_status', '', 'success', 'N', '0', '103', '1', NOW(), NULL, NULL, '申请已通过状态');
  253. INSERT INTO sys_dict_data VALUES(@dict_type_id * 10 + 5, 5, '已拒绝', 'REJECTED', 'jcbt_poverty_application_status', '', 'danger', 'N', '0', '103', '1', NOW(), NULL, NULL, '申请已拒绝状态');
  254. INSERT INTO sys_dict_data VALUES(@dict_type_id * 10 + 6, 6, '已撤回', 'WITHDRAWN', 'jcbt_poverty_application_status', '', 'info', 'N', '0', '103', '1', NOW(), NULL, NULL, '申请已撤回状态');
  255. -- ============================================================================
  256. -- 4. 插入测试数据
  257. -- ============================================================================
  258. INSERT INTO `jcbt_poverty_application` VALUES
  259. (1954048400013946881, 'PK2024001', '2024-2025', 1, 1001, '202401001', '张三', '男', 101, '计算机学院', 10101, '计算机科学与技术', 1010101, '计软2401班', '其他群体', 1, 'TYPE001', '一般困难', '1,2', '学费减免,生活补助', '家庭经济困难,父母务农收入微薄', '', NULL, '', NULL, 'SUBMITTED', 1001, '张三', '2024-12-01 10:00:00', NULL, NULL, NULL, NULL, '因家庭经济困难申请贫困生认定', 0, '000000', 103, '2024-12-01 09:30:00', 103, '2024-12-01 10:00:00'),
  260. (1954048401013946881, 'PK2024002', '2024-2025', 1, 1002, '202401002', '李四', '女', 102, '外国语学院', 10201, '英语', 1020101, '英语2401班', '特殊群体', 2, 'TYPE002', '特别困难', '1,3', '学费减免,勤工助学', '单亲家庭,母亲重病', '', NULL, '', NULL, 'REVIEWING', 1002, '李四', '2024-12-02 14:00:00', 201, '王老师', NULL, NULL, '单亲家庭申请特别困难认定', 0, '000000', 103, '2024-12-02 13:30:00', 201, '2024-12-02 14:00:00'),
  261. (1954048402013946881, 'PK2024003', '2024-2025', 1, 1003, '202401003', '王五', '男', 101, '计算机学院', 10102, '软件工程', 1010201, '软工2401班', '其他群体', 1, 'TYPE001', '一般困难', '2', '生活补助', '家庭收入较低', '', NULL, '', NULL, 'APPROVED', 1003, '王五', '2024-11-28 16:00:00', 201, '王老师', '2024-11-30 10:00:00', '符合认定条件,予以通过', '已通过认定审核', 0, '000000', 103, '2024-11-28 15:30:00', 201, '2024-11-30 10:00:00'),
  262. (1954048403013946881, 'PK2024004', '2024-2025', 1, 1004, '202401004', '赵六', '女', 103, '经济管理学院', 10301, '会计学', 1030101, '会计2401班', '其他群体', 1, 'TYPE001', '一般困难', '1,2,3', '学费减免,生活补助,勤工助学', '家庭经济确实困难', '', NULL, '', NULL, 'DRAFT', NULL, NULL, NULL, NULL, NULL, NULL, NULL, '正在准备申请材料', 0, '000000', 103, '2024-12-05 11:00:00', 103, '2024-12-05 11:00:00'),
  263. (1954048404013946881, 'PK2024005', '2024-2025', 1, 1005, '202401005', '钱七', '男', 104, '机械工程学院', 10401, '机械设计制造及其自动化', 1040101, '机械2401班', '特殊群体', 2, 'TYPE002', '特别困难', '1,2', '学费减免,生活补助', '建档立卡贫困户', '', NULL, '', NULL, 'REJECTED', 1005, '钱七', '2024-11-25 09:00:00', 202, '李老师', '2024-11-27 15:00:00', '材料不够完整,请补充相关证明', '需要补充材料后重新申请', 0, '000000', 103, '2024-11-25 08:30:00', 202, '2024-11-27 15:00:00');
  264. -- ============================================================================
  265. -- 5. 创建索引优化
  266. -- ============================================================================
  267. -- 优化查询性能的复合索引
  268. CREATE INDEX idx_student_status_time ON jcbt_poverty_application(student_id, status, create_time);
  269. CREATE INDEX idx_college_year_status ON jcbt_poverty_application(college_id, academic_year, status);
  270. CREATE INDEX idx_auditor_time ON jcbt_poverty_application(auditor_id, audit_time);
  271. -- ============================================================================
  272. -- 6. 数据统计视图(可选)
  273. -- ============================================================================
  274. -- 创建状态统计视图
  275. CREATE OR REPLACE VIEW v_poverty_application_statistics AS
  276. SELECT
  277. status,
  278. COUNT(*) as count,
  279. academic_year,
  280. college_name
  281. FROM jcbt_poverty_application
  282. WHERE deleted = 0
  283. GROUP BY status, academic_year, college_name;
  284. -- ============================================================================
  285. -- 脚本执行完成
  286. -- ============================================================================
  287. -- 执行完成后请检查:
  288. -- 1. 表结构是否创建成功: SHOW CREATE TABLE jcbt_poverty_application;
  289. -- 2. 菜单权限是否正确: SELECT * FROM sys_menu WHERE menu_name LIKE '%贫困生%';
  290. -- 3. 测试数据是否插入: SELECT COUNT(*) FROM jcbt_poverty_application;
  291. -- ============================================================================