- 更新MES和WMS服务端口配置说明 - 详细说明产线工位设备配置(扫码枪+拧紧枪) - 明确AGV配送和接驳台的模拟模式与真实对接方案 - 更新WMS中AGV配送默认模拟模式说明 - 完善厂内物流(AGV/接驳台)的业务架构约束 - 修订临时文档为详细的项目问题和解决方案规划
952 lines
40 KiB
Markdown
952 lines
40 KiB
Markdown
参考实际项目代码、根目录 的 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
|
||
- 用户必须选一个才能完成盘点
|
||
|
||
|
||
### 问题6:SN和批次交互没区分
|
||
|
||
**问题:** 截图里「实盘数量」对所有类型都一样,用户扫了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. 目标数量定义不明
|
||
|
||
【要求】
|
||
- 逐条判断我的问题是否成立
|
||
- 如果成立,给出最优方案
|
||
- 如果有遗漏,补充问题
|
||
- 结合数量定义,确保写回后库存账不崩
|
||
``` |