safety-eval-service/docs/sql/database-design.md

47 KiB
Raw Blame History

巫溪县安全评价在线监管一件事 — 数据库设计文档

版本v1.2
依据:产品原型 PDF设计文件 112
数据库MySQL 8.0+ / InnoDB / utf8mb4_unicode_ci
ORMMyBatis-Plus通用字段与 @TableLogic 对齐)


1. 文档说明

1.1 设计目标

业务域 原型模块 核心表
机构认证 认证信息(填写→审核中→通过) org_infoorg_certification_audit
企业信息管理 机构信息、资质、人员、部门岗位、装备 org_*staff_*equip_info
人员异动 人员变更、离职申请 staff_change_logstaff_resignation_apply
资质备案 备案申请4步、变更、已备案 filing_*
系统支撑 用户、附件、审核、字典、区划 sys_*audit_record

阅读指引§2 ER 图与关联矩阵 → §3 每张表作用与关系(核心) → §4§8 字段明细 → §11 表清单总览

1.2 命名规范

规范
表名 小写 + 下划线;前缀 sys_ / org_ / staff_ / filing_ / equip_
字段 Java 驼峰 → 数据库下划线,如 createTimecreate_time
主键 id BIGINT UNSIGNED
外键 {实体}_id,逻辑外键,应用层约束
日期 DATE:仅年月日(出生日期、证书有效期、签署日期等)
时间 DATETIME:年月日时分秒(创建、提交、审核、登录等)
逻辑删除 字段名固定 deleted(不转下划线),0 未删 / 1 已删

1.3 通用字段(与 MyBatis-Plus BaseEntity 对齐)

业务表(可增删改)均包含以下 5 个字段:

/** 创建时间 */
@TableField(fill = FieldFill.INSERT)
private LocalDateTime createTime;

/** 创建人 */
@TableField(fill = FieldFill.INSERT)
private String createBy;

/** 更新时间 */
@TableField(fill = FieldFill.INSERT_UPDATE)
private LocalDateTime updateTime;

/** 更新人 */
@TableField(fill = FieldFill.INSERT_UPDATE)
private String updateBy;

/** 删除标识 0-否 1-是 */
@TableLogic(value = "0", delval = "1")
@TableField(fill = FieldFill.INSERT)
private Integer deleted;

对应 DDL

create_time  DATETIME     NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
create_by    VARCHAR(64)  DEFAULT NULL COMMENT '创建人',
update_time  DATETIME     NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
update_by    VARCHAR(64)  DEFAULT NULL COMMENT '更新人',
deleted      TINYINT      NOT NULL DEFAULT 0 COMMENT '删除标识0-否1-是'

例外(只增不改的流水表) 仅保留 create_timecreate_by(及业务时间字段):

  • audit_record — 审核流水
  • org_certification_audit — 认证审核历史
  • staff_change_log — 人员变更记录
  • filing_change_detail — 备案变更明细

1.4 附件设计

证书图片、材料扫描件、离职报告、单位介绍附件等 不单独建业务字段存 URL,统一走 sys_attachment

biz_type 关联 biz_id 原型场景
org_intro filing_application.id / org_info.id 单位基本情况介绍上传
org_cert org_qualification_cert.id 机构资质证书图片
staff_cert staff_certificate.id 人员证书附件
filing_material filing_application_material.id 申请材料扫描件
filing_commitment_sign filing_commitment.id 法人签名
filing_commitment_seal filing_commitment.id 单位盖章
resign_report staff_resignation_apply.id 离职通知报告 PDF
staff_ability_proof staff_info.id 申报专业能力证明材料

2. ER 关系总览

以下为全局 ER 与关联矩阵;每张表的业务职责、上游引用、下游被引用§3 数据表作用与关系说明

erDiagram
    org_info ||--o{ org_department : "org_id"
    org_department ||--o{ org_position : "dept_id"
    org_info ||--o{ staff_info : "org_id"
    org_department ||--o{ staff_info : "dept_id"
    org_position ||--o{ staff_info : "position_id"
    staff_info ||--o{ staff_certificate : "staff_id"
    org_info ||--o{ org_qualification_cert : "org_id"
    org_info ||--o{ org_certification_audit : "org_id"
    org_info ||--o{ equip_info : "org_id"

    org_info ||--o{ filing_application : "org_id"
    filing_application ||--o{ filing_application_material : "application_id"
    filing_application ||--o{ filing_application_staff : "application_id"
    filing_application_staff ||--o{ filing_application_staff_cert : "application_staff_id"
    filing_application ||--o| filing_commitment : "application_id"
    filing_application ||--o| filing_record : "application_id"
    filing_record ||--o{ filing_change_record : "filing_record_id"
    filing_change_record ||--o{ filing_change_detail : "change_record_id"

    staff_info ||--o{ staff_change_log : "staff_id"
    staff_info ||--o{ staff_resignation_apply : "staff_id"
    sys_user ||--o| staff_info : "user_id"
    sys_user }o--|| org_info : "org_id"
    sys_region ||--o{ filing_record : "filing_region_id"
    sys_region ||--o{ org_info : "region_*_id"

2.1 关联矩阵

主表 从表 关系 关联字段 说明
org_info org_department 1:N org_id 部门树
org_department org_position 1:N dept_id 部门下岗位
org_info staff_info 1:N org_id 机构人员
org_department staff_info 1:N dept_id 人员所属部门
org_position staff_info 1:N position_id 人员岗位
staff_info staff_certificate 1:N staff_id 人员证书
staff_info staff_change_log 1:N staff_id 变更追溯
staff_info staff_resignation_apply 1:N staff_id 离职申请
org_info org_qualification_cert 1:N org_id 机构资质
org_info equip_info 1:N org_id 装备
org_info filing_application 1:N org_id 备案申请
filing_application filing_application_material 1:N application_id 步骤2材料
filing_application filing_application_staff 1:N application_id 步骤3人员
filing_application_staff filing_application_staff_cert 1:N application_staff_id 步骤3人员证书
filing_application filing_commitment 1:1 application_id 步骤4承诺书
filing_application filing_record 1:1 application_id 审核通过后生成
filing_record filing_change_record 1:N filing_record_id 备案变更
filing_change_record filing_change_detail 1:N change_record_id 变更明细
filing_change_record filing_application N:1 change_application_id 变更类申请
sys_user staff_info 1:1 user_id 可选绑定
sys_attachment 各业务 N:1 biz_type + biz_id 附件
sys_region org_info 1:N region_county_id 等 机构所属区划
sys_region filing_application / filing_record 1:N filing_region_id 备案属地
sys_dict sys_dict_item 1:N dict_id 字典项
audit_record 各审核业务 N:1 biz_type + biz_id 审核流水
org_info org_certification_audit 1:N org_id 认证审核历史
org_info sys_user 1:N org_id 机构用户
staff_info filing_application_staff 1:N staff_id 备案时引用人员(可选)
staff_certificate filing_application_staff_cert 1:N staff_cert_id 备案时引用证书(可选)

3. 数据表作用与关系说明

本节按业务域列出 全部 24 张表 的职责及与其他表的关联,便于开发理解数据流向。
箭头含义:A → B 表示 A 表通过外键字段引用 B 表(或多对一归属 B

3.1 系统支撑域

sys_user — 系统用户

说明
作用 存储平台登录账号,支撑机构端、监管端身份认证;人员开通账号、重置密码均操作此表。
对应原型 人员信息管理(账号列、重置密码);认证/备案各模块的操作主体。
引用(上游) org_infoorg_id,机构用户必填;监管用户为空)
被引用(下游) staff_info.user_id(人员与账号 1:1 可选绑定)
关联方式 机构用户:sys_user.org_id = org_info.id;人员账号:staff_info.user_id = sys_user.id

sys_region — 行政区划

说明
作用 维护省→市→区县→街道→社区树形区划,供机构地址、备案属地下拉选择与列表展示。
对应原型 机构信息「所属县区/镇街道/村社区」;备案列表「备案属地」。
引用(上游) 自关联 parent_id → sys_region.id(树形结构)
被引用(下游) org_info.region_county_id / region_street_id / region_community_idfiling_application.filing_region_idfiling_record.filing_region_id
关联方式 树查询:parent_id;机构/备案:filing_region_id = sys_region.id

sys_dict — 数据字典

说明
作用 字典类型主表,定义下拉选项分类(备案状态、审核状态、设备状态等)。
对应原型 各页面「请选择」类筛选项、状态标签的后端枚举来源。
引用(上游)
被引用(下游) sys_dict_item.dict_id
关联方式 sys_dict_item.dict_id = sys_dict.id

sys_dict_item — 字典项

说明
作用 字典具体选项值与展示标签,如「已备案」「未审核」「启用/禁用」。
对应原型 备案状态、离职审核状态、设备状态等下拉框选项。
引用(上游) sys_dictdict_id
被引用(下游) 业务表通过 dict_code + item_value 逻辑引用,无物理外键
关联方式 查询:sys_dict.dict_code = 'filing_status' JOIN sys_dict_item

sys_attachment — 通用附件

说明
作用 统一管理各业务上传文件PDF 扫描件、证书图片、签名盖章等),避免各表重复存 URL。
对应原型 资质证书图片、申请材料上传、离职通知报告、承诺书签章、单位介绍附件等。
引用(上游) 无物理 FK通过 biz_type + biz_id 逻辑关联各业务主键
被引用(下游) 见 §1.4 biz_type 映射表
关联方式 WHERE biz_type = 'org_cert' AND biz_id = org_qualification_cert.id

audit_record — 审核流水

说明
作用 记录各类业务的提交、通过、驳回、退回操作及意见,用于审计追溯与状态机还原。
对应原型 机构认证审核、备案审核、离职审核、备案变更审核的状态流转历史。
引用(上游) 无;biz_type + biz_id 指向具体业务记录
被引用(下游) 无(只增不改的流水表)
关联方式 biz_type='filing_application' AND biz_id=filing_application.id

3.2 机构与企业域

org_info — 机构基本信息

说明
作用 核心主数据表。存储安全评价机构主体信息,承载首次「认证信息」填报、日常「机构信息管理」维护,并为备案申请提供基础数据。
对应原型 认证信息(填写→审核中→通过);机构信息管理;备案申请第一步单位信息。
引用(上游) sys_region(三区划 ID
被引用(下游) sys_userorg_departmentorg_positionstaff_infoorg_qualification_certequip_infofiling_applicationfiling_recordorg_certification_auditstaff_change_logstaff_resignation_apply(均含 org_id
关联方式 机构维度数据隔离:*.org_id = org_info.id

org_certification_audit — 机构认证审核记录

说明
作用 每次提交机构认证时生成一条审核记录,保留提交快照与审核结果,支持「认证审核中/通过/驳回」历史查询。
对应原型 认证信息步骤条:填写信息 → 认证审核中 → 认证通过。
引用(上游) org_infoorg_id
被引用(下游) 无;可与 audit_recordbiz_type=org_certification)并行写入
关联方式 org_certification_audit.org_id = org_info.id

org_qualification_cert — 机构资质证书

说明
作用 维护机构持有的安全评价等资质证书(等级、编号、有效期、发证机关),证书图片走 sys_attachment
对应原型 企业信息管理 → 资质信息管理(新增/编辑/禁用/删除证书)。
引用(上游) org_infoorg_id);附件 sys_attachmentbiz_type=org_cert
被引用(下游) 备案变更:资质变更时触发 filing_change_recordchange_type=qualification
关联方式 org_qualification_cert.org_id = org_info.id

3.3 组织与人员域

org_department — 部门

说明
作用 机构内部组织架构,支持多级部门树(原型左侧过滤树:第一级别、第二级别…)。
对应原型 企业信息管理 → 部门岗位管理 → 部门列表/新增/编辑。
引用(上游) org_infoorg_id);自关联 parent_id
被引用(下游) org_position.dept_idstaff_info.dept_id
关联方式 树:parent_id = 0 为根;人员:staff_info.dept_id = org_department.id

org_position — 岗位

说明
作用 定义部门下的岗位及职责,人员录入时选择岗位。
对应原型 部门岗位管理 → 添加岗位/编辑岗位(岗位名称、岗位职责、备注)。
引用(上游) org_infoorg_idorg_departmentdept_id
被引用(下游) staff_info.position_id
关联方式 org_position.dept_id = org_department.idstaff_info.position_id = org_position.id

staff_info — 人员信息

说明
作用 机构从业人员主数据,含基本信息、学历经历、专业能力;列表展示部门/岗位/证照摘要;变更时写 staff_change_log
对应原型 人员信息管理(列表、新增、查看、编辑);备案向导第三步人员(可引用本表)。
引用(上游) org_infoorg_departmentorg_positionsys_user(均可空)
被引用(下游) staff_certificatestaff_change_logstaff_resignation_applyfiling_application_staff.staff_id(可选)
关联方式 staff_info.org_id = org_info.id;证书:staff_certificate.staff_id = staff_info.id

staff_certificate — 人员证书

说明
作用 人员持有的各类执业/作业证书,含类别、编号、有效期;证书附件走 sys_attachment
对应原型 人员信息管理 → 添加证书/编辑证书/查看证书详情。
引用(上游) staff_infostaff_idorg_infoorg_id 冗余便于按机构查);sys_attachmentbiz_type=staff_cert
被引用(下游) filing_application_staff_cert.staff_cert_id(备案快照可选来源)
关联方式 staff_certificate.staff_id = staff_info.id

staff_change_log — 人员变更记录

说明
作用 人员信息修改时逐字段记录变更前后值,支撑「人员变更管理」列表的变更次数与变更明细查看。
对应原型 人员变更管理(变更事项、变更时间、操作人);变更内容如「法人:张三→李四」。
引用(上游) staff_infostaff_idorg_infoorg_id
被引用(下游) 无;变更可能间接触发 filing_change_record(机构已有备案时)
关联方式 staff_change_log.staff_id = staff_info.id;同步更新 staff_info.change_count

staff_resignation_apply — 人员离职申请

说明
作用 人员离职申请单,含离职原因、预计离职日期、离职通知报告;机构管理员审核后更新人员就职状态。
对应原型 人员离职申请(新增/查看);人员变更管理 → 离职审核(通过/退回)。
引用(上游) staff_infostaff_idorg_infoorg_idsys_attachmentbiz_type=resign_report
被引用(下游) audit_recordbiz_type=staff_resignation);审核通过 → 更新 staff_info.employment_status=2
关联方式 staff_resignation_apply.staff_id = staff_info.id

3.4 装备域

equip_info — 装备信息

说明
作用 评价机构检测仪器设备台账,含分类、型号、流量、校准信息及启用/禁用状态。
对应原型 企业信息管理 → 装备信息管理(新增/编辑/查看/启用禁用/删除)。
引用(上游) org_infoorg_id
被引用(下游) 无(独立主数据;二期监控模块可引用)
关联方式 equip_info.org_id = org_info.id

3.5 资质备案域

filing_application — 备案申请主表

说明
作用 备案业务流程主表,驱动 4 步向导(基本→材料→人员→承诺书),管理草稿/提交/审核状态;新备案与变更备案共用,通过后生成 filing_record
对应原型 资质申请管理 → 资质备案申请;备案变更管理中的编辑表单。
引用(上游) org_infoorg_idsys_regionfiling_region_idfiling_recordparent_filing_record_id,变更备案时)
被引用(下游) filing_application_materialfiling_application_stafffiling_commitment;审核通过 → filing_recordfiling_change_record.change_application_id
关联方式 子表均 application_id = filing_application.id;通过后 filing_record.application_id = filing_application.id

filing_application_material — 备案申请材料

说明
作用 备案向导第 2 步「申请材料清单」行数据,每条材料对应扫描件附件。
对应原型 资质备案申请 → 申请材料清单(内容、格式 pdf、注释、上传附件
引用(上游) filing_applicationapplication_idsys_attachmentbiz_type=filing_material
被引用(下游)
关联方式 filing_application_material.application_id = filing_application.id

filing_application_staff — 备案申请人员快照

说明
作用 备案向导第 3 步人员列表;申请提交时从 staff_info 复制或手工录入,与主数据隔离,保证备案历史不受后续人员变更影响。
对应原型 资质备案申请 → 人员信息(姓名、类型、职务、职称、查看证书)。
引用(上游) filing_applicationapplication_idstaff_infostaff_id,可选)
被引用(下游) filing_application_staff_certapplication_staff_id
关联方式 filing_application_staff.application_id = filing_application.id

filing_application_staff_cert — 备案申请人员证书快照

说明
作用 备案人员关联证书的时点快照,字段对齐 staff_certificate,支持「查看证书」而不回查已变更的主数据。
对应原型 备案人员信息 → 查看证书(证书类型、作业类别、编号、有效期等)。
引用(上游) filing_applicationapplication_idfiling_application_staffapplication_staff_idstaff_certificatestaff_cert_id,可选)
被引用(下游) sys_attachmentbiz_type=filing_staff_cert
关联方式 application_staff_id = filing_application_staff.id

filing_commitment — 法定代表人承诺书

说明
作用 备案向导第 4 步,记录法人签署信息;签名、盖章文件存 sys_attachment
对应原型 资质备案申请 → 申请单位法定代表人承诺书(签名、盖章、日期)。
引用(上游) filing_applicationapplication_id1:1
被引用(下游) sys_attachmentfiling_commitment_sign / filing_commitment_seal
关联方式 filing_commitment.application_id = filing_application.id(唯一)

filing_record — 已备案资质记录

说明
作用 备案审核通过后的正式备案台账,含备案编号、属地、业务范围、状态、变更次数;列表即「已备案资质管理」。
对应原型 已备案资质管理;资质备案/变更列表中的「已备案」状态行。
引用(上游) org_infoorg_idfiling_applicationapplication_idsys_regionfiling_region_id
被引用(下游) filing_application.filing_record_idfiling_change_record.filing_record_idfiling_application.parent_filing_record_id(变更备案)
关联方式 filing_record.application_id = filing_application.id;变更:filing_change_record.filing_record_id = filing_record.id

filing_change_record — 备案变更记录

说明
作用 已备案机构发生人员/资质/单位信息变更时的变更批次主记录,对应「备案变更管理」与「历史变更记录」。
对应原型 备案变更管理(变更次数、备案状态);说明:人员或资质变更后备案数据进入变更管理。
引用(上游) filing_recordfiling_record_idorg_infoorg_idfiling_applicationchange_application_id,变更类申请)
被引用(下游) filing_change_detailchange_record_id);完成后 filing_record.change_count + 1
关联方式 filing_change_record.filing_record_id = filing_record.id

filing_change_detail — 备案变更明细

说明
作用 单次备案变更的字段级明细,展示「由 A 变更为 B」如法人、联系电话变更。
对应原型 备案变更查看 → 变更内容由张三变更为李四、由152…变更为187…
引用(上游) filing_change_recordchange_record_id
被引用(下游) 无(只增不改)
关联方式 filing_change_detail.change_record_id = filing_change_record.id

3.6 表关系分层图

【租户根】 org_info
    ├── sys_user                    登录账号
    ├── org_certification_audit     认证审核历史
    ├── org_qualification_cert ──→ sys_attachment(org_cert)
    ├── org_department
    │       └── org_position
    ├── staff_info ──→ sys_user
    │       ├── staff_certificate ──→ sys_attachment(staff_cert)
    │       ├── staff_change_log
    │       └── staff_resignation_apply ──→ sys_attachment(resign_report)
    ├── equip_info
    └── filing_application ──→ sys_region(备案属地)
            ├── sys_attachment(org_intro)
            ├── filing_application_material ──→ sys_attachment(filing_material)
            ├── filing_application_staff ──→ staff_info(可选)
            │       └── filing_application_staff_cert ──→ staff_certificate(可选)
            ├── filing_commitment ──→ sys_attachment(sign/seal)
            └── [审核通过] filing_record ──→ sys_region
                    └── filing_change_record ──→ filing_application(变更类)
                            └── filing_change_detail

【全局】 sys_region / sys_dict / sys_dict_item / sys_attachment / audit_record

4. 系统与基础表(字段明细)

4.1 sys_user — 系统用户

作用:平台登录账号,机构用户绑定机构,人员可关联账号。
关系org_id → org_info;被 staff_info.user_id 引用。

原型:人员列表「账号」、重置密码;机构/监管登录主体。

字段 类型 说明
id BIGINT PK
org_id BIGINT 所属机构,监管用户 NULL
username VARCHAR(64) 登录账号UK(username, deleted)
password_hash VARCHAR(255) 密码
real_name VARCHAR(64) 姓名
phone VARCHAR(20) 手机
user_type TINYINT 1机构 2监管 3管理员
status TINYINT 0禁用 1正常
last_login_time DATETIME 最后登录
+ 通用字段

4.2 sys_region — 行政区划

作用:省市区街道社区树形区划,支撑机构地址与备案属地下拉。
关系:自关联 parent_id;被 org_infofiling_applicationfiling_record 引用。

原型:备案属地列表(省市区)、机构「所属县区/镇街道/村社区」。

字段 类型 说明
id BIGINT PK
parent_id BIGINT 父级
region_code VARCHAR(12) 国标码
region_name VARCHAR(64) 名称
region_level TINYINT 1省2市3区县4街道5社区
sort_order INT 排序
+ 通用字段

4.3 sys_dict / sys_dict_item — 数据字典

作用sys_dict 定义字典类型;sys_dict_item 存储具体选项值,供各业务状态下拉与展示。
关系sys_dict_item.dict_id → sys_dict.id;业务表通过 dict_code 逻辑引用。

dict_code 用途
filing_status 未备案 / 已备案 / 驳回
cert_audit_status 草稿 / 审核中 / 已通过 / 已驳回
org_business_status 开业 / 停业等
staff_employment_status 在职 / 离职
resign_audit_status 未审核 / 已审核 / 已退回
equip_enable_status 启用 / 禁用
material_format pdf 等

4.4 sys_attachment — 通用附件

作用:各业务上传文件的统一存储入口,通过 biz_type + biz_id 关联业务记录。
关系:逻辑关联多表,无物理外键;详见 §1.4。

见 §1.4。

4.5 audit_record — 审核流水(无 deleted

作用:跨业务审核操作流水,记录提交/通过/驳回/退回及意见。
关系biz_type + biz_id 指向 org_certification / filing_application / staff_resignation / filing_change 等业务记录。

字段 类型 说明
biz_type VARCHAR(32) org_certification / filing_application / staff_resignation / filing_change
biz_id BIGINT 业务ID
action VARCHAR(16) submit / approve / reject / return
from_status / to_status VARCHAR(32) 状态流转
opinion TEXT 意见
operate_time DATETIME 操作时间
create_time DATETIME
create_by VARCHAR(64) 操作人

5. 机构与企业信息(字段明细)

5.1 org_info — 机构基本信息

作用:机构核心主数据,承载认证填报与日常维护,是多数业务表的租户根。
关系region_*_id → sys_region;被 org/staff/filing/equip 等全部 org_id 子表引用。详见 §3.2。

原型:认证信息、机构信息管理、备案申请第一步字段。

字段 类型 原型字段
org_name VARCHAR(200) 生产经营单位名称
credit_code VARCHAR(18) 统一社会信用代码
register_address VARCHAR(500) 注册地址
business_address VARCHAR(500) 经营地址 / 办公地址
longitude / latitude DECIMAL 所在地坐标
region_county_id / region_street_id / region_community_id BIGINT 所属县区、镇街道、村社区
safety_industry_category VARCHAR(100) 安全生产监管行业类别
ownership_type VARCHAR(32) 归属类型
gb_industry_code VARCHAR(20) 国民经济行业分类
legal_representative / legal_rep_phone 法定代表人及电话
principal / principal_phone 主要负责人
safety_dept_head / safety_dept_phone 安全管理部门负责人
safety_vp / safety_vp_phone 主管安全副总
production_date DATE 投产日期
business_status VARCHAR(16) 企业经营状态
disclosure_url VARCHAR(500) 信息公开网址
workplace_area / archive_room_area DECIMAL 工作场所/档案室面积
full_time_evaluator_count INT 专职安全评价师数量
registered_safety_engineer_count INT 注册安全工程师数量
fixed_asset_total DECIMAL 固定资产总值(万元)
org_intro TEXT 单位基本情况介绍
cert_status TINYINT 0草稿1审核中2已通过3已驳回
cert_submit_time DATETIME 认证提交
cert_approve_time DATETIME 认证通过
+ 通用字段

5.2 org_certification_audit — 机构认证审核

作用:记录每次机构认证提交与审核结果,保留提交快照。
关系org_id → org_info;可与 audit_recordbiz_type=org_certification并行。

字段 类型 说明
org_id BIGINT 机构
audit_status TINYINT 1审核中2通过3驳回
submit_snapshot JSON 提交快照
audit_opinion TEXT 意见
audit_by VARCHAR(64) 审核人
audit_time DATETIME 审核时间
create_time / create_by 仅创建字段

5.3 org_qualification_cert — 机构资质证书

作用:机构持有的资质证书台账,变更时可触发备案变更流程。
关系org_id → org_info;附件 sys_attachment(biz_type=org_cert)

原型:资质信息管理(证照类型、证书名称、编号、有效期、发证机关、证书图片)。

字段 类型 说明
org_id BIGINT 机构
cert_type VARCHAR(64) 证照类型
cert_name VARCHAR(128) 证书名称
cert_no VARCHAR(64) 证明编号
issue_org VARCHAR(128) 发证机关
issue_date DATE 发证日期
valid_start_date / valid_end_date DATE 有效期
remark VARCHAR(500) 备注
enable_status TINYINT 1正常0禁用原型「禁用」
附件 sys_attachment biz_type=org_cert
+ 通用字段

6. 组织与人员(字段明细)

6.1 org_department — 部门

作用:机构组织架构树,支撑部门岗位管理与人员部门归属。
关系org_id → org_infoparent_id 自关联;被 org_positionstaff_info 引用。

原型:部门岗位管理,树形筛选(第一级别、第二级别…)。

字段 类型 说明
org_id BIGINT 机构
parent_id BIGINT 父部门0根
dept_name VARCHAR(64) 部门名称
dept_level VARCHAR(32) 部门级别
leader_name VARCHAR(64) 负责人
sort_order INT 排序
tree_path VARCHAR(256) 物化路径
+ 通用字段

6.2 org_position — 岗位

作用:部门下岗位定义,含岗位职责说明。
关系org_id → org_infodept_id → org_department;被 staff_info.position_id 引用。

字段 类型 说明
org_id / dept_id BIGINT 机构、部门
position_name VARCHAR(64) 岗位名称
duty_desc VARCHAR(500) 岗位职责
remark VARCHAR(255) 备注
+ 通用字段

6.3 staff_info — 人员信息

作用:机构从业人员主数据,关联部门岗位与账号,是证书/变更/离职的上游。
关系org_id → org_infodept_id → org_departmentposition_id → org_positionuser_id → sys_user;下游见 staff_* / filing_application_staff。

原型:人员列表(用户名称、账号、部门、岗位、证照名称);详情(出生日期、性别、身份证、学历、资质范围、专业能力等)。

字段 类型 原型
staff_name VARCHAR(64) 姓名
gender TINYINT 性别
id_card_no VARCHAR(18) 身份证号
birth_date DATE 出生日期
account VARCHAR(32) 账号
dept_id / position_id BIGINT 部门、岗位
education / graduate_school / major 学历、院校、专业
home_address / office_address 现住/办公地址
person_type VARCHAR(32) 人员类型
job_title / professional_title 职务、职称
qualification_scope VARCHAR(255) 资质范围
career_level_cert_no VARCHAR(64) 职业等级及证书编号
is_registered_safety_engineer TINYINT 是否注册安全工程师
self_declared_ability TEXT 自我申报专业能力
work_experience TEXT 主要学习工作经历
publications TEXT 专著专利论文等
employment_status TINYINT 1在职2离职
change_count INT 信息变更数(列表冗余)
user_id BIGINT 关联 sys_user
+ 通用字段

6.4 staff_certificate — 人员证书

作用:人员执业/作业证书明细,列表「证照名称」数据来源。
关系staff_id → staff_infoorg_id → org_info;附件 sys_attachment(staff_cert);可被 filing_application_staff_cert 快照引用。

原型:证书类型、作业类别、编号、有效期、复核日期、证书图片。

字段 类型 说明
staff_id / org_id BIGINT 人员、机构
cert_name / cert_category / cert_work_category 证照名称、类别、作业类别
cert_no VARCHAR(64) 证书编号
issue_org VARCHAR(128) 发证机关
valid_start_date / valid_end_date / review_date DATE 有效期、复核
附件 sys_attachment biz_type=staff_cert
+ 通用字段

6.5 staff_change_log — 人员变更记录

作用:人员字段变更的审计日志,驱动「信息变更数」统计。
关系staff_id → staff_infoorg_id → org_info;只增不改,无 deleted。

原型:变更事项、变更时间、操作人;人员变更管理列表「信息变更数」。

字段 类型 说明
staff_id / org_id BIGINT
change_item VARCHAR(64) 变更事项
field_name VARCHAR(64) 程序字段名
old_value / new_value VARCHAR(500) 变更前后
change_time DATETIME 变更时间
create_time / create_by 操作人

6.6 staff_resignation_apply — 人员离职申请

作用:离职申请与审核,通过后更新 staff_info.employment_status
关系staff_id → staff_infoorg_id → org_info;附件 sys_attachment(resign_report);可写 audit_record

原型:申请人、申请时间、离职原因、备注、预计离职日期、离职通知报告;审核状态、退回原因。

字段 类型 说明
staff_id / org_id BIGINT
applicant_name VARCHAR(64) 申请人
apply_time DATETIME 申请时间
expected_leave_date DATE 预计离职日期
leave_reason / remark TEXT 离职原因、备注
audit_status TINYINT 0未审核1已审核2已退回
reject_reason TEXT 退回原因
audit_by / audit_time 审核人、审核时间
附件 sys_attachment biz_type=resign_report
+ 通用字段

7. 装备管理(字段明细)

7.1 equip_info — 装备信息

作用:评价机构仪器设备台账,独立主数据。
关系org_id → org_info;无下游业务表(二期监控可引用)。

原型:仪器分类、设备类型、设备名称、型号、流量、厂家、校准单位/初值、现场校验类型、是否双路、启用/禁用。

字段 类型 说明
instrument_category / instrument_type / device_type VARCHAR 分类
device_name / model 名称、型号
flow_desc / min_flow / max_flow 流量说明
manufacturer VARCHAR(128) 厂家
calibration_unit / calibration_initial_value 校准
on_site_calibration_type VARCHAR(64) 现场校验类型
is_dual_channel TINYINT 是否双路
enable_status TINYINT 1启用0禁用
purchase_date DATE 登记日期
+ 通用字段

8. 资质备案(字段明细)

8.1 filing_application — 备案申请主表

作用:备案 4 步向导流程主表,串联材料/人员/承诺书子表,审核通过后生成 filing_record
关系org_id → org_infofiling_region_id → sys_region;子表 application_id;详见 §3.5。

原型4 步向导 + 备案变更编辑;列表筛选项(备案编号、备案属地、备案状态、备案单位)。

字段 类型 步骤/说明
application_no VARCHAR(32) 申请编号
application_type TINYINT 1新备案2变更备案
filing_region_id BIGINT 备案属地
filing_unit_name / filing_unit_type 备案单位、类型
register_address / office_address 注册/办公地址
credit_code / qualification_cert_no 信用代码、资质证书编号
legal_rep_and_phone / contact_and_phone 法人及电话、联系人及电话
disclosure_url 信息公开网址
fixed_asset_total / archive_room_area 固定资产、档案室面积
full_time_evaluator_count / registered_safety_engineer_count 评价师、注安师数量
workplace_area / org_intro 建筑面积、单位介绍
business_scope VARCHAR(500) 备案安全评价业务范围
current_step TINYINT 1基本2材料3人员4承诺书
apply_status TINYINT 0草稿1提交2审核中3通过4驳回
filing_record_id BIGINT 通过后关联
parent_filing_record_id BIGINT 变更备案原记录
submit_time / approve_time DATETIME 提交、通过时间
附件 sys_attachment biz_type=org_intro
+ 通用字段

8.2 filing_application_material — 申请材料步骤2

作用:备案向导第 2 步材料清单行。
关系application_id → filing_application;附件 sys_attachment(filing_material)

字段 类型 原型
material_content VARCHAR(255) 申请材料目录
material_type VARCHAR(32) 纸质版扫描件
file_format VARCHAR(16) pdf
remark VARCHAR(500) 注释
sort_order INT 内容序号
附件 sys_attachment biz_type=filing_material
+ 通用字段

8.3 filing_application_staff — 备案人员快照步骤3

作用:备案时点人员快照,与 staff_info 隔离。
关系application_id → filing_applicationstaff_id → staff_info(可选);下游 filing_application_staff_cert

字段 类型 原型
staff_id BIGINT 可选,来自 staff_info
staff_name VARCHAR(64) 人员姓名
person_type / job_title / professional_title 类型、职务、职称
sort_order INT 序号
+ 通用字段

8.4 filing_application_staff_cert — 备案人员证书快照

作用:备案人员证书时点快照,支持「查看证书」。
关系application_staff_id → filing_application_staffstaff_cert_id → staff_certificate(可选)。

原型:人员信息步骤「查看证书」— 与 staff_certificate 字段对齐,申请时独立快照。

字段 类型 说明
application_id BIGINT 备案申请
application_staff_id BIGINT 备案人员
staff_cert_id BIGINT 来源证书,可空
cert_name / cert_category / cert_work_category / cert_no 同 staff_certificate
valid_start_date / valid_end_date / review_date DATE
附件 sys_attachment biz_type=filing_staff_cert
+ 通用字段

8.5 filing_commitment — 法定代表人承诺书步骤4

作用:备案第 4 步法人承诺签署记录。
关系application_id → filing_application1:1签章附件走 sys_attachment

字段 类型 说明
application_id BIGINT 1:1
legal_rep_name VARCHAR(64) 法定代表人
sign_date DATE 签署日期
content_version VARCHAR(16) 模板版本
签名/盖章 sys_attachment filing_commitment_sign / seal
+ 通用字段

8.6 filing_record — 已备案资质

作用:备案通过后正式台账,「已备案资质管理」列表数据源。
关系org_id → org_infoapplication_id → filing_applicationfiling_region_id → sys_region;下游 filing_change_record

原型列表:备案属地、备案单位、备案编号、备案业务范围、备案状态、变更次数。

字段 类型 说明
org_id BIGINT 机构
application_id BIGINT 来源申请
filing_no VARCHAR(32) 备案编号
filing_region_id BIGINT 备案属地
filing_unit_name VARCHAR(200) 备案单位
business_scope VARCHAR(500) 备案业务范围
filing_status VARCHAR(16) 未备案/已备案/驳回
change_count INT 变更次数
filing_time DATETIME 备案时间
snapshot_json JSON 通过时全量快照
+ 通用字段

8.7 filing_change_record — 备案变更

作用:已备案机构变更批次主记录,含变更次数统计。
关系filing_record_id → filing_recordchange_application_id → filing_application;下游 filing_change_detail

原型:备案变更管理;人员/资质变更后进入;历史变更记录。

字段 类型 说明
filing_record_id / org_id BIGINT
change_application_id BIGINT 变更类 filing_application
change_type VARCHAR(32) personnel / qualification / org_info / mixed
change_summary VARCHAR(500) 摘要
change_status TINYINT 0进行中1完成2驳回
change_time DATETIME 完成时间
+ 通用字段

8.8 filing_change_detail — 备案变更明细

作用:备案变更字段级前后值对比明细。
关系change_record_id → filing_change_record;只增不改。

原型「由张三变更为李四」「由152…变更为187…」。

字段 类型 说明
change_record_id BIGINT 变更记录
change_field / change_field_label 字段、展示名
old_value / new_value VARCHAR(500) 变更前后
create_time / create_by 仅创建

9. 业务流程与状态

9.1 机构认证org_info.cert_status

0草稿 --暂存/提交--> 1审核中 --通过--> 2已通过
                    └──驳回--> 3已驳回 --再提交--> 1审核中

9.2 备案申请向导

current_step 页面
1 基本信息 + 上传附件 filing_application + sys_attachment(org_intro)
2 申请材料清单 filing_application_material + sys_attachment
3 人员信息 + 证书 filing_application_staff + filing_application_staff_cert
4 法定代表人承诺书 filing_commitment + sys_attachment

提交后 apply_status → 1/2监管审核通过 → 写入 filing_recordfiling_application.filing_record_id 回写。

9.3 备案变更触发

机构存在有效 filing_record 时,以下变更应生成 filing_change_record + filing_change_detail,并 change_count + 1

  • staff_info / staff_certificate 增删改
  • org_qualification_cert 变更
  • org_info 法人、联系方式等关键字段变更

9.4 人员离职

staff_resignation_apply.audit_status:
  0未审核 --通过--> 1已审核 → staff_info.employment_status = 2
          └──退回--> 2已退回

10. 索引与查询建议

  1. 列表:org_id + deleted + 状态字段 + create_time DESC
  2. 唯一键与逻辑删除:业务唯一键使用 (code, deleted) 组合,避免软删后无法重建
  3. MyBatis-Plus 全局:@TableLogic 自动追加 deleted = 0
  4. 流水表不加 deleted,不做更新
  5. 大 JSONsnapshot_json可按年归档

11. 表清单总览(共 24 张)

# 表名 作用 主要关联 通用字段
1 sys_user 登录账号与权限主体 org_info ← org_id→ staff_info 完整
2 sys_region 行政区划树 自关联 parent_id→ org_info / filing_* 完整
3 sys_dict 字典类型 → sys_dict_item 完整
4 sys_dict_item 字典选项值 sys_dict ← dict_id 完整
5 sys_attachment 统一文件存储 逻辑关联各业务 biz_type+biz_id 完整
6 audit_record 跨业务审核流水 逻辑关联各审核业务 仅 create
7 org_info 机构租户根、认证与主数据 → 几乎全部 org_id 子表 完整
8 org_certification_audit 机构认证审核历史 org_info ← org_id 仅 create
9 org_qualification_cert 机构资质证书 org_info ← org_id→ sys_attachment 完整
10 org_department 部门组织树 org_info ← org_id→ org_position / staff_info 完整
11 org_position 部门岗位 org_department ← dept_id→ staff_info 完整
12 staff_info 人员主数据 org_info / dept / position / sys_user→ staff_* 完整
13 staff_certificate 人员证书 staff_info ← staff_id→ filing_staff_cert 快照 完整
14 staff_change_log 人员变更审计 staff_info ← staff_id 仅 create
15 staff_resignation_apply 离职申请与审核 staff_info ← staff_id→ sys_attachment 完整
16 equip_info 仪器设备台账 org_info ← org_id 完整
17 filing_application 备案流程主表 org_info / sys_region→ filing_* 子表 / filing_record 完整
18 filing_application_material 备案材料步骤2 filing_application ← application_id 完整
19 filing_application_staff 备案人员快照步骤3 filing_application ← application_id→ staff_cert 快照 完整
20 filing_application_staff_cert 备案人员证书快照 filing_application_staff ← application_staff_id 完整
21 filing_commitment 法人承诺书步骤4 filing_application ← application_id1:1 完整
22 filing_record 已备案正式台账 filing_application ← application_id→ filing_change_record 完整
23 filing_change_record 备案变更批次 filing_record ← filing_record_id→ change_detail 完整
24 filing_change_detail 备案变更字段明细 filing_change_record ← change_record_id 仅 create

各表详细说明见 §3 数据表作用与关系说明;字段定义见 §4§8


12. DDL 脚本

完整建表见 database-schema.sql


13. 修订记录

版本 日期 说明
v1.0 2026-06-17 初版
v1.1 2026-06-17 对齐 MyBatis-Plus 通用字段DATE/DATETIME 区分;新增 filing_application_staff_cert附件统一 sys_attachment
v1.2 2026-06-17 补充每张表作用与关系说明§3、表清单关联列§11、字段节引用块