AutoRpa/docs/superpowers/specs/2026-09-12-jieda-four-flow-...

12 KiB
Raw Blame History

历史版本,已合并替代。 当前请使用福建洁达采购 RPA 概要设计与详细设计 V3.0。合同与返利一次接收、共用接口头明细,以新稿为准。下文保留历史内容,不作为当前实施依据。

福建洁达 RPA 四流程设计稿

版本:V1.9 · 2026-09-12
配套:技术实现说明 V2.3。本次为文档修订,应用代码及数据库尚未改动。

1. 范围和运行方式

本期做四条流程:选品加购、平台订单导出推送、合同录入、返利录入。业务可以点击各自脚本执行,也可以设置不同时间、不同频率自动执行。一条脚本处理完本批数据就退出。

FastAPI 接收订单中心推送的数据,校验必填字段,缺项当次返回失败及具体字段;通过后保存到 RPA 表并返回成功。RPA 按各自排期读取未处理数据,不在接收请求中同步执行四条流程。

业务范围以本次确认内容为准;字段依据合同返利字段映射,选品依据采购条件,合同和返利操作参考 资料/合同系统录入流程.md。手工单暂不做。

2. 四条流程

2.1 选品加购 PROCURE

读取订单中心已传入的未处理销售明细
→ 取一条批准文号去平台查询
→ 满足采购条件:加购物车,记录已加购
→ 不满足:记录已跳过及原因
→ 下一条 → 本批处理完结束

本次业务已确认,相同批准文号只有一个规格。选品按批准文号查询,不增加规格、厂家、包装和单位换算匹配。

每条记录已加购、已跳过或执行失败。再次执行读取未处理及需要重试的数据。人工付款在平台由业务处理,第一条脚本不等付款。

2.2 平台订单导出推送 ORDER_PUSH

从对应平台导出订单 → 保存到该平台对应的共享文件夹
→ 按订单中心接口格式组装数据 → 推送订单中心
→ 记录接收结果 → 本批结束

1 药城、药帮忙分别配置共享目录及导出字段映射。保留原订单文件、来源订单号和推送结果。对码在订单中心内部完成,本方不增加对码表、候选确认或对码轮询。

2.3 合同录入 CONTRACT

读取已接收成功、未处理的合同数据
→ 打开合同系统,选择客户,填写合同头和导入明细
→ 汇总金额并保存合同 → 记录合同号和保存结果
→ 调用订单中心链路接口更新对应节点 → 完成

必填字段在接收时检查,成功落表后直接供 RPA 录入。合同系统保存成功后才更新订单中心节点;更新失败保留“合同已保存、链路更新失败”,再次处理只补接口调用。

按原业务流程读取尽调回显;未尽调由采购员处理,本条停止自动录入,继续下一条。沿用业务要求的通知方式,不新增审批步骤。

2.4 返利录入 REBATE

读取已接收的返利数据 → 按合同号查询采购协议
→ 填写返利总单 → 导入细单 → 提交
→ 记录成功或失败 → 下一条

字段按第 4 节填写。提交失败按原流程交业务处理。

3. 选品条件

前四项全部满足后,按仓库名单顺序选择。

条件 业务要求
自营仓 业务勾选的自营仓
盈利 对比销售价格,有 5% 以上盈利
有效期 大于等于 12 个月
库存 满足需求采购数量
仓库顺序 按以下名单优先选择

广东壹号药业有限公司、昆山亿方药业有限公司、湖北亿昊药业有限公司、天津壹号药业有限公司、重庆亿昊药业有限公司、重庆壹号医药有限公司、湖南壹号药业股份有限公司、辽宁亿昊药业有限公司、河南壹号医药有限公司、甘肃壹号云医药有限责任公司企业店、陕西壹号药业有限公司。

4. 合同及返利字段

以下字段和行号对应 Excel 的两个业务工作表。订单中心提供的字段在接收时校验;固定默认值由程序填写,系统生成及页面回显字段不要求上游必传。

4.1 合同头

目标字段 取值规则 行号
客户名称 订单中心 12
客户编码 目标系统自动生成 11
尽调情况 读取回显;未尽调停止本单自动录入并转采购员处理 13
结算类型 收支双向 15
合同版本类型 预付:我司定制;账期:非格式合同 17
合同金额(单位元) 预估本次合作金额 24
金额(元) 明细汇总;与导入后页面汇总核对并回填 25
合同签订日期、合同开始日期、合同结束日期 订单中心分别提供,三个独立字段 26–28
是否重大合同 否 29
是否预付款 预付:是;账期:否 30
付款方式 电汇 32
付款期限 预付:1;账期:订单中心账期天数,缺失不默认 30 33
合同具体分类 国内药品类、器械类品种 37
运输方式 公路运输 39

4.2 合同明细

目标字段 来源/规则 行号
货品编码 订单中心 43
货品名称 订单中心标准货品名称 44
注册证号 订单中心 46
规格、单位 按订单中心标准字段填报 47–48
数量、单价 按订单中心最终采购数量、单价填报 49–50
付款方式 电汇 52
付款条件 订单中心;模板无此字段时不填 53
付款期限 同合同头规则 54

4.3 返利总单

目标字段 来源/规则 行号
返利合约 否 5
供应商编码 订单中心 6
返利单位编码 订单中心 7
计划员 订单中心,按业务给定的计划员/采购员对应关系填写 8
采购结算方式 文案“否”;与细单代码 3 分别映射 9
承付模式 下月 N 号结 10
协议开始日期、协议结束日期 当天 11–12

4.4 返利细单

目标字段 来源/规则 行号
货品编码、数量、含税协议单价 订单中心返利源数据 15–17
税率、关税税率 均为 0.13 18–19
承付模式、承付参数 11、25 20–21
细单开始日期 当天 22
细单结束日期 本年度最后一天 23
采购结算方式 3 24
特定补偿预估值、进货补偿预估值 均为 0 25–26
细单备注 订单中心订单号 33
货源细单ID 订单中心货源细单号;与订单号分列 34

合同明细导入列按 Excel 的 Sheet3。表中标注无需填写的字段不填;系统自动生成字段由系统处理。

5. 接口和存储

5.1 接口方向

方向 数据 处理
订单中心 → 本方 销售总单及明细 校验后落表,供选品使用
订单中心 → 本方 合同头及明细 校验后落表,供合同录入使用
订单中心 → 本方 返利头及明细、计划员对应信息 校验后落表,供返利使用
本方 → 订单中心 平台导出的订单 按正式接口格式推送,保存接收结果
本方 → 订单中心 合同保存结果及对应链路节点 保存成功后调用更新接口,保存返回结果

接收成功表示数据校验通过并已保存。缺必填返回字段错误,订单中心补齐后重传;数据库保存失败返回失败。相同来源单据重复传入时,按双方约定的来源标识识别,避免重复执行。

5.2 需要保存的数据

表名为建议,开发时先核对已有 RPA Oracle 表,能复用的直接复用。正式列名和类型按接口报文及 Excel 确定。

逻辑表/现有记录 保存内容
RPA_JD_SALES_HEAD / LINE 来源销售单号、明细标识、批准文号、采购数量、销售价格及上游提供的商品信息
RPA_JD_CONTRACT_HEAD / LINE 第 4 节合同字段、来源标识、订单中心链路关联
RPA_JD_REBATE_HEAD / LINE 第 4 节返利字段、合同/协议关联及计划员对应信息
现有 job / job_node 流程类型、来源数据关联、处理状态、已加购/已跳过结果、合同号、失败原因及执行次数
现有 job_artifact / job_event 平台订单文件路径、平台、来源订单号、发送报文和接收结果;合同链路请求和返回结果

一个业务头关联它自己的明细,订单号和明细标识分别保存。原平台订单文件保存在共享目录。选品和订单推送不另建一套主数据匹配表。

业务数据放 RPA Oracle,执行状态复用 MySQL 状态中心。脚本通过状态中心 API 取数和回报,由后端统一读写数据库。

6. 对当前代码的改动

位置 本次需要改什么
state_center/app/main.py 增加销售/合同/返利接收及取数接口;必填在接收时校验;按流程返回待处理数据
state_center/app/db.py 及数据库脚本 接入 RPA 业务表;job 增加流程类型和来源关联,原供应商+日期键改为适合各流程的来源标识
state_center/app/web_state_machine.py 按流程定义节点及完成条件
rpa_yisaiqi/agent.py、runtime/shell.py、callback_client.py 支持四个独立脚本入口,取数、逐条处理、回报及本批退出
选品与平台导出模块 接入平台查询/加购、订单导出、共享目录保存、报文组装及推送
contract_draft.py、contract_create_node.py、contract_flow_steps.py 按第 4 节字段录入,保存成功后调用链路更新接口;原页面操作可复用部分继续使用
返利执行模块 按第 4 节字段导入和提交;真实页面流程需补齐
前端列表/详情 按四条流程展示状态、文件、结果及失败原因,复用现有页面

当前实现仍是一条固定主链;平台真实查询/导出能力需核对现有模块,不能把 mock 当作已完成。整体改动集中在数据接入、流程拆分和接口适配,合同页面操作有可复用基础。

具体执行节点和开发顺序见技术实现说明。

7. 验收

  1. 接收数据缺必填当次失败;补齐后可重传,成功数据能被对应脚本读取。
  2. 选品合格加购、不合格跳过,处理完本批结束,不等待付款。
  3. 平台订单保存到对应共享文件夹,按接口格式推送并记录结果。
  4. 合同字段按 Excel 填写;保存成功后更新订单中心节点,更新失败不重复建合同。
  5. 返利按字段映射填写并记录提交结果。
  6. 四条脚本按各自时间和频率执行,失败可定位到具体记录,已完成数据不重复处理。

8. 待补充信息和可能出现的问题

以下是联调需要补齐的信息及实现注意点,不增加业务操作步骤。

项目 需要处理的内容
正式接口和文件 提供订单中心接收/链路更新格式、节点代码,平台导出样例、共享路径和四条排期
5% 盈利 原材料未给出计算公式,需明确按什么基数计算
合同/返利模板 确认实际导入模板、报文中每份合同及返利明细的范围;附件及审批要求以实际系统和业务确认为准,不先设计额外流程
重复运行 同一脚本运行中再次点击不重复启动;重复传单或重新导出同一订单不重复办理
接口超时 记录本次请求及错误,结果不明先核对;合同已保存时仅补链路更新
平台/共享目录故障 查询失败和无合格商品分开记录;文件保存失败时记录错误,不继续推送
当前合同代码 缺单价默认 1.00、同编码行定位和前 30 行扫描等行为需修正;接收缺价应直接返回错误
旧流程影响 新四流程按 flow 区分,保留旧在途单的原节点和处理方式,避免改全局节点影响其他流程