提交
This commit is contained in:
1 parent
846aea70bb
commit
a4fd31f254
18 files changed
+491
-85
No files matched your search
+403
-2
@@ -1,8 +1,409 @@
|
||||
-- OA 审批 / 组织字段(2026-07-14)完整脚本见:
|
||||
-- docs/sql/patch_2026-07-14_oa_approval.sql
|
||||
-- OA 审批(钉钉交互)增量脚本 — 2026-07-14
|
||||
-- 执行前请备份;可重复执行时注意 IGNORE 语义(部分语句非幂等)
|
||||
|
||||
-- ---------------------------------------------------------------------------
|
||||
-- 1. 组织字段:直属主管 / 部门负责人用户 ID
|
||||
-- ---------------------------------------------------------------------------
|
||||
ALTER TABLE sys_user
|
||||
ADD COLUMN supervisor_user_id VARCHAR(64) NULL COMMENT '直属主管用户ID' AFTER dept_id;
|
||||
|
||||
ALTER TABLE sys_dept
|
||||
ADD COLUMN leader_user_id VARCHAR(64) NULL COMMENT '部门负责人用户ID' AFTER status;
|
||||
|
||||
-- ---------------------------------------------------------------------------
|
||||
-- 2. OA 审批核心表
|
||||
-- ---------------------------------------------------------------------------
|
||||
|
||||
CREATE TABLE IF NOT EXISTS oa_app_group (
|
||||
id VARCHAR(64) NOT NULL COMMENT '主键ID',
|
||||
group_name VARCHAR(100) NOT NULL COMMENT '分组名称',
|
||||
tenant_no VARCHAR(64) NOT NULL DEFAULT 'zkxw' COMMENT '租户编号',
|
||||
order_num INT NULL COMMENT '排序号',
|
||||
remark VARCHAR(512) NULL COMMENT '备注',
|
||||
create_by VARCHAR(64) NULL COMMENT '创建人id',
|
||||
create_dept_id VARCHAR(64) NOT NULL DEFAULT '' COMMENT '创建人部门ID',
|
||||
create_time DATETIME NOT NULL COMMENT '创建时间',
|
||||
update_by VARCHAR(64) NULL COMMENT '更新人id',
|
||||
update_time DATETIME NOT NULL COMMENT '更新时间',
|
||||
del_flag SMALLINT NOT NULL DEFAULT 0 COMMENT '删除标记',
|
||||
PRIMARY KEY (id),
|
||||
KEY idx_oa_app_group_tenant (tenant_no, del_flag)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='OA审批分组';
|
||||
|
||||
CREATE TABLE IF NOT EXISTS oa_app (
|
||||
id VARCHAR(64) NOT NULL COMMENT '主键ID',
|
||||
group_id VARCHAR(64) NULL COMMENT '分组ID',
|
||||
app_name VARCHAR(50) NOT NULL COMMENT '表单/应用名称',
|
||||
icon_url VARCHAR(512) NULL COMMENT '图标',
|
||||
description VARCHAR(100) NULL COMMENT '表单说明',
|
||||
initiator_scope VARCHAR(32) NOT NULL DEFAULT 'all' COMMENT '发起范围 all/users',
|
||||
initiator_user_ids TEXT NULL COMMENT '指定发起人JSON数组',
|
||||
admin_scope VARCHAR(32) NOT NULL DEFAULT 'all_oa_admin' COMMENT '管理员范围',
|
||||
admin_user_ids TEXT NULL COMMENT '指定管理员JSON数组',
|
||||
status CHAR(1) NOT NULL DEFAULT '1' COMMENT '1启用 0停用',
|
||||
tenant_no VARCHAR(64) NOT NULL DEFAULT 'zkxw' COMMENT '租户编号',
|
||||
order_num INT NULL COMMENT '排序号',
|
||||
remark VARCHAR(512) NULL COMMENT '备注',
|
||||
create_by VARCHAR(64) NULL COMMENT '创建人id',
|
||||
create_dept_id VARCHAR(64) NOT NULL DEFAULT '' COMMENT '创建人部门ID',
|
||||
create_time DATETIME NOT NULL COMMENT '创建时间',
|
||||
update_by VARCHAR(64) NULL COMMENT '更新人id',
|
||||
update_time DATETIME NOT NULL COMMENT '更新时间',
|
||||
del_flag SMALLINT NOT NULL DEFAULT 0 COMMENT '删除标记',
|
||||
PRIMARY KEY (id),
|
||||
KEY idx_oa_app_tenant (tenant_no, del_flag),
|
||||
KEY idx_oa_app_group (group_id)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='OA审批应用';
|
||||
|
||||
CREATE TABLE IF NOT EXISTS oa_app_version (
|
||||
id VARCHAR(64) NOT NULL COMMENT '主键ID',
|
||||
app_id VARCHAR(64) NOT NULL COMMENT '应用ID',
|
||||
version_no INT NOT NULL COMMENT '版本号',
|
||||
status VARCHAR(16) NOT NULL DEFAULT 'draft' COMMENT 'draft/published',
|
||||
is_latest_published CHAR(1) NOT NULL DEFAULT '0' COMMENT '是否最新已发布',
|
||||
form_schema_json LONGTEXT NULL COMMENT '表单Schema JSON',
|
||||
flow_tree_json LONGTEXT NULL COMMENT '流程树 JSON',
|
||||
advanced_settings_json TEXT NULL COMMENT '高级设置 JSON',
|
||||
tenant_no VARCHAR(64) NOT NULL DEFAULT 'zkxw' COMMENT '租户编号',
|
||||
order_num INT NULL COMMENT '排序号',
|
||||
remark VARCHAR(512) NULL COMMENT '备注',
|
||||
create_by VARCHAR(64) NULL COMMENT '创建人id',
|
||||
create_dept_id VARCHAR(64) NOT NULL DEFAULT '' COMMENT '创建人部门ID',
|
||||
create_time DATETIME NOT NULL COMMENT '创建时间',
|
||||
update_by VARCHAR(64) NULL COMMENT '更新人id',
|
||||
update_time DATETIME NOT NULL COMMENT '更新时间',
|
||||
del_flag SMALLINT NOT NULL DEFAULT 0 COMMENT '删除标记',
|
||||
PRIMARY KEY (id),
|
||||
KEY idx_oa_app_ver_app (app_id, status, del_flag)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='OA审批应用版本';
|
||||
|
||||
CREATE TABLE IF NOT EXISTS oa_role (
|
||||
id VARCHAR(64) NOT NULL COMMENT '主键ID',
|
||||
role_name VARCHAR(100) NOT NULL COMMENT '角色名称',
|
||||
role_code VARCHAR(64) NOT NULL COMMENT '角色编码',
|
||||
role_kind VARCHAR(16) NOT NULL DEFAULT 'custom' COMMENT 'custom/preset',
|
||||
status CHAR(1) NOT NULL DEFAULT '1' COMMENT '1启用 0停用',
|
||||
tenant_no VARCHAR(64) NOT NULL DEFAULT 'zkxw' COMMENT '租户编号',
|
||||
order_num INT NULL COMMENT '排序号',
|
||||
remark VARCHAR(512) NULL COMMENT '备注',
|
||||
create_by VARCHAR(64) NULL COMMENT '创建人id',
|
||||
create_dept_id VARCHAR(64) NOT NULL DEFAULT '' COMMENT '创建人部门ID',
|
||||
create_time DATETIME NOT NULL COMMENT '创建时间',
|
||||
update_by VARCHAR(64) NULL COMMENT '更新人id',
|
||||
update_time DATETIME NOT NULL COMMENT '更新时间',
|
||||
del_flag SMALLINT NOT NULL DEFAULT 0 COMMENT '删除标记',
|
||||
PRIMARY KEY (id),
|
||||
UNIQUE KEY uk_oa_role_tenant_code (tenant_no, role_code, del_flag),
|
||||
KEY idx_oa_role_tenant (tenant_no, del_flag)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='OA工作流角色';
|
||||
|
||||
CREATE TABLE IF NOT EXISTS oa_role_user (
|
||||
id VARCHAR(64) NOT NULL COMMENT '主键ID',
|
||||
oa_role_id VARCHAR(64) NOT NULL COMMENT '工作流角色ID',
|
||||
user_id VARCHAR(64) NOT NULL COMMENT '用户ID',
|
||||
tenant_no VARCHAR(64) NOT NULL DEFAULT 'zkxw' COMMENT '租户编号',
|
||||
order_num INT NULL COMMENT '排序号',
|
||||
remark VARCHAR(512) NULL COMMENT '备注',
|
||||
create_by VARCHAR(64) NULL COMMENT '创建人id',
|
||||
create_dept_id VARCHAR(64) NOT NULL DEFAULT '' COMMENT '创建人部门ID',
|
||||
create_time DATETIME NOT NULL COMMENT '创建时间',
|
||||
update_by VARCHAR(64) NULL COMMENT '更新人id',
|
||||
update_time DATETIME NOT NULL COMMENT '更新时间',
|
||||
del_flag SMALLINT NOT NULL DEFAULT 0 COMMENT '删除标记',
|
||||
PRIMARY KEY (id),
|
||||
KEY idx_oa_role_user_role (oa_role_id, del_flag),
|
||||
KEY idx_oa_role_user_user (user_id, del_flag)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='OA工作流角色成员';
|
||||
|
||||
CREATE TABLE IF NOT EXISTS oa_instance (
|
||||
id VARCHAR(64) NOT NULL COMMENT '主键ID',
|
||||
app_id VARCHAR(64) NOT NULL COMMENT '应用ID',
|
||||
app_version_id VARCHAR(64) NOT NULL COMMENT '锁定的已发布版本ID',
|
||||
title VARCHAR(200) NULL COMMENT '实例标题',
|
||||
initiator_user_id VARCHAR(64) NOT NULL COMMENT '发起人',
|
||||
initiator_dept_id VARCHAR(64) NULL COMMENT '发起人部门',
|
||||
form_data_json LONGTEXT NULL COMMENT '表单数据 JSON',
|
||||
status VARCHAR(32) NOT NULL DEFAULT 'running' COMMENT 'running/completed/rejected/cancelled',
|
||||
tenant_no VARCHAR(64) NOT NULL DEFAULT 'zkxw' COMMENT '租户编号',
|
||||
order_num INT NULL COMMENT '排序号',
|
||||
remark VARCHAR(512) NULL COMMENT '备注',
|
||||
create_by VARCHAR(64) NULL COMMENT '创建人id',
|
||||
create_dept_id VARCHAR(64) NOT NULL DEFAULT '' COMMENT '创建人部门ID',
|
||||
create_time DATETIME NOT NULL COMMENT '创建时间',
|
||||
update_by VARCHAR(64) NULL COMMENT '更新人id',
|
||||
update_time DATETIME NOT NULL COMMENT '更新时间',
|
||||
del_flag SMALLINT NOT NULL DEFAULT 0 COMMENT '删除标记',
|
||||
PRIMARY KEY (id),
|
||||
KEY idx_oa_inst_tenant (tenant_no, del_flag),
|
||||
KEY idx_oa_inst_initiator (initiator_user_id, status),
|
||||
KEY idx_oa_inst_app (app_id)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='OA审批实例';
|
||||
|
||||
CREATE TABLE IF NOT EXISTS oa_task (
|
||||
id VARCHAR(64) NOT NULL COMMENT '主键ID',
|
||||
instance_id VARCHAR(64) NOT NULL COMMENT '实例ID',
|
||||
node_key VARCHAR(64) NULL COMMENT '节点key',
|
||||
node_name VARCHAR(200) NULL COMMENT '节点名称',
|
||||
task_type VARCHAR(16) NOT NULL DEFAULT 'approval' COMMENT 'approval/cc',
|
||||
assignee_user_id VARCHAR(64) NOT NULL COMMENT '处理人',
|
||||
status VARCHAR(32) NOT NULL DEFAULT 'pending' COMMENT 'pending/approved/rejected/done',
|
||||
comment_text VARCHAR(512) NULL COMMENT '意见',
|
||||
resolve_source VARCHAR(64) NULL COMMENT '解析来源如 supervisor_fallback_dept_leader',
|
||||
sign_mode VARCHAR(8) NULL COMMENT 'or/and',
|
||||
tenant_no VARCHAR(64) NOT NULL DEFAULT 'zkxw' COMMENT '租户编号',
|
||||
order_num INT NULL COMMENT '排序号',
|
||||
remark VARCHAR(512) NULL COMMENT '备注',
|
||||
create_by VARCHAR(64) NULL COMMENT '创建人id',
|
||||
create_dept_id VARCHAR(64) NOT NULL DEFAULT '' COMMENT '创建人部门ID',
|
||||
create_time DATETIME NOT NULL COMMENT '创建时间',
|
||||
update_by VARCHAR(64) NULL COMMENT '更新人id',
|
||||
update_time DATETIME NOT NULL COMMENT '更新时间',
|
||||
del_flag SMALLINT NOT NULL DEFAULT 0 COMMENT '删除标记',
|
||||
PRIMARY KEY (id),
|
||||
KEY idx_oa_task_assignee (assignee_user_id, status, del_flag),
|
||||
KEY idx_oa_task_instance (instance_id, del_flag)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='OA审批任务';
|
||||
|
||||
CREATE TABLE IF NOT EXISTS oa_relation (
|
||||
id VARCHAR(64) NOT NULL COMMENT '主键ID',
|
||||
from_instance_id VARCHAR(64) NOT NULL COMMENT '本实例ID',
|
||||
to_instance_id VARCHAR(64) NOT NULL COMMENT '被关联实例ID',
|
||||
field_key VARCHAR(64) NULL COMMENT '表单字段key',
|
||||
tenant_no VARCHAR(64) NOT NULL DEFAULT 'zkxw' COMMENT '租户编号',
|
||||
order_num INT NULL COMMENT '排序号',
|
||||
remark VARCHAR(512) NULL COMMENT '备注',
|
||||
create_by VARCHAR(64) NULL COMMENT '创建人id',
|
||||
create_dept_id VARCHAR(64) NOT NULL DEFAULT '' COMMENT '创建人部门ID',
|
||||
create_time DATETIME NOT NULL COMMENT '创建时间',
|
||||
update_by VARCHAR(64) NULL COMMENT '更新人id',
|
||||
update_time DATETIME NOT NULL COMMENT '更新时间',
|
||||
del_flag SMALLINT NOT NULL DEFAULT 0 COMMENT '删除标记',
|
||||
PRIMARY KEY (id),
|
||||
KEY idx_oa_rel_from (from_instance_id, del_flag)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='OA关联审批';
|
||||
|
||||
-- 预置工作流角色(按租户手工或应用启动 ensure;此处示例 zkxw)
|
||||
-- INSERT 由后端 ensure_presets 幂等完成,避免 UUID 硬编码冲突
|
||||
|
||||
-- ---------------------------------------------------------------------------
|
||||
-- 3. 菜单说明
|
||||
-- ---------------------------------------------------------------------------
|
||||
-- 侧栏路由已写入:
|
||||
-- - web-admin/src/router/modules/sqxp.ts
|
||||
-- - backend/app/api/menu.py(STATIC_MENU_TREE)
|
||||
-- 角色权限用的 sys_menu 注册见:
|
||||
-- docs/sql/patch_2026-07-15_oa_approval_sys_menu.sql
|
||||
-- (含 OA审批 节点插入,以及旧「工作流管理」伪删除)
|
||||
|
||||
|
||||
-- =============================================================================
|
||||
-- OA 审批菜单注册 + 旧「工作流管理」伪删除
|
||||
-- 日期:2026-07-15
|
||||
-- 说明:
|
||||
-- 1. 在「系统管理」顶级(TOP...00005)下注册「OA审批」及三级页面菜单,
|
||||
-- id / path / component / perms 与 web-admin sqxp.ts、backend menu.py 对齐。
|
||||
-- 2. 伪删除旧「工作流管理」二级及其三级菜单(OA 已替代),并清理角色菜单关联。
|
||||
-- =============================================================================
|
||||
|
||||
SET NAMES utf8mb4;
|
||||
|
||||
-- ---------------------------------------------------------------------------
|
||||
-- 1. 伪删除旧「工作流管理」及其子菜单
|
||||
-- ---------------------------------------------------------------------------
|
||||
UPDATE `sys_menu`
|
||||
SET `del_flag` = 1,
|
||||
`update_time` = NOW()
|
||||
WHERE `del_flag` = 0
|
||||
AND (
|
||||
`id` = 'WKF00000000000000000000000000001'
|
||||
OR `parent_id` = 'WKF00000000000000000000000000001'
|
||||
OR `id` IN (
|
||||
'10000000000000000000000000000wf01',
|
||||
'10000000000000000000000000000wf02',
|
||||
'10000000000000000000000000000wf03',
|
||||
'10000000000000000000000000000wf04',
|
||||
'10000000000000000000000000000wf05'
|
||||
)
|
||||
);
|
||||
|
||||
DELETE FROM `sys_role_menu`
|
||||
WHERE `menu_id` IN (
|
||||
'WKF00000000000000000000000000001',
|
||||
'10000000000000000000000000000wf01',
|
||||
'10000000000000000000000000000wf02',
|
||||
'10000000000000000000000000000wf03',
|
||||
'10000000000000000000000000000wf04',
|
||||
'10000000000000000000000000000wf05'
|
||||
);
|
||||
|
||||
-- ---------------------------------------------------------------------------
|
||||
-- 2. 注册「OA审批」二级目录(挂在系统管理顶级下)
|
||||
-- ---------------------------------------------------------------------------
|
||||
INSERT INTO `sys_menu` (
|
||||
`id`, `menu_name`, `parent_id`, `menu_type`, `path`, `component`, `perms`,
|
||||
`is_frame`, `visible`, `status`, `tenant_no`, `order_num`, `remark`,
|
||||
`create_by`, `create_dept_id`, `create_time`, `update_by`, `update_time`, `del_flag`
|
||||
)
|
||||
SELECT
|
||||
'OA000000000000000000000000000001', 'OA审批', 'TOP00000000000000000000000000005', 'M',
|
||||
'oa-approval', NULL, NULL,
|
||||
1, '1', '1', 'zkxw', 2, '钉钉式 OA 审批(替代旧工作流管理)',
|
||||
NULL, '', NOW(), NULL, NOW(), 0
|
||||
FROM DUAL
|
||||
WHERE NOT EXISTS (
|
||||
SELECT 1 FROM `sys_menu` WHERE `id` = 'OA000000000000000000000000000001'
|
||||
);
|
||||
|
||||
-- 若曾假删过同 id,则恢复
|
||||
UPDATE `sys_menu`
|
||||
SET `del_flag` = 0,
|
||||
`menu_name` = 'OA审批',
|
||||
`parent_id` = 'TOP00000000000000000000000000005',
|
||||
`menu_type` = 'M',
|
||||
`path` = 'oa-approval',
|
||||
`component` = NULL,
|
||||
`perms` = NULL,
|
||||
`visible` = '1',
|
||||
`status` = '1',
|
||||
`order_num` = 2,
|
||||
`update_time` = NOW()
|
||||
WHERE `id` = 'OA000000000000000000000000000001';
|
||||
|
||||
-- ---------------------------------------------------------------------------
|
||||
-- 3. 注册 OA 三级菜单(可见页 + 隐藏详情/设计页)
|
||||
-- ---------------------------------------------------------------------------
|
||||
INSERT INTO `sys_menu` (
|
||||
`id`, `menu_name`, `parent_id`, `menu_type`, `path`, `component`, `perms`,
|
||||
`is_frame`, `visible`, `status`, `tenant_no`, `order_num`, `remark`,
|
||||
`create_by`, `create_dept_id`, `create_time`, `update_by`, `update_time`, `del_flag`
|
||||
)
|
||||
SELECT * FROM (
|
||||
SELECT 'OA000000000000000000000000000101' AS id, '审批管理' AS menu_name,
|
||||
'OA000000000000000000000000000001' AS parent_id, 'C' AS menu_type,
|
||||
'apps' AS path, '/oa-approval/apps/index' AS component, 'oa:apps:list' AS perms,
|
||||
1 AS is_frame, '1' AS visible, '1' AS status, 'zkxw' AS tenant_no, 1 AS order_num,
|
||||
NULL AS remark, NULL AS create_by, '' AS create_dept_id, NOW() AS create_time,
|
||||
NULL AS update_by, NOW() AS update_time, 0 AS del_flag
|
||||
UNION ALL
|
||||
SELECT 'OA000000000000000000000000000102', '工作流角色',
|
||||
'OA000000000000000000000000000001', 'C',
|
||||
'roles', '/oa-approval/roles/index', 'oa:roles:list',
|
||||
1, '1', '1', 'zkxw', 2, NULL, NULL, '', NOW(), NULL, NOW(), 0
|
||||
UNION ALL
|
||||
SELECT 'OA000000000000000000000000000103', '发起审批',
|
||||
'OA000000000000000000000000000001', 'C',
|
||||
'start', '/oa-approval/start/index', 'oa:start',
|
||||
1, '1', '1', 'zkxw', 3, NULL, NULL, '', NOW(), NULL, NOW(), 0
|
||||
UNION ALL
|
||||
SELECT 'OA000000000000000000000000000104', '待办中心',
|
||||
'OA000000000000000000000000000001', 'C',
|
||||
'pending', '/oa-approval/pending/index', 'oa:pending',
|
||||
1, '1', '1', 'zkxw', 4, NULL, NULL, '', NOW(), NULL, NOW(), 0
|
||||
UNION ALL
|
||||
SELECT 'OA000000000000000000000000000105', '已办中心',
|
||||
'OA000000000000000000000000000001', 'C',
|
||||
'done', '/oa-approval/done/index', 'oa:done',
|
||||
1, '1', '1', 'zkxw', 5, NULL, NULL, '', NOW(), NULL, NOW(), 0
|
||||
UNION ALL
|
||||
SELECT 'OA000000000000000000000000000106', '我发起的',
|
||||
'OA000000000000000000000000000001', 'C',
|
||||
'mine', '/oa-approval/mine/index', 'oa:mine',
|
||||
1, '1', '1', 'zkxw', 6, NULL, NULL, '', NOW(), NULL, NOW(), 0
|
||||
UNION ALL
|
||||
SELECT 'OA000000000000000000000000000107', '抄送我的',
|
||||
'OA000000000000000000000000000001', 'C',
|
||||
'cc', '/oa-approval/cc/index', 'oa:cc',
|
||||
1, '1', '1', 'zkxw', 7, NULL, NULL, '', NOW(), NULL, NOW(), 0
|
||||
UNION ALL
|
||||
SELECT 'OA000000000000000000000000000201', '审批设计',
|
||||
'OA000000000000000000000000000001', 'C',
|
||||
'designer/:id', '/oa-approval/designer/index', 'oa:designer',
|
||||
1, '0', '1', 'zkxw', 8, '隐藏页:从审批管理进入', NULL, '', NOW(), NULL, NOW(), 0
|
||||
UNION ALL
|
||||
SELECT 'OA000000000000000000000000000202', '审批详情',
|
||||
'OA000000000000000000000000000001', 'C',
|
||||
'instances/:id', '/oa-approval/instances/detail', 'oa:instance:detail',
|
||||
1, '0', '1', 'zkxw', 9, '隐藏页:从任务/列表进入', NULL, '', NOW(), NULL, NOW(), 0
|
||||
) AS t
|
||||
WHERE NOT EXISTS (
|
||||
SELECT 1 FROM `sys_menu` m WHERE m.`id` = t.id
|
||||
);
|
||||
|
||||
-- 幂等:已存在则同步字段并取消伪删除
|
||||
UPDATE `sys_menu` m
|
||||
JOIN (
|
||||
SELECT 'OA000000000000000000000000000101' AS id, '审批管理' AS menu_name, 'apps' AS path,
|
||||
'/oa-approval/apps/index' AS component, 'oa:apps:list' AS perms, '1' AS visible, 1 AS order_num
|
||||
UNION ALL SELECT 'OA000000000000000000000000000102', '工作流角色', 'roles', '/oa-approval/roles/index', 'oa:roles:list', '1', 2
|
||||
UNION ALL SELECT 'OA000000000000000000000000000103', '发起审批', 'start', '/oa-approval/start/index', 'oa:start', '1', 3
|
||||
UNION ALL SELECT 'OA000000000000000000000000000104', '待办中心', 'pending', '/oa-approval/pending/index', 'oa:pending', '1', 4
|
||||
UNION ALL SELECT 'OA000000000000000000000000000105', '已办中心', 'done', '/oa-approval/done/index', 'oa:done', '1', 5
|
||||
UNION ALL SELECT 'OA000000000000000000000000000106', '我发起的', 'mine', '/oa-approval/mine/index', 'oa:mine', '1', 6
|
||||
UNION ALL SELECT 'OA000000000000000000000000000107', '抄送我的', 'cc', '/oa-approval/cc/index', 'oa:cc', '1', 7
|
||||
UNION ALL SELECT 'OA000000000000000000000000000201', '审批设计', 'designer/:id', '/oa-approval/designer/index', 'oa:designer', '0', 8
|
||||
UNION ALL SELECT 'OA000000000000000000000000000202', '审批详情', 'instances/:id', '/oa-approval/instances/detail', 'oa:instance:detail', '0', 9
|
||||
) s ON m.id = s.id
|
||||
SET m.`del_flag` = 0,
|
||||
m.`parent_id` = 'OA000000000000000000000000000001',
|
||||
m.`menu_type` = 'C',
|
||||
m.`menu_name` = s.menu_name,
|
||||
m.`path` = s.path,
|
||||
m.`component` = s.component,
|
||||
m.`perms` = s.perms,
|
||||
m.`visible` = s.visible,
|
||||
m.`status` = '1',
|
||||
m.`order_num` = s.order_num,
|
||||
m.`update_time` = NOW();
|
||||
|
||||
|
||||
|
||||
-- OA 审批菜单重命名:待处理 → 待办中心,已处理 → 已办中心
|
||||
-- 已执行过 patch_2026-07-15_oa_approval_sys_menu.sql 的环境可单独跑本脚本。
|
||||
|
||||
UPDATE `sys_menu`
|
||||
SET `menu_name` = '待办中心',
|
||||
`update_time` = NOW()
|
||||
WHERE `id` = 'OA000000000000000000000000000104'
|
||||
AND `del_flag` = 0;
|
||||
|
||||
UPDATE `sys_menu`
|
||||
SET `menu_name` = '已办中心',
|
||||
`update_time` = NOW()
|
||||
WHERE `id` = 'OA000000000000000000000000000105'
|
||||
AND `del_flag` = 0;
|
||||
|
||||
|
||||
-- OA 审批进度多轮 + 打回 + 撤销重提关联
|
||||
-- MySQL 5.7 / utf8mb4
|
||||
|
||||
ALTER TABLE oa_instance
|
||||
ADD COLUMN source_instance_id VARCHAR(64) NULL COMMENT '撤销重提所关联的原实例ID' AFTER status,
|
||||
ADD COLUMN current_round INT NOT NULL DEFAULT 1 COMMENT '当前提交轮次,从1起' AFTER source_instance_id;
|
||||
|
||||
-- status 语义:running / returned / completed / rejected / cancelled
|
||||
-- returned = 已打回,待发起人修改再提交
|
||||
|
||||
ALTER TABLE oa_task
|
||||
ADD COLUMN round_no INT NOT NULL DEFAULT 1 COMMENT '所属提交轮次' AFTER sign_mode;
|
||||
|
||||
CREATE TABLE IF NOT EXISTS oa_instance_event (
|
||||
id VARCHAR(64) NOT NULL COMMENT '主键ID',
|
||||
instance_id VARCHAR(64) NOT NULL COMMENT '实例ID',
|
||||
round_no INT NOT NULL DEFAULT 1 COMMENT '轮次',
|
||||
event_type VARCHAR(32) NOT NULL COMMENT 'submit/return/withdraw/complete/reject_end',
|
||||
actor_user_id VARCHAR(64) NULL COMMENT '操作人',
|
||||
task_id VARCHAR(64) NULL COMMENT '关联任务(打回时)',
|
||||
node_key VARCHAR(64) NULL COMMENT '节点key',
|
||||
comment_text VARCHAR(512) NULL COMMENT '意见',
|
||||
tenant_no VARCHAR(64) NOT NULL DEFAULT 'zkxw' COMMENT '租户编号',
|
||||
order_num INT NULL COMMENT '排序号',
|
||||
remark VARCHAR(512) NULL COMMENT '备注',
|
||||
create_by VARCHAR(64) NULL COMMENT '创建人id',
|
||||
create_dept_id VARCHAR(64) NOT NULL DEFAULT '' COMMENT '创建人部门ID',
|
||||
create_time DATETIME NOT NULL COMMENT '创建时间',
|
||||
update_by VARCHAR(64) NULL COMMENT '更新人id',
|
||||
update_time DATETIME NOT NULL COMMENT '更新时间',
|
||||
del_flag SMALLINT NOT NULL DEFAULT 0 COMMENT '删除标记',
|
||||
PRIMARY KEY (id),
|
||||
KEY idx_oa_evt_inst (instance_id, del_flag, create_time)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='OA实例操作事件(进度轴)';
|
||||
Reference in new issue
Block a user