init_dict_data.sql 6.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128
  1. -- ============================================
  2. -- 字典数据初始化脚本(幂等性版本)
  3. -- ============================================
  4. -- 1. 检查并插入 dict_type
  5. DECLARE
  6. v_count INT;
  7. BEGIN
  8. SELECT COUNT(*) INTO v_count FROM sys_dict_type WHERE dict_type = 'complaint_category';
  9. IF v_count = 0 THEN
  10. INSERT INTO sys_dict_type (dict_id, dict_name, dict_type, status, create_by, create_time, remark)
  11. VALUES (100, '投诉分类', 'complaint_category', '0', 'admin', sysdate, '教育投诉分类');
  12. DBMS_OUTPUT.PUT_LINE('✓ 已创建字典类型:complaint_category');
  13. ELSE
  14. DBMS_OUTPUT.PUT_LINE('⚠️ 字典类型 complaint_category 已存在');
  15. END IF;
  16. SELECT COUNT(*) INTO v_count FROM sys_dict_type WHERE dict_type = 'school_type';
  17. IF v_count = 0 THEN
  18. INSERT INTO sys_dict_type (dict_id, dict_name, dict_type, status, create_by, create_time, remark)
  19. VALUES (101, '学校类别', 'school_type', '0', 'admin', sysdate, '学校类别(映射东软 DWLX)');
  20. DBMS_OUTPUT.PUT_LINE('✓ 已创建字典类型:school_type');
  21. ELSE
  22. DBMS_OUTPUT.PUT_LINE('⚠️ 字典类型 school_type 已存在');
  23. END IF;
  24. END;
  25. /
  26. -- 2. 检查并插入 dict_data(投诉分类)
  27. DECLARE
  28. v_count INT;
  29. BEGIN
  30. -- 违规收费
  31. SELECT COUNT(*) INTO v_count FROM sys_dict_data WHERE dict_type = 'complaint_category' AND dict_value = '违规收费';
  32. IF v_count = 0 THEN
  33. INSERT INTO sys_dict_data (dict_code, dict_sort, dict_label, dict_value, dict_type, is_default, status, create_by, create_time, remark)
  34. VALUES (500, 1, '违规收费', '违规收费', 'complaint_category', 'N', '0', 'admin', sysdate, '');
  35. END IF;
  36. -- 食品安全
  37. SELECT COUNT(*) INTO v_count FROM sys_dict_data WHERE dict_type = 'complaint_category' AND dict_value = '食品安全';
  38. IF v_count = 0 THEN
  39. INSERT INTO sys_dict_data (dict_code, dict_sort, dict_label, dict_value, dict_type, is_default, status, create_by, create_time, remark)
  40. VALUES (501, 2, '食品安全', '食品安全', 'complaint_category', 'N', '0', 'admin', sysdate, '');
  41. END IF;
  42. -- 补课违规
  43. SELECT COUNT(*) INTO v_count FROM sys_dict_data WHERE dict_type = 'complaint_category' AND dict_value = '补课违规';
  44. IF v_count = 0 THEN
  45. INSERT INTO sys_dict_data (dict_code, dict_sort, dict_label, dict_value, dict_type, is_default, status, create_by, create_time, remark)
  46. VALUES (502, 3, '补课违规', '补课违规', 'complaint_category', 'N', '0', 'admin', sysdate, '');
  47. END IF;
  48. -- 师德师风
  49. SELECT COUNT(*) INTO v_count FROM sys_dict_data WHERE dict_type = 'complaint_category' AND dict_value = '师德师风';
  50. IF v_count = 0 THEN
  51. INSERT INTO sys_dict_data (dict_code, dict_sort, dict_label, dict_value, dict_type, is_default, status, create_by, create_time, remark)
  52. VALUES (503, 4, '师德师风', '师德师风', 'complaint_category', 'N', '0', 'admin', sysdate, '');
  53. END IF;
  54. -- 招生违规
  55. SELECT COUNT(*) INTO v_count FROM sys_dict_data WHERE dict_type = 'complaint_category' AND dict_value = '招生违规';
  56. IF v_count = 0 THEN
  57. INSERT INTO sys_dict_data (dict_code, dict_sort, dict_label, dict_value, dict_type, is_default, status, create_by, create_time, remark)
  58. VALUES (504, 5, '招生违规', '招生违规', 'complaint_category', 'N', '0', 'admin', sysdate, '');
  59. END IF;
  60. -- 其他
  61. SELECT COUNT(*) INTO v_count FROM sys_dict_data WHERE dict_type = 'complaint_category' AND dict_value = '其他';
  62. IF v_count = 0 THEN
  63. INSERT INTO sys_dict_data (dict_code, dict_sort, dict_label, dict_value, dict_type, is_default, status, create_by, create_time, remark)
  64. VALUES (505, 6, '其他', '其他', 'complaint_category', 'N', '0', 'admin', sysdate, '');
  65. END IF;
  66. DBMS_OUTPUT.PUT_LINE('✓ 投诉分类字典数据已就绪');
  67. END;
  68. /
  69. -- 3. 检查并插入 dict_data(学校类别)
  70. DECLARE
  71. v_count INT;
  72. BEGIN
  73. -- 幼儿园
  74. SELECT COUNT(*) INTO v_count FROM sys_dict_data WHERE dict_type = 'school_type' AND dict_value = '幼儿园';
  75. IF v_count = 0 THEN
  76. INSERT INTO sys_dict_data (dict_code, dict_sort, dict_label, dict_value, dict_type, is_default, status, create_by, create_time, remark)
  77. VALUES (510, 1, '幼儿园', '幼儿园', 'school_type', 'N', '0', 'admin', sysdate, 'DWLX=11');
  78. END IF;
  79. -- 小学
  80. SELECT COUNT(*) INTO v_count FROM sys_dict_data WHERE dict_type = 'school_type' AND dict_value = '小学';
  81. IF v_count = 0 THEN
  82. INSERT INTO sys_dict_data (dict_code, dict_sort, dict_label, dict_value, dict_type, is_default, status, create_by, create_time, remark)
  83. VALUES (511, 2, '小学', '小学', 'school_type', 'N', '0', 'admin', sysdate, 'DWLX=21');
  84. END IF;
  85. -- 初中
  86. SELECT COUNT(*) INTO v_count FROM sys_dict_data WHERE dict_type = 'school_type' AND dict_value = '初中';
  87. IF v_count = 0 THEN
  88. INSERT INTO sys_dict_data (dict_code, dict_sort, dict_label, dict_value, dict_type, is_default, status, create_by, create_time, remark)
  89. VALUES (512, 3, '初中', '初中', 'school_type', 'N', '0', 'admin', sysdate, 'DWLX=31');
  90. END IF;
  91. -- 高中
  92. SELECT COUNT(*) INTO v_count FROM sys_dict_data WHERE dict_type = 'school_type' AND dict_value = '高中';
  93. IF v_count = 0 THEN
  94. INSERT INTO sys_dict_data (dict_code, dict_sort, dict_label, dict_value, dict_type, is_default, status, create_by, create_time, remark)
  95. VALUES (513, 4, '高中', '高中', 'school_type', 'N', '0', 'admin', sysdate, 'DWLX=34');
  96. END IF;
  97. -- 中职
  98. SELECT COUNT(*) INTO v_count FROM sys_dict_data WHERE dict_type = 'school_type' AND dict_value = '中职';
  99. IF v_count = 0 THEN
  100. INSERT INTO sys_dict_data (dict_code, dict_sort, dict_label, dict_value, dict_type, is_default, status, create_by, create_time, remark)
  101. VALUES (514, 5, '中职', '中职', 'school_type', 'N', '0', 'admin', sysdate, 'DWLX=36');
  102. END IF;
  103. DBMS_OUTPUT.PUT_LINE('✓ 学校类别字典数据已就绪');
  104. END;
  105. /
  106. COMMIT;
  107. -- 4. 最终验证
  108. SELECT '==== 字典数据统计 ====' as message;
  109. SELECT dict_type, COUNT(*) as count FROM sys_dict_data
  110. WHERE dict_type IN ('complaint_category', 'school_type')
  111. GROUP BY dict_type;