总览

阶段分布

最近推送

按账号

账号总计完成失败待审核

按平台

平台总计完成失败

订单列表

PSS 订单号 账号 平台 食堂 配送日 状态 ERP 单号 审核 创建时间

服务日历

点击日期格子可添加/移除服务日覆盖;蓝色背景为服务日。

食堂评价导出

请选择本次导出实例。会话缺失或失效时自动登录,停用实例也可手动导出。

导出 PSS 食堂评价

PSS 实例

按配送日期抓取所有账号该月的食堂评价,按 账号×机构 生成 CSV 并打包 zip。 抓取约需 1~2 分钟;每导出一次存一个包,同月重复导出不覆盖,多余的包请自行删除。

文件行数大小生成时间

PSS客户+商品信息

导出食堂信息和商品库

PSS 实例

请选择本次需要导出的 PSS 实例。系统导出其可见机构的食堂信息与商品库,CSV 可用 Excel 打开。会话缺失或失效时自动登录;停用实例也可手动导出,订单同步状态不变。 商品库按供应商账号当前可见范围返回,可能不含已下架商品。客户导出包含联系方式和地址,请妥善保管导出的压缩包。

文件实例数食堂记录商品记录大小生成时间

问题客户检查

导出 Excel

未配置:PSS 有单、后台客户映射里没有这个食堂,订单被跳过没进系统。 ERP未启用:映射里配的编号不在 ERP 下单客户列表里(ERP 没有启动状态接口,不在列表 = 未启用或编号错)。 只看送货日期在「今天往前 3 天」之后的单。检查只读本地数据和 ERP 客户缓存(最长滞后 24 小时); 「先刷新」会临时登录 ERP 按分公司现拉一次客户列表,约 10~60 秒。

问题类型账号平台PSS食堂名PSS订单号 送货日期已配ERP编号处理建议
点「一键检查」

IM 群管理

群配置存数据库(chat_group 表)。新增/启停/删除立即生效,下一轮 ingest 自动接入;不需要重启服务。

新增群

群的内部 ID 由系统自动生成;企微 conversation_id 系统会从导出包自动读出,无需手填。

选「实例配置 → ERP 实例」里配好的实例(必选)。
群名 group_id(内部) source_ref(自然 ID) ERP 客户 分公司 仓库 ERP 实例 已标注 启用 操作

IM 总览

面向运维 / 开发者——展示 chat_messages → image_analysis → chat_events → chat_event_order 全链路的处理状态与累计输出。 Webhook 入口:POST /api/v1/{messages,conversations,contacts}/batch(健康检查 POST /api/v1/ping)。

image role 分布

event 类型分布

order state 分布

最近 7 天 chat_events 新增

群级状态

群 source_ref 启用 最后消息 msgs (待处理/总) 图 (待识别/已识别) events orders (各 state) 操作

最近失败(events + orders)

更新时间 群 event_id 类型 event status order state last_error

IM 订单观测

stage D 抽取的下单事件 + stage E SKU 匹配结果 + 推 ERP 状态全链路可观测。 自动模式(默认)下事件直接进 pending_erp;审批模式(IM 总览页 toggle) 下停在 pending_review 等客服确认。

群 类型 摘要 items 送货日期 状态 ERP 单号 ERP 实例 创建时间 操作

人员管理

群:—  (—)

角色含义:customer = 客户方下单/投诉来源;our_staff = 我方客服/运营,发言只作上下文;unknown = 待确认。 ingest 阶段自动登记 unknown 成员;下游 stage C/D 需要 role 区分谁是下单人。

总人数:—
客户:0
我方:0
未定:0
display_name role sender_id 备注 消息数 最近发言

推送记录

发送时间 渠道 标题 结果 Trace ID 错误

🧩 实例配置

本页登记系统可用的「资源」:PSS 站点、ERP 站点。 账号怎么绑定这些实例见「🔗 账号与绑定」; 消息推送去向见「📣 通知设置」。

PSS 实例

每个实例 = (base_url 登录页 + api_base_url 业务 API)。
账号在「🔗 账号与绑定」页通过下拉「PSS 实例」绑定到本表里的某个 key;不指定则走 default。
保存后即可用于手动导出;可选择“保存并验证登录”检查凭据。订单同步仍由账号启用开关控制。

ERP 实例

每个实例 = (域名 + 登录账号 + 默认 orgUnit/warehouse + change_sync 配置)。
路由顺序:平台.erp_profile > 账号.erp_profile > default。 多个 PSS 平台路由到不同 ERP(例如 pss_1→ERP_1、pss_2→ERP_2、pss_1→ERP_2), 在「🔗 账号与绑定」页展开账号 → 平台块里的「ERP 实例」下拉里设置。
改完点保存写入 config.yaml;需重启 pss-main / pss-worker / pss-im-worker / pss-learn-worker 生效。

🔒 访问口令

全站共用一个口令,所有客服用同一个。口令只存哈希,忘了无法找回,只能让运维重置 (见 docs/runbook.md「忘记 UI 访问口令」)。
改完口令后所有设备都会掉线(包括你自己),需要用新口令重新登录 —— 这也是同事离职后 收回访问权的办法。

系统状态

🔗 账号与绑定

本页维护「关系链」:账号绑定哪个 PSS / ERP 实例、平台下的客户映射、各账号的服务班次。 实例本身(站点 + 凭据)在「🧩 实例配置」页登记。

服务班次配置

每个账号独立配置;未配置则全时段处理(兼容旧行为)。

📣 通知设置

本页决定「什么消息发到哪个群」。先在「通知机器人」登记各群 webhook,再用「路由规则」按 分公司 × 通知类型把消息分到对应群。求值(特异性优先):通知类型比分公司更具体, 于是「全部分公司 · 出库改单 → 出库群」会盖过「乐禾金华 · 全部类型 → 乐禾群」, 正好满足「出库改单一律进出库群、其余按分公司分群」。
未命中任何规则的通知回落默认大群,不丢通知。其中出库改单还会按「出库人企微映射」@ 出库人提醒确认。

默认大群 + 生效渠道

所有没被下方规则命中的通知都发到这里(兜底)。
本地文件 = 写 ./logs/notifications/,运维上服务器看;企微 Webhook = 推到群里。

已配置的渠道
当前生效渠道
切到企微需先在上方配置 Webhook URL;保存后立即生效。

通知机器人

企微群机器人统一在这里登记(名字 + Webhook URL)。下方路由规则按名字引用, URL 只存一份、改一处处处生效。保存立即生效(无需重启)。
企微建群 → 群设置 → 群机器人 → 添加 → 复制 Webhook 地址。

新增机器人(编辑已有机器人请点它行内的「✏️ 编辑」)

PSS 订单通知路由(分公司 × 通知类型 → 群)

本区只管 PSS 平台订单的通知(微信群订单在下一区按群配置)。 按「分公司 × 通知类型」决定这类消息发到哪个机器人;两者都可选「全部」做通配, 动作也可选「🔇 静默」(不发企微,只落本地文件和推送记录,可查不丢底)。
例:分公司=窝里仔 / 类型=全部 → 窝里仔群;分公司=全部 / 类型=出库改单 → 出库群。 保存立即生效(无需重启)。

▾
▾
ℹ️ 两类「通知类型」分别是什么?(点开看)
🆕 新增订单:新单成功录入 ERP 的回执 + 已录入单被改后系统自动同步 ERP 的回执(每笔一条)。
🔒 锁定态改单(人工处理)=出库改单:ERP 单已「出库中 / 已出库」,PSS 又改了,不能自动改、需出库人核对——这类会自动 @ 出库人(按出库人名册的手机号)。
其余系统消息(超窗口改单、运维告警)不在此设置、统一走默认大群兜底。
一条规则可绑多个分公司、多个类型 → 一个群,列表里只占一行;改已有规则点该行的「✏️ 编辑」就地改。 兜底:未命中任何规则 → 默认大群。分公司候选来自 ERP 实例(org_units)真实抓取,只能选不能手填,杜绝输错。

微信群订单通知路由(群 × 通知类型 → 机器人)

本区只管微信群订单的通知:勾选哪些群走哪个机器人;群留空 = 兜底(其余所有群都走它)。 通知类型分「下单成功」(单已录入 ERP 的回执)和「群改单请求」(群里改单、需人工处理), 同一个群的两类可配不同机器人;类型留空 = 全部。 动作也可选「🔇 静默」。连兜底都没配 → 默认大群。保存立即生效(无需重启)。

▾
▾
群候选来自「群聊管理」登记的群(按内部 ID 匹配,改群名不影响规则)。 同时命中多条时更具体的赢:类型 > 群 > 兜底。

出库人名册(@ 谁)

「锁定态改单」通知会按每单实际出库人(= 该单 ERP 制单人)自动 @ 提醒核对。 企微 @ 需要手机号,这里把出库人姓名 → 手机号登记一次即可,多单复用。
名册里没登记手机号的出库人,消息仍正常发到群、报告里有名字,只是不 @ 震动(不丢消息,回头补上即可)。保存立即生效(无需重启)。
「负责的地区」是纯管理标签(下方按地区筛选用),不影响 @ 和通知路由。

下拉名单来自系统实际反查到的 ERP 制单人,随通知自动补全;姓名须与 ERP 制单人逐字一致才能对上号。

系统管理员(系统告警 @ 谁)

系统性故障(ERP 登不上 / PSS 登不上或被封 / 订单进失败态 / 主循环连续出错 / 数据库锁死)会发一条 「系统告警」并自动 @ 这里登记的管理员。
消息发到哪个群由上方「PSS 订单通知路由」里的「人工跟进 / 系统告警」类型决定(未配则落默认大群);这里只决定 @ 谁。
同类故障 30 分钟内只 @ 一次,冷却期内的重复发生会累计后在下一条里汇报,不刷屏。保存立即生效(无需重启)。

PSS 扫码登录

需要扫码的登录账号

正在读取登录账号…

公网访问域名

发码规则

⏰ 轮询任务

左侧开关一键暂停 / 恢复 pss-main 对 PSS 的全部访问(拉新单 + 改单检测)。时段限定 pss-main 只在此时段内轮询; 时段外完全不访问 PSS(夜间静默,避免被订单更新刷屏),两个都留空 = 全时段。
全局生效,对所有账号一致;开关和时段都是下一轮生效(最多 1 分钟),不用重启。

🌙 回溯同步(每日一次)

开了「回溯往期订单」的平台不跟着上面的轮询走:整个平台每天只在这个时间点跑一次(拉单 + 改单检测, 往期范围见平台卡片的说明),不受轮询时段限制,但轮询暂停时也不跑;停用的账号不跑。 批次里的所有通知汇总成一份日报(失败和落临时商品的放最前),不逐张推送。 想马上跑一次:下方平台列表里的「立即回溯一次」,跑完立即发日报。

📤 订单数据来源

当前来源:订单页面数据(PSS 订单详情页)

新单、改单及回溯统一读取订单详情页。XLS 下载和影子比对已停用,详情页获取失败时按正常失败流程处理。


goodsId → 商品编码缓存

「订单页面数据」每行只有 goodsId、没有商品编码;这张缓存表把 goodsId 翻译成编码填回订单行,让编码映射(FIXED 层)照常命中。 进料:pss-main 每 24 小时全量拉一次各机构商品库 + 商品映射 CSV 第 E 列 goodsId。只增不删(PSS 商品库查不到下架商品)。括号里按「首次写入来源」统计;订单对喂为历史数据,继续保留使用。

🧩 浏览器插件

「PSS 订单导出」插件:在 PSS「订单 → 订单查询」勾选订单,点插件图标一键导出 Excel。 抓取 / 解析 / 生成 Excel 全部在用户浏览器本地完成,不经过本服务器、不需要 PSS 账号密码; 服务器只负责这里的安装包分发和授权码签发;插件本身不会连本服务器(2026-09-04 起连版本检查也去掉了),有新版要主动通知使用者下载。

当前发布版本

使用授权码

用户安装 / 更新方式

发布新版本(运维)

📌 PSS特殊备注

「ERP商品编码 → 备注」全局字典(如「直送」)。只对勾选的客户生效:去 🔗 账号与绑定 的客户映射行勾「特殊备注」。命中的订单行把备注合并进 ERP「备注」列 (PSS 买家自己写了备注则拼接,如「293;直送」);改单同步时同样生效。

字典(0 条)

ℹ️ 关于系统

当前这套服务正在运行的代码版本。排查问题、确认升级是否生效时,把「当前部署版本」那串编号报给技术即可。

当前部署版本

更新内容

🌱 学习状态

日常监控 harvester 学到的映射 + 待客服处理的问题映射。错配在「🌱 最近学习」点 「✎ 编辑」可手改(自动标 manually_edited,未来反学不会覆盖)。 映射搜索 / CSV 导入 / quirk 管理见 ⚙️ 映射管理。

harvester 最近运行

新流程(2026-05-27 起):ERP 出库单为入口反学,零闸门 + K=1 首单即学。

📏 匹配质量(出库判分)

出库单 vs 我方推送逐行对比:没改=找对 / 临时→真实=学到 / 被换商品=找错。 PSS 列是对照组(其被改率≈业务噪音本底)
判分明细
单据日期 ERP 单号 来源 PSS 名 我方推送 实际出库 tier 结论

判分随 learn worker 每日跑;历史基线用 python -m scripts.backfill_match_outcome --days-back 30 回填。 「未配对」是配对盲区(换名认不出/加行/删行),如实呈现不硬猜——找错率是下界。 群改单回链的订单已整单剔除。

🌱 最近学习

harvester 反学 + 客服手改的映射;不含原始表 csv 灌入
更新时间 ERP 客户 PSS 名 PSS 单位 ERP 编码 ERP 名 来源 HIT 标记 操作

问题映射(冲突 / 待审 / 单次未复核 / 单位换算可疑)

状态 PSS 名 PSS 单位 ERP 客户 ERP 编码 ERP 名 hit 最近见 操作

⚙️ 映射管理

商品映射按「机构」分表管理,每行 = 机构 + 食堂(空 = 全机构通用)+ PSS 商品 → ERP 商品。 接单时按顺序找:① 该食堂专属映射 → ② 机构通用映射 → ③ 都没有则按「临时商品」进单,等补表后自动恢复。 系统还会自动学习:从 ERP 出库单学回缺失的映射;同一食堂同一商品连续 2 次换货会自动固化成该食堂的专属映射。 日常维护:📦 导出现有数据 → Excel 修改 → 📤 导入 CSV(按机构整表覆盖,系统自动学习的行不会丢)。 监控见 🌱 学习状态。

① 商品映射健康度

② 各客户特化进度(全部)

客户LEARN 数quirk 数

客户特殊需求(quirk)

harvester 观察到 (PSS 商品 → 客户实际选了非主流 ERP) 不一致时自动记一笔;不参与 resolver 自动匹配,仅由通知模板提醒客服
客户 PSS 商品 单位 alt ERP 编码 alt ERP 名 次数 备注 来源 最近 操作

映射明细

机构 生效范围 PSS 商品 单位 ERP 商品 ERP 单位 来源 HIT 状态 最近见 操作
📊 每日 resolve 分流(最近 30 天)— 旧口径,仅参考

订单详情