docs: 精简新用户注册模块文档,移除详细设计冗余内容,保留概要引用
This commit is contained in:
@@ -1,483 +1,3 @@
|
||||
# 新用户注册模块
|
||||
|
||||
新用户注册包含了[[供应商注册模块]]和[[外部专家注册模块]] 。
|
||||
|
||||
### 供应商注册页面要素:
|
||||
- 企业全称
|
||||
- 统一社会信用代码
|
||||
- 注册资本(万元)
|
||||
- 法定代表人
|
||||
- 行业
|
||||
- 地址
|
||||
- 经营范围
|
||||
- 主要产品
|
||||
- 联系人姓名
|
||||
- 联系电话(手机号)
|
||||
- 电子邮箱
|
||||
- 营业执照
|
||||
|
||||
## 供应商注册模块
|
||||
|
||||
|
||||
## 外部专家注册模块
|
||||
|
||||
## 1. 模块概述
|
||||
|
||||
### 1.1 建设目标
|
||||
建立面向**社会外部评标专家**的在线注册、准入审核与档案管理体系,实现专家信息的结构化采集、AI辅助资质核验、回避关系预审,并与后续的**专家抽取、智能匹配、在线评标、劳务报酬结算**全流程贯通。
|
||||
|
||||
### 1.2 设计原则
|
||||
| 原则 | 说明 |
|
||||
| :------- | :-------------------------------------- |
|
||||
| **信息完备** | 采集字段覆盖专业能力、执业资格、回避关系、收款账户等全维度。 |
|
||||
| **隐私保护** | 身份证号、手机号、银行账户等敏感信息采用**字段级加密**存储(内存级密钥)。 |
|
||||
| **统一身份** | 注册完成后自动生成STP平台账号,支持手机号/邮箱登录,无需二次注册。 |
|
||||
|
||||
### 1.3 适用角色与场景
|
||||
| 角色 | 场景 |
|
||||
| :-------------- | :----------------------------- |
|
||||
| **外部专家申请人** | 通过招标门户“专家注册”入口提交申请,查询审核进度。 |
|
||||
| **专家管理员(招标专员)** | 在后台审核专家资料、处理回避申报、激活/驳回/冻结专家账户。 |
|
||||
| **合规审计人员** | 查阅专家注册审计轨迹、关联关系图谱。 |
|
||||
| **AI 审核服务** | 自动执行OCR识别、证件验真。 |
|
||||
|
||||
---
|
||||
|
||||
## 2. 页面布局与 UI 设计
|
||||
|
||||
### 2.1 整体注册流程步骤条
|
||||
|
||||
```svg
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1000 120" font-family="'Microsoft YaHei', sans-serif">
|
||||
<rect width="1000" height="120" fill="#f8f9fc" rx="8"/>
|
||||
|
||||
<!-- 步骤条背景 -->
|
||||
<rect x="50" y="40" width="900" height="40" rx="20" fill="#fff" stroke="#e0e4ec"/>
|
||||
|
||||
<!-- 步骤1:已激活 -->
|
||||
<circle cx="140" cy="60" r="18" fill="#c2185b"/>
|
||||
<text x="140" y="66" text-anchor="middle" font-size="14" fill="#fff" font-weight="bold">1</text>
|
||||
<text x="140" y="100" text-anchor="middle" font-size="13" fill="#c2185b" font-weight="bold">基本信息</text>
|
||||
|
||||
<!-- 连接线1 -->
|
||||
<line x1="158" y1="60" x2="232" y2="60" stroke="#c2185b" stroke-width="3"/>
|
||||
|
||||
<!-- 步骤2:进行中 -->
|
||||
<circle cx="250" cy="60" r="18" fill="#c2185b"/>
|
||||
<text x="250" y="66" text-anchor="middle" font-size="14" fill="#fff" font-weight="bold">2</text>
|
||||
<text x="250" y="100" text-anchor="middle" font-size="13" fill="#c2185b" font-weight="bold">专业资质</text>
|
||||
|
||||
<!-- 连接线2 -->
|
||||
<line x1="268" y1="60" x2="562" y2="60" stroke="#e0e4ec" stroke-width="3"/>
|
||||
|
||||
<!-- 步骤5 -->
|
||||
<circle cx="580" cy="60" r="18" fill="#e0e4ec"/>
|
||||
<text x="580" y="66" text-anchor="middle" font-size="14" fill="#8895aa">5</text>
|
||||
<text x="580" y="100" text-anchor="middle" font-size="13" fill="#8895aa">提交审核</text>
|
||||
|
||||
<!-- 提示文字 -->
|
||||
<text x="900" y="35" text-anchor="end" font-size="12" fill="#8895aa">* 带红色星号均为必填项</text>
|
||||
</svg>
|
||||
```
|
||||
|
||||
### 2.2 注册主表单页面
|
||||
|
||||
```svg
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1100 900" font-family="'Microsoft YaHei', 'PingFang SC', sans-serif">
|
||||
<defs>
|
||||
<filter id="shadowLight" x="-2%" y="-2%" width="104%" height="104%">
|
||||
<feDropShadow dx="0" dy="4" stdDeviation="8" flood-color="#000" flood-opacity="0.04"/>
|
||||
</filter>
|
||||
<linearGradient id="brandGrad" x1="0%" y1="0%" x2="100%" y2="100%">
|
||||
<stop offset="0%" stop-color="#c2185b"/>
|
||||
<stop offset="100%" stop-color="#e91e63"/>
|
||||
</linearGradient>
|
||||
</defs>
|
||||
|
||||
<!-- 背景 -->
|
||||
<rect width="1100" height="900" fill="#f5f7fa"/>
|
||||
|
||||
<!-- 主卡片 -->
|
||||
<rect x="80" y="30" width="940" height="840" rx="16" fill="#fff" filter="url(#shadowLight)"/>
|
||||
|
||||
<!-- 标题区 -->
|
||||
<text x="120" y="80" font-size="22" font-weight="bold" fill="#1a2332">外部专家注册</text>
|
||||
<text x="120" y="108" font-size="14" fill="#8895aa">请完整填写以下信息,所有数据将受到严格加密保护</text>
|
||||
<line x1="120" y1="125" x2="980" y2="125" stroke="#f0f2f7" stroke-width="2"/>
|
||||
|
||||
<!-- ===== 第一行:姓名 + 性别 ===== -->
|
||||
<text x="120" y="170" font-size="14" fill="#4a5568">真实姓名 <tspan fill="#e91e63">*</tspan></text>
|
||||
<rect x="120" y="180" width="260" height="40" rx="6" fill="#fafbfc" stroke="#e0e4ec"/>
|
||||
<text x="135" y="206" font-size="14" fill="#b0bbcc">请输入中文姓名</text>
|
||||
|
||||
<text x="430" y="170" font-size="14" fill="#4a5568">性别 <tspan fill="#e91e63">*</tspan></text>
|
||||
<rect x="430" y="180" width="260" height="40" rx="6" fill="#fafbfc" stroke="#e0e4ec"/>
|
||||
<text x="445" y="206" font-size="14" fill="#b0bbcc">请选择</text>
|
||||
<path d="M 670 200 L 678 208 L 686 200" stroke="#b0bbcc" stroke-width="2" fill="none"/>
|
||||
|
||||
<!-- ===== 第二行:身份证号(脱敏提示) ===== -->
|
||||
<text x="120" y="250" font-size="14" fill="#4a5568">身份证号码 <tspan fill="#e91e63">*</tspan></text>
|
||||
<rect x="120" y="260" width="420" height="40" rx="6" fill="#fafbfc" stroke="#e0e4ec"/>
|
||||
<text x="135" y="286" font-size="14" fill="#b0bbcc">请输入18位身份证号</text>
|
||||
<text x="560" y="286" font-size="12" fill="#8895aa">🔒 将使用AES-256加密存储</text>
|
||||
|
||||
<!-- ===== 第三行:出生日期(自动计算) ===== -->
|
||||
<text x="120" y="330" font-size="14" fill="#4a5568">出生日期</text>
|
||||
<rect x="120" y="340" width="260" height="40" rx="6" fill="#f5f6fa" stroke="#e0e4ec"/>
|
||||
<text x="135" y="366" font-size="14" fill="#b0bbcc">由身份证自动识别</text>
|
||||
<text x="430" y="330" font-size="14" fill="#4a5568">年龄</text>
|
||||
<rect x="430" y="340" width="260" height="40" rx="6" fill="#f5f6fa" stroke="#e0e4ec"/>
|
||||
<text x="445" y="366" font-size="14" fill="#b0bbcc">自动计算</text>
|
||||
|
||||
<!-- ===== 第四行:手机号 + 邮箱 ===== -->
|
||||
<text x="120" y="410" font-size="14" fill="#4a5568">手机号码 <tspan fill="#e91e63">*</tspan></text>
|
||||
<rect x="120" y="420" width="260" height="40" rx="6" fill="#fafbfc" stroke="#e0e4ec"/>
|
||||
<text x="135" y="446" font-size="14" fill="#b0bbcc">请输入手机号</text>
|
||||
|
||||
<text x="430" y="410" font-size="14" fill="#4a5568">电子邮箱 <tspan fill="#e91e63">*</tspan></text>
|
||||
<rect x="430" y="420" width="260" height="40" rx="6" fill="#fafbfc" stroke="#e0e4ec"/>
|
||||
<text x="445" y="446" font-size="14" fill="#b0bbcc">请输入常用邮箱</text>
|
||||
|
||||
<!-- ===== 第五行:工作单位 + 职务 ===== -->
|
||||
<text x="120" y="490" font-size="14" fill="#4a5568">工作单位</text>
|
||||
<rect x="120" y="500" width="260" height="40" rx="6" fill="#fafbfc" stroke="#e0e4ec"/>
|
||||
<text x="135" y="526" font-size="14" fill="#b0bbcc">请输入单位全称</text>
|
||||
|
||||
<text x="430" y="490" font-size="14" fill="#4a5568">现从事专业 <tspan fill="#e91e63">*</tspan></text>
|
||||
<rect x="430" y="500" width="260" height="40" rx="6" fill="#fafbfc" stroke="#e0e4ec"/>
|
||||
<text x="445" y="526" font-size="14" fill="#b0bbcc">如:化工工艺、设备管理</text>
|
||||
|
||||
<!-- ===== 第六行:职称 ===== -->
|
||||
<text x="120" y="570" font-size="14" fill="#4a5568">技术职称 <tspan fill="#e91e63">*</tspan></text>
|
||||
<rect x="120" y="580" width="260" height="40" rx="6" fill="#fafbfc" stroke="#e0e4ec"/>
|
||||
<text x="135" y="606" font-size="14" fill="#b0bbcc">高级/副高级/中级/初级</text>
|
||||
<rect x="440" y="580" width="260" height="40" rx="6" fill="#fafbfc" stroke="#e0e4ec"/>
|
||||
<text x="455" y="606" font-size="14" fill="#b0bbcc">职称专业(如:化工工程)</text>
|
||||
|
||||
<!-- ===== 第七行:文件上传(资质证书) ===== -->
|
||||
<text x="120" y="660" font-size="14" fill="#4a5568">职称/资质证书扫描件 <tspan fill="#e91e63">*</tspan></text>
|
||||
<rect x="120" y="670" width="560" height="70" rx="6" stroke-dasharray="6,4" fill="#fafbfc" stroke="#c2185b"/>
|
||||
<text x="400" y="700" text-anchor="middle" font-size="14" fill="#c2185b">📄 点击上传或拖拽文件(支持 PDF/JPG/PNG,≤20MB)</text>
|
||||
<text x="400" y="725" text-anchor="middle" font-size="12" fill="#8895aa">已上传:职称证.pdf (2.3MB) <tspan fill="#4caf50">✅ 识别完成</tspan></text>
|
||||
|
||||
<!-- ===== 底部按钮 ===== -->
|
||||
<line x1="120" y1="770" x2="980" y2="770" stroke="#f0f2f7" stroke-width="2"/>
|
||||
|
||||
<rect x="740" y="790" width="120" height="40" rx="6" fill="#e0e4ec"/>
|
||||
<text x="800" y="816" text-anchor="middle" font-size="14" fill="#8895aa">上一步</text>
|
||||
|
||||
<rect x="880" y="790" width="140" height="40" rx="6" fill="url(#brandGrad)"/>
|
||||
<text x="950" y="816" text-anchor="middle" font-size="14" font-weight="bold" fill="#fff">下一步 →</text>
|
||||
|
||||
<!-- 右侧信息浮窗 -->
|
||||
<rect x="720" y="140" width="260" height="180" rx="8" fill="#fff3e0" stroke="#ffcc80"/>
|
||||
<text x="740" y="168" font-size="14" font-weight="bold" fill="#e65100">📌 注册须知</text>
|
||||
<text x="740" y="195" font-size="12" fill="#bf360c">1. 所有信息须与身份证及职称证书一致</text>
|
||||
<text x="740" y="218" font-size="12" fill="#bf360c">2. 集团公司将对信息进行真实性核验</text>
|
||||
<text x="740" y="241" font-size="12" fill="#bf360c">3. 入库专家须遵守《评委管理规定》</text>
|
||||
<text x="740" y="264" font-size="12" fill="#bf360c">4. 个人信息变更需及时在线更新</text>
|
||||
<text x="740" y="287" font-size="12" fill="#bf360c">5. 评审回避要求详见本章程4.7条</text>
|
||||
</svg>
|
||||
```
|
||||
|
||||
|
||||
|
||||
---
|
||||
|
||||
## 4. 核心流程时序图
|
||||
|
||||
```mermaid
|
||||
sequenceDiagram
|
||||
participant U as 专家申请人
|
||||
participant FE as STP前端
|
||||
participant GW as API网关
|
||||
participant RegSvc as 注册服务
|
||||
participant AISvc as AI审核服务
|
||||
participant IDSvc as 身份认证服务(外部)
|
||||
participant DB as 专家库数据库
|
||||
participant Admin as 专家管理员
|
||||
participant Notify as 通知服务
|
||||
|
||||
U->>FE: 填写注册表单 + 上传证件
|
||||
FE->>FE: 前端校验(非空/手机格式/身份证校验位)
|
||||
FE->>GW: POST /api/v1/expert/register
|
||||
GW->>RegSvc: 转发请求
|
||||
|
||||
RegSvc->>DB: 校验身份证号是否已注册(防重)
|
||||
alt 已存在
|
||||
DB-->>RegSvc: 记录已存在
|
||||
RegSvc-->>FE: 409 Conflict { message: "该身份证已注册" }
|
||||
else 未注册
|
||||
RegSvc->>AISvc: 异步启动AI审核任务(OCR+验真+图谱)
|
||||
RegSvc-->>FE: 202 Accepted { applicationId: "EXP_2024001" }
|
||||
FE-->>U: 显示“提交成功,审核中...”
|
||||
|
||||
AISvc->>IDSvc: 调用公安接口校验身份证号与姓名
|
||||
IDSvc-->>AISvc: 实名验证通过/失败
|
||||
|
||||
AISvc->>AISvc: OCR识别职称证书关键字段
|
||||
AISvc->>AISvc: 扫描企业关联图谱(回避关系)
|
||||
|
||||
AISvc-->>RegSvc: 返回AI审核结论(Pass/Review/Reject)
|
||||
|
||||
alt AI高风险或敏感
|
||||
RegSvc->>DB: 状态更新为 PENDING_MANUAL
|
||||
RegSvc->>Admin: 推送待办任务(站内+邮件)
|
||||
Admin->>RegSvc: POST /api/v1/expert/audit { action: approve/reject }
|
||||
else AI低风险
|
||||
RegSvc->>DB: 状态更新为 APPROVED(自动)
|
||||
end
|
||||
|
||||
RegSvc->>DB: 生成专家档案(EXP_XXXXX)
|
||||
RegSvc->>RegSvc: 创建STP登录账号(默认手机号+随机密码)
|
||||
RegSvc->>Notify: 发送激活通知(含账号及首次登录链接)
|
||||
Notify-->>U: 短信+邮件
|
||||
U->>FE: 点击激活链接
|
||||
FE->>RegSvc: POST /api/v1/expert/activate { password }
|
||||
RegSvc->>DB: 更新密码哈希(Argon2id)
|
||||
RegSvc-->>FE: 激活成功,跳转至专家工作台
|
||||
end
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 5. 数据模型设计
|
||||
|
||||
### 5.1 外部专家主表 `t_expert_profile`
|
||||
|
||||
| 字段名 | 类型 | 约束 | 说明 |
|
||||
| :--- | :--- | :--- | :--- |
|
||||
| `expert_id` | VARCHAR(32) | PK | 专家档案编号(EXP_YYYYMMDD_XXX) |
|
||||
| `user_id` | VARCHAR(32) | FK | 关联STP用户账号表(登录凭证) |
|
||||
| `real_name` | VARCHAR(64) | NOT NULL | 真实姓名 |
|
||||
| `id_card_no` | VARCHAR(256) | NOT NULL, UNIQUE | 身份证号(**字段级加密存储**) |
|
||||
| `gender` | TINYINT | | 1-男,2-女 |
|
||||
| `birth_date` | DATE | | 出生日期(由身份证提取) |
|
||||
| `phone` | VARCHAR(256) | NOT NULL | 手机号(字段级加密) |
|
||||
| `email` | VARCHAR(128) | NOT NULL | 电子邮箱 |
|
||||
| `company` | VARCHAR(128) | | 工作单位 |
|
||||
| `profession` | VARCHAR(64) | NOT NULL | 从事专业 |
|
||||
| `title` | VARCHAR(32) | NOT NULL | 职称等级(高级/副高/中级) |
|
||||
| `title_major` | VARCHAR(64) | | 职称专业 |
|
||||
| `qualification_files` | JSON | | 资质证书文件URL列表(含OCR元数据) |
|
||||
| `bank_name` | VARCHAR(64) | | 开户银行 |
|
||||
| `bank_account` | VARCHAR(256) | | 银行账号(字段级加密) |
|
||||
| `expertise_tags` | JSON | | 擅长领域标签(用于智能匹配) |
|
||||
| `status` | VARCHAR(20) | NOT NULL | DRAFT/PENDING_AI/PENDING_MANUAL/REJECTED/APPROVED/ACTIVATED/LOCKED |
|
||||
| `ai_audit_report` | JSON | | AI审核报告(含评分、风险点) |
|
||||
| `manual_audit_comment` | TEXT | | 人工审核备注 |
|
||||
| `declaration_signed` | BOOLEAN | DEFAULT 0 | 是否签署回避声明 |
|
||||
| `created_at` | DATETIME | | 注册时间 |
|
||||
| `updated_at` | DATETIME | | 更新时间 |
|
||||
| `activated_at` | DATETIME | | 首次激活时间 |
|
||||
|
||||
### 5.2 回避声明表 `t_expert_declaration`
|
||||
|
||||
| 字段名 | 类型 | 约束 | 说明 |
|
||||
| :--- | :--- | :--- | :--- |
|
||||
| `declaration_id` | VARCHAR(32) | PK | 声明编号 |
|
||||
| `expert_id` | VARCHAR(32) | FK | 专家ID |
|
||||
| `declaration_type` | VARCHAR(32) | | 定期声明/项目专项声明 |
|
||||
| `content` | JSON | | 逐项勾选记录 |
|
||||
| `signed_at` | DATETIME | | 签署时间 |
|
||||
| `ip_address` | VARCHAR(64) | | 签署IP |
|
||||
| `valid_until` | DATETIME | | 有效期(通常1年) |
|
||||
|
||||
### 5.3 审核记录表 `t_expert_audit_log`
|
||||
|
||||
| 字段名 | 类型 | 约束 | 说明 |
|
||||
| :--- | :--- | :--- | :--- |
|
||||
| `audit_id` | VARCHAR(32) | PK | |
|
||||
| `expert_id` | VARCHAR(32) | FK | |
|
||||
| `auditor` | VARCHAR(64) | | 审核人(AI/人工) |
|
||||
| `action` | VARCHAR(20) | | APPROVE/REJECT/REQUEST_INFO |
|
||||
| `reason` | TEXT | | 原因 |
|
||||
| `attachments` | JSON | | 附件URL |
|
||||
| `created_at` | DATETIME | | |
|
||||
|
||||
---
|
||||
|
||||
## 6. 接口详细定义
|
||||
|
||||
### 6.1 提交注册申请
|
||||
| 项目 | 内容 |
|
||||
| :--- | :--- |
|
||||
| **路径** | `/api/v1/expert/register` |
|
||||
| **方法** | `POST` |
|
||||
| **认证** | 否(公开接口,需图形验证码) |
|
||||
|
||||
**请求体(部分字段)**
|
||||
```json
|
||||
{
|
||||
"realName": "王建国",
|
||||
"idCardNo": "110101199003074477",
|
||||
"gender": 1,
|
||||
"phone": "13800138000",
|
||||
"email": "wangjianguo@example.com",
|
||||
"company": "清华大学化工系",
|
||||
"profession": "化学工程",
|
||||
"title": "SENIOR", // SENIOR/VICE_SENIOR/MIDDLE/JUNIOR
|
||||
"titleMajor": "化学工程",
|
||||
"expertiseTags": ["石油化工", "反应工程", "分离技术"],
|
||||
"bankName": "中国银行北京分行",
|
||||
"bankAccount": "6217850000000000",
|
||||
"qualificationFiles": [
|
||||
{
|
||||
"fileName": "professor_cert.pdf",
|
||||
"fileUrl": "https://oss.stp.com/...",
|
||||
"ocrResult": { "title": "教授", "issueDate": "2018-06" }
|
||||
}
|
||||
],
|
||||
"declarations": {
|
||||
"noAffiliation": true,
|
||||
"noInvestment": true,
|
||||
"noConsulting": true,
|
||||
"acceptDiscipline": true
|
||||
},
|
||||
"captchaToken": "a1b2c3d4"
|
||||
}
|
||||
```
|
||||
|
||||
**成功响应(异步)**
|
||||
```json
|
||||
{
|
||||
"code": "0",
|
||||
"data": {
|
||||
"applicationId": "EXP_20260628_001",
|
||||
"status": "PENDING_AI",
|
||||
"estimatedTime": "预计24小时内完成初审"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### 6.2 查询审核进度
|
||||
| 项目 | 内容 |
|
||||
| :--- | :--- |
|
||||
| **路径** | `/api/v1/expert/application/status` |
|
||||
| **方法** | `GET` |
|
||||
| **参数** | `applicationId` / `idCardNo`(二选一) |
|
||||
|
||||
### 6.3 专家激活(首次设置密码)
|
||||
| 项目 | 内容 |
|
||||
| :--- | :--- |
|
||||
| **路径** | `/api/v1/expert/activate` |
|
||||
| **方法** | `POST` |
|
||||
|
||||
**请求体**
|
||||
```json
|
||||
{
|
||||
"applicationId": "EXP_20260628_001",
|
||||
"password": "Abcd@2026#",
|
||||
"confirmPassword": "Abcd@2026#"
|
||||
}
|
||||
```
|
||||
|
||||
### 6.4 后台专家审核(管理员)
|
||||
| 项目 | 内容 |
|
||||
| :--- | :--- |
|
||||
| **路径** | `/api/v1/admin/expert/audit` |
|
||||
| **方法** | `POST` |
|
||||
| **认证** | 需 ADMIN/EXPERT_MANAGER 角色 |
|
||||
|
||||
**请求体**
|
||||
```json
|
||||
{
|
||||
"applicationId": "EXP_20260628_001",
|
||||
"action": "APPROVE", // APPROVE / REJECT / REQUEST_INFO
|
||||
"reason": "职称证书已验证,资质符合要求",
|
||||
"notifyExpert": true
|
||||
}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 7. AI 赋能详细设计
|
||||
|
||||
| AI 能力 | 实现方式 | 输出 | 优先级 |
|
||||
| :--- | :--- | :--- | :--- |
|
||||
| **身份证 OCR 解析** | 调用OCR服务(如百度/阿里)提取姓名、号码、有效期,自动回填表单。 | 结构化字段 | P0 |
|
||||
| **实名认证** | 对接公安部CTID接口核验身份证号与姓名一致性。 | 通过/不通过 | P0 |
|
||||
| **职称证书验真** | 对接人社部/学信网接口(或基于图像防伪特征识别)验证证书真伪。 | 可信度评分 | P1 |
|
||||
| **利益冲突图谱** | 利用知识图谱匹配专家任职企业是否与集团供应商库/黑名单关联,输出风险等级(绿/黄/红)。 | 风险报告 | P0 |
|
||||
| **专业标签智能推荐** | 根据专家填写的从事专业与历史项目品类,自动匹配并推荐擅长的采购品类标签。 | 标签列表 | P1 |
|
||||
| **AI初审报告生成** | 汇总各项检查结果,生成带评分(0-100)的建议结论(自动通过/人工复核/拒绝)。 | 审核报告 | P0 |
|
||||
|
||||
---
|
||||
|
||||
## 8. 业务规则与异常处理
|
||||
|
||||
| 场景 | 规则/处理方式 |
|
||||
| :--- | :--- |
|
||||
| **身份证号唯一性** | 系统全局唯一,已注册或审核中的身份证不得重复提交。 |
|
||||
| **手机号/邮箱唯一性** | 同一手机号或邮箱仅能注册一次(支持找回账号)。 |
|
||||
| **职称等级门槛** | 至少具备**中级及以上**职称方可入库(《评委管理规定》4.2.1)。 |
|
||||
| **AI自动通过阈值** | AI评分 ≥ 90 分且无高风险项 → 自动通过;60~89分 → 人工复核;<60分 → 自动驳回。 |
|
||||
| **驳回后重提** | 允许在 30 天内修改后重新提交,保留历史审核记录供查。 |
|
||||
| **虚假信息处理** | 一经发现虚假注册,永久拉入黑名单,并通报集团内各单位。 |
|
||||
| **回避声明有效期** | 每年需重新签署一次,到期前30天系统自动催办。 |
|
||||
| **敏感信息脱敏展示** | 后台管理中,身份证号显示为 `110101********4477`,银行账号显示为 `******0000`。 |
|
||||
| **数据导出** | 支持按专家状态、专业分类、注册时间段导出加密Excel(需二次审批)。 |
|
||||
|
||||
---
|
||||
|
||||
## 9. 安全与合规设计
|
||||
|
||||
| 安全维度 | 落地措施 |
|
||||
| :--- | :--- |
|
||||
| **传输安全** | 全链路 HTTPS + TLS 1.3,文件上传使用预签名URL直传OSS。 |
|
||||
| **敏感字段加密** | 身份证、手机号、银行账号使用 **AES-256-GCM** 应用层字段级加密,DEK内存漂移(见《需求说明书》4.2)。 |
|
||||
| **防机器人** | 注册提交需通过图形验证码 + 滑动验证(极验/人机识别)。 |
|
||||
| **密码策略** | 首次激活强制设置密码(长度≥8,含大写、小写、数字、特殊字符)。 |
|
||||
| **审计日志** | 记录每次提交、审核、激活操作的IP、设备指纹、操作人,写入哈希链防篡改(见《需求说明书》4.8.1)。 |
|
||||
| **个人信息保护** | 遵循《个人信息保护法》,注册前弹出《隐私政策》与《用户协议》,须勾选同意。 |
|
||||
|
||||
---
|
||||
|
||||
## 10. 通知策略矩阵
|
||||
|
||||
| 触发事件 | 通知方式 | 通知对象 | 文案要点 |
|
||||
| :--- | :--- | :--- | :--- |
|
||||
| 提交注册成功 | 站内信 | 申请人 | 已收到申请,预计24小时反馈 |
|
||||
| AI 审核不通过 | 邮件+短信 | 申请人 | 详细说明不通过原因及修改指引 |
|
||||
| 转入人工审核 | 站内信+邮件 | 专家管理员 | 新专家待审核,附AI报告摘要 |
|
||||
| 人工审核通过 | 邮件+短信 | 申请人 | 恭喜通过审核,请点击链接激活账号 |
|
||||
| 账号激活成功 | 站内信 | 申请人 | 欢迎成为STP评标专家,可开始接受评标任务 |
|
||||
| 回避声明临期 | 邮件 | 专家 | 请及时重新签署回避声明,否则无法参与评标 |
|
||||
| 补充材料通知 | 邮件+短信 | 申请人 | 请于X月X日前补充如下材料... |
|
||||
|
||||
---
|
||||
|
||||
## 11. 与整体架构的集成衔接
|
||||
|
||||
```mermaid
|
||||
graph LR
|
||||
subgraph 专家生命周期
|
||||
A[注册申请] --> B[AI/人工审核]
|
||||
B --> C[生成账号]
|
||||
C --> D[激活登录]
|
||||
D --> E[专家抽取匹配]
|
||||
E --> F[在线评标]
|
||||
F --> G[劳务报酬结算]
|
||||
end
|
||||
|
||||
subgraph 外围系统
|
||||
H[(专家库)]
|
||||
I[IAM/认证中心]
|
||||
J[支付系统]
|
||||
K[电子档案]
|
||||
end
|
||||
|
||||
C --> I
|
||||
G --> J
|
||||
B --> K
|
||||
E --> H
|
||||
F --> H
|
||||
|
||||
style A fill:#fce4ec,stroke:#c2185b
|
||||
style D fill:#e8f5e9,stroke:#388e3c
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
本详细设计已完整覆盖外部专家从注册入口、信息填报、AI+人工双轨审核、账号激活到后续业务衔接的全链路,严格遵循《评委管理规定》的准入标准,并深度集成平台现有安全体系与AI能力。如需调整字段或审核流层级,可进一步展开讨论。
|
||||
|
||||
新用户注册包含了[[供应商注册模块]]和[[外部专家注册模块]] ,详情见具体文件。
|
||||
|
||||
Reference in New Issue
Block a user