## 人员组织权限
# 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 '所属产品大类',
    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 '图标',
    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 '岗位配置功能';