Skip to Content

架构总览

系统采用**“接入层 → 规则引擎层 → 写回适配层”**三层架构,以配置驱动为核心,将业务规则与代码完全解耦。

Rendering diagram…

三层职责

层级职责关键能力
接入层对接金蝶和旺店通 API,读取源单据并标准化为统一数据格式API 认证、分页拉取、数据标准化
规则引擎层根据配置中心定义的规则,判断单据类型、路由目标、字段映射条件分支、组织路由、字段转换、状态映射
写回适配层将规则引擎处理后的数据,按目标系统 API 格式写入API 写入、幂等校验、结果记录

核心设计原则

原则一:配置驱动

所有业务规则存储在配置中心,代码中不出现任何硬编码的业务值:

配置项说明示例
组织编码每个组织的唯一标识、名称、金蝶凭证A 组织 → org_a
表单 ID每种业务单据在金蝶中的 formId分布式调出单 → STK_TRANSFEROUT
字段映射源单字段与目标单字段的对应关系金蝶仓库编码 → 旺店通仓库编码
状态映射源系统状态码到业务含义的映射旺店通 status=95 → 已完成
路由规则客户主体字段值对应的目标组织客户主体=B → B 组织

原则二:幂等控制

每条业务流通过幂等键确保重复推送不会生成重复单据:

幂等键 = 源系统 + 源单号 + 业务类型 示例 = "kingdee" + "DBSO001" + "transfer_out"

推送前先查询目标系统是否已存在对应单据,若存在则跳过(或更新),确保Exactly-Once语义。

原则三:全链路日志

每次推送记录以下信息,形成完整的同步日志链:

日志字段说明
源系统kingdee / wdt
源单号金蝶或旺店通中的原始单据编号
业务类型transfer_out / sales_order / refund 等
目标系统kingdee / wdt
目标组织单据写入的目标组织编码
目标单号写入成功后返回的目标单据编号
推送状态成功 / 失败 / 跳过(幂等)
错误信息失败时的详细错误描述
重试次数当前已重试的次数
创建时间首次推送时间
更新时间最后一次推送时间

原则四:异常重试

策略说明
重试方式指数退避(1s → 2s → 4s → 8s → 16s)
最大重试次数5 次
告警阈值连续失败 3 次后触发告警
补偿机制超过最大重试次数后标记为”需人工介入”,进入异常队列

数据流架构

金蝶 → 旺店通:调拨推送流

Rendering diagram…

旺店通 → 金蝶:销售回传流

Rendering diagram…

源组织 → 多目标组织:动态路由拆分流

Rendering diagram…

目标组织 → 采购订单:月度汇总流

Rendering diagram…

组件职责

组件职责输入输出
金蝶读取适配器调用金蝶 API 拉取指定 formId 的单据数据formId + 查询条件标准化单据数据
旺店通读取适配器调用旺店通 API 拉取销售/退款单据接口名 + 查询条件标准化单据数据
规则引擎根据配置的条件判断、路由拆分、字段映射标准化单据 + 配置规则目标单据列表
金蝶写入适配器将目标单据按金蝶 API 格式写入指定组织目标单据 + 组织凭证写入结果(目标单号)
旺店通写入适配器将目标单据按旺店通 API 格式写入目标单据 + 接口配置写入结果(目标单号)
配置中心管理所有业务规则配置配置变更请求配置项
同步日志服务记录每次推送的完整信息推送结果日志记录
幂等控制服务校验幂等键,防止重复推送幂等键是否已存在
异常重试服务管理失败任务的重试调度失败任务重试结果

异常处理机制

异常分类

异常类型处理策略示例
网络超时自动重试(指数退避)金蝶 API 响应超时
接口限流自动重试 + 降速旺店通 API 触发限频
字段校验失败记录错误 + 跳过 + 告警必填字段为空
组织凭证失效告警 + 需人工更新凭证金蝶 token 过期且无法自动刷新
目标系统异常自动重试 + 告警金蝶返回 500 错误
幂等冲突跳过 + 记录日志该源单号已成功推送过

补偿流程

Rendering diagram…
最后更新