Files
bj_power/临时.md
T
SunYF f35e9b5b75 docs(deployment): 更新部署手册和业务架构说明
- 更新MES和WMS服务端口配置说明
- 详细说明产线工位设备配置(扫码枪+拧紧枪)
- 明确AGV配送和接驳台的模拟模式与真实对接方案
- 更新WMS中AGV配送默认模拟模式说明
- 完善厂内物流(AGV/接驳台)的业务架构约束
- 修订临时文档为详细的项目问题和解决方案规划
2026-09-20 14:52:36 +08:00

40 KiB
Raw Blame History

参考实际项目代码、根目录 的 md 文档、客户提问"C:\Users\ThinkPad\Desktop\软件系统问题-hd.doc" 、 网上搜索行业实际案例和标准 ,其中客户提问里面的“答” 是ai生成的,仅供参考。

全文要求:不要改代码,出计划,要有详细的 更改方案,不确定问题,一个一个让我确认,再出 计划。

1、

1、附件中心----操作----查看,去除查看。 2、附件中心--- 帮助文档,添加清楚建议和说明,包括如何删除附件,有什么影响。个人电脑如何清楚,比如 回收站 下载中心 ,等。 本项目日志文件路径 和占用大小,等等,清除按钮,允许清除1个月前的所有日志文件和文件夹。 把空间清除,归拢到一起,方便查看和清除。 本清除页面,不可清除在使用的 工艺流程 、不可清除 1年内 的 检测单据。 清除时,一项一项清除 (比如: 导出、导入、上传的附件、检查单 不能一起清除一项一项确认,提示影响范围,点击确认,再删除)。 罗列相关内容,给我方案,做出指示以后再 开干 3、wms账号管理,页面空白了。查原因并修复 4、wms来料检验,缺少,其他入库的一个检查,要和入库一一对应。 5、接驳台维护,是给agv使用的。 和 实际接驳台一一对应,所以,不能新增、修改,只有要给查看功能。 种子数据相关sql ,默认初始化接驳台。 更新你的记忆,永远不允许出现 “关键字” 混合搜索,为什么总是这样设计呢?说了很多遍了。 6、所有的新建、编辑、保存,都要有 二次确认弹框。当前项目,很多地方还没有这个弹窗 7、区域维护--- 货架、层、位置号,都要有名称、备注说明。并显示库存实时库存总数量。 这4级,一旦新建,不允许删除,只能停用。 搜索条件,状态 默认只搜索 启用状态的。 8、区域维护--- 位置号,列表 显示全区域 编码,区域编码、名称,货架编码、货架名称,层编码、层名称 9、wms物料档案, 新增应该参考编辑页面,允许上传附件。并且,上面有要求:所有 新增、新建、编辑、上传、保存、导入,等涉及到更改数据 的操作,都要有 二次 确认框,等用户确认后再继续。弹出框明确描述 影响范围。 10、MES 不告诉 WMS “这个工单总共要多少料”,导致 WMS 没法出库。请出方案,并修复。 11、wms完工检验,等,缺少帮助文档。 并且 归属 字段 请和其他 菜单功能保持一致,参考客户是怎么要求的 。这个文档"C:\Users\ThinkPad\Desktop\软件系统问题-hd.doc" 里面的 答,是ai说的,不具备参考价值,上面的问题,是 用户提问的,是真实需求 12、当前项目无法闭环,请联网搜索 实操项目经验 , 产品级项目 方案,吸取有点,整合到我的项目,让我的项目能闭环。 给我详细的方案,不要改代码,等我决策再动手。 13、来料检查,也是个半成品,请重新设计。 并且,如果tab按物料统计是实时 聚合出来的数据,那也应该先 选择物料,再点击 统计按钮。你设计设计吧,太烂了。 14、退库确认,能闭环吗?库存怎么操作、回到原 仓库位置号?能不能手动选择。退库退的是 剩余物料or有问题的物料。退库sn编号,应该一个一个扫码录入,非 电子气件呢 ? 认真考虑这些问题,一个也不可以遗漏、忽略 15、AGV配送 ? 海康agv相关文档,能提供这些数据吗? 这个页面暂放,等真实对接agv时再改。 16、wms工单备料台账,搜索网页行业经验,看看是否符合标准,能否闭环。 17、用户提问中“增加科技项目出库类别” 。 实际 出库管理---通用出库,没看到这个。我理解:出库是无法和入库的批次号、合同号对应的, 所以出库的 出库 类别不需要和任何 地方联动,仅仅是个 标签记录。你直接实现它就可以了,列表、出库单 都显示清楚即可。 类似入库,让他必填编号。你动动脑子吧。 18、客户提问:通用出库:先区分一下类别(摁钮点选,退料、样品、报废、发货、其它“手动输入”),然后分别填写归属(工单号or科技项目号)、类型(电气件、结构件、其它)、名称(图号)、批次(非强制)/SN(强制)(能否根据类型选择自动更换?) 。 我的理解: 其他需要手动输入,说明 这些类型来源于数据库。 类型里面,还有一个 其他,你他妈也没给客户实现。你是瞎子吗? 批次号,根据 是 物料类型觉得。物料类型,物料选择里面就有,你还让客户手动输入,你有病吗? 物料 选择框,全项目统一组件,并新增下拉框显示字段,当前是 编码、图号 ,改为 编码、图号、类型、品类 问题18,不局限于某个 菜单,全项目 审查 19、 出库管理 ,同理,见 问题18 20、wms出库管理,目标工位,可以选择,不应该让输入。 并且客户明确表示 出库记录 要有 工单号 、 工位号 21、来料检验,是根据 入库管理 检查吧。当前无法闭环,并且 又要客户输入这么多参数,你是个傻逼吗。网上搜索 互联网 标准吧。 22、来料检验----归属--- 科技项目号、工单号、其他 ,当前显示的是 无,不对应该是其他吧,看客户要求。 这里的工单号,和 科技项目号 并列,不是跟mes的工单号 一个维度,也不是一个东西,改名叫工单编号。 23、客户问题:实际使用过程中不合格,转为退货或换修,系统如何修改和调整 。 文档中的回复,全是乱编,根本没有闭环,没有这些按钮功能。完全胡扯!!! 定义好,来料检、过程检、完工检——分工与边界,修复完成以后,再把客户问题闭环。 24、wms库存查询, 质量状态? 你是有病吗。整个区域为什么有个 是否合格。类型 也不对。 区域现在是4级,所以 都不对了。 如果没有好的方案or没必要显示这个tab,就去除此tab 25、数量定义一定要清楚,不能有任何差异,请一个一个审核,涉及到 数量核算的地方,参考: 26、客户问:物料汇总和库存明细有什么差别? 自我审核清楚,在帮助文档介绍清楚。 27、库存盘点。 全功能规划

下面都是ai生成的,仅供参考:

过程检验、完工检查,等等

我理解是完工检查,因为,左边菜单,有来料检查。如果是完工检查,就没有 目标类型 区分。你再捋捋,当前系统完全无法闭环。你能分析我本地项目代码吗

并且 ,按物料统计,有个统计按钮,完全不合时宜。整个 完工检查,是个半成品,请重新设计,必须闭环。

允许联网搜索 标准案例 实现情况

先回答你能不能分析代码

不能。我无法访问你本地的 D:\hardman\bj_power 代码。 我只能基于你发的截图和之前对话里给的信息来分析。如果要我基于真实代码分析,你得把相关文件贴出来,或者告诉我文件路径,我只能靠你贴的片段来判断。


你的理解是对的

这个页面应该是完工检验,不是来料检验。

理由:

  1. 左侧菜单已经明确分开:来料检验、过程检验、完工检验。
  2. 当前高亮的就是“完工检验”。
  3. 如果这是来料检验,左侧就不会再有一个独立的“来料检验”菜单。

所以:这是完工检验的壳,套了来料检验的字段。


完工检验的准确定义

维度 完工检验是什么
检什么 一件成品工件(SN),走完全部工序后的最终检验
对象 成品SN(唯一),不是库存批次
选什么 选工单 → 选SN → 看该SN的所有工序记录
看什么 该SN经过的每道工序的检验结论、操作人、时间、拧紧数据
判什么 整件合格/不合格;不合格的处理方式(返修/让步接收)
完成后 触发成品入库、生成流程卡/追溯报告

当前页面的问题

字段 问题
目标类型:批次/SN 完工检验的对象一定是成品SN,不存在“批次”选项。这是来料检验的逻辑。
生产厂家 来料检验的字段,完工检验不需要(成品是自己生产的)
检测单号(与入库单关联) 来料检验的字段,完工检验不需要关联入库单
报检单号(与报检流程关联) 来料检验的字段
从库存选批次 来料检验的字段,完工检验是从已完工工件选SN
检验数量/合格数量 完工检验是单件,不应该有“数量”概念,要么合格要么不合格
缺少工单号 完工检验必须关联工单,当前没有
缺少产品编号 完工检验必须知道检的是哪个产品
缺少工序汇总 完工检验要展示该SN经过的所有工序检验结论
缺少总合格率 完工检验要算整件的合格率
缺少审核人 完工检验需要最终审核人签字

完工检验应该长什么样

┌─────────────────────────────────────────────────────────────┐
│  完工检验                                                   │
│                                                             │
│  工单号    [WO001________]  [查询]                          │
│  产品编号  [HLX-01A]  产品名称 [汇流箱]                     │
│                                                             │
│  选择待检SN  [扫码或输入SN________]  [添加]               │
│                                                             │
│  待检清单:                                                 │
│  ┌─────────────────────────────────────────────────────┐   │
│  │ SN          │ 产品    │ 工序完成情况              │   │
│  │ SN-HLX-001  │ HLX-01A │ 工序1✅ 工序2✅ 工序3✅  │   │
│  │ SN-HLX-002  │ HLX-01A │ 工序1✅ 工序2✅ 工序3❌  │   │
│  └─────────────────────────────────────────────────────┘   │
│                                                             │
│  选中 SN-HLX-001,显示详情:                                │
│  ┌─────────────────────────────────────────────────────┐   │
│  │ 工序1 操作人:张三  检验:李四  结论:合格  09:30   │   │
│  │ 工序2 操作人:张三  检验:李四  结论:合格  10:15   │   │
│  │ 工序3 操作人:王五  检验:赵六  结论:合格  11:00   │   │
│  │ 拧紧数据:螺丝A 2.48Nm ✅  螺丝B 2.52Nm ✅          │   │
│  │ 总合格率:100%                                       │   │
│  └─────────────────────────────────────────────────────┘   │
│                                                             │
│  检验结论:  ● 合格    ○ 不合格                            │
│  不合格处理:[返修 / 让步接收]                              │
│  审核人:[李四________]                                     │
│  备注:[________]                                           │
│                                                             │
│  [提交完工检验]                                             │
└─────────────────────────────────────────────────────────────┘

为什么当前系统无法闭环

MES 生产 → 工件走完所有工序 → 工位报工
    ↓
完工检验(当前页面)→ 用户不知道选什么(没有工单、没有SN入口)
    ↓
检验完成后 → 没有触发成品入库
    ↓
WMS 没有收到成品入库 → 成品库存为0
    ↓
成品无法出库 → 销售发货断链

根本原因:当前页面既没接上“工件已完工”的数据,也没触发“成品入库”的动作,中间是断的。


给 AI 的修改描述

### 完工检验页面重做

当前问题:
- 页面标称“完工检验”,但字段是来料检验的(生产厂家、检测单号、报检单号、从库存选批次)。
- 缺少完工检验必须的字段(工单号、产品编号、SN、工序汇总、总合格率、审核人)。
- 检验完成后没有触发成品入库,闭环断裂。

修改方案:

1. 去掉字段:目标类型(批次/SN)、生产厂家、检测单号、报检单号、从库存选批次。

2. 增加字段:
   - 工单号(下拉选择或输入查询)
   - 产品编号、产品名称(选工单后自动带出)
   - 待检SN(扫码或输入,可多选)
   - 工序汇总(显示该SN经过的所有工序的检验结论、操作人、时间)
   - 拧紧数据摘要
   - 总合格率
   - 审核人
   - 不合格处理方式(返修/让步接收)

3. 交互流程:
   - 选工单 → 带出产品信息
   - 扫SN → 校验该SN是否走完全部工序
   - 全部工序完成 → 展示工序汇总
   - 未全部完成 → 提示“该SN未完工,无法进行完工检验”
   - 填检验结论 → 提交

4. 提交后触发:
   - 成品入库(调用WMS内部接口,写入成品库存)
   - 生成流程卡/追溯报告

5. 页面 Tab 名称与左侧菜单一致:完工检验。

本系统,关于量的定义 必须准确、明确、正确,不能出任何差异。 请审核下面ai生成的内容。独立审计,如何正确,出方案,我确认后,记录到 库存查询的帮助文档里面(简要记录,帮助文档级别的记录不是照搬)

数量字段完整定义与落地方案

一、总原则

  1. 每个量只表达一个含义,不混用。
  2. 所有量都有明确的计算公式和约束条件。
  3. 跨系统(MES/WMS)的量,必须注明存在哪一侧。
  4. 任何时刻,关系式必须成立,差一个就是账实不符。

二、库存域(WMS 侧,权威数据)

字段 定义 计算公式 存在表 约束
库存量 仓库里实际有多少 入库累加 出库累减 inventory_batch.quantity ≥ 0
锁定量 已被备料单占用、未出库的数量 备料锁定累加 出库释放 解锁 inventory_batch.locked_qty ≥ 0,≤ 库存量
可用量 还能被新备料单占用的数量 库存量 锁定量 计算得出 ≥ 0
已出库量 累计从仓库发出的数量 出库累加 order_material_ledger.out_qty ≥ 0,≤ 需求量

关键约束:

库存量 = 可用量 + 锁定量
可用量 ≥ 0
锁定量 ≤ 库存量

关键点:

  • 锁定量在备料单生成时产生,不是排产时。
  • 备料单生成时,调 WMS 锁定,锁定量 += 备料量。
  • 出库时,库存量 −= 出库量,锁定量 −= 出库量。
  • 锁定失败(可用量不足)→ 备料单生成失败,提示缺料。

三、MES 侧:线边库存域

字段 定义 计算公式 约束
已出库量 累计从仓库发出的数量(从WMS同步) 出库累加 ≥ 0
已接料量 工位确认收货的数量 接料累加 ≥ 0,≤ 已出库量
已消耗量 报工反冲扣除的数量 报工反冲累加 ≥ 0,≤ 已接料量
在途量 已发出、工位还没接的数量 已出库量 已接料量 ≥ 0
工位余量 工位上还没用完的料 已接料量 已消耗量 退库量 ≥ 0

关键约束:

已出库量 = 已接料量 + 在途量
已接料量 = 已消耗量 + 工位余量 + 退库量

关键点:

  • 出库即扣WMS库存,物料进入MES侧管理。
  • 工位余量是MES侧的概念,不纳入WMS盘点。
  • 报工反冲只动MES侧的已消耗量和工位余量,不动WMS库存。

四、工单域(MES 侧)

字段 定义 计算公式 约束
工单数量 计划生产的产品总数 建单时填 > 0
单台用量 生产1台产品需要该物料的数量 物料清单维护 > 0
损耗率 考虑报废/损耗的加放比例 物料清单维护 ≥ 0
需求量 该工单该物料的总需求 工单数量 × 单台用量 × (1+损耗率) > 0
已完工数量 已完工的产品数 完工累加 ≥ 0,≤ 工单数量
剩余缺口 该物料还差多少没出库 需求量 已出库量 ≥ 0

关键点:

  • 需求量是工单级的,不是日级的。
  • 出库累计约束:累计出库 ≤ 需求量
  • 用日级需求会误卡跨天生产。

五、排产域(MES 侧)

字段 定义 计算公式 约束
排产计划量 某工单某天的计划数量 计划员填 ≥ 0,可大于库存
工位分配量 同一工序多工位时,每个工位分到的数量 计划员分配或系统平均分 合计 = 排产计划量
已执行量 该排产实际完成的数量 报工累加 ≥ 0,≤ 排产计划量

关键约束:

同一工单多天排产合计 ≤ 工单数量
工位分配量合计 = 排产计划量

关键点:

  • 排产计划量可以大于库存(提醒采购补料)。
  • 排产不锁定库存,锁定在备料单生成时才发生。

六、检验域(WMS/MES 通用)

字段 定义 计算公式 约束
报检数 本次送检的总数量 人工填或扫码计数 ≥ 0
合格数 判定为合格的数量 检验后统计 ≥ 0,≤ 报检数
不合格数 判定为不合格的数量 报检数 合格数 ≥ 0
让步接收数 不合格但允许使用的数量 审批后填 ≥ 0,≤ 不合格数

关键约束:

报检数 = 合格数 + 不合格数
不合格数 = 退货数 + 报废数 + 让步接收数 + 待处理数

关键点:

  • 报检数是送检总数,不是“检验合格数”。
  • 合格入库,不合格入隔离区。
  • 不合格禁止出库到产线。

七、备料/配送域

字段 定义 计算公式 约束
应发量 备料单要求发出的数量 系统按物料清单算 ≥ 0
已发量 累计已出库的数量 出库累加 ≥ 0,≤ 应发量
实收量 工位确认收到的数量 接料时填 ≥ 0
差异量 实收与应发的差值 实收量 应发量 可正可负
退库量 工位退回仓库的数量 退库单累加 ≥ 0
待发量 还没发的数量 应发量 已发量 ≥ 0

关键约束:

已发量 ≤ 应发量
差异量 = 实收量 − 应发量(正=多发,负=少发)
待发量 = 应发量 − 已发量

关键点:

  • 分批出库时,已发量累加,待发量减少。
  • 差异量非0触发数量不符处理流程。

八、绩效域(MES 侧)

字段 定义 计算公式
完成数 操作工完成的工件数 报工累加
合格数 完成的工件里合格的 检验结论统计
不合格数 完成的工件里不合格的 检验结论统计
合格率 合格数 ÷ 完成数 百分比

九、所有关系式(必须成立)

库存量 = 可用量 + 锁定量
已出库量 = 已接料量 + 在途量
已接料量 = 已消耗量 + 工位余量 + 退库量
报检数 = 合格数 + 不合格数
需求量 = 已出库量 + 剩余缺口
应发量 = 已发量 + 待发量
工位分配量合计 = 排产计划量
同一工单多天排产合计 ≤ 工单数量

任何时刻,这些等式必须成立。差一个,就是账实不符。

十、每个操作的量变化

操作 库存量 锁定量 已出库量 已接料量 已消耗量 工位余量
备料单生成 +备料量
出库 −出库量 −出库量 +出库量
工位接料 +实收量
报工反冲 +消耗量
退库 +退库量 −退库量
盘点调整 ±调整量

十一、给 AI 的落地描述

### 数量字段完整定义

1. 库存域(WMS侧):
   - 库存量:实际在库数量,入库累加、出库累减
   - 锁定量:备料单占用、未出库,备料时+,出库时−
   - 可用量 = 库存量 − 锁定量
   - 已出库量:累计发出,出库时+

2. 线边库存域(MES侧):
   - 已接料量:工位确认收货,接料时+
   - 已消耗量:报工反冲,报工时+
   - 在途量 = 已出库量 − 已接料量
   - 工位余量 = 已接料量 − 已消耗量 − 退库量

3. 工单域(MES侧):
   - 需求量 = 工单数量 × 单台用量 × (1+损耗率)
   - 已完工数量:完工时+
   - 剩余缺口 = 需求量 − 已出库量

4. 排产域(MES侧):
   - 排产计划量:可大于库存
   - 工位分配量合计 = 排产计划量
   - 同一工单多天排产合计 ≤ 工单数量

5. 检验域:
   - 报检数 = 合格数 + 不合格数
   - 让步接收数从不合格数里划出

6. 备料域:
   - 应发量 = 已发量 + 待发量
   - 差异量 = 实收量 − 应发量

7. 关键约束(必须成立):
   - 库存量 = 可用量 + 锁定量
   - 已出库量 = 已接料量 + 在途量
   - 已接料量 = 已消耗量 + 工位余量 + 退库量
   - 报检数 = 合格数 + 不合格数
   - 需求量 = 已出库量 + 剩余缺口

8. 严禁混用:
   - 锁定量 ≠ 排产计划量
   - 排产计划量可以大于库存
   - 锁定量必须 ≤ 可用库存
   - 需求量是工单级,不是日级
   - 报检数是送检总数,不是合格数
   - 工位余量不纳入WMS盘点

9. 每个操作的量变化:
   备料:锁定量+
   出库:库存量−、锁定量−、已出库量+
   接料:已接料量+
   报工:已消耗量+、工位余量−
   退库:库存量+、工位余量−

下面,又是一段ai聊天内容:

结论:主流程能跑,但细节有多处断点,严格说不能闭环


一、能闭环的部分

环节 状态
发起盘点 → 生成盘点单号
扫码实盘 → 记录实盘数
完成盘点 → 生成差异
差异写回 → 修正库存
历史盘点单查询

主链路是通的。


二、断点(不能闭环的地方)

断点1:发起后状态不更新

截图中「盘点单号」显示“未发起”,「目标数量」显示“-”。发起盘点后,这两个字段会不会自动更新为实际的盘点单号和数量?如果不会,用户不知道当前有没有进行中的盘点。

断点2:扫码区和盘点单没自动关联

扫码区有个「盘点单号」输入框,写着“也可粘贴已有进行中的盘点单号”。如果用户已经发起了盘点,为什么还要手动粘贴? 应该发起后自动带入,不需要用户再操作。

断点3:完成盘点时不知道完成哪个单

「完成并生成差异」按钮独立存在,和上面的扫码区没有明显关联。用户扫完码点完成,系统怎么知道是完成哪个盘点单? 应该自动关联当前进行中的盘点单。

断点4:没有取消盘点的入口

如果发起错了,或者扫错了很多,怎么取消?截图中没有取消按钮。 用户只能重新发起,但旧的盘点单会一直挂在“进行中”。

断点5:未盘项没处理

盘点单覆盖 50 个批次,只扫了 45 个,剩下 5 个怎么办?系统没说要怎么处理,直接完成会导致这 5 个的差异算不出来。

断点6:按 SN 和按批次交互没区分

截图里「实盘数量」对所有类型都一样。但电气件(SN)逐件扫码,实盘数应该是 1,不需要用户填。当前交互不区分,用户扫了 SN 还要手动填 1,多余且易错。

断点7:盘点期间库存能变动

发起盘点时冻结了快照,但盘点期间如果有出库/入库,快照和实际就不一致。没有锁定机制,盘点结果不可靠。

断点8:差异写回用开关,不安全

开关容易被误触,写回库存是不可逆操作。用户扫完码随手一划,库存就被改了。


三、要闭环,必须补什么

# 补什么 作用
1 发起后自动更新盘点单号、目标数量 用户知道当前状态
2 扫码区自动关联当前盘点单 不用手动粘贴
3 完成盘点自动关联当前单 知道完成哪个
4 增加「取消盘点」按钮 错了能退
5 未盘项处理弹窗 剩余项有归宿
6 按 SN/按批次区分交互 SN 自动=1,批次填数
7 盘点期间锁定库存 快照和实际一致
8 差异写回改二次确认弹窗 防误触
9 盘点单状态机(进行中/已锁定/已完成/已写回) 状态可追踪
10 写回用调整单,不直接覆盖 可追溯

补完这 10 项,盘点才真正闭环。


四、一句话总结

主流程是通的,但“发起后状态不更新、扫码区和盘点单没关联、完成时不知道完成哪个单、没有取消、未盘项没处理、SN和批次没区分、盘点期间能改库存、写回用开关”——这 8 个断点任何一条都会导致盘点结果不可靠。补完这 8 条加状态机和调整单,才算闭环。

结合刚才,我讲的 ,量 ,的定义

结合“量”的定义,重新评估盘点页面

一、盘点盘的是哪个量?

根据刚才的定义:

库存量 = 可用量 + 锁定量

盘点盘的是「库存量」,即实物在仓库里的总数。

是否参与盘点 原因
库存量 盘这个 实物在仓库里,能数
锁定量 不盘 只是账面占用,实物还在仓库里,已经包含在库存量里了
可用量 不盘 计算值,不独立存在
在途量 不盘 已出库,不在仓库里
工位余量 不盘 在工位上,不在仓库里

盘点结果:实盘数 = 实际数到的库存量。

差异量 = 实盘数 − 账面库存量(快照时的库存量)。


二、关键问题:盘点期间库存变了怎么办

这是当前页面最大的断点,和量的定义直接相关。

场景:

发起盘点 → 快照库存量 = 100(其中锁定量 30,可用量 70)
    ↓
盘点期间有工单出库 → 库存量变成 80,锁定量变成 10,可用量 70
    ↓
用户扫完码,实盘数 = 80
差异 = 80 − 100 = −20 ❌ 错!这是出库导致的,不是盘亏

如果不锁库存,差异会包含正常业务变动,盘点结果不可信。

两种解法:

解法 做法 优点 缺点
A. 锁库存 发起盘点时,锁定该范围库存,不允许出库/入库 差异干净,全是盘盈盘亏 盘点期间产线领不了料
B. 动态对账 不锁,但记录盘点期间所有出入库,差异里扣除这些变动 不影响生产 实现复杂,容易算错

你们规模小,建议选 A(锁库存)。 盘点本身就是短时间操作(几十分钟),锁一下影响不大。

锁的是「库存量」还是「锁定量」?

锁的是该范围库存不允许任何变动——即:

  • 不允许出库(库存量不能减)
  • 不允许入库(库存量不能加)
  • 不允许锁定(锁定量不能变)

盘点期间,库存量、锁定量、可用量全部冻结。


三、盘点后的写回

盘点完成,差异写回时:

调整前:库存量 = 100,锁定量 = 30,可用量 = 70
实盘数 = 95,差异 = −5
调整后:库存量 = 95,锁定量 = 30,可用量 = 65

关键约束:写回后,库存量 = 可用量 + 锁定量 仍要成立。

如果锁定量是 30,库存量从 100 调到 95,可用量自动变成 65。锁定量不动。


四、结合量定义的完整盘点闭环

① 发起盘点
   - 冻结快照:记录当前库存量、锁定量、可用量
   - 锁定库存:不允许出库/入库/锁定
   - 盘点范围:全库 / 按区域 / 按物料
   - 生成盘点单号,状态=进行中

② 扫码实盘
   - 扫批次号(结构件)→ 弹实盘数量框 → 用户填
   - 扫 SN(电气件)→ 实盘数=1,自动提交
   - 记录:批次/SN、货位、账面数(快照库存量)、实盘数、差异

③ 完成盘点
   - 检查未盘项 → 弹窗选处理方式(按账面保留 / 盘亏为0)
   - 展示差异汇总
   - 二次确认弹窗:是否写回库存
   - 写回:生成盘盈/盘亏调整单,修正库存量
   - 解锁库存
   - 状态=已写回

每一步都要保证:

库存量 = 可用量 + 锁定量  (写回后仍成立)

五、当前页面缺什么(结合量定义)

# 缺什么 结合量定义的影响
1 发起后状态不更新 不知道当前盘点单、目标数量
2 扫码区和盘点单没关联 不知道在盘哪个单
3 没有取消盘点入口 发起了退不出
4 盘点期间没锁库存 库存量会变,差异算错
5 未盘项没处理 部分批次没盘,差异不完整
6 SN 和批次交互没区分 SN 实盘数应该自动=1
7 写回用开关 误触导致库存被改
8 写回没走调整单 库存量改了,但查不到谁改的
9 没有状态机 盘点单状态不可追踪
10 写回后没校验等式 写完库存量,可用量、锁定量可能对不上

第 4 条最严重——不锁库存,差异直接算错,盘点结果不可信。 第 10 条次严重——写回后如果 库存量 ≠ 可用量 + 锁定量,整个库存账就崩了。


六、给 AI 的修改描述(结合量定义)

### 库存盘点页面修改(结合数量定义)

1. 盘点对象:盘的是「库存量」,不是可用量,不是锁定量。
   - 账面数 = 快照时的库存量
   - 实盘数 = 实际数到的库存量
   - 差异 = 实盘数 − 账面数

2. 发起盘点时锁定库存:
   - 冻结该范围的库存量、锁定量、可用量
   - 盘点期间不允许出库/入库/锁定
   - 盘点完成或取消后解锁

3. 差异写回:
   - 生成盘盈/盘亏调整单,记录调整前后数量
   - 修正库存量,锁定量不动
   - 写回后校验:库存量 = 可用量 + 锁定量(必须成立)
   - 走二次确认弹窗,不用开关

4. 按物料类型区分扫码:
   - 扫批次号(结构件)→ 弹实盘数量框
   - 扫 SN(电气件)→ 实盘数=1,自动提交

5. 未盘项处理:
   - 完成盘点时,如有未盘项,弹窗选:按账面保留 / 盘亏为0

6. 取消盘点:
   - 增加「取消盘点」按钮,解锁库存,状态=已取消

7. 状态机:进行中 → 已锁定 → 已完成 → 已写回 / 已取消

8. 发起后自动带入盘点单号到扫码区,扫码区自动关联当前盘点单

9. 历史盘点单增加字段:差异项数、是否写回、写回时间

10. 盘点明细导出:盘点单号、批次/SN、货位、账面数、实盘数、差异、操作人、时间

11. 写回权限:主管以上

12. 目标数量定义:本次盘点覆盖的批次/SN 总数,发起时自动算出

七、一句话总结

盘点盘的是「库存量」,不是可用量;盘点期间必须锁库存,否则差异会混入业务变动;写回后必须校验 库存量 = 可用量 + 锁定量;不锁库存、不校验等式,盘点结果就是错的,不能闭环。

库存盘点,你给我总结成 严厉的问题提问,并给我相应最优方案,我问问其他ai,

库存盘点模块——严厉问题清单与最优方案


问题1:盘点对象没定义清楚

问题: 盘点页面没有明确说盘的是「库存量」、「可用量」还是「锁定量」。用户不知道账面数从哪来,实盘数对应哪个量。

最优方案: 盘点盘的是库存量(实物在仓库里的总数)。

  • 账面数 = 快照时的库存量
  • 实盘数 = 实际数到的库存量
  • 差异 = 实盘数 账面数
  • 锁定量、可用量不参与盘点(它们是计算值,不是实物)

约束: 写回后必须满足 库存量 = 可用量 + 锁定量

问题2:盘点期间库存会变,差异算错

问题: 发起盘点时冻结了快照,但盘点期间如果发生出库/入库/锁定,快照和实际就不一致。差异里会混入正常业务变动,不是纯盘盈盘亏。

最优方案: 发起盘点时锁定该范围库存,盘点期间不允许出库/入库/锁定。盘点完成或取消后解锁。

  • 库存量、锁定量、可用量全部冻结
  • 差异干净,全是盘盈盘亏
  • 盘点本身就是短时间操作(几十分钟),锁一下影响不大

问题3:差异写回用开关,容易被误触

问题: 截图里「差异写回库存」是一个开关,用户随手一划就可能改了库存。而且写回库存是不可逆操作,改了很难恢复。

最优方案: 去掉开关,改为「完成盘点」时弹二次确认弹窗

  • 显示盘点单号、盘点范围、已盘项/总数、差异项数
  • 默认勾选「将差异写回库存」,用户可取消
  • 确认后执行写回或仅记录差异
  • 写回是主动确认的动作,不是误触的开关

问题4:写回直接改库存,没有审计痕迹

问题: 差异写回时如果直接覆盖库存数量,查不到是谁在什么时候改的、改了多少。出问题无法追溯。

最优方案: 写回时生成一张「盘点调整单」(盘盈/盘亏),记录:

  • 调整前数量、调整量、调整后数量
  • 操作人、时间、盘点单号
  • 原库存量 + 调整量 = 新库存量
  • 调整单入操作日志,可追溯、可反查

问题5:未盘项没处理

问题: 盘点单覆盖50个批次,只扫了45个,剩下5个怎么办?系统没说要怎么处理,直接完成会导致这5个的差异算不出来。

最优方案: 完成盘点时,如果有未盘项,弹窗让用户选择:

  • 按账面保留(视为无误,推荐)——未盘项不改库存
  • 盘亏为0(视为丢失)——未盘项库存量全部调为0
  • 用户必须选一个才能完成盘点

问题6SN和批次交互没区分

问题: 截图里「实盘数量」对所有类型都一样,用户扫了SN还要手动填1,多余且易错。

最优方案: 按物料类型区分交互:

  • 批次号(结构件)→ 弹出实盘数量输入框,用户填
  • SN(电气件)→ 实盘数量自动=1,不可编辑,直接提交
  • 扫码枪扫进去的内容先判断类型,再决定是否弹数量框

问题7:发起盘点后状态不更新

问题: 截图中「盘点单号」显示“未发起”,「目标数量」显示“-”。发起盘点后,这两个字段会不会自动更新?如果不会,用户不知道当前有没有进行中的盘点。

最优方案:

  • 发起盘点后,自动更新盘点单号、目标数量、状态=进行中
  • 步骤条自动高亮步骤②
  • 扫码区自动带入盘点单号,不用用户手动粘贴

问题8:完成盘点时不知道完成哪个单

问题: 「完成并生成差异」按钮独立存在,和上面的扫码区没有明显关联。用户扫完码点完成,系统怎么知道是完成哪个盘点单?

最优方案: 完成盘点时自动关联当前进行中的盘点单。如果同时有多个进行中的盘点单,弹窗让用户选择。

问题9:没有取消盘点的入口

问题: 如果发起错了,或者扫错了很多,怎么取消?截图中没有取消按钮。用户只能重新发起,但旧的盘点单会一直挂在“进行中”。

最优方案: 增加「取消盘点」按钮:

  • 解锁库存
  • 状态=已取消
  • 记录取消原因、操作人、时间
  • 已扫描的记录保留,但不写回库存

问题10:没有盘点单状态机

问题: 盘点单没有明确的状态流转,用户不知道当前盘点处于哪个阶段。

最优方案: 盘点单状态机:

进行中 → 已锁定 → 已完成 → 已写回 / 已取消
  • 进行中:刚发起,未开始扫
  • 已锁定:库存已锁,正在扫
  • 已完成:扫完提交,未写回
  • 已写回:差异已修正库存
  • 已取消:中途取消

问题11:写回后没校验等式

问题: 写回后库存量改了,但可用量、锁定量可能对不上。如果 库存量 ≠ 可用量 + 锁定量,整个库存账就崩了。

最优方案: 写回后强制校验:

库存量 = 可用量 + 锁定量  (必须成立)
  • 写回时只改库存量,锁定量不变,可用量自动重算
  • 如果校验不通过,拒绝写回,报错并记录

问题12:权限没定义

问题: 谁能发起盘点?谁能写回差异?没有定义。

最优方案:

  • 发起盘点:仓管/主管
  • 扫码实盘:仓管
  • 写回差异:主管以上(写回是高权限操作)
  • 取消盘点:发起人以上

问题13:历史盘点单字段不全

问题: 截图里历史列表只有 ID、盘点单号、操作人、目标数、状态、发起时间、完成时间。缺差异项数、是否写回、写回时间。

最优方案: 历史盘点单列表增加:

  • 差异项数
  • 是否写回
  • 写回时间
  • 取消原因(已取消的)
  • 支持按状态、时间、操作人筛选

问题14:盘点明细无法导出

问题: 盘点完成后无法导出明细,没法给财务或审计。

最优方案: 支持导出:

  • 盘点单号、批次/SN、货位、账面数、实盘数、差异、操作人、时间
  • 格式:Excel

问题15:目标数量定义不明

问题: 截图里有「目标数量」,但功能定义里没解释。用户不知道这个数字代表什么。

最优方案: 明确定义:

  • 目标数量 = 本次盘点覆盖的批次/SN 总数
  • 发起时系统自动算出
  • 例:按区域Z01盘点,Z01有30个批次,目标数量=30

给其他 AI 的提问模板

请独立审计以下库存盘点模块,指出问题并给出最优方案:

【当前实现】
- 三步流程:发起盘点 → 扫码实盘 → 完成盘点(可写回差异)
- 盘点范围:全库/按区域/按物料
- 差异写回用开关控制
- 扫码区有盘点单号输入框,需手动粘贴

【数量定义】
- 库存量 = 可用量 + 锁定量
- 盘点盘的是库存量

【我认为的问题】
1. 没说明盘的是哪个量(库存量/可用量/锁定量)
2. 盘点期间库存会变,差异算错
3. 差异写回用开关,容易被误触
4. 写回直接改库存,没有审计痕迹
5. 未盘项没处理
6. SN和批次交互没区分
7. 发起后状态不更新
8. 完成时不知道完成哪个单
9. 没有取消盘点的入口
10. 没有盘点单状态机
11. 写回后没校验 库存量=可用量+锁定量
12. 权限没定义
13. 历史盘点单字段不全
14. 盘点明细无法导出
15. 目标数量定义不明

【要求】
- 逐条判断我的问题是否成立
- 如果成立,给出最优方案
- 如果有遗漏,补充问题
- 结合数量定义,确保写回后库存账不崩