Marui_Work_Optimize/架构说明.md

127 lines
3.3 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 缺料交期系统 — 使用手册
## 📌 快速开始
### 第一次使用
1. 打开 `全機型_日報表.xlsm`
2.`Alt + F11` 进入 VBA 编辑器
3. 新建模块,粘贴 `PMC_缺料交期优化.bas` 的内容
4. 保存
### 每次查看缺料交期
1. **按 `Ctrl+Shift+R`**(需在 VBA 中设置)
2. 或手动运行 `RefreshAllData`
3. 查看自动生成的 **「缺料交期总表」**
---
## 📊 系统架构
### 现状数据流(优化前)
```
qsPO确认交期→ 需手动填入缺料表
TMH实际入库→ 需手动更新qs
缺料表 → 交期列全空
```
### 优化后数据流
```
qsPO确认交期
↓ FillConfirmedDelivery()
缺料.P列确认交期 + Q列预计到货
UpdateShortagePriority() → 缺料.R列优先级
CreateShortageDeliveryReport() → 缺料交期总表(汇总视图)
TMH入库记录
↓ SyncTMHToQS() → qs.K列已交货数量
```
---
## 📋 各工作表职责
| 工作表 | 数据来源 | 责任人 | 本系统操作 |
|--------|---------|--------|-----------|
| qs | 采购录入PO和ETD | 采购 | 读取ETD回填交期 |
| TMH | 仓储录入实际入库 | 仓储 | 读取入库同步入qs |
| 缺料 | 系统生成或手工 | PMC | 回填P/Q/R列 |
| 缺料交期总表 | 自动汇总 | PMC | **查看为主** |
---
## 🎯 核心使用场景
### 场景1查看缺料和交期
**操作:** 按 `Ctrl+Shift+R` → 查看「缺料交期总表」
「缺料交期总表」包含:
- 料号、机种、IC厂商
- 结余/欠料数量
- PO未交量
- TMH待提数量
- L/T内缺料
- **确认交期从qs回填**
- **预计到货数量**
- **优先级(高/中/低)**
- 跟催建议
### 场景2采购回复交期后
**操作:** 在qs表填入ETD → 运行 `FillConfirmedDelivery`
回填内容:
- 缺料.P列 = qs.J列确认交期
- 缺料.Q列 = qs.K列预计数量
### 场景3料到入库后
**操作:** TMH录入 → 运行 `SyncTMHToQS`
效果:
- qs.K列标记已交货数量
- qs.L列标记"已确认"
---
## 🚨 优先级说明
| 优先级 | 条件 | 颜色 | 动作 |
|--------|------|------|------|
| **高** | 结余<0 PO=0 | 红色 | 紧急跟催立即联系采购 |
| **中** | 结余<0 PO>0 | 橙色 | 确认PO交期追踪厂商回复 |
| **低** | 结余>=0 | 绿色 | 正常,核对备料需求即可 |
---
## ⚠️ 注意事项
1. **qs 表是数据源**:本系统从 qs 读取交期qs 数据必须由采购及时录入
2. **TMH 是入库依据**:实际入库数量通过 TMH 同步到 qs
3. **交期总表只读**:建议不要手动编辑总表,每次用 `RefreshAllData` 刷新
4. **日期格式**qs.J 列ETD建议使用 Excel 日期格式,否则匹配可能失败
---
## 🔧 维护指南
### 快捷键设置
```
1. Alt + F11 打开 VBA 编辑器
2. 在模块上右键 → 宏 → RefreshAllData → 选项
3. 快捷键输入Shift+R即 Ctrl+Shift+R
```
### 添加新字段
如需在「缺料交期总表」增加列:
1.`CreateShortageDeliveryReport()``headers` 数组添加列名
2. 在对应位置写入数据
3. 运行刷新
### 修改优先级规则
`UpdateShortagePriority()``CreateShortageDeliveryReport()` 中修改:
```vba
' 高优先级规则示例
If shortageQty < 0 And poQty = 0 Then
priority = "高"
```