diff --git a/docs/architecture/详细设计/供应商招标报名模块.md b/docs/architecture/详细设计/供应商招标报名模块.md index 0a41895..c17cfb7 100644 --- a/docs/architecture/详细设计/供应商招标报名模块.md +++ b/docs/architecture/详细设计/供应商招标报名模块.md @@ -4,33 +4,82 @@ 供应商从获知招标公告到完成报名并获取投标资格,涉及**公告浏览 → 身份认证 → 报名申请 → 资质审核 → 费用缴纳 → 文件获取 → 投标文件上传**七大环节。本设计覆盖全流程的**页面交互**、**系统跳转**与**内部处理逻辑**,并充分复用现有 SRM 供应商库与统一认证体系。 +```mermaid +%%{init: {'theme':'base', 'themeVariables': {'primaryColor':'#e91e63','lineColor':'#555','secondaryColor':'#f3f4f6'}}}%% +flowchart TD + subgraph 供应商端 + A[浏览招标公告] --> B{是否已登录?} + B -- 是 --> D[点击“报名”] + B -- 否 --> C[登录/注册] + C --> D + D --> E[系统自动读取
联系人/手机号/营业执照] + E --> F[供应商确认信息并提交] + F --> G[报名提交成功
等待审核通知] + G --> H[收到审核结果通知] + H -- 通过 --> I[收到缴费通知
(招标方案评审通过后)] + H -- 不通过 --> J[查看拒绝原因] + J --> K{是否可重新提交?} + K -- 是 --> D + K -- 否 --> L[报名流程终止] + I --> M[进入缴费与投标环节
(后续流程)] + end + + subgraph STP平台内部 + STP1[接收报名请求] --> STP2[AI辅助资质审核
(核验已存证资质文件)] + STP2 --> STP3{是否需要人工评审?} + STP3 -- 是 --> STP4[推送人工评审任务] + STP3 -- 否 --> STP5[自动通过] + STP4 --> STP6[人工评审] + STP6 --> STP7[反馈结果] + STP5 --> STP8[更新报名状态] + STP7 --> STP8 + STP8 --> STP9[形成报名通过单位名单] + STP9 --> STP10[发送审核结果通知] + STP10 --> STP11[等待招标方案评审通过] + STP11 -- 招标方案通过 --> STP12[发送缴费通知
解锁标书查看权限] + STP12 --> STP13[后续投标流程] + end + + subgraph 外部系统 + SRM[(SRM供应商库)] + OA[(OA审批系统)] + end + + 供应商端 -.-> STP平台内部 + STP平台内部 -.-> SRM + STP平台内部 -.-> OA + + SRM -- 供应商信息读取 --> STP2 + OA -- 招标方案评审结果回调 --> STP11 +``` ## 页面流转与跳转设计 ```mermaid graph TD A[招标公告详情页] -->|点击“立即报名”| B{登录检查} B -->|未登录| C[登录/注册选择页] - C -->|选择“STP账号登录”| D[STP登录表单] - C -->|选择“SRM账号登录”| E[SRM登录表单(无感验证)] - D --> F[验证通过 → 跳转报名页] - E -->|调用SRM验证接口| F - C -->|选择“新用户注册”| G[注册表单] - G -->|提交注册| H[注册成功 → 自动登录 → 跳转报名页] - F --> I[报名信息填写页] - I -->|填写基本信息+上传资质| J[预览确认页] - J -->|提交| K[报名提交成功页(等待审核)] - K -->|审核通过(邮件通知)| L[缴费通知页] - L -->|选择支付方式| M[在线支付/上传凭证] - M -->|支付完成| N[缴费确认中] - N -->|财务确认到账| O[招标文件下载页] - O -->|下载文件| P[投标文件上传页] - P -->|加密上传| Q[上传成功页] - Q -->|等待开标| R[我的项目列表(状态已报名)] + C -->|选择登录方式| D[验证通过] + C -->|新用户注册| E[注册并同步至SRM] + E --> D + D --> F[报名信息确认页] + F -->|系统自动回填| G[联系人/手机号/营业执照
(只读展示,不可编辑)] + F -->|供应商可选择| H[投标标段(多选)] + F -->|供应商可填写| I[业绩简述/备注(可选)] + G --> J[确认信息并提交] + H --> J + I --> J + J --> K[报名提交成功页] + K --> L[等待审核通知(邮件/站内信)] + L --> M[审核通过/不通过通知] + M -->|不通过| N[查看原因,按需重新提交] + M -->|通过| O[报名通过名单公布
等待招标方案评审] + O --> P[招标方案通过→收到缴费通知] + P --> Q[进入后续缴费与投标环节] - style A fill:#fce4ec,stroke:#c2185b,stroke-width:2px + style A fill:#fce4ec,stroke:#c2185b + style F fill:#e3f2fd,stroke:#1565c0 style K fill:#e8f5e9,stroke:#388e3c - style Q fill:#e8f5e9,stroke:#388e3c - style R fill:#e3f2fd,stroke:#1565c0 + style O fill:#fff3e0,stroke:#ff9800 ``` @@ -87,110 +136,270 @@ sequenceDiagram ``` -## 页面原型设计 - -下面以**报名信息填写页**为例,展示核心表单与操作区。 +## 招标报名页面: ```svg - - - - - - - 智慧招标平台 - 欢迎,XX科技公司 - - 退出 - - - - ① 阅读公告 - ② 报名信息 - ③ 资质审核 - ④ 缴纳费用 - ⑤ 投标文件 - - - - - - - - - - 报名信息填写 - 项目:2026年生产用原材料采购(标段A) - - - - 联系人姓名 * - - 请输入联系人 - - 手机号 * - - 请输入手机号 - - 投标标段(可多选) - - ☑ 标段A ☐ 标段B ☐ 标段C - - 上传营业执照 * - - 点击或拖拽上传(支持 PDF/JPG,≤10MB) - 已上传:0个文件 - - 业绩证明材料(可选) - - 点击上传合同/业绩报告 - - - - 返回 - - 提交报名 - - * 提交后不可修改,请仔细核对 - - + + + + + + + + + + + + + + + + + + + + 智慧招标平台 + 欢迎,XX科技有限公司 + + + + + + 首页 + + 招标公告 + + 报名确认 + + + + + 1 + 阅读公告 + + + 2 + 确认报名 + + + 3 + 审核 + + + 4 + 后续环节 + + + + + + + + 报名信息确认 + + + + 项目名称: + 2026年生产用原材料框架协议采购 + 项目编号:BH-PROC-2026-0018 + + + + 📋 以下信息已从您的注册资料中自动读取,请核对 + + + + 公司名称 + + XX科技有限公司 + + + 联系人 + + 张三 + + + 联系电话 + + 138-0000-8888 + + + 电子邮件 + + zhangsan@xx-tech.com + + + 投标标段 * + + ☑ 标段A(原材料) + ☐ 标段B(辅料) + ☐ 标段C(包装) + + + 业绩证明材料 + (首次上传将自动归入用户档案,下次可复用) + + + + 📤 点击或拖拽上传业绩证明材料 + 支持 PDF、DOC、JPG 格式,单个文件不超过 20MB + + + + 📂 从用户档案中选用已有材料: + + + ✅ 2025年业绩报告.pdf + + × + + + ✅ 2024年合同.pdf + + × + + + + 返回 + + + 确认提交报名 + 提交后不可修改 + +``` + +## 页面元素定义表 + +| 序号 | 字段名称 | 数据来源 | 可编辑性 | 说明 | +| --- | ---------- | --------- | ---- | ---------------------------- | +| 1 | **项目名称** | 系统自动带入 | 只读 | 显示拟报名的投标项目名称 | +| 2 | **项目编号** | 系统自动带入 | 隐藏字段 | 内部项目编号,用于后台关联,页面不展示 | +| 3 | **公司名称** | SRM注册信息 | 只读 | 统一社会信用代码对应的企业全称 | +| 4 | **联系人** | SRM注册信息 | 只读 | 供应商主联系人姓名 | +| 5 | **联系电话** | SRM注册信息 | 只读 | 供应商注册手机号 | +| 6 | **电子邮件** | SRM注册信息 | 只读 | 供应商注册邮箱 | +| 7 | **投标标段** | 系统配置 | 可多选 | 仅当项目分标段时显示;可多选或全选 | +| 8 | **业绩证明材料** | 上传 / 用户档案 | 可编辑 | 首次上传自动归入用户档案,下次自动调出;用户可删除或新增 | + +## 提交成功反馈页面 + +```svg + + + + + + + + + + + + + + + + 智慧招标平台 + + + + + + + + + 报名提交成功! + + 您的报名申请已提交,请耐心等待审核。 + + + 📌 审核结果将通过站内信、邮件、短信通知,请注意查收 + + + + + + 您还可以: + + + 📋 查看我的报名 + + + 📄 返回招标公告 + + + 进入个人中心查看报名状态 ``` +## 业绩证明材料管理规则 + +```mermaid +flowchart LR + subgraph 首次报名 + A[上传业绩材料] --> B[提交报名] + B --> C[系统自动归入
用户档案] + end + + subgraph 后续报名 + D[进入报名页] --> E[系统自动调出
用户档案材料] + E --> F{用户操作} + F -->|选用已有| G[直接使用] + F -->|删除| H[从本次报名移除
(档案中保留)] + F -->|新增| I[上传新材料] + I --> J[归入档案] + G --> K[提交报名] + H --> K + J --> K + end +``` + +|规则|说明| +|---|---| +|**首次上传**|用户上传的业绩材料在报名提交后,系统自动复制一份归入用户档案(用户档案表),标记来源为“报名上传”| +|**后续复用**|用户进入报名页时,系统从用户档案中读取历史业绩材料,以列表形式展示,用户可直接选用| +|**删除**|用户在本次报名中删除某材料,仅从本次报名清单移除,用户档案中仍保留,不影响后续使用| +|**新增**|用户上传新材料,归入档案的同时也纳入本次报名,后续报名可继续复用| +|**去重**|系统按文件名+哈希值去重,同一文件不重复存储| + +### 提交成功(邮件/站内信) + +|项目|内容| +|---|---| +|**标题**|【STP平台】报名提交成功通知| +|**正文**|尊敬的 XX科技有限公司:

您对【2026年生产用原材料框架协议采购(标段A)】的报名已成功提交。

我们将对您的报名资格进行审核,审核结果将通过邮件和站内信通知您,请耐心等待。

如需查看报名状态,请登录STP平台“我的报名”页面。

🔗 [https://stp.bhtz.com/my-registrations](https://stp.bhtz.com/my-registrations)| + ## 状态机与内部处理逻辑 -| 状态码 | 状态名称 | 描述 | 触发动作 | -| -------------------- | ------ | ------------------- | --------------------- | -| `DRAFT` | 草稿 | 供应商正在填写报名表单,尚未提交 | 保存草稿,允许修改 | -| `PENDING_REVIEW` | 待审核 | 提交报名后,等待AI初审或人工评审 | 触发AI审核;若需人工,则生成评审任务 | -| `AI_PASS` | AI自动通过 | 资质齐全,无风险,直接通过 | 发送审核通过通知,生成缴费单 | -| `MANUAL_REVIEW` | 人工评审中 | 需采购部门/供应商管理专员人工确认 | 推送待办至相关人员,超时催办 | -| `REJECTED` | 审核不通过 | 资质不符或存在风险,被驳回 | 发送拒绝原因,允许重新提交(在报名截止前) | -| `PENDING_PAYMENT` | 待缴费 | 审核通过,等待缴纳标书费/保证金 | 生成缴费单,发送缴费通知 | -| `PAYMENT_CONFIRMING` | 缴费确认中 | 供应商已上传凭证,等待财务确认 | 发起OA审批,财务确认到账 | -| `PAYMENT_FAILED` | 缴费失败 | 超时未缴或财务确认为未到账 | 取消报名资格,释放名额 | -| `PAID` | 已缴费 | 缴费成功,招标文件已解锁 | 开放文件下载权限,记录缴费信息 | -| `BID_SUBMITTED` | 已投标 | 投标文件加密上传完成 | 存证哈希,报名流程结束 | -| `CANCELLED` | 已取消 | 供应商主动取消报名,或项目废标导致失效 | 退回保证金(如有),归档取消记录 | +| 状态码 | 状态名称 | 描述 | 触发动作 | +| ----------------- | ------ | --------------- | ----------------------- | +| `DRAFT` | 草稿 | 供应商正在查看报名页,尚未提交 | 保存草稿 | +| `SUBMITTED` | 已提交 | 确认提交报名,等待审核 | 触发AI初审,生成审核任务 | +| `AI_PASS` | AI自动通过 | 资质审核通过 | 进入“报名通过名单”候选池 | +| `MANUAL_REVIEW` | 人工评审中 | 需采购/供应商管理专员确认 | 推送待办,超时催办 | +| `REJECTED` | 审核不通过 | 资质不符/存在风险 | 发送拒绝原因,允许在截止前重新提交 | +| `APPROVED` | 报名通过 | 审核通过,已纳入报名通过名单 | **等待招标方案评审通过**(此处为关键状态) | +| `BID_PLAN_PASSED` | 招标方案通过 | 招标方案已过审 | **发送缴费通知**,进入后续流程 | +| `CANCELLED` | 已取消 | 供应商主动取消 | 归档取消记录 | ## 关键业务规则与异常处理 -| 场景 | 处理方式 | -| ------------------------ | ------------------------------------------------------------------ | -| **标书费/保证金支付超时** | 系统在截止时间前24h/12h/1h 三级催办;超时自动取消报名资格并释放名额。 | -| **同一供应商重复报名** | 系统检测到同一税号或统一信用代码的供应商已报名,提示“已报名,不能重复提交”。 | -| **资质文件大小/格式不符** | 前端限制 + 后端二次校验,不符合时返回明确错误提示。 | -| **报名截止时间已过** | 按钮置灰,提示“报名已截止”,不允许新提交。 | -| **==联合体投标(待确定,留扩展接口)==** | 允许在报名时添加联合体成员(需分别提供资质),系统自动校验成员关联关系。 | -| **无感登录票据过期** | 跳转时若票据超时,提示“登录状态已过期,请重新登录”,跳转至登录页。 | -| **财务确认超时** | 系统自动催办财务审批人;若超时,支持招标专员手动确认(需备注理由)。 | -| **==投标文件加密方式(待确定)==** | 沿用系统统一加密方案(平台端加解密),同时为供应商提供“个人加密”选项(开关),若选个人加密则生成独立密钥,开标时需供应商在线解密。 | +| 场景 | 处理方式 | +| ------------------------ | --------------------------------------- | +| **同一供应商重复报名** | 系统检测到同一税号或统一信用代码的供应商已报名,提示“已报名,不能重复提交”。 | +| **资质文件大小/格式不符** | 前端限制 + 后端二次校验,不符合时返回明确错误提示。 | +| **报名截止时间已过** | 按钮置灰,提示“报名已截止”,不允许新提交。 | +| **==联合体投标(待确定,留扩展接口)==** | 允许在报名时添加联合体成员(需分别提供资质),系统自动校验成员关联关系。 | +| **无感登录票据过期** | 跳转时若票据超时,提示“登录状态已过期,请重新登录”,跳转至登录页。 | +| | | + + ## 通知与提醒策略 @@ -205,28 +414,16 @@ sequenceDiagram | 财务审批待办 | 站内信 + 邮件 | 财务人员 | | 系统异常告警(支付回调失败等) | 飞书/短信 | 系统管理员 | +### 报名审核通过 → 缴费通知 + +| 项目 | 内容 | +| ------ | ----------------------------------------------------------------------------------------------------------------------------------- | +| **标题** | 【STP平台】报名审核通过通知 | +| **正文** | 尊敬的 XX科技有限公司:
您对【2026年生产用原材料框架协议采购(标段A)】的报名已通过审核,已纳入本项目报名通过名单。 请及时登录STP平台查看和下载招标文件。

如有疑问,请联系招标专员:王工 010-8888xxxx
| + ## 性能与安全要求 -- **并发报名**:支持单项目100+供应商同时报名,响应时间≤3秒。 - -- **文件上传**:支持断点续传,单个文件≤500MB,总大小≤2GB。 - -- **数据加密**:报名表单中的联系人手机号、身份证号采用字段级加密存储 - -- **防机器人**:报名提交时增加图形验证码或行为验证,防止恶意刷单。 - +- **并发报名**:支持单项目100+供应商同时报名,响应时间≤3秒。 +- **文件上传**:支持断点续传,单个文件≤500MB,总大小≤2GB。 +- **数据加密**:报名表单中的联系人手机号、身份证号采用字段级加密存储 - **日志审计**:所有报名操作(登录、提交、审核、缴费)均记录审计日志,保留≥7年。 - -## 附录:报名表单字段定义 - -| 字段名 | 类型 | 必填 | 说明 | -| --------------------- | ------ | --- | --------------------------------- | -| `projectId` | String | 是 | 招标项目ID,自动带入 | -| `bidSection` | Array | 是 | 投标标段(多选) | -| `contactName` | String | 是 | 联系人姓名 | -| `contactPhone` | String | 是 | 手机号,需短信验证(可选) | -| `contactEmail` | String | 是 | 邮箱 | -| `qualificationFiles` | Array | 是 | 资质文件列表(营业执照、资质证书、授权书等),每个文件需有类型标签 | -| `performanceFiles` | Array | 否 | 业绩证明文件 | -| `jointVentureMembers` | Array | 否 | 联合体成员列表(供应商ID+名称+税号) | -| `remarks` | String | 否 | 备注 |