增加个人办公模块
This commit is contained in:
@@ -0,0 +1,38 @@
|
||||
-- 通讯录表(全局表,已从 yz_backend_erp_contact 改名):与组织架构联动,支持内部员工(自动同步)和外部联系人
|
||||
-- 已合并 alter_contact_add_dept_position.sql 的 dept_name / position_id 字段
|
||||
-- tenant 隔离:通过 tid 字段实现租户间数据隔离
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `yz_backend_contact` (
|
||||
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键ID',
|
||||
`tid` bigint(20) unsigned NOT NULL DEFAULT 0 COMMENT '租户ID',
|
||||
`employee_id` bigint(20) unsigned DEFAULT NULL COMMENT '关联员工ID(内部联系人自动关联)',
|
||||
`org_id` bigint(20) unsigned DEFAULT NULL COMMENT '所属组织/部门ID(关联yz_backend_organization)',
|
||||
`contact_type` tinyint(4) NOT NULL DEFAULT 1 COMMENT '联系人类型:1=内部员工 2=外部联系人',
|
||||
`contact_name` varchar(64) NOT NULL COMMENT '联系人姓名',
|
||||
`gender` tinyint(4) NOT NULL DEFAULT 0 COMMENT '性别:0=未知 1=男 2=女',
|
||||
`phone` varchar(20) DEFAULT NULL COMMENT '手机号',
|
||||
`work_phone` varchar(20) DEFAULT NULL COMMENT '办公电话',
|
||||
`email` varchar(128) DEFAULT NULL COMMENT '邮箱',
|
||||
`wechat` varchar(64) DEFAULT NULL COMMENT '微信号',
|
||||
`avatar` varchar(512) DEFAULT NULL COMMENT '头像URL',
|
||||
`company_name` varchar(128) DEFAULT NULL COMMENT '公司名称(外部联系人)',
|
||||
`dept_name` varchar(128) DEFAULT NULL COMMENT '外部联系人手填部门名称',
|
||||
`position_id` bigint(20) unsigned DEFAULT NULL COMMENT '职位ID,关联yz_backend_position',
|
||||
`position_title` varchar(100) DEFAULT NULL COMMENT '职位名称',
|
||||
`address` varchar(512) DEFAULT NULL COMMENT '地址',
|
||||
`remark` varchar(512) DEFAULT NULL COMMENT '备注',
|
||||
`is_starred` tinyint(4) NOT NULL DEFAULT 0 COMMENT '是否收藏:0=否 1=是',
|
||||
`sort` int(10) unsigned NOT NULL DEFAULT 0 COMMENT '排序值',
|
||||
`status` tinyint(4) NOT NULL DEFAULT 1 COMMENT '状态:1=正常 0=停用',
|
||||
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||||
`delete_time` datetime DEFAULT NULL COMMENT '删除时间(软删除)',
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `idx_tid` (`tid`),
|
||||
KEY `idx_employee_id` (`employee_id`),
|
||||
KEY `idx_org_id` (`org_id`),
|
||||
KEY `idx_contact_type` (`contact_type`),
|
||||
KEY `idx_contact_name` (`contact_name`),
|
||||
KEY `idx_phone` (`phone`),
|
||||
KEY `idx_delete_time` (`delete_time`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='通讯录表';
|
||||
@@ -0,0 +1,6 @@
|
||||
-- 通讯录表新增字段:外部联系人手填部门、内部员工职位关联
|
||||
-- 对应模型:go/models/contact.go BackendErpContact
|
||||
|
||||
ALTER TABLE `yz_backend_contact`
|
||||
ADD COLUMN `dept_name` VARCHAR(128) NULL COMMENT '外部联系人手填部门名称' AFTER `company_name`,
|
||||
ADD COLUMN `position_id` BIGINT UNSIGNED NULL COMMENT '职位ID,关联 yz_backend_position' AFTER `dept_name`;
|
||||
@@ -0,0 +1,5 @@
|
||||
-- 通讯录表全局化:从 ERP 模块独立为全局基础功能,表名去掉 erp 前缀
|
||||
-- 对应模型:go/models/contact.go(BackendErpContact)
|
||||
-- RENAME 会保留全部数据与索引,对存量环境执行本脚本即可完成迁移
|
||||
|
||||
RENAME TABLE `yz_backend_erp_contact` TO `yz_backend_contact`;
|
||||
@@ -0,0 +1,69 @@
|
||||
-- 全局组织架构相关表:组织机构、员工、职位
|
||||
-- 说明:组织架构已从 ERP 模块独立为全局基础功能,表名不带 erp 前缀
|
||||
-- tenant 隔离:通过 tid 字段实现租户间数据隔离
|
||||
-- 对应模型:go/models/erp.go(BackendErpOrganization / BackendErpEmployee / BackendErpPosition)
|
||||
-- DDL 与线上 go-platform 库实际结构一致(2026-08 导出)
|
||||
|
||||
-- 组织架构表(OA 组织机构、通讯录、组织机构管理页依赖)
|
||||
CREATE TABLE IF NOT EXISTS `yz_backend_organization` (
|
||||
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT 'ID',
|
||||
`tid` bigint(20) unsigned NOT NULL COMMENT '租户ID',
|
||||
`org_name` varchar(128) NOT NULL COMMENT '组织/部门名称',
|
||||
`org_code` varchar(64) NOT NULL COMMENT '组织/部门编码',
|
||||
`parent_id` bigint(20) unsigned DEFAULT '0' COMMENT '上级组织ID',
|
||||
`sort` int(10) unsigned DEFAULT '0' COMMENT '排序号',
|
||||
`leader_id` bigint(20) unsigned DEFAULT NULL COMMENT '部门负责人ID',
|
||||
`is_company` int(11) DEFAULT '0' COMMENT '是否是公司 0-不是 1-是',
|
||||
`status` tinyint(4) NOT NULL DEFAULT '1' COMMENT '状态:1-启用,2-停用,0-删除',
|
||||
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||||
`delete_time` datetime DEFAULT NULL COMMENT '删除时间',
|
||||
`remark` varchar(512) DEFAULT NULL COMMENT '备注信息',
|
||||
PRIMARY KEY (`id`) USING BTREE,
|
||||
KEY `idx_tid_code` (`tid`,`org_code`) USING BTREE
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC COMMENT='组织架构表';
|
||||
|
||||
-- 员工信息表(account 全局唯一)
|
||||
CREATE TABLE IF NOT EXISTS `yz_backend_employee` (
|
||||
`id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT 'ID',
|
||||
`tid` int(11) DEFAULT NULL COMMENT '租户ID',
|
||||
`account` varchar(50) NOT NULL COMMENT '员工账号',
|
||||
`password` varchar(64) NOT NULL DEFAULT '' COMMENT '密码',
|
||||
`name` varchar(30) NOT NULL COMMENT '员工姓名',
|
||||
`gender` tinyint(4) NOT NULL DEFAULT '0' COMMENT '性别 0=未知 1=男 2=女',
|
||||
`birthday` date DEFAULT NULL COMMENT '生日',
|
||||
`affiliate_unit` varchar(100) DEFAULT NULL COMMENT '隶属单位',
|
||||
`department` varchar(50) DEFAULT NULL COMMENT '部门',
|
||||
`position` varchar(50) DEFAULT NULL COMMENT '职位',
|
||||
`education` varchar(20) DEFAULT NULL COMMENT '学历',
|
||||
`nation` varchar(20) DEFAULT NULL COMMENT '民族',
|
||||
`phone` varchar(20) DEFAULT NULL COMMENT '手机号',
|
||||
`wechat` varchar(50) DEFAULT NULL COMMENT '微信号',
|
||||
`email` varchar(100) DEFAULT NULL COMMENT '邮箱',
|
||||
`home_address` varchar(255) DEFAULT NULL COMMENT '家庭住址',
|
||||
`account_status` tinyint(4) NOT NULL DEFAULT '1' COMMENT '账号状态 0=禁用 1=正常 2=离职',
|
||||
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||||
`delete_time` datetime DEFAULT NULL COMMENT '删除时间',
|
||||
PRIMARY KEY (`id`) USING BTREE,
|
||||
UNIQUE KEY `uk_account` (`account`) USING BTREE,
|
||||
KEY `idx_tid_account` (`tid`,`account`) USING BTREE
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC COMMENT='员工信息表';
|
||||
|
||||
-- 职位表
|
||||
CREATE TABLE IF NOT EXISTS `yz_backend_position` (
|
||||
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT 'ID',
|
||||
`tid` bigint(20) unsigned NOT NULL COMMENT '租户ID',
|
||||
`department_id` bigint(20) unsigned NOT NULL COMMENT '部门ID',
|
||||
`position_code` varchar(50) NOT NULL COMMENT '职位编码',
|
||||
`position_name` varchar(100) NOT NULL COMMENT '职位名称',
|
||||
`position_type` tinyint(4) DEFAULT '0' COMMENT '职位类型:0-普通职位 1-管理职位 2-技术职位',
|
||||
`status` tinyint(4) NOT NULL DEFAULT '1' COMMENT '状态:0-禁用 1-启用',
|
||||
`sort` int(10) unsigned DEFAULT '0' COMMENT '排序',
|
||||
`remark` varchar(512) DEFAULT NULL COMMENT '备注',
|
||||
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||||
`delete_time` datetime DEFAULT NULL COMMENT '删除时间',
|
||||
PRIMARY KEY (`id`) USING BTREE,
|
||||
KEY `idx_tid_code` (`tid`,`position_code`) USING BTREE
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC COMMENT='职位表';
|
||||
Reference in New Issue
Block a user