## 一、设计说明

本设计依据产品原型（机构认证、企业信息管理、资质申请管理模块）产出，遵循《数据库规范.md》与 GBS 后端表结构约定：

- 字符集 `utf8mb4`，排序规则 `utf8mb4_0900_ai_ci`
- 库表字段小写 + 下划线命名，禁止外键，中文注释
- 字典类字段存编码 + 翻译字段
- 标识类字段使用 `xxx_flag`，类型 `tinyint`（1=是，2=否）
- 业务主表含 GBS 默认字段：`delete_enum`、`remarks`、`create_name`、`update_name`、`tenant_id`、`org_id`、`version`、`create_time`、`update_time`、`create_id`、`update_id`、`env`
- 纯关联表不含上述默认字段

---

## 二、表清单

| 序号 | 表名 | 作用 |
|------|------|------|
| 1 | org_info | 机构基本信息及认证状态 |
| 2 | org_qualification | 机构资质证书 |
| 3 | org_department | 部门（树形） |
| 4 | org_position | 岗位 |
| 5 | org_personnel | 人员信息 |
| 6 | org_personnel_cert | 人员证书 |
| 7 | org_personnel_change | 人员信息变更记录 |
| 8 | org_resign_apply | 人员离职申请 |
| 9 | org_equipment | 装备信息 |
| 10 | qual_filing | 资质备案申请主表 |
| 11 | qual_filing_material | 备案申请材料 |
| 12 | qual_filing_commitment | 法定代表人承诺书 |
| 13 | qual_filing_personnel | 备案申请关联人员 |
| 14 | qual_filing_personnel_cert | 备案申请关联人员证书 |
| 15 | qual_filing_equipment | 备案申请关联装备快照 |
| 16 | qual_filing_change | 备案变更申请 |
| 17 | qual_filing_change_detail | 备案变更明细 |

---

## 三、表关系（ER 概览）

```
org_info (1) ──┬── (N) org_qualification
               ├── (N) org_department ── (N) org_position
               ├── (N) org_personnel ──┬── (N) org_personnel_cert
               │                       ├── (N) org_personnel_change
               │                       └── (N) org_resign_apply
               ├── (N) org_equipment
               └── (N) qual_filing ──┬── (N) qual_filing_material
                                     ├── (1) qual_filing_commitment
                                     ├── (N) qual_filing_personnel ── (N) qual_filing_personnel_cert
                                     └── (N) qual_filing_equipment

qual_filing (1) ── (N) qual_filing_change ── (N) qual_filing_change_detail
```

**关系说明：**

| 主表 | 从表 | 关系 | 说明 |
|------|------|------|------|
| org_info | org_qualification | 1:N | 一个机构拥有多张资质证书 |
| org_info | org_department | 1:N | 一个机构多个部门，部门通过 parent_id 自关联形成树 |
| org_department | org_position | 1:N | 一个部门多个岗位 |
| org_department | org_personnel | 1:N | 人员归属部门 |
| org_position | org_personnel | 1:N | 人员归属岗位 |
| org_personnel | org_personnel_cert | 1:N | 一个人员多张证书 |
| org_personnel | org_personnel_change | 1:N | 人员变更产生多条变更记录 |
| org_personnel | org_resign_apply | 1:N | 人员可有多条离职申请 |
| org_info | org_equipment | 1:N | 机构装备清单 |
| org_info | qual_filing | 1:N | 机构可多次发起备案申请 |
| qual_filing | qual_filing_material | 1:N | 备案申请材料清单 |
| qual_filing | qual_filing_commitment | 1:1 | 每条备案一条承诺书 |
| qual_filing | qual_filing_personnel | 1:N | 备案关联人员（可引用 org_personnel） |
| qual_filing_personnel | qual_filing_personnel_cert | 1:N | 备案人员证书 |
| qual_filing | qual_filing_equipment | 1:N | 备案装备快照（引用 org_equipment） |
| qual_filing | qual_filing_change | 1:N | 已备案记录发生变更时产生变更单 |
| qual_filing_change | qual_filing_change_detail | 1:N | 变更单字段级明细 |

---

## 四、各表详细说明

### 4.1 org_info — 机构信息表

**作用：** 存储安全评价机构基本信息，支撑「机构信息管理」「机构认证」模块；含认证流程状态（填写信息 → 审核中 → 通过）。

**主要字段：**

| 字段 | 说明 |
|------|------|
| unit_name | 生产经营单位名称 |
| credit_code | 统一社会信用代码 |
| auth_status / auth_status_name | 认证状态（字典） |
| longitude / latitude | 所在地坐标 |
| legal_representative | 法定代表人 |
| fulltime_evaluator_count | 专职安全评价师数量 |
| registered_engineer_count | 注册安全工程师数量 |

---

### 4.2 org_qualification — 机构资质证书表

**作用：** 机构资质信息管理，记录证照类型、证书名称、编号、有效期、发证机关、证书图片等；支持启用/禁用。

**关联：** `org_id` → org_info.id

---

### 4.3 org_department — 部门表

**作用：** 部门岗位管理之部门维护，支持树形层级（parent_id）。

**主要字段：** dept_name、manager_name、dept_level_code/dept_level_name

**关联：** `org_id` → org_info.id；`parent_id` 自关联

---

### 4.4 org_position — 岗位表

**作用：** 部门下岗位维护，含岗位名称、职责、备注。

**关联：** `org_id` → org_info.id；`dept_id` → org_department.id

---

### 4.5 org_personnel — 人员信息表

**作用：** 机构人员录入与维护，含账号、姓名、部门、岗位、性别、身份证、学历等；就职状态供人员变更管理使用。

**关联：** `org_id`、`dept_id`、`post_id`

---

### 4.6 org_personnel_cert — 人员证书表

**作用：** 人员持有的各类证书（证照名称、类别、作业类别、编号、有效期、复核日期、附件）。

**关联：** `personnel_id` → org_personnel.id

---

### 4.7 org_personnel_change — 人员变更记录表

**作用：** 记录人员在信息管理页面的修改历史（变更事项、变更时间、操作人），供人员变更管理查看变更次数与明细。

**关联：** `personnel_id` → org_personnel.id

---

### 4.8 org_resign_apply — 人员离职申请表

**作用：** 离职申请的新增、查看、审核（通过/退回）；含离职原因、预计离职日期、离职通知报告附件。

**关联：** `personnel_id` → org_personnel.id

---

### 4.9 org_equipment — 装备信息表

**作用：** 评价机构装备维护（仪器分类、设备类型、型号、流量、校准信息、是否双路等），支持启用/停用。

**关联：** `org_id` → org_info.id

---

### 4.10 qual_filing — 资质备案申请表

**作用：** 资质备案申请、已备案资质管理、变更草稿的主表；含备案属地、备案单位、备案编号、业务范围及统一备案状态。

**备案状态 `filing_status_code`：** 1已备案 / 2审核中 / 3已打回 / 4变更审核中 / 5暂存（全模块统一五态）。

**申请类型 `apply_type_code`：** 1资质备案申请 / 2变更备案草稿 / 3已备案资质填报。

**主要扩展字段：** `origin_filing_id`（变更草稿关联原备案）、`reject_reason`、`submit_time`、`approve_time`。

**变更次数：** 列表 `changeCount` 由 `qual_filing_change_detail` 聚合统计，**主表不落库**。

**关联：** `org_id` → org_info.id；`origin_filing_id` → qual_filing.id（自关联）

---

### 4.11 qual_filing_material — 备案申请材料表

**作用：** 备案流程「备案材料上传」步骤（5 步表单第 2 步），记录材料内容、格式、排序、是否必需、上传状态、附件 URL、注释。

**主要字段：** `sort_order`、`required_flag`、`upload_status_code`、`attachment_desc`

**关联：** `filing_id` → qual_filing.id

---

### 4.12 qual_filing_commitment — 法定代表人承诺书表

**作用：** 备案流程承诺书步骤，存储承诺内容、法人签名图片地址、签署日期。

**关联：** `filing_id` → qual_filing.id（1:1）

---

### 4.13 qual_filing_personnel — 备案申请人员表

**作用：** 备案流程中的人员信息快照，字段较 org_personnel 扩展（人员类型、职称、资质范围、注册安全工程师资格、专业能力申报等）；`source_personnel_id` 可关联原人员表。

**关联：** `filing_id` → qual_filing.id

---

### 4.14 qual_filing_personnel_cert — 备案申请人员证书表

**作用：** 备案流程中人员证书快照；`source_cert_id` 关联 org_personnel_cert。

**关联：** `filing_personnel_id` → qual_filing_personnel.id

---

### 4.15 qual_filing_equipment — 备案申请装备表

**作用：** 备案流程「装备清单」步骤（5 步表单第 5 步）装备快照；`source_equipment_id` 关联 org_equipment；`calibration_report_url` 存计量检定报告 URL。

**关联：** `filing_id` → qual_filing.id

---

### 4.16 qual_filing_change — 备案变更表

**作用：** 每次变更提交的快照头记录；`origin_filing_id` 关联原备案，`change_filing_id` 关联变更草稿 qual_filing。

**关联：** `origin_filing_id` → qual_filing.id

---

### 4.17 qual_filing_change_detail — 备案变更明细表

**作用：** 按 5 步表单记录变更明细（哪一步有变更记一条）；供「备案变更记录」弹窗展示：变更事项（form_step_name）、变更时间（create_time）、操作人（create_name）。

**5 步表单编码 `form_step_code`：** 1备案基本信息 / 2备案材料上传 / 3法定代表人承诺书 / 4备案人员管理 / 5装备清单

**关联：** `change_id` → qual_filing_change.id

---

## 五、索引设计要点

- 各表主键 `id` 自增
- 业务查询字段：`org_id`、`personnel_id`、`filing_id`、`dept_id` 等建普通索引
- 唯一约束：`org_info.credit_code`（同租户下）、`org_personnel.account`（同机构下）等按业务需要建唯一索引

---

## 六、模块与表映射

| 产品模块 | 对应表 |
|----------|--------|
| 机构认证 / 机构信息管理 | org_info |
| 资质信息管理 | org_qualification |
| 部门岗位管理 | org_department、org_position |
| 人员信息管理 | org_personnel、org_personnel_cert |
| 人员变更管理 | org_personnel、org_personnel_change |
| 人员离职申请 | org_resign_apply |
| 装备信息管理 | org_equipment |
| 资质备案申请 | qual_filing（apply_type=1）及子表 |
| 已备案资质管理 | qual_filing（apply_type=3） |
| 备案变更管理 | qual_filing（apply_type=3 列表）+ qual_filing_change + qual_filing_change_detail |
