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

> 版本：v1.2  
> 依据：产品原型 PDF（设计文件 1–12）  
> 数据库：MySQL 8.0+ / InnoDB / utf8mb4_unicode_ci  
> ORM：MyBatis-Plus（通用字段与 `@TableLogic` 对齐）

---

## 1. 文档说明

### 1.1 设计目标

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

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

### 1.2 命名规范

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

### 1.3 通用字段（与 MyBatis-Plus BaseEntity 对齐）

业务表（可增删改）均包含以下 5 个字段：

```java
/** 创建时间 */
@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：

```sql
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_time`、`create_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 数据表作用与关系说明](#3-数据表作用与关系说明)。

```mermaid
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_info`（`org_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_id`；`filing_application.filing_region_id`；`filing_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_dict`（`dict_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_user`、`org_department`、`org_position`、`staff_info`、`org_qualification_cert`、`equip_info`、`filing_application`、`filing_record`、`org_certification_audit`、`staff_change_log`、`staff_resignation_apply`（均含 `org_id`） |
| **关联方式** | 机构维度数据隔离：`*.org_id = org_info.id` |

#### org_certification_audit — 机构认证审核记录

| 项 | 说明 |
|----|------|
| **作用** | 每次提交机构认证时生成一条审核记录，保留提交快照与审核结果，支持「认证审核中/通过/驳回」历史查询。 |
| **对应原型** | 认证信息步骤条：填写信息 → 认证审核中 → 认证通过。 |
| **引用（上游）** | `org_info`（`org_id`） |
| **被引用（下游）** | 无；可与 `audit_record`（`biz_type=org_certification`）并行写入 |
| **关联方式** | `org_certification_audit.org_id = org_info.id` |

#### org_qualification_cert — 机构资质证书

| 项 | 说明 |
|----|------|
| **作用** | 维护机构持有的安全评价等资质证书（等级、编号、有效期、发证机关），证书图片走 `sys_attachment`。 |
| **对应原型** | 企业信息管理 → 资质信息管理（新增/编辑/禁用/删除证书）。 |
| **引用（上游）** | `org_info`（`org_id`）；附件 `sys_attachment`（`biz_type=org_cert`） |
| **被引用（下游）** | 备案变更：资质变更时触发 `filing_change_record`（`change_type=qualification`） |
| **关联方式** | `org_qualification_cert.org_id = org_info.id` |

---

### 3.3 组织与人员域

#### org_department — 部门

| 项 | 说明 |
|----|------|
| **作用** | 机构内部组织架构，支持多级部门树（原型左侧过滤树：第一级别、第二级别…）。 |
| **对应原型** | 企业信息管理 → 部门岗位管理 → 部门列表/新增/编辑。 |
| **引用（上游）** | `org_info`（`org_id`）；自关联 `parent_id` |
| **被引用（下游）** | `org_position.dept_id`；`staff_info.dept_id` |
| **关联方式** | 树：`parent_id = 0` 为根；人员：`staff_info.dept_id = org_department.id` |

#### org_position — 岗位

| 项 | 说明 |
|----|------|
| **作用** | 定义部门下的岗位及职责，人员录入时选择岗位。 |
| **对应原型** | 部门岗位管理 → 添加岗位/编辑岗位（岗位名称、岗位职责、备注）。 |
| **引用（上游）** | `org_info`（`org_id`）；`org_department`（`dept_id`） |
| **被引用（下游）** | `staff_info.position_id` |
| **关联方式** | `org_position.dept_id = org_department.id`；`staff_info.position_id = org_position.id` |

#### staff_info — 人员信息

| 项 | 说明 |
|----|------|
| **作用** | 机构从业人员主数据，含基本信息、学历经历、专业能力；列表展示部门/岗位/证照摘要；变更时写 `staff_change_log`。 |
| **对应原型** | 人员信息管理（列表、新增、查看、编辑）；备案向导第三步人员（可引用本表）。 |
| **引用（上游）** | `org_info`、`org_department`、`org_position`、`sys_user`（均可空） |
| **被引用（下游）** | `staff_certificate`、`staff_change_log`、`staff_resignation_apply`；`filing_application_staff.staff_id`（可选） |
| **关联方式** | `staff_info.org_id = org_info.id`；证书：`staff_certificate.staff_id = staff_info.id` |

#### staff_certificate — 人员证书

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

#### staff_change_log — 人员变更记录

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

#### staff_resignation_apply — 人员离职申请

| 项 | 说明 |
|----|------|
| **作用** | 人员离职申请单，含离职原因、预计离职日期、离职通知报告；机构管理员审核后更新人员就职状态。 |
| **对应原型** | 人员离职申请（新增/查看）；人员变更管理 → 离职审核（通过/退回）。 |
| **引用（上游）** | `staff_info`（`staff_id`）；`org_info`（`org_id`）；`sys_attachment`（`biz_type=resign_report`） |
| **被引用（下游）** | `audit_record`（`biz_type=staff_resignation`）；审核通过 → 更新 `staff_info.employment_status=2` |
| **关联方式** | `staff_resignation_apply.staff_id = staff_info.id` |

---

### 3.4 装备域

#### equip_info — 装备信息

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

---

### 3.5 资质备案域

#### filing_application — 备案申请主表

| 项 | 说明 |
|----|------|
| **作用** | 备案业务**流程主表**，驱动 4 步向导（基本→材料→人员→承诺书），管理草稿/提交/审核状态；新备案与变更备案共用，通过后生成 `filing_record`。 |
| **对应原型** | 资质申请管理 → 资质备案申请；备案变更管理中的编辑表单。 |
| **引用（上游）** | `org_info`（`org_id`）；`sys_region`（`filing_region_id`）；`filing_record`（`parent_filing_record_id`，变更备案时） |
| **被引用（下游）** | `filing_application_material`、`filing_application_staff`、`filing_commitment`；审核通过 → `filing_record`；`filing_change_record.change_application_id` |
| **关联方式** | 子表均 `application_id = filing_application.id`；通过后 `filing_record.application_id = filing_application.id` |

#### filing_application_material — 备案申请材料

| 项 | 说明 |
|----|------|
| **作用** | 备案向导第 2 步「申请材料清单」行数据，每条材料对应扫描件附件。 |
| **对应原型** | 资质备案申请 → 申请材料清单（内容、格式 pdf、注释、上传附件）。 |
| **引用（上游）** | `filing_application`（`application_id`）；`sys_attachment`（`biz_type=filing_material`） |
| **被引用（下游）** | 无 |
| **关联方式** | `filing_application_material.application_id = filing_application.id` |

#### filing_application_staff — 备案申请人员快照

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

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

| 项 | 说明 |
|----|------|
| **作用** | 备案人员关联证书的时点快照，字段对齐 `staff_certificate`，支持「查看证书」而不回查已变更的主数据。 |
| **对应原型** | 备案人员信息 → 查看证书（证书类型、作业类别、编号、有效期等）。 |
| **引用（上游）** | `filing_application`（`application_id`）；`filing_application_staff`（`application_staff_id`）；`staff_certificate`（`staff_cert_id`，可选） |
| **被引用（下游）** | `sys_attachment`（`biz_type=filing_staff_cert`） |
| **关联方式** | `application_staff_id = filing_application_staff.id` |

#### filing_commitment — 法定代表人承诺书

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

#### filing_record — 已备案资质记录

| 项 | 说明 |
|----|------|
| **作用** | 备案审核通过后的**正式备案台账**，含备案编号、属地、业务范围、状态、变更次数；列表即「已备案资质管理」。 |
| **对应原型** | 已备案资质管理；资质备案/变更列表中的「已备案」状态行。 |
| **引用（上游）** | `org_info`（`org_id`）；`filing_application`（`application_id`）；`sys_region`（`filing_region_id`） |
| **被引用（下游）** | `filing_application.filing_record_id`；`filing_change_record.filing_record_id`；`filing_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_record`（`filing_record_id`）；`org_info`（`org_id`）；`filing_application`（`change_application_id`，变更类申请） |
| **被引用（下游）** | `filing_change_detail`（`change_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_record`（`change_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_info`、`filing_application`、`filing_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_record`（biz_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_info`；`parent_id` 自关联；被 `org_position`、`staff_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_info`；`dept_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_info`；`dept_id → org_department`；`position_id → org_position`；`user_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_info`；`org_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_info`；`org_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_info`；`org_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_info`；`filing_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_application`；`staff_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_staff`；`staff_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_application`（1: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_info`；`application_id → filing_application`；`filing_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_record`；`change_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_record`，`filing_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. 大 JSON（snapshot_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_id（1: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`](./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）、字段节引用块 |
