🔄 舟谱×易订货 同步监控面板

运行中
正在读取运行状态核对服务、调度器和同步开关
检查中

上线门禁与数据保护

关键项全部通过后才可进入正式调度;备份和恢复演练不会写入外部系统。

正在核对上线条件...

商品/库存数据重置(易订货初始化后)

易订货商品被清空后,本地映射已全部失效。此操作只清理商品/库存的映射/记录/单位/快照,并把商品水位设为指定日期;不会触碰订单、客户、资金。执行前请先关闭商品/库存同步开关并创建备份

先点「统计待清理」查看将影响的数据量,确认后再执行。

最近24小时处理结果

成功=任务累计处理量;失败=按单据去重后的失败次数(与同步记录「当前失败」口径一致,不含已成功单据的历史重试)

最近任务

加载中...

最近事件

📭

暂无事件

订单同步看板

易订货 → 舟谱建单与 ACK;单号下方展示业务单据状态(来自最近一次状态回传缓存)。状态回传定时任务对已完成/已取消/已作废订单不再扫描,间隔见系统设置「状态回传间隔」。

加载中...

加载中...

最近订单同步任务

加载中...

同步记录

查询已落库的同步结果、系统 ID 对照和任务请求摘要。

正在核对数据来源...

加载中...

任务中心

手动执行已启用任务,查看队列与任务历史;运行日志见「运行日志」标签页。控件旁 ? 可悬停或点击查看说明。

任务操作

正在读取队列状态...

商品维护

先查询并核验,再执行写入;已存在映射的商品不会重复创建。指定同步不受商品定时开关限制。

舟谱商品查询范围自 2024-01-01 起 · 批量指定最多 50 条
全量核验与补漏分页读取舟谱商品,对照本地映射,并按编码核验易订货已有商品。
尚未执行核验。
单商品同步编码使用舟谱文档的精确查询;商品 ID 使用全量分页后精确匹配。
查询后显示商品与目标系统状态。
批量指定同步每行一个 ID 或编码,或用逗号分隔;最多 50 条。推荐按编码提交。
易订货手工加品后可用编码批量补映射;结果见任务历史(manual-specified)。
有编码未映射同步仅处理舟谱有 articleNumber、本地无 id_mapping 的商品;跳过无编码与已映射,单批最多 50 条。
先统计,确认数量后再同步;任务历史标识 manual-coded-unmapped。
按品牌同步只同步指定品牌、且有编码未映射的商品;可填多个品牌(逗号分隔),去空格后精确匹配。
先填品牌并统计,确认数量后再同步;任务历史标识 manual-goods-by-brand。
批量补多单位对已映射且舟谱有大单位的商品,调用易订货修改接口补写 unitList;会先清 sync hash 再更新。需开启「商品多单位」与「商品更新」。
先统计待补商品;执行前请确认已开启「商品多单位」与「商品更新」。任务历史标识 manual-multi-unit-repair。
随机抽样同步测试从舟谱有效商品中随机抽取 50 条有编码的商品,创建或补映射到易订货(已映射则跳过)。
不受商品定时开关限制;结果见任务历史与日志(goods_sample)。

客户维护

指定客户同步:不受部门筛选与灰度批次限制,适用于舟谱补全编码后单独写入易订货。

单次批量最多 50 条
单客户同步按舟谱客户 ID 或客户编码查询并同步。
查询后显示客户与易订货状态。
批量指定同步每行一个 ID 或编码,或用逗号分隔;最多 50 条。
补全编码后可批量提交;结果见任务历史(manual-specified)。

订单同步状态回写

易订货「同步状态」为文本字段时直接写文案(如「已同步」「舟谱已出库」)。回写失败会落库待补偿,订单/状态回传任务开头也会自动重试。

加载中...
待补偿列表ACK 成功、状态回传各阶段回写失败时记录在此;可单条或一键批量补写。
切换到任务中心后加载。

加载中...

运行日志

最新在上;SSE 实时插入顶部。后台按「日志保留天数」抽样清理过期记录,也可手动清理。

正在统计日志...

问答会话归档

按对话日期写入 docs/会话记录/,自动更新时间与主题索引;完整目录见服务器 docs/会话记录/README.md

新建会话记录

打开本页后加载
创建后可在右侧列表查看。

已归档会话

按日期倒序;点击「查看」预览全文。

切换到本标签页后加载

使用说明

各页面按钮、系统设置开关的含义与推荐操作顺序。详细运维见 docs/production-runbook.md

快速上手

首次使用:系统设置 → API 连接填好舟谱/易订货凭据 → 仓库配置选默认仓 → 按下面顺序逐项开启同步。
  1. 客户:开启客户同步,完成首批映射;无编码客户需先在舟谱补码。
  2. 商品:开启商品同步做首次全量;完成后可关闭商品定时,改在任务中心手工维护。
  3. 库存:商品映射就绪后开启;无编码库存失败可忽略或清理。
  4. 订单:客户+商品+库存稳定后,小批量灰度(建议 1~5 单)。
  5. 状态回传:易订货流程采用方案 B(财务/出库/发货环节开启)后,再开「舟谱进度 → 易订货分步对齐」。

正式环境还需通过「运行总览」中的上线门禁(备份、恢复演练、告警等)。

页面导航

标签页作用
运行总览各同步类型成功/失败统计、上线门禁、最近任务与事件、创建备份/恢复演练;重启服务按钮可在线优雅重启进程(需由 start.bat/start.ps1/PM2 守护,约 5-10 秒后自动恢复刷新);商品/库存数据重置面板用于易订货初始化后一键清理商品映射并重设水位(详见「其他设置」)。
订单看板已同步订单列表;ack_pending 可在此或 CLI 补偿易订货 ACK。
同步记录按类型/状态查历史单据;点行可看请求摘要、响应摘要与错误信息。
任务中心手动触发定时任务、商品/客户指定同步、全量核验;查看任务历史与明细。
运行日志实时 SSE 日志流;可按级别、任务名筛选。
会话归档保存 AI/运维会话记录到 docs/会话记录/,便于追溯决策。
异常中心当前未解决失败:重试可恢复错误;状态回传 → 归档处理易订货已删(404)孤儿单;清除当前异常仅清列表不标记已处理。含 ID 映射核验。
系统设置API、仓库、同步周期、开关、字段映射、密码。

任务中心 · 按钮说明

顶部任务按钮(订单/商品/库存/客户…)

对应各同步类型的定时全量任务。仅当「系统设置 → 同步开关」里该类型为启用时可点;灰色表示开关未开。

商品维护

开始全量核验拉舟谱全量商品,对照本地映射与易订货同编码商品,列出待补映射/待创建/ blocked。需商品同步开关启用
单商品同步 · 查询按舟谱 ID 或编码预览,不写入。编码查询更快。不受商品定时开关限制
单商品同步 · 执行预览后写入易订货或补映射。不受商品定时开关限制。
批量指定同步最多 50 条 ID/编码,逐条队列执行。不受商品定时开关限制(推荐日常加品方式)。
有编码未映射统计/同步「舟谱有编码、本地无映射」的商品。需商品同步开关启用。
按品牌同步只同步指定品牌下「有编码、本地无映射」的商品,可填多个品牌(逗号分隔)。适合按品牌灰度上线。需商品同步开关启用。
批量补多单位对已同步到易订货、舟谱有大单位的商品,调用修改接口补写 unitList。需开启「商品多单位」与「商品更新」;可按同步日期或全部已映射筛选。不受商品定时开关限制。
随机抽样同步测试用,随机最多 100 条。需商品同步开关启用。
注意:关闭「商品同步」定时后,任务中心顶部的「商品」全量按钮会灰掉,但单条/批量指定同步仍可用

客户维护

单客户预览/同步、批量指定同步(逻辑同商品,指定同步不受客户定时开关限制)。

同步开关(系统设置 → 同步开关)

客户同步定时从舟谱拉客户写入易订货。可按部门 ID 筛选、灰度批次上限控制首次量。
商品同步控制定时全量与任务中心「商品」全量按钮、核验/有编码未映射等。关闭后仍可用指定同步。
库存同步舟谱可用库存 → 易订货(按最小单位)。依赖商品映射。
订单同步易订货新单 → 舟谱销售单。依赖客户、商品、单位映射。
资金同步当前不可用(余额语义未确认)。
状态回传方案 B:舟谱待出库→财务审核部分出库→出库审核待签收→发货确认已完成→易订货完成;舟谱已取消→易订货作废/cExtra。易订货流程须开启:订单审核→财务审核→出库审核→发货确认→完成。
商品更新是否向易订货推送商品资料变更(默认关,防误改)。
仅更新已映射商品开启后定时商品同步只更新易订货已有(已映射)商品,不自动新增;新品改用「按编码/按品牌」手工建。易订货初始化后建议开启,防止定时同步把老目录商品重新建回去。
品牌不存在时自动新建舟谱商品品牌在易订货不存在时,按品牌名自动新建品牌再建商品;关闭则回退「默认商品品牌 ID」。易订货初始化后品牌为空时建议开启,否则会报「默认品牌 ID 不存在/不可用」。
订单成功回写「同步状态」开启后:订单同步 ACK 成功 回写「已同步」;状态回传各阶段回写「舟谱待出库/已出库/待签收/已完成」等文案。文本字段 ID 留空;失败自动重试,任务中心可一键补写。
商品多单位开启后:舟谱小单位+大单位写入易订货 unitList,换算率 = pkgBaseRate(如 1件=6瓶)。订单按开单单位直通舟谱。中单位不同步。
新商品默认状态新建商品默认下架且禁止订货,易订货后台确认后再上架。

其他设置

同步周期 / 同步开关

保存同步周期」只写间隔、批量、备份、Webhook;「保存同步开关」只写各同步开关与策略。两者互不影响,改哪页就点对应保存,避免误关已开启的订单/商品同步。

服务热读取部分项,开关或周期间隔变更后若任务未按预期运行,建议重启服务。

字段映射 / 单位换算

字段映射:舟谱→易订货(商品/客户)、易订货→舟谱(订单)的字段对应。单位换算表用于旧版单单位库存/订单兜底;启用「商品多单位」后,以商品同步写入的 goods_unit_map 为准。

订单作废相关

舟谱取消 cExtra、易订货/舟谱作废 API 路径由 probe 脚本探测后填入;作废不一致扫描用于发现两边状态不对齐的订单。

商品/库存数据重置(易订货初始化后)

位于运行总览底部。易订货商品被清空后,本地映射已全部失效,此工具用于一键清理并重来:

  • 只清理商品/库存相关的映射、同步记录、单位映射、库存快照,并把商品水位设为指定日期(默认 2026-07-01 00:00:00);不会触碰订单、客户、资金数据。
  • 可勾选:一并清理库存快照、清理任务明细、清理运行日志、执行后自动开启「仅更新已映射商品」。
  • 执行前务必:先在同步开关里关闭商品/库存同步,并在运行总览创建一次备份;再点「统计待清理」确认数量,最后「执行重置」(含二次确认)。
  • 执行后:用任务中心「按编码同步」或「按品牌同步」把在售商品重新建好映射,再依次开启库存 → 订单。

CLI 脚本(与页面对应)

  • node scripts/sync-goods-specified.js --code 编码 — 批量指定商品
  • node scripts/sync-customers-specified.js — 指定客户
  • node scripts/repair-order-ack.js — 订单 ACK 补偿
  • node scripts/backup.js — 数据库备份

常见问题

商品同步失败 code=525 / 价格不能为空?

舟谱无零售价时,系统会用占位价 999 先建品,请在易订货人工改价。任务明细 request_summaryprice: 为空或为 999 即此类。

关了商品同步还能加品吗?

可以。用任务中心「单商品/批量指定同步」,或 CLI sync-goods-specified.js

易订货只看到一个小单位?

检查「商品多单位」是否启用,且舟谱该 SKU 有有效大单位(名称不同、pkgBaseRate > 1)。若商品已在多单位关闭时同步过,请到任务中心「批量补多单位」:先开启「商品多单位」与「商品更新」,统计后执行补写,无需删商品重建。

编码重复但列表查不到商品?

可能是之前同步创建的下架商品,按编码列表 API 查不到。到易订货后台搜编码,手工补映射或删除重复后再同步。

易订货初始化(清空商品)后怎么重建?

  1. 同步开关关闭商品/库存同步,运行总览创建一次备份
  2. 运行总览底部「商品/库存数据重置」→「统计待清理」确认量 →「执行重置」(会把商品水位设到指定日期)。
  3. 打开「仅更新已映射商品」,避免以后定时同步把老目录商品重新建回。
  4. 用任务中心「按编码同步」或「按品牌同步」把在售商品重新建映射,再依次开启库存 → 订单同步。

商品同步报错「默认品牌 ID 不存在/不可用」?

易订货初始化后品牌通常为空,而建商品必须带品牌。请到系统设置 → 同步开关开启「品牌不存在时自动新建」——系统会按舟谱品牌名在易订货自动建品牌再建商品;改完需重启服务才生效。若想统一挂到某个品牌,也可在 API 连接里填「默认商品品牌 ID」作为兜底。

易订货订单的备注能带到舟谱吗?

可以。订单同步时会把易订货订单的备注写入舟谱销售单的整单备注(超长会截断)。无需额外配置,随订单同步自动生效。

易订货「同步状态」字段一直没回写?

请确认:①「订单成功回写『同步状态』」开关已开;② 该字段为文本时「已同步 选项 ID」留空;③ 下拉字段需填对应选项 ID。回写失败会记入待补偿队列,可在订单看板任务中心 → 订单同步状态回写一键补写;订单/状态回传定时任务开头也会自动重试。

重启后要重新登录 / 日志出现 session-file-store 报错?

会话文件(data/sessions/*.json)只是临时登录态,不含业务数据,删除或过期只需重新登录一次即可,系统会自动重建。Windows 下偶发的 EPERM(写入 rename 撞锁)/ ENOENT(会话文件已删)已加入自愈重试与静默处理,功能不受影响;若持续大量报错再排查是否有多个服务实例或杀软锁文件。

状态回传失败:易订货订单已删除(404)?

易订货侧订单不存在时,状态回传会报 code=404,且会反复出现在异常列表、挡住 order_status 水位推进。

推荐操作(异常中心):

  1. 打开 异常中心,类型选 状态回传
  2. 找到对应易订货单号(如 DH-O-…),点该行灰色按钮 归档(勿点「重试」)。
  3. 确认弹窗:系统写入 order_status 成功记录(canceled:ydh_archived_manual),移出待推送队列。
  4. 任务中心 手动触发一次「订单状态回传」,确认 failed=0 后水位可正常推进。

勿单独使用「清除当前异常」:它只删除失败展示,不会标记为已处理,定时任务仍会再次失败。

可在 同步记录 按类型「状态回传」、单号搜索,核对是否已有 success 且 message 含 ydh_archived_manual

系统设置

按业务对象直接进入配置;标签旁 ? 可悬停或点击查看该项说明。

📡 舟谱数据 API

📡 易订货 API

测试使用已保存的配置。修改 appSecret 后须先保存;密钥栏留空表示不修改已保存值。

🏗️ 仓库配置

单仓模式:只保存当前选中的舟谱仓库
选择仓库ID名称类型编码订单类型

易订货主数据选择

在线读取易订货有效主数据。保存时会再次校验,并将当前舟谱仓库映射到所选易订货仓库。

尚未读取易订货主数据。

⚙️ 同步间隔

写入日志时每 100 条抽样删除超过保留天数的记录;「运行日志」页可手动清理。

数据库定时备份

服务启动后每 15 分钟检查一次;超间隔自动在线备份到 data/backups/ 并清理过期文件。运行总览仍可手动「创建备份」。

运维告警

用于推送运行告警(备份过期、调度锁异常、任务连续失败等)。优先使用此处配置,留空则回退环境变量 ALERT_WEBHOOK_URL。已保存的以 ●●● 掩码显示,留空表示不修改。保存后即生效,无需重启。

仅保存本页周期/备份/Webhook,不会改动同步开关。

🔘 同步开关(v5.21:全部默认关闭,按需开启)

建议顺序:先开客户同步 → 商品同步 → 库存同步 → 订单同步 → 状态回传。商品/客户首次全量同步完成后,可关闭对应定时开关,仅在「商品维护」中手工拉取单条,避免频繁调用舟谱列表接口。详见使用说明 →

舟谱小/大单位同步至易订货 unitList;订单按开单单位直通舟谱(需先同步商品)

按 sync_records 创建时间取最近 N 条已同步订单,逐条调易订货/舟谱 API;非全库扫描

仅保存本页开关与策略,不会改动同步周期。

🔄 字段映射

方向:
源字段目标字段默认值操作

📐 单位换算

配置包装单位换算关系(如:1箱=10瓶、1件=12瓶),避免库存扣减错误

源单位目标单位换算率示例操作

🔐 修改密码

异常中心

仅展示当前未解决问题;历史错误保留在审计日志中。

当前未解决异常

「状态回传」且易订货订单已删除/404 时,请点该行 归档(写入已处理,移出待推送)。勿点重试。仅「清除当前异常」不会标记为已处理。

加载中...

ID 映射核验

加载中...