外观
6. 库存与采购
6.0 快速上手:10 分钟从建备件到完成一笔入库
假设你刚收到一批新采购的「空气滤芯 AF-200」,需要录入系统并完成入库。
Step 1:新建备件
在「备件管理」页面点击「新建备件」→ 填写备件名称 空气滤芯、物料编号 AF-200、选择单位 → 点击保存。 → 详见 §6.3.2
Step 2:执行入库
在备件清单中找到刚创建的备件,点击行操作「库存操作」→ 选择操作类型「入库」→ 输入入库数量、单位成本、选择仓库 → 提交。 → 详见 §6.4.2
Step 3:设置库存预警阈值
切换到「库存预警」页面「阈值设置」页签 → 点击「设置阈值」→ 选择备件 空气滤芯、设置最低库存如 20 → 保存。 → 详见 §6.5.4
Step 4:查看库存事务记录
切换到「库存事务」页面 → 在右侧列表中查看刚才的入库记录,可按类型/日期/备件筛选。 → 详见 §6.4.3
💡 完成以上步骤后,你已完成「新建备件 → 入库 → 设置阈值 → 查看事务」的完整链路。
6.1 功能概述
本章介绍「库存与采购」相关的八个功能模块:
| 模块 | 定位 | 核心功能 |
|---|---|---|
| 备件管理 | 备件档案与库存数据管理 | 备件清单(分页/搜索/筛选)、库位库存总览、新增/编辑/删除备件、库存操作(入库/出库/调拨/调整/成本调整)、统计信息 |
| 库存事务 | 库存变动流水记录 | 事务列表(分页/筛选)、新建事务、按类型/备件/日期筛选、统计信息 |
| 库存预警 | 库存不足自动提醒 | 预警列表(分状态/严重程度筛选)、阈值配置(按仓库设置)、手动解除预警、一键生成采购草稿 |
| 库存对账 | 工单备件消耗与实际库存差异分析 | 差异列表(日期范围/符号过滤)、统计卡片、CSV 导出 |
| 采购申请 | 备件采购全流程管理 | 申请列表(状态筛选)、新建/编辑/提交申请、审批流程(含退回修改重新提交)、详情查看、到货登记扫码、操作日志 |
| 设备盘点 | 设备现场核查 | 盘点任务管理(草稿→进行中→已完成)、扫码盘点、明细查看、差异报表、批量更新位置 |
| 备件借用 | 备件临时借用与归还 | 借用申请、审批、借出/归还、操作日志、扫码填充批次号 |
| 备件盘点 | 备件库存定期清查核对(菜单入口在「运营管理」→「备件盘点」) | 盘点任务管理(草稿→进行中→已完成)、明细录入(PC端/移动端)、扫码盘点、盘盈录入、CSV批量导入、差异报表(盘盈/盘亏金额)、一键调整库存 |
6.2 页面入口
- PC端:左侧菜单「库存管理」→「备件管理」「库存事务」「库存预警」「库存对账」「采购申请」。菜单组需
inventory:view或purchase_request:view权限可见;其中「采购申请」额外需要purchase_request:view权限,其余子菜单无独立权限守卫(无权限时点击返回 403) - PC端:左侧菜单「运营管理」→「设备盘点」「备件借用」「备件盘点」
- 移动端:
- 首页快捷操作「设备盘点」按钮 → 跳转独立盘点页面
- 首页快捷操作「备件盘点」按钮 → 跳转独立备件盘点页面
- 首页快捷操作「采购申请」按钮 → 跳转独立采购申请页面
- 首页快捷操作「库存预警」按钮(带徽章数字)→ 内嵌预警列表
6.3 PC端 - 备件管理
6.3.1 页面布局
备件管理页面采用左右分栏布局:
左侧操作面板(宽 300px):
- 操作区:「新建备件」按钮、「刷新」按钮
- 筛选区:备件搜索下拉框(名称/编码/制造商)、设备筛选、仓库/库位筛选(库位库存 Tab)、位置筛选(备件清单 Tab)、库存状态筛选(低库存/全部)、清空筛选按钮
- 统计区:总备件数、低库存数、总价值
右侧双 Tab 内容区:
- 库位库存 Tab:按仓库/库位拆分的库存总览表(详见 §6.3.3)
- 备件清单 Tab:备件档案列表,可查看所有备件信息


6.3.2 新建/编辑备件
点击「新建备件」按钮打开创建弹窗(需要「创建备件」权限),弹窗分为三个区域:
基本信息(蓝色渐变背景):
| 字段 | 说明 | 是否必填 |
|---|---|---|
| 备件名称 | 中文名称 | 是 |
| 物料编号 | 企业内部物料管理编号,如 WL-2024-001 | 是 |
| 备件ID | 系统唯一标识(自动生成 SP-YYYYMM-{序号} 格式,留空自动分配) | 编辑时不可修改 |
| 型号 | 产品型号 | 否 |
| 规格 | 尺寸/参数规格 | 否 |
| 制造商 | 输入制造商名称(自动匹配已有记录) | 否 |
| 供应商 | 下拉选择供应商 | 否 |
| 存放位置 | 文本输入存放位置描述(自由文本字段,与仓库/库位表无关) | 否 |
| 默认仓库/库位 | 树形选择关联的仓库/库位(从 storage_locations 表选择,用于库存归属和调拨操作) | 否 |
| 关联设备 | 搜索选择适用设备 | 否 |
| 所属客户 | 搜索选择关联客户(留空表示通用备件) | 否 |
库存信息(绿色渐变背景):
| 字段 | 说明 | 是否必填 |
|---|---|---|
| 当前库存 | 初始库存数量(新建时可编辑,编辑时只读) | 否 |
| 单位 | 个/件/套/米/千克/升/包/箱 | 否 |
| 单价 | 销售单价(元) | 否 |
| 最小库存 | 低于此数量时触发低库存警告(红色) | 否 |
| 安全库存 | 低于此数量时触发安全库存提醒(黄色) | 否 |
| 最大库存 | 库存上限,超出时建议停止采购 | 否 |
| 成本价 | 采购成本(元) | 否 |
| 采购提前期 | 从下单到到货的预计天数 | 否 |
备注说明:自由文本,最多 500 字。

备件清单行操作提供「编辑」「库存操作」「删除」按钮。
6.3.3 库位库存总览
备件管理页面首次打开默认显示「库位库存」Tab,展示按仓库/库位拆分的库存汇总视图。
Tab 栏操作:右上角「刷新」按钮 → 重新加载库位库存数据;左上角显示合计记录数。
表格字段:
| 列名 | 说明 |
|---|---|
| 备件名称 | 备件的中文名称 |
| 物料编号 | 企业内部物料管理编号 |
| 备件ID | 备件唯一标识 |
| 库位名称 | 存放该备件的库位名称 |
| 库位编码 | 库位的唯一编码 |
| 库存数量 | 该库位的库存数量(带颜色徽标:红色=零/低于最小库存、黄色=低于安全库存、绿色=正常) |
| 备件总库存 | 该备件在全部库位中的总库存量(粗体显示) |
| 更新时间 | 库存数据的最后更新时间 |
支持分页(可调节每页条数、快速跳转页码)和刷新。
左侧筛选区(库位库存 Tab 专属):仓库/库位筛选(树形选择器)、备件搜索下拉框(名称/编码/制造商)。

6.3.4 库存操作
点击备件清单行操作中的「库存操作」按钮打开操作弹窗(需要相应操作类型权限)。
弹窗顶部显示备件名称、物料编号、型号、当前库存值。
操作类型(五选一,按权限控制可见性):
| 操作类型 | 图标 | 所需权限 | 说明 |
|---|---|---|---|
| 入库 | 📥 | inventory:in | 增加库存 |
| 出库 | 📤 | inventory:out | 减少库存 |
| 调拨 | 🔀 | inventory:out | 从一个仓库转移到另一个仓库(复用出库权限,无独立调拨权限) |
| 调整 | 🔄 | inventory:adjust | 直接修改库存数量 |
| 成本调整 | 💰 | inventory:cost_adjust | 修改备件单位成本 |
入库操作:输入数量 → 选择入库仓库(必填)→ 输入单位成本(必填)→ 可选填批次号。操作后预览显示新库存数量。
扫码辅助录入:弹窗内扫码按钮支持三种识别方式——📷 摄像头扫描(统一扫码组件,多条码同框时渲染可点标记、点哪个识别哪个)、🖼️ 图片上传识别、⌨️ USB 扫码枪键盘楔入(即插即用,无需切换模式)。条码经「条码规则管理」配置的规则解析后自动填充备件/供应商/单位成本等字段(提示「条码已识别并自动填充」);未匹配任何规则时,原始条码文本自动填入批次号(提示「条码未匹配规则,已填入批次号」)。
出库操作:输入数量 → 选择出库仓库(必填)→ 操作后预览显示新库存数量。如出库数量超过当前库存且用户有调整权限,可开启「库存不足兜底」开关自动补齐差额。
调拨操作:输入数量 → 选择源仓库(必填)→ 选择目标仓库(必填)。源仓库与目标仓库不能相同。
调整操作:输入调整后的库存数量(非增减量,而是目标值)。
成本调整操作:显示当前成本(只读)→ 输入调整后的单位成本 → 显示成本变动预览(旧成本 → 新成本)→ 显示库存价值变动估算 → 填写调整原因(必填)。

6.4 PC端 - 库存事务
6.4.1 页面布局
库存事务页面展示所有库存变动流水记录,同样采用左右分栏:
左侧操作面板(宽 300px):
- 操作区:「新建事务」按钮、操作提示、「刷新列表」按钮
- 筛选区:按类型筛选(入库/出库/调整)、按备件筛选、按日期范围筛选、「清空筛选」按钮
- 统计区:总事务数、入库事务数、出库事务数、调整事务数
右侧事务列表:分页表格

6.4.2 新建事务
点击「新建事务」按钮打开事务创建弹窗,其界面与 §6.3.4 库存操作弹窗相同——可选择入库/出库/调拨/调整/成本调整五种类型。
6.4.3 事务列表
表格字段:
| 列名 | 说明 |
|---|---|
| 事务ID | 系统生成的事务编号 |
| 备件名称 | 关联备件 |
| 类型 | 入库(绿色标签)/ 出库(红色标签)/ 调整(橙色标签) |
| 数量 | 带颜色格式(入库=绿/+、出库=红/-、调整=灰) |
| 单位成本 | 格式化 ¥ 显示 |
| 总成本 | 数量 × 单位成本 |
| 操作人 | 执行操作的用户 |
| 操作时间 | 事务创建时间 |
支持按类型/备件/日期范围组合筛选。
6.5 PC端 - 库存预警
6.5.1 页面布局
库存预警页面负责监控库存不足情况,左右分栏:
左侧操作面板:
- 操作区:「设置阈值」按钮、操作提示、「刷新预警」按钮
- 筛选区:按状态筛选(生效中/处理中/已解除/全部)、按严重程度筛选(严重/中等/轻微)、按备件筛选
- 统计区:总预警数、严重预警数(红色)、中等预警数(橙色)、轻微预警数(黄色)
右侧双 Tab 内容区:
- 库存预警 Tab:预警事件列表
- 阈值设置 Tab:为备件配置最低库存阈值

6.5.2 预警列表
展示系统自动生成的库存预警事件,表格字段:
| 列名 | 说明 |
|---|---|
| 备件名称 | 关联备件 |
| 预警ID | 系统生成的事件编号 |
| 严重程度 | 严重(红色)/ 中等(橙色)/ 轻微(黄色) |
| 当前库存 | 触发预警时的库存量 |
| 最低库存 | 设置的阈值 |
| 状态 | 生效中 / 处理中 / 已解除 |
| 仓库 | 关联库位 |
| 创建时间 | 预警触发时间 |
行操作提供:
- 「解除预警」— 立即将预警标记为已解除
- 「一键生成采购草稿」— 快速创建关联该备件的采购申请草稿(详见 §6.7)。 ⚠️ 触发条件:仅当预警状态为
active/processing且当前库存低于最小库存阈值时可用;若该备件已存在未提交的采购草稿则禁用此按钮,避免重复创建。
6.5.3 解除预警
点击「解除预警」将预警状态从 active 或 processing 变为 resolved。预警解除后不再在生效中页签显示。
6.5.4 阈值设置
阈值设置 Tab 展示所有已配置的库存预警阈值规则,表格字段:
| 列名 | 说明 |
|---|---|
| 备件名称 | 关联备件 |
| 仓库/库位 | 监控范围(空=全局) |
| 最低库存 | 触发预警的库存下限值 |
| 状态 | 生效中 / 已禁用(对应 enabled 字段 true/false,控制阈值规则是否参与自动预警生成) |
行操作提供「编辑」「删除」按钮。
点击「设置阈值」按钮打开阈值配置弹窗:
- 选择备件:搜索/选择目标备件(编辑时不可修改),显示当前阈值状态
- 阈值配置:
- 指定仓库:留空 = 监控全局库存;选择仓库 = 只监控该仓库库存
- 最低库存:当库存低于此值时触发预警
- 通知人:指定预警通知接收人(用户 ID,选填)
- 启用开关:开启后该阈值规则生效,关闭后暂停预警生成(默认开启)
- 保存后系统将自动按规则生成预警

6.6 PC端 - 库存对账
6.6.1 页面布局
库存对账页面用于分析工单中备件消耗记录与实际库存变动之间的差异,帮助发现数据不一致:
顶部操作栏:
- 日期范围选择器
- 工单ID筛选输入框(可选,按关联工单过滤差异记录)
- 符号过滤(全部 / 非零 / 正差额 / 负差额)
- 最小绝对值过滤(仅显示差额 >= 输入值的记录)
- 「查询」按钮、「CSV 导出」按钮
统计卡片(渐变色卡片):
- 差异记录数(紫色)
- 正差额数(绿色)
- 负差额数(红色)
- 金额影响总计 ¥(橙色)
差异数据表格:分页显示差异明细

6.6.2 差异结果说明
差异结果指系统将工单中记录的备件消耗数量与库存事务中的实际变动数量进行比对,识别出的不一致记录:
- 正差额(绿色):库存变动 > 工单消耗(可能是误操作)
- 负差额(红色):库存变动 < 工单消耗(可能是漏记)
操作人员可据此追溯具体工单,核实数据准确性。
6.7 PC端 - 采购申请
6.7.1 页面布局
采购申请页面提供备件采购全流程管理,采用单栏布局:
- 顶部栏:标题「采购申请」+ 状态筛选下拉框 + 「新建申请」按钮
- 申请列表:分页表格
- 详情弹窗:查看申请完整信息、审批进度、到货记录、操作日志
- 编辑/创建弹窗:填写申请信息与备件明细
- 驳回弹窗:输入驳回理由
- 到货登记弹窗:逐明细登记到货数量、单价、批次号
- 扫码弹窗:摄像头扫码验证备件

6.7.2 采购申请状态流转
采购申请的状态机流转(箭头方向 = 唯一可转移方向):
草稿(draft) ──提交──→ 待审批(pending_approval)
待审批 ──审批通过──→ 已通过(approved) ──下单──→ 已下单(ordered) ──全部到货──→ 已到货(received)
待审批 ──审批驳回──→ 已驳回(rejected) ──重新提交──→ 待审批 │
待审批 ──退回修改──→ (仍为 pending_approval,approval_status=returned_to_submitter) │
重新提交──→ 待审批 │
└──部分到货──→ 部分到货(partially_received) ──全部到货──→ 已到货
待审批 ──撤销──→ 已取消(cancelled)特殊说明:
pending_approval+approval_status = returned_to_submitter:审批人退回申请人修改,UI 显示「已退回」标签,可「重新提交」;partially_received:「部分到货」状态,允许继续登记到货直至全部到齐自动变更为received;received:「已到货」终态,不可再登记到货。
6.7.3 申请列表
表格字段:
| 列名 | 说明 |
|---|---|
| 申请单号 | 系统生成唯一编号 |
| 标题 | 申请标题 |
| 状态 | 草稿/待审批/已通过/已驳回/已下单/部分到货/已到货/已取消(颜色标签),退回状态显示为「已退回」 |
| 金额合计 | ¥ 格式化 |
| 触发类型 | 手动 / 库存预警(对应 manual / auto_alert 枚举值) |
| 申请人 | 创建者姓名 |
| 创建时间 | 申请创建时间 |
行操作按钮按状态动态显示:
- 草稿:「详情」「编辑」「提交」
- 待审批(退回状态):「详情」「编辑」「重新提交」
- 待审批(普通):「详情」
- 已驳回:「详情」「重新提交」
- 已通过 / 已下单 / 部分到货:「详情」「📦 登记到货」
- 已到货 / 已取消:「详情」
6.7.4 新建/编辑采购申请
点击「新建申请」或「编辑」打开编辑弹窗(需要「创建采购申请」权限),分为两个卡片:
基本信息卡片:
| 字段 | 说明 | 是否必填 |
|---|---|---|
| 标题 | 申请标题 | 是 |
| 优先级 | 低 / 普通 / 高 / 紧急 | 否 |
| 期望到货日期 | 日期选择器 | 否 |
| 申请部门 | 树形选择部门 | 否 |
| 关联设备 | 搜索选择设备 | 否 |
| 关联工单 | 搜索选择工单(选中后自动带出设备) | 否 |
| 备注 | 申请说明,最多 500 字 | 否 |
备件明细卡片(表格式布局):
- 每行:备件选择 → 数量 → 单价 → 小计(自动计算)→ 删除按钮
- 底部:「+ 添加明细」按钮
- 顶部显示当前明细项数和合计金额

6.7.5 提交申请
草稿状态或退回状态下的申请可点击「提交」按钮(需要「创建采购申请」权限),申请进入审批流程。
6.7.6 详情查看
点击「详情」打开详情弹窗,包含:
- 申请信息:申请单号、状态、标题、优先级、部门、关联设备、关联工单、金额、申请人、期望日期、创建时间、备注
- 审批详情(非草稿状态显示):
- 审批流程名称、当前状态
- 发起人、发起时间
- 审批历史时间线(步骤号、步骤名、会签/或签标签、审批人、状态、审批意见、审批时间)
- 「撤销审批」按钮(制单人 + 待审批中可用)
- 「重新提交审批」按钮(已驳回 / 退回状态 / 已取消 可用)
- 备件明细列表:备件ID、备件编码、备件名称、数量、单价、小计
- 采购/到货明细:每次到货登记的详细记录
- 操作日志:时间线形式展示创建→提交→审批→下单→到货全链路日志

6.7.7 到货登记
当申请状态为「已通过」「已下单」「部分到货」时,可点击「📦 登记到货」按钮(需要「登记到货」权限)。
弹窗包含:
- 入库仓库:下拉选择到货入库仓库(必填)
- 备注:文本说明
- 到货明细列表(每个申请明细一行卡片):
- 备件名称、ID、编码
- 订购/已到/未到数量标签
- 本次数量(输入框,默认带入未到数量)
- 单价(输入框,默认带入采购单价)
- 批次号(输入框)
- 扫码按钮:打开统一扫码组件全屏浮层,连扫模式自动比对申请明细中的备件编码(详见 §6.7.8)

6.7.8 扫码验证(条码规则)
采购申请到货登记支持扫码辅助核对,使用系统统一扫码组件(useBarcodeScanner):
- 连扫模式:命中条码后浮层不关闭,可连续扫描多件到货备件;同一条码 1.5 秒内不重复触发(防止误扫重复)。扫描过程中点击浮层右上角蓝色「✓ 完成」按钮(或 ✕)主动结束
- 多条码点选:视野内同时出现多个条码时,每个条码位置渲染白底胶囊标记(标注 QR/DM/1D 类型),点哪个识别哪个
- 识别引擎自动选择:优先调用设备原生识别能力,不支持时自动切换内置 JS 引擎,用户无感知;同时支持二维码与一维条形码
- 摄像头与对焦:支持多摄像头切换(移动端翻转按钮 / 桌面端下拉选择)、捏合变焦、点按对焦;浮层底部有手动输入条,可直接键入备件编码
- 业务反馈:识别到备件编码后自动比对申请明细,匹配项标记「✓ 已扫码」并即时提示匹配结果;上一码仍在处理时保持对准会自动重发,无需重新触发
- 条码规则解析:编码格式匹配依赖「条码规则管理」(系统管理 → 条码规则)中配置的正则表达式规则(库存类规则)
6.8 PC端 - 设备盘点
6.8.1 页面布局
设备盘点功能位于「运营管理」菜单组,用于核对实际设备与系统记录的一致性:
- 顶部栏:标题 + 状态筛选 +「导出明细」「创建盘点任务」按钮
- 任务列表:分页表格
- 盘点明细弹窗:逐设备确认实际位置、状态
- 差异报表弹窗:统计+差异列表

6.8.2 盘点任务列表
表格字段:
| 列名 | 说明 |
|---|---|
| 盘点单号 | 系统生成的盘点任务编号 |
| 盘点名称 | 任务名称 |
| 状态 | 草稿/进行中/已完成/已取消 |
| 应盘数 | 计划盘点的设备数量 |
| 实盘数 | 实际已确认的设备数量 |
| 一致数 | 账面与实际一致的设备数量 |
| 计划日期 | 计划执行日期 |
行操作:
- 「查看明细」— 打开盘点明细弹窗
- 「差异报表」— 打开差异分析弹窗
- 「开始盘点」(草稿)— 启动盘点任务
- 「完成盘点」(进行中)— 结束盘点
- 「删除」(草稿)— 确认删除
6.8.3 创建盘点任务
点击「创建盘点任务」(需要「管理设备盘点」权限)打开创建弹窗:
| 字段 | 说明 |
|---|---|
| 盘点名称 | 任务名称 |
| 范围类型 | 全部 / 按位置 / 按部门 / 按设备类型 / 按工具 |
| 范围值 | 选择具体位置/部门/类型(树形选择) |
| 包含所属下级 | 勾选后自动纳入所选范围的下级节点 |
| 计划日期 | 执行日期 |
| 备注 | 文本说明 |
6.8.4 盘点明细
打开「查看明细」弹窗,表格字段:
| 列名 | 说明 |
|---|---|
| 设备编码 | 设备标识 |
| 设备 | 设备名称 |
| 部门 | 所属部门 |
| 账面位置 | 系统中记录的位置 |
| 实际位置 | 盘点确认的位置(待盘时为可选位置选择器) |
| 实际状态 | 盘点确认的状态,自由文本字段(常见值:运行/停机/维护/故障/待机/预留,非限定枚举,可输入任意值) |
| 备注 | 盘点备注 |
| 结果 | 未盘(pending/灰色)/ 一致(matched/绿色)/ 盘盈(surplus/蓝色)/ 盘亏(deficit/红色)/ 位置差异(location_mismatch/橙色)/ 状态差异(status_mismatch/紫色) |
| 盘点人 | 执行盘点的用户 |
| 盘点时间 | 确认时间 |
| 操作 | 待盘时显示「确认」按钮 |
6.8.5 差异报表
打开「差异报表」弹窗,展示:
- 统计区:应盘数、实盘数、一致数、盘盈数、盘亏数、位置差异数、状态差异数
- 「批量更新位置」按钮(有位置差异时可用)
- 差异明细列表含盘点差异类型详情(位置差异、状态差异等细分)

6.9 PC端 - 备件借用
6.9.1 页面布局
备件借用功能位于「运营管理」菜单组,用于管理备件的临时借用与归还:
- 顶部栏:标题 + 状态筛选 +「创建借用申请」按钮
- 借用列表:分页表格
- 创建弹窗:选择备件/数量/预计归还日期/原因
- 借出弹窗:选择出库仓库/批次号
- 归还弹窗:归还数量/入库仓库/批次号
- 日志弹窗:操作时间线

6.9.2 借用状态流转
待审批(pending) → 已审批(approved) → 已借出(borrowed) → 已归还(returned)
→ 已取消(cancelled) (审批拒绝后直接进入已取消状态)注意:系统中无独立的「已拒绝」状态;审批拒绝即标记为
cancelled,不可恢复审批。
6.9.3 创建借用申请
点击「创建借用申请」(需要「创建备件借用」权限)打开弹窗:
| 字段 | 说明 | 是否必填 |
|---|---|---|
| 备件 | 搜索选择备件 | 是 |
| 数量 | 借用数量(≥1) | 是 |
| 预计归还日期 | 日期选择 | 否 |
| 借用原因 | 文本说明 | 否 |
| 借用租户 | 选择目标租户(跨租户借用时选填) | 否 |
| 目标库位 | 选择借用目标仓库/库位 | 否 |
| 关联工单 | 选择关联的维修工单 | 否 |
6.9.4 审批与操作
借用列表行操作按钮按状态动态显示:
| 状态 | 可用操作 |
|---|---|
| 待审批 | 日志、审批、拒绝、取消 |
| 已审批 | 日志、借出 |
| 已借出 | 日志、归还 |
借出操作:选择出库仓库(树形选择)→ 可选填批次号(支持扫码填充)→ 可开启「库存不足自动调整」开关(对应 allow_adjust,开启后若库存不足则自动补齐差额)
归还操作:输入归还数量(≤ 未归还数量)→ 选择入库仓库(树形选择)→ 可选填批次号(支持扫码填充)
扫码防错:借出/归还弹窗中扫码时,若条码解析指向其他备件,系统拒绝填充并提示备件不一致(防止「借 A 还 B」);未匹配条码规则的文本则填入批次号。
6.9.5 操作日志
点击「日志」打开操作日志弹窗,以时间线形式展示借用全生命周期:
- 创建申请 → 审批通过/拒绝 → 确认借出(含库存流水中转编号)→ 确认归还(含本次归还/累计归还数量)
6.10 PC端 - 备件盘点
6.10.1 页面布局
备件盘点功能位于「运营管理」菜单组,用于定期清查核对备件实际库存与系统账面数据:
- 顶部栏:标题 + 状态筛选下拉框 + 关键词搜索 +「创建盘点」按钮
- 任务列表:表格(盘点单号、名称、状态、范围、计划日期、SKU数、已盘数、盘盈/盘亏数、差异金额、操作)
- 创建弹窗:配置盘点范围与计划日期
- 明细弹窗:逐SKU录入实际数量(支持实时保存)
- 盘盈录入弹窗:添加不在原计划中的盘盈备件
- 导入弹窗:CSV文件批量导入盘点结果
- 完成确认弹窗:预览未盘/盘盈/盘亏统计后确认完成
- 差异报表弹窗:汇总统计 + 差异明细列表

6.10.2 盘点状态流转
草稿(draft) ──开始──→ 进行中(in_progress) ──完成──→ 已完成(completed)
│ │
└──删除──→ (移除) └──取消──→ 已取消(cancelled)备件盘点与设备盘点的区别:
- 设备盘点核心操作是「有/没有」(逐台确认存在性),侧重位置和状态核查
- 备件盘点核心操作是「数多少」(逐SKU清点数量),侧重数量准确性
- 未录入差异:完成盘点时,未录入实际数量的SKU默认按账面数量补齐,结果标记为「默认一致(未盘)」(
not_counted),与人工确认的「一致」(matched)区分,且不生成库存事务
6.10.3 创建盘点任务
点击「创建盘点」按钮(需要「管理备件盘点」权限)打开创建弹窗:
| 字段 | 说明 | 是否必填 |
|---|---|---|
| 盘点名称 | 任务名称(如「2025Q1全库盘点」) | 是 |
| 范围类型 | 全部 / 按库位 / 按设备 / 按客户 / 按制造商 | 是 |
| 范围值 | 选择具体库位/设备/客户/制造商(范围类型=全部时空置) | 否 |
| 包含所属下级 | 默认开启;勾选后自动纳入所选范围的下级节点(仅对「按库位」范围生效) | — |
注意:当前 PC 端创建弹窗仅开放「全部」「按库位」「按设备」三种范围类型;「按客户」「按制造商」后端已支持,前端将在后续版本开放。 | 计划日期 | 执行日期 | 否 | | 备注 | 文本说明 | 否 |
创建后系统自动扫描当前库存快照,生成盘点明细行(每行 = 备件 × 库位),明细行初始结果状态为「待盘」(pending)。
6.10.4 盘点任务列表
表格字段:
| 列名 | 说明 |
|---|---|
| 盘点单号 | 系统生成唯一编号(如 SPI-A1B2C3D4E5) |
| 盘点名称 | 任务名称 |
| 状态 | 草稿(灰色)/ 进行中(蓝色)/ 已完成(绿色)/ 已取消(红色) |
| 范围 | 全部 / 按库位 / 按设备 / 按客户 / 按制造商 |
| 计划日期 | 计划执行日期 |
| SKU数 | 应盘SKU总数 |
| 已盘 | 已录入实际数量的SKU数 |
| 盘盈 | 实际数量 > 账面数量的SKU数 |
| 盘亏 | 实际数量 < 账面数量的SKU数 |
| 差异金额 | 盘盈金额 - 盘亏金额(净差异),由前端根据 surplus_amount 与 deficit_amount 计算 |
| 操作 | 操作按钮列 |
行操作按钮按状态动态显示:
- 草稿:「查看明细」「开始盘点」「删除」
- 进行中:「查看明细」「盘盈录入」「导入结果」「完成盘点」「报表」
- 已完成:「查看明细」「报表」「调整库存」「CSV导出」
- 已取消:「查看明细」「报表」(注:「已取消」为预留状态,当前暂不支持用户主动取消盘点任务)
6.10.5 盘点明细录入
点击「查看明细」打开明细弹窗,表格字段:
| 列名 | 说明 |
|---|---|
| 物料ID / 物料编号 / 备件名称 | 备件标识信息 |
| 仓库/库位 | 备件所在的完整库位路径 |
| 账面数量 | 系统中记录的库存数量(只读) |
| 实际数量 | 可直接在单元格中输入(进行中状态 + 有管理权限方可编辑),支持小数 |
| 差异 | 实际数量 - 账面数量(自动计算) |
| 差异金额 | 差异 × 参考单价(自动计算) |
| 结果 | 待盘(pending/灰)/ 一致(matched/绿)/ 盘盈(surplus/蓝)/ 盘亏(deficit/红)/ 默认一致(not_counted/灰) |
| 备注 | 可编辑文本备注 |
实时保存:在单元格中修改实际数量后,系统静默自动保存(防抖 250ms),无需手动点保存按钮。明细列表支持按结果类型筛选(全部/待盘/已盘/差异)。

6.10.6 盘盈录入(新增不在计划外的备件)
盘点过程中如果发现货架上存在计划外备件(即创建盘点时未扫描到的SKU),可点击「盘盈录入」按钮添加:
| 字段 | 说明 | 是否必填 |
|---|---|---|
| 备件 | 搜索选择备件(支持按名称/编码/物料编号远程搜索) | 是 |
| 库位 | 搜索选择存放库位 | 是 |
| 实际数量 | 清点到的实际数量 | 是 |
| 备注 | 文本说明 | 否 |
点击提交后系统自动创建新盘点明细行(账面数量=0,结果=盘盈),并刷新主列表统计。
6.10.7 导入盘点结果(CSV批量)
点击「导入结果」按钮打开导入弹窗:
- 模板下载:点击「下载模板」获取CSV模板文件
- 上传文件:拖拽或点击选择CSV文件
- 导入结果:系统逐行解析并更新明细
- 支持按
item_id(明细ID)精确匹配 - 支持按
spare_part_id/part_no(备件编码)+storage_location_id/location_code(库位编码)组合匹配 - 自动识别常见中文表头(实盘数量/实际数量/盘点数量 →
actual_quantity) - 返回导入统计(成功数/失败数 + 逐行错误信息)
- 支持按
CSV模板列头:item_id,spare_part_id,part_no,storage_location_id,location_code,actual_quantity,remark
6.10.8 完成盘点
点击「完成盘点」打开确认弹窗,展示:
- 未盘明细数:尚有 N 条明细未录入实际数量,系统将默认按账面数量补齐,结果标记为「默认一致(未盘)」
- 差异概要:盘盈 M 条、盘亏 K 条,完成时将自动生成入库/出库事务并调整库位库存
- 若所有明细账实一致,提示「所有明细账实一致,点击确认完成盘点」
点击「确认完成」后:
- 未录入明细自动按账面数量填充(
result = not_counted) - 重新计算盘点统计
- 自动为盘盈/盘亏明细生成库存调整事务:盘盈 → 入库(
type="in",adjust_reason标注「G-24备件盘点盘盈入库」),盘亏 → 出库(type="out",adjust_reason标注「G-24备件盘点盘亏出库」) - 盘点状态变更为「已完成」

6.10.9 差异报表
点击「报表」按钮打开差异报表弹窗,展示:
统计摘要:
| 指标 | 说明 |
|---|---|
| SKU总数 / 已盘数 | 盘点覆盖情况 |
| 一致数 / 盘盈数 / 盘亏数 | 差异分布 |
| 未盘数 | 被动默认一致的SKU数 |
| 盘盈金额 / 盘亏金额 / 净差异金额 | 金额维度汇总 |
明细列表:按明细行展示差异详情,可筛选「待盘/盘盈/盘亏」视图。

6.10.10 库存调整
盘点完成时系统已自动触发库存调整(见 §6.10.8),正常流程下无需手动操作。「调整库存」按钮仅在完成操作失败或调整未触发的异常场景下作为兜底入口(仅在盘点状态为 completed 且 adjusted ≠ 1 时可用),点击后系统将遍历所有有差异的明细行,逐条生成库存事务并更新库位库存:
盘盈差异(actual > expected)→ 生成入库事务(type="in",adjust_reason="G-24备件盘点盘盈入库")
盘亏差异(actual < expected)→ 生成出库事务(type="out",adjust_reason="G-24备件盘点盘亏出库")
一致差异(actual = expected)→ 不生成事务调整完成后 adjusted 标记为 1,不可重复调整。
6.10.11 CSV导出
已完成的盘点可点击「CSV导出」按钮,下载该盘点任务的完整明细CSV文件(UTF-8 BOM编码,兼容Excel中文打开),包含所有明细行的备件信息、库位信息、账面/实际数量、差异、差异金额、结果、盘点人、盘点时间、备注。
6.11 移动端操作
6.11.1 库存预警
移动端首页快捷操作区「⚠️ 库存预警」按钮(带红色数字徽章,数字 = active + processing 状态预警总数)进入内嵌预警列表页面。
页面结构:
- 顶部状态页签切换:生效中 / 处理中 / 已解除 / 全部
- 预警卡片列表,每张卡片显示:
- 备件名称、备件ID/编码
- 严重程度标签(严重/中等/轻微带颜色渐变背景)
- 库存数据三列:当前库存、最低库存、库存比例
- 报警时间
- 操作按钮:「一键生成采购草稿」「解除预警」
- 关联采购申请链接(如有)

6.11.2 采购申请
移动端首页快捷操作区「🛒 采购申请」按钮跳转独立页面 mobile-purchase-request.html。
功能包括:
- 快速创建:从预警关联一键生成采购草稿表单
- 申请列表:我的申请 + 全部申请 Tab
- 创建/编辑申请:基本信息 + 备件明细(搜索/数量/单价)
- 提交审批:提交后进入审批流程
- 到货登记:统一扫码组件连扫模式——命中不关闭浮层,可连续扫描多箱备件(同码 1.5 秒防抖);每条命中的业务结果通过顶部反馈胶囊即时显示(匹配成功/未匹配),申请明细中匹配项标记「✓ 已扫码」,可逐条填批次号;扫完点击浮层右上角蓝色「✓ 完成」按钮结束。也支持手动输入备件编码
- 状态查看:审批进度追踪

6.11.3 设备盘点
移动端首页快捷操作区「📋 设备盘点」按钮跳转独立页面 mobile-inventory.html。
功能包括:
- 任务选择:下拉选择进行中的盘点任务
- 进度统计:应盘/已盘数字统计(含一致/盘盈/盘亏/位置差异/状态差异细分)+ 进度条
- 扫码盘点:调用摄像头扫描设备二维码自动识别
- 筛选页签:全部 / 待盘 / 已盘 / 差异
- 搜索:按设备名称/编号搜索
- 盘点确认:点击设备卡片打开确认弹窗,选择实际位置、实际状态、备注
- 结果标识:未盘(灰)/ 一致(绿)/ 盘盈(蓝)/ 盘亏(红)/ 位置差异(橙)/ 状态差异(紫)

6.11.4 备件盘点
移动端首页快捷操作区「🧩 备件盘点」按钮(需要 spare_part_inventory:view 权限)跳转独立页面 mobile-spare-part-inventory.html。
详细操作说明请参见 §18.13.11 备件盘点。

6.12 常见问题
Q:入库时填写的「单位成本」可以不填吗? A:单位成本为非必填字段,入库时可不填。但建议填写以支持后续成本分析、出入库对账和库存价值统计功能。
Q:出库数量超过库存怎么办? A:系统会提示库存不足。如果你有「库存调整」权限,可以开启「库存不足兜底」开关,系统会自动创建调整事务补齐差额后出库。
Q:库存预警如何自动生成? A:系统定时检查所有配置了阈值的备件,当某备件库存低于设置的最低库存时,自动生成预警事件。预警会出现在 PC 端和移动端的库存预警列表中。
Q:采购申请提交后能修改吗? A:审批中不能直接修改。但审批人可以将申请「退回修改」,退回后申请人可编辑并重新提交。
Q:设备盘点中为什么有些设备无法确认? A:确认盘点需要先在「实际位置」和「实际状态」字段中录入新值,然后点击「确认」按钮。如果该设备已被确认(标记「已盘」),不能再重复确认。
Q:「库存对账」的差异是怎么产生的? A:系统比对工单中记录的备件消耗量与库存事务中的实际变动量。如果两者不一致(例如工单记录了消耗但库存事务缺失,或反之),即产生差异记录。
Q:备件盘点中「默认一致(未盘)」和「一致」有什么区别? A:「一致」(matched)表示盘点人员主动清点并确认数量与账面一致,由人工录入确认;「默认一致(未盘)」(not_counted)表示完成盘点时条目尚未录入实际数量,系统自动按账面数量填充。两者均不生成库存调整事务(差异为 0),但在审计追溯上有明显区别——matched 记录盘点人/盘点时间,not_counted 无盘点人记录。
Q:备件盘点完成后的库存调整能否撤销? A:调整操作不可撤销。系统会在盘点完成后自动为盘盈/盘亏明细生成库存事务,且 adjusted 标记为 1 后不可重复调整。建议在完成盘点前仔细核对差异报表。
Q:备件盘点可以导入哪些格式? A:目前支持CSV格式导入。导入文件需包含实际数量列(支持中文表头:实盘数量/实际数量/盘点数量),可按明细ID或备件编码+库位编码组合匹配。详见 §6.10.7 和下载模板。
Q:移动端备件盘点需要网络吗? A:移动端盘点需要网络连接以实时提交盘点数据。扫码功能依赖摄像头权限,需要在HTTPS或localhost环境下使用。
6.13 相关权限
库存与采购模块涉及的权限列表:
| 权限 | 中文名称 | 说明 |
|---|---|---|
spare_part:view | 查看备件 | 查看备件列表与库位库存 |
spare_part:create | 创建备件 | 新建备件档案 |
spare_part:update | 更新备件 | 编辑备件信息 |
spare_part:delete | 删除备件 | 删除备件档案 |
inventory:view | 查看库存 | 查看库存有关页面(库存事务/预警/对账菜单入口);不含 spare_part:view(需单独授予才能访问备件管理页面) |
inventory:manage | 管理库存 | 库存管理综合权限(含调整/调拨) |
inventory:in | 入库操作 | 执行入库操作 |
inventory:out | 出库操作 | 执行出库操作(含调拨出库——调拨功能复用它,系统中无独立 inventory:transfer 权限) |
inventory:adjust | 库存调整 | 调整库存数量 |
inventory:cost_adjust | 成本调整 | 调整备件成本单价 |
purchase_request:view | 查看采购申请 | 查看采购申请列表和详情 |
purchase_request:create | 创建采购申请 | 新建和提交采购申请 |
purchase_request:update | 编辑采购申请 | 编辑草稿/退回的采购申请 |
purchase_request:approve | 审批采购申请 | 审批通过或驳回采购申请 |
purchase_request:receive | 采购到货入库 | 登记采购到货并入库 |
equipment_inventory:view | 查看设备盘点 | 查看设备盘点任务列表 |
equipment_inventory:manage | 管理设备盘点 | 创建/执行/完成设备盘点任务 |
spare_part_borrow:view | 查看备件借用 | 查看备件借用列表 |
spare_part_borrow:create | 创建借用申请 | 创建备件借用申请与归还 |
spare_part_borrow:approve | 审批备件借用 | 审批和确认备件借出 |
spare_part_inventory:view | 查看备件盘点 | 查看备件盘点任务列表、明细和差异报表 |
spare_part_inventory:manage | 管理备件盘点 | 创建/执行/完成备件盘点任务,并按盘点结果调整库存 |
barcode_rule:view | 查看条码规则 | 查看条码解析规则页面 |
barcode_rule:create | 创建条码规则 | 创建新的条码解析规则 |
barcode_rule:update | 编辑条码规则 | 编辑条码解析规则 |
barcode_rule:delete | 删除条码规则 | 删除条码解析规则 |
purchase_request:receive | 登记采购到货 | 登记采购到货并执行入库操作 |
storage_location:view | 查看仓库/库位 | 查看仓库与库位列表 |
storage_location:create | 创建仓库/库位 | 新建仓库或库位节点 |
storage_location:update | 编辑仓库/库位 | 修改仓库/库位信息 |
storage_location:delete | 删除仓库/库位 | 删除仓库/库位节点 |
supplier:view | 查看供应商 | 查看供应商列表和详情 |
supplier:create | 创建供应商 | 新建供应商档案 |
supplier:update | 编辑供应商 | 修改供应商信息 |
supplier:delete | 删除供应商 | 删除供应商档案 |
角色默认权限分配:
| 角色 | 库存与采购相关权限 |
|---|---|
| 超级管理员 | 全部权限 |
| 租户管理员 | 全部权限 |
| 设备主管 | 查看库存,备件(查看/创建/编辑,不含删除),设备盘点全部权限,备件盘点全部权限,备件借用全部权限,条码规则查看,采购申请全部权限 |
| 技术员 | 查看库存、出库操作、查看备件、设备盘点全部权限、备件盘点(查看/管理)、备件借用(查看/创建)、采购申请(查看/创建) |
| 操作员 | 查看备件、查看备件盘点 |
| 仓库管理员 | 库存全部权限(含出入库/调整/成本调整)、备件全部权限(创编删)、备件盘点全部权限、采购申请(查看/创建/编辑) |
| 只读用户 | 查看库存、查看备件、查看备件盘点 |
