-- 企业微信审批模块 - 数据库表 -- 执行: 在 hzhub 数据库中执行 -- 1. 企业微信审批单本地缓存 CREATE TABLE IF NOT EXISTS `wecom_approval` ( `id` BIGINT NOT NULL AUTO_INCREMENT, `tenant_id` VARCHAR(20) DEFAULT '000000' COMMENT '租户ID', `sp_no` VARCHAR(64) NOT NULL COMMENT '审批单号', `sp_name` VARCHAR(128) DEFAULT NULL COMMENT '审批模板名称', `sp_status` TINYINT NOT NULL COMMENT '状态: 1审批中 2已通过 3已驳回 4已撤销 6通过后撤销 7已删除', `template_id` VARCHAR(128) DEFAULT NULL COMMENT '模板ID', `apply_time` BIGINT DEFAULT NULL COMMENT '提交时间(时间戳)', `applyer_userid` VARCHAR(128) DEFAULT NULL COMMENT '申请人userid', `applyer_party` VARCHAR(128) DEFAULT NULL COMMENT '申请人部门', `apply_data` JSON DEFAULT NULL COMMENT '表单数据(原始JSON)', `nodes_data` JSON DEFAULT NULL COMMENT '审批流程节点(原始JSON)', `summary_info` TEXT DEFAULT NULL COMMENT '审批摘要', `amount` DECIMAL(12,2) DEFAULT NULL COMMENT '涉及金额', `sync_time` DATETIME DEFAULT NULL COMMENT '最后同步时间', `create_dept` BIGINT DEFAULT NULL COMMENT '创建部门', `create_by` BIGINT DEFAULT NULL COMMENT '创建者', `create_time` DATETIME DEFAULT CURRENT_TIMESTAMP, `update_by` BIGINT DEFAULT NULL COMMENT '更新者', `update_time` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, PRIMARY KEY (`id`), KEY `idx_tenant_sp_no` (`tenant_id`, `sp_no`), KEY `idx_tenant_status` (`tenant_id`, `sp_status`), KEY `idx_tenant_apply_time` (`tenant_id`, `apply_time`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='企业微信审批单本地缓存'; -- 2. 企业微信审批模板缓存 CREATE TABLE IF NOT EXISTS `wecom_approval_template` ( `id` BIGINT NOT NULL AUTO_INCREMENT, `tenant_id` VARCHAR(20) DEFAULT '000000' COMMENT '租户ID', `template_id` VARCHAR(128) NOT NULL COMMENT '模板ID', `template_name` VARCHAR(128) DEFAULT NULL COMMENT '模板名称', `template_config` JSON DEFAULT NULL COMMENT '模板配置(控件结构)', `sync_time` DATETIME DEFAULT NULL COMMENT '最后同步时间', `create_dept` BIGINT DEFAULT NULL COMMENT '创建部门', `create_by` BIGINT DEFAULT NULL COMMENT '创建者', `create_time` DATETIME DEFAULT CURRENT_TIMESTAMP, `update_by` BIGINT DEFAULT NULL COMMENT '更新者', `update_time` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, PRIMARY KEY (`id`), UNIQUE KEY `uk_tenant_template` (`tenant_id`, `template_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='企业微信审批模板缓存'; -- 3. 企业微信租户配置(每个租户一条记录) CREATE TABLE IF NOT EXISTS `wecom_tenant_config` ( `id` BIGINT NOT NULL AUTO_INCREMENT, `tenant_id` VARCHAR(20) NOT NULL COMMENT '租户ID', `corpid` VARCHAR(64) NOT NULL COMMENT '企业微信企业ID', `corpsecret` VARCHAR(128) NOT NULL COMMENT '企业微信应用密钥', `agent_id` VARCHAR(64) DEFAULT NULL COMMENT '应用AgentID', `callback_token` VARCHAR(128) DEFAULT NULL COMMENT '回调Token', `callback_aes_key` VARCHAR(128) DEFAULT NULL COMMENT '回调EncodingAESKey', `enabled` CHAR(1) DEFAULT '0' COMMENT '是否启用(0否 1是)', `remark` VARCHAR(500) DEFAULT NULL COMMENT '备注', `create_dept` BIGINT DEFAULT NULL COMMENT '创建部门', `create_by` BIGINT DEFAULT NULL COMMENT '创建者', `create_time` DATETIME DEFAULT CURRENT_TIMESTAMP, `update_by` BIGINT DEFAULT NULL COMMENT '更新者', `update_time` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, PRIMARY KEY (`id`), UNIQUE KEY `uk_tenant_id` (`tenant_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='企业微信租户配置'; -- 4. 企业微信审批同步日志 CREATE TABLE IF NOT EXISTS `wecom_approval_sync_log` ( `id` BIGINT NOT NULL AUTO_INCREMENT, `tenant_id` VARCHAR(20) DEFAULT '000000' COMMENT '租户ID', `sync_type` VARCHAR(20) NOT NULL COMMENT '同步类型: FULL/INCREMENTAL/MANUAL', `status` VARCHAR(20) DEFAULT 'RUNNING' COMMENT '同步状态: RUNNING运行中 COMPLETED已完成 FAILED失败', `start_time` DATETIME NOT NULL COMMENT '开始时间', `end_time` DATETIME DEFAULT NULL COMMENT '结束时间', `duration` INT DEFAULT NULL COMMENT '耗时(秒)', `added_count` INT DEFAULT 0 COMMENT '新增数量', `updated_count` INT DEFAULT 0 COMMENT '更新数量', `error_count` INT DEFAULT 0 COMMENT '错误数量', `error_msg` TEXT DEFAULT NULL COMMENT '错误信息', `operator` VARCHAR(64) DEFAULT NULL COMMENT '操作人', `create_dept` BIGINT DEFAULT NULL COMMENT '创建部门', `create_by` BIGINT DEFAULT NULL COMMENT '创建者', `create_time` DATETIME DEFAULT CURRENT_TIMESTAMP, `update_by` BIGINT DEFAULT NULL COMMENT '更新者', `update_time` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, PRIMARY KEY (`id`), KEY `idx_tenant_id` (`tenant_id`), KEY `idx_sync_type` (`sync_type`), KEY `idx_start_time` (`start_time`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='企业微信审批同步日志'; -- 5. sys_user 表增加企业微信 userid 字段 ALTER TABLE `sys_user` ADD COLUMN `wecom_userid` VARCHAR(64) DEFAULT NULL COMMENT '企业微信userid'; -- 6. wecom_approval 表增加审批人 userid 字段 ALTER TABLE `wecom_approval` ADD COLUMN `approver_userids` VARCHAR(1024) DEFAULT NULL COMMENT '审批人userid列表(逗号分隔)'; -- 7. wecom_approval 表增加审批类型名称字段 ALTER TABLE `wecom_approval` ADD COLUMN `template_name` VARCHAR(128) DEFAULT NULL COMMENT '审批类型名称(模板名称)'; -- 8. wecom_approval_sync_log 表增加状态字段 ALTER TABLE `wecom_approval_sync_log` ADD COLUMN `status` VARCHAR(20) DEFAULT 'RUNNING' COMMENT '同步状态: RUNNING运行中 COMPLETED已完成 FAILED失败'; -- 9. wecom_approval_template 表增加租户审计字段 ALTER TABLE `wecom_approval_template` ADD COLUMN `create_dept` BIGINT DEFAULT NULL COMMENT '创建部门'; ALTER TABLE `wecom_approval_template` ADD COLUMN `create_by` BIGINT DEFAULT NULL COMMENT '创建者'; ALTER TABLE `wecom_approval_template` ADD COLUMN `update_by` BIGINT DEFAULT NULL COMMENT '更新者';