Fosi Fossil Service
Small teams. Open source. Built on Fossil.

IaC / SwiftFlow

High-performance WMS with wave picking, smart routing, and real-time inventory visibility.

Public | Owner: IaC | Default branch: trunk | Last update: 2026-10-23 14:37

Artifact 08d5912512f5d271242b6e2e9b3fdedca9629fdd0327d8ef915f3b63784b0dde:


QL361 (来肯企汇) 逆向接口协议分析与对接技术规范

文档版本 编写日期 目标站点 分析工具 / 方式
v1.0.0 2026-10-23 https://22beta.ql361.com/ Web 静态分析、JS 运行时代码逆向

1. 核心网络与网关拓扑

1.1 站点入口

1.2 安全与防御层 (WAF)


2. API 通信协议规范 (api.cc)

QL361 采用基于 RPC 风格的统一网关协议,所有业务调用均路由至 api.cc。

2.1 请求格式

参数名 必填 说明 示例
___method 是 后端业务逻辑层 (BLL) 方法名,大小写敏感 CC.ERP.BLL.API.MessageServer.GetLoginStatusForDesktop
pagetype 是 页面类型 默认 erp,报表或消息传 crmoa
from 是 客户端来源代号 固定 allinoneclient
platform 是 客户端平台 固定 pc
s 是 会话标识 (Session Id) 从登录态 Cookie 中获取的 s 值
tok 是 鉴权令牌 (Token) 从登录态 Cookie 中获取的 tok 值

3. 响应结构与异常状态码

QL361 网关返回的 JSON 响应具有统一的包裹结构:

3.1 正常响应 (Normal)

{
  "type": "normal",
  "data": { ... },
  "msg": "",
  "productVersion": "v_22beta"
}

3.2 会话过期 / 未登录 (Logoff)

{
  "type": "logoff",
  "msg": "当前账号已在其他地方登录或已退出登录",
  "data": null
}

处理策略:SwiftFlow 逆向引擎捕获到 type == "logoff" 或 msg 包含“已退出登录”时,立即触发告警或重新发起认证流程。

3.3 业务异常 (Error)

{
  "type": "error",
  "msg": "未找到指定单据信息",
  "data": null
}

4. 核心 BLL 业务方法清单 (只读抽取)

业务领域 核心方法名 (___method) 业务用途 实测状态
会话状态 CC.ERP.BLL.API.MessageServer.GetLoginStatusForDesktop 检查当前 Session 是否有效 已验证通过
基础仓库 cc.erp.bll.bas.baseinfomanager.getforautocomplete 获取全部仓库列表 (bastype: "store") 已验证通过
销售订单列表 cc.erp.bll.bill.billbllmanager.getdatalist 分页拉取销售订单 (billtype: 604) 已验证通过
订单商品行明细 cc.erp.bll.bill.billbllmanager.getfulldata 查询指定订单全量明细与商品条码/规格/库位 已验证通过
待拣货销售清单 cc.erp.bll.report.reportmanager.getdatalist 待拣货专用报表视图 (billtype: 2352) 已验证通过
待发货出库清单 CC.ERP.BLL.Bill.Core.Delivery.DeliveryHandOverService.QueryCanHandOverBillList 交接发货出库单据 已验证通过

5. 销售订单与商品明细数据协议 (实测样本)

5.1 订单列表拉取 (cc.erp.bll.bill.billbllmanager.getdatalist)

5.2 订单全量商品明细 (cc.erp.bll.bill.billbllmanager.getfulldata)


6. 拣货单生成转换逻辑 (SwiftFlow WMS 核心)

从 QL361 销售订单向 SwiftFlow 拣货任务的转换流程如下:

[QL361 销售订单: billtype 604]
            │
            ▼ (只读抽取: getfulldata)
{ 订单商品行明细: SKU, 条码, 件数, 散数 }
            │
            ├───────────────────────────────────────────┐
            ▼                                           ▼
   【按单拣货 Single Order】                   【波次汇总拣货 Wave Picking】
   - 单任务 1:1 对应源单                       - 多单合并、相同 SKU 累加数量
   - SwiftFlow 推荐最优 S 型库位动线           - 匹配四级库位 (区-排-架-位) 推荐最短动线
   - PDA 扫条码逐行核销                        - 拣货完成后推入播种墙 (Seed Wall) 进行二次分播
            │                                           │
            ▼                                           ▼
   【拣货完成待复核】                          【播种复核分箱完成】

5. SwiftFlow 在 Gleam 中的实现架构

Clone

You can clone this repository with the following command:

fossil clone https://fosi.dev/IaC/SwiftFlow

Contribute

The best way to contribute is through e-mail. See the project documentation for more details.