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

8.4 KiB
Raw Permalink Blame History

零件改制入库链路测试报告

1. 测试目的

验证零件改制任务在完成生产后,是否能够进入现有“自制件入库”流程,并判断是否存在入库数据风险。

2. 测试方式

本次采用只读查询和事务内回滚模拟方式测试。

  • 未保留任何业务数据改动。
  • 未真实新增库存。
  • 未真实执行入库提交。
  • 使用事务临时修改完成数量,调用现有自制件入库查询过程后立即回滚。

3. 涉及对象

3.1 前端页面

src/views/WarehouseManagement/PurchasePartsStorage/index.vue

自制件入库页签使用接口:

仓储管理_自制件入库_查询
仓储管理_自制件入库_循环执行
物料入库_自制件入库_零件图号_查询数据

3.2 数据库对象

技术中心_改制订单记录
车间生产管理_零件工艺计划_视图
车间生产管理工艺_零件工艺计划
仓储管理_自制件入库_查询
仓储管理_自制件入库_循环执行
库存管理_物料与货位对照表
库存管理_外购件累计库存
库存管理_自制件_入库记录

4. 当前改制任务状态检查

执行 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 在事务中临时将一条改制任务的 完成数量 设置为 批次数量,调用现有自制件入库查询后立即回滚。

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. 入库执行逻辑分析

现有自制件入库提交过程:

仓储管理_自制件入库_循环执行

关键逻辑:

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 能否正常进入入库流程

可以。

完成生产后,只要满足:

完成数量 > 入库数量

改制任务可以被 仓储管理_自制件入库_查询 查出,并进入现有自制件入库页面。

8.2 能否直接认为入库完全正确

不能。

当前链路存在关键风险:

显示字段使用改制零件信息
库存入库仍使用原物料流水号

因此只能说“流程可进入入库”,但不能确认“库存入到正确改制物料”。

9. 修复方案执行情况

9.1 已执行方案

已在 技术中心_改制订单记录 中增加改制目标物料流水号:

ALTER TABLE dbo.技术中心_改制订单记录
ADD 改制物料流水号 int NULL;

已修改 技术中心_改制订单_发起改制

SELECT TOP 1
    @改制物料流水号 = 物料流水号
FROM dbo.库存管理_物料主文件_基本
WHERE LTRIM(RTRIM(名称)) = LTRIM(RTRIM(@改制零件名称))
  AND LTRIM(RTRIM(代号)) = LTRIM(RTRIM(@改制零件图号))
  AND ISNULL(是否禁用, 0) = 0;

查不到新物料时禁止发起:

SELECT '0' AS result, '未找到改制零件对应的新物料,请先维护物料信息' AS msg;

已修改 车间生产管理_零件工艺计划_视图,让以下字段优先使用改制物料:

物料流水号
物料编码
代号
货位流水号
货位名称
单位

同时保留改制订单编号、改制零件名称、改制零件图号的优先显示。

9.2 当前验证结果

结构验证:

检查项 结果
改制物料字段存在 1
发起过程已包含改制物料 1
生产任务视图已关联改制物料 1

历史数据:

未删除改制记录数 未维护改制物料数 已维护改制物料数
11 11 0

说明:

  • 历史改制记录没有匹配到新物料流水号。
  • 原因是物料主文件中没有与历史记录的“改制零件名称 + 改制零件图号”完全匹配的可用物料。
  • 新流程已阻止继续产生该问题。

10. 后续验收项

验收项 状态 标准
改制任务完成后可进入自制件入库查询 通过 事务回滚模拟已验证
改制任务入库后库存写入正确物料 待新数据验证 新流程已支持改制物料流水号,需用新发起改制订单验证
入库后工艺计划入库数量增加 待真实流程验证 入库数量应增加
入库完成后考核状态变为 4 待真实流程验证 完成数量全部入库后状态为入库
入库记录显示改制订单编号 待联调 入库记录查询需关联改制记录