213 lines
12 KiB
Markdown
213 lines
12 KiB
Markdown
> **历史版本,已合并替代。** 当前请使用[福建洁达采购 RPA 概要设计与详细设计 V3.0](/Users/yuuuu/Documents/AutoRpa/docs/superpowers/specs/2026-09-13-jieda-rpa-integrated-design.md)。合同与返利一次接收、共用接口头明细,以新稿为准。下文保留历史内容,不作为当前实施依据。
|
||
|
||
# 福建洁达 RPA 四流程设计稿
|
||
|
||
版本:V1.9 · 2026-09-12
|
||
配套:[技术实现说明 V2.3](/Users/yuuuu/Documents/AutoRpa/docs/superpowers/specs/2026-09-12-jieda-four-flow-impl.md)。本次为文档修订,应用代码及数据库尚未改动。
|
||
|
||
## 1. 范围和运行方式
|
||
|
||
本期做四条流程:选品加购、平台订单导出推送、合同录入、返利录入。业务可以点击各自脚本执行,也可以设置不同时间、不同频率自动执行。一条脚本处理完本批数据就退出。
|
||
|
||
FastAPI 接收订单中心推送的数据,校验必填字段,缺项当次返回失败及具体字段;通过后保存到 RPA 表并返回成功。RPA 按各自排期读取未处理数据,不在接收请求中同步执行四条流程。
|
||
|
||
业务范围以本次确认内容为准;字段依据[合同返利字段映射](/Users/yuuuu/Documents/AutoRpa/资料/合同返利系统字段映射_20260911.xlsx),选品依据[采购条件](/Users/yuuuu/Documents/AutoRpa/资料/采购平台选品条件优先项_20260902.txt),合同和返利操作参考 `资料/合同系统录入流程.md`。手工单暂不做。
|
||
|
||
## 2. 四条流程
|
||
|
||
### 2.1 选品加购 `PROCURE`
|
||
|
||
```text
|
||
读取订单中心已传入的未处理销售明细
|
||
→ 取一条批准文号去平台查询
|
||
→ 满足采购条件:加购物车,记录已加购
|
||
→ 不满足:记录已跳过及原因
|
||
→ 下一条 → 本批处理完结束
|
||
```
|
||
|
||
本次业务已确认,相同批准文号只有一个规格。选品按批准文号查询,不增加规格、厂家、包装和单位换算匹配。
|
||
|
||
每条记录已加购、已跳过或执行失败。再次执行读取未处理及需要重试的数据。人工付款在平台由业务处理,第一条脚本不等付款。
|
||
|
||
### 2.2 平台订单导出推送 `ORDER_PUSH`
|
||
|
||
```text
|
||
从对应平台导出订单 → 保存到该平台对应的共享文件夹
|
||
→ 按订单中心接口格式组装数据 → 推送订单中心
|
||
→ 记录接收结果 → 本批结束
|
||
```
|
||
|
||
1 药城、药帮忙分别配置共享目录及导出字段映射。保留原订单文件、来源订单号和推送结果。对码在订单中心内部完成,本方不增加对码表、候选确认或对码轮询。
|
||
|
||
### 2.3 合同录入 `CONTRACT`
|
||
|
||
```text
|
||
读取已接收成功、未处理的合同数据
|
||
→ 打开合同系统,选择客户,填写合同头和导入明细
|
||
→ 汇总金额并保存合同 → 记录合同号和保存结果
|
||
→ 调用订单中心链路接口更新对应节点 → 完成
|
||
```
|
||
|
||
必填字段在接收时检查,成功落表后直接供 RPA 录入。合同系统保存成功后才更新订单中心节点;更新失败保留“合同已保存、链路更新失败”,再次处理只补接口调用。
|
||
|
||
按原业务流程读取尽调回显;未尽调由采购员处理,本条停止自动录入,继续下一条。沿用业务要求的通知方式,不新增审批步骤。
|
||
|
||
### 2.4 返利录入 `REBATE`
|
||
|
||
```text
|
||
读取已接收的返利数据 → 按合同号查询采购协议
|
||
→ 填写返利总单 → 导入细单 → 提交
|
||
→ 记录成功或失败 → 下一条
|
||
```
|
||
|
||
字段按第 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 当作已完成。整体改动集中在数据接入、流程拆分和接口适配,合同页面操作有可复用基础。
|
||
|
||
具体执行节点和开发顺序见[技术实现说明](/Users/yuuuu/Documents/AutoRpa/docs/superpowers/specs/2026-09-12-jieda-four-flow-impl.md)。
|
||
|
||
## 7. 验收
|
||
|
||
1. 接收数据缺必填当次失败;补齐后可重传,成功数据能被对应脚本读取。
|
||
2. 选品合格加购、不合格跳过,处理完本批结束,不等待付款。
|
||
3. 平台订单保存到对应共享文件夹,按接口格式推送并记录结果。
|
||
4. 合同字段按 Excel 填写;保存成功后更新订单中心节点,更新失败不重复建合同。
|
||
5. 返利按字段映射填写并记录提交结果。
|
||
6. 四条脚本按各自时间和频率执行,失败可定位到具体记录,已完成数据不重复处理。
|
||
|
||
## 8. 待补充信息和可能出现的问题
|
||
|
||
以下是联调需要补齐的信息及实现注意点,不增加业务操作步骤。
|
||
|
||
| 项目 | 需要处理的内容 |
|
||
| --- | --- |
|
||
| 正式接口和文件 | 提供订单中心接收/链路更新格式、节点代码,平台导出样例、共享路径和四条排期 |
|
||
| 5% 盈利 | 原材料未给出计算公式,需明确按什么基数计算 |
|
||
| 合同/返利模板 | 确认实际导入模板、报文中每份合同及返利明细的范围;附件及审批要求以实际系统和业务确认为准,不先设计额外流程 |
|
||
| 重复运行 | 同一脚本运行中再次点击不重复启动;重复传单或重新导出同一订单不重复办理 |
|
||
| 接口超时 | 记录本次请求及错误,结果不明先核对;合同已保存时仅补链路更新 |
|
||
| 平台/共享目录故障 | 查询失败和无合格商品分开记录;文件保存失败时记录错误,不继续推送 |
|
||
| 当前合同代码 | 缺单价默认 1.00、同编码行定位和前 30 行扫描等行为需修正;接收缺价应直接返回错误 |
|
||
| 旧流程影响 | 新四流程按 flow 区分,保留旧在途单的原节点和处理方式,避免改全局节点影响其他流程 |
|