← 返回主页
道纳科技 V2.0 · 业务需求文档 BRD · 工程总览
Daona CPMS v2.0 业务需求文档
央企海外公司数字化操作系统 · 4 域 + AI Agent 矩阵 + 集团驾驶舱 · React 18 + shadcn/ui × go-zero 微服务
⚛️ React 18 + TypeScript
🎨 shadcn/ui + Tailwind CSS
⚡ Vite + Zustand + TanStack Query
🐹 go-zero · Go 1.23
🐘 PostgreSQL + pgvector
📊 ClickHouse + Milvus
🤖 LangChain + Dify + Multi-LLM
🏛 信创:鲲鹏 + 麒麟 + 达梦
文档版本 V2.0 · 编制 2026-06-27 · 配套 Pre-A BP · 仅供内部开发团队
01项目概述
1.1 项目背景
道纳 CPMS v2.0 是为中国央企海外公司打造的「数字化操作系统 + AI 决策中台」,核心切入点是跟随 YUJ Group 58 个海外建材项目自动嵌入部署。本 BRD 是从 Pre-A BP 商业模型派生的工程实现需求文档,指导开发团队 12 个月内交付 v2.0 完整版。
1.2 业务目标
| 目标 | M12 (Y1) | M24 (Y2) | M36 (Y3 / IPO 申报) |
| 嵌入 YUJ 项目数 | 10 | 30 | 60 |
| 覆盖央企客户数 | 5 | 15 | 30 |
| FDE 团队规模 | 15 | 45 | 130 |
| 系统稳定性 (SLA) | 99.5% | 99.9% | 99.95% |
| 合规资质 | 国密二级 / 等保三级 | + CCRC / 信创适配 | + ISO27001 / SOC2 |
1.3 v2.0 vs v1.0 关键差异
| 维度 | v1.0(独立 SaaS) | v2.0(YUJ 项目流绑定) |
| 客户获取 | 独立 BD 央企(12-18 月) | YUJ 立项即捆绑(1-3 月部署) |
| 部署模式 | 独立租户实例 | 项目级实例 + 集团级聚合 |
| 4 步陪跑 | 分散功能 | 4 域工作台 + AI Agent 闭环 |
| AI 能力 | 单点 AI Agent | 8 类 Agent 矩阵 + 工作流编排 |
| 合规计算器 | 4 类海外合规 | + 信创国密等保 |
| 多端 | 仅 Web | Web + 移动端 + CEO 一屏决策 |
1.4 范围(In Scope / Out of Scope)
✅ IN SCOPE
本期交付(M0-M12)
- 4 域工作台(投标/执行/决策/资产)
- AI Agent 矩阵(8 类)
- 集团驾驶舱(Web + 移动)
- 4 类海外合规计算器
- 多租户 + RBAC + 审计日志
- 信创全栈适配
❌ OUT OF SCOPE
本期不交付(v3.0 排期)
- 区块链存证(v3.0)
- RWA 资产代币化(v4.0)
- YUJ Capital 基金管理(独立产品)
- 政府/央企总部级集成(A 轮后)
- 跨境支付(依赖 YUJ 现有能力)
02角色与权限模型(RBAC + ABAC)
2.1 12 大角色
| 角色 | 所属 | 核心权限 | 优先级 |
| Super Admin | 道纳运维 | 租户/系统/审计全权限 | P0 |
| Tenant Admin | 央企集团 IT | 本租户用户/权限/数据管理 | P0 |
| Group CEO | 央企集团总部 | 集团驾驶舱 + 战略决策 + 全集团数据只读 | P0 |
| Subsidiary CEO | 海外公司 | 本子公司 4 域全权限 + 子公司驾驶舱 | P0 |
| Project Manager (PM) | 项目级 | 本项目 4 域操作权限 | P0 |
| BD Manager | 子公司 | 投标域全权 + AI BD Agent | P0 |
| Compliance Officer | 子公司/项目 | 合规计算器 + 合规审批节点 | P0 |
| Finance Manager | 子公司/项目 | 资产域 + 资金工具 + 财务驾驶舱 | P0 |
| FDE Engineer | 道纳驻场 | 跨租户陪跑权限(受 NDA 控制) | P1 |
| Auditor | 央企审计/外审 | 只读 + 审计日志 + 导出 | P1 |
| Field Engineer | 项目现场 | NCR/RFI 上报 + 移动端打卡 | P1 |
| External Supplier | 外部供应商 | 仅 Asset 域指定模块(货权/对账) | P2 |
2.2 权限模型:RBAC + ABAC + 数据隔离
① RBAC(基于角色)
用户 → 角色 → 权限点(API/页面/功能按钮)。权限点粒度 = REST endpoint + HTTP method。
② ABAC(基于属性)
动态条件判断:用户属性(部门/项目/层级) × 资源属性(项目/客户/金额)+ 环境属性(时间/IP/设备)= 决策。
例:CEO 仅能审批本子公司项目 + 金额 < $50M。
③ 数据隔离(Multi-tenant)
租户级(央企集团) → 子公司级 → 项目级 → 行级(基于 row-level security)。
PostgreSQL RLS 策略 + 业务层 WHERE 双重隔离。
2.3 权限关键场景
| 场景 | 权限规则 |
| FDE 跨租户陪跑 | 需 Tenant Admin 授权 + 时间窗口(如 7 天)+ 操作记录上链 |
| Group CEO 查看子公司数据 | 仅可只读(驾驶舱聚合视图),不可修改交易数据 |
| 合规审批 | 金额 > $10M 必须 Compliance Officer + Finance Manager 双签 |
| 审计日志 | 所有写操作(POST/PUT/DELETE)入审计表,180 天保留 |
| 数据导出 | 需 Auditor 角色 + 二次验证(短信/OTP) |
03业务架构总览
3.1 4 域 + AI Agent + 集团驾驶舱 总体架构
🎯 Layer 0:集团驾驶舱 (Group Cockpit)
CEO 一屏决策
毛利告警
IPO 管线
汇率套保
移动端 H5
🤖 Layer 1:AI Agent 矩阵 (8 类)
BD Agent
合规 Agent
财务 Agent
项目监督 Agent
投标分析 Agent
合同评审 Agent
NCR/RFI Agent
汇率套保 Agent
📊 Layer 2:4 域工作台 (67 工作台)
投标域 (18)
执行域 (22)
决策域 (12)
资产域 (15)
🔧 Layer 3:通用能力 (278 项数字能力)
14 套投标模版引擎
4 类合规计算器
G0-G7 闸门工作流
BOQ 报价引擎
保函全周期
NCR/RFI 闭环
🗄 Layer 4:数据底座 (102 类业务数据)
PostgreSQL(业务)
ClickHouse(分析)
Milvus(向量)
Redis(缓存)
MinIO/OSS(文件)
RabbitMQ(消息)
3.2 4 域的因果关系
业务流闭环:
投标域 找单 → 执行域 做单 → 资产域 收单 → 决策域 复盘 →(数据回灌)→ 投标域 优化。
AI Agent 矩阵横贯 4 域,每个 Agent 服务于不同域的特定场景;集团驾驶舱聚合 4 域指标供 CEO 决策。
3.3 系统能力指标(v2.0 目标)
| 指标 | 目标 | 说明 |
| 并发用户 | 5,000 | 10 项目 × 30 个用户 × 16 个集团 |
| RPS | 2,000 | 峰值(驾驶舱刷新 + 移动端轮询) |
| P99 响应时间 | < 300ms | 读接口(含 1 跳 RPC) |
| P99 AI Agent 响应 | < 8s | 含 LLM 调用 + 工作流编排 |
| 数据规模 | 100TB+ | 3 年累积,含文件/日志/分析 |
| 单租户隔离 | 硬隔离 | 独立 DB schema + 文件桶 |
04投标域(Bid Domain)
投标域核心目标:把"投不投 / 怎么报 / 标书自动化"3 个核心问题工具化,覆盖从客户画像 → 招标响应 → 报价决策 → 投后跟踪全流程。共 18 个工作台。
4.1 核心功能模块
B-01
客户画像 (KYP)
14 国央国企买方画像库:决策链/采购偏好/历史合同/付款习惯/竞争对手关系。AI 自动从公开数据更新。
GET /v1/bid/kyp/:client_id
B-02
14 套标书模版引擎
覆盖 GCC/北非/中亚主流标书格式:Aldar/Mubadala/Aramco/ADNOC/Saudi Aramco/NEOM 等。变量化注入 + AI 起草。
POST /v1/bid/template/render
B-03
工厂直供池
52 家中国品牌供应商资源池 + 实时库存/产能/价格/账期。供应商响应招标时间 < 24h。
GET /v1/bid/supply-pool/search
B-04
BOQ 报价工作台
Bill of Quantity 自动报价:成本结构(材料+人工+物流+税+利润)+ 竞品价格库 + 中标概率预测。
POST /v1/bid/boq/calculate
B-05
投标决策沙盘
5 维度评分:客户匹配度/技术能力/价格竞争力/项目利润/风险敞口 → S/A/B/D/F 评级 → 投/不投建议。
POST /v1/bid/decision/score
B-06
S/A/B/D/F 接单红线
D/F 评级自动拒绝(系统硬拦截,需 CEO 二次审批才可推翻)。NEOM/The Line 教训直接编码进规则引擎。
GET /v1/bid/redline/:project_id
B-07
谈判让步阶梯
价格谈判工具:自动生成"首报-第二次让步-底线"3 档报价矩阵 + 让步交换条件建议。
POST /v1/bid/negotiation/ladder
B-08
合同 AI 评审
合同条款 AI 扫描:识别 50+ 高风险条款(无限责任/付款拖延/汇率波动/单方变更等)→ 标红 + 建议修改。
POST /v1/bid/contract/review
4.2 投标域工作流(G0 投前 → G1 决策 → G2 投后)
// 投标工作流状态机(Go state machine)
type BidState int
const (
G0_Identified BidState = iota // 客户机会识别
G1_Qualified // KYP + 风险扫描通过
G2_BidPrep // 标书准备中(14 模版选择)
G3_PricingReview // BOQ 报价决策(沙盘评分)
G4_RedlineCheck // S/A/B/D/F 红线校验
G5_Submitted // 已投递
G6_Negotiating // 谈判中(让步阶梯)
G7_Won_or_Lost // 中标/失标
G8_ContractSigned // 合同签约(AI 评审通过)
)
4.3 关键 SLA & 业务规则
| 规则 | 说明 |
| BOQ 计算响应 | < 3 秒(含成本库查询 + 竞品比对) |
| 标书模版渲染 | < 30 秒(包含 AI 起草 200 页标书) |
| 合同 AI 评审 | < 2 分钟(100 页合同识别 50+ 风险点) |
| D/F 评级拦截 | 硬拦截(需走升级审批流,CEO + COO 双签) |
| 投标数据保留 | 5 年(合规要求) |
05执行域(Execution Domain)
执行域核心目标:G0-G7 项目闸门工作流 + 4 类海外合规自动核查 + NCR/RFI 闭环 + 月度毛利告警。共 22 个工作台。
5.1 G0-G7 项目闸门工作流
| 阶段 | 关键交付物 | 必经审批 | AI 介入点 |
| G0 立项 | 项目章程 / 团队 / 预算 | 子公司 CEO | 项目可行性 AI 评估 |
| G1 设计 | BIM 模型 / 技术方案 | 技术总监 | BIM 自动检查冲突 |
| G2 采购 | BOM 拆分 / 供应商签约 | 采购总监 | BOM AI 优化(替代品建议) |
| G3 生产 | 工厂排产 / 出货计划 | 生产总监 | 排产 AI 优化 |
| G4 物流 | 跨境清关 / 仓储 | 物流总监 | 清关风险 AI 预警 |
| G5 安装 | 现场施工 / 进度 | 项目经理 | NCR/RFI 自动归类 |
| G6 验收 | 客户验收 / 整改 | 客户 + 项目经理 | 缺陷分类与影响评估 |
| G7 结算 | 尾款回收 / 质保金 | 财务总监 | 回款风险 AI 预测 |
5.2 4 类海外合规自动核查
E-CC-01
OFAC / UN / EU 制裁名单
实时校验客户/供应商/最终受益人是否在制裁名单。每日自动更新名单库。核查 < 5 秒。
POST /v1/exec/compliance/sanction-check
E-CC-02
沙特化 (Saudization) 计算器
Nitaqat 计划合规:沙特籍员工比例、工资水平、岗位类型自动核算 → 红/黄/绿/铂分级。
POST /v1/exec/compliance/saudization
E-CC-03
IKTVA 计算器(沙特本地化)
In-Kingdom Total Value Add:本地化采购/服务/雇佣/培训比例 → 自动生成 Aramco 合规报告。
POST /v1/exec/compliance/iktva
E-CC-04
Estidama / LEED 可持续
阿联酋 Estidama Pearl Rating + 国际 LEED 双认证计算 → 自动生成绿色建筑评估报告。
POST /v1/exec/compliance/estidama
5.3 NCR/RFI 闭环(不符合项 / 信息请求)
// NCR 状态机
type NCRState int
const (
Reported NCRState = iota // 现场工程师上报
Triaged // AI 分类(轻/中/严重)
Assigned // 分配责任人
RootCauseAnalysis // 根因分析
CorrectiveAction // 整改方案
Verification // 验证
Closed // 关闭归档
)
// 已沉淀 50+ 项 NCR/RFI 实例为 AI 训练样本
5.4 关键业务规则
| 规则 | 说明 |
| 月度毛利告警 | 项目实际毛利 < 预算毛利 × 80% 时自动告警 CEO + Finance |
| 汇率套保 | 美元/沙特里亚尔 等敞口 > $5M 自动建议套保策略 |
| G 阶段强制审批 | 跳过审批 = 系统硬阻断 + 审计标记 |
| 合规失败处理 | OFAC 命中 → 项目自动暂停 + Compliance Officer 介入 |
06决策域(Decision Domain)
决策域核心目标:把"集团 CEO 月度 30 天才能拿到子公司报表"压缩到"实时一屏决策"。共 12 个工作台。
6.1 CEO 一屏决策驾驶舱
D-01
集团驾驶舱(Web + 移动端)
5 大区块:项目热力图 / 财务红绿灯 / 合规告警 / 中标率漏斗 / 现金流瀑布。实时刷新 < 10 秒。
WS /v1/decision/cockpit/stream
D-02
30+ 单 IPO 管线驾驶舱
投行视角:管线项目按 IPO 进度阶段聚合,预测季度交付 / 年度营收 / 估值锚定。
GET /v1/decision/ipo-pipeline
D-03
谈判让步阶梯(决策级)
大客户合同谈判时,AI 推演"3 档让步" → 每一档对应预期毛利率 + 中标概率。
POST /v1/decision/negotiation/simulate
D-04
合同 AI 评审(决策级)
CEO 审批合同前,AI 自动汇总:风险点 / 类似合同对比 / 历史争议条款。
POST /v1/decision/contract/exec-review
D-05
战略沙盘(What-If)
模拟器:若 Y2 进入新市场 + 收 1 个子公司 → 5 年财务影响 + 估值变化。
POST /v1/decision/strategy/whatif
D-06
月度复盘报告
AI 自动生成月度复盘 PPT/PDF:业务表现 / 偏差分析 / 下月行动建议。
POST /v1/decision/monthly-review/generate
6.2 CEO 移动端(H5 + 微信小程序)
| 移动端模块 | 核心功能 |
| 首屏 | 4 个关键数字:今日营收 / 本月毛利 / 现金流 / 待审批数 |
| 项目雷达 | 红色/黄色项目地图 + 一键钻取到具体 NCR |
| 移动审批 | 支持 6 类审批(合同/采购/付款/休假/差旅/出海) |
| 语音问答 | "小道,本月毛利如何?" → AI 语音回答 + 图表 |
| 消息中心 | 红色告警实时推送 + 微信 / 短信 / Slack 多渠道 |
07资产域(Asset Domain)
资产域核心目标:把 BA/LC/SBLC/BG 银行工具组合 + 货权管理 + 保函全周期 + BOQ 价格库结构化沉淀。共 15 个工作台。
7.1 核心模块
A-01
BOQ 报价工作台
100,000+ SKU 中东建材成本库 + 实时汇率 + 物流报价 + 税费计算器,3 秒生成完整 BOQ 报价。
POST /v1/asset/boq/quote
A-02
保函全周期管理
投标保函 / 履约保函 / 预付款保函 / 质量保函 4 类。覆盖签发 → 期限管理 → 释放/退还 → 索赔。
GET /v1/asset/guarantee/lifecycle
A-03
BA/LC/SBLC/BG 资金工具池
17 家银行合作伙伴接口:DFSA/ADGM/UAE CB 三牌后净息差 +1.3pp。资金工具组合优化器。
POST /v1/asset/finance/optimize
A-04
货权质押管理
YUJ 保税仓 15 万㎡ 货权登记 → 区块链存证(v3.0)→ 智能合约提货。Currently DB-based。
POST /v1/asset/cargo-pledge
A-05
NCR/RFI 闭环(资产视角)
从财务角度跟踪:NCR 整改成本 / 客户索赔 / 项目利润影响。
GET /v1/asset/ncr/financial-impact
A-06
应收应付 + 现金流瀑布
实时现金流预测:T+3 / T+7 / T+30 / T+90 应收应付预测 + 资金缺口告警。
GET /v1/asset/cashflow/forecast
7.2 资金工具池业务规则
| 工具 | 适用场景 | 系统能力 |
| BA(银行承兑) | 跨境贸易付款 | 17 家银行 BA 比价 + 自动签发 |
| LC(信用证) | 大额采购 | LC 条款 AI 解析 + 风险点标红 |
| SBLC(备用信用证) | 履约担保 | 金额/期限/受益人参数化签发 |
| BG(银行保函) | 投标/预付款 | 自动签发 + 期限管理 + 释放追踪 |
| 福费廷 (Forfaiting) | 应收账款贴现 | 买断价/利率 AI 比价 |
08AI Agent 矩阵(8 大 Agent)
8.1 8 大 Agent 全景
| Agent | 所属域 | 核心能力 | 底层 LLM | 调用频率 |
| BD Agent | 投标域 | 客户画像更新 / 商机推荐 / 关系链挖掘 | Claude 4.7 / 通义千问 | 每客户日均 5 次 |
| 合规 Agent | 执行域 | OFAC 名单核查 / IKTVA 报告生成 / 沙特化预警 | DeepSeek + 规则引擎 | 每项目日均 20 次 |
| 财务 Agent | 资产域 | 现金流预测 / 汇率套保建议 / 资金工具优化 | Claude 4.7 | 每项目日均 10 次 |
| 项目监督 Agent | 执行域 | 项目进度异常检测 / G 闸门状态健康度 | GPT-5 | 每项目小时级 |
| 投标分析 Agent | 投标域 | BOQ 自动报价 / 中标概率预测 / S/A/B 评级 | Claude 4.7 + GPT-5 | 每标书 1 次 |
| 合同评审 Agent | 投标/决策域 | 50+ 风险条款识别 / 修改建议 / 历史合同对比 | Claude 4.7 | 每合同 1 次 |
| NCR/RFI Agent | 执行域 | NCR 自动分类 / 根因分析 / 整改方案推荐 | 通义千问 | 每 NCR 1 次 |
| 汇率套保 Agent | 资产域 | 多币种敞口监控 / 套保策略推荐 | DeepSeek | 实时 |
8.2 Agent 技术架构(LangChain + Dify)
// AI Agent 工作流编排架构
┌───────────────────────────────────────────────────────────┐
│ 前端调用:POST /v1/ai/agent/:agent_id/invoke │
└─────────────────────────┬─────────────────────────────────┘
↓
┌───────────────────────────────────────────────────────────┐
│ go-zero: ai-agent-api → ai-agent-rpc (orchestrator) │
└─────────────────────────┬─────────────────────────────────┘
↓
┌───────────────────────────────────────────────────────────┐
│ LangChain + Dify Workflow Engine │
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
│ │ Retriever│→ │ Reasoner │→ │ Tools │→ │ Responder│ │
│ │ (RAG) │ │ (LLM) │ │ (Action) │ │ (Format) │ │
│ └──────────┘ └──────────┘ └──────────┘ └──────────┘ │
└─────┬───────────┬───────────┬───────────┬─────────────────┘
↓ ↓ ↓ ↓
┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────┐
│ Milvus │ │ LLM │ │ Internal│ │ Stream │
│ Vector │ │ API │ │ RPC │ │ Response│
└─────────┘ └─────────┘ └─────────┘ └─────────┘
8.3 大模型选型
| 场景 | 推荐模型 | 理由 |
| 境外项目(中东/中亚) | Claude 4.7 / GPT-5 | 多语言能力强、上下文窗口大 |
| 境内央企(信创合规) | DeepSeek / 通义千问 / 智谱 GLM | 本地化部署 + 信创认证 |
| 财务/数字密集型 | Claude 4.7 | 推理能力强、错误率低 |
| 合同/法律评审 | Claude 4.7 | 200K+ context、专业领域准确 |
| 结构化数据抽取 | DeepSeek | 速度快、成本低 |
成本控制:所有 Agent 调用走道纳统一 LLM 网关,自动按场景路由到最优模型;缓存常见 query;统计每个 Agent 月度成本。预计 M12 LLM 月成本 < ¥50 万。
09数据模型(102 类业务数据)
9.1 核心实体 ER(简化版)
// 12 大核心实体(PostgreSQL 主表)
CREATE TABLE tenant ( -- 租户(央企集团)
id BIGSERIAL PRIMARY KEY,
name VARCHAR(200),
code VARCHAR(50) UNIQUE,
created_at TIMESTAMP
);
CREATE TABLE subsidiary ( -- 海外公司
id BIGSERIAL PRIMARY KEY,
tenant_id BIGINT REFERENCES tenant(id),
country VARCHAR(10), -- ISO 3166-1
region VARCHAR(50) -- 中东/中亚/东南亚
);
CREATE TABLE project ( -- 项目(核心业务单元)
id BIGSERIAL PRIMARY KEY,
tenant_id BIGINT, subsidiary_id BIGINT,
name VARCHAR(200), client_id BIGINT,
status VARCHAR(20), -- G0-G7 + Closed
contract_amount NUMERIC(18,2),
currency CHAR(3),
start_date DATE, expected_end DATE,
yuj_bound BOOLEAN DEFAULT TRUE -- YUJ 项目流标记
);
CREATE TABLE bid ( -- 投标记录
id BIGSERIAL, project_id BIGINT,
state VARCHAR(20), -- G0_Identified ... G8_ContractSigned
grade CHAR(1), -- S/A/B/D/F
boq_total NUMERIC(18,2),
win_probability NUMERIC(5,2) -- AI 预测
);
CREATE TABLE ncr ( -- 不符合项
id BIGSERIAL, project_id BIGINT,
severity VARCHAR(10), -- light/medium/critical
state VARCHAR(20),
root_cause TEXT, corrective_action TEXT
);
-- 其余 7 张核心表:client, supplier, contract, guarantee, cargo_pledge, ai_agent_call, audit_log
-- 102 类业务数据 = 12 主表 + 90 业务流水/统计/明细表
9.2 数据分层架构
| 层 | 数据库 | 用途 | 规模 |
| OLTP(事务) | PostgreSQL 16 + pgvector | 业务交易 + 主数据 + 向量搜索(轻量) | ~5TB / 3 年 |
| OLAP(分析) | ClickHouse | 驾驶舱聚合 / 报表 / BI | ~50TB / 3 年 |
| 向量库(AI) | Milvus | RAG 知识库 / 标书/合同向量 | ~5TB |
| 缓存 | Redis 7 | session / 热数据 / 限流 | ~100GB |
| 消息队列 | RabbitMQ + Kafka | 异步任务 / 事件驱动 | — |
| 文件存储 | MinIO / 阿里 OSS | 合同/标书/图片/视频 | ~30TB |
| 搜索 | Elasticsearch | 全文检索 / 日志 | ~10TB |
9.3 信创适配(生产环境)
| 组件 | 开源/海外 | 信创替代 |
| OS | CentOS / Ubuntu | 麒麟 / 统信 UOS |
| CPU | x86_64 | 鲲鹏 920 / 飞腾 |
| 数据库 | PostgreSQL | 达梦 DM8 / 人大金仓 KingbaseES |
| 中间件 | Redis / Kafka | 东方通 TongRDS / TongQ |
| 容器 | Docker / K8s | 原生兼容(无需替换) |
10后端架构:go-zero 微服务(14 个服务)
10.1 微服务清单
| 服务 | 类型 | 职责 | 端口 | 依赖 |
gateway | API Gateway | 路由 / 鉴权 / 限流 / 日志 | 8888 | 所有 API |
auth-api + auth-rpc | API + RPC | 登录 / 鉴权 / JWT / RBAC | 8001 / 9001 | user-rpc |
user-api + user-rpc | API + RPC | 用户 / 租户 / 角色管理 | 8002 / 9002 | — |
bid-api + bid-rpc | API + RPC | 投标域:KYP / BOQ / 标书 / 评级 | 8003 / 9003 | ai-rpc, user-rpc |
exec-api + exec-rpc | API + RPC | 执行域:G0-G7 / NCR / 合规 | 8004 / 9004 | compliance-rpc |
decision-api + decision-rpc | API + RPC | 决策域:驾驶舱 / 战略沙盘 | 8005 / 9005 | 所有 -rpc |
asset-api + asset-rpc | API + RPC | 资产域:保函 / BA-LC / 货权 | 8006 / 9006 | — |
ai-agent-api + ai-agent-rpc | API + RPC | AI Agent 矩阵编排 | 8007 / 9007 | LangChain/Dify |
compliance-rpc | RPC | 4 类合规计算器 | 9008 | 外部名单 API |
notification-rpc | RPC | 消息推送(短信/微信/Slack/邮件) | 9009 | 第三方 |
file-rpc | RPC | 文件上传/下载/转换 | 9010 | MinIO/OSS |
audit-rpc | RPC | 审计日志(所有写操作) | 9011 | — |
analytics-rpc | RPC | 驾驶舱聚合 / BI 查询 | 9012 | ClickHouse |
scheduler-rpc | RPC | 定时任务(汇率/制裁名单/月报生成) | 9013 | — |
10.2 go-zero 项目结构
daona-cpms-backend/
├── gateway/ # 网关
│ ├── etc/gateway.yaml
│ ├── internal/middleware/ # JWT / 限流 / 日志
│ └── gateway.go
├── services/
│ ├── auth/
│ │ ├── api/ # REST API 层
│ │ │ ├── etc/auth-api.yaml
│ │ │ ├── internal/
│ │ │ │ ├── handler/
│ │ │ │ ├── logic/
│ │ │ │ ├── svc/
│ │ │ │ └── types/
│ │ │ ├── auth.api # goctl 生成源
│ │ │ └── auth.go
│ │ └── rpc/ # gRPC 层
│ │ ├── etc/auth-rpc.yaml
│ │ ├── internal/server/
│ │ ├── auth.proto # protobuf 定义
│ │ └── auth.go
│ ├── bid/ (同构)
│ ├── exec/ (同构)
│ ├── decision/ (同构)
│ ├── asset/ (同构)
│ ├── ai-agent/ (同构)
│ └── ...
├── common/ # 通用包
│ ├── model/ # sqlc / ent 生成的 model
│ ├── errorx/ # 业务错误码
│ ├── middleware/
│ ├── llm/ # LLM 调用封装
│ └── audit/
├── deploy/
│ ├── docker-compose.yaml
│ ├── k8s/
│ └── helm/
├── scripts/ # goctl 生成脚本
└── go.mod
10.3 go-zero 关键技术决策
| 决策点 | 选型 | 理由 |
| API → RPC 通信 | gRPC + protobuf | 性能 + 强类型 + go-zero 原生 |
| 服务发现 | etcd | go-zero 原生支持 |
| 配置中心 | etcd + Nacos | 动态配置 + 信创合规 |
| 分布式事务 | Saga + 本地消息表 | 不用 TCC(复杂度高) |
| 缓存 | go-zero 内置 cache + Redis | 多级缓存 |
| 限流 | go-zero token bucket | API 网关层 + 业务接口层 |
| 熔断降级 | go-zero breaker | 原生 |
| 日志 | go-zero logx + ELK | — |
| 链路追踪 | OpenTelemetry + Jaeger | 跨语言标准 |
| ORM | sqlc + sqlx | 性能 + 类型安全 |
10.4 .api 文件示例(投标域)
// services/bid/api/bid.api
syntax = "v1"
info (
title: "Daona Bid Domain API"
desc: "投标域 REST 接口"
version: "v2.0"
)
type BoqQuoteReq {
ProjectId int64 `json:"project_id"`
Currency string `json:"currency"`
Items []BoqItem `json:"items"`
}
type BoqQuoteResp {
TotalAmount float64 `json:"total_amount"`
Breakdown CostBreakdown `json:"breakdown"`
WinProb float64 `json:"win_probability"`
}
@server(
group: bid
jwt: Auth
middleware: Audit,RateLimit
)
service bid-api {
@handler BoqQuote
post /v1/bid/boq/quote (BoqQuoteReq) returns (BoqQuoteResp)
}
11前端架构:React 18 + shadcn/ui
11.1 技术栈
| 类别 | 选型 | 用途 |
| 框架 | React 18 + TypeScript 5 | 主框架 |
| 构建 | Vite 5 | 开发 + 构建 |
| UI 组件 | shadcn/ui + Radix UI | 无缝 Tailwind 组件库 |
| 样式 | Tailwind CSS 3.4 | 原子化 CSS |
| 路由 | React Router 6 (Data Router) | 路由 + loader |
| 状态 | Zustand | 全局状态(轻量) |
| 异步 | TanStack Query (React Query) v5 | 请求缓存 + 同步 |
| 表单 | React Hook Form + Zod | 表单 + 校验 |
| 图表 | Recharts + ECharts | 驾驶舱 / BI |
| 地图 | Mapbox / 高德 | 项目地理分布 |
| 富文本 | TipTap | 合同 / 标书编辑 |
| i18n | i18next | 中英 + 阿拉伯文(RTL) |
| 测试 | Vitest + Playwright | 单测 + E2E |
| 代码规范 | ESLint + Prettier + Husky | — |
11.2 项目结构
daona-cpms-frontend/
├── src/
│ ├── routes/ # React Router data routes
│ │ ├── _root.tsx
│ │ ├── auth/login.tsx
│ │ ├── dashboard/index.tsx # 集团驾驶舱
│ │ ├── bid/ # 投标域(18 工作台)
│ │ ├── exec/ # 执行域(22 工作台)
│ │ ├── decision/ # 决策域(12 工作台)
│ │ ├── asset/ # 资产域(15 工作台)
│ │ ├── ai-agents/
│ │ └── admin/
│ ├── components/
│ │ ├── ui/ # shadcn/ui 生成组件
│ │ │ ├── button.tsx
│ │ │ ├── dialog.tsx
│ │ │ ├── table.tsx
│ │ │ └── ...
│ │ ├── domain/ # 业务组件
│ │ │ ├── bid/BoqEditor.tsx
│ │ │ ├── exec/GateFlow.tsx
│ │ │ ├── decision/Cockpit.tsx
│ │ │ └── asset/GuaranteeCard.tsx
│ │ └── layout/
│ ├── hooks/
│ ├── stores/ # Zustand stores
│ ├── api/ # API client (typed via openapi-ts)
│ ├── i18n/
│ └── main.tsx
├── public/
├── tailwind.config.ts
├── components.json # shadcn/ui 配置
├── vite.config.ts
└── package.json
11.3 shadcn/ui 关键组件使用清单
| 组件 | 用途 | 使用场景 |
Table + DataTable | 数据表格 | 项目列表 / BOQ 明细 / 标书清单 |
Dialog + Sheet | 弹窗 / 侧边栏 | 详情查看 / 表单编辑 |
Form + Input | 表单 | 所有数据录入 |
Select + Combobox | 下拉选择 | 客户/供应商/项目选择 |
Tabs | 标签切换 | 4 域工作台导航 |
Card | 卡片 | 驾驶舱 KPI 卡 |
Toast + Alert | 通知 | 合规告警 / 操作反馈 |
Command | 命令面板 | 全局搜索 (Ctrl+K) |
Calendar | 日期选择 | 合同日期 / G 阶段日期 |
Progress | 进度 | 项目进度 / 上传进度 |
11.4 关键页面 wireframe(文字版)
// 集团驾驶舱 (dashboard/index.tsx)
┌──────────────────────────────────────────────────────────┐
│ Header: 道纳 CPMS │ 搜索 (Ctrl+K) │ 通知 │ 用户 │
├──────────────────────────────────────────────────────────┤
│ Sidebar │ 主区 │
│ 📊 驾驶舱 │ ┌─────────┐ ┌─────────┐ ┌─────────┐ │
│ 📋 投标 │ │ 今日营收│ │本月毛利 │ │ 现金流 │ KPI │
│ ⚙️ 执行 │ └─────────┘ └─────────┘ └─────────┘ │
│ 🎯 决策 │ │
│ 💎 资产 │ ┌──────────────────────────────────────┐ │
│ 🤖 AI Agent │ │ 项目地图(红/黄/绿) │ │
│ 👤 我的 │ └──────────────────────────────────────┘ │
│ │ │
│ │ ┌─────────────────┐ ┌────────────────┐ │
│ │ │ 中标率漏斗 │ │ AI Agent 通知 │ │
│ │ └─────────────────┘ └────────────────┘ │
└──────────────────────────────────────────────────────────┘
11.5 移动端策略
| 端 | 技术 | 覆盖功能 |
| 移动 H5 | React 同代码 + Tailwind 响应式 | CEO 一屏决策 + 移动审批 + 消息中心 |
| 微信小程序 | Taro (React 同构) | 同上 + 微信集成 |
| 原生 App(v3.0) | React Native | 现场工程师 NCR/RFI 上报 + 离线 |
12API 规范
12.1 REST API 设计原则
| 规则 | 说明 |
| 版本 | URL 中显式:/v1/... / /v2/... |
| 资源命名 | 复数名词:/v1/projects、/v1/bids/:id |
| HTTP 方法 | GET (读) / POST (创建) / PUT (全量更新) / PATCH (部分) / DELETE |
| 响应格式 | 统一包裹:{ "code": 0, "msg": "ok", "data": {...} } |
| 错误码 | 0 = 成功;1xxx = 通用;2xxx-9xxx = 业务域;HTTP status 也对应 |
| 分页 | ?page=1&size=20,返回 { list, total, page, size } |
| 过滤 | ?status=G3&country=AE |
| 排序 | ?sort=-created_at,name (- 为降序) |
| 认证 | JWT Bearer Token,header Authorization: Bearer xxx |
| 幂等 | POST 接口支持 Idempotency-Key header |
12.2 API 请求/响应示例
// POST /v1/bid/boq/quote
// Request
{
"project_id": 12345,
"currency": "USD",
"items": [
{"sku": "ALU-3MM-2440", "qty": 5000, "unit": "m2"},
{"sku": "GLASS-12MM-LOW-E", "qty": 3000, "unit": "m2"}
]
}
// Response
{
"code": 0,
"msg": "ok",
"data": {
"total_amount": 1850000.00,
"breakdown": {
"material": 1100000,
"labor": 280000,
"logistics": 150000,
"tax": 120000,
"profit": 200000
},
"win_probability": 0.68,
"grade": "A",
"ai_insights": ["建议适当下调铝材报价 3%"]
},
"request_id": "req_abc123"
}
12.3 错误码规范
| 范围 | 含义 | 示例 |
| 0 | 成功 | — |
| 1000-1999 | 通用错误 | 1001 参数错误 / 1002 未授权 / 1003 限流 |
| 2000-2999 | 认证/权限 | 2001 token 过期 / 2002 权限不足 |
| 3000-3999 | 用户/租户 | 3001 用户不存在 / 3002 租户停用 |
| 4000-4999 | 投标域 | 4001 BOQ 计算失败 / 4002 标书模版不存在 |
| 5000-5999 | 执行域 | 5001 G 阶段不允许跳跃 / 5002 OFAC 命中 |
| 6000-6999 | 决策域 | — |
| 7000-7999 | 资产域 | 7001 保函已签发不可撤销 |
| 8000-8999 | AI Agent | 8001 LLM API 超时 / 8002 上下文超限 |
| 9000-9999 | 系统错误 | 9001 DB 不可用 / 9999 内部错误 |
12.4 WebSocket / SSE
| 场景 | 协议 | endpoint |
| 驾驶舱实时刷新 | WebSocket | /ws/v1/decision/cockpit |
| AI Agent 流式响应 | SSE | /sse/v1/ai/agent/:id/stream |
| 消息推送 | WebSocket | /ws/v1/notification |
| NCR 实时上报 | WebSocket | /ws/v1/exec/ncr |
13非功能需求
13.1 性能
| 指标 | 目标 |
| API P50 / P99 | 50ms / 300ms(读);100ms / 800ms(写) |
| AI Agent P99 | < 8 秒(含 LLM 调用) |
| 页面 FCP / TTI | < 1.5s / < 3.0s |
| 系统可用性 SLA | 99.95%(M36 目标) |
| RTO / RPO | RTO < 30 分 / RPO < 5 分 |
13.2 安全
| 类别 | 措施 |
| 传输加密 | TLS 1.3,国密 SM2/SM3/SM4 双栈 |
| 存储加密 | 数据库 TDE + 文件 AES-256 |
| 认证 | JWT + Refresh Token + MFA(高敏感操作) |
| 授权 | RBAC + ABAC + 行级安全(RLS) |
| 审计 | 所有写操作 + 数据导出 100% 入审计表,180 天保留 |
| 漏洞扫描 | 每周 SCA + SAST + DAST |
| 渗透测试 | 每季度第三方 |
| 数据脱敏 | 非生产环境自动脱敏(金额/姓名/电话) |
13.3 合规资质(M12 必须拿到)
| 资质 | 认证机构 | 必要性 |
| 国密二级(密评) | 商密办 | 央企必要 |
| 等保三级 | 公安部 | 央企必要 |
| CCRC 信息安全服务 | 中国网络安全审查认证 | 央企必要 |
| 信创适配认证 | 国家信创工委会 | 央企必要 |
| ISO 27001 | 国际 | 海外项目 |
| SOC 2 Type II | 美国 AICPA | 面向跨国客户 |
| GDPR / DIFC DPL | 欧盟 / 迪拜 | 海外用户数据 |
13.4 可扩展性
| 维度 | 策略 |
| 水平扩展 | 所有 API / RPC 无状态,K8s HPA 自动扩缩容 |
| 数据库分片 | 按租户分库 → 按项目分表(> 1 亿行时) |
| 异步处理 | 耗时任务(AI 调用 / 报表生成)入 RabbitMQ / Kafka |
| 读写分离 | PostgreSQL 主从 + 读副本 |
| 缓存 | 多级(L1 进程内 + L2 Redis)+ TTL 策略 |
14部署架构与排期
14.1 部署架构
// 生产环境部署拓扑(信创适配 + 多可用区)
┌─────────────────────────────────────────────────────────────┐
│ Internet → WAF (Cloudflare + 国内 CDN) → SLB (阿里 LB) │
└────────────────────────┬────────────────────────────────────┘
↓
┌─────────────────────────────────────────────────────────────┐
│ Kubernetes Cluster (阿里 ACK / 华为 CCE / 自建) │
│ ┌──────────────────────────────────────────────────────┐ │
│ │ Namespace: gateway │ │
│ │ - gateway (Deployment, 3 replicas, HPA) │ │
│ └──────────────────────────────────────────────────────┘ │
│ ┌──────────────────────────────────────────────────────┐ │
│ │ Namespace: services │ │
│ │ - auth, user, bid, exec, decision, asset 等 14 服务 │ │
│ │ - 每服务 3-6 replicas (按流量) │ │
│ └──────────────────────────────────────────────────────┘ │
│ ┌──────────────────────────────────────────────────────┐ │
│ │ Namespace: ai │ │
│ │ - ai-agent-api/rpc + LangChain workers │ │
│ │ - Dify 工作流编排 │ │
│ └──────────────────────────────────────────────────────┘ │
│ ┌──────────────────────────────────────────────────────┐ │
│ │ Namespace: data │ │
│ │ - PostgreSQL StatefulSet (主 + 2 从) │ │
│ │ - ClickHouse / Milvus / Redis / RabbitMQ │ │
│ └──────────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────┘
↓
┌─────────────────────────────────────────────────────────────┐
│ 外部依赖:LLM API / 银行 API / OFAC 名单 / OSS 文件 │
└─────────────────────────────────────────────────────────────┘
14.2 环境矩阵
| 环境 | 用途 | 资源 | 数据 |
| dev | 开发自用 | docker-compose 单机 | mock 数据 |
| sit | 集成测试 | K8s 1 节点 | 脱敏样本 |
| uat | 客户验收 | K8s 3 节点 | 客户脱敏数据 |
| staging | 预发 | 同生产 50% | 生产快照 |
| prod | 生产 | K8s 多 AZ 全规模 | 生产数据 |
| prod-信创 | 央企信创环境 | 鲲鹏 + 麒麟 | 同 prod 镜像 |
14.3 CI/CD(GitLab CI + ArgoCD)
# .gitlab-ci.yml 简化版
stages:
- lint
- test
- build
- scan # SAST + SCA + 镜像扫描
- deploy-dev
- deploy-sit
- deploy-uat # 手动触发
- deploy-prod # 手动触发 + 双签
backend-build:
stage: build
script:
- "go build -ldflags '-s -w' -o bin/ ./..."
- "docker build -t daona/{service}:$CI_COMMIT_SHA ."
- "docker push registry.daona.com/{service}:$CI_COMMIT_SHA"
frontend-build:
stage: build
script:
- "pnpm install --frozen-lockfile"
- "pnpm run build"
- "docker build -t daona/frontend:$CI_COMMIT_SHA ."
14.4 12 个月排期(与 BP 节奏对齐)
| 阶段 | 月份 | 关键交付 | 团队 |
| Sprint 0 | M1 | 架构设计 + 基础设施 + CI/CD | 5 人 |
| Sprint 1-2 | M2-M3 | auth / user / gateway + 投标域 MVP(B-01/02/04)+ shadcn/ui 基础 | 10 人 |
| Sprint 3-4 | M4-M5 | 执行域 G0-G3 + 4 类合规计算器 + 第 1 个 YUJ 项目部署 | 15 人 |
| Sprint 5-6 | M6-M7 | 资产域(BOQ/保函/资金工具)+ 3 个 AI Agent + 国密+等保审核 | 25 人 |
| Sprint 7-8 | M8-M9 | 决策域驾驶舱 + CEO 移动端 + 剩余 5 个 AI Agent | 35 人 |
| Sprint 9-10 | M10-M11 | 10 项目并行部署 + 性能优化 + 信创适配 | 50 人 |
| Sprint 11-12 | M12 | v2.0 GA 上线 + ISO27001 / SOC2 启动 + 客户上线培训 | 50 人 |
14.5 团队配比
| 角色 | M3 | M6 | M12 |
| 前端 (React + shadcn) | 3 | 6 | 10 |
| 后端 (go-zero) | 4 | 10 | 15 |
| AI / Agent 工程师 | 1 | 3 | 5 |
| 架构 / SRE | 1 | 2 | 3 |
| 测试 (含安全) | 1 | 3 | 5 |
| 产品 / 设计 | 2 | 3 | 5 |
| FDE(驻场客户) | 2 | 8 | 15 |
| 合计 | 14 | 35 | 58 |
关键依赖与风险(项目交付层面):
① 国密+等保认证周期 12 月(与开发并行,M11 必须到手);
② shadcn/ui 阿拉伯文 RTL 支持需自行扩展(M3 投入 1 人月);
③ 大模型 API 在中东项目的合规出境需提前 3 月与法务沟通;
④ 信创适配(鲲鹏+达梦)需 2 人月专门测试(M9-M10)。
14.6 验收标准(Definition of Done)
| 层级 | 验收标准 |
| 代码 | 单测覆盖率 ≥ 70% / Lint 100% 通过 / 安全扫描 0 高危 |
| 功能 | 所有 Acceptance Criteria 通过 + PM/PO 验收签字 |
| 性能 | SLA 达标 + 压测报告通过 |
| 安全 | 渗透测试无高危 + 合规审核通过 |
| 客户验收 | UAT 通过率 ≥ 95% + 客户签字 |
道纳 CPMS v2.0 业务需求文档 BRD
React 18 + shadcn/ui × go-zero · 编制 2026-06-27 · 配套 Pre-A BP V2.0
仅供内部开发团队 · 文档版本将随 Sprint 迭代更新