-- =============================================
-- 安全评价业务库初始建表脚本
-- 数据库：safety_eval_service
-- 字符集：utf8mb4，排序规则：utf8mb4_0900_ai_ci
-- =============================================

CREATE DATABASE IF NOT EXISTS `safety_eval_service`
    CHARACTER SET utf8mb4
    COLLATE utf8mb4_0900_ai_ci;

USE `safety_eval_service`;


create table account
(
    id          bigint        not null comment '主键'
        primary key,
    delete_enum varchar(32)   null comment '删除标识true false',
    remarks     varchar(255)  null comment '备注',
    create_name varchar(50)   null comment '创建人姓名',
    update_name varchar(50)   null comment '更新人姓名',
    tenant_id   bigint        null comment '租户id',
    version     int           null comment '版本',
    create_time datetime      null comment '创建时间',
    update_time datetime      null comment '修改时间',
    create_id   bigint        null comment '创建人id',
    update_id   bigint        null comment '修改人id',
    env         varchar(50)   null comment '环境',
    user_name   varchar(50)   null comment '用户名称/姓名',
    account     varchar(50)   null comment '账号',
    phone       varchar(12)   null comment '手机号',
    password    varchar(100)  null comment '密码',
    profile_url varchar(160)  null comment '头像地址',
    type        int           null comment '类型: 1-机构端,2监管端',
    sync_gbs    int default 1 not null comment '同步gbs 1-未同步, 2-同步'
)
    comment '用户表' charset = utf8mb4
                     row_format = DYNAMIC;

create table basic_discipline_major
(
    id                           bigint                       not null
        primary key,
    industry_code                varchar(64)                  not null comment '行业code
    ("COAL_MINING", "煤炭开采业"),
    ("METAL_NONMETAL_MINING", "金属、非金属矿及其他矿采选业"),
    ("ONSHORE_OIL_GAS", "陆地石油和天然气开采业"),
    ("ONSHORE_OIL_GAS_PIPELINE", "陆上油气管道运输业"),
    ("PETROCHEMICAL_CHEMICAL_PHARMACEUTICAL", "石油加工业，化学原料、化学品及医药制造业"),
    ("FIREWORKS_FIRECRACKERS", "烟花爆竹制造业"),
    ("METAL_SMELTING", "金属冶炼"),
    ;',
    professional_capability_code varchar(64)                  not null comment '专业能力 code',
    professional_code            varchar(64)                  null comment '专业code',
    professional_name            varchar(128)                 not null comment '专业名称',
    delete_enum                  varchar(32) charset utf8mb4  null comment '删除标识true false',
    remarks                      varchar(255) charset utf8mb4 null comment '备注',
    create_name                  varchar(50) charset utf8mb4  null comment '创建人姓名',
    update_name                  varchar(50) charset utf8mb4  null comment '更新人姓名',
    tenant_id                    bigint                       null comment '租户id',
    org_id                       bigint                       null comment '机构id',
    version                      int                          null comment '版本',
    create_time                  datetime                     null comment '创建时间',
    update_time                  datetime                     null comment '修改时间',
    create_id                    bigint                       null comment '创建人id',
    update_id                    bigint                       null comment '修改人id',
    env                          varchar(50) charset utf8mb4  null comment '环境'
)
    comment '基础学科专业';

create table eval_contract
(
    id                  bigint            not null comment '主键'
        primary key,
    org_id              bigint            not null comment '机构id',
    project_id          bigint            not null comment '项目id',
    org_name            varchar(200)      null comment '机构名称',
    contract_no         varchar(64)       null comment '合同编号',
    project_name        varchar(200)      null comment '项目名称',
    project_intro       varchar(500)      null comment '项目简介',
    amount              varchar(64)       null comment '合同金额(万元,字符串)',
    project_type_code   varchar(32)       null comment '项目类型编码(NEW新建 RENEW续评 CHANGE变更)',
    risk_summary        varchar(500)      null comment '项目风险分析摘要',
    project_region      varchar(500)      null comment '项目所在地',
    project_address     varchar(500)      null comment '项目详细地址',
    contract_start_date date              null comment '合同开始时间',
    contract_end_date   date              null comment '合同结束时间',
    eval_type_code      varchar(32)       null comment '评价类型编码(PRE/ACCEPT/STATUS)',
    toxic_flag          tinyint default 2 null comment '是否生产剧毒化学品(1是2否)',
    precursor_flag      tinyint default 2 null comment '是否生产易制毒化学品(1是2否)',
    cross_province_flag tinyint default 2 null comment '是否跨省建设项目(1是2否)',
    business_scope      varchar(500)      null comment '项目业务范围',
    enterprise_name     varchar(200)      null comment '企业名称',
    industry_category   varchar(200)      null comment '国民经济行业类别(手填)',
    office_address      varchar(500)      null comment '办公地址',
    credit_code         varchar(18)       null comment '统一社会信用代码',
    post_code           varchar(20)       null comment '邮政编码',
    enterprise_phone    varchar(50)       null comment '企业电话',
    fax                 varchar(50)       null comment '传真',
    legal_person        varchar(50)       null comment '法人代表',
    contact_name        varchar(50)       null comment '联系人',
    contact_phone       varchar(50)       null comment '联系人电话',
    staff_count         int               null comment '职工人数',
    scan_file_url       text              null comment '合同扫描件(URL文本,可多条由前端约定分隔/JSON)',
    status_code         int               null comment '节点状态(1暂存2已完成)',
    delete_enum         varchar(32)       null comment '删除标识true false',
    remarks             varchar(255)      null comment '备注',
    create_name         varchar(50)       null comment '创建人姓名',
    update_name         varchar(50)       null comment '更新人姓名',
    tenant_id           bigint            null comment '租户id',
    version             int               null comment '版本',
    create_time         datetime          null comment '创建时间',
    update_time         datetime          null comment '修改时间',
    create_id           bigint            null comment '创建人id',
    update_id           bigint            null comment '修改人id',
    env                 varchar(50)       null comment '环境',
    constraint uk_eval_contract_project
        unique (project_id)
)
    comment '02业务合同表' charset = utf8mb4;

create index idx_eval_contract_no
    on eval_contract (contract_no);

create index idx_eval_contract_org
    on eval_contract (org_id);

create table eval_customer
(
    id                         bigint        not null comment '主键'
        primary key,
    org_id                     bigint        not null comment '评价机构id',
    customer_name              varchar(200)  not null comment '企业名称/客户名称',
    credit_code                varchar(18)   null comment '统一社会信用代码',
    district_code              varchar(32)   null comment '属地编码(重庆市区级,见 ChongqingDistrictEnum)',
    industry_code              varchar(64)   null comment '所属行业编码(见 IndustryEnum)',
    business_address           varchar(500)  null comment '经营地址',
    longitude                  varchar(64)   null comment '经度(定位)',
    latitude                   varchar(64)   null comment '纬度(定位)',
    enterprise_status_code     int           null comment '企业状态编码(见 EnterpriseStatusEnum)',
    principal_name             varchar(50)   null comment '主要负责人',
    principal_phone            varchar(20)   null comment '负责人电话',
    legal_representative       varchar(50)   null comment '法定代表人',
    legal_representative_phone varchar(20)   null comment '法人电话',
    enterprise_scale_code      varchar(32)   null comment '企业规模编码(见 EnterpriseScaleEnum)',
    eval_expire_date           date          null comment '评价到期日',
    customer_status_code       int default 1 null comment '客户状态编码(见 CustomerStatusEnum,1正常2停用)',
    delete_enum                varchar(32)   null comment '删除标识true false',
    remarks                    varchar(255)  null comment '备注',
    create_name                varchar(50)   null comment '创建人姓名',
    update_name                varchar(50)   null comment '更新人姓名',
    tenant_id                  bigint        null comment '租户id',
    version                    int           null comment '版本',
    create_time                datetime      null comment '创建时间',
    update_time                datetime      null comment '修改时间',
    create_id                  bigint        null comment '创建人id',
    update_id                  bigint        null comment '修改人id',
    env                        varchar(50)   null comment '环境'
)
    comment '安评客户表' charset = utf8mb4;

create index idx_eval_customer_credit
    on eval_customer (credit_code);

create index idx_eval_customer_district
    on eval_customer (district_code);

create index idx_eval_customer_industry
    on eval_customer (industry_code);

create index idx_eval_customer_name
    on eval_customer (customer_name);

create index idx_eval_customer_org
    on eval_customer (org_id);

create table eval_internal_review
(
    id                             bigint                               not null comment '主键'
        primary key,
    org_id                         bigint                               not null comment '机构id',
    project_id                     bigint                               not null comment '项目id',
    draft_id                       bigint                               null comment '关联报告稿id',
    reviewer_personnel_id          bigint                               null comment '内审人人员id',
    reviewer_name                  varchar(50)                          null comment '内审人姓名',
    result_code                    varchar(32) default 'not_passed'     null comment '审核结果 passed 通过，not_passed 未通过',
    result_name                    varchar(50)                          null comment '审核结果名称',
    opinion_content                varchar(2000)                        null comment '审核意见',
    review_time                    datetime                             null comment '审核时间',
    status_code                    int                                  null comment '节点状态(1未开始2进行中3已完成4退回)',
    status_name                    varchar(50)                          null comment '节点状态名称',
    reviewer_signature_url         varchar(512)                         null comment '内审人独立签字',
    reviewer_signature_task_status varchar(64) default 'non_dispatched' not null comment '审核签字任务状态 dispatched 下发，non_dispatched 未下发 , completed 已完成',
    delete_enum                    varchar(32)                          null comment '删除标识true false',
    remarks                        varchar(255)                         null comment '备注',
    create_name                    varchar(50)                          null comment '创建人姓名',
    update_name                    varchar(50)                          null comment '更新人姓名',
    tenant_id                      bigint                               null comment '租户id',
    version                        int                                  null comment '版本',
    create_time                    datetime                             null comment '创建时间',
    update_time                    datetime                             null comment '修改时间',
    create_id                      bigint                               null comment '创建人id',
    update_id                      bigint                               null comment '修改人id',
    env                            varchar(50)                          null comment '环境',
    constraint uk_eval_internal_project
        unique (project_id)
)
    comment '06内部审核表' charset = utf8mb4;

create index idx_eval_internal_org
    on eval_internal_review (org_id);

create table eval_process_control
(
    id                             bigint                               not null comment '主键'
        primary key,
    org_id                         bigint                               not null comment '机构id',
    project_id                     bigint                               not null comment '项目id',
    controller_personnel_id        bigint                               null comment '过程控制负责人人员id',
    controller_name                varchar(50)                          null comment '过程控制负责人姓名',
    reviewer_signature_url         varchar(512)                         null comment '内审人独立签字',
    reviewer_signature_task_status varchar(64) default 'non_dispatched' not null comment '审核签字任务状态 dispatched 下发，non_dispatched 未下发 , completed 已完成',
    precheck_pass_flag             tinyint     default 2                null comment '前7节点是否全部完成(1是2否)',
    result_code                    varchar(64) default 'not_passed'     null comment '审核结果 passed 通过，not_passed 未通过',
    result_name                    varchar(50)                          null comment '结论名称',
    opinion_content                varchar(2000)                        null comment '过程控制意见',
    archive_flag                   tinyint     default 2                null comment '是否归档(1是2否)',
    handover_form_url              varchar(500)                         null comment '归档交接单URL',
    handover_form_status           varchar(32) default 'not_create'     null comment '归档交接单状态(not_create未生成,created已生成)',
    control_time                   datetime                             null comment '办理时间',
    status_code                    int                                  null comment '节点状态(1未开始2进行中3已完成4退回)',
    controller_personnel_sign_time datetime                             null comment '过控负责人签字时间',
    delete_enum                    varchar(32)                          null comment '删除标识true false',
    remarks                        varchar(255)                         null comment '备注',
    create_name                    varchar(50)                          null comment '创建人姓名',
    update_name                    varchar(50)                          null comment '更新人姓名',
    tenant_id                      bigint                               null comment '租户id',
    version                        int                                  null comment '版本',
    create_time                    datetime                             null comment '创建时间',
    update_time                    datetime                             null comment '修改时间',
    create_id                      bigint                               null comment '创建人id',
    update_id                      bigint                               null comment '修改人id',
    env                            varchar(50)                          null comment '环境',
    constraint uk_eval_process_project
        unique (project_id)
)
    comment '08过程控制表' charset = utf8mb4;

create index idx_eval_process_org
    on eval_process_control (org_id);

create table eval_project
(
    id                      bigint                                                                                                                                                                                                                                                                                                                         not null comment '主键'
        primary key,
    org_id                  bigint                                                                                                                                                                                                                                                                                                                         not null comment '评价机构id',
    customer_id             bigint                                                                                                                                                                                                                                                                                                                         not null comment '被评价客户id(eval_customer.id)',
    project_no              varchar(64)                                                                                                                                                                                                                                                                                                                    not null comment '项目编号(系统生成)',
    project_name            varchar(200)                                                                                                                                                                                                                                                                                                                   not null comment '项目名称',
    eval_type_code          varchar(32)                                                                                                                                                                                                                                                                                                                    null comment '评价类型编码(见EvalTypeEnum:PRE/ACCEPT/STATUS)',
    customer_contact_name   varchar(50)                                                                                                                                                                                                                                                                                                                    null comment '客户负责人(手填)',
    customer_contact_phone  varchar(20)                                                                                                                                                                                                                                                                                                                    null comment '联系电话(手填)',
    is_statutory            tinyint      default 0                                                                                                                                                                                                                                                                                                         not null comment '是否法定项目 1是 0否',
    clock_in_status         varchar(64)  default 'NOT_CLOCKED_IN'                                                                                                                                                                                                                                                                                          not null comment '人员打卡状态 ： 未打卡 → NOT_CLOCKED_IN，人员未到齐 → NOT_ALL_PRESENT，正常 → NORMAL',
    district_code           varchar(32)                                                                                                                                                                                                                                                                                                                    null comment '项目所在地编码(见ChongqingDistrictEnum)',
    plan_start_date         date                                                                                                                                                                                                                                                                                                                           null comment '项目开始时间',
    plan_end_date           date                                                                                                                                                                                                                                                                                                                           null comment '项目完成时间',
    customer_address        varchar(500)                                                                                                                                                                                                                                                                                                                   null comment '客户所在地(手填)',
    longitude               varchar(32)                                                                                                                                                                                                                                                                                                                    null comment '经度(手填)',
    latitude                varchar(32)                                                                                                                                                                                                                                                                                                                    null comment '纬度(手填)',
    checkin_radius_meters   int                                                                                                                                                                                                                                                                                                                            null comment '打卡有效范围(米,手填)',
    participants_json       json                                                                                                                                                                                                                                                                                                                           null comment '参与人员JSON:[{"name":"名称","id":1}]',
    project_leader_name     varchar(50)                                                                                                                                                                                                                                                                                                                    null comment '项目负责人(手填)',
    archive_flag            int          default 0                                                                                                                                                                                                                                                                                                         not null comment '项目归档(1归档0未归档)',
    archive_date            datetime                                                                                                                                                                                                                                                                                                                       null comment '项目归档时间',
    archive_transferor_name varchar(255)                                                                                                                                                                                                                                                                                                                   null comment '项目归档移交人',
    archive_archivist_name  varchar(255)                                                                                                                                                                                                                                                                                                                   null comment '项目归档档案管理员',
    delete_enum             varchar(32)                                                                                                                                                                                                                                                                                                                    null comment '删除标识true false',
    remarks                 varchar(255)                                                                                                                                                                                                                                                                                                                   null comment '备注',
    create_name             varchar(50)                                                                                                                                                                                                                                                                                                                    null comment '创建人姓名',
    update_name             varchar(50)                                                                                                                                                                                                                                                                                                                    null comment '更新人姓名',
    tenant_id               bigint                                                                                                                                                                                                                                                                                                                         null comment '租户id',
    version                 int                                                                                                                                                                                                                                                                                                                            null comment '版本',
    create_time             datetime                                                                                                                                                                                                                                                                                                                       null comment '创建时间',
    update_time             datetime                                                                                                                                                                                                                                                                                                                       null comment '修改时间',
    create_id               bigint                                                                                                                                                                                                                                                                                                                         null comment '创建人id',
    update_id               bigint                                                                                                                                                                                                                                                                                                                         null comment '修改人id',
    env                     varchar(50)                                                                                                                                                                                                                                                                                                                    null comment '环境',
    project_node            varchar(600) default '[{"type":"RISK_ANALYSIS","state":0},{"type":"BUSINESS_CONTRACT","state":0},{"type":"PROJECT_GROUP","state":0},{"type":"SITE_SURVEY","state":0},{"type":"REPORT_PREPARATION","state":0},{"type":"INTERNAL_REVIEW","state":0},{"type":"TECHNICAL_REVIEW","state":0},{"type":"PROCESS_CONTROL","state":0}]' not null comment '项目节点完成进度',
    industry_code           varchar(64)                                                                                                                                                                                                                                                                                                                    null comment '所属行业编码(见 IndustryEnum)',
    constraint uk_eval_project_no
        unique (project_no)
)
    comment '安评项目主表' charset = utf8mb4;

create index idx_eval_project_archive
    on eval_project (archive_flag);

create index idx_eval_project_customer
    on eval_project (customer_id);

create index idx_eval_project_district
    on eval_project (district_code);

create index idx_eval_project_org
    on eval_project (org_id);

create index idx_eval_project_plan_end
    on eval_project (plan_end_date);

create index idx_eval_project_plan_start
    on eval_project (plan_start_date);

create table eval_project_doc
(
    id              bigint       not null comment '主键'
        primary key,
    org_id          bigint       not null comment '机构id',
    project_id      bigint       not null comment '项目id',
    project_no      varchar(64)  not null comment '项目编号(eval_project.project_no)',
    project_name    varchar(200) not null comment '项目名称(eval_project.project_name)',
    customer_name   varchar(200) not null comment '被评价客户企业名称(eval_customer.customer_name)',
    eval_type_code  varchar(32)  null comment '评价类型编码(eval_project.eval_type_code)',
    project_doc_url json         null comment '资料上传地址',
    delete_enum     varchar(32)  null comment '删除标识true false',
    remarks         varchar(255) null comment '备注',
    create_name     varchar(50)  null comment '创建人姓名',
    update_name     varchar(50)  null comment '更新人姓名',
    tenant_id       bigint       null comment '租户id',
    version         int          null comment '版本',
    create_time     datetime     null comment '创建时间',
    update_time     datetime     null comment '修改时间',
    create_id       bigint       null comment '创建人id',
    update_id       bigint       null comment '修改人id',
    env             varchar(50)  null comment '环境'
)
    comment '安评项目资料表' charset = utf8mb4;

create index idx_eval_project_doc_pid
    on eval_project_doc (project_id);

create table eval_project_member
(
    id             bigint        not null comment '主键'
        primary key,
    org_id         bigint        not null comment '机构id',
    project_id     bigint        not null comment '项目id',
    personnel_id   bigint        not null comment '人员id(逻辑关联org_personnel.id)',
    personnel_name varchar(50)   null comment '人员姓名',
    dept_name      varchar(32)   null comment '部门名称',
    pos_name       varchar(32)   null comment '岗位',
    capacity       varchar(200)  null comment '人员能力',
    responsibility varchar(600)  null comment '职责',
    role           text          null comment '角色(数组[1,2])',
    delete_enum    varchar(32)   null comment '删除标识true false',
    remarks        varchar(255)  null comment '备注',
    create_name    varchar(50)   null comment '创建人姓名',
    update_name    varchar(50)   null comment '更新人姓名',
    tenant_id      bigint        null comment '租户id',
    version        int           null comment '版本',
    create_time    datetime      null comment '创建时间',
    update_time    datetime      null comment '修改时间',
    create_id      bigint        null comment '创建人id',
    update_id      bigint        null comment '修改人id',
    env            varchar(50)   null comment '环境',
    msg_send_state int default 0 not null comment '0:未发送 1:已发'
)
    comment '安评项目成员表' charset = utf8mb4;

create index idx_eval_project_member_person
    on eval_project_member (personnel_id);

create index idx_eval_project_member_pid
    on eval_project_member (project_id);

create table eval_project_process_waring
(
    id                      bigint                        not null comment '主键'
        primary key,
    org_id                  bigint                        null comment '评价机构id',
    project_id              bigint                        not null comment '项目id',
    waring_status           varchar(64)  default 'normal' not null comment '预警状态 normal:正常；abnormal 异常',
    process_waring_status   varchar(256) default 'normal' not null comment '人员预警异常 normal:正常；abnormal 异常',
    process_waring_msg      text                          null,
    personnel_waring_status varchar(256) default 'normal' not null comment '人员预警 normal:正常；abnormal 异常',
    personnel_waring_msg    text                          null,
    delete_enum             varchar(32)                   null comment '删除标识true false',
    remarks                 varchar(255)                  null comment '备注',
    create_name             varchar(50)                   null comment '创建人姓名',
    update_name             varchar(50)                   null comment '更新人姓名',
    tenant_id               bigint                        null comment '租户id',
    version                 int                           null comment '版本',
    create_time             datetime                      null comment '创建时间',
    update_time             datetime                      null comment '修改时间',
    create_id               bigint                        null comment '创建人id',
    update_id               bigint                        null comment '修改人id',
    env                     varchar(50)                   null comment '环境'
)
    comment '项目预警-归档前预警' charset = utf8mb4;

create index idx_project_id
    on eval_project_process_waring (project_id);

create table eval_project_waring
(
    id                    bigint                                                                                                                                                                                                                                                                                                                         not null comment '主键'
        primary key,
    org_id                bigint                                                                                                                                                                                                                                                                                                                         null comment '评价机构id',
    project_id            bigint                                                                                                                                                                                                                                                                                                                         not null comment '项目id',
    archive_date          datetime                                                                                                                                                                                                                                                                                                                       not null comment '项目归档时间',
    project_complete_time datetime                                                                                                                                                                                                                                                                                                                       null comment '项目完成时间',
    waring_status         varchar(32)  default 'non_warn'                                                                                                                                                                                                                                                                                                not null comment '项目 预警 状态: non_warn 暂时不预警,first_waring 首次预警，second_waring 二次预警，emergency_waring 紧急预警,overdue_warning 逾期预警 ,end_warning 结束预警',
    waring_start_time     datetime                                                                                                                                                                                                                                                                                                                       not null comment '预警开始时间',
    reassessment_date     datetime                                                                                                                                                                                                                                                                                                                       not null comment '重新评估时间',
    cycle_date            tinyint                                                                                                                                                                                                                                                                                                                        not null comment '周期年份',
    delete_enum           varchar(32)                                                                                                                                                                                                                                                                                                                    null comment '删除标识true false',
    remarks               varchar(255)                                                                                                                                                                                                                                                                                                                   null comment '备注',
    create_name           varchar(50)                                                                                                                                                                                                                                                                                                                    null comment '创建人姓名',
    update_name           varchar(50)                                                                                                                                                                                                                                                                                                                    null comment '更新人姓名',
    tenant_id             bigint                                                                                                                                                                                                                                                                                                                         null comment '租户id',
    version               int                                                                                                                                                                                                                                                                                                                            null comment '版本',
    create_time           datetime                                                                                                                                                                                                                                                                                                                       null comment '创建时间',
    update_time           datetime                                                                                                                                                                                                                                                                                                                       null comment '修改时间',
    create_id             bigint                                                                                                                                                                                                                                                                                                                         null comment '创建人id',
    update_id             bigint                                                                                                                                                                                                                                                                                                                         null comment '修改人id',
    env                   varchar(50)                                                                                                                                                                                                                                                                                                                    null comment '环境',
    project_node          varchar(600) default '[{"type":"RISK_ANALYSIS","state":1},{"type":"BUSINESS_CONTRACT","state":1},{"type":"PROJECT_GROUP","state":1},{"type":"SITE_SURVEY","state":1},{"type":"REPORT_PREPARATION","state":1},{"type":"INTERNAL_REVIEW","state":1},{"type":"TECHNICAL_REVIEW","state":1},{"type":"PROCESS_CONTROL","state":1}]' not null comment '项目节点完成进度',
    industry_code         varchar(64)                                                                                                                                                                                                                                                                                                                    null comment '所属行业编码(见 IndustryEnum)'
)
    comment '项目预警-归档后预警' charset = utf8mb4;

create index idx_project_id
    on eval_project_waring (project_id);

create index idx_waring_start_time
    on eval_project_waring (waring_start_time);

create table eval_report
(
    id                  bigint            not null comment '主键'
        primary key,
    org_id              bigint            not null comment '机构id',
    project_id          bigint            null comment '关联项目id(可空,历史报告)',
    customer_id         bigint            null comment '客户id',
    evaluated_unit_name varchar(200)      null comment '被评价单位名称',
    report_no           varchar(64)       null comment '报告编号',
    report_name         varchar(200)      not null comment '报告名称',
    report_year         int               null comment '报告年度',
    eval_type_code      varchar(32)       null comment '评价类型编码',
    eval_type_name      varchar(50)       null comment '评价类型名称',
    industry_code       varchar(32)       null comment '所属行业编码',
    industry_name       varchar(50)       null comment '所属行业名称(危化/矿山/冶炼/工贸等)',
    business_scope      varchar(500)      null comment '业务范围',
    file_url            varchar(500)      null comment '主文件地址',
    file_name           varchar(200)      null comment '主文件名',
    public_flag         tinyint default 2 null comment '是否公开(1是2否)',
    complete_flag       tinyint           null comment '资料是否完整(1是2否)',
    submit_flag         tinyint default 2 null comment '是否已报送监管(1是2否)',
    report_status_code  int               null comment '报告状态编码(1已入库2抽查中3待整改4已复核)',
    report_status_name  varchar(50)       null comment '报告状态名称',
    archive_time        datetime          null comment '入库时间',
    issue_date          date              null comment '报告签发日期',
    page_count          int               null comment '报告页数',
    secret_level_code   varchar(32)       null comment '保密属性编码(NORMAL/TRADE_SECRET/PRIVACY/CLASSIFIED)',
    secret_level_name   varchar(50)       null comment '保密属性名称',
    delete_enum         varchar(32)       null comment '删除标识true false',
    remarks             varchar(255)      null comment '备注',
    create_name         varchar(50)       null comment '创建人姓名',
    update_name         varchar(50)       null comment '更新人姓名',
    tenant_id           bigint            null comment '租户id',
    version             int               null comment '版本',
    create_time         datetime          null comment '创建时间',
    update_time         datetime          null comment '修改时间',
    create_id           bigint            null comment '创建人id',
    update_id           bigint            null comment '修改人id',
    env                 varchar(50)       null comment '环境'
)
    comment '安评报告库主表' charset = utf8mb4;

create index idx_eval_report_no
    on eval_report (report_no);

create index idx_eval_report_org
    on eval_report (org_id);

create index idx_eval_report_project
    on eval_report (project_id);

create index idx_eval_report_year
    on eval_report (report_year);

create table eval_report_draft
(
    id               bigint        not null comment '主键'
        primary key,
    org_id           bigint        not null comment '机构id',
    project_id       bigint        not null comment '项目id',
    draft_version_no int default 1 null comment '稿件版本号',
    template_code    varchar(64)   null comment '模板编码',
    template_name    varchar(100)  null comment '模板名称',
    content_url      varchar(500)  null comment '报告正文存储地址',
    hint_content     varchar(2000) null comment '编写提示摘要',
    status_code      int           null comment '状态编码(1编辑中2已提交)',
    status_name      varchar(50)   null comment '状态名称',
    delete_enum      varchar(32)   null comment '删除标识true false',
    remarks          varchar(255)  null comment '备注',
    create_name      varchar(50)   null comment '创建人姓名',
    update_name      varchar(50)   null comment '更新人姓名',
    tenant_id        bigint        null comment '租户id',
    version          int           null comment '版本',
    create_time      datetime      null comment '创建时间',
    update_time      datetime      null comment '修改时间',
    create_id        bigint        null comment '创建人id',
    update_id        bigint        null comment '修改人id',
    env              varchar(50)   null comment '环境'
)
    comment '05报告编制稿表' charset = utf8mb4;

create index idx_eval_report_draft_pid
    on eval_report_draft (project_id);

create table eval_report_spotcheck
(
    id                 bigint        not null comment '主键'
        primary key,
    org_id             bigint        not null comment '机构id',
    report_id          bigint        not null comment '报告id',
    check_result_code  int           null comment '抽查结果编码(1合格2不合格)',
    check_result_name  varchar(50)   null comment '抽查结果名称',
    check_opinion      varchar(2000) null comment '抽查意见',
    rectify_require    varchar(2000) null comment '整改要求',
    rectify_feedback   varchar(2000) null comment '整改反馈',
    review_result_code int           null comment '复核结果编码(1通过2不通过)',
    review_result_name varchar(50)   null comment '复核结果名称',
    checker_id         bigint        null comment '抽查人账号id',
    checker_name       varchar(50)   null comment '抽查人姓名',
    check_time         datetime      null comment '抽查时间',
    delete_enum        varchar(32)   null comment '删除标识true false',
    remarks            varchar(255)  null comment '备注',
    create_name        varchar(50)   null comment '创建人姓名',
    update_name        varchar(50)   null comment '更新人姓名',
    tenant_id          bigint        null comment '租户id',
    version            int           null comment '版本',
    create_time        datetime      null comment '创建时间',
    update_time        datetime      null comment '修改时间',
    create_id          bigint        null comment '创建人id',
    update_id          bigint        null comment '修改人id',
    env                varchar(50)   null comment '环境'
)
    comment '安评报告抽查表' charset = utf8mb4;

create index idx_eval_report_spotcheck_rid
    on eval_report_spotcheck (report_id);

create table eval_review_item
(
    id                    bigint                       not null
        primary key,
    biz_type              varchar(64)                  not null comment '业务类型 ： 内审->eval_internal_review ; 技审->eval_tech_review;过程控制 eval_process_control',
    biz_id                bigint                       not null comment '业务id',
    review_dimension_code varchar(128)                 null comment '审核维度code',
    review_dimension_name varchar(256)                 null comment '审核维度 名称',
    review_focus          varchar(512)                 null comment '审核重点',
    review_conclusion     varchar(64) default '0'      not null comment '结论 ,conform_to 符合，not_conform_to 不符合',
    review_opinion        varchar(1024)                null comment '审核意见',
    org_id                bigint                       not null comment '机构id',
    delete_enum           varchar(32) charset utf8mb4  null comment '删除标识true false',
    remarks               varchar(255) charset utf8mb4 null comment '备注',
    create_name           varchar(50) charset utf8mb4  null comment '创建人姓名',
    update_name           varchar(50) charset utf8mb4  null comment '更新人姓名',
    tenant_id             bigint                       null comment '租户id',
    version               int                          null comment '版本',
    create_time           datetime                     null comment '创建时间',
    update_time           datetime                     null comment '修改时间',
    create_id             bigint                       null comment '创建人id',
    update_id             bigint                       null comment '修改人id',
    env                   varchar(50) charset utf8mb4  null comment '环境'
)
    comment '审核项表信息';

create index idx_biz_id
    on eval_review_item (biz_id);

create table eval_risk_analysis
(
    id                 bigint        not null comment '主键'
        primary key,
    org_id             bigint        not null comment '机构id',
    project_id         bigint        not null comment '项目id',
    analysis_date      date          null comment '风险分析时间',
    controlled_no      varchar(64)   null comment '受控编号',
    project_name       varchar(200)  null comment '评价项目名称',
    eval_type_code     varchar(32)   null comment '评价类别编码(PRE/ACCEPT/STATUS)',
    industry_name      varchar(100)  null comment '所属行业(手填)',
    eval_scope         varchar(1000) null comment '评价范围',
    in_biz_scope_flag  tinyint       null comment '是否在资质业务范围内(1是2否)',
    unit_overview      varchar(2000) null comment '被评价单位基本概况',
    industry_risk_desc varchar(2000) null comment '项目行业风险特性分析',
    staff_match_code   int           null comment '人员专业构成是否满足(1满足2不满足)',
    need_expert_code   int           null comment '是否需要聘请专家(1需要2不需要)',
    expert_specialty   varchar(200)  null comment '需要专业(手填)',
    capability_code    int           null comment '是否有能力承担评价风险(1是2否)',
    capability_remark  varchar(500)  null comment '能力备注',
    feasible_code      int           null comment '项目可行性(1可行2不可行)',
    feasible_remark    varchar(500)  null comment '可行性备注',
    economic_code      int           null comment '经济性(1有经济效益2无经济效益)',
    risk_level_code    int           null comment '风险程度(1低度2中度3高度)',
    sign_contract_code int           null comment '合同签订结论(1签合同2不签合同)',
    status_code        int           null comment '节点状态(1暂存2已完成)',
    delete_enum        varchar(32)   null comment '删除标识true false',
    remarks            varchar(255)  null comment '备注',
    create_name        varchar(50)   null comment '创建人姓名',
    update_name        varchar(50)   null comment '更新人姓名',
    tenant_id          bigint        null comment '租户id',
    version            int           null comment '版本',
    create_time        datetime      null comment '创建时间',
    update_time        datetime      null comment '修改时间',
    create_id          bigint        null comment '创建人id',
    update_id          bigint        null comment '修改人id',
    env                varchar(50)   null comment '环境',
    risk_file_url      text          null comment '风险分析附件',
    constraint uk_eval_risk_project
        unique (project_id)
)
    comment '01风险分析记录表' charset = utf8mb4;

create index idx_eval_risk_org
    on eval_risk_analysis (org_id);

create table eval_risk_participant
(
    id               bigint        not null comment '主键'
        primary key,
    risk_id          bigint        not null comment '风险分析id(eval_risk_analysis.id)',
    project_id       bigint        not null comment '项目id',
    personnel_id     bigint        null comment '人员id',
    personnel_name   varchar(50)   null comment '人员姓名',
    dept_name        varchar(100)  null comment '部门/岗位',
    opinion          varchar(500)  null comment '分析意见',
    sign_status_code int           null comment '签字状态(1待签2已签)',
    sign_file_url    varchar(500)  null comment '签字图片地址',
    sort_order       int default 0 null comment '排序'
)
    comment '01风险分析参与人表' charset = utf8mb4;

create index idx_eval_risk_part_pid
    on eval_risk_participant (project_id);

create index idx_eval_risk_part_rid
    on eval_risk_participant (risk_id);

create table eval_sign_task
(
    id                  bigint        not null comment '主键'
        primary key,
    org_id              bigint        not null comment '机构id',
    project_id          bigint        not null comment '项目id',
    node_code           varchar(32)   null comment '所属节点编码',
    biz_ref_id          bigint        null comment '业务单据id',
    signer_personnel_id bigint        null comment '待签人员id',
    task_title          varchar(200)  null comment '签字任务标题',
    task_status_code    int default 1 null comment '任务状态(1待签2已签3已作废)',
    issue_time          datetime      null comment '下发时间',
    signer_url          varchar(200)  null comment '签字图片',
    delete_enum         varchar(32)   null comment '删除标识true false',
    remarks             varchar(255)  null comment '备注',
    create_name         varchar(50)   null comment '创建人姓名',
    update_name         varchar(50)   null comment '更新人姓名',
    tenant_id           bigint        null comment '租户id',
    version             int           null comment '版本',
    create_time         datetime      null comment '创建时间',
    update_time         datetime      null comment '修改时间',
    create_id           bigint        null comment '创建人id',
    update_id           bigint        null comment '修改人id',
    env                 varchar(50)   null comment '环境'
)
    comment '项目签字表' charset = utf8mb4;

create index idx_eval_sign_task_pid
    on eval_sign_task (project_id);

create index idx_eval_sign_task_signer
    on eval_sign_task (signer_personnel_id);

create table eval_survey
(
    id             bigint        not null comment '主键'
        primary key,
    org_id         bigint        not null comment '机构id',
    project_id     bigint        not null comment '项目id',
    personnel_id   bigint        not null comment '人员id(逻辑关联org_personnel.id)',
    personnel_name varchar(50)   null comment '人员姓名',
    dept_name      varchar(32)   null comment '部门名称',
    pos_name       varchar(32)   null comment '岗位',
    capacity       varchar(200)  null comment '人员能力',
    role           text          null comment '角色(数组[1,2])',
    face_state     int default 0 not null comment '人脸识别, 0-未通过, 1-通过',
    gps_state      int default 0 not null comment 'gps定位, 0-未通过, 1-通过',
    sing_in_time   datetime      null comment '签到时间',
    sign_out_time  datetime      null comment '签退时间',
    scene_url      varchar(1000) null comment '现场图片',
    signature_url  varchar(1000) null comment '签字图片',
    delete_enum    varchar(32)   null comment '删除标识true false',
    remarks        varchar(255)  null comment '备注',
    create_name    varchar(50)   null comment '创建人姓名',
    update_name    varchar(50)   null comment '更新人姓名',
    tenant_id      bigint        null comment '租户id',
    version        int           null comment '版本',
    create_time    datetime      null comment '创建时间',
    update_time    datetime      null comment '修改时间',
    create_id      bigint        null comment '创建人id',
    update_id      bigint        null comment '修改人id',
    env            varchar(50)   null comment '环境'
)
    comment '现场踏勘主表' charset = utf8mb4;

create index idx_eval_survey_org
    on eval_survey (org_id);

create index idx_project_id
    on eval_survey (project_id);

create table eval_survey_attach
(
    id               bigint       not null comment '主键'
        primary key,
    project_id       bigint       not null comment '项目id',
    attach_type_code varchar(32)  not null comment '附件类型(从业告知,整改通知,企业整改,整改复查,现场检查表)',
    file_url         varchar(500) not null comment '文件地址'
)
    comment '踏勘附件表' charset = utf8mb4;

create index idx_project_id
    on eval_survey_attach (project_id);

create table eval_team
(
    id                   bigint       not null comment '主键'
        primary key,
    org_id               bigint       not null comment '机构id',
    project_id           bigint       not null comment '项目id',
    leader_personnel_id  bigint       null comment '项目负责人人员id',
    leader_name          varchar(50)  null comment '项目负责人姓名',
    control_personnel_id bigint       null comment '过程控制负责人人员id',
    control_name         varchar(50)  null comment '过程控制负责人姓名',
    member_count         int          null comment '成员人数',
    status_code          int          null comment '节点状态(1未开始2进行中3已完成4退回)',
    status_name          varchar(50)  null comment '节点状态名称',
    finish_time          datetime     null comment '成立完成时间',
    delete_enum          varchar(32)  null comment '删除标识true false',
    remarks              varchar(255) null comment '备注',
    create_name          varchar(50)  null comment '创建人姓名',
    update_name          varchar(50)  null comment '更新人姓名',
    tenant_id            bigint       null comment '租户id',
    version              int          null comment '版本',
    create_time          datetime     null comment '创建时间',
    update_time          datetime     null comment '修改时间',
    create_id            bigint       null comment '创建人id',
    update_id            bigint       null comment '修改人id',
    env                  varchar(50)  null comment '环境',
    constraint uk_eval_team_project
        unique (project_id)
)
    comment '03项目组成立表' charset = utf8mb4;

create index idx_eval_team_org
    on eval_team (org_id);

create table eval_tech_review
(
    id                             bigint                               not null comment '主键'
        primary key,
    org_id                         bigint                               not null comment '机构id',
    project_id                     bigint                               not null comment '项目id',
    draft_id                       bigint                               null comment '关联报告稿id',
    reviewer_personnel_id          bigint                               null comment '技审人人员id',
    reviewer_name                  varchar(50)                          null comment '技审人姓名',
    reviewer_signature_url         varchar(512)                         null comment '技审人独立签字',
    reviewer_signature_task_status varchar(64) default 'non_dispatched' not null comment '审核签字任务状态 dispatched 下发，non_dispatched 未下发，completed 已完成',
    result_code                    varchar(64)                          null comment '审核结果 passed 通过，not_passed 未通过',
    result_name                    varchar(50)                          null comment '审核结果名称',
    opinion_content                varchar(2000)                        null comment '审核意见',
    review_time                    datetime                             null comment '审核时间',
    status_code                    int                                  null comment '节点状态(1未开始2进行中3已完成4退回)',
    status_name                    varchar(50)                          null comment '节点状态名称',
    delete_enum                    varchar(32)                          null comment '删除标识true false',
    remarks                        varchar(255)                         null comment '备注',
    create_name                    varchar(50)                          null comment '创建人姓名',
    update_name                    varchar(50)                          null comment '更新人姓名',
    tenant_id                      bigint                               null comment '租户id',
    version                        int                                  null comment '版本',
    create_time                    datetime                             null comment '创建时间',
    update_time                    datetime                             null comment '修改时间',
    create_id                      bigint                               null comment '创建人id',
    update_id                      bigint                               null comment '修改人id',
    env                            varchar(50)                          null comment '环境',
    constraint uk_eval_tech_project
        unique (project_id)
)
    comment '07技术审核表' charset = utf8mb4;

create index idx_eval_tech_org
    on eval_tech_review (org_id);

create table filestorage
(
    id                int auto_increment comment '主键ID'
        primary key,
    url               varchar(1024)                      not null comment 'OSS文件完整访问URL',
    base_path         varchar(512)                       null comment 'OSS存储根路径 (如 jjb)',
    path              varchar(512)                       null comment 'OSS存储相对路径 (不含basePath)',
    filename          varchar(512)                       null comment 'OSS存储文件名 (uuid生成)',
    original_filename varchar(512)                       null comment '文件原始名称',
    size              bigint   default 0                 null comment '文件大小（字节）',
    ext               varchar(64)                        null comment '文件扩展名（不含.）',
    content_type      varchar(128)                       null comment '文件MIME类型',
    platform          varchar(64)                        null comment 'OSS平台标识 (如 aliyun-oss)',
    md5               varchar(64)                        null comment 'Content-MD5或文件MD5值',
    creator_name      varchar(128)                       null comment '上传者姓名',
    creator_uid       varchar(128)                       null comment '上传者UID',
    created_time      datetime default CURRENT_TIMESTAMP null comment '上传时间'
)
    comment '文件存储本地管理表' collate = utf8mb4_unicode_ci
                                 row_format = DYNAMIC;

create index idx_created_time
    on filestorage (created_time);

create index idx_creator_uid
    on filestorage (creator_uid);

create index idx_filename
    on filestorage (filename);

create index idx_platform
    on filestorage (platform);

create table gen_table
(
    table_id          bigint auto_increment comment '编号'
        primary key,
    table_name        varchar(200) default ''     null comment '表名称',
    table_comment     varchar(500) default ''     null comment '表描述',
    class_name        varchar(100) default ''     null comment '实体类名称',
    tpl_category      varchar(200) default 'crud' null comment '使用的模板（crud单表操作 tree树表操作）',
    package_name      varchar(100)                null comment '生成包路径',
    module_name       varchar(30)                 null comment '生成模块名',
    business_name     varchar(30)                 null comment '生成业务名',
    function_name     varchar(50)                 null comment '生成功能名',
    function_author   varchar(50)                 null comment '生成功能作者',
    gen_type          char         default '0'    null comment '生成代码方式（0zip压缩包 1自定义路径）',
    gen_path          varchar(200) default '/'    null comment '生成路径（不填默认项目路径）',
    options           varchar(1000)               null comment '其它生成选项',
    update_time       datetime                    null comment '修改时间',
    create_time       datetime                    null comment '创建时间',
    create_by         varchar(50)                 null comment '创建人ID',
    update_by         varchar(50)                 null comment '修改人ID',
    remark            varchar(100)                null comment '描述',
    sub_table_name    varchar(100)                null,
    sub_table_fk_name varchar(100)                null,
    env               varchar(32)                 null
)
    comment '代码生成业务表' collate = utf8mb4_unicode_ci
                             row_format = DYNAMIC;

create table gen_table_column
(
    column_id      bigint auto_increment comment '编号'
        primary key,
    table_id       varchar(64)               null comment '归属表编号',
    column_name    varchar(200)              null comment '列名称',
    column_comment varchar(500)              null comment '列描述',
    java_field     varchar(200)              null comment 'JAVA字段名',
    java_type      varchar(500)              null comment 'JAVA类型',
    is_repetition  char                      null comment '是否排重(1是)',
    is_required    char                      null comment '是否必填（1是）',
    is_enum        char                      null comment '是否枚举（1是，2BooleanEnum）',
    enum_info      varchar(1024)             null comment '枚举，规则
{
	"type": "枚举类型，对应字典类型",
              "class":"枚举类名",
	"data": [{
		"code": "xxx，对应字典值",
		"info": "xxxx，对应字典值描述"
	}, {
		"code": "xxx",
		"info": "xxx"
	}],
	"info": "枚举描述，对应字典类型描述"
}',
    is_insert      char                      null comment '是否为插入字段（1是）',
    is_list        char                      null comment '是否列表字段（1是）',
    is_edit        char                      null comment '是否编辑字段（1是）',
    is_query       char                      null comment '是否查询字段（1是）',
    query_type     varchar(200) default 'EQ' null comment '查询方式
EQ
NE
GT
LT
LIKE
LIKELEFT
BETWEEN',
    max_size       int                       null comment '字符最大长度',
    column_min     int                       null comment '最小值',
    column_max     int                       null comment '最大值',
    column_fixed   int                       null comment '保留位数（1:1位 2:2位 0：整数）',
    column_type    varchar(100)              null comment '列类型',
    is_pk          char                      null comment '是否主键（1是）',
    is_increment   char                      null comment '是否自增（1是）',
    html_type      varchar(200)              null comment '显示类型（文本框、文本域、下拉框、复选框、单选框、日期控件）',
    dict_type      varchar(200) default ''   null comment '字典类型',
    sort           int                       null comment '排序',
    delete_enum    char                      null comment '是否删除1:是 0:否',
    update_time    datetime                  null comment '修改时间',
    create_time    datetime                  null comment '创建时间',
    create_by      bigint                    null comment '创建人ID',
    update_by      bigint                    null comment '修改人ID',
    remark         varchar(255)              null comment '描述',
    version        int                       null comment '乐观锁',
    env            varchar(32)               null
)
    comment '代码生成业务表字段' collate = utf8mb4_unicode_ci
                                 row_format = DYNAMIC;

create table industry_professional_standards
(
    id                           bigint                       not null
        primary key,
    industry_code                varchar(64)                  not null comment '行业code',
    professional_capability_code varchar(64)                  not null comment '专业能力 code',
    professional_capability_name varchar(128)                 null comment '专业能力名称',
    person_num                   int default 0                not null comment '人员数量要求',
    delete_enum                  varchar(32) charset utf8mb4  null comment '删除标识true false',
    remarks                      varchar(255) charset utf8mb4 null comment '备注',
    create_name                  varchar(50) charset utf8mb4  null comment '创建人姓名',
    update_name                  varchar(50) charset utf8mb4  null comment '更新人姓名',
    tenant_id                    bigint                       null comment '租户id',
    org_id                       bigint                       null comment '机构id',
    version                      int                          null comment '版本',
    create_time                  datetime                     null comment '创建时间',
    update_time                  datetime                     null comment '修改时间',
    create_id                    bigint                       null comment '创建人id',
    update_id                    bigint                       null comment '修改人id',
    env                          varchar(50) charset utf8mb4  null comment '环境'
)
    comment '安全评价机构业务范围与专业能力配备标准';

create table insp_notice
(
    id                   bigint            not null comment '主键'
        primary key,
    org_id               bigint            not null comment '被检机构id',
    notice_no            varchar(64)       not null comment '告知编号',
    insp_type_code       varchar(32)       null comment '检查类型编码',
    insp_type_name       varchar(50)       null comment '检查类型名称',
    source_type_code     int               null comment '来源方式编码(1年度计划2专项安排3其他4风险预警)',
    source_type_name     varchar(50)       null comment '来源方式名称',
    source_ref_id        bigint            null comment '来源业务id(可选)',
    source_ref_no        varchar(64)       null comment '来源预警/业务编号(如W-PROJ-2026-009)',
    project_id           bigint            null comment '关联项目id',
    plan_insp_time       datetime          null comment '计划检查时间',
    leader_name          varchar(50)       null comment '检查组长',
    notice_content       varchar(2000)     null comment '告知内容',
    notice_urls          varchar(2000)     null comment '告知附件URL，逗号分隔',
    status_code          int               null comment '状态编码(0待下发1已下发2已确认3已反馈4已办结)',
    status_name          varchar(50)       null comment '状态名称',
    confirm_flag         tinyint default 2 null comment '机构是否确认(1是2否)',
    confirm_time         datetime          null comment '确认时间',
    send_time            datetime          null comment '下发时间',
    result_code          int               null comment '检查结果编码(1未发现问题/合格2责令整改/不合格3转入风险预警/限期整改)',
    result_name          varchar(50)       null comment '检查结果名称',
    result_content       varchar(2000)     null comment '结果说明',
    result_urls          varchar(2000)     null comment '结果附件',
    result_recorder_id   bigint            null comment '结果登记人账号id',
    result_recorder_name varchar(50)       null comment '结果登记人姓名',
    result_time          datetime          null comment '结果登记时间',
    delete_enum          varchar(32)       null comment '删除标识true false',
    remarks              varchar(255)      null comment '备注',
    create_name          varchar(50)       null comment '创建人姓名',
    update_name          varchar(50)       null comment '更新人姓名',
    tenant_id            bigint            null comment '租户id',
    version              int               null comment '版本',
    create_time          datetime          null comment '创建时间',
    update_time          datetime          null comment '修改时间',
    create_id            bigint            null comment '创建人id',
    update_id            bigint            null comment '修改人id',
    env                  varchar(50)       null comment '环境',
    constraint uk_insp_notice_no
        unique (notice_no)
)
    comment '监督检查告知表' charset = utf8mb4;

create index idx_insp_notice_org
    on insp_notice (org_id);

create index idx_insp_notice_source
    on insp_notice (source_ref_id);

create index idx_insp_notice_status
    on insp_notice (status_code);

create table insp_notice_material
(
    id                 bigint            not null comment '主键'
        primary key,
    org_id             bigint            not null comment '机构id',
    notice_id          bigint            not null comment '告知id',
    material_name      varchar(200)      null comment '材料名称',
    required_flag      tinyint default 1 null comment '是否必需(1是2否)',
    upload_status_code int               null comment '上传状态编码(1待上传2已上传)',
    upload_status_name varchar(50)       null comment '上传状态名称',
    file_url           varchar(500)      null comment '反馈文件地址',
    delete_enum        varchar(32)       null comment '删除标识true false',
    remarks            varchar(255)      null comment '备注',
    create_name        varchar(50)       null comment '创建人姓名',
    update_name        varchar(50)       null comment '更新人姓名',
    tenant_id          bigint            null comment '租户id',
    version            int               null comment '版本',
    create_time        datetime          null comment '创建时间',
    update_time        datetime          null comment '修改时间',
    create_id          bigint            null comment '创建人id',
    update_id          bigint            null comment '修改人id',
    env                varchar(50)       null comment '环境'
)
    comment '监督检查材料反馈表' charset = utf8mb4;

create index idx_insp_notice_material_nid
    on insp_notice_material (notice_id);

create table new_flyway_schema_history
(
    installed_rank int                                 not null
        primary key,
    version        varchar(50)                         null,
    description    varchar(200)                        not null,
    type           varchar(20)                         not null,
    script         varchar(1000)                       not null,
    checksum       int                                 null,
    installed_by   varchar(100)                        not null,
    installed_on   timestamp default CURRENT_TIMESTAMP not null,
    execution_time int                                 not null,
    success        tinyint(1)                          not null
);

create index new_flyway_schema_history_s_idx
    on new_flyway_schema_history (success);

create table org_business_scope_device_ref
(
    id               bigint                       not null
        primary key,
    industry_code    varchar(64)                  not null comment '行业code ("COAL_MINING", "煤炭开采业"),   ("METAL_NONMETAL_MINING", "金属、非金属矿及其他矿采选业"),("ONSHORE_OIL_GAS", "陆地石油和天然气开采业"),("ONSHORE_OIL_GAS_PIPELINE", "陆上油气管道运输业"),("PETROCHEMICAL_CHEMICAL_PHARMACEUTICAL", "石油加工业，化学原料、化学品及医药制造业"),("FIREWORKS_FIRECRACKERS", "烟花爆竹制造业"),("METAL_SMELTING", "金属冶炼");',
    device_type_code varchar(32)                  null comment '设备类型code',
    device_type_name varchar(200)                 null comment '设备类型名称',
    delete_enum      varchar(32) charset utf8mb4  null comment '删除标识true false',
    remarks          varchar(255) charset utf8mb4 null comment '备注',
    create_name      varchar(50) charset utf8mb4  null comment '创建人姓名',
    update_name      varchar(50) charset utf8mb4  null comment '更新人姓名',
    tenant_id        bigint                       null comment '租户id',
    org_id           bigint                       null comment '机构id',
    version          int                          null comment '版本',
    create_time      datetime                     null comment '创建时间',
    update_time      datetime                     null comment '修改时间',
    create_id        bigint                       null comment '创建人id',
    update_id        bigint                       null comment '修改人id',
    env              varchar(50) charset utf8mb4  null comment '环境'
)
    comment '安全评价机构业务范围与设备参照表';

create table org_department
(
    id              bigint           not null comment '主键'
        primary key,
    org_id          bigint           not null comment '机构id',
    parent_id       bigint default 0 null comment '上级部门id，0为根',
    dept_name       varchar(100)     not null comment '部门名称',
    manager_name    varchar(50)      null comment '负责人姓名',
    manager_account varchar(50)      null comment '负责人账号',
    dept_level_code varchar(32)      null comment '部门级别编码',
    dept_level_name varchar(50)      null comment '部门级别名称',
    delete_enum     varchar(32)      null comment '删除标识true false',
    remarks         varchar(255)     null comment '备注',
    create_name     varchar(50)      null comment '创建人姓名',
    update_name     varchar(50)      null comment '更新人姓名',
    tenant_id       bigint           null comment '租户id',
    version         int              null comment '版本',
    create_time     datetime         null comment '创建时间',
    update_time     datetime         null comment '修改时间',
    create_id       bigint           null comment '创建人id',
    update_id       bigint           null comment '修改人id',
    env             varchar(50)      null comment '环境'
)
    comment '部门表' charset = utf8mb4
                     row_format = DYNAMIC;

create index idx_org_department_org_id
    on org_department (org_id);

create index idx_org_department_parent_id
    on org_department (parent_id);

create table org_equipment
(
    id                          bigint            not null comment '主键'
        primary key,
    org_id                      bigint            not null comment '机构id',
    device_name                 varchar(200)      not null comment '设备名称',
    device_model                varchar(100)      null comment '设备型号',
    industry_code               varchar(32)       null comment '行业code',
    instrument_type_name        varchar(50)       null comment '仪器类型名称',
    device_type_code            varchar(32)       null comment '设备类型编码',
    device_type_name            varchar(50)       null comment '设备类型名称',
    manufacturer                varchar(200)      null comment '厂家',
    flow_desc                   varchar(500)      null comment '设备流量说明',
    min_flow                    decimal(12, 4)    null comment '最小流量',
    max_flow                    decimal(12, 4)    null comment '最大流量',
    calibration_unit            varchar(200)      null comment '校准单位',
    calibration_init_value      varchar(100)      null comment '校准初始值',
    field_calibration_type_code varchar(32)       null comment '现场校验类型编码',
    field_calibration_type_name varchar(50)       null comment '现场校验类型名称',
    dual_channel_flag           tinyint default 2 null comment '是否双路(1是2否)',
    enable_flag                 tinyint default 1 null comment '设备状态(1启用2禁用)',
    delete_enum                 varchar(32)       null comment '删除标识true false',
    remarks                     varchar(255)      null comment '备注',
    create_name                 varchar(50)       null comment '创建人姓名',
    update_name                 varchar(50)       null comment '更新人姓名',
    tenant_id                   bigint            null comment '租户id',
    version                     int               null comment '版本',
    create_time                 datetime          null comment '创建时间',
    update_time                 datetime          null comment '修改时间',
    create_id                   bigint            null comment '创建人id',
    update_id                   bigint            null comment '修改人id',
    env                         varchar(50)       null comment '环境'
)
    comment '装备信息表' charset = utf8mb4
                         row_format = DYNAMIC;

create index idx_org_equipment_device_name
    on org_equipment (device_name);

create index idx_org_equipment_org_id
    on org_equipment (org_id);

create table org_info
(
    id                            bigint                         not null comment '主键'
        primary key,
    unit_name                     varchar(200)                   not null comment '生产经营单位名称',
    credit_code                   varchar(18)                    not null comment '统一社会信用代码',
    safety_industry_category_code varchar(32)                    null comment '安全生产监管行业类别编码',
    safety_industry_category_name varchar(50)                    null comment '安全生产监管行业类别名称',
    district_code                 varchar(32)                    null comment '所属县区编码',
    district_name                 varchar(50)                    null comment '所属县区名称',
    town_street                   varchar(200)                   null comment '所属镇街道',
    village_community             varchar(200)                   null comment '属村社区',
    longitude                     decimal(10, 6)                 null comment '经度',
    latitude                      decimal(10, 6)                 null comment '纬度',
    register_address              varchar(500)                   null comment '注册地址',
    business_address              varchar(500)                   null comment '经营地址',
    ownership_type_code           varchar(32)                    null comment '归属类型编码',
    ownership_type_name           varchar(50)                    null comment '归属类型名称',
    legal_representative          varchar(50)                    null comment '法定代表人',
    legal_representative_phone    varchar(20)                    null comment '法定代表人联系电话',
    principal_name                varchar(50)                    null comment '主要负责人',
    principal_phone               varchar(20)                    null comment '主要负责人联系电话',
    safety_dept_manager           varchar(50)                    null comment '安全管理部门负责人',
    safety_dept_manager_phone     varchar(20)                    null comment '安全管理部门负责人联系电话',
    safety_deputy_phone           varchar(20)                    null comment '主管安全副总联系电话',
    production_date               date                           null comment '投产日期',
    business_status_code          int                            null comment '企业经营状态编码',
    business_status_name          varchar(50)                    null comment '企业经营状态名称',
    info_disclosure_url           varchar(500)                   null comment '信息公开网址',
    workplace_area                decimal(12, 2)                 null comment '工作场所建筑面积(平方米)',
    archive_room_area             decimal(12, 2)                 null comment '档案室面积(平方米)',
    fulltime_evaluator_count      int                            null comment '专职安全评价师数量',
    registered_engineer_count     int                            null comment '注册安全工程师数量',
    economy_industry_code         varchar(32)                    null comment '国民经济行业分类编码',
    economy_industry_name         varchar(100)                   null comment '国民经济行业分类名称',
    auth_status_code              int                            null comment '认证状态编码(1填写信息2审核中3通过)',
    auth_status_name              varchar(50)                    null comment '认证状态名称',
    enterprise_status_code        int                            null comment '企业状态编码(1正常2停业3注销)',
    enterprise_status_name        varchar(50)                    null comment '企业状态名称',
    enterprise_scale_code         varchar(32)                    null comment '企业规模编码',
    enterprise_scale_name         varchar(50)                    null comment '企业规模名称(大/中/小/微型)',
    filing_type_code              varchar(32) default '2'        null comment '备案类型编码(1审核备案2确认备案)',
    filing_type_name              varchar(50) default '确认备案' null comment '备案类型名称(审核备案/确认备案)',
    filing_record_status_code     int         default 2          null comment '备案状态编码(1已备案2未备案)',
    filing_record_status_name     varchar(50) default '未备案'   null comment '备案状态名称',
    attachment_urls               text                           null comment '上传附件地址(多个逗号分隔)',
    state                         int         default 0          null comment '状态(0启用1禁用)',
    delete_enum                   varchar(32)                    null comment '删除标识true false',
    remarks                       varchar(255)                   null comment '备注',
    create_name                   varchar(50)                    null comment '创建人姓名',
    update_name                   varchar(50)                    null comment '更新人姓名',
    tenant_id                     bigint                         null comment '租户id',
    org_id                        bigint                         null comment '单位id',
    version                       int                            null comment '版本',
    create_time                   datetime                       null comment '创建时间',
    update_time                   datetime                       null comment '修改时间',
    create_id                     bigint                         null comment '创建人id',
    update_id                     bigint                         null comment '修改人id',
    env                           varchar(50)                    null comment '环境'
)
    comment '机构信息表' charset = utf8mb4
                         row_format = DYNAMIC;

create index idx_org_info_auth_status
    on org_info (auth_status_code);

create index idx_org_info_credit_code
    on org_info (credit_code);

create index idx_org_info_state
    on org_info (state);

create index idx_org_info_tenant_id
    on org_info (tenant_id);

-- =====================================================================
-- 2026-08-08 变更说明（安全评价在线服务监管平台原型 V1.6 register.html）
-- 变更原因：认证信息填报页相对既有机构信息新增 6 个填报项。
-- 变更逻辑：在 org_info 表追加 6 个可空列，与 OrgInfoDO/Entity/Cmd/CO 字段对齐。
-- 变更理由：前后端字段 1:1 还原原型；列均设为可空，必填由前端校验保证（最小侵入，不破坏既有约束）。
-- 字段对照：
--   qualification_cert_no  -> 资质证书编号（原型非必填）
--   fax                    -> 传真
--   contact_name_phone     -> 联系人及电话
--   fixed_assets_total     -> 固定资产总值（万元，非负）
--   apply_business_scope   -> 拟申请的法定安全评价业务范围（多选，逗号分隔）
--   org_intro              -> 单位基本情况介绍（长文本）
-- =====================================================================
alter table org_info
    add column qualification_cert_no varchar(100) null comment '资质证书编号（2026-08-08 原型V1.6新增，非必填）',
    add column fax                   varchar(20)  null comment '传真（2026-08-08 原型V1.6新增）',
    add column contact_name_phone    varchar(100) null comment '联系人及电话（2026-08-08 原型V1.6新增）',
    add column fixed_assets_total    decimal(16, 4) null comment '固定资产总值（万元，非负，2026-08-08 原型V1.6新增）',
    add column apply_business_scope  varchar(500) null comment '拟申请的法定安全评价业务范围（多选逗号分隔，2026-08-08 原型V1.6新增）',
    add column org_intro             text         null comment '单位基本情况介绍（长文本，2026-08-08 原型V1.6新增）';

-- =====================================================================
-- 2026-08-08 变更说明（拆分"联系人及电话"为两个独立字段）
-- 变更原因：原 contact_name_phone 单字段合并存储"联系人+电话"，不便于检索/校验。
-- 变更逻辑：新增 contact_name（联系人）、contact_phone（联系电话）两列，
--           保留原 contact_name_phone 旧列不删除（兼容存量历史数据，由后端在写入时不再使用）。
-- 变更理由：与机构信息填报/展示拆成"联系人""联系电话"两个输入项保持一致。
-- 字段对照：
--   contact_name   -> 联系人
--   contact_phone  -> 联系电话
-- =====================================================================
alter table org_info
    add column contact_name  varchar(50)  null comment '联系人（2026-08-08 由 contact_name_phone 拆分新增）',
    add column contact_phone varchar(20)  null comment '联系电话（2026-08-08 由 contact_name_phone 拆分新增）';

-- 说明：历史数据中的 contact_name_phone 列保留不删除，避免既有数据丢失；
--       后续如需迁移可将 contact_name_phone 拆分为 contact_name/contact_phone 后再清理旧列。

create table org_personnel
(
    id                          bigint                         not null comment '主键'
        primary key,
    org_id                      bigint                         not null comment '机构id',
    dept_id                     bigint                         null comment '部门id',
    post_id                     bigint                         null comment '岗位id',
    user_name                   varchar(50)                    not null comment '用户名称/姓名',
    account                     varchar(50)                    not null comment '账号',
    gender_code                 tinyint                        null comment '性别编码',
    gender_name                 varchar(10)                    null comment '性别名称',
    birth_date                  date                           null comment '出生日期',
    id_card_no                  varchar(18)                    null comment '身份证号',
    current_address             varchar(500)                   null comment '现住地址',
    office_address              varchar(500)                   null comment '办公地址',
    education_code              varchar(32)                    null comment '学历编码',
    education_name              varchar(50)                    null comment '学历名称',
    graduate_school             varchar(200)                   null comment '毕业院校',
    major                       varchar(100)                   null comment '专业',
    basic_discipline_major_id   bigint                         null comment '学科基础专业对照表id',
    employment_status_code      int                            null comment '就职状态编码',
    employment_status_name      varchar(50)                    null comment '就职状态名称',
    person_type_code            varchar(32) default '1'        null comment '人员类型编码(1基础人员2专职评价师)',
    person_type_name            varchar(50) default '基础人员' null comment '人员类型名称',
    qual_scope                  varchar(500)                   null comment '资质范围',
    professional_level_code     varchar(32)                    null comment '职业等级编码',
    professional_level_name     varchar(200)                   null comment '职业等级名称',
    evaluator_cert_no           varchar(100)                   null comment '安全评价师证书编号',
    education_type_code         varchar(32)                    null comment '学历类型编码(全日制/在职教育)',
    education_type_name         varchar(50)                    null comment '学历类型名称',
    education_level_code        varchar(32)                    null comment '学历层次编码(专科/本科/硕士/博士)',
    education_level_name        varchar(50)                    null comment '学历层次名称',
    title_code                  varchar(50)                    null comment '职称',
    register_engineer_flag      tinyint     default 2          null comment '是否注册安全工程师(1是2否)',
    publications                varchar(1000)                  null comment '出版学术专著专利获奖论文等',
    ability_declaration         varchar(1000)                  null comment '自我申报的专业能力及认定方式',
    work_experience             text                           null comment '主要学习工作经历',
    proof_material_url          varchar(2000)                  null comment '申报专业能力证明材料(多个逗号分隔)',
    technical_director_flag     tinyint(1)  default 0          not null comment '是否技术负责人(0否1是)',
    process_control_leader_flag tinyint(1)  default 0          not null comment '是否过程控制负责人(0否1是)',
    join_work_date              date                           null comment '参加工作时间',
    delete_enum                 varchar(32)                    null comment '删除标识true false',
    remarks                     varchar(255)                   null comment '备注',
    create_name                 varchar(50)                    null comment '创建人姓名',
    update_name                 varchar(50)                    null comment '更新人姓名',
    tenant_id                   bigint                         null comment '租户id',
    version                     int                            null comment '版本',
    create_time                 datetime                       null comment '创建时间',
    update_time                 datetime                       null comment '修改时间',
    create_id                   bigint                         null comment '创建人id',
    update_id                   bigint                         null comment '修改人id',
    env                         varchar(50)                    null comment '环境',
    constraint uk_org_personnel_org_account
        unique (org_id, account)
)
    comment '人员信息表' charset = utf8mb4
                         row_format = DYNAMIC;

create index idx_org_personnel_account
    on org_personnel (account);

create index idx_org_personnel_dept_id
    on org_personnel (dept_id);

create index idx_org_personnel_org_id
    on org_personnel (org_id);

create index idx_org_personnel_post_id
    on org_personnel (post_id);

create table org_personnel_cert
(
    id                                 bigint       not null comment '主键'
        primary key,
    org_id                             bigint       not null comment '机构id',
    personnel_id                       bigint       not null comment '人员id',
    cert_name                          varchar(200) null comment '证照名称',
    cert_type_code                     varchar(32)  null comment '证书类型编码',
    cert_level                         varchar(50)  null comment '证书等级(CertLevelEnum:SENIOR高级/MIDDLE中级/JUNIOR初级)',
    cert_category_code                 varchar(32)  null comment '证书类别编码',
    cert_category_name                 varchar(50)  null comment '证书类别名称',
    operation_category_code            varchar(32)  null comment '证书作业类别编码',
    operation_category_name            varchar(50)  null comment '证书作业类别名称',
    cert_no                            varchar(100) null comment '证书编号',
    issue_org                          varchar(200) null comment '发证机关',
    valid_start_date                   date         null comment '证书有效开始日期',
    valid_end_date                     date         null comment '证书有效结束日期',
    review_date                        date         null comment '复核日期',
    cert_attachment_url                varchar(500) null comment '证书附件地址',
    business_scope                     varchar(500) null comment '备案安全评价业务范围',
    professional_capability_code       varchar(64)  null comment '专业能力编码',
    industry_professional_standards_id bigint       null comment '行业专业标准ID',
    delete_enum                        varchar(32)  null comment '删除标识true false',
    remarks                            varchar(255) null comment '备注',
    create_name                        varchar(50)  null comment '创建人姓名',
    update_name                        varchar(50)  null comment '更新人姓名',
    tenant_id                          bigint       null comment '租户id',
    version                            int          null comment '版本',
    create_time                        datetime     null comment '创建时间',
    update_time                        datetime     null comment '修改时间',
    create_id                          bigint       null comment '创建人id',
    update_id                          bigint       null comment '修改人id',
    env                                varchar(50)  null comment '环境'
)
    comment '人员证书表' charset = utf8mb4
                         row_format = DYNAMIC;

create index idx_org_personnel_cert_org_id
    on org_personnel_cert (org_id);

create index idx_org_personnel_cert_personnel_id
    on org_personnel_cert (personnel_id);

create table org_personnel_change
(
    id            bigint       not null comment '主键'
        primary key,
    org_id        bigint       not null comment '机构id',
    personnel_id  bigint       not null comment '人员id',
    change_item   varchar(200) not null comment '变更事项',
    change_time   datetime     not null comment '变更时间',
    operator_name varchar(50)  null comment '操作人',
    delete_enum   varchar(32)  null comment '删除标识true false',
    remarks       varchar(255) null comment '备注',
    create_name   varchar(50)  null comment '创建人姓名',
    update_name   varchar(50)  null comment '更新人姓名',
    tenant_id     bigint       null comment '租户id',
    version       int          null comment '版本',
    create_time   datetime     null comment '创建时间',
    update_time   datetime     null comment '修改时间',
    create_id     bigint       null comment '创建人id',
    update_id     bigint       null comment '修改人id',
    env           varchar(50)  null comment '环境'
)
    comment '人员变更记录表' charset = utf8mb4
                             row_format = DYNAMIC;

create index idx_org_personnel_change_org_id
    on org_personnel_change (org_id);

create index idx_org_personnel_change_personnel_id
    on org_personnel_change (personnel_id);

create table org_position
(
    id            bigint       not null comment '主键'
        primary key,
    org_id        bigint       not null comment '机构id',
    dept_id       bigint       not null comment '部门id',
    position_name varchar(100) not null comment '岗位名称',
    duty_desc     varchar(500) null comment '岗位职责',
    gbs_role_id   bigint       null comment '关联GBS角色ID',
    gbs_role_code varchar(64)  null comment '关联GBS角色编码',
    gbs_role_name varchar(100) null comment '关联GBS角色名称',
    delete_enum   varchar(32)  null comment '删除标识true false',
    remarks       varchar(255) null comment '备注',
    create_name   varchar(50)  null comment '创建人姓名',
    update_name   varchar(50)  null comment '更新人姓名',
    tenant_id     bigint       null comment '租户id',
    version       int          null comment '版本',
    create_time   datetime     null comment '创建时间',
    update_time   datetime     null comment '修改时间',
    create_id     bigint       null comment '创建人id',
    update_id     bigint       null comment '修改人id',
    env           varchar(50)  null comment '环境'
)
    comment '岗位表' charset = utf8mb4
                     row_format = DYNAMIC;

create index idx_org_position_dept_id
    on org_position (dept_id);

create index idx_org_position_org_id
    on org_position (org_id);

create table org_profile_score
(
    id                   bigint        not null comment '主键'
        primary key,
    org_id               bigint        not null comment '机构id',
    score_period         varchar(32)   null comment '评分周期(如2026Q3)',
    finish_project_count int           null comment '完成项目数',
    on_time_rate         decimal(8, 4) null comment '按期完成率',
    spotcheck_pass_rate  decimal(8, 4) null comment '报告抽查合格率',
    open_issue_count     int           null comment '未闭环问题数',
    insp_count           int           null comment '监督检查次数',
    total_score          decimal(8, 2) null comment '综合得分',
    level_code           varchar(32)   null comment '等级编码',
    level_name           varchar(50)   null comment '等级名称',
    metric_json          varchar(4000) null comment '分项指标JSON快照',
    calc_time            datetime      null comment '计算时间',
    delete_enum          varchar(32)   null comment '删除标识true false',
    remarks              varchar(255)  null comment '备注',
    create_name          varchar(50)   null comment '创建人姓名',
    update_name          varchar(50)   null comment '更新人姓名',
    tenant_id            bigint        null comment '租户id',
    version              int           null comment '版本',
    create_time          datetime      null comment '创建时间',
    update_time          datetime      null comment '修改时间',
    create_id            bigint        null comment '创建人id',
    update_id            bigint        null comment '修改人id',
    env                  varchar(50)   null comment '环境'
)
    comment '机构画像得分表' charset = utf8mb4;

create index idx_org_profile_score_org
    on org_profile_score (org_id);

create index idx_org_profile_score_period
    on org_profile_score (score_period);

create table org_qualification
(
    id                bigint            not null comment '主键'
        primary key,
    org_id            bigint            not null comment '机构id',
    license_type_code varchar(32)       null comment '证照类型编码',
    license_type_name varchar(50)       null comment '证照类型名称',
    cert_name         varchar(200)      null comment '证书名称',
    cert_no           varchar(100)      null comment '证书编号',
    issue_date        date              null comment '发证日期',
    issue_org         varchar(200)      null comment '发证机关',
    valid_start_date  date              null comment '证书有效期开始日期',
    valid_end_date    date              null comment '证书有效期结束日期',
    cert_image_url    varchar(500)      null comment '证书图片地址',
    enable_flag       tinyint default 1 null comment '启用标识(1启用2禁用)',
    delete_enum       varchar(32)       null comment '删除标识true false',
    remarks           varchar(255)      null comment '备注',
    create_name       varchar(50)       null comment '创建人姓名',
    update_name       varchar(50)       null comment '更新人姓名',
    tenant_id         bigint            null comment '租户id',
    version           int               null comment '版本',
    create_time       datetime          null comment '创建时间',
    update_time       datetime          null comment '修改时间',
    create_id         bigint            null comment '创建人id',
    update_id         bigint            null comment '修改人id',
    env               varchar(50)       null comment '环境'
)
    comment '机构资质证书表' charset = utf8mb4
                             row_format = DYNAMIC;

create index idx_org_qualification_cert_no
    on org_qualification (cert_no);

create index idx_org_qualification_org_id
    on org_qualification (org_id);

create table org_resign_apply
(
    id                   bigint        not null comment '主键'
        primary key,
    org_id               bigint        not null comment '机构id',
    personnel_id         bigint        not null comment '人员id',
    applicant_name       varchar(50)   not null comment '申请人',
    apply_time           datetime      not null comment '申请时间',
    resign_reason        varchar(1000) null comment '离职原因',
    expected_resign_date date          null comment '预计离职日期',
    report_file_url      varchar(500)  null comment '离职通知报告附件地址',
    audit_status_code    int           null comment '离职申请审核状态编码',
    audit_status_name    varchar(50)   null comment '离职申请审核状态名称',
    reject_reason        varchar(500)  null comment '退回原因',
    delete_enum          varchar(32)   null comment '删除标识true false',
    remarks              varchar(255)  null comment '备注',
    create_name          varchar(50)   null comment '创建人姓名',
    update_name          varchar(50)   null comment '更新人姓名',
    tenant_id            bigint        null comment '租户id',
    version              int           null comment '版本',
    create_time          datetime      null comment '创建时间',
    update_time          datetime      null comment '修改时间',
    create_id            bigint        null comment '创建人id',
    update_id            bigint        null comment '修改人id',
    env                  varchar(50)   null comment '环境'
)
    comment '人员离职申请表' charset = utf8mb4
                             row_format = DYNAMIC;

create index idx_org_resign_apply_audit_status
    on org_resign_apply (audit_status_code);

create index idx_org_resign_apply_org_id
    on org_resign_apply (org_id);

create index idx_org_resign_apply_personnel_id
    on org_resign_apply (personnel_id);

create table qual_filing
(
    id                        bigint                       not null comment '主键'
        primary key,
    org_id                    bigint                       not null comment '机构id',
    filing_territory_code     varchar(32)                  null comment '备案属地编码',
    filing_territory_name     varchar(100)                 null comment '备案属地名称',
    filing_unit_name          varchar(200)                 null comment '备案单位',
    filing_unit_type_code     varchar(32)                  null comment '备案单位类型编码',
    filing_unit_type_name     varchar(50)                  null comment '备案单位类型名称',
    filing_no                 varchar(100)                 null comment '备案编号',
    business_scope            varchar(1000)                null comment '备案安全评价业务范围',
    register_address          varchar(500)                 null comment '注册地址',
    office_address            varchar(500)                 null comment '办公地址',
    credit_code               varchar(30)                  null comment '统一社会信用代码',
    qual_cert_no              varchar(100)                 null comment '资质证书编号',
    legal_person_phone        varchar(100)                 null comment '法人代表及电话',
    contact_phone             varchar(100)                 null comment '联系人及电话',
    info_disclosure_url       varchar(500)                 null comment '信息公开网址',
    fixed_asset_amount        bigint                       null comment '固定资产总值(单位:分)',
    archive_room_area         decimal(12, 2)               null comment '档案室面积(平方米)',
    fulltime_evaluator_count  int                          null comment '专职安全评价师数量',
    registered_engineer_count int                          null comment '注册安全工程师数量',
    workplace_area            decimal(12, 2)               null comment '工作场所建筑面积(平方米)',
    unit_intro                text                         null comment '单位基本情况介绍',
    attachment_url            varchar(500)                 null comment '单位基本情况附件地址',
    origin_filing_id          bigint                       null comment '变更草稿关联的原备案id',
    source_application_id     bigint                       null comment '已备案主记录(applyType=3)关联的资质备案申请id(applyType=1)',
    reject_reason             varchar(500)                 null comment '打回原因',
    submit_time               datetime                     null comment '最近提交时间',
    approve_time              datetime                     null comment '最近审核通过时间',
    filing_status_code        int                          null comment '备案状态(1已备案2审核中3已打回4变更审核中5暂存)',
    filing_status_name        varchar(50)                  null comment '备案状态名称',
    apply_type_code           int                          null comment '申请类型编码(1资质备案申请2变更备案草稿3已备案资质填报)',
    apply_type_name           varchar(50)                  null comment '申请类型名称',
    filing_review_id          bigint                       null comment '审核id',
    alert_status              varchar(64) default 'normal' null comment '预警状态 normal:正常，person_rate:人员比例预警，',
    delete_enum               varchar(32)                  null comment '删除标识true false',
    remarks                   varchar(255)                 null comment '备注',
    create_name               varchar(50)                  null comment '创建人姓名',
    update_name               varchar(50)                  null comment '更新人姓名',
    tenant_id                 bigint                       null comment '租户id',
    version                   int                          null comment '版本',
    create_time               datetime                     null comment '创建时间',
    update_time               datetime                     null comment '修改时间',
    create_id                 bigint                       null comment '创建人id',
    update_id                 bigint                       null comment '修改人id',
    env                       varchar(50)                  null comment '环境'
)
    comment '资质备案申请表' charset = utf8mb4
                             row_format = DYNAMIC;

create index idx_qual_filing_apply_type
    on qual_filing (apply_type_code);

create index idx_qual_filing_no
    on qual_filing (filing_no);

create index idx_qual_filing_org_id
    on qual_filing (org_id);

create index idx_qual_filing_origin_id
    on qual_filing (origin_filing_id);

create index idx_qual_filing_source_application_id
    on qual_filing (source_application_id);

create index idx_qual_filing_status
    on qual_filing (filing_status_code);

create table qual_filing_change
(
    id                        bigint                       not null comment '主键'
        primary key,
    org_id                    bigint                       not null comment '机构id',
    filing_id                 bigint                       not null comment '备案申请id',
    filing_review_id          bigint                       null,
    change_filing_id          bigint                       null comment '关联变更的id qual_filing_change.id',
    reject_reason             varchar(500)                 null comment '打回原因',
    submit_time               datetime                     null comment '提交时间',
    filing_territory_code     varchar(32)                  null comment '备案属地编码',
    filing_territory_name     varchar(100)                 null comment '备案属地名称',
    filing_unit_name          varchar(200)                 null comment '备案单位',
    filing_unit_type_code     varchar(32)                  null comment '备案单位类型编码',
    filing_unit_type_name     varchar(50)                  null comment '备案单位类型名称',
    filing_no                 varchar(100)                 null comment '备案编号',
    business_scope            varchar(1000)                null comment '备案安全评价业务范围',
    register_address          varchar(500)                 null comment '注册地址',
    office_address            varchar(500)                 null comment '办公地址',
    credit_code               varchar(128)                 null comment '统一社会信用代码',
    qual_cert_no              varchar(100)                 null comment '资质证书编号',
    legal_person_phone        varchar(100)                 null comment '法人代表及电话',
    contact_phone             varchar(100)                 null comment '联系人及电话',
    info_disclosure_url       varchar(500)                 null comment '信息公开网址',
    fixed_asset_amount        bigint                       null comment '固定资产总值(单位:分)',
    archive_room_area         decimal(12, 2)               null comment '档案室面积(平方米)',
    fulltime_evaluator_count  int                          null comment '专职安全评价师数量',
    registered_engineer_count int                          null comment '注册安全工程师数量',
    workplace_area            decimal(12, 2)               null comment '工作场所建筑面积(平方米)',
    unit_intro                text                         null comment '单位基本情况介绍',
    attachment_url            text                         null comment '单位基本情况附件地址',
    filing_status_code        int                          null comment '备案状态编码',
    filing_status_name        varchar(50)                  null comment '备案状态名称',
    alert_status              varchar(64) default 'normal' null comment '预警状态 normal:正常，person_rate:人员比例预警，',
    delete_enum               varchar(32)                  null comment '删除标识true false',
    remarks                   varchar(255)                 null comment '备注',
    create_name               varchar(50)                  null comment '创建人姓名',
    update_name               varchar(50)                  null comment '更新人姓名',
    tenant_id                 bigint                       null comment '租户id',
    version                   int                          null comment '版本',
    create_time               datetime                     null comment '创建时间',
    update_time               datetime                     null comment '修改时间',
    create_id                 bigint                       null comment '创建人id',
    update_id                 bigint                       null comment '修改人id',
    env                       varchar(50)                  null comment '环境'
)
    comment '备案变更表' charset = utf8mb4
                         row_format = DYNAMIC;

create index idx_filing_id
    on qual_filing_change (filing_id);

create index idx_qual_filing_change_org_id
    on qual_filing_change (org_id);

create table qual_filing_change_detail
(
    id               bigint        not null comment '主键'
        primary key,
    change_id        bigint        not null comment '备案变更id',
    form_step_code   int           not null comment '表单步骤编码(1-5)',
    form_step_name   varchar(50)   not null comment '表单步骤名称',
    change_field     varchar(100)  null comment '变更字段',
    change_content   varchar(1000) null comment '变更内容摘要',
    change_item_code varchar(32)   null comment '变更细项编码',
    change_item_name varchar(50)   null comment '变更细项名称',
    before_value     text          null comment '变更前',
    after_value      text          null comment '变更后',
    delete_enum      varchar(32)   null comment '删除标识true false',
    remarks          varchar(255)  null comment '备注',
    create_name      varchar(50)   null comment '创建人姓名',
    update_name      varchar(50)   null comment '更新人姓名',
    tenant_id        bigint        null comment '租户id',
    org_id           bigint        null comment '单位id',
    version          int           null comment '版本',
    create_time      datetime      null comment '创建时间',
    update_time      datetime      null comment '修改时间',
    create_id        bigint        null comment '创建人id',
    update_id        bigint        null comment '修改人id',
    env              varchar(50)   null comment '环境'
)
    comment '备案变更明细表' charset = utf8mb4
                             row_format = DYNAMIC;

create index idx_change_id
    on qual_filing_change_detail (change_id);

create table qual_filing_commitment
(
    id                      bigint       not null comment '主键'
        primary key,
    filing_id               bigint       not null comment '备案申请id',
    commitment_content      text         null comment '承诺内容',
    legal_rep_signature_url varchar(500) null comment '法定代表人签名图片地址',
    sign_date               date         null comment '签署日期',
    legal_rep_personnel_id  bigint       null comment '法定代表人机构人员id',
    legal_rep_name          varchar(100) null comment '法定代表人姓名',
    delete_enum             varchar(32)  null comment '删除标识true false',
    remarks                 varchar(255) null comment '备注',
    create_name             varchar(50)  null comment '创建人姓名',
    update_name             varchar(50)  null comment '更新人姓名',
    tenant_id               bigint       null comment '租户id',
    org_id                  bigint       null comment '单位id',
    version                 int          null comment '版本',
    create_time             datetime     null comment '创建时间',
    update_time             datetime     null comment '修改时间',
    create_id               bigint       null comment '创建人id',
    update_id               bigint       null comment '修改人id',
    env                     varchar(50)  null comment '环境'
)
    comment '法定代表人承诺书表' charset = utf8mb4
                                 row_format = DYNAMIC;

create index idx_filing_id
    on qual_filing_commitment (filing_id);

create table qual_filing_commitment_change
(
    id                      bigint       not null comment '主键'
        primary key,
    filing_change_id        bigint       not null comment '备案申请id',
    commitment_content      text         null comment '承诺内容',
    legal_rep_signature_url varchar(500) null comment '法定代表人签名图片地址',
    sign_date               date         null comment '签署日期',
    legal_rep_personnel_id  bigint       null comment '法定代表人机构人员id',
    legal_rep_name          varchar(100) null comment '法定代表人姓名',
    delete_enum             varchar(32)  null comment '删除标识true false',
    remarks                 varchar(255) null comment '备注',
    create_name             varchar(50)  null comment '创建人姓名',
    update_name             varchar(50)  null comment '更新人姓名',
    tenant_id               bigint       null comment '租户id',
    org_id                  bigint       null comment '单位id',
    version                 int          null comment '版本',
    create_time             datetime     null comment '创建时间',
    update_time             datetime     null comment '修改时间',
    create_id               bigint       null comment '创建人id',
    update_id               bigint       null comment '修改人id',
    env                     varchar(50)  null comment '环境'
)
    comment '法定代表人承诺书表-变更' charset = utf8mb4
                                      row_format = DYNAMIC;

create index idx_filing_id
    on qual_filing_commitment_change (filing_change_id);

create table qual_filing_equipment
(
    id                          bigint            not null comment '主键'
        primary key,
    filing_id                   bigint            not null comment '备案申请id',
    source_equipment_id         bigint            null comment '来源装备id',
    device_name                 varchar(200)      not null comment '设备名称',
    device_model                varchar(100)      null comment '设备型号',
    instrument_type_code        varchar(32)       null comment '仪器类型编码',
    instrument_type_name        varchar(50)       null comment '仪器类型名称',
    device_type_code            varchar(32)       null comment '设备类型编码',
    device_type_name            varchar(50)       null comment '设备类型名称',
    manufacturer                varchar(200)      null comment '厂家',
    flow_desc                   varchar(500)      null comment '设备流量说明',
    min_flow                    decimal(12, 4)    null comment '最小流量',
    max_flow                    decimal(12, 4)    null comment '最大流量',
    calibration_unit            varchar(200)      null comment '校准单位',
    calibration_init_value      varchar(100)      null comment '校准初始值',
    field_calibration_type_code varchar(32)       null comment '现场校验类型编码',
    field_calibration_type_name varchar(50)       null comment '现场校验类型名称',
    dual_channel_flag           tinyint default 2 null comment '是否双路(1是2否)',
    calibration_report_url      varchar(500)      null comment '计量检定报告地址',
    delete_enum                 varchar(32)       null comment '删除标识true false',
    remarks                     varchar(255)      null comment '备注',
    create_name                 varchar(50)       null comment '创建人姓名',
    update_name                 varchar(50)       null comment '更新人姓名',
    tenant_id                   bigint            null comment '租户id',
    org_id                      bigint            null comment '单位id',
    version                     int               null comment '版本',
    create_time                 datetime          null comment '创建时间',
    update_time                 datetime          null comment '修改时间',
    create_id                   bigint            null comment '创建人id',
    update_id                   bigint            null comment '修改人id',
    env                         varchar(50)       null comment '环境'
)
    comment '备案申请装备表' charset = utf8mb4
                             row_format = DYNAMIC;

create index idx_filing_id
    on qual_filing_equipment (filing_id);

create index idx_qual_filing_equipment_source_id
    on qual_filing_equipment (source_equipment_id);

create table qual_filing_equipment_change
(
    id                          bigint            not null comment '主键'
        primary key,
    filing_change_id            bigint            not null comment '备案申请id',
    source_equipment_id         bigint            null comment '来源装备id',
    device_name                 varchar(200)      not null comment '设备名称',
    device_model                varchar(100)      null comment '设备型号',
    instrument_type_code        varchar(32)       null comment '仪器类型编码',
    instrument_type_name        varchar(50)       null comment '仪器类型名称',
    device_type_code            varchar(32)       null comment '设备类型编码',
    device_type_name            varchar(50)       null comment '设备类型名称',
    manufacturer                varchar(200)      null comment '厂家',
    flow_desc                   varchar(500)      null comment '设备流量说明',
    min_flow                    decimal(12, 4)    null comment '最小流量',
    max_flow                    decimal(12, 4)    null comment '最大流量',
    calibration_unit            varchar(200)      null comment '校准单位',
    calibration_init_value      varchar(100)      null comment '校准初始值',
    field_calibration_type_code varchar(32)       null comment '现场校验类型编码',
    field_calibration_type_name varchar(50)       null comment '现场校验类型名称',
    dual_channel_flag           tinyint default 2 null comment '是否双路(1是2否)',
    calibration_report_url      varchar(500)      null comment '计量检定报告地址',
    delete_enum                 varchar(32)       null comment '删除标识true false',
    remarks                     varchar(255)      null comment '备注',
    create_name                 varchar(50)       null comment '创建人姓名',
    update_name                 varchar(50)       null comment '更新人姓名',
    tenant_id                   bigint            null comment '租户id',
    org_id                      bigint            null comment '单位id',
    version                     int               null comment '版本',
    create_time                 datetime          null comment '创建时间',
    update_time                 datetime          null comment '修改时间',
    create_id                   bigint            null comment '创建人id',
    update_id                   bigint            null comment '修改人id',
    env                         varchar(50)       null comment '环境'
)
    comment '备案申请装备表-变更' charset = utf8mb4
                                  row_format = DYNAMIC;

create index idx_filing_id
    on qual_filing_equipment_change (filing_change_id);

create index idx_qual_filing_equipment_source_id
    on qual_filing_equipment_change (source_equipment_id);

create table qual_filing_expert
(
    id          bigint       not null comment '主键'
        primary key,
    delete_enum varchar(32)  null comment '删除标识true false',
    remarks     varchar(255) null comment '备注',
    create_name varchar(50)  null comment '创建人姓名',
    update_name varchar(50)  null comment '更新人姓名',
    tenant_id   bigint       null comment '租户id',
    version     int          null comment '版本',
    create_time datetime     null comment '创建时间',
    update_time datetime     null comment '修改时间',
    create_id   bigint       null comment '创建人id',
    update_id   bigint       null comment '修改人id',
    env         varchar(50)  null comment '环境',
    user_name   varchar(50)  not null comment '用户名称/姓名',
    account     varchar(50)  not null comment '账号',
    gender_code tinyint      null comment '性别编码',
    gender_name varchar(10)  null comment '性别名称',
    id_card_no  varchar(18)  null comment '身份证号',
    certificate varchar(500) null comment '证书'
)
    comment '审核专家表' charset = utf8mb4
                         row_format = DYNAMIC;

create table qual_filing_material
(
    id                 bigint            not null comment '主键'
        primary key,
    filing_id          bigint            not null comment '备案申请id',
    material_type      varchar(64)       not null comment '材料类型1,申请材料目录（原件）,2,申请书（原件）,3,法人证明（复印件）,4,三年内无重大违法失信记录查询证明,5,法定代表人承诺书（原件）,6,固定资产法定证明材料,7,工作场所及档案室面积证明,8,安全评价师专业能力证明,9,相关负责人证明材料,10,机构内部管理制度',
    material_content   varchar(500)      not null comment '材料内容',
    material_format    varchar(20)       null comment '材料格式',
    sort_order         int     default 0 null comment '排序序号',
    required_flag      tinyint default 1 null comment '是否必需(1是2否)',
    upload_status_code int               null comment '上传状态编码(1待上传2已上传)',
    upload_status_name varchar(50)       null comment '上传状态名称',
    attachment_desc    varchar(200)      null comment '上传附件说明',
    attachment_url     varchar(500)      null comment '上传附件地址',
    material_remark    varchar(1000)     null comment '注释',
    delete_enum        varchar(32)       null comment '删除标识true false',
    remarks            varchar(255)      null comment '备注',
    create_name        varchar(50)       null comment '创建人姓名',
    update_name        varchar(50)       null comment '更新人姓名',
    tenant_id          bigint            null comment '租户id',
    org_id             bigint            null comment '单位id',
    version            int               null comment '版本',
    create_time        datetime          null comment '创建时间',
    update_time        datetime          null comment '修改时间',
    create_id          bigint            null comment '创建人id',
    update_id          bigint            null comment '修改人id',
    env                varchar(50)       null comment '环境',
    has_satisfy        int     default 1 null comment '是否符合(1符合2不符合)'
)
    comment '备案申请材料表' charset = utf8mb4
                             row_format = DYNAMIC;

create index idx_filing_id
    on qual_filing_material (filing_id);

create table qual_filing_material_change
(
    id                 bigint            not null comment '主键'
        primary key,
    filing_change_id   bigint            not null comment '备案申请id',
    material_type      varchar(64)       not null comment '材料类型1,申请材料目录（原件）,2,申请书（原件）,3,法人证明（复印件）,4,三年内无重大违法失信记录查询证明,5,法定代表人承诺书（原件）,6,固定资产法定证明材料,7,工作场所及档案室面积证明,8,安全评价师专业能力证明,9,相关负责人证明材料,10,机构内部管理制度',
    material_content   varchar(500)      not null comment '材料内容',
    material_format    varchar(20)       null comment '材料格式',
    sort_order         int     default 0 null comment '排序序号',
    required_flag      tinyint default 1 null comment '是否必需(1是2否)',
    upload_status_code int               null comment '上传状态编码(1待上传2已上传)',
    upload_status_name varchar(50)       null comment '上传状态名称',
    attachment_desc    varchar(200)      null comment '上传附件说明',
    attachment_url     varchar(500)      null comment '上传附件地址',
    material_remark    varchar(1000)     null comment '注释',
    delete_enum        varchar(32)       null comment '删除标识true false',
    remarks            varchar(255)      null comment '备注',
    create_name        varchar(50)       null comment '创建人姓名',
    update_name        varchar(50)       null comment '更新人姓名',
    tenant_id          bigint            null comment '租户id',
    org_id             bigint            null comment '单位id',
    version            int               null comment '版本',
    create_time        datetime          null comment '创建时间',
    update_time        datetime          null comment '修改时间',
    create_id          bigint            null comment '创建人id',
    update_id          bigint            null comment '修改人id',
    env                varchar(50)       null comment '环境',
    has_satisfy        int     default 1 null comment '是否符合(1符合2不符合)'
)
    comment '备案申请材料表-变更' charset = utf8mb4
                                  row_format = DYNAMIC;

create index idx_filing_id
    on qual_filing_material_change (filing_change_id);

create table qual_filing_personnel
(
    id                      bigint            not null comment '主键'
        primary key,
    filing_id               bigint            not null comment '备案申请id',
    source_personnel_id     bigint            null comment '来源人员id',
    person_name             varchar(50)       not null comment '人员姓名',
    person_type_code        varchar(32)       null comment '人员类型编码',
    person_type_name        varchar(50)       null comment '人员类型名称',
    position_name           varchar(50)       null comment '职务',
    title_code              varchar(50)       null comment '职称',
    gender_code             tinyint           null comment '性别编码',
    gender_name             varchar(10)       null comment '性别名称',
    birth_date              date              null comment '出生日期',
    join_work_date          date              null comment '参加工作时间',
    id_card_no              varchar(18)       null comment '身份证号',
    current_address         varchar(500)      null comment '现住地址',
    office_address          varchar(500)      null comment '办公地址',
    education_code          varchar(32)       null comment '学历编码',
    education_name          varchar(50)       null comment '学历名称',
    graduate_school         varchar(200)      null comment '毕业院校',
    major                   varchar(100)      null comment '专业',
    qual_scope              varchar(500)      null comment '资质范围',
    publications            varchar(1000)     null comment '出版学术专著专利获奖论文等',
    professional_level_cert varchar(200)      null comment '职业等级及证书编号',
    register_engineer_flag  tinyint default 2 null comment '是否具有注册安全工程师资格(1是2否)',
    ability_declaration     varchar(1000)     null comment '自我申报的专业能力及认定方式',
    work_experience         text              null comment '主要学习工作经历',
    proof_material_url      text              null comment '申报专业能力证明材料地址',
    delete_enum             varchar(32)       null comment '删除标识true false',
    remarks                 varchar(255)      null comment '备注',
    create_name             varchar(50)       null comment '创建人姓名',
    update_name             varchar(50)       null comment '更新人姓名',
    tenant_id               bigint            null comment '租户id',
    org_id                  bigint            null comment '单位id',
    version                 int               null comment '版本',
    create_time             datetime          null comment '创建时间',
    update_time             datetime          null comment '修改时间',
    create_id               bigint            null comment '创建人id',
    update_id               bigint            null comment '修改人id',
    env                     varchar(50)       null comment '环境'
)
    comment '备案申请人员表' charset = utf8mb4
                             row_format = DYNAMIC;

create index idx_filing_id
    on qual_filing_personnel (filing_id);

create index idx_qual_filing_personnel_source_id
    on qual_filing_personnel (source_personnel_id);

create table qual_filing_personnel_cert
(
    id                                 bigint       not null comment '主键'
        primary key,
    filing_id                          bigint       not null comment '备案申请id',
    filing_personnel_id                bigint       not null comment '备案人员id',
    cert_name                          varchar(200) null comment '证照名称',
    cert_type_code                     varchar(32)  null comment '证书类型编码',
    cert_level                         varchar(50)  null comment '证书等级(CertLevelEnum:SENIOR高级/MIDDLE中级/JUNIOR初级)',
    cert_category_code                 varchar(32)  null comment '证书类别编码',
    cert_category_name                 varchar(50)  null comment '证书类别名称',
    operation_category_code            varchar(32)  null comment '证书作业类别编码',
    operation_category_name            varchar(50)  null comment '证书作业类别名称',
    cert_no                            varchar(100) null comment '证书编号',
    issue_org                          varchar(200) null comment '发证机关',
    valid_start_date                   date         null comment '证书有效开始日期',
    valid_end_date                     date         null comment '证书有效结束日期',
    review_date                        date         null comment '复核日期',
    cert_attachment_url                varchar(500) null comment '证书附件地址',
    source_cert_id                     bigint       null comment '来源人员证书id',
    business_scope                     varchar(500) null comment '备案安全评价业务范围',
    professional_capability_code       varchar(64)  null comment '专业能力编码',
    industry_professional_standards_id bigint       null comment '行业专业标准ID',
    delete_enum                        varchar(32)  null comment '删除标识true false',
    remarks                            varchar(255) null comment '备注',
    create_name                        varchar(50)  null comment '创建人姓名',
    update_name                        varchar(50)  null comment '更新人姓名',
    tenant_id                          bigint       null comment '租户id',
    org_id                             bigint       null comment '单位id',
    version                            int          null comment '版本',
    create_time                        datetime     null comment '创建时间',
    update_time                        datetime     null comment '修改时间',
    create_id                          bigint       null comment '创建人id',
    update_id                          bigint       null comment '修改人id',
    env                                varchar(50)  null comment '环境'
)
    comment '备案申请人员证书表' charset = utf8mb4
                                 row_format = DYNAMIC;

create index idx_filing_id
    on qual_filing_personnel_cert (filing_id);

create index idx_qual_filing_personnel_cert_personnel_id
    on qual_filing_personnel_cert (filing_personnel_id);

create index idx_qual_filing_personnel_cert_source_id
    on qual_filing_personnel_cert (source_cert_id);

create table qual_filing_personnel_cert_change
(
    id                                 bigint       not null comment '主键'
        primary key,
    filing_change_id                   bigint       not null comment '备案申请id',
    filing_personnel_id                bigint       not null comment '备案人员id',
    cert_name                          varchar(200) null comment '证照名称',
    cert_type_code                     varchar(32)  null comment '证书类型编码',
    cert_level                         varchar(128) null comment '证书等级(CertLevelEnum:SENIOR高级/MIDDLE中级/JUNIOR初级)',
    cert_category_code                 varchar(32)  null comment '证书类别编码',
    cert_category_name                 varchar(50)  null comment '证书类别名称',
    operation_category_code            varchar(32)  null comment '证书作业类别编码',
    operation_category_name            varchar(50)  null comment '证书作业类别名称',
    cert_no                            varchar(100) null comment '证书编号',
    issue_org                          varchar(200) null comment '发证机关',
    valid_start_date                   date         null comment '证书有效开始日期',
    valid_end_date                     date         null comment '证书有效结束日期',
    review_date                        date         null comment '复核日期',
    cert_attachment_url                varchar(500) null comment '证书附件地址',
    source_cert_id                     bigint       null comment '来源人员证书id',
    business_scope                     varchar(500) null comment '备案安全评价业务范围',
    professional_capability_code       varchar(64)  null comment '专业能力编码',
    industry_professional_standards_id bigint       null comment '行业专业标准ID',
    delete_enum                        varchar(32)  null comment '删除标识true false',
    remarks                            varchar(255) null comment '备注',
    create_name                        varchar(50)  null comment '创建人姓名',
    update_name                        varchar(50)  null comment '更新人姓名',
    tenant_id                          bigint       null comment '租户id',
    org_id                             bigint       null comment '单位id',
    version                            int          null comment '版本',
    create_time                        datetime     null comment '创建时间',
    update_time                        datetime     null comment '修改时间',
    create_id                          bigint       null comment '创建人id',
    update_id                          bigint       null comment '修改人id',
    env                                varchar(50)  null comment '环境'
)
    comment '备案申请人员证书表' charset = utf8mb4
                                 row_format = DYNAMIC;

create index idx_filing_id
    on qual_filing_personnel_cert_change (filing_change_id);

create index idx_qual_filing_personnel_cert_personnel_id
    on qual_filing_personnel_cert_change (filing_personnel_id);

create index idx_qual_filing_personnel_cert_source_id
    on qual_filing_personnel_cert_change (source_cert_id);

create table qual_filing_personnel_change
(
    id                      bigint            not null comment '主键'
        primary key,
    filing_change_id        bigint            not null comment '备案申请id',
    source_personnel_id     bigint            null comment '来源人员id',
    person_name             varchar(50)       not null comment '人员姓名',
    person_type_code        varchar(32)       null comment '人员类型编码',
    person_type_name        varchar(50)       null comment '人员类型名称',
    position_name           varchar(50)       null comment '职务',
    title_code              varchar(50)       null comment '职称',
    gender_code             tinyint           null comment '性别编码',
    gender_name             varchar(10)       null comment '性别名称',
    birth_date              date              null comment '出生日期',
    join_work_date          date              null comment '参加工作时间',
    id_card_no              varchar(18)       null comment '身份证号',
    current_address         varchar(500)      null comment '现住地址',
    office_address          varchar(500)      null comment '办公地址',
    education_code          varchar(32)       null comment '学历编码',
    education_name          varchar(50)       null comment '学历名称',
    graduate_school         varchar(200)      null comment '毕业院校',
    major                   varchar(100)      null comment '专业',
    qual_scope              varchar(500)      null comment '资质范围',
    publications            varchar(1000)     null comment '出版学术专著专利获奖论文等',
    professional_level_cert varchar(200)      null comment '职业等级及证书编号',
    register_engineer_flag  tinyint default 2 null comment '是否具有注册安全工程师资格(1是2否)',
    ability_declaration     varchar(1000)     null comment '自我申报的专业能力及认定方式',
    work_experience         text              null comment '主要学习工作经历',
    proof_material_url      text              null comment '申报专业能力证明材料地址',
    delete_enum             varchar(32)       null comment '删除标识true false',
    remarks                 varchar(255)      null comment '备注',
    create_name             varchar(50)       null comment '创建人姓名',
    update_name             varchar(50)       null comment '更新人姓名',
    tenant_id               bigint            null comment '租户id',
    org_id                  bigint            null comment '单位id',
    version                 int               null comment '版本',
    create_time             datetime          null comment '创建时间',
    update_time             datetime          null comment '修改时间',
    create_id               bigint            null comment '创建人id',
    update_id               bigint            null comment '修改人id',
    env                     varchar(50)       null comment '环境'
)
    comment '备案申请人员表-变更' charset = utf8mb4
                                  row_format = DYNAMIC;

create index idx_qual_filing_personnel_filing_id
    on qual_filing_personnel_change (filing_change_id);

create index idx_qual_filing_personnel_source_id
    on qual_filing_personnel_change (source_personnel_id);

create table qual_filing_review
(
    id                   bigint       not null comment '主键'
        primary key,
    filing_id            bigint       not null comment '机构id',
    review_result        varchar(32)  null comment '审核结果 1通过 2 待定 3 不通过',
    review_result_remark varchar(255) null comment '审核结果文字描述',
    filing_expert_id     bigint       null comment '专家id',
    filing_expert_name   varchar(255) null comment '专家名称',
    review_opinion       varchar(512) null comment '综合审核意见',
    delete_enum          varchar(32)  null comment '删除标识true false',
    remarks              varchar(255) null comment '备注',
    create_name          varchar(50)  null comment '创建人姓名',
    update_name          varchar(50)  null comment '更新人姓名',
    tenant_id            bigint       null comment '租户id',
    version              int          null comment '版本',
    create_time          datetime     null comment '创建时间',
    update_time          datetime     null comment '修改时间',
    create_id            bigint       null comment '创建人id',
    update_id            bigint       null comment '修改人id',
    env                  varchar(50)  null comment '环境'
)
    comment '资质审核记录' charset = utf8mb4
                           row_format = DYNAMIC;

create index idx_filing_id
    on qual_filing_review (filing_id);

create table qual_on_site_review
(
    id                    bigint auto_increment comment '自增主键'
        primary key,
    biz_type              varchar(64)             null comment '资质类型:add 新增 ，change:变更',
    biz_id                bigint                  null comment '业务id',
    org_id                bigint                  not null comment '受审查机构ID (关联机构表)',
    review_date_start     datetime                not null comment '现场审查开始时间',
    review_location       varchar(512)            null comment '审查地点',
    review_members        varchar(512)            null comment '审查组成员名单',
    review_leader         varchar(64)             null comment '审查组长',
    material_requirements text                    null comment '材料准备要求',
    supervisor_contact    varchar(64)             null comment '监管联系人姓名',
    contact_phone         varchar(32)             null comment '监管联系电话',
    status                varchar(64) default '1' not null comment '现场审查状态(AGENCY_PENDING_CONFIRMATION机构待确认、AGENCY_CONFIRMED机构已确认、REVIEW_PASSED核查通过、REVIEW_FAILED核查不通过)',
    review_opinion        varchar(256)            null comment '核查意见',
    delete_enum           varchar(32)             null comment '删除标识true false',
    remarks               varchar(255)            null comment '备注',
    create_name           varchar(50)             null comment '创建人姓名',
    update_name           varchar(50)             null comment '更新人姓名',
    tenant_id             bigint                  null comment '租户id',
    version               int                     null comment '版本',
    create_time           datetime                null comment '创建时间',
    update_time           datetime                null comment '修改时间',
    create_id             bigint                  null comment '创建人id',
    update_id             bigint                  null comment '修改人id',
    env                   varchar(50)             null comment '环境'
)
    comment '资质现场核查' charset = utf8mb4;

create index idx_org_id
    on qual_on_site_review (org_id);

create index idx_review_date_start
    on qual_on_site_review (review_date_start);

create table qual_on_site_review_file
(
    id                     bigint auto_increment comment '自增主键'
        primary key,
    qual_on_site_review_id bigint        not null comment '资质现场核查id',
    name                   varchar(128)  not null comment '文件名称',
    url                    varchar(1024) not null comment '文件url',
    org_id                 bigint        null comment 'orgId',
    delete_enum            varchar(32)   null comment '删除标识true false',
    remarks                varchar(255)  null comment '备注',
    create_name            varchar(50)   null comment '创建人姓名',
    update_name            varchar(50)   null comment '更新人姓名',
    tenant_id              bigint        null comment '租户id',
    version                int           null comment '版本',
    create_time            datetime      null comment '创建时间',
    update_time            datetime      null comment '修改时间',
    create_id              bigint        null comment '创建人id',
    update_id              bigint        null comment '修改人id',
    env                    varchar(50)   null comment '环境'
)
    comment '资质现场核查-文件信息' charset = utf8mb4;

create index idx_qual_on_site_review_id
    on qual_on_site_review_file (qual_on_site_review_id);

create table safety_message
(
    id           bigint               not null comment '主键'
        primary key,
    send_name    varchar(255)         null comment '发送者姓名',
    send_id      bigint               null comment '发送者id',
    send_type    varchar(255)         null comment '发送类型 ',
    send_content text                 null comment '发送内容: json格式',
    receive_id   bigint               null comment '接收人id',
    send_state   tinyint(1) default 0 not null comment '发送状态 0-未读, 1-已读',
    delete_enum  varchar(32)          null comment '删除标识true false',
    remarks      varchar(255)         null comment '备注',
    create_name  varchar(50)          null comment '创建人姓名',
    update_name  varchar(50)          null comment '更新人姓名',
    tenant_id    bigint               null comment '租户id',
    version      int                  null comment '版本',
    create_time  datetime             null comment '创建时间',
    update_time  datetime             null comment '修改时间',
    create_id    bigint               null comment '创建人id',
    update_id    bigint               null comment '修改人id',
    env          varchar(50)          null comment '环境',
    org_id       bigint               not null comment '机构id'
)
    comment '消息中心';

create index idx_receive_id
    on safety_message (receive_id);

create table wps_doc
(
    id                   bigint auto_increment comment '主键'
        primary key,
    file_id              varchar(47)                 not null comment 'WPS文档ID，对外唯一',
    org_id               bigint                      not null comment '机构id',
    name                 varchar(240)                not null comment '文档名称',
    doc_version          int         default 1       not null comment '当前版本号，从1递增',
    size                 bigint      default 0       not null comment '当前大小byte',
    resource_id          int                         null comment '当前版本filestorage.id',
    download_url         varchar(1024)               null comment '当前可下载URL',
    creator_id           varchar(48)                 not null comment '创建者account.id',
    modifier_id          varchar(48)                 not null comment '最后修改者account.id',
    create_time_epoch    bigint                      not null comment '创建时间纪元秒',
    modify_time_epoch    bigint                      not null comment '修改时间纪元秒',
    delete_enum          varchar(32) default 'false' null comment '删除标识',
    remarks              varchar(255)                null comment '备注',
    create_name          varchar(50)                 null comment '创建人姓名',
    update_name          varchar(50)                 null comment '更新人姓名',
    tenant_id            bigint                      null comment '租户id',
    version              int                         null comment '乐观锁',
    create_time          datetime                    null comment '创建时间',
    update_time          datetime                    null comment '修改时间',
    create_id            bigint                      null comment '创建人id',
    update_id            bigint                      null comment '修改人id',
    env                  varchar(50)                 null comment '环境',
    pending_resource_id  int                         null comment '三阶段上传待确认filestorage.id',
    pending_download_url varchar(1024)               null comment '三阶段上传待确认URL',
    pending_size         bigint                      null comment '三阶段上传待确认大小byte',
    project_id           bigint                      null,
    constraint uk_wps_doc_file_id
        unique (file_id)
)
    comment 'WPS在线文档';

create index idx_wps_doc_org
    on wps_doc (org_id);

create table wps_doc_version
(
    id                bigint auto_increment comment '主键'
        primary key,
    org_id            bigint                      not null comment '机构id',
    file_id           varchar(47)                 not null comment 'WPS文档ID',
    doc_version       int                         not null comment '版本号',
    name              varchar(240)                not null comment '文件名',
    size              bigint                      not null comment '大小byte',
    resource_id       int                         null comment 'filestorage.id',
    download_url      varchar(1024)               null comment '下载URL',
    digest_sha1       varchar(64)                 null comment 'sha1',
    modifier_id       varchar(48)                 not null comment '保存人',
    manual_flag       tinyint     default 2       not null comment '1手动保存 2自动保存',
    create_time_epoch bigint                      not null comment '版本时间纪元秒',
    delete_enum       varchar(32) default 'false' null comment '删除标识',
    tenant_id         bigint                      null comment '租户id',
    create_time       datetime                    null comment '创建时间',
    update_time       datetime                    null comment '修改时间',
    project_id        bigint                      null,
    constraint uk_wps_doc_ver
        unique (file_id, doc_version)
)
    comment 'WPS文档版本';

create index idx_wps_doc_ver_org
    on wps_doc_version (org_id);



