A 区A01 – A80弹簧仓位
库存 >20% 充足
低于安全线/偏紧(含空位)
智能补货·该购买(红圈)
空置(库存0)
未启用
C 区C01 – C80扩展仓位
B 区 · 回收位B 区
回收刀具暂存
▾
进出登记流水西仓拉取
0 条
刀具档案0
采购与补货
西仓刀柜对接REST API · :8081
连接方式:西仓刀柜提供 REST 接口,Base URL
已知接口:syncStaffListCus(人员↑)/ syncFittingsCus(物料↑)/ getReserveListById(库存↓)/ getSheetWareBhList(补货↓)/ querySheetRecListCus(领用↓)
鉴权:需
http://{柜体IP}:8081/manager/api。
已知云端地址 http://120.26.86.22:8081(前端经 https://www.jsxicang.cn/prod-api 反代)。
本系统为主库 — 物料与人员信息由本系统 POST 推送给柜子,
领用流水与库存由柜子 GET 回传给本系统。已知接口:syncStaffListCus(人员↑)/ syncFittingsCus(物料↑)/ getReserveListById(库存↓)/ getSheetWareBhList(补货↓)/ querySheetRecListCus(领用↓)
鉴权:需
Authorization: Bearer <token>,token 在登录后的后台页面
按 F12 → Console 执行 copy(JSON.parse(sessionStorage.getItem('xczn_data')).token) 获取。
你公司的租户编号,西仓后台里能看到。
手工取法:登录后台 → F12 → Console → 执行
手工取法:登录后台 → F12 → Console → 执行
copy(JSON.parse(sessionStorage.getItem('xczn_data')).cusId)
已改为服务端自动托管:凭证存在常在线的服务器里,
快过期时自动重新登录换新,换任何电脑打开都照常能用。
手工取法(备用):F12 → Console → 执行
手工取法(备用):F12 → Console → 执行
copy(JSON.parse(sessionStorage.getItem('xczn_data')).token)
西仓货位总写口(payload 带
proId 绑定物料 / vol 容量 /
proThreshold 阈值 / proReserve 库存)。
默认值按接口清单填写;若你的部署路径不同,在这里改成实际路径。
凭证由常在线的服务器自动保管并续期,不必在本机操作;
点这两个按钮只是立刻刷新一次状态
推图到西仓
类型贴图 → 西仓物料图
把本程序看板格子的完整组合图(阈值区域 + 类型区域 + 贴图,
与看板上看到的格子一模一样)推到西仓物料库的
安全约束:每把刀推它自己货位的那张组合图; 写入前先读回该物料完整数据、只改图片字段再整体保存, 不碰 SKU / 货位 / 库存 / 名称等任何既有数据; 西仓已有图片的默认跳过(除非勾选覆盖)。
西仓硬限制:图片 ≤150KB、格式 jpeg/png、每物料 1 张 —— 上传前会自动压缩(超 800px 先缩放,再逐档降质),压缩结果在预演表里列出来。
注意:阈值区域统一淡绿色(不随库存红/绿跳,西仓后台图固定淡绿即可) (按当时库存分档画上去的),推完不会随库存自动变 —— 要刷新就重新推一次。
productImgPath 字段,
柜体屏(安卓 WebView)从服务器读图,格子就能显示图片。安全约束:每把刀推它自己货位的那张组合图; 写入前先读回该物料完整数据、只改图片字段再整体保存, 不碰 SKU / 货位 / 库存 / 名称等任何既有数据; 西仓已有图片的默认跳过(除非勾选覆盖)。
西仓硬限制:图片 ≤150KB、格式 jpeg/png、每物料 1 张 —— 上传前会自动压缩(超 800px 先缩放,再逐档降质),压缩结果在预演表里列出来。
注意:阈值区域统一淡绿色(不随库存红/绿跳,西仓后台图固定淡绿即可) (按当时库存分档画上去的),推完不会随库存自动变 —— 要刷新就重新推一次。
未拉取映射
推送走公网网关
https://www.jsxicang.cn/prod-api(与上面柜体 :8081 是两套基址,这是西仓架构决定的)。
若浏览器提示跨域被拦,改用 launcher/push_img.py 脚本推送(不受浏览器跨域限制)。
建议先只推 1 把:预演后把「开始推送」改成单把模式,确认柜体屏显示成功再全量。
货位对账(西仓 ↔ 本地)
找出西仓有刀但本地空的货位
以西仓货位档案为权威,对比本地主档:列出「西仓占用 · 本地空」的货位
(例如本地已下架/删除、但西仓还绑着刀没解绑的情况),可一键解绑西仓把货位清空。
用途:修复"软件里是空位、西仓却还显示有刀"的不一致。解绑只清空货位绑定(proId), 不删西仓物料本身、不动库存数量。
用途:修复"软件里是空位、西仓却还显示有刀"的不一致。解绑只清空货位绑定(proId), 不删西仓物料本身、不动库存数量。
点上面按钮拉取西仓货位与物料
淘宝截图识别接口(可选)
采购补货页登记淘宝采购时,可以批量上传订单截图。截图要「自动认出类型和数量」,
需要一个视觉大模型接口(兼容 OpenAI
不配也能用:粘贴淘宝订单文字 → 程序用正则抠出数量/价格/时间/店铺, 再模糊匹配档案里的型号,截图只是存档备查。
chat/completions 的
image_url 格式即可,不挑厂家)。不配也能用:粘贴淘宝订单文字 → 程序用正则抠出数量/价格/时间/店铺, 再模糊匹配档案里的型号,截图只是存档备查。
上柜显示模式
开发期保持关闭(横屏 A/C 左右并排,好调试)。
上柜那天打开:A/C 变上下并排、格子从 10 列改 8 列(每格 73px→118px)、
操作台从右侧挪到底部横条、格内字号整体放大。切换立即生效,不用重启。
货架位置编码对照
柜子用两套编码:hwNo(数字位号,如 5101)与 hwZfCode / zmHwNo(字母位号,如 A01、C01)。
数字编码跨区连号且与字母名不对应(B95=5295、C01=5301),所以本系统一律以字母位号为主键,
数字编码仅作西仓侧映射。实测口径(柜号 YC-00540 · 无锡中志):
A 区 77 位、C 区 38 位,合计 115 位;
B 区未建货位,回收流程未启用,不参与统计。
消耗统计分析
基础信息类型外观 / 组织 / 账户权限 / 基础档案
历史领用记录—
自动刷新:—
流水筛选—
至
模糊搜索—
预警批量设置
近 天有领用即开预警 · 消耗前 名标「重点」
报警线 = 消耗 × 安全覆盖 天 (受货位容量封顶)
智能开启(持续生效):近 N 天有领用记录的型号自动开预警,长期不用的自动关(不制造噪音)。
报警线逐刀按消耗换算——慢销刀阈值小、畅销刀阈值大,取代旧的统一阈值。
人工在档案里设的阈值优先于自动值,不会被覆盖。每次刷新数据自动重算。
统一阈值 库存 ≤ 此值 报警(仅「一键全开」模式用)
B 区货位 · 4列×7行 · 点格子看格内商品(红点=该格有预警)
⚠ 智能预警清单
阈值优先链:人工 > 智能(日均×7天) > 最低库存
出入库流水
至