cw-budget-approval-create-tables.sql 25 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447
  1. -- ==========================================
  2. -- 财务项目预算审批系统 - 数据库创建脚本
  3. -- 版本: 1.0
  4. -- 创建时间: 2025-01-26
  5. -- 表名前缀: cw_ (财务模块)
  6. -- ==========================================
  7. -- 设置字符集
  8. SET NAMES utf8mb4;
  9. SET FOREIGN_KEY_CHECKS = 0;
  10. -- ==========================================
  11. -- 1. 创建核心数据表
  12. -- ==========================================
  13. -- 1.1 项目预算申报表
  14. DROP TABLE IF EXISTS `cw_project_application`;
  15. CREATE TABLE `cw_project_application` (
  16. `id` bigint(20) NOT NULL COMMENT '主键ID(雪花ID)',
  17. `application_no` varchar(50) NOT NULL COMMENT '申报编号(自动生成,格式:CW-YYYY-MMDD-XXXX)',
  18. -- 项目基本信息
  19. `project_name` varchar(200) NOT NULL COMMENT '项目名称',
  20. `principal` varchar(50) NOT NULL COMMENT '项目负责人',
  21. `contact_phone` varchar(20) COMMENT '联系电话',
  22. `start_date` date COMMENT '项目实施开始时间',
  23. `end_date` date COMMENT '项目实施结束时间',
  24. -- 项目特性
  25. `target_sme` tinyint(1) DEFAULT 0 COMMENT '是否面向中小企业(0-否 1-是)',
  26. `target_micro_sme` tinyint(1) DEFAULT 0 COMMENT '是否面向小微企业(0-否 1-是)',
  27. `import_equipment` tinyint(1) DEFAULT 0 COMMENT '是否采购进口设备(0-否 1-是)',
  28. -- 项目详细内容
  29. `application_reason` text COMMENT '项目申请原因(包括设立依据、可行性及必要性)',
  30. `construction_content` text COMMENT '项目建设内容',
  31. `total_performance_goal` text COMMENT '绩效总目标',
  32. `current_year_goal` text COMMENT '当年绩效目标',
  33. -- 资金来源汇总(万元)
  34. -- 项目总投资
  35. `total_investment` decimal(15,2) DEFAULT 0.00 COMMENT '项目总投资-合计(万元)',
  36. `total_municipal_fiscal` decimal(15,2) DEFAULT 0.00 COMMENT '项目总投资-市财政资金(万元)',
  37. `total_self_funding` decimal(15,2) DEFAULT 0.00 COMMENT '项目总投资-单位自筹(万元)',
  38. `total_other_funding` decimal(15,2) DEFAULT 0.00 COMMENT '项目总投资-其他(万元)',
  39. -- 年度预计执行数
  40. `current_year_total` decimal(15,2) DEFAULT 0.00 COMMENT '年度预计执行数-合计(万元)',
  41. `current_year_municipal` decimal(15,2) DEFAULT 0.00 COMMENT '年度预计执行数-市财政资金(万元)',
  42. `current_year_self` decimal(15,2) DEFAULT 0.00 COMMENT '年度预计执行数-单位自筹(万元)',
  43. `current_year_other` decimal(15,2) DEFAULT 0.00 COMMENT '年度预计执行数-其他(万元)',
  44. -- 下年度申请资金
  45. `next_year_total` decimal(15,2) DEFAULT 0.00 COMMENT '下年度申请资金-合计(万元)',
  46. `next_year_municipal` decimal(15,2) DEFAULT 0.00 COMMENT '下年度申请资金-市财政资金(万元)',
  47. `next_year_self` decimal(15,2) DEFAULT 0.00 COMMENT '下年度申请资金-单位自筹(万元)',
  48. `next_year_other` decimal(15,2) DEFAULT 0.00 COMMENT '下年度申请资金-其他(万元)',
  49. -- 以后年度安排
  50. `future_year_total` decimal(15,2) DEFAULT 0.00 COMMENT '以后年度安排-合计(万元)',
  51. `future_year_municipal` decimal(15,2) DEFAULT 0.00 COMMENT '以后年度安排-市财政资金(万元)',
  52. `future_year_self` decimal(15,2) DEFAULT 0.00 COMMENT '以后年度安排-单位自筹(万元)',
  53. `future_year_other` decimal(15,2) DEFAULT 0.00 COMMENT '以后年度安排-其他(万元)',
  54. -- 申请人信息
  55. `applicant_id` bigint(20) NOT NULL COMMENT '申请人ID',
  56. `applicant_name` varchar(50) NOT NULL COMMENT '申请人姓名',
  57. `department_id` bigint(20) NOT NULL COMMENT '所属部门ID',
  58. `department_name` varchar(100) NOT NULL COMMENT '所属部门名称',
  59. -- 审批相关
  60. `approval_status` varchar(20) DEFAULT 'draft' COMMENT '审批状态(draft-草稿 submitted-已提交 approving-审批中 approved-已通过 rejected-已拒绝 returned-已退回 cancelled-已取消)',
  61. `submit_time` datetime COMMENT '提交时间',
  62. `approve_time` datetime COMMENT '审批完成时间',
  63. `year` int(11) NOT NULL COMMENT '预算年度',
  64. -- 系统字段
  65. `remark` varchar(500) COMMENT '备注',
  66. `create_by` bigint(20) COMMENT '创建者',
  67. `create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  68. `update_by` bigint(20) COMMENT '更新者',
  69. `update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  70. `create_dept` bigint(20) COMMENT '创建部门',
  71. `deleted` tinyint(1) DEFAULT 0 COMMENT '删除标志(0-正常 1-删除)',
  72. `tenant_id` varchar(20) DEFAULT '000000' COMMENT '租户ID',
  73. PRIMARY KEY (`id`),
  74. UNIQUE KEY `uk_application_no` (`application_no`, `tenant_id`, `deleted`),
  75. KEY `idx_applicant_id` (`applicant_id`),
  76. KEY `idx_department_id` (`department_id`),
  77. KEY `idx_status_year` (`approval_status`, `year`),
  78. KEY `idx_create_time` (`create_time`),
  79. KEY `idx_submit_time` (`submit_time`)
  80. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='项目预算申报表';
  81. -- 1.2 审批人配置表
  82. DROP TABLE IF EXISTS `cw_approver_config`;
  83. CREATE TABLE `cw_approver_config` (
  84. `id` bigint(20) NOT NULL COMMENT '主键ID',
  85. `config_name` varchar(100) NOT NULL COMMENT '配置名称',
  86. `config_type` varchar(20) NOT NULL COMMENT '配置类型(global-全局配置 dept-按部门配置 amount-按金额配置)',
  87. -- 配置条件
  88. `dept_id` bigint(20) COMMENT '部门ID(按部门配置时使用)',
  89. `dept_name` varchar(100) COMMENT '部门名称(按部门配置时使用)',
  90. `min_amount` decimal(15,2) COMMENT '最小金额(按金额配置时使用,万元)',
  91. `max_amount` decimal(15,2) COMMENT '最大金额(按金额配置时使用,万元)',
  92. -- 3个固定审批节点的审批人
  93. -- 部门审批(第1节点)
  94. `dept_approver_id` bigint(20) COMMENT '部门审批人ID',
  95. `dept_approver_name` varchar(50) COMMENT '部门审批人姓名',
  96. `dept_delegate_id` bigint(20) COMMENT '部门代理审批人ID',
  97. `dept_delegate_name` varchar(50) COMMENT '部门代理审批人姓名',
  98. `dept_delegate_start_time` datetime COMMENT '部门代理开始时间',
  99. `dept_delegate_end_time` datetime COMMENT '部门代理结束时间',
  100. -- 财务审批(第2节点)
  101. `finance_approver_id` bigint(20) COMMENT '财务审批人ID',
  102. `finance_approver_name` varchar(50) COMMENT '财务审批人姓名',
  103. `finance_delegate_id` bigint(20) COMMENT '财务代理审批人ID',
  104. `finance_delegate_name` varchar(50) COMMENT '财务代理审批人姓名',
  105. `finance_delegate_start_time` datetime COMMENT '财务代理开始时间',
  106. `finance_delegate_end_time` datetime COMMENT '财务代理结束时间',
  107. -- 领导审批(第3节点)
  108. `leader_approver_id` bigint(20) COMMENT '领导审批人ID',
  109. `leader_approver_name` varchar(50) COMMENT '领导审批人姓名',
  110. `leader_delegate_id` bigint(20) COMMENT '领导代理审批人ID',
  111. `leader_delegate_name` varchar(50) COMMENT '领导代理审批人姓名',
  112. `leader_delegate_start_time` datetime COMMENT '领导代理开始时间',
  113. `leader_delegate_end_time` datetime COMMENT '领导代理结束时间',
  114. -- 配置状态
  115. `priority` int(11) DEFAULT 0 COMMENT '优先级(数字越大优先级越高,用于多个配置冲突时的选择)',
  116. `status` char(1) DEFAULT '1' COMMENT '状态(0-禁用 1-启用)',
  117. `effective_start_time` datetime COMMENT '生效开始时间',
  118. `effective_end_time` datetime COMMENT '生效结束时间',
  119. -- 系统字段
  120. `remark` varchar(500) COMMENT '备注',
  121. `create_by` bigint(20) COMMENT '创建者',
  122. `create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  123. `update_by` bigint(20) COMMENT '更新者',
  124. `update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  125. `create_dept` bigint(20) COMMENT '创建部门',
  126. `deleted` tinyint(1) DEFAULT 0 COMMENT '删除标志(0-正常 1-删除)',
  127. `tenant_id` varchar(20) DEFAULT '000000' COMMENT '租户ID',
  128. PRIMARY KEY (`id`),
  129. KEY `idx_config_type` (`config_type`),
  130. KEY `idx_dept_id` (`dept_id`),
  131. KEY `idx_amount_range` (`min_amount`, `max_amount`),
  132. KEY `idx_status_priority` (`status`, `priority`),
  133. KEY `idx_effective_time` (`effective_start_time`, `effective_end_time`)
  134. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='审批人配置表';
  135. -- 1.3 审批记录表
  136. DROP TABLE IF EXISTS `cw_approval_record`;
  137. CREATE TABLE `cw_approval_record` (
  138. `id` bigint(20) NOT NULL COMMENT '主键ID',
  139. `application_id` bigint(20) NOT NULL COMMENT '申报ID',
  140. `application_no` varchar(50) NOT NULL COMMENT '申报编号',
  141. -- 节点信息
  142. `node_code` varchar(20) NOT NULL COMMENT '节点编码(dept_approve-部门审批 finance_approve-财务审批 leader_approve-领导审批)',
  143. `node_name` varchar(50) NOT NULL COMMENT '节点名称',
  144. `node_order` int(11) NOT NULL COMMENT '节点顺序(1-部门审批 2-财务审批 3-领导审批)',
  145. -- 审批人信息
  146. `approver_id` bigint(20) NOT NULL COMMENT '审批人ID',
  147. `approver_name` varchar(50) NOT NULL COMMENT '审批人姓名',
  148. `is_delegate` tinyint(1) DEFAULT 0 COMMENT '是否代理审批(0-否 1-是)',
  149. `original_approver_id` bigint(20) COMMENT '原审批人ID(代理时使用)',
  150. `original_approver_name` varchar(50) COMMENT '原审批人姓名(代理时使用)',
  151. -- 审批状态和结果
  152. `node_status` varchar(20) NOT NULL COMMENT '节点状态(waiting-等待审批 approving-审批中 approved-已通过 rejected-已拒绝 returned-已退回)',
  153. `approve_action` varchar(20) COMMENT '审批动作(approve-通过 reject-拒绝 return-退回)',
  154. `approve_opinion` text COMMENT '审批意见',
  155. -- 时间记录
  156. `start_time` datetime NOT NULL COMMENT '节点开始时间',
  157. `end_time` datetime COMMENT '节点结束时间',
  158. `expect_finish_time` datetime COMMENT '期望完成时间',
  159. `is_overtime` tinyint(1) DEFAULT 0 COMMENT '是否超时(0-否 1-是)',
  160. -- 审批配置记录
  161. `config_id` bigint(20) COMMENT '使用的审批配置ID',
  162. `config_snapshot` json COMMENT '审批配置快照(JSON格式,记录当时的配置)',
  163. -- 系统字段
  164. `create_by` bigint(20) COMMENT '创建者',
  165. `create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  166. `update_by` bigint(20) COMMENT '更新者',
  167. `update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  168. `create_dept` bigint(20) COMMENT '创建部门',
  169. `deleted` tinyint(1) DEFAULT 0 COMMENT '删除标志(0-正常 1-删除)',
  170. `tenant_id` varchar(20) DEFAULT '000000' COMMENT '租户ID',
  171. PRIMARY KEY (`id`),
  172. KEY `idx_application_id` (`application_id`),
  173. KEY `idx_application_no` (`application_no`),
  174. KEY `idx_approver_id` (`approver_id`),
  175. KEY `idx_node_status` (`node_status`),
  176. KEY `idx_node_order` (`node_order`),
  177. KEY `idx_start_time` (`start_time`),
  178. KEY `idx_expect_finish_time` (`expect_finish_time`)
  179. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='审批记录表';
  180. -- 1.4 项目支出明细表
  181. DROP TABLE IF EXISTS `cw_expenditure_detail`;
  182. CREATE TABLE `cw_expenditure_detail` (
  183. `id` bigint(20) NOT NULL COMMENT '主键ID',
  184. `application_id` bigint(20) NOT NULL COMMENT '申报ID',
  185. `application_no` varchar(50) NOT NULL COMMENT '申报编号',
  186. -- 支出明细信息
  187. `category_code` varchar(50) COMMENT '支出科目编码(关联字典)',
  188. `category` varchar(100) NOT NULL COMMENT '支出科目名称',
  189. `amount` decimal(15,2) NOT NULL COMMENT '金额(万元)',
  190. `calculation` text COMMENT '测算依据',
  191. `description` varchar(500) COMMENT '详细说明',
  192. -- 时间分配
  193. `current_year_amount` decimal(15,2) DEFAULT 0.00 COMMENT '当年执行金额(万元)',
  194. `next_year_amount` decimal(15,2) DEFAULT 0.00 COMMENT '下年度金额(万元)',
  195. `future_year_amount` decimal(15,2) DEFAULT 0.00 COMMENT '以后年度金额(万元)',
  196. -- 资金来源分配
  197. `municipal_fiscal_amount` decimal(15,2) DEFAULT 0.00 COMMENT '市财政资金(万元)',
  198. `self_funding_amount` decimal(15,2) DEFAULT 0.00 COMMENT '单位自筹(万元)',
  199. `other_funding_amount` decimal(15,2) DEFAULT 0.00 COMMENT '其他资金(万元)',
  200. -- 排序和状态
  201. `sort_order` int(11) DEFAULT 0 COMMENT '排序',
  202. `status` char(1) DEFAULT '1' COMMENT '状态(0-删除 1-正常)',
  203. -- 系统字段
  204. `create_by` bigint(20) COMMENT '创建者',
  205. `create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  206. `update_by` bigint(20) COMMENT '更新者',
  207. `update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  208. `create_dept` bigint(20) COMMENT '创建部门',
  209. `deleted` tinyint(1) DEFAULT 0 COMMENT '删除标志(0-正常 1-删除)',
  210. `tenant_id` varchar(20) DEFAULT '000000' COMMENT '租户ID',
  211. PRIMARY KEY (`id`),
  212. KEY `idx_application_id` (`application_id`),
  213. KEY `idx_application_no` (`application_no`),
  214. KEY `idx_category_code` (`category_code`),
  215. KEY `idx_sort_order` (`sort_order`)
  216. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='项目支出明细表';
  217. -- 1.5 绩效指标表
  218. DROP TABLE IF EXISTS `cw_performance_indicator`;
  219. CREATE TABLE `cw_performance_indicator` (
  220. `id` bigint(20) NOT NULL COMMENT '主键ID',
  221. `application_id` bigint(20) NOT NULL COMMENT '申报ID',
  222. `application_no` varchar(50) NOT NULL COMMENT '申报编号',
  223. -- 指标信息
  224. `indicator_type` varchar(20) NOT NULL COMMENT '指标类型(quantity-数量指标 quality-质量指标 timeliness-时效指标 cost-成本指标 economic-经济效益指标 social-社会效益指标 environmental-环境效益指标 satisfaction-满意度指标)',
  225. `indicator_type_name` varchar(50) NOT NULL COMMENT '指标类型名称',
  226. `goal_name` varchar(200) NOT NULL COMMENT '绩效目标名称',
  227. `target_value` varchar(100) NOT NULL COMMENT '目标值',
  228. `weight_percentage` decimal(5,2) NOT NULL COMMENT '分值占比(%)',
  229. `description` varchar(500) COMMENT '详细说明',
  230. -- 指标属性
  231. `unit` varchar(20) COMMENT '计量单位',
  232. `measurement_method` varchar(200) COMMENT '测量方法',
  233. `data_source` varchar(200) COMMENT '数据来源',
  234. `is_quantitative` tinyint(1) DEFAULT 1 COMMENT '是否定量指标(0-定性 1-定量)',
  235. -- 排序和状态
  236. `sort_order` int(11) DEFAULT 0 COMMENT '排序',
  237. `status` char(1) DEFAULT '1' COMMENT '状态(0-删除 1-正常)',
  238. -- 系统字段
  239. `create_by` bigint(20) COMMENT '创建者',
  240. `create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  241. `update_by` bigint(20) COMMENT '更新者',
  242. `update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  243. `create_dept` bigint(20) COMMENT '创建部门',
  244. `deleted` tinyint(1) DEFAULT 0 COMMENT '删除标志(0-正常 1-删除)',
  245. `tenant_id` varchar(20) DEFAULT '000000' COMMENT '租户ID',
  246. PRIMARY KEY (`id`),
  247. KEY `idx_application_id` (`application_id`),
  248. KEY `idx_application_no` (`application_no`),
  249. KEY `idx_indicator_type` (`indicator_type`),
  250. KEY `idx_sort_order` (`sort_order`)
  251. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='绩效指标表';
  252. -- 1.6 申报附件表
  253. DROP TABLE IF EXISTS `cw_application_attachment`;
  254. CREATE TABLE `cw_application_attachment` (
  255. `id` bigint(20) NOT NULL COMMENT '主键ID',
  256. `application_id` bigint(20) NOT NULL COMMENT '申报ID',
  257. `application_no` varchar(50) NOT NULL COMMENT '申报编号',
  258. -- 文件信息
  259. `file_name` varchar(255) NOT NULL COMMENT '文件名称',
  260. `file_original_name` varchar(255) NOT NULL COMMENT '原始文件名',
  261. `file_type` varchar(20) COMMENT '文件类型(pdf,doc,docx,xls,xlsx,jpg,png等)',
  262. `file_size` bigint(20) COMMENT '文件大小(字节)',
  263. `file_path` varchar(500) COMMENT '文件存储路径',
  264. `file_url` varchar(500) COMMENT '文件访问URL',
  265. -- 附件分类
  266. `attachment_type` varchar(50) COMMENT '附件类型(feasibility_report-可行性研究报告 implementation_plan-项目实施方案 budget_calculation-资金测算明细表 other_materials-其他相关证明材料)',
  267. `attachment_type_name` varchar(100) COMMENT '附件类型名称',
  268. `description` varchar(500) COMMENT '文件说明',
  269. -- 上传信息
  270. `upload_user_id` bigint(20) NOT NULL COMMENT '上传人ID',
  271. `upload_user_name` varchar(50) NOT NULL COMMENT '上传人姓名',
  272. `upload_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '上传时间',
  273. -- 排序和状态
  274. `sort_order` int(11) DEFAULT 0 COMMENT '排序',
  275. `status` char(1) DEFAULT '1' COMMENT '状态(0-删除 1-正常)',
  276. -- 系统字段
  277. `create_by` bigint(20) COMMENT '创建者',
  278. `create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  279. `update_by` bigint(20) COMMENT '更新者',
  280. `update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  281. `create_dept` bigint(20) COMMENT '创建部门',
  282. `deleted` tinyint(1) DEFAULT 0 COMMENT '删除标志(0-正常 1-删除)',
  283. `tenant_id` varchar(20) DEFAULT '000000' COMMENT '租户ID',
  284. PRIMARY KEY (`id`),
  285. KEY `idx_application_id` (`application_id`),
  286. KEY `idx_application_no` (`application_no`),
  287. KEY `idx_attachment_type` (`attachment_type`),
  288. KEY `idx_upload_time` (`upload_time`)
  289. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='申报附件表';
  290. -- ==========================================
  291. -- 2. 插入字典数据
  292. -- ==========================================
  293. -- 2.1 字典类型
  294. INSERT INTO `sys_dict_type` VALUES
  295. (3000001, '项目特性选项', 'cw_project_feature', '0', NULL, '财务预算-项目特性选项', now(), NULL, NULL, '项目特性相关选项'),
  296. (3000002, '绩效指标类型', 'cw_performance_type', '0', NULL, '财务预算-绩效指标类型', now(), NULL, NULL, '8大绩效指标类型'),
  297. (3000003, '审批状态', 'cw_approval_status', '0', NULL, '财务预算-审批状态', now(), NULL, NULL, '审批状态分类'),
  298. (3000004, '审批人配置类型', 'cw_approver_config_type', '0', NULL, '财务预算-审批人配置类型', now(), NULL, NULL, '审批人配置类型分类'),
  299. (3000005, '审批节点', 'cw_approval_node', '0', NULL, '财务预算-审批节点', now(), NULL, NULL, '固定3节点审批流程'),
  300. (3000006, '资金来源类型', 'cw_funding_source', '0', NULL, '财务预算-资金来源类型', now(), NULL, NULL, '资金来源分类'),
  301. (3000007, '支出科目', 'cw_expenditure_category', '0', NULL, '财务预算-支出科目', now(), NULL, NULL, '项目支出科目分类'),
  302. (3000008, '附件类型', 'cw_attachment_type', '0', NULL, '财务预算-附件类型', now(), NULL, NULL, '申报附件类型分类');
  303. -- 2.2 字典数据
  304. INSERT INTO `sys_dict_data` VALUES
  305. -- 项目特性选项
  306. (3000011, 0, '是', '1', 'cw_project_feature', '', '', 'N', '0', '0', '', '是', now(), NULL, NULL, NULL),
  307. (3000012, 1, '否', '0', 'cw_project_feature', '', '', 'N', '0', '0', '', '否', now(), NULL, NULL, NULL),
  308. -- 绩效指标类型(8大维度)
  309. (3000021, 0, '数量指标', 'quantity', 'cw_performance_type', '', '', 'N', '0', '0', '', '数量指标', now(), NULL, NULL, NULL),
  310. (3000022, 1, '质量指标', 'quality', 'cw_performance_type', '', '', 'N', '0', '0', '', '质量指标', now(), NULL, NULL, NULL),
  311. (3000023, 2, '时效指标', 'timeliness', 'cw_performance_type', '', '', 'N', '0', '0', '', '时效指标', now(), NULL, NULL, NULL),
  312. (3000024, 3, '成本指标', 'cost', 'cw_performance_type', '', '', 'N', '0', '0', '', '成本指标', now(), NULL, NULL, NULL),
  313. (3000025, 4, '经济效益指标', 'economic', 'cw_performance_type', '', '', 'N', '0', '0', '', '经济效益指标', now(), NULL, NULL, NULL),
  314. (3000026, 5, '社会效益指标', 'social', 'cw_performance_type', '', '', 'N', '0', '0', '', '社会效益指标', now(), NULL, NULL, NULL),
  315. (3000027, 6, '环境效益指标', 'environmental', 'cw_performance_type', '', '', 'N', '0', '0', '', '环境效益指标', now(), NULL, NULL, NULL),
  316. (3000028, 7, '满意度指标', 'satisfaction', 'cw_performance_type', '', '', 'N', '0', '0', '', '满意度指标', now(), NULL, NULL, NULL),
  317. -- 审批状态
  318. (3000031, 0, '草稿', 'draft', 'cw_approval_status', '', '', 'N', '0', '0', '', '草稿状态', now(), NULL, NULL, NULL),
  319. (3000032, 1, '已提交', 'submitted', 'cw_approval_status', '', '', 'N', '0', '0', '', '已提交审批', now(), NULL, NULL, NULL),
  320. (3000033, 2, '审批中', 'approving', 'cw_approval_status', '', 'blue', 'N', '0', '0', '', '审批中', now(), NULL, NULL, NULL),
  321. (3000034, 3, '已通过', 'approved', 'cw_approval_status', '', 'green', 'N', '0', '0', '', '审批通过', now(), NULL, NULL, NULL),
  322. (3000035, 4, '已拒绝', 'rejected', 'cw_approval_status', '', 'red', 'N', '0', '0', '', '审批拒绝', now(), NULL, NULL, NULL),
  323. (3000036, 5, '已退回', 'returned', 'cw_approval_status', '', 'orange', 'N', '0', '0', '', '退回修改', now(), NULL, NULL, NULL),
  324. (3000037, 6, '已取消', 'cancelled', 'cw_approval_status', '', 'gray', 'N', '0', '0', '', '取消申报', now(), NULL, NULL, NULL),
  325. -- 审批人配置类型
  326. (3000041, 0, '全局配置', 'global', 'cw_approver_config_type', '', '', 'N', '0', '0', '', '全局统一配置', now(), NULL, NULL, NULL),
  327. (3000042, 1, '部门配置', 'dept', 'cw_approver_config_type', '', '', 'N', '0', '0', '', '按部门配置', now(), NULL, NULL, NULL),
  328. (3000043, 2, '金额配置', 'amount', 'cw_approver_config_type', '', '', 'N', '0', '0', '', '按金额阈值配置', now(), NULL, NULL, NULL),
  329. -- 审批节点(固定3节点)
  330. (3000051, 1, '部门审批', 'dept_approve', 'cw_approval_node', '', '', 'N', '0', '0', '', '部门负责人审批', now(), NULL, NULL, NULL),
  331. (3000052, 2, '财务审批', 'finance_approve', 'cw_approval_node', '', '', 'N', '0', '0', '', '财务部门审批', now(), NULL, NULL, NULL),
  332. (3000053, 3, '领导审批', 'leader_approve', 'cw_approval_node', '', '', 'N', '0', '0', '', '校领导审批', now(), NULL, NULL, NULL),
  333. -- 资金来源类型
  334. (3000061, 0, '市财政资金', 'municipal_fiscal', 'cw_funding_source', '', '', 'N', '0', '0', '', '市财政资金', now(), NULL, NULL, NULL),
  335. (3000062, 1, '单位自筹', 'self_funding', 'cw_funding_source', '', '', 'N', '0', '0', '', '单位自筹资金', now(), NULL, NULL, NULL),
  336. (3000063, 2, '其他资金', 'other_funding', 'cw_funding_source', '', '', 'N', '0', '0', '', '其他来源资金', now(), NULL, NULL, NULL),
  337. -- 支出科目
  338. (3000071, 0, '人员经费', 'personnel_expense', 'cw_expenditure_category', '', '', 'N', '0', '0', '', '人员相关费用', now(), NULL, NULL, NULL),
  339. (3000072, 1, '设备费', 'equipment_expense', 'cw_expenditure_category', '', '', 'N', '0', '0', '', '设备采购费用', now(), NULL, NULL, NULL),
  340. (3000073, 2, '材料费', 'material_expense', 'cw_expenditure_category', '', '', 'N', '0', '0', '', '材料采购费用', now(), NULL, NULL, NULL),
  341. (3000074, 3, '差旅费', 'travel_expense', 'cw_expenditure_category', '', '', 'N', '0', '0', '', '差旅相关费用', now(), NULL, NULL, NULL),
  342. (3000075, 4, '培训费', 'training_expense', 'cw_expenditure_category', '', '', 'N', '0', '0', '', '培训相关费用', now(), NULL, NULL, NULL),
  343. (3000076, 5, '咨询费', 'consulting_expense', 'cw_expenditure_category', '', '', 'N', '0', '0', '', '咨询服务费用', now(), NULL, NULL, NULL),
  344. (3000077, 6, '运行维护费', 'maintenance_expense', 'cw_expenditure_category', '', '', 'N', '0', '0', '', '运行维护费用', now(), NULL, NULL, NULL),
  345. (3000078, 7, '其他费用', 'other_expense', 'cw_expenditure_category', '', '', 'N', '0', '0', '', '其他类型费用', now(), NULL, NULL, NULL),
  346. -- 附件类型
  347. (3000081, 0, '可行性研究报告', 'feasibility_report', 'cw_attachment_type', '', '', 'N', '0', '0', '', '项目可行性研究报告', now(), NULL, NULL, NULL),
  348. (3000082, 1, '项目实施方案', 'implementation_plan', 'cw_attachment_type', '', '', 'N', '0', '0', '', '项目实施方案文档', now(), NULL, NULL, NULL),
  349. (3000083, 2, '资金测算明细表', 'budget_calculation', 'cw_attachment_type', '', '', 'N', '0', '0', '', '资金测算明细表', now(), NULL, NULL, NULL),
  350. (3000084, 3, '其他相关证明材料', 'other_materials', 'cw_attachment_type', '', '', 'N', '0', '0', '', '其他相关证明材料', now(), NULL, NULL, NULL);
  351. -- ==========================================
  352. -- 3. 创建复合索引优化
  353. -- ==========================================
  354. -- 针对常用查询的复合索引
  355. ALTER TABLE `cw_project_application`
  356. ADD INDEX `idx_dept_status_year` (`department_id`, `approval_status`, `year`);
  357. ALTER TABLE `cw_approval_record`
  358. ADD INDEX `idx_approver_status_order` (`approver_id`, `node_status`, `node_order`);
  359. ALTER TABLE `cw_approval_record`
  360. ADD INDEX `idx_app_node_status` (`application_id`, `node_code`, `node_status`);
  361. -- ==========================================
  362. -- 4. 插入初始化数据
  363. -- ==========================================
  364. -- 插入默认全局审批人配置
  365. INSERT INTO `cw_approver_config` (
  366. `id`, `config_name`, `config_type`, `dept_approver_id`, `dept_approver_name`,
  367. `finance_approver_id`, `finance_approver_name`, `leader_approver_id`, `leader_approver_name`,
  368. `priority`, `status`, `create_by`, `create_time`, `tenant_id`
  369. ) VALUES (
  370. 1, '默认全局审批配置', 'global', 1, '系统管理员',
  371. 1, '系统管理员', 1, '系统管理员',
  372. 100, '1', 1, now(), '000000'
  373. );
  374. -- 恢复外键检查
  375. SET FOREIGN_KEY_CHECKS = 1;
  376. -- ==========================================
  377. -- 脚本执行完成
  378. -- ==========================================
  379. SELECT '财务项目预算审批系统数据库创建完成!' AS result;