Files
JY1.0/docs/零件改制/零件改制入库链路测试报告.md

300 lines
8.4 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. 测试目的
验证零件改制任务在完成生产后,是否能够进入现有“自制件入库”流程,并判断是否存在入库数据风险。
## 2. 测试方式
本次采用只读查询和事务内回滚模拟方式测试。
- 未保留任何业务数据改动。
- 未真实新增库存。
- 未真实执行入库提交。
- 使用事务临时修改完成数量,调用现有自制件入库查询过程后立即回滚。
## 3. 涉及对象
### 3.1 前端页面
```text
src/views/WarehouseManagement/PurchasePartsStorage/index.vue
```
自制件入库页签使用接口:
```text
仓储管理_自制件入库_查询
仓储管理_自制件入库_循环执行
物料入库_自制件入库_零件图号_查询数据
```
### 3.2 数据库对象
```text
技术中心_改制订单记录
车间生产管理_零件工艺计划_视图
车间生产管理工艺_零件工艺计划
仓储管理_自制件入库_查询
仓储管理_自制件入库_循环执行
库存管理_物料与货位对照表
库存管理_外购件累计库存
库存管理_自制件_入库记录
```
## 4. 当前改制任务状态检查
执行 SQL
```sql
SELECT
COUNT(*) AS ,
SUM(CASE WHEN ISNULL(V.,0) > ISNULL(V.,0) THEN 1 ELSE 0 END) AS ,
SUM(CASE WHEN ISNULL(V.,0) >= ISNULL(V.,0) AND ISNULL(V.,0) > 0 THEN 1 ELSE 0 END) AS ,
SUM(CASE WHEN V. IS NULL THEN 1 ELSE 0 END) AS
FROM dbo._改制订单记录 GZ
LEFT JOIN dbo._零件工艺计划_视图 V
ON GZ. = V.
WHERE ISNULL(GZ.,0)=0;
```
结果:
| 改制任务数 | 当前可入库数 | 已完成生产数 | 未关联生产任务数 |
| --- | --- | --- | --- |
| 11 | 0 | 0 | 3 |
结论:
- 当前没有已经完成生产并可入库的改制任务。
- 有 3 条历史改制记录未关联到生产任务,原因是未回写 `工艺计划流水号`
## 5. 入库查询模拟测试
### 5.1 测试 SQL
以下 SQL 在事务中临时将一条改制任务的 `完成数量` 设置为 `批次数量`,调用现有自制件入库查询后立即回滚。
```sql
BEGIN TRAN;
DECLARE @ int;
DECLARE @ int;
DECLARE @ int;
DECLARE @ nvarchar(50);
SELECT TOP 1
@ = V.,
@ = V.,
@ = V.,
@ = V.
FROM dbo._改制订单记录 GZ
INNER JOIN dbo._零件工艺计划_视图 V
ON GZ. = V.
WHERE ISNULL(GZ.,0)=0
AND V. IS NOT NULL
ORDER BY GZ. DESC;
UPDATE dbo._零件工艺计划
SET = @
WHERE = @;
EXEC dbo._自制件入库_查询
@ = 0,
@ = 0,
@_check = 1,
@ = @,
@_check = 1,
@ = @;
ROLLBACK TRAN;
```
### 5.2 查询结果
| 工艺计划流水号 | 订单号 | 零件名称 | 零件图号 | 物料流水号 | 批次数量 | 完成数量 | 入库数量 | 本次入库 | 类型 |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 6591 | BHGZ-202607010011 | 300封油板 | URS3042Z-07-01 | 741 | 1 | 1 | 0 | 1 | 自制件 |
结论:
- 改制任务在完成生产后,可以进入现有 `仓储管理_自制件入库_查询` 查询结果。
- 页面层面具备被选择并执行自制件入库的条件。
## 6. 入库执行逻辑分析
现有自制件入库提交过程:
```text
仓储管理_自制件入库_循环执行
```
关键逻辑:
```sql
INSERT INTO _物料与货位对照表
(
,
,
,
,
)
VALUES
(
@,
@,
@,
GETDATE(),
@
);
INSERT INTO _自制件_入库记录
(
,
,
,
,
)
VALUES
(
@,
@,
@,
GETDATE(),
@
);
UPDATE _零件工艺计划
SET = ISNULL(,0) + @
WHERE = @;
```
该过程会:
- 增加货位库存。
- 增加累计库存。
- 写入自制件入库记录。
- 回写工艺计划入库数量。
- 入库数量达到生产数量减报废数量时,将工艺计划状态更新为入库完成。
## 7. 风险发现
### 7.1 入库可执行,但可能入到原物料流水号
当前改制任务查询结果中,虽然视图显示了改制后的零件名称和零件图号,但 `物料流水号` 仍来自原基本件关联的物料。
抽样结果:
| 改制订单编号 | 改制零件图号 | 工艺计划流水号 | 物料流水号 | 当前物料代号 | 结论 |
| --- | --- | --- | --- | --- | --- |
| BHGZ-202607010011 | URS3042Z-07-01 | 6591 | 741 | URS2267Z-04 | 不一致 |
| BHGZ-202606270010 | XT40-2-BT40-14.09-G | 6590 | 1716 | XT40-MF-05.08 | 不一致 |
| BHGZ-202606260009 | XT20-02-G | 6589 | 1251 | XT20-09 | 不一致 |
影响:
- 如果直接使用现有入库流程,库存可能增加到原基本件物料,而不是改制后的目标零件物料。
- 页面显示看起来是改制零件,但库存台账实际使用的是原 `物料流水号`
## 8. 测试结论
### 8.1 能否正常进入入库流程
可以。
完成生产后,只要满足:
```sql
>
```
改制任务可以被 `仓储管理_自制件入库_查询` 查出,并进入现有自制件入库页面。
### 8.2 能否直接认为入库完全正确
不能。
当前链路存在关键风险:
```text
显示字段使用改制零件信息
库存入库仍使用原物料流水号
```
因此只能说“流程可进入入库”,但不能确认“库存入到正确改制物料”。
## 9. 修复方案执行情况
### 9.1 已执行方案
已在 `技术中心_改制订单记录` 中增加改制目标物料流水号:
```sql
ALTER TABLE dbo._改制订单记录
ADD int NULL;
```
已修改 `技术中心_改制订单_发起改制`
```sql
SELECT TOP 1
@ =
FROM dbo._物料主文件_基本
WHERE LTRIM(RTRIM()) = LTRIM(RTRIM(@))
AND LTRIM(RTRIM()) = LTRIM(RTRIM(@))
AND ISNULL(, 0) = 0;
```
查不到新物料时禁止发起:
```sql
SELECT '0' AS result, '未找到改制零件对应的新物料,请先维护物料信息' AS msg;
```
已修改 `车间生产管理_零件工艺计划_视图`,让以下字段优先使用改制物料:
```text
物料流水号
物料编码
代号
货位流水号
货位名称
单位
```
同时保留改制订单编号、改制零件名称、改制零件图号的优先显示。
### 9.2 当前验证结果
结构验证:
| 检查项 | 结果 |
| --- | --- |
| 改制物料字段存在 | 1 |
| 发起过程已包含改制物料 | 1 |
| 生产任务视图已关联改制物料 | 1 |
历史数据:
| 未删除改制记录数 | 未维护改制物料数 | 已维护改制物料数 |
| --- | --- | --- |
| 11 | 11 | 0 |
说明:
- 历史改制记录没有匹配到新物料流水号。
- 原因是物料主文件中没有与历史记录的“改制零件名称 + 改制零件图号”完全匹配的可用物料。
- 新流程已阻止继续产生该问题。
## 10. 后续验收项
| 验收项 | 状态 | 标准 |
| --- | --- | --- |
| 改制任务完成后可进入自制件入库查询 | 通过 | 事务回滚模拟已验证 |
| 改制任务入库后库存写入正确物料 | 待新数据验证 | 新流程已支持改制物料流水号,需用新发起改制订单验证 |
| 入库后工艺计划入库数量增加 | 待真实流程验证 | 入库数量应增加 |
| 入库完成后考核状态变为 4 | 待真实流程验证 | 完成数量全部入库后状态为入库 |
| 入库记录显示改制订单编号 | 待联调 | 入库记录查询需关联改制记录 |