6.8 KiB
6.8 KiB
艺赛旗开发包说明
这个包包含艺赛旗(iS-RPA)开发采购主链 RPA 一期所需的全部材料。
文档清单
📘 1-技术规范(必读).md
就是 state_center/给艺赛旗的开发交接.md
用途:你们的技术圣经,开发过程中反复查。
内容:
- HTTP 回调契约(start/complete/fail 三个接口的字段规范)
- 三把钥匙(必须回传的业务编号:合同编号、返利总单号、收货通知单号)
- 错误码表(什么情况返回什么错误码、retryable 怎么填、routeRole 怎么填)
- 逐节点操作说明(哪个节点点什么页面、拿什么编号、失败怎么处理)
- 硬规则红线(10条,踩了就是错的)
📋 2-并行开发任务.md
用途:你们的开发计划和检查清单。
内容:
- 阶段1:独立开发(2-3周,不依赖状态中心)
- 逐节点开发页面自动化(ORDER_FETCH、CONTRACT_CREATE、REBATE_*、M5_CREATE_ORDER 等)
- 本地模拟回调验证 payload 格式
- 错误码识别验证
- 阶段2:准备对接(1天)
- 拿到状态中心联调环境信息
- 改成调真实接口
- 小范围试跑
- 联调阶段(3-5天,和状态中心一起)
- 按节点逐个验证
- 跑完整链(医药城线上单、线下单、对码 MULTI、缺货源等场景)
- 异常场景验证
✅ 3-联调检查清单.md
用途:联调前自证、联调时逐条勾。
内容:
- 功能检查(15项):能登录各系统、能导出订单、能拿到三把钥匙、能处理 M5 桌面自动化…
- 回调检查(6项):知道何时调什么接口、必传字段是否正确、错误码是否识别准确…
- 异常检查(4项):登录失败、页面改版、M5质管缺失、合同被禁的处理是否正确…
开发顺序(重要)
第1周 第2周 第3周 第4周
│─────阶段1:独立开发─────│阶段2:准备对接│──联调阶段──│
(2-3周,不依赖状态中心) (1天) (3-5天)
现在(第1天)你们要做的:
-
仔细读
1-技术规范(必读).md,尤其是:- 第三节:三个回调契约(start/complete/fail 的 JSON 格式)
- 第四节:三把钥匙(contractSystemNo/rebateOrderNo/receiptNoticeNo)
- 第五节:逐节点操作说明(每个节点点什么页面、拿什么数据)
- 第六节:硬规则红线(10条,违反就是错的)
-
确认环境:
- iS-RPA 开发环境能访问医药城、小药药、合同系统、返利中心、M5 吗?
- 有测试账号吗?
- M5 是桌面客户端,iS-RPA 的桌面自动化能力 OK 吗?(这是最大风险点)
-
POC 验证:
- 先做一个最简单的节点(比如 ORDER_FETCH:登录医药城 → 导出订单)
- 不调状态中心,在自己环境跑通,验证 iS-RPA 能点页面、能拿到数据
- 手工构造一个
complete回调的 JSON,确认能拿到订单号列表
第1周你们要完成的:
- ORDER_FETCH 页面自动化 + 回调 payload 验证
- CONTRACT_CREATE 页面自动化(重点:能拿到合同编号)
- REBATE_HEADER 页面自动化(重点:能拿到返利总单号)
第2周你们要完成的:
- REBATE_IMPORT 页面自动化(重点:Excel 模板生成、字段映射、上传、读成功/失败行)
- REBATE_SUBMIT 页面自动化(简单,就一个按钮,但关键)
- M5_CREATE_ORDER 页面自动化(最难,桌面客户端,录完不保存)
第3周:
- CONTRACT_APPROVE_WAIT 定时查询逻辑(不是连续轮询,是到点查一次)
- 错误码识别验证(登录失败、页面改版、质管缺失、合同被禁等场景)
- 本地模拟回调,验证所有 payload 格式正确
第4周:
- 拿到状态中心联调环境,改成调真实接口
- 和状态中心一起联调,跑通完整链
关键提醒
⚠️ 三个最大风险点
- M5 桌面自动化:M5 是客户端不是网页,iS-RPA 能否稳定操作?建议第1周就 POC 验证。
- 医药城 PDF 合并:同供应商同日合同要合并成一个 PDF 再上传,iS-RPA 有 PDF 合并能力吗?
- 错误码识别准确性:M5_QC_MISSING 必须识别准(状态中心会直接转 FAILED_MANUAL,不重试),如果误判成其他错误码,整个流程就乱了。
✅ 成功的标志
联调前,你们能自证:
- 能稳定登录 5 个系统(医药城、小药药、合同系统、返利中心、M5),处理验证码/超时
- 能拿到三把钥匙(合同编号、返利总单号、收货通知单号)
- 能识别 10+ 种错误情况并返回正确错误码
- 能按状态中心返回的
next_node继续跑下一节点(不写死顺序) - 所有回调都带
X-Agent-Tokenheader
联系方式
状态中心负责人:[你的联系方式]
问题反馈:
- 技术问题(接口规范、字段含义):直接问状态中心负责人
- 业务问题(节点操作步骤、验收标准):查
资料/采购主链RPA一期实施与验收规范.md - 进度协调:每周五同步一次进度
附录:快速上手示例
示例1:本地模拟 ORDER_FETCH complete 回调
# 假设你本地起了个 mock 状态中心在 localhost:8000
curl -X POST http://localhost:8000/api/jobs/TEST-JOB-001/nodes/ORDER_FETCH/complete \
-H "Content-Type: application/json" \
-H "X-Agent-Token: dev-agent-token" \
-d '{
"attemptNo": 1,
"executorRunId": "YD-RUN-001",
"summary": {
"orderCount": 12,
"supplierList": ["重庆亿昊药业"],
"orderNoList": ["DD-001", "DD-002"]
},
"artifacts": [
{
"artifactType": "SOURCE_EXCEL",
"storagePath": "/data/jobs/TEST-JOB-001/orders.xlsx",
"fileHash": "sha256:abc123"
}
]
}'
期望响应:
{
"ok": true,
"next_node": "OCR_EXTRACT" // 或 "PRODUCT_MATCH"(如果是线上单,跳过 OCR)
}
示例2:CONTRACT_CREATE 必须回传合同编号
curl -X POST http://localhost:8000/api/jobs/TEST-JOB-001/nodes/CONTRACT_CREATE/complete \
-H "Content-Type: application/json" \
-H "X-Agent-Token: dev-agent-token" \
-d '{
"attemptNo": 1,
"businessRefs": {
"contractSystemNo": "HT2026080400001" // 必传!不传返回 400
},
"summary": {
"contractTemplate": "FORMAT",
"pdfMerged": true
}
}'
示例3:M5 质管缺失的失败回调
curl -X POST http://localhost:8000/api/jobs/TEST-JOB-001/nodes/M5_CREATE_ORDER/fail \
-H "Content-Type: application/json" \
-H "X-Agent-Token: dev-agent-token" \
-d '{
"attemptNo": 1,
"errorCode": "M5_QC_MISSING", // 特殊错误码,状态中心会直接转 FAILED_MANUAL
"errorSummary": "质管资料缺失,无法在 M5 录单",
"retryable": false, // 填什么都没用,状态中心强制转人工
"routeRole": "QC"
}'
期望响应:
{
"ok": true,
"job_status": "FAILED_MANUAL" // 注意:不是 FAILED_RETRYABLE
}
祝开发顺利!有问题随时联系状态中心负责人。