实时库存水位

{{ selectedWarehouseName }} · 核心商品库存与安全线

今日拿货总次数
今日退仓总次数
低于安全线商品

流转留证

待检查 {{ auditPendingCount }} 条,已检查 {{ auditReviewedCount }} 条,当前显示 {{ visibleAuditTransactions.length }} 条。普通流转不审批,盘点有差异时再追溯照片。

待检查 已检查 全部 照片存储清理 刷新
{{ transactionPhotoEmptyText(transaction) }}
操作人 · {{ transaction.driverName || '-' }}
{{ transaction.warehouseName || '-' }} · {{ transaction.operatedAt || '-' }}
{{ operationTimeSubtext(transaction) }}
{{ transactionDisplayLabel(transaction) }}
{{ item.name || item.skuCode || '商品' }} x {{ auditItemQuantity(item) }}
暂无商品明细
上一张 {{ auditPhotoPreview.index + 1 }} / {{ auditPhotoPreview.urls.length }} 下一张
预览可清理内容

本次预览

可清理文件{{ evidenceCleanup.preview.candidateCount }} 张
预计释放{{ formatStorageBytes(evidenceCleanup.preview.candidateBytes) }}
自动保护{{ evidenceCleanup.preview.protectedCount }} 张
记录中已缺失{{ evidenceCleanup.preview.missingCount }} 张

其中失败离线单保护 {{ evidenceCleanup.preview.protectedQueueCount }} 张,较新引用保护 {{ evidenceCleanup.preview.protectedNewerCount }} 张。

最近清理记录

库存管理

采购入库、手工调整和盘点修正都会进入库存流水台账

库存基准设置 库存变动

盘点管理

当地管理员和总管理员现场盘点;Web 提交后按实盘数量校准真实库存,通知统一显示无差异且不进入盘点差异中心

刷新 开始盘点
未提交盘点
已提交盘点
存在实际差异盘点

流水查询

按仓库、商品、操作人、类型和时间追踪所有物资流转记录

导出 CSV
查询

收款记录

查看付款状态、金额、所属仓库和创建人员;只有收款系统返回“已支付”才视为到账。

刷新
{{ paymentSettings.apiKeyConfigured ? `已配置 ${paymentSettings.apiKeyHint || ''}` : '尚未配置' }}
{{ paymentSettings.webhookConfigured ? (paymentSettings.webhookSecretHint || '已配置') : '尚未配置' }}
请把这个 HTTPS 地址填到收款站“系统设置 → VMS 签名 Webhook”。
查询

离线安全恢复

集中处理服务器已接收的失败请求,以及旧版 App 留在本机、禁止自动重放的安全隔离请求。

刷新
待审核
待人工补录
已结案
累计接收
最多显示最近 200 条;结案后不能覆盖原审核结果。
待恢复
已恢复
累计接收
最多显示最近 200 条;上方统计为实际总数。

盘点差异中心

只有盘点发现账实不一致时才进入追溯,查看相关商品的近期流转留证

显示已归档 刷新
差异商品
涉及仓库
少于账面
多于账面

仓库设置

维护仓库名称、注册显示和启用状态;新仓库需完成首次盘点后才能正式操作

新增仓库

商品设置

维护全局商品档案;商品需要绑定仓库后才会进入对应仓库业务

新增商品

仓库商品绑定

控制每个仓库实际启用哪些商品,并维护本仓安全线;启用绑定后 App 自动显示

数量快捷键

按仓库和商品分别设置 App 数量面板的快捷加数

保存本仓设置
每组可填 1–9999 的正整数,用逗号或空格分隔,最多 6 个;留空即不显示该组快捷键。

附带库存调整

设置每次附带数量和计划累计数量;每笔 App 拿货最多只跟随一条计划

刷新
商品
触发最低拿货量
{{ attachedInventorySelectedProduct?.unitPrimary || '商品单位' }}
每次附带数量
{{ attachedInventorySelectedProduct?.unitPrimary || '商品单位' }}
计划累计上限
{{ attachedInventorySelectedProduct?.unitPrimary || '商品单位' }}
计划开始时间
计划结束时间(可选)
每日触发时段
同一人员触发限制
小时最多触发 1 次
最低保留库存
{{ attachedInventorySelectedProduct?.unitPrimary || '商品单位' }}
排除人员(可多选,默认不排除)
{{ attachedInventoryRuleSummary }}
保存并开始计划
执行中计划
本月附带执行
统计月份

App 活动记录

默认查询最近 7 天(含当天),主要按成功取数后的看板前台停留时间评估管理员掌握当前库存的可能性

最后刷新:{{ appActivityRefreshedAt }} 刷新 查询
重置 {{ appActivityBusinessTimezone }}
活动记录
实际使用人员
库存看板查看
需关注知情项
重置筛选

仓库密码

维护司机进仓库需要的大门密码和仓库密码;司机 App 只会看到自己所属仓库

人员设置

正式司机执行一号一设备绑定;演示审核账号只用于 App 审核,不写入真实业务数据

新增管理员 / 客服 手工新增司机
待审核司机
已启用司机
已驳回申请

报表中心

按时间、仓库、人员和商品查看运营流转,低库存为当前实时状态

刷新
流转数量概览
{{ driverTakeoutSummaryText }}

通知管理

事件开关、APNs 配置、主动推送和近期发送状态

刷新 保存通知设置
复制
最近执行日期:{{ settingValue('low_stock_daily_last_run_date') || '暂无' }} 最近执行时间:{{ settingValue('low_stock_daily_last_run_at') || '暂无' }} 宝塔计划任务可以每小时访问一次;系统会按后台业务时区和 {{ lowStockDailyTimeSetting.value || '09:00' }} 判断,到了时间且当天未执行才检查发送。
自动补救:{{ notificationDiagnostics.maintenance.enabled ? '已开启' : '已关闭' }} 起点:{{ notificationDiagnostics.maintenance.startedAt || '本次更新后' }} 最近执行:{{ notificationDiagnostics.maintenance.lastRunAt || '暂无' }} {{ notificationMaintenanceSummaryText() }}
{{ row.typeLabel }}
{{ row.transactionCount }}
缺失通知 {{ row.missingNotificationCount }}
推送失败:近 7 天暂无失败记录 {{ row.typeLabel }} {{ row.failedCount }}
上传 .p8 文件 {{ item.hasValue ? '已上传' : '未上传' }}
上传 Apple Developer 后台下载的 AuthKey_*.p8 文件;页面不会显示私钥原文,重新上传会替换旧文件。
管理员设备
{{ notificationDeviceStats.adminActiveTokens }}
Production {{ notificationDeviceStats.adminProductionTokens }} / Sandbox {{ notificationDeviceStats.adminSandboxTokens }}
司机设备
{{ notificationDeviceStats.driverActiveTokens }}
Production {{ notificationDeviceStats.driverProductionTokens }} / Sandbox {{ notificationDeviceStats.driverSandboxTokens }}
发送主动推送
查询 重置

系统更新

上传更新包、自动校验、备份与版本恢复

刷新
当前文件版本
{{ systemUpdate.currentVersion || '未识别' }}
右上角也会显示当前版本
数据库已安装版本
{{ systemUpdate.installedVersion || '未记录' }}
不一致时需要先执行数据库升级
ZIP 支持
{{ systemUpdate.zipAvailable ? '可用' : '不可用' }}
最大上传约 {{ systemUpdate.uploadLimitMb || 0 }} MB
选中的更新包
{{ systemUpdate.fileName || '未选择' }}
只接受 .zip

当前文件需要完成数据库升级

系统会先创建当前数据库快照,再执行本版本的数据库迁移。不会导入初始化 SQL,也不会清空真实业务数据。

必须处理
待执行迁移
{{ systemUpdate.currentMigrationStatus.pending?.length || 0 }}
已跳过 {{ systemUpdate.currentMigrationStatus.skipped?.length || 0 }} 个
目标版本
{{ systemUpdate.currentVersion || '-' }}
从 {{ systemUpdate.installedVersion || '未记录' }} 升级
备份策略
先备份
失败会尝试自动回滚数据库快照
备份数据库和程序快照并升级
拖拽 ZIP 更新包到这里,或 点击选择
检查更新包

更新包检查通过

检测到版本 {{ systemUpdate.packageVersion || '-' }},迁移文件 {{ systemUpdate.migrationCount || 0 }} 个。确认后系统会先备份程序和数据库,再更新。

{{ systemUpdate.versionChanged ? '版本变更' : '同版本包' }}
当前文件版本
{{ systemUpdate.currentVersion || '-' }}
服务器正在运行的文件版本
更新包版本
{{ systemUpdate.packageVersion || '-' }}
{{ systemUpdate.packageSizeText || systemUpdate.packageName }}
执行方式
确认后更新
检查阶段不会改数据库和文件
备份并更新到 {{ systemUpdate.packageVersion || '更新包版本' }}
保存保留数量 立即备份当前版本
备份包含程序文件和数据库快照;上传照片、数据库连接配置、安装锁不会被打包进程序恢复文件。

系统设置

运营参数和最近操作日志 · Web 3.1.94

保存设置
已配置发布版本
{{ appVersionInfo.configuredLatestVersion || '未设置' }} ({{ appVersionInfo.configuredLatestBuild }})
最低可用构建号:{{ appVersionInfo.minBuild || '未设置' }}
设备上报的最高 App 版本
{{ appVersionInfo.detectedLatestVersion || '暂未检测到' }} ({{ appVersionInfo.detectedLatestBuild }})
{{ appVersionInfo.detectedLatestAt ? '最近上报:' + appVersionInfo.detectedLatestAt : 'App 登录或访问接口后会上报版本' }}
强制更新
{{ appVersionInfo.forceUpdateEnabled ? '已启用' : '未启用' }}
检测版本不会自动改变强制更新设置,确认后再保存。
非强制更新提醒
{{ appVersionInfo.optionalUpdateEnabled ? '会提醒' : '不提醒' }}
最新构建号高于当前 App 时提醒一次,不阻止继续使用。
上传 .p8 文件 {{ item.hasValue ? '已上传' : '未上传' }}
上传 Apple Developer 后台下载的 AuthKey_*.p8 文件;页面不会显示私钥原文,重新上传会替换旧文件。
填写 1–9999 的正整数,用逗号或空格分隔,最多 6 个;留空可关闭这一组快捷键。
清空数据库