# 场外基金申购赎回工作流程图 ```mermaid flowchart TD A[收件箱收到邮件或 Worker 启动] --> B[UID 增量补偿扫描] B --> C{发现新邮件} C -- 否且启用 IDLE --> D[IMAP IDLE 等待事件或超时] D --> B C -- 是 --> E[按 UID 拉取完整 MIME 和附件] E --> F{发件人和邮件认证通过} F -- 否 --> F1[记录告警并停止进入业务队列] F -- 是 --> G[保存原始 EML 和附件哈希] G --> H[OCR/Document AI 一次识别] H --> I[DeepSeek 分类与字段抽取] I --> J{附件类型} J -- other --> J1[只归档] J -- summary/subscription/redemption --> K[生成 mail_id 和 attachment_id] K --> L[SSE 推送新业务邮件事件] L --> M[生成查询/计算/核对三阶段执行计划] M --> N[调用 nl2sql_yc 只读查询] N --> O[确定性金额、份额、比例计算] O --> P[固定申购/赎回规则核对] P --> Q{识别或查询是否异常} Q -- 是 --> R[运营确认异常或未处理] Q -- 否 --> S[运营确认正常] R --> T[异常返回与风控通知独立候选] S --> U[正常返回候选] U --> V{正常回复发送成功} V -- 否 --> W[不纳入资金清算统计] V -- 是 --> X[按基金和申请日期增量统计] T --> Y[分别保存发送状态、重试和审计] X --> Y Y --> Z{邮件内确认和必要发送动作完成} Z -- 否 --> AA[保持待处理] Z -- 是 --> AB[邮件完成并保留全链路审计] ``` ## 边界 - 本流程只覆盖后端、Agent、数据、接口、异步事件和审计。 - 反洗钱和开放期规则不纳入本次实现。 - 邮件返回、风控通知和资金清算通知互相独立,不自动联动。 - IDLE 超时或断线后继续执行 UID 补偿扫描;失败 UID 不跳过后续邮件。 - 资金清算统计只纳入运营确认正常且正常回复已成功发送的单据。