safety-eval-service/docs/db/phase2/数据库设计文档-二期.md

254 lines
9.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

# 安全评价系统二期数据库设计文档
| 日期 | 版本 | 说明 |
|------|------|------|
| 2026.07.20 | v1.0.0 | 二期建表(八节点专表,无流程引擎) |
脚本:`docs/db/phase2/init-phase2.sql`
---
## 一、设计约定
| 项 | 约定 |
|----|------|
| 字符集 | utf8mb4 / utf8mb4_0900_ai_ci |
| 命名 | 小写 + 下划线,表名 ≤32 字符 |
| 外键 | 禁止物理外键;逻辑关联由业务层维护 |
| 标识 | `xxx_flag`1是 / 2否 |
| 金额 | 单位bigint |
| 文件 | 仅存 URL |
| 逻辑删除 | `delete_enum`true / false |
| 公共字段 | delete_enum、remarks、create_name、update_name、tenant_id、org_id视表、version、create_time、update_time、create_id、update_id、env |
| 消息 | 复用 GBS本库不建消息表 |
| 项目节点 | 按原型 8 个法定节点各建专表;**无**节点定义/实例/通用表单引擎表 |
---
## 二、一期复用表
| 表名 | 作用 | 原型端 | 一级菜单 | 二级菜单 |
|------|------|--------|----------|----------|
| org_* / account | 机构主数据与账号 | 监管 / 机构 | 基础信息管理 / 企业信息管理 | 机构账号、已备案机构、评价师、机构/资质/人员/装备等 |
| qual_filing* / qual_filing_expert | 资质申请备案变更专家 | 监管 / 机构 | 资质审核 / 资质申请和备案告知 | 资质备案审核、确认、专家核验、公示、变更;资质申请、已有资质备案、现场审查通知 |
---
## 三、二期新建表23— 表名、作用与原型菜单
### 1. 监管支撑5
| 表名 | 作用 | 原型端 | 一级菜单 | 二级菜单 |
|------|------|--------|----------|----------|
| eval_report | 报告库主表 | 监管 / 机构 | 安评机构监督管理 / 安评报告库管理 | 安评报告数据库;报告库 |
| eval_report_spotcheck | 报告抽查整改 | 监管 | 安评机构监督管理 | 安评报告数据库 |
| org_profile_score | 安全评价画像得分 | 监管 | 安评机构监督管理 | 安全评价画像 |
| insp_notice | 监督检查告知 | 监管 / 机构 | — / 监督检查通知管理 | 监督检查告知;监督检查通知 |
| insp_notice_material | 检查材料反馈 | 监管 / 机构 | — / 监督检查通知管理 | 监督检查告知;监督检查通知 |
### 2. 安评项目与八节点18
| 表名 | 作用 | 原型端 | 一级菜单 | 二级菜单 / 页面 |
|------|------|--------|----------|-----------------|
| eval_customer | 安评客户 | 机构 | 安评业务管理 | 安评客户管理 |
| eval_project | 项目主表 | 机构 / 监管 | 安评业务管理 / 安评项目管理 | 安评项目管理、我的项目、项目进度管理;安评项目实时监控 |
| eval_project_member | 项目成员 | 机构 | 安评业务管理 | 安评项目管理、我的项目03 项目组成立) |
| eval_project_doc | 项目资料协同 | 机构 | 安评业务管理 | 项目资料协同库 |
| eval_risk_analysis | 01 风险分析 | 机构 / 监管 | 安评业务管理 / 安评项目管理 | 我的项目 → 01 风险分析;项目实时监控(查看) |
| eval_risk_participant | 01 参与人签字 | 机构 | 安评业务管理 | 我的项目 → 01 风险分析 |
| eval_contract | 02 业务合同 | 机构 / 监管 | 安评业务管理 / 安评项目管理 | 我的项目 → 02 业务合同;项目实时监控 |
| eval_team | 03 项目组成立 | 机构 / 监管 | 安评业务管理 / 安评项目管理 | 我的项目 → 03 项目组成立;项目实时监控 |
| eval_survey | 04 现场踏勘主表 | 机构 / 监管 / APP | 安评业务管理 / 安评项目管理 | 我的项目 → 04 现场踏勘项目踏勘监管APP 现场踏勘 |
| eval_survey_notice | 04 从业告知 | 机构 / 监管 | 安评业务管理 / 安评项目管理 | 我的项目 → 04项目踏勘监管 |
| eval_survey_checkin | 04 现场打卡 | 机构 / 监管 / APP | 安评业务管理 / 安评项目管理 | 我的项目 → 04项目踏勘监管APP 现场踏勘 |
| eval_survey_attach | 04 踏勘附件 | 机构 / 监管 | 安评业务管理 / 安评项目管理 | 我的项目 → 04检查表/整改/复查等) |
| eval_report_draft | 05 报告编制稿 | 机构 / 监管 | 安评业务管理 / 安评项目管理 | 我的项目 → 05 报告编制;项目实时监控 |
| eval_internal_review | 06 内部审核 | 机构 / 监管 | 安评业务管理 / 安评项目管理 | 我的项目 → 06 内部审核 |
| eval_tech_review | 07 技术审核 | 机构 / 监管 | 安评业务管理 / 安评项目管理 | 我的项目 → 07 技术审核 |
| eval_process_control | 08 过程控制 | 机构 / 监管 | 安评业务管理 / 安评项目管理 | 我的项目 → 08 过程控制 |
| eval_sign_task | 签字任务 | 机构 / APP | 安评业务管理 | 我的项目(报告/审核签字APP 签字管理 |
| eval_sign_record | 签字记录 | 机构 / APP | 安评业务管理 | 同上 |
培训、风险预警中心、资质保持监控、机构端风险预警管理不在二期库表范围。
---
## 四、ER 图一:监管支撑(第 1 组)
```mermaid
erDiagram
insp_notice ||--o{ insp_notice_material : "notice_id"
eval_report ||--o{ eval_report_spotcheck : "report_id"
org_info ||--o{ org_profile_score : "org_id"
org_info ||--o{ insp_notice : "org_id"
org_info ||--o{ eval_report : "org_id"
eval_report {
bigint id PK
bigint org_id
bigint project_id
}
eval_report_spotcheck {
bigint id PK
bigint report_id
}
org_profile_score {
bigint id PK
bigint org_id
string score_period
}
insp_notice {
bigint id PK
bigint org_id
bigint source_ref_id
}
insp_notice_material {
bigint id PK
bigint notice_id
}
```
---
## 五、ER 图二:安评项目与八节点(第 2 组)
```mermaid
erDiagram
eval_customer ||--o{ eval_project : "customer_id"
eval_project ||--o{ eval_project_member : "project_id"
eval_project ||--o{ eval_project_doc : "project_id"
eval_project ||--o| eval_risk_analysis : "project_id"
eval_risk_analysis ||--o{ eval_risk_participant : "risk_id"
eval_project ||--o| eval_contract : "project_id"
eval_project ||--o| eval_team : "project_id"
eval_project ||--o| eval_survey : "project_id"
eval_survey ||--o| eval_survey_notice : "survey_id"
eval_survey ||--o{ eval_survey_checkin : "survey_id"
eval_survey ||--o{ eval_survey_attach : "survey_id"
eval_project ||--o{ eval_report_draft : "project_id"
eval_project ||--o| eval_internal_review : "project_id"
eval_project ||--o| eval_tech_review : "project_id"
eval_project ||--o| eval_process_control : "project_id"
eval_report_draft ||--o| eval_internal_review : "draft_id"
eval_report_draft ||--o| eval_tech_review : "draft_id"
eval_project ||--o{ eval_sign_task : "project_id"
eval_sign_task ||--o{ eval_sign_record : "sign_task_id"
eval_project ||--o{ eval_report : "project_id"
eval_customer {
bigint id PK
string customer_name
}
eval_project {
bigint id PK
bigint customer_id
string project_no
int status_code
}
eval_project_member {
bigint id PK
bigint project_id
bigint personnel_id
string role_code
}
eval_project_doc {
bigint id PK
bigint project_id
string latest_file_url
}
eval_risk_analysis {
bigint id PK
bigint project_id
int risk_level_code
int status_code
}
eval_risk_participant {
bigint id PK
bigint risk_id
bigint personnel_id
}
eval_contract {
bigint id PK
bigint project_id
string contract_no
bigint amount_fen
}
eval_team {
bigint id PK
bigint project_id
bigint leader_personnel_id
}
eval_survey {
bigint id PK
bigint project_id
int status_code
}
eval_survey_notice {
bigint id PK
bigint survey_id
}
eval_survey_checkin {
bigint id PK
bigint survey_id
}
eval_survey_attach {
bigint id PK
bigint survey_id
string attach_type_code
}
eval_report_draft {
bigint id PK
bigint project_id
int draft_version_no
}
eval_internal_review {
bigint id PK
bigint project_id
}
eval_tech_review {
bigint id PK
bigint project_id
}
eval_process_control {
bigint id PK
bigint project_id
tinyint precheck_pass_flag
}
eval_sign_task {
bigint id PK
bigint project_id
string biz_node_code
}
eval_sign_record {
bigint id PK
bigint sign_task_id
}
```
---
## 六、我的项目八节点 ↔ 表
入口:机构端 · 安评业务管理 · **我的项目**(监管端 · 安评项目管理 · **安评项目实时监控 / 项目踏勘监管** 只读查看)。
| 节点 | 原型页面要点 | 表 |
|------|--------------|-----|
| 01 风险分析 | 风险分析记录表、符合性、结论、参与人签字、批准 | eval_risk_analysis、eval_risk_participant |
| 02 业务合同 | 合同与企业信息、金额、扫描件 PDF | eval_contract |
| 03 项目组成立 | 多角色选人;负责人/过程控制负责人各 1 人 | eval_team、eval_project_member |
| 04 现场踏勘 | 从业告知→勘查打卡→整改→企业报告→复查 | eval_survey、eval_survey_notice、eval_survey_checkin、eval_survey_attach |
| 05 报告编制 | 编辑器、模板、版本、责任页签字 | eval_report_draft、eval_sign_task、eval_sign_record |
| 06 内部审核 | 审核意见与结论 | eval_internal_review |
| 07 技术审核 | 审核意见与结论 | eval_tech_review |
| 08 过程控制 | 前 7 节点完成后办理、归档 | eval_process_control → eval_report |
---
## 七、执行说明
```bash
mysql -u<user> -p <database> < docs/db/phase2/init-phase2.sql
```
测试库验证后再用于正式环境。