23 KiB
采购主链 RPA 一期需求文档
文档用途:作为产品、开发、RPA 实施、测试和业务确认的共同底稿。本文将当前已留存的会议相关业务底稿,与现有《采购业务 RPA 思路》《一期需求简版说明》《一期开发任务清单》统一整理。
证据说明:视频音频未上传至外部转写服务,本文不是视频逐句转写稿,而是基于当前项目资料整理出的可执行需求初稿。文末“上线前待确认事项”用于回看会议原声后完成最终确认。
范围说明:当前可落地的主线是“合同/协议 -> 返利中心 -> M5 -> 收货通知单”。订单中心分货、招采子系统和发货后票据上传属于后续范围,本文单独列出,不混入一期验收。
1. 项目概述
1.1 项目目标
将采购人员收到合同后的重复录入和跨系统搬运工作,建设为一条可追踪的 RPA 自动化流程:
flowchart LR
A[合同/协议进入共享目录] --> B[状态中心建单与判重]
B --> C[OCR识别合同字段]
C --> D[字段映射与业务校验]
D --> E{合同系统是否审核通过}
E -- 否 --> F[计划员手机待办]
E -- 是 --> G[返利中心采购协议总单]
G --> H[返利中心细单模板导入]
H --> I[返利中心结果校验]
I --> J[M5 1055采购订单]
J --> K[生成收货通知单]
K --> L[归档业务编号、截图、日志]
核心原则:机器人只执行已经确认的规则;不能稳定识别或映射的字段必须转人工,禁止猜测填报。
1.2 一期范围
包含:
- 合同扫描件/合同文件从共享目录入池
- 文件命名、完整性和重复性检查
- OCR 识别合同基础字段和货品明细
- 供应商、货品、结算方式、承付模式映射
- 合同系统信息补齐、审核状态检查
- 返利中心采购协议检索、总单录入、细单模板导入
- 返利中心导入结果校验
- M5 采购订单管理
1055新增采购订单 - M5 订单保存及收货通知单生成
- 企业微信消息通知和 H5 手机待办
- 状态中心、节点状态、日志、截图、重试和审计留痕
- RPA 执行平台适配和可替换设计
1.3 一期不包含
- 订单中心品种分货、货源切换和销售订单联动
- 招采子系统医院计划抓取
- 发货后一票、二票信息自动上传
- 渠道价管理与维护
- 邮件自动收件作为主入口
- 复杂 BI 看板和经营分析
以上内容可作为二期/三期独立需求,不应影响一期主链交付。
2. 角色与职责
| 角色 | 主要职责 | 可处理的异常/字段 |
|---|---|---|
| 计划员 | 检查合同、确认 OCR 结果、确认数量和合同系统状态 | 合同编号、合同有效期、承付模式及参数、计划员归属、OCR 结果 |
| 采购 | 确认返利中心协议及细单信息 | 供应商/货品映射、协议单价、导入模板错误、返利中心业务校验 |
| 质管 | 维护或确认 M5 所需基础资料 | 质管基础资料缺失导致的 M5 保存失败 |
| 运维/机器人管理员 | 处理账号、网络、页面变化、执行器和系统异常 | 登录失败、控件定位失败、接口回调失败、页面结构变化、超时 |
| 项目负责人 | 处理升级事项、配置审批、平台切换和范围决策 | 多次失败、跨角色协调、执行平台切换 |
角色路由按角色配置,不将流程责任固定写死到个人账号。人员请假或轮班时,可由管理员替换实际处理人。
3. 总体架构与边界
3.1 系统职责
| 系统 | 负责内容 | 不负责内容 |
|---|---|---|
| 状态中心 | 建单、判重、节点编排、业务规则、待办、重试、审计、证据、平台路由 | 直接操作返利中心或 M5 页面 |
| RPA 执行平台 | 登录、检索、点击、录入、上传、下载、截图、结果回调 | 保存主流程状态、人工审批和业务规则主数据 |
| OCR 服务 | 文件识别、文本抽取、字段置信度输出 | 直接向业务系统写单 |
| 企业微信 | 消息、卡片、H5 入口、用户身份和人工操作提交 | 直接修改数据库或绕过状态中心推进流程 |
| 合同系统 | 合同录入、审核和合同编号产生 | 一期不要求其改造接口,优先通过 RPA 访问 |
| 返利中心 | 采购协议总单、细单、返利协议结果 | 不承担流程追踪和异常协同 |
| M5 | 1055 采购订单、收货通知单 |
不承担合同和返利中心数据映射 |
3.2 执行平台可替换边界
- 状态中心、规则、企业微信待办、日志和验收口径必须由项目方掌握。
- 一期上线可以只接一个主平台,但节点设计必须保留统一适配接口。
- 可按新单或节点配置选择平台;不支持一个节点执行到一半跨平台接力。
- 新平台上线前必须通过登录、检索、模板导入、截图、日志、HTTP 回调等 POC 用例。
- 老单默认沿用建单时的执行平台,避免中途迁移造成重复业务结果。
4. 主流程节点需求
N01 合同文件入池
目的:将合同扫描件、年度协议或批次合同纳入统一流程,建立唯一流程实例。
触发方式:
- 计划员/采购将双方盖章版本放入约定共享目录;或
- 用户在状态中心手工上传并建单。
输入:文件、文件名、上传时间、来源目录、发起人、合同类型(年度协议/批次合同)。
处理规则:
- 校验文件格式,至少支持 PDF、常见图片格式;Excel 仅作为模板输入时支持。
- 校验文件是否可打开、页数是否异常、是否存在空文件或缺页。
- 计算文件哈希,拦截相同文件重复上传。
- 按“合同编号 + 合同类型 + 供应商 + 发起来源”判定业务重复。
- 记录原始文件,不覆盖历史文件。
- 创建
job_id,初始化节点为FILE_INTAKE,绑定映射版本和默认执行平台。
输出:job_id、源文件存证、文件哈希、合同类型、来源信息。
异常与路由:
- 命名不规范:计划员待办,不启动 RPA。
- 文件损坏、缺页或关键附件缺失:计划员待办。
- 疑似重复:提示已有流程实例,由计划员/项目负责人确认,不直接新建。
- 共享目录不可访问:运维告警。
成功判定:状态中心已生成唯一 job_id,且源文件、元数据、判重结果均已留痕。
N02 OCR 识别与字段抽取
目的:将合同扫描件转换为可校验的结构化数据。
输入:N01 的源文件和合同类型。
建议抽取字段:
| 字段 | 说明 | 是否必填 |
|---|---|---|
supplier_name |
供应商名称 | 是 |
planner_name |
计划员/联系人 | 是 |
contract_no |
合同编号 | 是,若合同系统尚未产生可为空 |
settlement_text |
原文结算方式 | 是 |
payment_term_text |
原文承付模式及参数 | 是 |
contract_validity |
合同有效期 | 是 |
items[] |
货品、数量、单价等明细 | 批次合同必填 |
每个字段必须输出原文值、标准化值、页码/位置和置信度;保留完整 OCR JSON,不能只保存最终填入值。
处理规则:
- OCR 服务采用本地部署,状态中心通过适配接口调用,后续可替换云 OCR。
- 关键字段缺失、置信度低于阈值、同一字段识别出多个候选值时,进入
WAITING_USER。 - OCR 只负责识别,不直接决定系统编码,不直接写入返利中心或 M5。
成功判定:必需字段均有值或已明确进入人工确认,OCR 原始结果和截图可追溯。
异常与路由:OCR 服务不可用、文件无法识别、页码读取异常,转计划员;服务级异常同时通知运维。
N03 字段映射与业务校验
目的:把合同语言转换为合同系统、返利中心和 M5 能使用的编码与字段。
映射对象:供应商、货品、结算方式、承付模式、合同编号、角色和执行平台。
处理规则:
- 规则优先,精确命中字典才允许自动转换。
- 能识别标准
N天的承付表达时,拆分为“承付模式代码 + 天数参数”。 - 货品需映射到系统货品编码,数量和单价保留合同原值及转换结果。
- 映射规则必须版本化;流程开始后绑定版本快照。
- 重试默认沿用原版本;人工选择“按最新配置重跑”时才更新版本。
- 任一必填项未命中、存在一对多结果或映射置信度不足,不得继续。
承付模式字典:
0 手工指定、1 订单签订后N天、2 入库后N天、3 收到发票后N天、4 供应商开出发票后N天、5 销售发货后N天、6 销售出库后N天、7 销售回款后N天、8 门店铺货后N天、9 以销定结、10 销完后N天、11 下月N号结、12 押N批、13 预付、14 供应商发货日期N天、15 开完发票N天、16 销售发票入账后N天、99 无。
结算方式字典:
3 电汇、10 银行承兑汇票、11 商业承兑汇票、12 托收、13 信用证、17 电子债权凭证、27 电子银行承兑汇票、28 电子商业承兑汇票、30 应付保理、31 归集付款、32 电汇-非直联、33 不需支付、34 其他支付-直联、35 其他支付-非直联、36 电子债权凭证-非直联、37 电子银承汇票-非直联。
输出:映射后的结构化业务对象、校验结果、未通过字段清单、映射版本。
异常与路由:供应商/货品未找到或多值匹配,计划员或采购待办;字典配置缺失,运维/项目负责人待办。
N04 合同系统信息补齐与审核前置
目的:确保后续返利中心和 M5 使用的合同已在合同系统中建立并处于可执行状态。
输入:N02/N03 结构化字段和源文件。
RPA 操作:
- 登录合同系统。
- 按供应商、计划员、合同编号或业务条件检索已有合同。
- 补齐允许自动录入的合同字段。
- 保存并获取合同系统单号。
- 查询合同审核状态。
前置规则:
- 合同系统“已审核/审核通过”才允许进入返利中心。
- 送审是否由机器人执行,需业务最终确认;未确认前默认由计划员操作或确认。
- 审核驳回、缺资料或状态不明确,流程停留在前置节点。
输出:合同系统单号、审核状态、审核通过时间、驳回原因摘要。
成功判定:合同单号存在,系统查询状态为审核通过,且关键字段与状态中心数据一致。
N05 返利中心采购协议总单
目的:根据合同编号在返利中心定位采购协议并完成总单必填信息。
输入:合同编号、供应商、承付模式、承付参数、结算方式、返利合约标识、有效期。
RPA 操作:
- 登录返利中心。
- 进入“采购协议”。
- 以合同编号检索对应总单。
- 校验供应商和合同编号是否与状态中心一致。
- 录入/更新采购协议总单必填字段。
- 保存,获取返利中心总单号并截图。
关键业务规则:
- 采购协议至少包含品种、承付模式、承付参数和返利合约(一期默认为“否”或按业务配置)。
- 承付模式和结算方式必须使用系统内已存在编码。
- 批次合同在开户时必须先录入产品。
- 批次合同有效期默认为 1 个月;如合同原文不同,以人工确认值为准。
成功判定:总单号已生成或检索到且关键字段核验一致;只有页面保存成功而无业务编号时不得直接成功。
异常:检索不到、供应商不一致、必填项校验失败、重复总单、登录或页面异常,按采购/计划员/运维角色分流。
N06 返利中心细单模板生成与导入
目的:批量写入合同约定的货品、数量、单价等明细,减少逐行人工录入。
输入:货品映射结果、合同明细、返利中心模板格式、总单号。
状态中心处理:
- 按模板版本生成 Excel/导入文件。
- 写入来源字段、目标字段和每行数据校验结果。
- 模板作为
TEMPLATE存证,记录生成时间和映射版本。
RPA 操作:
- 下载或打开返利中心细单模板。
- 上传状态中心生成的模板。
- 提交导入。
- 读取导入总行数、成功行数、失败行数和失败原因。
- 保存错误明细截图和导入结果。
成功判定:成功行数等于应导入行数,失败行数为 0,且返利中心返回可查询的结果。
部分成功处理:必须保留逐行成功/失败明细;不得直接将整节点标记成功,也不得盲目重复导入造成重复货品。转采购待办,由采购决定修正、补导或人工处理。
N07 返利中心结果校验
目的:确认总单与细单已经真正落库,并作为 M5 前置条件。
校验项:供应商、合同编号、货品编码、数量、协议单价、结算方式、承付模式、有效期、明细行数。
输出:返利中心总单号、明细校验摘要、差异项、成功截图。
规则:有差异即阻断 M5;差异项应展示“合同值/状态中心值/返利中心值”,转采购或计划员确认。
N08 M5 采购订单创建(1055)
目的:依据已审核合同和返利中心协议,在 M5 的采购订单管理 1055 中创建采购订单。
输入:合同系统单号、返利中心协议结果、供应商、货品、数量、结算方式、承付模式、单价、货源/联系人信息。
RPA 操作:
- 登录 M5,进入采购订单管理
1055。 - 新增采购订单和细单。
- 选择供应商、货品、货源。
- 填写结算方式、承付模式、数量、单价等字段。
- 执行页面校验并保存。
- 读取采购订单号。
数量规则:计划员需要确认采购数量是否不超过供应商可供数量;状态中心应保留合同数量、录入数量和差异说明。
货源规则:按合同管理联系人/业务配置选择货源;无法唯一确定时转计划员或采购,机器人不得自行选择。
异常:质管基础资料未维护、货品不存在、货源不唯一、金额或数量校验失败,分别转质管、计划员或采购;控件和登录问题转运维。
成功判定:M5 查询到采购订单号,且订单供应商、货品、数量、单价与输入校验一致。
N09 收货通知单生成
目的:采购订单完成后通知仓库即将到货的货品和来源。
输入:M5 采购订单号及细单。
RPA 操作:进入收货通知单功能,基于采购订单生成通知单,保存并读取通知单号。
成功判定:收货通知单号已生成,且其供应商、货品、数量与采购订单一致。
异常:订单未完成、重复生成、仓库信息缺失、页面/登录失败,分别转业务角色或运维;重复操作必须先检索已有通知单。
N10 流程归档
目的:以真实业务结果为准完成归档,形成可审计的完整轨迹。
归档内容:合同原件、OCR JSON、映射快照、返利中心总单号、导入结果、M5 订单号、收货通知单号、关键截图、运行日志、人工处理记录。
成功判定:所有必需业务编号已回写状态中心,关键节点成功,审计事件完整;页面点击完成但未拿到业务结果不得归档为成功。
5. 状态机、重试与异常处理
5.1 节点状态
PENDING、RUNNING、WAITING_USER、SUCCESS、FAILED_RETRYABLE、FAILED_MANUAL、CANCELLED。
允许迁移:
PENDING -> RUNNING -> SUCCESS;
RUNNING -> WAITING_USER -> RUNNING;
RUNNING -> FAILED_RETRYABLE -> RUNNING;
RUNNING -> FAILED_MANUAL;
WAITING_USER -> CANCELLED。
同一节点同一时刻只能有一个有效执行上下文;重试产生新的 attempt_no,不得覆盖历史失败记录。
5.2 异常分流表
| 异常 | 默认处理角色 | 系统动作 |
|---|---|---|
| 文件命名不规范/缺页 | 计划员 | 不启动 RPA,创建待办 |
| OCR 低置信度/关键字段缺失 | 计划员 | 展示原文和建议值,等待确认 |
| 供应商或货品无法映射 | 计划员/采购 | 阻断下游,保留映射候选 |
| 合同未审核通过 | 计划员 | 停在前置节点,不进入返利中心 |
| 返利中心找不到总单 | 采购 | 自动重试后转人工确认 |
| 返利中心模板导入失败 | 采购 | 保留逐行错误,允许修正后重试 |
| M5 质管资料缺失 | 质管 | 处理基础资料后重试 |
| 登录、控件、页面结构变化 | 运维 | 截图、日志、运行号齐全后告警 |
| 节点超时无回调 | 运维 | 超时关闭执行上下文并升级 |
| 多次失败或超出能力 | 运维/项目负责人 | 转人工,禁止无限重试 |
5.3 重试策略
- 系统型异常(超时、偶发网络错误):自动重试 1 至 2 次。
- 业务型异常(映射不确定、校验失败):人工确认后只重试当前节点。
- 人工接管:进入
FAILED_MANUAL,保留上下文,不允许后台自动反复拉起。 - 整单重跑:新建流程实例并关联原
parent_job_id,不覆盖原轨迹。 - 待办超过 30 分钟未处理再次提醒,超过 2 小时升级备岗/项目负责人;具体时长可配置。
6. 手机待办与企业微信需求
6.1 待办内容
每条消息至少包含:合同编号、供应商、当前节点、错误/待确认原因、关键字段摘要、最近错误截图、处理链接、预计处理时间。
6.2 H5 详情页
页面必须支持:
- 查看当前人话状态:系统正在做什么、通常耗时、下一步是什么。
- 查看 OCR 原值、系统建议值和当前填写值。
- 只编辑角色有权限修改的白名单字段。
- 查看最近截图、错误翻译和处理历史。
- 执行确认并继续、重试当前节点、转人工、终止本单。
- 提交后立即返回“已受理、请勿重复提交、预计多久有结果”。
6.3 人工修改留痕
合同编号、供应商、结算方式、承付模式、货品编码、数量、单价、货源等字段的修改,必须记录修改前值、修改后值、修改人、时间和原因。
企业微信只展示必要摘要,完整合同和日志通过状态中心受控页面查看;查看和下载动作也要进入审计日志。
7. 状态中心与数据要求
7.1 核心实体
| 实体 | 用途 |
|---|---|
job |
一份合同的一次流程实例 |
job_node |
每个节点每次尝试 |
user_task |
企业微信/H5 人工待办 |
mapping_config |
供应商、货品、结算、承付和路由配置 |
executor_binding_config |
节点和 RPA 平台绑定 |
job_artifact |
合同、OCR、模板、截图、日志存证 |
job_event |
全流程事件轨迹 |
7.2 幂等要求
- 入池幂等:文件哈希 + 文件名 + 时间窗口。
- 业务幂等:合同编号 + 合同类型 + 供应商 + 来源。
- 节点回调幂等:
job_id + node_code + attempt_no + callback_type。 - 手机提交幂等:
task_id + action + submit_token。 - 业务系统执行前先检索已有单号,避免重复创建采购协议、采购订单和收货通知单。
7.3 证据要求
每个节点至少记录:节点编码、开始/结束时间、执行平台、运行号、错误码、业务摘要、截图、日志、当前责任角色、重试次数。
推荐目录:job_id/节点编码/attempt_no/。
8. 统一 RPA 节点契约
RPA 平台只通过状态中心接口交互,禁止直接改状态中心数据库。
节点回调至少包含:
jobIdnodeCodeattemptNoexecutorPlatformexecutorRunIdstatuserrorCode/errorSummarybusinessRefssummaryartifactscallbackIdempotencyKey
建议节点编码:
FILE_INTAKE、OCR_EXTRACT、FIELD_MAPPING、CONTRACT_SYSTEM_CHECK、REBATE_ORDER_HEADER、REBATE_IMPORT_ITEMS、REBATE_VERIFY、M5_CREATE_ORDER、M5_RECEIPT_NOTICE、ARCHIVE_JOB。
9. 验收标准
9.1 主流程验收
- 合同从共享目录入池后可生成唯一流程单。
- 完整且规则明确的合同可自动跑到 M5 和收货通知单。
- 可查询合同系统单号、返利中心总单号、M5 订单号、收货通知单号。
- 每个节点均有开始、结束、结果和证据。
9.2 安全与正确性验收
- 低置信度和多值映射不会被机器人猜测通过。
- 合同未审核通过不会进入返利中心。
- 重复上传、重复回调、重复点击不会生成重复业务结果。
- 部分导入失败可查看逐行明细,不会被误判为成功。
- 整单重跑不覆盖历史实例。
9.3 协同验收
- 计划员、采购、质管、运维收到的待办角色正确。
- 手机端能看懂卡点、原因、处理动作和预计等待时间。
- 人工修改有前后值对比和审计记录。
- 提交后有即时受理回执,重复点击有幂等反馈。
10. 测试场景
- 正常年度协议:字段完整,自动完成主链。
- 正常批次合同:合同有效期一个月,先录产品再进入细单。
- OCR 低置信度:转计划员,修正后继续。
- 承付模式未命中字典:不得自动猜,转计划员确认。
- 供应商/货品一对多映射:转人工选择。
- 合同系统未审核通过:流程停止,不启动返利中心。
- 返利中心模板全部成功:进入结果校验和 M5。
- 返利中心部分导入失败:记录逐行结果,转采购处理。
- M5 质管资料未维护:转质管,修复后重试。
- 执行平台登录失败:自动重试后转运维。
- 页面结构变化:截图、日志、运行号完整,转运维。
- 同一合同重复上传:拦截并提示已有流程。
- 企业微信待办重复提交:只推进一次。
- 节点长时间运行:超时升级,不允许永久停留在运行中。
- 新单切换执行平台:业务状态、待办和审计口径不变。
11. 上线前待确认事项
以下事项必须由业务、实施和技术共同拍板后写入配置或测试用例:
- 合同系统“送审”是否由机器人执行。
- 合同系统的审核通过状态名称和可查询方式。
- 批次合同有效期是否始终默认为一个月。
- 返利合约字段是否一期固定为“否”。
- 合同文件命名规则、共享目录、文件权限和清理周期。
- OCR 置信度阈值及每个字段的必填性。
- 计划员、采购、质管和运维的实际企业微信角色映射。
- 各节点自动重试次数、超时阈值和工作时间。
- 返利中心部分成功后的补导规则,是否允许重导失败行。
- 货源选择规则和供应商可供数量校验口径。
- 生产和测试账号、RPA 运行机、企业微信可信域名。
- 合同、供应商和截图的查看权限、脱敏方式、保留周期。
12. 后续扩展方向
后续可在本期状态中心和待办体系上扩展:
- 订单中心货源拆分、分货和销售订单联动。
- 招采子系统每日医院计划抓取及订单中心生成。
- 发货后的一票、二票信息归集和上传。
- 渠道价维护。
这些流程应复用本期的 job/job_node/user_task/job_event、规则版本、幂等和证据体系,不应重新建设一套孤立机器人流程。