## 人员组织权限

# 1、集团（多租户）

DROP TABLE IF EXISTS `org_group`;

CREATE TABLE org_group (
    id varchar(40) NOT NULL PRIMARY KEY,
    code varchar(40) NULL COMMENT '集团编码',
    name varchar(255) NULL COMMENT '集团名称',
    create_user varchar(40) NULL COMMENT '创建用户',
    create_time timestamp NULL COMMENT '创建时间',
    update_user varchar(40) NULL COMMENT '更新用户',
    update_time timestamp NULL COMMENT '更新时间',
    remark varchar(500) NULL COMMENT '备注'
) COMMENT '集团';

# 2、公司

DROP TABLE IF EXISTS `org_company`;

CREATE TABLE org_company (
    id varchar(40) NOT NULL PRIMARY KEY,
    code varchar(40) NOT NULL COMMENT '公司编码',
    name varchar(40) NULL COMMENT '公司名称',
    group_code varchar(40) NOT NULL COMMENT '集团编码',
    parent_id varchar(40) NULL COMMENT '上级公司ID',
    create_user varchar(40) NULL COMMENT '创建用户',
    create_time timestamp NULL COMMENT '创建时间',
    update_user varchar(40) NULL COMMENT '更新用户',
    update_time timestamp NULL COMMENT '更新时间',
    remark varchar(500) NULL COMMENT '备注'
) COMMENT '公司';

# 3、部门

DROP TABLE IF EXISTS `org_dept`;

CREATE TABLE org_dept (
    id varchar(40) NOT NULL PRIMARY KEY,
    dept_type varchar(40) NOT NULL COMMENT '部门分类',
    name varchar(40) NOT NULL COMMENT '部门名称',
    company_id varchar(40) NOT NULL COMMENT '上级公司ID',
    parent_dept_id varchar(40) NOT NULL COMMENT '上级部门ID,0:顶级部门',
    project_id varchar(40) NOT NULL COMMENT '项目ID',
    group_code varchar(40) NOT NULL COMMENT '集团编码',
    type varchar(40) NOT NULL COMMENT '部门分类',
    create_user varchar(40) NULL COMMENT '创建用户',
    create_time timestamp NULL COMMENT '创建时间',
    update_user varchar(40) NULL COMMENT '更新用户',
    update_time timestamp NULL COMMENT '更新时间',
    remark varchar(500)
) COMMENT '部门';

# 4、岗位

DROP TABLE IF EXISTS `org_job`;

CREATE TABLE org_job (
    id varchar(40) NOT NULL PRIMARY KEY,
    job_type varchar(40) NOT NULL COMMENT '岗位类型',
    name varchar(40) NOT NULL COMMENT '岗位名称',
    group_code varchar(40) NOT NULL COMMENT '集团编码',
    project_id varchar(40) NOT NULL COMMENT '项目ID',
    create_user varchar(40) NULL COMMENT '创建用户',
    create_time timestamp NULL COMMENT '创建时间',
    update_user varchar(40) NULL COMMENT '更新用户',
    update_time timestamp NULL COMMENT '更新时间',
    remark varchar(500)
) COMMENT '岗位';

# 5、部门分类

DROP TABLE IF EXISTS `org_dept_template`;

CREATE TABLE org_dept_template (
    id varchar(40) NOT NULL PRIMARY KEY COMMENT '',
    name varchar(200) NOT NULL COMMENT '名称',
    group_code varchar(40) NOT NULL COMMENT '集团ID',
    create_user varchar(40) NULL COMMENT '创建用户',
    create_time timestamp NULL COMMENT '创建时间',
    update_user varchar(40) NULL COMMENT '更新用户',
    update_time timestamp NULL COMMENT '更新时间',
    remark varchar(500)
) COMMENT '部门分类';

# 6、部门分类层级结构关系

DROP TABLE IF EXISTS `org_dept_lv_template`;

CREATE TABLE org_dept_lv_template (
    id varchar(40) NOT NULL PRIMARY KEY,
    dept_type varchar(40) NOT NULL COMMENT '部门分类',
    parent_id varchar(40) NOT NULL COMMENT '上级部门分类ID',
    group_code varchar(40) NOT NULL COMMENT '集团编码',
    create_user varchar(40) NULL COMMENT '创建用户',
    create_time timestamp NULL COMMENT '创建时间',
    update_user varchar(40) NULL COMMENT '更新用户',
    update_time timestamp NULL COMMENT '更新时间',
    remark varchar(500)
) COMMENT '部门分类层级结构关系';

# 7、岗位分类

DROP TABLE IF EXISTS `org_job_template`;

CREATE TABLE org_job_template (
    id varchar(40) NOT NULL PRIMARY KEY,
    name varchar(40) NOT NULL COMMENT '名称',
    group_code varchar(40) NOT NULL COMMENT '集团编码',
    create_user varchar(40) NULL COMMENT '创建用户',
    create_time timestamp NULL COMMENT '创建时间',
    update_user varchar(40) NULL COMMENT '更新用户',
    update_time timestamp NULL COMMENT '更新时间',
    remark varchar(500)
) COMMENT '岗位分类';

# 8、岗位分类与部门分类关系表

DROP TABLE IF EXISTS `org_job_dept_template`;

CREATE TABLE org_job_dept_template (
    id varchar(40) NOT NULL PRIMARY KEY,
    job_type varchar(40) NOT NULL COMMENT '岗位类型',
    dept_type varchar(40) NOT NULL COMMENT '上级部门分类ID',
    group_code varchar(40) NOT NULL COMMENT '集团编码',
    create_user varchar(40) NULL COMMENT '创建用户',
    create_time timestamp NULL COMMENT '创建时间',
    update_user varchar(40) NULL COMMENT '更新用户',
    update_time timestamp NULL COMMENT '更新时间',
    remark varchar(500) NULL
) COMMENT '岗位分类与部门分类关系表';

# 9、人员

DROP TABLE IF EXISTS `org_person`;

CREATE TABLE org_person (
    id varchar(40) NOT NULL PRIMARY KEY,
    person_name varchar(40) NULL COMMENT '姓名',
    gender int NULL COMMENT '性别',
    status int NOT NULL COMMENT '状态',
    create_user varchar(40) NULL COMMENT '创建用户',
    create_time timestamp NULL COMMENT '创建时间',
    update_user varchar(40) NULL COMMENT '更新用户',
    update_time timestamp NULL COMMENT '更新时间',
    remark varchar(500)
) COMMENT '人员';

# 10、账号

DROP TABLE IF EXISTS `org_account`;

CREATE TABLE org_account (
    id varchar(40) NOT NULL PRIMARY KEY,
    username varchar(40) NULL COMMENT '账号',
    password varchar(40) NULL COMMENT '密码',
    person_id varchar(40) NULL COMMENT '人员ID',
    status int NOT NULL COMMENT '状态',
    create_user varchar(40) NULL COMMENT '创建用户',
    create_time timestamp NULL COMMENT '创建时间',
    update_user varchar(40) NULL COMMENT '更新用户',
    update_time timestamp NULL COMMENT '更新时间',
    remark varchar(500)
) COMMENT '账号';

# 11、项目数据权限

DROP TABLE IF EXISTS `org_auth_prj_data`;

CREATE TABLE org_auth_prj_data (
    id varchar(40) NOT NULL PRIMARY KEY,
    project_id varchar(40) NOT NULL COMMENT '项目编码',
    name varchar(40) NOT NULL COMMENT '项目名称',
    group_code varchar(40) NULL COMMENT '集团名称',
    create_user varchar(40) NULL COMMENT '创建用户',
    create_time timestamp NULL COMMENT '创建时间',
    update_user varchar(40) NULL COMMENT '更新用户',
    update_time timestamp NULL COMMENT '更新时间',
    remark varchar(500)
) COMMENT '项目数据权限';

# 12、公司下的项目数据权限表

DROP TABLE IF EXISTS `org_auth_company_prj`;

CREATE TABLE org_auth_company_prj (
    id varchar(40) NOT NULL PRIMARY KEY,
    company_id varchar(40) NOT NULL COMMENT '公司ID',
    project_id varchar(40) NOT NULL COMMENT '项目ID',
    group_code varchar(40) NOT NULL COMMENT '集团编码',
    create_user varchar(40) NULL COMMENT '创建用户',
    create_time timestamp NULL COMMENT '创建时间',
    update_user varchar(40) NULL COMMENT '更新用户',
    update_time timestamp NULL COMMENT '更新时间',
    remark varchar(500)
) COMMENT '公司下的项目数据权限表';

# 13、项目下的公司数据表

DROP TABLE IF EXISTS `org_rel_company_prj`;

CREATE TABLE org_rel_company_prj (
    id varchar(40) NOT NULL PRIMARY KEY,
    company_id varchar(40) NOT NULL COMMENT '公司ID',
    project_id varchar(40) NOT NULL COMMENT '项目ID',
    group_code varchar(40) NOT NULL COMMENT '集团编码',
    create_user varchar(40) NULL COMMENT '创建用户',
    create_time timestamp NULL COMMENT '创建时间',
    update_user varchar(40) NULL COMMENT '更新用户',
    update_time timestamp NULL COMMENT '更新时间',
    remark varchar(500)
) COMMENT '项目下的公司数据表';

# 14、部门的项目数据权限表

DROP TABLE IF EXISTS `org_auth_dept_prj`;

CREATE TABLE org_auth_dept_prj (
    id varchar(40) NOT NULL PRIMARY KEY,
    dept_id varchar(40) NOT NULL COMMENT '部门ID',
    project_id varchar(40) NOT NULL COMMENT '项目ID',
    group_code varchar(40) NOT NULL COMMENT '集团编码',
    create_user varchar(40) NULL COMMENT '创建用户',
    create_time timestamp NULL COMMENT '创建时间',
    update_user varchar(40) NULL COMMENT '更新用户',
    update_time timestamp NULL COMMENT '更新时间',
    remark varchar(500)
) COMMENT '部门的项目数据权限表';

# 15、岗位&部门关系表

DROP TABLE IF EXISTS `org_cfg_dept_job`;

CREATE TABLE org_cfg_dept_job (
    id varchar(40) NOT NULL PRIMARY KEY,
    dept_id varchar(40) NOT NULL COMMENT '部门id',
    job_id varchar(40) NOT NULL COMMENT '岗位id',
    status int NOT NULL COMMENT '状态',
    create_user varchar(40) NULL COMMENT '创建用户',
    create_time timestamp NULL COMMENT '创建时间',
    update_user varchar(40) NULL COMMENT '更新用户',
    update_time timestamp NULL COMMENT '更新时间',
    remark varchar(500)
) COMMENT '岗位&部门关系表';

# 16、人员配置公司管理权限

DROP TABLE IF EXISTS `org_cfg_person_company`;

CREATE TABLE org_cfg_person_company (
    id varchar(40) NOT NULL PRIMARY KEY,
    person_id varchar(40) NOT NULL COMMENT '人员id',
    company_id varchar(40) NOT NULL COMMENT '公司id',
    status int NOT NULL COMMENT '状态',
    create_user varchar(40) NULL COMMENT '创建用户',
    create_time timestamp NULL COMMENT '创建时间',
    update_user varchar(40) NULL COMMENT '更新用户',
    update_time timestamp NULL COMMENT '更新时间',
    remark varchar(500)
) COMMENT '人员配置公司管理权限';

# 17、人员配置项目数据权限

DROP TABLE IF EXISTS `org_cfg_person_prj`;

CREATE TABLE org_cfg_person_prj (
    id varchar(40) NOT NULL PRIMARY KEY,
    person_id varchar(40) NOT NULL COMMENT '人员id',
    project_id varchar(40) NOT NULL COMMENT '项目id',
    status int NOT NULL COMMENT '状态',
    create_user varchar(40) NULL COMMENT '创建用户',
    create_time timestamp NULL COMMENT '创建时间',
    update_user varchar(40) NULL COMMENT '更新用户',
    update_time timestamp NULL COMMENT '更新时间',
    remark varchar(500)
) COMMENT '人员配置项目数据权限';

# 18、人员与部门关系表

DROP TABLE IF EXISTS `org_cfg_person_dept`;

CREATE TABLE org_cfg_person_dept (
    id varchar(40) NOT NULL PRIMARY KEY,
    person_id varchar(40) NOT NULL COMMENT '账号id',
    dept_id varchar(40) NOT NULL COMMENT '部门id',
    major_dept int NOT NULL COMMENT '是否为主部门',
    status int NOT NULL COMMENT '状态',
    create_user varchar(40) NULL COMMENT '创建用户',
    create_time timestamp NULL COMMENT '创建时间',
    update_user varchar(40) NULL COMMENT '更新用户',
    update_time timestamp NULL COMMENT '更新时间',
    remark varchar(500)
) COMMENT '人员与部门关系表';

# 19、人员与岗位关系表

DROP TABLE IF EXISTS `org_cfg_person_job`;

CREATE TABLE org_cfg_person_job (
    id varchar(40) NOT NULL PRIMARY KEY,
    person_id varchar(40) NOT NULL COMMENT '人员id',
    dept_job_id varchar(40) NOT NULL COMMENT '部门岗位关系id',
    major_job int NOT NULL COMMENT '是否为主岗位',
    status int NOT NULL COMMENT '状态',
    create_user varchar(40) NULL COMMENT '创建用户',
    create_time timestamp NULL COMMENT '创建时间',
    update_user varchar(40) NULL COMMENT '更新用户',
    update_time timestamp NULL COMMENT '更新时间',
    remark varchar(500)
) COMMENT '人员与岗位关系表';

# 20、产品线

DROP TABLE IF EXISTS `org_product`;

CREATE TABLE org_product (
    id varchar(40) NOT NULL PRIMARY KEY,
    code varchar(40) NOT NULL COMMENT '产品线编码',
    name varchar(40) NOT NULL COMMENT '产品线名称',
    create_user varchar(40) NULL COMMENT '创建用户',
    create_time timestamp NULL COMMENT '创建时间',
    update_user varchar(40) NULL COMMENT '更新用户',
    update_time timestamp NULL COMMENT '更新时间',
    remark varchar(500)
) COMMENT '产品线';

# 21、应用

DROP TABLE IF EXISTS `org_application`;

CREATE TABLE org_application (
    id varchar(40) NOT NULL PRIMARY KEY,
    code varchar(40) NOT NULL COMMENT '应用编码',
    name varchar(40) NOT NULL COMMENT '应用名称',
    category varchar(40) NOT NULL COMMENT '所属产品大类',
    app_order int NOT NULL COMMENT '排序',
    create_user varchar(40) NULL COMMENT '创建用户',
    create_time timestamp NULL COMMENT '创建时间',
    update_user varchar(40) NULL COMMENT '更新用户',
    update_time timestamp NULL COMMENT '更新时间',
    remark varchar(500)
) COMMENT '应用';

# 22、功能

DROP TABLE IF EXISTS `org_function`;

CREATE TABLE org_function (
    id varchar(40) NOT NULL PRIMARY KEY,
    code varchar(40) NOT NULL COMMENT '功能编码',
    name varchar(40) NOT NULL COMMENT '功能名称',
    app_code varchar(40) NOT NULL COMMENT '应用编码',
    function_url varchar(200) NULL COMMENT '功能跳转URL',
    icon varchar(50) NULL COMMENT '图标',
    func_order int NOT NULL COMMENT '排序',
    create_user varchar(40) NULL COMMENT '创建用户',
    create_time timestamp NULL COMMENT '创建时间',
    update_user varchar(40) NULL COMMENT '更新用户',
    update_time timestamp NULL COMMENT '更新时间',
    remark varchar(500)
) COMMENT '功能';

# 23、功能层级

DROP TABLE IF EXISTS `org_function_lv`;

CREATE TABLE org_function_lv (
    id varchar(40) NOT NULL PRIMARY KEY,
    function_code varchar(40) NOT NULL COMMENT '功能编码',
    parent_code varchar(40) NOT NULL COMMENT '上级功能编码',
    create_user varchar(40) NULL COMMENT '创建用户',
    create_time timestamp NULL COMMENT '创建时间',
    update_user varchar(40) NULL COMMENT '更新用户',
    update_time timestamp NULL COMMENT '更新时间',
    remark varchar(500)
) COMMENT '功能层级';

# 24、集团配置应用

DROP TABLE IF EXISTS `org_cfg_group_app`;

CREATE TABLE org_cfg_group_app (
    id varchar(40) NOT NULL PRIMARY KEY,
    app_code varchar(40) NOT NULL COMMENT '应用编码',
    group_code varchar(40) NOT NULL COMMENT '集团编码',
    status int NOT NULL COMMENT '状态',
    create_user varchar(40) NULL COMMENT '创建用户',
    create_time timestamp NULL COMMENT '创建时间',
    update_user varchar(40) NULL COMMENT '更新用户',
    update_time timestamp NULL COMMENT '更新时间',
    remark varchar(500)
) COMMENT '集团配置应用';

# 25、集团配置功能

DROP TABLE IF EXISTS `org_cfg_group_func`;

CREATE TABLE org_cfg_group_func (
    id varchar(40) NOT NULL PRIMARY KEY,
    function_code varchar(40) NOT NULL COMMENT '功能编码',
    group_code varchar(40) NOT NULL COMMENT '集团编码',
    status int NOT NULL COMMENT '状态',
    create_user varchar(40) NULL COMMENT '创建用户',
    create_time timestamp NULL COMMENT '创建时间',
    update_user varchar(40) NULL COMMENT '更新用户',
    update_time timestamp NULL COMMENT '更新时间',
    remark varchar(500)
) COMMENT '集团配置功能';

# 26、项目配置应用

DROP TABLE IF EXISTS `org_cfg_prj_app`;

CREATE TABLE org_cfg_prj_app (
    id varchar(40) NOT NULL PRIMARY KEY,
    app_code varchar(40) NOT NULL COMMENT '应用编码',
    project_id varchar(40) NOT NULL COMMENT '项目ID',
    group_code varchar(40) NOT NULL COMMENT '集团编码',
    status int NOT NULL COMMENT '状态',
    create_user varchar(40) NULL COMMENT '创建用户',
    create_time timestamp NULL COMMENT '创建时间',
    update_user varchar(40) NULL COMMENT '更新用户',
    update_time timestamp NULL COMMENT '更新时间',
    remark varchar(500)
) COMMENT '项目配置应用';

# 27、项目配置功能

DROP TABLE IF EXISTS `org_cfg_prj_func`;

CREATE TABLE org_cfg_prj_func (
    id varchar(40) NOT NULL PRIMARY KEY,
    function_code varchar(40) NOT NULL COMMENT '功能编码',
    project_id varchar(40) NOT NULL COMMENT '项目ID',
    group_code varchar(40) NOT NULL COMMENT '集团编码',
    status int NOT NULL COMMENT '状态',
    create_user varchar(40) NULL COMMENT '创建用户',
    create_time timestamp NULL COMMENT '创建时间',
    update_user varchar(40) NULL COMMENT '更新用户',
    update_time timestamp NULL COMMENT '更新时间',
    remark varchar(500)
) COMMENT '项目配置功能';

# 28、岗位分类配置应用

DROP TABLE IF EXISTS `org_cfg_job_app`;

CREATE TABLE org_cfg_job_app (
    id varchar(40) NOT NULL PRIMARY KEY,
    app_code varchar(40) NOT NULL COMMENT '应用编码',
    job_type varchar(40) NOT NULL COMMENT '岗位类型',
    group_code varchar(40) NOT NULL COMMENT '集团编码',
    status int NOT NULL COMMENT '状态',
    create_user varchar(40) NULL COMMENT '创建用户',
    create_time timestamp NULL COMMENT '创建时间',
    update_user varchar(40) NULL COMMENT '更新用户',
    update_time timestamp NULL COMMENT '更新时间',
    remark varchar(500)
) COMMENT '岗位配置应用';

# 29、岗位分类配置功能

DROP TABLE IF EXISTS `org_cfg_job_func`;

CREATE TABLE org_cfg_job_func (
    id varchar(40) NOT NULL PRIMARY KEY,
    function_code varchar(40) NOT NULL COMMENT '功能编码',
    app_code varchar(40) NOT NULL COMMENT '应用编码',
    job_type varchar(40) NOT NULL COMMENT '岗位类型',
    group_code varchar(40) NOT NULL COMMENT '集团编码',
    status int NOT NULL COMMENT '状态',
    create_user varchar(40) NULL COMMENT '创建用户',
    create_time timestamp NULL COMMENT '创建时间',
    update_user varchar(40) NULL COMMENT '更新用户',
    update_time timestamp NULL COMMENT '更新时间',
    remark varchar(500)
) COMMENT '岗位配置功能';