Files
hzdyjs/script/sql/cw-budget-approval-create-tables.sql
T
2025-07-30 23:24:43 +08:00

447 lines
25 KiB
SQL
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
-- ==========================================
-- 财务项目预算审批系统 - 数据库创建脚本
-- 版本: 1.0
-- 创建时间: 2025-01-26
-- 表名前缀: cw_ (财务模块)
-- ==========================================
-- 设置字符集
SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;
-- ==========================================
-- 1. 创建核心数据表
-- ==========================================
-- 1.1 项目预算申报表
DROP TABLE IF EXISTS `cw_project_application`;
CREATE TABLE `cw_project_application` (
`id` bigint(20) NOT NULL COMMENT '主键ID(雪花ID)',
`application_no` varchar(50) NOT NULL COMMENT '申报编号(自动生成,格式:CW-YYYY-MMDD-XXXX)',
-- 项目基本信息
`project_name` varchar(200) NOT NULL COMMENT '项目名称',
`principal` varchar(50) NOT NULL COMMENT '项目负责人',
`contact_phone` varchar(20) COMMENT '联系电话',
`start_date` date COMMENT '项目实施开始时间',
`end_date` date COMMENT '项目实施结束时间',
-- 项目特性
`target_sme` tinyint(1) DEFAULT 0 COMMENT '是否面向中小企业(0-否 1-是)',
`target_micro_sme` tinyint(1) DEFAULT 0 COMMENT '是否面向小微企业(0-否 1-是)',
`import_equipment` tinyint(1) DEFAULT 0 COMMENT '是否采购进口设备(0-否 1-是)',
-- 项目详细内容
`application_reason` text COMMENT '项目申请原因(包括设立依据、可行性及必要性)',
`construction_content` text COMMENT '项目建设内容',
`total_performance_goal` text COMMENT '绩效总目标',
`current_year_goal` text COMMENT '当年绩效目标',
-- 资金来源汇总(万元)
-- 项目总投资
`total_investment` decimal(15,2) DEFAULT 0.00 COMMENT '项目总投资-合计(万元)',
`total_municipal_fiscal` decimal(15,2) DEFAULT 0.00 COMMENT '项目总投资-市财政资金(万元)',
`total_self_funding` decimal(15,2) DEFAULT 0.00 COMMENT '项目总投资-单位自筹(万元)',
`total_other_funding` decimal(15,2) DEFAULT 0.00 COMMENT '项目总投资-其他(万元)',
-- 年度预计执行数
`current_year_total` decimal(15,2) DEFAULT 0.00 COMMENT '年度预计执行数-合计(万元)',
`current_year_municipal` decimal(15,2) DEFAULT 0.00 COMMENT '年度预计执行数-市财政资金(万元)',
`current_year_self` decimal(15,2) DEFAULT 0.00 COMMENT '年度预计执行数-单位自筹(万元)',
`current_year_other` decimal(15,2) DEFAULT 0.00 COMMENT '年度预计执行数-其他(万元)',
-- 下年度申请资金
`next_year_total` decimal(15,2) DEFAULT 0.00 COMMENT '下年度申请资金-合计(万元)',
`next_year_municipal` decimal(15,2) DEFAULT 0.00 COMMENT '下年度申请资金-市财政资金(万元)',
`next_year_self` decimal(15,2) DEFAULT 0.00 COMMENT '下年度申请资金-单位自筹(万元)',
`next_year_other` decimal(15,2) DEFAULT 0.00 COMMENT '下年度申请资金-其他(万元)',
-- 以后年度安排
`future_year_total` decimal(15,2) DEFAULT 0.00 COMMENT '以后年度安排-合计(万元)',
`future_year_municipal` decimal(15,2) DEFAULT 0.00 COMMENT '以后年度安排-市财政资金(万元)',
`future_year_self` decimal(15,2) DEFAULT 0.00 COMMENT '以后年度安排-单位自筹(万元)',
`future_year_other` decimal(15,2) DEFAULT 0.00 COMMENT '以后年度安排-其他(万元)',
-- 申请人信息
`applicant_id` bigint(20) NOT NULL COMMENT '申请人ID',
`applicant_name` varchar(50) NOT NULL COMMENT '申请人姓名',
`department_id` bigint(20) NOT NULL COMMENT '所属部门ID',
`department_name` varchar(100) NOT NULL COMMENT '所属部门名称',
-- 审批相关
`approval_status` varchar(20) DEFAULT 'draft' COMMENT '审批状态(draft-草稿 submitted-已提交 approving-审批中 approved-已通过 rejected-已拒绝 returned-已退回 cancelled-已取消)',
`submit_time` datetime COMMENT '提交时间',
`approve_time` datetime COMMENT '审批完成时间',
`year` int(11) NOT NULL COMMENT '预算年度',
-- 系统字段
`remark` varchar(500) COMMENT '备注',
`create_by` bigint(20) COMMENT '创建者',
`create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_by` bigint(20) COMMENT '更新者',
`update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`create_dept` bigint(20) COMMENT '创建部门',
`deleted` tinyint(1) DEFAULT 0 COMMENT '删除标志(0-正常 1-删除)',
`tenant_id` varchar(20) DEFAULT '000000' COMMENT '租户ID',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_application_no` (`application_no`, `tenant_id`, `deleted`),
KEY `idx_applicant_id` (`applicant_id`),
KEY `idx_department_id` (`department_id`),
KEY `idx_status_year` (`approval_status`, `year`),
KEY `idx_create_time` (`create_time`),
KEY `idx_submit_time` (`submit_time`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='项目预算申报表';
-- 1.2 审批人配置表
DROP TABLE IF EXISTS `cw_approver_config`;
CREATE TABLE `cw_approver_config` (
`id` bigint(20) NOT NULL COMMENT '主键ID',
`config_name` varchar(100) NOT NULL COMMENT '配置名称',
`config_type` varchar(20) NOT NULL COMMENT '配置类型(global-全局配置 dept-按部门配置 amount-按金额配置)',
-- 配置条件
`dept_id` bigint(20) COMMENT '部门ID(按部门配置时使用)',
`dept_name` varchar(100) COMMENT '部门名称(按部门配置时使用)',
`min_amount` decimal(15,2) COMMENT '最小金额(按金额配置时使用,万元)',
`max_amount` decimal(15,2) COMMENT '最大金额(按金额配置时使用,万元)',
-- 3个固定审批节点的审批人
-- 部门审批(第1节点)
`dept_approver_id` bigint(20) COMMENT '部门审批人ID',
`dept_approver_name` varchar(50) COMMENT '部门审批人姓名',
`dept_delegate_id` bigint(20) COMMENT '部门代理审批人ID',
`dept_delegate_name` varchar(50) COMMENT '部门代理审批人姓名',
`dept_delegate_start_time` datetime COMMENT '部门代理开始时间',
`dept_delegate_end_time` datetime COMMENT '部门代理结束时间',
-- 财务审批(第2节点)
`finance_approver_id` bigint(20) COMMENT '财务审批人ID',
`finance_approver_name` varchar(50) COMMENT '财务审批人姓名',
`finance_delegate_id` bigint(20) COMMENT '财务代理审批人ID',
`finance_delegate_name` varchar(50) COMMENT '财务代理审批人姓名',
`finance_delegate_start_time` datetime COMMENT '财务代理开始时间',
`finance_delegate_end_time` datetime COMMENT '财务代理结束时间',
-- 领导审批(第3节点)
`leader_approver_id` bigint(20) COMMENT '领导审批人ID',
`leader_approver_name` varchar(50) COMMENT '领导审批人姓名',
`leader_delegate_id` bigint(20) COMMENT '领导代理审批人ID',
`leader_delegate_name` varchar(50) COMMENT '领导代理审批人姓名',
`leader_delegate_start_time` datetime COMMENT '领导代理开始时间',
`leader_delegate_end_time` datetime COMMENT '领导代理结束时间',
-- 配置状态
`priority` int(11) DEFAULT 0 COMMENT '优先级(数字越大优先级越高,用于多个配置冲突时的选择)',
`status` char(1) DEFAULT '1' COMMENT '状态(0-禁用 1-启用)',
`effective_start_time` datetime COMMENT '生效开始时间',
`effective_end_time` datetime COMMENT '生效结束时间',
-- 系统字段
`remark` varchar(500) COMMENT '备注',
`create_by` bigint(20) COMMENT '创建者',
`create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_by` bigint(20) COMMENT '更新者',
`update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`create_dept` bigint(20) COMMENT '创建部门',
`deleted` tinyint(1) DEFAULT 0 COMMENT '删除标志(0-正常 1-删除)',
`tenant_id` varchar(20) DEFAULT '000000' COMMENT '租户ID',
PRIMARY KEY (`id`),
KEY `idx_config_type` (`config_type`),
KEY `idx_dept_id` (`dept_id`),
KEY `idx_amount_range` (`min_amount`, `max_amount`),
KEY `idx_status_priority` (`status`, `priority`),
KEY `idx_effective_time` (`effective_start_time`, `effective_end_time`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='审批人配置表';
-- 1.3 审批记录表
DROP TABLE IF EXISTS `cw_approval_record`;
CREATE TABLE `cw_approval_record` (
`id` bigint(20) NOT NULL COMMENT '主键ID',
`application_id` bigint(20) NOT NULL COMMENT '申报ID',
`application_no` varchar(50) NOT NULL COMMENT '申报编号',
-- 节点信息
`node_code` varchar(20) NOT NULL COMMENT '节点编码(dept_approve-部门审批 finance_approve-财务审批 leader_approve-领导审批)',
`node_name` varchar(50) NOT NULL COMMENT '节点名称',
`node_order` int(11) NOT NULL COMMENT '节点顺序(1-部门审批 2-财务审批 3-领导审批)',
-- 审批人信息
`approver_id` bigint(20) NOT NULL COMMENT '审批人ID',
`approver_name` varchar(50) NOT NULL COMMENT '审批人姓名',
`is_delegate` tinyint(1) DEFAULT 0 COMMENT '是否代理审批(0-否 1-是)',
`original_approver_id` bigint(20) COMMENT '原审批人ID(代理时使用)',
`original_approver_name` varchar(50) COMMENT '原审批人姓名(代理时使用)',
-- 审批状态和结果
`node_status` varchar(20) NOT NULL COMMENT '节点状态(waiting-等待审批 approving-审批中 approved-已通过 rejected-已拒绝 returned-已退回)',
`approve_action` varchar(20) COMMENT '审批动作(approve-通过 reject-拒绝 return-退回)',
`approve_opinion` text COMMENT '审批意见',
-- 时间记录
`start_time` datetime NOT NULL COMMENT '节点开始时间',
`end_time` datetime COMMENT '节点结束时间',
`expect_finish_time` datetime COMMENT '期望完成时间',
`is_overtime` tinyint(1) DEFAULT 0 COMMENT '是否超时(0-否 1-是)',
-- 审批配置记录
`config_id` bigint(20) COMMENT '使用的审批配置ID',
`config_snapshot` json COMMENT '审批配置快照(JSON格式,记录当时的配置)',
-- 系统字段
`create_by` bigint(20) COMMENT '创建者',
`create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_by` bigint(20) COMMENT '更新者',
`update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`create_dept` bigint(20) COMMENT '创建部门',
`deleted` tinyint(1) DEFAULT 0 COMMENT '删除标志(0-正常 1-删除)',
`tenant_id` varchar(20) DEFAULT '000000' COMMENT '租户ID',
PRIMARY KEY (`id`),
KEY `idx_application_id` (`application_id`),
KEY `idx_application_no` (`application_no`),
KEY `idx_approver_id` (`approver_id`),
KEY `idx_node_status` (`node_status`),
KEY `idx_node_order` (`node_order`),
KEY `idx_start_time` (`start_time`),
KEY `idx_expect_finish_time` (`expect_finish_time`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='审批记录表';
-- 1.4 项目支出明细表
DROP TABLE IF EXISTS `cw_expenditure_detail`;
CREATE TABLE `cw_expenditure_detail` (
`id` bigint(20) NOT NULL COMMENT '主键ID',
`application_id` bigint(20) NOT NULL COMMENT '申报ID',
`application_no` varchar(50) NOT NULL COMMENT '申报编号',
-- 支出明细信息
`category_code` varchar(50) COMMENT '支出科目编码(关联字典)',
`category` varchar(100) NOT NULL COMMENT '支出科目名称',
`amount` decimal(15,2) NOT NULL COMMENT '金额(万元)',
`calculation` text COMMENT '测算依据',
`description` varchar(500) COMMENT '详细说明',
-- 时间分配
`current_year_amount` decimal(15,2) DEFAULT 0.00 COMMENT '当年执行金额(万元)',
`next_year_amount` decimal(15,2) DEFAULT 0.00 COMMENT '下年度金额(万元)',
`future_year_amount` decimal(15,2) DEFAULT 0.00 COMMENT '以后年度金额(万元)',
-- 资金来源分配
`municipal_fiscal_amount` decimal(15,2) DEFAULT 0.00 COMMENT '市财政资金(万元)',
`self_funding_amount` decimal(15,2) DEFAULT 0.00 COMMENT '单位自筹(万元)',
`other_funding_amount` decimal(15,2) DEFAULT 0.00 COMMENT '其他资金(万元)',
-- 排序和状态
`sort_order` int(11) DEFAULT 0 COMMENT '排序',
`status` char(1) DEFAULT '1' COMMENT '状态(0-删除 1-正常)',
-- 系统字段
`create_by` bigint(20) COMMENT '创建者',
`create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_by` bigint(20) COMMENT '更新者',
`update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`create_dept` bigint(20) COMMENT '创建部门',
`deleted` tinyint(1) DEFAULT 0 COMMENT '删除标志(0-正常 1-删除)',
`tenant_id` varchar(20) DEFAULT '000000' COMMENT '租户ID',
PRIMARY KEY (`id`),
KEY `idx_application_id` (`application_id`),
KEY `idx_application_no` (`application_no`),
KEY `idx_category_code` (`category_code`),
KEY `idx_sort_order` (`sort_order`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='项目支出明细表';
-- 1.5 绩效指标表
DROP TABLE IF EXISTS `cw_performance_indicator`;
CREATE TABLE `cw_performance_indicator` (
`id` bigint(20) NOT NULL COMMENT '主键ID',
`application_id` bigint(20) NOT NULL COMMENT '申报ID',
`application_no` varchar(50) NOT NULL COMMENT '申报编号',
-- 指标信息
`indicator_type` varchar(20) NOT NULL COMMENT '指标类型(quantity-数量指标 quality-质量指标 timeliness-时效指标 cost-成本指标 economic-经济效益指标 social-社会效益指标 environmental-环境效益指标 satisfaction-满意度指标)',
`indicator_type_name` varchar(50) NOT NULL COMMENT '指标类型名称',
`goal_name` varchar(200) NOT NULL COMMENT '绩效目标名称',
`target_value` varchar(100) NOT NULL COMMENT '目标值',
`weight_percentage` decimal(5,2) NOT NULL COMMENT '分值占比(%)',
`description` varchar(500) COMMENT '详细说明',
-- 指标属性
`unit` varchar(20) COMMENT '计量单位',
`measurement_method` varchar(200) COMMENT '测量方法',
`data_source` varchar(200) COMMENT '数据来源',
`is_quantitative` tinyint(1) DEFAULT 1 COMMENT '是否定量指标(0-定性 1-定量)',
-- 排序和状态
`sort_order` int(11) DEFAULT 0 COMMENT '排序',
`status` char(1) DEFAULT '1' COMMENT '状态(0-删除 1-正常)',
-- 系统字段
`create_by` bigint(20) COMMENT '创建者',
`create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_by` bigint(20) COMMENT '更新者',
`update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`create_dept` bigint(20) COMMENT '创建部门',
`deleted` tinyint(1) DEFAULT 0 COMMENT '删除标志(0-正常 1-删除)',
`tenant_id` varchar(20) DEFAULT '000000' COMMENT '租户ID',
PRIMARY KEY (`id`),
KEY `idx_application_id` (`application_id`),
KEY `idx_application_no` (`application_no`),
KEY `idx_indicator_type` (`indicator_type`),
KEY `idx_sort_order` (`sort_order`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='绩效指标表';
-- 1.6 申报附件表
DROP TABLE IF EXISTS `cw_application_attachment`;
CREATE TABLE `cw_application_attachment` (
`id` bigint(20) NOT NULL COMMENT '主键ID',
`application_id` bigint(20) NOT NULL COMMENT '申报ID',
`application_no` varchar(50) NOT NULL COMMENT '申报编号',
-- 文件信息
`file_name` varchar(255) NOT NULL COMMENT '文件名称',
`file_original_name` varchar(255) NOT NULL COMMENT '原始文件名',
`file_type` varchar(20) COMMENT '文件类型(pdf,doc,docx,xls,xlsx,jpg,png等)',
`file_size` bigint(20) COMMENT '文件大小(字节)',
`file_path` varchar(500) COMMENT '文件存储路径',
`file_url` varchar(500) COMMENT '文件访问URL',
-- 附件分类
`attachment_type` varchar(50) COMMENT '附件类型(feasibility_report-可行性研究报告 implementation_plan-项目实施方案 budget_calculation-资金测算明细表 other_materials-其他相关证明材料)',
`attachment_type_name` varchar(100) COMMENT '附件类型名称',
`description` varchar(500) COMMENT '文件说明',
-- 上传信息
`upload_user_id` bigint(20) NOT NULL COMMENT '上传人ID',
`upload_user_name` varchar(50) NOT NULL COMMENT '上传人姓名',
`upload_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '上传时间',
-- 排序和状态
`sort_order` int(11) DEFAULT 0 COMMENT '排序',
`status` char(1) DEFAULT '1' COMMENT '状态(0-删除 1-正常)',
-- 系统字段
`create_by` bigint(20) COMMENT '创建者',
`create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_by` bigint(20) COMMENT '更新者',
`update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`create_dept` bigint(20) COMMENT '创建部门',
`deleted` tinyint(1) DEFAULT 0 COMMENT '删除标志(0-正常 1-删除)',
`tenant_id` varchar(20) DEFAULT '000000' COMMENT '租户ID',
PRIMARY KEY (`id`),
KEY `idx_application_id` (`application_id`),
KEY `idx_application_no` (`application_no`),
KEY `idx_attachment_type` (`attachment_type`),
KEY `idx_upload_time` (`upload_time`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='申报附件表';
-- ==========================================
-- 2. 插入字典数据
-- ==========================================
-- 2.1 字典类型
INSERT INTO `sys_dict_type` VALUES
(3000001, '项目特性选项', 'cw_project_feature', '0', NULL, '财务预算-项目特性选项', now(), NULL, NULL, '项目特性相关选项'),
(3000002, '绩效指标类型', 'cw_performance_type', '0', NULL, '财务预算-绩效指标类型', now(), NULL, NULL, '8大绩效指标类型'),
(3000003, '审批状态', 'cw_approval_status', '0', NULL, '财务预算-审批状态', now(), NULL, NULL, '审批状态分类'),
(3000004, '审批人配置类型', 'cw_approver_config_type', '0', NULL, '财务预算-审批人配置类型', now(), NULL, NULL, '审批人配置类型分类'),
(3000005, '审批节点', 'cw_approval_node', '0', NULL, '财务预算-审批节点', now(), NULL, NULL, '固定3节点审批流程'),
(3000006, '资金来源类型', 'cw_funding_source', '0', NULL, '财务预算-资金来源类型', now(), NULL, NULL, '资金来源分类'),
(3000007, '支出科目', 'cw_expenditure_category', '0', NULL, '财务预算-支出科目', now(), NULL, NULL, '项目支出科目分类'),
(3000008, '附件类型', 'cw_attachment_type', '0', NULL, '财务预算-附件类型', now(), NULL, NULL, '申报附件类型分类');
-- 2.2 字典数据
INSERT INTO `sys_dict_data` VALUES
-- 项目特性选项
(3000011, 0, '是', '1', 'cw_project_feature', '', '', 'N', '0', '0', '', '是', now(), NULL, NULL, NULL),
(3000012, 1, '否', '0', 'cw_project_feature', '', '', 'N', '0', '0', '', '否', now(), NULL, NULL, NULL),
-- 绩效指标类型(8大维度)
(3000021, 0, '数量指标', 'quantity', 'cw_performance_type', '', '', 'N', '0', '0', '', '数量指标', now(), NULL, NULL, NULL),
(3000022, 1, '质量指标', 'quality', 'cw_performance_type', '', '', 'N', '0', '0', '', '质量指标', now(), NULL, NULL, NULL),
(3000023, 2, '时效指标', 'timeliness', 'cw_performance_type', '', '', 'N', '0', '0', '', '时效指标', now(), NULL, NULL, NULL),
(3000024, 3, '成本指标', 'cost', 'cw_performance_type', '', '', 'N', '0', '0', '', '成本指标', now(), NULL, NULL, NULL),
(3000025, 4, '经济效益指标', 'economic', 'cw_performance_type', '', '', 'N', '0', '0', '', '经济效益指标', now(), NULL, NULL, NULL),
(3000026, 5, '社会效益指标', 'social', 'cw_performance_type', '', '', 'N', '0', '0', '', '社会效益指标', now(), NULL, NULL, NULL),
(3000027, 6, '环境效益指标', 'environmental', 'cw_performance_type', '', '', 'N', '0', '0', '', '环境效益指标', now(), NULL, NULL, NULL),
(3000028, 7, '满意度指标', 'satisfaction', 'cw_performance_type', '', '', 'N', '0', '0', '', '满意度指标', now(), NULL, NULL, NULL),
-- 审批状态
(3000031, 0, '草稿', 'draft', 'cw_approval_status', '', '', 'N', '0', '0', '', '草稿状态', now(), NULL, NULL, NULL),
(3000032, 1, '已提交', 'submitted', 'cw_approval_status', '', '', 'N', '0', '0', '', '已提交审批', now(), NULL, NULL, NULL),
(3000033, 2, '审批中', 'approving', 'cw_approval_status', '', 'blue', 'N', '0', '0', '', '审批中', now(), NULL, NULL, NULL),
(3000034, 3, '已通过', 'approved', 'cw_approval_status', '', 'green', 'N', '0', '0', '', '审批通过', now(), NULL, NULL, NULL),
(3000035, 4, '已拒绝', 'rejected', 'cw_approval_status', '', 'red', 'N', '0', '0', '', '审批拒绝', now(), NULL, NULL, NULL),
(3000036, 5, '已退回', 'returned', 'cw_approval_status', '', 'orange', 'N', '0', '0', '', '退回修改', now(), NULL, NULL, NULL),
(3000037, 6, '已取消', 'cancelled', 'cw_approval_status', '', 'gray', 'N', '0', '0', '', '取消申报', now(), NULL, NULL, NULL),
-- 审批人配置类型
(3000041, 0, '全局配置', 'global', 'cw_approver_config_type', '', '', 'N', '0', '0', '', '全局统一配置', now(), NULL, NULL, NULL),
(3000042, 1, '部门配置', 'dept', 'cw_approver_config_type', '', '', 'N', '0', '0', '', '按部门配置', now(), NULL, NULL, NULL),
(3000043, 2, '金额配置', 'amount', 'cw_approver_config_type', '', '', 'N', '0', '0', '', '按金额阈值配置', now(), NULL, NULL, NULL),
-- 审批节点(固定3节点)
(3000051, 1, '部门审批', 'dept_approve', 'cw_approval_node', '', '', 'N', '0', '0', '', '部门负责人审批', now(), NULL, NULL, NULL),
(3000052, 2, '财务审批', 'finance_approve', 'cw_approval_node', '', '', 'N', '0', '0', '', '财务部门审批', now(), NULL, NULL, NULL),
(3000053, 3, '领导审批', 'leader_approve', 'cw_approval_node', '', '', 'N', '0', '0', '', '校领导审批', now(), NULL, NULL, NULL),
-- 资金来源类型
(3000061, 0, '市财政资金', 'municipal_fiscal', 'cw_funding_source', '', '', 'N', '0', '0', '', '市财政资金', now(), NULL, NULL, NULL),
(3000062, 1, '单位自筹', 'self_funding', 'cw_funding_source', '', '', 'N', '0', '0', '', '单位自筹资金', now(), NULL, NULL, NULL),
(3000063, 2, '其他资金', 'other_funding', 'cw_funding_source', '', '', 'N', '0', '0', '', '其他来源资金', now(), NULL, NULL, NULL),
-- 支出科目
(3000071, 0, '人员经费', 'personnel_expense', 'cw_expenditure_category', '', '', 'N', '0', '0', '', '人员相关费用', now(), NULL, NULL, NULL),
(3000072, 1, '设备费', 'equipment_expense', 'cw_expenditure_category', '', '', 'N', '0', '0', '', '设备采购费用', now(), NULL, NULL, NULL),
(3000073, 2, '材料费', 'material_expense', 'cw_expenditure_category', '', '', 'N', '0', '0', '', '材料采购费用', now(), NULL, NULL, NULL),
(3000074, 3, '差旅费', 'travel_expense', 'cw_expenditure_category', '', '', 'N', '0', '0', '', '差旅相关费用', now(), NULL, NULL, NULL),
(3000075, 4, '培训费', 'training_expense', 'cw_expenditure_category', '', '', 'N', '0', '0', '', '培训相关费用', now(), NULL, NULL, NULL),
(3000076, 5, '咨询费', 'consulting_expense', 'cw_expenditure_category', '', '', 'N', '0', '0', '', '咨询服务费用', now(), NULL, NULL, NULL),
(3000077, 6, '运行维护费', 'maintenance_expense', 'cw_expenditure_category', '', '', 'N', '0', '0', '', '运行维护费用', now(), NULL, NULL, NULL),
(3000078, 7, '其他费用', 'other_expense', 'cw_expenditure_category', '', '', 'N', '0', '0', '', '其他类型费用', now(), NULL, NULL, NULL),
-- 附件类型
(3000081, 0, '可行性研究报告', 'feasibility_report', 'cw_attachment_type', '', '', 'N', '0', '0', '', '项目可行性研究报告', now(), NULL, NULL, NULL),
(3000082, 1, '项目实施方案', 'implementation_plan', 'cw_attachment_type', '', '', 'N', '0', '0', '', '项目实施方案文档', now(), NULL, NULL, NULL),
(3000083, 2, '资金测算明细表', 'budget_calculation', 'cw_attachment_type', '', '', 'N', '0', '0', '', '资金测算明细表', now(), NULL, NULL, NULL),
(3000084, 3, '其他相关证明材料', 'other_materials', 'cw_attachment_type', '', '', 'N', '0', '0', '', '其他相关证明材料', now(), NULL, NULL, NULL);
-- ==========================================
-- 3. 创建复合索引优化
-- ==========================================
-- 针对常用查询的复合索引
ALTER TABLE `cw_project_application`
ADD INDEX `idx_dept_status_year` (`department_id`, `approval_status`, `year`);
ALTER TABLE `cw_approval_record`
ADD INDEX `idx_approver_status_order` (`approver_id`, `node_status`, `node_order`);
ALTER TABLE `cw_approval_record`
ADD INDEX `idx_app_node_status` (`application_id`, `node_code`, `node_status`);
-- ==========================================
-- 4. 插入初始化数据
-- ==========================================
-- 插入默认全局审批人配置
INSERT INTO `cw_approver_config` (
`id`, `config_name`, `config_type`, `dept_approver_id`, `dept_approver_name`,
`finance_approver_id`, `finance_approver_name`, `leader_approver_id`, `leader_approver_name`,
`priority`, `status`, `create_by`, `create_time`, `tenant_id`
) VALUES (
1, '默认全局审批配置', 'global', 1, '系统管理员',
1, '系统管理员', 1, '系统管理员',
100, '1', 1, now(), '000000'
);
-- 恢复外键检查
SET FOREIGN_KEY_CHECKS = 1;
-- ==========================================
-- 脚本执行完成
-- ==========================================
SELECT '财务项目预算审批系统数据库创建完成!' AS result;