增加员工档案

This commit is contained in:
2026-08-28 18:01:09 +08:00
parent d3bc1833f8
commit 2dfc6d6aaf
14 changed files with 2716 additions and 24 deletions
@@ -0,0 +1,8 @@
-- 员工档案主表增加证照字段:身份证正反面、学历照片。
-- 仅在已执行过 yz_backend_employee_file.sql 建表时执行本脚本;
-- 未建表的库直接执行最新版 yz_backend_employee_file.sql 即可,无需本脚本。
ALTER TABLE `yz_backend_employee_file`
ADD COLUMN `id_card_front` varchar(500) NOT NULL DEFAULT '' COMMENT '身份证正面(人像面)图片URL' AFTER `id_card`,
ADD COLUMN `id_card_back` varchar(500) NOT NULL DEFAULT '' COMMENT '身份证反面(国徽面)图片URL' AFTER `id_card_front`,
ADD COLUMN `education_photo` varchar(500) NOT NULL DEFAULT '' COMMENT '学历照片URL' AFTER `id_card_back`;
+27
View File
@@ -0,0 +1,27 @@
-- 员工档案菜单(租户端):挂在办公自动化模块目录下。
--
-- 前置:yz_system_menu 中已存在 path 为 /apps/oa 的模块目录菜单;
-- 若不存在,脚本会自动创建。
-- views 字段:[2] 租户端。type 字段:2-页面。
--
-- 脚本可重复执行:按 path 判重,已存在的菜单会更新组件路径与标题。
INSERT INTO `yz_system_menu` (`pid`, `title`, `path`, `component_path`, `icon`, `sort`, `status`, `is_visible`, `views`, `type`, `remark`)
SELECT 0, '办公自动化', '/apps/oa', '', 'Document', 31, 1, 1, '[2]', 1, '办公自动化模块'
FROM DUAL
WHERE NOT EXISTS (
SELECT 1 FROM (SELECT * FROM `yz_system_menu`) AS t WHERE t.`path` = '/apps/oa'
);
SET @oa_pid := (SELECT `id` FROM `yz_system_menu` WHERE `path` = '/apps/oa' ORDER BY `id` LIMIT 1);
INSERT INTO `yz_system_menu` (`pid`, `title`, `path`, `component_path`, `icon`, `sort`, `status`, `is_visible`, `views`, `type`, `remark`)
SELECT @oa_pid, '员工档案', '/apps/oa/employeefile', '/apps/oa/employeefile/index.vue', 'Postcard', 4, 1, 1, '[2]', 2, '一人一档的人事档案管理'
FROM DUAL
WHERE NOT EXISTS (
SELECT 1 FROM (SELECT * FROM `yz_system_menu`) AS t WHERE t.`path` = '/apps/oa/employeefile'
);
-- 修正已有菜单的组件路径(历史数据可能指向旧组件)
UPDATE `yz_system_menu` SET `component_path` = '/apps/oa/employeefile/index.vue', `type` = 2, `views` = '[2]'
WHERE `path` = '/apps/oa/employeefile';
+70
View File
@@ -0,0 +1,70 @@
-- 员工档案表(租户端 OA 人事档案)
-- 在租户业务库执行以下语句创建表结构。
-- 数据按租户 tid 隔离;档案与员工(yz_backend_employee)一对一,
-- 子记录表统一存放教育经历 / 工作经历 / 合同信息 / 证照附件。
-- ---------------------------------------------------------------------------
-- 1. 员工档案主表
-- ---------------------------------------------------------------------------
CREATE TABLE `yz_backend_employee_file` (
`id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`tid` int NOT NULL DEFAULT '0' COMMENT '租户ID',
`employee_id` bigint unsigned NOT NULL DEFAULT '0' COMMENT '员工ID(yz_backend_employee.id)',
`file_no` varchar(50) NOT NULL DEFAULT '' COMMENT '档案编号(留空自动生成EF+时间戳)',
`id_card` varchar(30) NOT NULL DEFAULT '' COMMENT '身份证号',
`id_card_front` varchar(500) NOT NULL DEFAULT '' COMMENT '身份证正面(人像面)图片URL',
`id_card_back` varchar(500) NOT NULL DEFAULT '' COMMENT '身份证反面(国徽面)图片URL',
`education_photo` varchar(500) NOT NULL DEFAULT '' COMMENT '学历照片URL',
`political_status` varchar(30) NOT NULL DEFAULT '' COMMENT '政治面貌',
`marital_status` tinyint NOT NULL DEFAULT '0' COMMENT '婚姻状况 0-未知 1-未婚 2-已婚 3-离异 4-丧偶',
`native_place` varchar(100) NOT NULL DEFAULT '' COMMENT '籍贯',
`household_address` varchar(255) NOT NULL DEFAULT '' COMMENT '户籍地址',
`current_address` varchar(255) NOT NULL DEFAULT '' COMMENT '现居住址',
`emergency_contact` varchar(50) NOT NULL DEFAULT '' COMMENT '紧急联系人',
`emergency_phone` varchar(20) NOT NULL DEFAULT '' COMMENT '紧急联系电话',
`emergency_relation` varchar(30) NOT NULL DEFAULT '' COMMENT '与本人关系',
`work_email` varchar(100) NOT NULL DEFAULT '' COMMENT '工作邮箱',
`hire_date` date DEFAULT NULL COMMENT '入职日期',
`regular_date` date DEFAULT NULL COMMENT '转正日期',
`leave_date` date DEFAULT NULL COMMENT '离职日期',
`employment_status` tinyint NOT NULL DEFAULT '2' COMMENT '在职状态 1-试用 2-正式 3-离职',
`remark` text NULL COMMENT '备注',
`is_deleted` tinyint NOT NULL DEFAULT '0' COMMENT '是否删除 0-否 1-是',
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
`update_time` datetime DEFAULT NULL COMMENT '更新时间',
`delete_time` datetime DEFAULT NULL COMMENT '删除时间',
PRIMARY KEY (`id`),
UNIQUE KEY `uniq_tid_employee` (`tid`,`employee_id`),
KEY `idx_file_no` (`file_no`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='员工档案主表';
-- ---------------------------------------------------------------------------
-- 2. 员工档案子记录表(教育经历/工作经历/合同信息/证照附件)
-- type 字段区分记录类型,title/sub_title/extra 的语义随类型变化:
-- 教育经历(1):title=学校 sub_title=专业 extra=学历
-- 工作经历(2):title=公司 sub_title=职位 extra=所在部门
-- 合同信息(3):title=合同名称 sub_title=合同类型 extra=签订主体
-- 证照附件(4):title=证照名称 sub_title=证件号码 extra=''
-- ---------------------------------------------------------------------------
CREATE TABLE `yz_backend_employee_file_record` (
`id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`tid` int NOT NULL DEFAULT '0' COMMENT '租户ID',
`employee_id` bigint unsigned NOT NULL DEFAULT '0' COMMENT '员工ID(yz_backend_employee.id)',
`type` tinyint NOT NULL DEFAULT '1' COMMENT '记录类型 1-教育经历 2-工作经历 3-合同信息 4-证照附件',
`title` varchar(100) NOT NULL DEFAULT '' COMMENT '名称(学校/公司/合同/证照)',
`sub_title` varchar(100) NOT NULL DEFAULT '' COMMENT '次级信息(专业/职位/合同类型/证件号码)',
`extra` varchar(100) NOT NULL DEFAULT '' COMMENT '附加信息(学历/部门/签订主体)',
`start_date` date DEFAULT NULL COMMENT '开始日期',
`end_date` date DEFAULT NULL COMMENT '结束日期',
`description` text NULL COMMENT '描述',
`attachment_url` varchar(500) NOT NULL DEFAULT '' COMMENT '附件地址(证照图片等)',
`sort` int NOT NULL DEFAULT '0' COMMENT '排序(越小越靠前)',
`is_deleted` tinyint NOT NULL DEFAULT '0' COMMENT '是否删除 0-否 1-是',
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
`update_time` datetime DEFAULT NULL COMMENT '更新时间',
`delete_time` datetime DEFAULT NULL COMMENT '删除时间',
PRIMARY KEY (`id`),
KEY `idx_tid_employee_type` (`tid`,`employee_id`,`type`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='员工档案子记录表';