This commit is contained in:
zlwu committed 2026-08-11 11:13:01 +08:00
1 parent 80138c6388
commit 693e8a678e
682 files changed
+211375 -5306

No files matched your search

-10
View File
@@ -1,10 +0,0 @@
-- docs/sql/drop_oa_role.sql
-- 下线 OA 工作流角色:审批人选改为职位(sys_post / sys_user_post)
-- 同步软删菜单「工作流角色」
UPDATE `sys_menu`
SET `del_flag` = 1, `update_time` = NOW()
WHERE `id` = 'OA000000000000000000000000000102' AND `del_flag` = 0;
DROP TABLE IF EXISTS `oa_role_user`;
DROP TABLE IF EXISTS `oa_role`;
-84
View File
@@ -1,84 +0,0 @@
-- OA 发起人填写草稿(非模板设计草稿)
CREATE TABLE IF NOT EXISTS `oa_instance_draft` (
`id` varchar(64) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '主键ID',
`app_id` varchar(64) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '应用ID',
`app_version_id` varchar(64) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '暂存时锁定的已发布版本ID',
`title` varchar(200) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '标题',
`form_data_json` mediumtext COLLATE utf8mb4_unicode_ci COMMENT '表单数据 JSON',
`initiator_select_json` text COLLATE utf8mb4_unicode_ci COMMENT '发起人自选 JSON',
`initiator_dept_id` varchar(64) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '发起人部门',
`owner_user_id` varchar(64) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '草稿所属人',
`tenant_no` varchar(64) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'zkxw' COMMENT '租户编号',
`order_num` int(11) DEFAULT NULL COMMENT '排序号',
`remark` varchar(512) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '备注',
`create_by` varchar(64) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '创建人id',
`create_dept_id` varchar(64) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '创建人部门ID',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_by` varchar(64) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '更新人id',
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`del_flag` tinyint(4) NOT NULL DEFAULT '0' COMMENT '删除标记:0-正常 1-已删除',
PRIMARY KEY (`id`) USING BTREE,
KEY `idx_oid_owner` (`tenant_no`,`owner_user_id`,`del_flag`) USING BTREE,
KEY `idx_oid_app` (`tenant_no`,`app_id`,`del_flag`) USING BTREE,
KEY `idx_oid_update` (`tenant_no`,`owner_user_id`,`update_time`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='OA发起审批草稿';
-- 草稿箱位于「发起审批」与「待办中心」之间;仅首次插入时顺延 order_num
UPDATE `sys_menu` AS m
INNER JOIN (
SELECT 1 AS ok
FROM DUAL
WHERE NOT EXISTS (
SELECT 1 FROM `sys_menu`
WHERE `id` = 'OA000000000000000000000000000109' AND `del_flag` = 0
)
) AS guard ON 1 = 1
SET m.`order_num` = m.`order_num` + 1
WHERE m.`parent_id` = 'OA000000000000000000000000000001'
AND m.`del_flag` = 0
AND m.`order_num` IS NOT NULL
AND m.`order_num` >= 4;
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
'OA000000000000000000000000000109', '草稿箱', 'OA000000000000000000000000000001',
'C', 'drafts', '/oa-approval/drafts/index', 'oa:drafts',
1, '1', '1', 'zkxw', 4, 'OA发起审批草稿箱',
NULL, '', NOW(), NULL, NOW(), 0
FROM DUAL
WHERE NOT EXISTS (
SELECT 1 FROM `sys_menu` WHERE `id` = 'OA000000000000000000000000000109' AND `del_flag` = 0
);
-- 已拥有「发起审批」菜单的角色自动获得「草稿箱」(幂等)
-- 注意:MySQL 5.7 下 INSERT…SELECT 中 UUID() 可能整批相同,导致主键冲突;改用按行唯一的 MD5。
INSERT INTO `sys_role_menu` (
`id`, `role_id`, `menu_id`, `tenant_no`, `order_num`, `remark`,
`create_by`, `create_dept_id`, `create_time`, `update_by`, `update_time`, `del_flag`
)
SELECT
MD5(CONCAT(rm.`role_id`, '#', 'OA000000000000000000000000000109')),
rm.`role_id`,
'OA000000000000000000000000000109',
COALESCE(NULLIF(rm.`tenant_no`, ''), 'zkxw'),
0,
'auto from oa:start',
NULL,
'',
NOW(),
NULL,
NOW(),
0
FROM `sys_role_menu` rm
WHERE rm.`menu_id` = 'OA000000000000000000000000000103'
AND rm.`del_flag` = 0
AND NOT EXISTS (
SELECT 1
FROM `sys_role_menu` x
WHERE x.`role_id` = rm.`role_id`
AND x.`menu_id` = 'OA000000000000000000000000000109'
AND x.`del_flag` = 0
);
-7
View File
@@ -1,7 +0,0 @@
-- OA 抄送任务已读标记(oa_task)
-- MySQL 5.7 / utf8mb4
-- 历史数据全部视为未读(DEFAULT 0)
ALTER TABLE `oa_task`
ADD COLUMN `is_read` TINYINT NOT NULL DEFAULT 0 COMMENT '抄送是否已读 0未读 1已读' AFTER `round_no`,
ADD COLUMN `read_time` DATETIME NULL DEFAULT NULL COMMENT '抄送首次已读时间' AFTER `is_read`;
+17
View File
@@ -0,0 +1,17 @@
-- 中国节假日日历缓存
-- MySQL 5.7 / utf8mb4
CREATE TABLE IF NOT EXISTS `sys_cn_holiday_day` (
`id` VARCHAR(64) NOT NULL COMMENT 'UUID',
`day_date` DATE NOT NULL COMMENT '日历日',
`day_type` TINYINT NOT NULL COMMENT '0工作日1周末2节日3调休放假4补班',
`day_name` VARCHAR(64) DEFAULT NULL COMMENT '名称',
`week` TINYINT DEFAULT NULL COMMENT '1-7周一到周日',
`is_rest_day` TINYINT NOT NULL DEFAULT 0 COMMENT '1休息0工作',
`raw_json` TEXT COMMENT '原始JSON片段',
`sync_time` DATETIME DEFAULT NULL COMMENT '同步时间',
`create_time` DATETIME DEFAULT NULL,
`update_time` DATETIME DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `uk_day_date` (`day_date`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='中国节假日日历缓存';