添加了项目前景 绩效 审批配置做了一部分有点晕 我换换脑子继续这个 还有说明菜单

This commit is contained in:
2026-06-17 17:06:01 +08:00
parent 8ad3f2d7dd
commit 88c374952a
38 changed files with 4932 additions and 0 deletions

40
sql/oa_performance.sql Normal file
View File

@@ -0,0 +1,40 @@
-- ============================================================
-- 个人绩效(与超期/顺延强制管理联动)
-- ============================================================
-- 月度绩效汇总(同一员工同一周期一行)
DROP TABLE IF EXISTS oa_performance_score;
CREATE TABLE oa_performance_score (
id BIGINT NOT NULL AUTO_INCREMENT,
user_id BIGINT NOT NULL,
user_name VARCHAR(64),
period VARCHAR(7) NOT NULL COMMENT '考核周期 YYYY-MM',
base_score INT NOT NULL DEFAULT 100,
deduction INT NOT NULL DEFAULT 0 COMMENT '本周期总扣分(正数)',
bonus INT NOT NULL DEFAULT 0 COMMENT '本周期加分(预留)',
total_score INT NOT NULL DEFAULT 100 COMMENT '= base - deduction + bonus',
grade VARCHAR(4) DEFAULT NULL COMMENT 'A+/A/A-/B+/B/B-/C+/C/C-/D',
create_time DATETIME DEFAULT CURRENT_TIMESTAMP,
update_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (id),
UNIQUE KEY uk_user_period (user_id, period)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='月度绩效汇总';
-- 每一笔扣/加分流水
DROP TABLE IF EXISTS oa_performance_deduction;
CREATE TABLE oa_performance_deduction (
id BIGINT NOT NULL AUTO_INCREMENT,
user_id BIGINT NOT NULL,
user_name VARCHAR(64),
period VARCHAR(7) NOT NULL COMMENT 'YYYY-MM',
source VARCHAR(32) NOT NULL COMMENT 'postpone / overdue30 / manual',
source_type VARCHAR(32) DEFAULT NULL COMMENT 'task/step/requirement',
source_id BIGINT DEFAULT NULL COMMENT '业务表主键',
points INT NOT NULL COMMENT '正=扣 负=加',
reason VARCHAR(500),
create_time DATETIME DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (id),
KEY idx_user_period (user_id, period),
KEY idx_source (source_type, source_id),
UNIQUE KEY uk_dedup (user_id, source, source_type, source_id) COMMENT '同一来源同一业务只扣一次(针对 overdue30 等一次性扣分)'
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='绩效流水';

36
sql/oa_postpone.sql Normal file
View File

@@ -0,0 +1,36 @@
-- ============================================================
-- 顺延强制管理 · 数据层
-- ============================================================
DROP TABLE IF EXISTS oa_postpone_record;
CREATE TABLE oa_postpone_record (
id BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键',
business_type VARCHAR(64) NOT NULL COMMENT '业务类型 task / step / requirement',
business_id BIGINT NOT NULL COMMENT '业务表主键',
business_title VARCHAR(255) DEFAULT NULL COMMENT '业务名称(冗余展示)',
owner_id BIGINT NOT NULL COMMENT '事项 owner顺延申请人',
owner_name VARCHAR(64) DEFAULT NULL,
original_deadline DATETIME NOT NULL COMMENT '本次顺延前的截止时间',
new_deadline DATETIME NOT NULL COMMENT '申请的新截止时间',
reason VARCHAR(1024) NOT NULL COMMENT '顺延理由',
postpone_seq INT NOT NULL COMMENT '这是第几次顺延(含本次)',
need_approval TINYINT NOT NULL DEFAULT 0 COMMENT '0直接生效 1需要审批',
approval_instance_id BIGINT DEFAULT NULL COMMENT '审批单 id',
status TINYINT NOT NULL DEFAULT 1 COMMENT '0待审批 1已生效 2被驳回 3已撤回',
create_by VARCHAR(64) DEFAULT NULL,
create_time DATETIME DEFAULT CURRENT_TIMESTAMP,
update_by VARCHAR(64) DEFAULT NULL,
update_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
del_flag TINYINT NOT NULL DEFAULT 0,
PRIMARY KEY (id),
KEY idx_biz (business_type, business_id),
KEY idx_owner (owner_id),
KEY idx_inst (approval_instance_id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='顺延记录(任务/步骤/采购需求 通用)';
-- 在审批配置里注册 3 个新业务(第 3 次及以后顺延会调 approvalService.submit 用到)
INSERT INTO oa_approval_config (business_type, business_name, approver_ids, sign_type, enabled, remark) VALUES
('task_postpone', '任务顺延第3次起', '1', 1, 1, '默认 admin 占位,请改成项目负责人'),
('step_postpone', '进度步骤顺延第3次起', '1', 1, 1, '默认 admin 占位,请改成项目负责人'),
('req_postpone', '采购需求顺延第3次起', '1', 1, 1, '默认 admin 占位,请改成项目负责人');

View File

@@ -0,0 +1,7 @@
-- 项目全景 + 集团驾驶舱 菜单(部署到 prod 时执行)
INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query_param, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, remark) VALUES
-- 项目顶级 (1744021537846177794) 下的两个新菜单
(2063900003000001, '项目全景', 1744021537846177794, 5, 'panorama', 'oa/project/panorama/index', NULL, 1, 0, 'C', '0', '0', 'oa:project:panorama', 'chart', 'admin', NOW(), '项目全景页'),
(2063900003000002, '集团驾驶舱', 1744021537846177794, 1, 'cockpit', 'oa/project/dashboardOverview/index', NULL, 1, 0, 'C', '0', '0', 'oa:project:cockpit', 'monitor', 'admin', NOW(), '全公司项目一览'),
-- 说明 (2063900002000001) 下加项目全景流
(2063900002000004, '项目全景流', 2063900002000001, 3, 'panorama', 'oa/docs/panorama/index', NULL, 1, 0, 'C', '0', '0', 'oa:docs:panorama', 'documentation', 'admin', NOW(), '项目全景使用说明');