优化审批流
This commit is contained in:
1 parent
ffaadc26ae
commit
438145cae7
17 files changed
+1131
-187
No files matched your search
@@ -0,0 +1,34 @@
|
||||
-- =============================================================
|
||||
-- 审批流双层绑定重构 v2 - 增量迁移
|
||||
--
|
||||
-- 场景:上一版 create_approval_binding.sql 已建表但含 condition_expr/priority
|
||||
-- 本次将绑定层简化为纯关联,流程表加 apply_dept_ids 部门作用域。
|
||||
--
|
||||
-- 执行顺序:
|
||||
-- 1) DROP + 重建绑定表(结构变简,无法原地迁移)
|
||||
-- 2) 后端流程表补 apply_dept_ids
|
||||
-- =============================================================
|
||||
|
||||
-- 1. 绑定表:先删后建(如已有绑定数据请手工备份后再执行)
|
||||
DROP TABLE IF EXISTS `yz_approval_binding`;
|
||||
|
||||
CREATE TABLE `yz_approval_binding` (
|
||||
`id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
|
||||
`scope` TINYINT NOT NULL DEFAULT 1 COMMENT '1租户 2平台',
|
||||
`tid` BIGINT UNSIGNED NOT NULL DEFAULT 0 COMMENT '租户ID(平台侧为0)',
|
||||
`biz_type` VARCHAR(50) NOT NULL DEFAULT '' COMMENT '功能/单据类型:reimburse/bid/domain',
|
||||
`flow_id` BIGINT UNSIGNED NOT NULL DEFAULT 0 COMMENT '绑定的审批流ID',
|
||||
`flow_code` VARCHAR(64) NOT NULL DEFAULT '' COMMENT '审批流编号(冗余)',
|
||||
`remark` VARCHAR(200) NOT NULL DEFAULT '' COMMENT '备注',
|
||||
`is_deleted` TINYINT NOT NULL DEFAULT 0,
|
||||
`create_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
`update_time` DATETIME DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP,
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `uk_scope_tid_biz_flow` (`scope`,`tid`,`biz_type`,`flow_id`),
|
||||
KEY `idx_flow` (`flow_id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='审批流功能绑定(biz_type↔flow 多对多)';
|
||||
|
||||
-- 2. 后端流程表:补部门作用域列
|
||||
ALTER TABLE `yz_backend_approval_flow`
|
||||
ADD COLUMN `apply_dept_ids` VARCHAR(500) NOT NULL DEFAULT ''
|
||||
COMMENT '适用部门ID列表 CSV,空=全公司通用' AFTER `flow_code`;
|
||||
@@ -0,0 +1,33 @@
|
||||
-- =============================================================
|
||||
-- 审批流图编辑器 - 增量迁移(对已存在的旧表补列)
|
||||
-- MySQL 兼容写法:如列已存在会报错,跳过该条即可
|
||||
-- 如果表本身不存在,请先执行 create_approval_flow.sql
|
||||
-- =============================================================
|
||||
|
||||
-- 1. 租户侧流程表:补 flow_code
|
||||
ALTER TABLE `yz_backend_approval_flow`
|
||||
ADD COLUMN `flow_code` VARCHAR(64) NOT NULL DEFAULT '' COMMENT '审批流编号(自动生成 FL%06d)' AFTER `biz_type`;
|
||||
|
||||
ALTER TABLE `yz_backend_approval_flow`
|
||||
ADD INDEX `idx_tid_code` (`tid`, `flow_code`);
|
||||
|
||||
-- 2. 租户侧节点表:补 pos_x / pos_y
|
||||
ALTER TABLE `yz_backend_approval_node`
|
||||
ADD COLUMN `pos_x` INT NOT NULL DEFAULT 0 COMMENT '画布X坐标' AFTER `sort`,
|
||||
ADD COLUMN `pos_y` INT NOT NULL DEFAULT 0 COMMENT '画布Y坐标' AFTER `pos_x`;
|
||||
|
||||
-- 3. 平台侧流程表:补 flow_code
|
||||
ALTER TABLE `yz_platform_approval_flow`
|
||||
ADD COLUMN `flow_code` VARCHAR(64) NOT NULL DEFAULT '' COMMENT '审批流编号(自动生成 FL%06d)' AFTER `biz_type`;
|
||||
|
||||
ALTER TABLE `yz_platform_approval_flow`
|
||||
ADD INDEX `idx_code` (`flow_code`);
|
||||
|
||||
-- 4. 平台侧节点表:补 pos_x / pos_y
|
||||
ALTER TABLE `yz_platform_approval_node`
|
||||
ADD COLUMN `pos_x` INT NOT NULL DEFAULT 0 COMMENT '画布X坐标' AFTER `sort`,
|
||||
ADD COLUMN `pos_y` INT NOT NULL DEFAULT 0 COMMENT '画布Y坐标' AFTER `pos_x`;
|
||||
|
||||
-- 5. 实例表:补 form_data(条件求值用表单快照 JSON)
|
||||
ALTER TABLE `yz_approval_instance`
|
||||
ADD COLUMN `form_data` TEXT NULL COMMENT '发起表单数据快照(JSON)' AFTER `submit_dept_id`;
|
||||
@@ -0,0 +1,29 @@
|
||||
-- =============================================================
|
||||
-- 审批流功能绑定(biz_type ↔ flow 多对多关联)
|
||||
--
|
||||
-- 对应模型:go/models/approval.go ApprovalBinding
|
||||
-- 用途:给某个功能(biz_type)绑定"可选审批流"清单,业务代码通过
|
||||
-- ListAvailableFlows(scope, tid, bizType, userOrgID) 拿到过滤后的
|
||||
-- 可用流;若一条流程设置了 apply_dept_ids,则仅该部门成员可见。
|
||||
--
|
||||
-- 注意:本表**不含条件表达式 / 优先级**——条件分支在流程内部(条件网关)
|
||||
-- 实现,与绑定层无关。
|
||||
-- =============================================================
|
||||
|
||||
SET NAMES utf8mb4;
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `yz_approval_binding` (
|
||||
`id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
|
||||
`scope` TINYINT NOT NULL DEFAULT 1 COMMENT '1租户 2平台',
|
||||
`tid` BIGINT UNSIGNED NOT NULL DEFAULT 0 COMMENT '租户ID(平台侧为0)',
|
||||
`biz_type` VARCHAR(50) NOT NULL DEFAULT '' COMMENT '功能/单据类型:reimburse/bid/domain',
|
||||
`flow_id` BIGINT UNSIGNED NOT NULL DEFAULT 0 COMMENT '绑定的审批流ID',
|
||||
`flow_code` VARCHAR(64) NOT NULL DEFAULT '' COMMENT '审批流编号(冗余,方便查询)',
|
||||
`remark` VARCHAR(200) NOT NULL DEFAULT '' COMMENT '备注',
|
||||
`is_deleted` TINYINT NOT NULL DEFAULT 0,
|
||||
`create_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
`update_time` DATETIME DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP,
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `uk_scope_tid_biz_flow` (`scope`,`tid`,`biz_type`,`flow_id`),
|
||||
KEY `idx_flow` (`flow_id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='审批流功能绑定(biz_type↔flow 多对多)';
|
||||
@@ -24,6 +24,7 @@ CREATE TABLE IF NOT EXISTS `yz_backend_approval_flow` (
|
||||
`module_code` VARCHAR(50) NOT NULL DEFAULT '' COMMENT '所属功能模块 code(yz_system_modules.code):oa/erp/crm/cms',
|
||||
`biz_type` VARCHAR(50) NOT NULL DEFAULT '' COMMENT '适用单据类型:reimburse/bid/domain/...',
|
||||
`flow_code` VARCHAR(64) NOT NULL DEFAULT '' COMMENT '审批流编号(自动生成、全局唯一,供各程序按编号发起):FL000007',
|
||||
`apply_dept_ids` VARCHAR(500) NOT NULL DEFAULT '' COMMENT '适用部门ID列表 CSV(yz_backend_organization.id),空=全公司通用',
|
||||
`flow_name` VARCHAR(100) NOT NULL DEFAULT '' COMMENT '流程名称',
|
||||
`description` VARCHAR(500) NOT NULL DEFAULT '' COMMENT '流程说明',
|
||||
`is_default` TINYINT NOT NULL DEFAULT 0 COMMENT '是否该单据类型的默认流程:1是 0否',
|
||||
|
||||
Reference in new issue
Block a user