创建报销流程配置表.sql 3.42 KB
-- 报销流程配置表 - 数据库表结构
-- 执行时间:2025年
-- 说明:支持预先配置多个报销审批流程模板,用户创建报销申请时可以选择已配置的流程

-- 1. 流程配置主表(存储流程模板基本信息)
CREATE TABLE IF NOT EXISTS `lq_reimbursement_workflow_config` (
  `F_Id` varchar(50) NOT NULL COMMENT '流程配置ID',
  `F_WorkflowName` varchar(100) NOT NULL COMMENT '流程名称',
  `F_IsEnabled` int NOT NULL DEFAULT 1 COMMENT '是否启用(1-启用,0-禁用)',
  `F_Description` varchar(500) DEFAULT NULL COMMENT '流程描述',
  `F_CreateTime` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `F_CreateUser` varchar(50) DEFAULT NULL COMMENT '创建人ID',
  `F_ModifyTime` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间',
  `F_ModifyUser` varchar(50) DEFAULT NULL COMMENT '修改人ID',
  PRIMARY KEY (`F_Id`),
  KEY `idx_is_enabled` (`F_IsEnabled`),
  KEY `idx_workflow_name` (`F_WorkflowName`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='报销流程配置表';

-- 2. 流程节点配置表(存储每个流程的节点配置)
CREATE TABLE IF NOT EXISTS `lq_reimbursement_workflow_node` (
  `F_Id` varchar(50) NOT NULL COMMENT '节点配置ID',
  `F_WorkflowConfigId` varchar(50) NOT NULL COMMENT '流程配置ID(外键,关联流程配置)',
  `F_NodeOrder` int NOT NULL COMMENT '节点顺序(1,2,3,4,5...)',
  `F_NodeName` varchar(100) DEFAULT NULL COMMENT '节点名称',
  `F_ApprovalType` varchar(20) DEFAULT '会签' COMMENT '审批类型(会签/或签)',
  `F_IsRequired` int DEFAULT 1 COMMENT '是否必审(1-必审,0-可选)',
  `F_CreateTime` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  PRIMARY KEY (`F_Id`),
  KEY `idx_workflow_config_id` (`F_WorkflowConfigId`),
  KEY `idx_node_order` (`F_WorkflowConfigId`, `F_NodeOrder`),
  CONSTRAINT `fk_workflow_node_config` FOREIGN KEY (`F_WorkflowConfigId`) 
    REFERENCES `lq_reimbursement_workflow_config` (`F_Id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='流程节点配置表';

-- 3. 流程节点审批人配置表(存储每个节点的审批人配置,可选)
CREATE TABLE IF NOT EXISTS `lq_reimbursement_workflow_node_user` (
  `F_Id` varchar(50) NOT NULL COMMENT '记录ID',
  `F_WorkflowConfigId` varchar(50) NOT NULL COMMENT '流程配置ID(外键)',
  `F_NodeId` varchar(50) NOT NULL COMMENT '节点配置ID(外键,关联流程节点配置)',
  `F_NodeOrder` int NOT NULL COMMENT '节点顺序(冗余字段,方便查询)',
  `F_UserId` varchar(50) NOT NULL COMMENT '审批人ID',
  `F_UserName` varchar(100) DEFAULT NULL COMMENT '审批人姓名',
  `F_SortOrder` int DEFAULT 0 COMMENT '排序',
  `F_CreateTime` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  PRIMARY KEY (`F_Id`),
  KEY `idx_workflow_config_id` (`F_WorkflowConfigId`),
  KEY `idx_node_id` (`F_NodeId`),
  KEY `idx_user_id` (`F_UserId`),
  KEY `idx_node_order` (`F_WorkflowConfigId`, `F_NodeOrder`),
  UNIQUE KEY `uk_workflow_node_user` (`F_WorkflowConfigId`, `F_NodeId`, `F_UserId`),
  CONSTRAINT `fk_workflow_node_user_config` FOREIGN KEY (`F_WorkflowConfigId`) 
    REFERENCES `lq_reimbursement_workflow_config` (`F_Id`) ON DELETE CASCADE,
  CONSTRAINT `fk_workflow_node_user_node` FOREIGN KEY (`F_NodeId`) 
    REFERENCES `lq_reimbursement_workflow_node` (`F_Id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='流程节点审批人配置表';