# 05-验收证据

## 文档解析

来源：

- `doc/新增及时齐套跟踪结果.docx`

解析结果：

- 页面名称：及时齐套跟踪结果。
- 一级数据字段根据计划用表页面一致。
- 过滤条件和计划用表页面一致。
- 二级数据来源：`SAP.SBO_YL.dbo.VIEW_Jijiankukc`。

## SAP 视图验证

命令：

```powershell
sqlcmd -S 192.168.2.92 -d YL_MESDB -U sa -P ****** -f 65001 -Q "SELECT TOP 3 * FROM [SAP].[SBO_YL].[dbo].[VIEW_Jijiankukc];"
```

结果：

- SAP linked server 可访问。
- 返回字段包括 `ItemCode`、`U_Name`、`属性`、`未发货数量`、`在制采购`、`采购员`、`采购预计交货日期`、`采购未清数量`、`到货草稿`。

## 查询过程验证

命令：

```powershell
sqlcmd -S 192.168.2.92 -d YL_MESDB -U sa -P ****** -f 65001 -i db_backups\create_timely_kit_tracking_result_20260629.sql
```

结果：

- 脚本执行成功。
- 初次取样时因 `QUOTED_IDENTIFIER` SET 选项不足报错，已在脚本中补充 `SET ANSI_NULLS ON` 和 `SET QUOTED_IDENTIFIER ON` 后重新发布。

取样命令：

```powershell
EXEC dbo.[生产管理_及时齐套跟踪结果_查询]
  @订单号=0,
  @物料类型=N'自制件',
  @合同号=N'',
  @产品编码=N'',
  @产品名称=N'',
  @工序名称=N'',
  @计划开始=N'',
  @计划完成=N'',
  @排产状态=N'全部',
  @指派对象=N'全部',
  @计划号=N'',
  @发货状态=N'全部',
  @齐套=N'全部',
  @检验状态=N'',
  @发料状态=N'全部',
  @自制件属性=N'全部';
```

结果：

- 查询可返回数据。
- 样例包含生产订单、产品编码、缺件物料编码、缺件数量、缺件属性、进度、工艺路线、预计完成时间、质检状态等字段。

## 菜单验证

命令：

```powershell
sqlcmd -S 192.168.2.92 -d YL_MESDB -U sa -P ****** -f 65001 -i db_backups\add_timely_kit_tracking_result_menu_20260629.sql
```

结果：

- 新增 4 条“及时齐套跟踪结果”菜单记录。
- 菜单路径：`TimelyKitTrackingResult/index`。
- 组件路径：`/PlanManagement/TimelyKitTrackingResult/index`。

## 前端构建验证

命令：

```powershell
npm run build
```

结果：

- 构建通过。
- webpack compiled with 2 warnings。
- 警告为项目既有资源体积过大和 Browserslist/caniuse-lite 数据过期。

## 产物证据

- 页面：`src/views/PlanManagement/TimelyKitTrackingResult/index.vue`
- 查询脚本：`db_backups/create_timely_kit_tracking_result_20260629.sql`
- 菜单脚本：`db_backups/add_timely_kit_tracking_result_menu_20260629.sql`
- 工作目录：`work/PlanManagement/TimelyKitTrackingResult`
- 总日志：`gptlog-process/gpdlog.md`

## 第 2 轮修正验证

重新发布查询过程：

```powershell
sqlcmd -S 192.168.2.92 -d YL_MESDB -U sa -P ****** -f 65001 -i db_backups\create_timely_kit_tracking_result_20260629.sql
```

结果：

- 执行成功。
- 查询过程新增最终去重层，按 `订单号 + 缺件生产订单号` 保留一条二级明细。
- 查询过程新增 `工艺路线明细` JSON，供页面渲染日期行、工序行、合格行。

重复数据验证：

```powershell
EXEC dbo.[生产管理_及时齐套跟踪结果_查询] @订单号=7134, ...
```

结果：

- 返回同一生产订单号 `7134` 的二级明细 1 条。
- 不再出现同一生产订单号多条重复数据。

外购一级数据验证：

```powershell
EXEC dbo.[生产管理_及时齐套跟踪结果_查询] @订单号=7335, ...
```

结果：

- 返回 `SAP单据=7335`。
- 一级数据已按 `SAP.DocEntry=7335` 匹配到计划用表/MES 计划数据。

构建验证：

```powershell
npm run build
```

结果：

- 构建通过。
- webpack compiled with 2 warnings。
- 警告仍为项目既有资源体积过大和 Browserslist/caniuse-lite 数据过期。

## 第 3 轮修正验证

重新发布查询过程：
```powershell
sqlcmd -S 192.168.2.92 -d YL_MESDB -U sa -P ****** -f 65001 -i db_backups\create_timely_kit_tracking_result_20260629.sql
```

结果：
- 执行成功。

样例 `2007` 验证：
```powershell
EXEC dbo.[生产管理_及时齐套跟踪结果_查询] @订单号=2007;
```

结果：
- 一级主数据返回 `订单号=2007`、`产品编码=214-YGSA200001`、`产品名称=过滤器组件`。
- 外购缺件为 `24112-011-HY-WF50L`。
- 缺件生产订单号不再显示为主订单号 `2007`。
- 外购采购状态显示采购员、采购未清数量、到货草稿、质检状态。

样例 `7321` 验证：
```powershell
EXEC dbo.[生产管理_及时齐套跟踪结果_查询] @订单号=7321;
```

结果：
- 外购缺件 `XX-YG01013990` 的到货草稿为 `11209`。
- 缺件生产订单号显示 `11209`。
- 质检状态按采购入库检口径显示 `未完成`。

默认查询统计：
```text
总行数：198
产品编码/产品名称为空行数：0
缺件生产订单号等于主订单号行数：0
非外购质检状态非空行数：0
```

前端构建：
```powershell
npm run build
```

结果：
- 构建通过。
- webpack compiled with 2 warnings。
- 警告为项目既有资源体积过大和 Browserslist/caniuse-lite 数据过期。

## 第 4 轮修正验证

### SAP 库存字段确认

命令：

```powershell
sqlcmd -S 192.168.2.92 -d YL_MESDB -U sa -P ****** -C -Q "SELECT c.name FROM [SAP].[SBO_YL].sys.columns c JOIN [SAP].[SBO_YL].sys.objects o ON c.object_id=o.object_id WHERE o.name=N'VIEW_Jijiankukc' ORDER BY c.column_id;"
```

结果：

- `[SAP].[SBO_YL].[dbo].[VIEW_Jijiankukc]` 包含 `库存量` 字段。

取样命令：

```powershell
sqlcmd -S 192.168.2.92 -d YL_MESDB -U sa -P ****** -C -Q "SELECT TOP (5) s.DocEntry, s.ItemCode, s.[未发货数量], s.[库存量] FROM [SAP].[SBO_YL].[dbo].[VIEW_Jijiankukc] AS s WHERE ISNULL(s.[未发货数量],0)>0 AND ISNULL(s.[库存量],0)>0 ORDER BY s.DocEntry;"
```

样例结果：

```text
DocEntry  ItemCode              未发货数量  库存量
2007      24112-011-HY-WF50L    78          27
2011      213-YGLQ-DTFC20C-210  107         85
2248      213-YGLQ-DTFC20C-100  102         85
```

### 查询过程发布

命令：

```powershell
sqlcmd -S 192.168.2.92 -d YL_MESDB -U sa -P ****** -C -b -f 65001 -i db_backups\update_timely_kit_tracking_result_inventory_20260630.sql
```

结果：

- 执行成功。
- 过程 `dbo.生产管理_及时齐套跟踪结果_查询` 已输出 `库存数量`。
- 外购采购状态不再拼接 `采购员:`。

### 样例过程验证

命令：

```sql
EXEC dbo.[生产管理_及时齐套跟踪结果_查询] @订单号=2007;
EXEC dbo.[生产管理_及时齐套跟踪结果_查询] @订单号=7321;
```

结果：

- `@订单号=2007` 返回缺件 `24112-011-HY-WF50L`，缺件数量 `78`，库存数量 `27`。
- `@订单号=7321` 返回缺件 `XX-YG01013990`，缺件数量 `6`，库存数量 `2`。
- 结果列不再包含 `采购员`。
- 外购工艺路线/采购状态示例：`未清数量:50 / 到货草稿:11209 / 质检状态:未完成`。

### 过程定义检查

命令：

```powershell
sqlcmd -S 192.168.2.92 -d YL_MESDB -U sa -P ****** -C -Q "SELECT CASE WHEN CHARINDEX(N'[库存数量]', OBJECT_DEFINITION(OBJECT_ID(N'dbo.生产管理_及时齐套跟踪结果_查询'))) > 0 THEN N'有库存数量' ELSE N'缺库存数量' END AS 库存字段, CASE WHEN CHARINDEX(N'采购员:', OBJECT_DEFINITION(OBJECT_ID(N'dbo.生产管理_及时齐套跟踪结果_查询'))) > 0 THEN N'仍拼接采购员' ELSE N'未拼接采购员' END AS 采购员拼接;"
```

结果：

```text
库存字段    采购员拼接
有库存数量  未拼接采购员
```

### 前端构建

命令：

```powershell
npm run build
```

结果：

- 构建通过。
- `webpack 5.103.0 compiled with 2 warnings`。
- 警告仍为项目既有资源体积过大和 Browserslist/caniuse-lite 数据过期。

### 无效验证命令说明

- 曾尝试使用 `OPENQUERY([LOCALSERVER], ...)` 做辅助结果集落表验证。
- 数据库未配置 `LOCALSERVER` linked server，返回“在 sys.servers 中找不到服务器 'LOCALSERVER'”。
- 该命令不作为验收证据，已用 SAP 取样、过程样例查询和过程定义检查替代。

## 第 5 轮修正验证

### 7134 工艺数据验证

命令：

```sql
SELECT [订单编号],[订单行号],[工序名称],[指派对象],[计划数量],[进度],[完成数量],[收料数量],[加工状态],[开工时间],[外协分组]
FROM dbo.[View_生产订单_MES]
WHERE [订单编号]=7134 AND [物料类型]=N'pit_Resource'
ORDER BY [订单行号];

SELECT p.[订单行号], p.[工序名称],
       SUM(ISNULL(q.[合格数],0)) AS 收检合格数,
       SUM(ISNULL(q.[不合格数],0)) AS 收检不合格数
FROM dbo.[View_生产订单_MES] p
LEFT JOIN dbo.[YL_质量检验_质检记录] q
  ON q.[TaskAID]=p.[TaskAID] AND q.[质检类型]=N'收检'
WHERE p.[订单编号]=7134 AND p.[物料类型]=N'pit_Resource'
GROUP BY p.[订单行号], p.[工序名称]
ORDER BY p.[订单行号];
```

结果：

```text
订单行号  工序名称  指派对象  加工状态  收检合格数
1         打磨      走手续    6         6
2         打压检测  机械装配  NULL      6
3         喷塑      外协      NULL      0
```

### 判色口径验证

- 生产计划跟踪页面蓝色口径：`加工状态` 为 `6` 或 `3`，或 `收检合格数 > 0`。
- 当前页已改为同口径。
- 本地模拟结果：

```text
step1:process-route-blue,step2:process-route-blue,step3:process-route-red
```

### 构建验证

命令：

```powershell
npm run build
```

结果：

- 构建通过。
- `webpack 5.103.0 compiled with 2 warnings`。
- 警告为项目既有资源体积过大和 Browserslist/caniuse-lite 数据过期。

## 第 7 轮修正验证

### 4222 数据来源验证

命令：

```sql
SELECT DocEntry, Project, [行号], ItemCode, U_Name, [属性],
       [未发货数量], [库存量], DocNum, [生产未清数量]
FROM [SAP].[SBO_YL].[dbo].[VIEW_Jijiankukc]
WHERE DocEntry=4222;

SELECT [订单编号], [物料编号], [物料描述], [订单行号], [工序名称], [指派对象]
FROM dbo.[View_生产订单_MES]
WHERE [订单编号] IN (5960,7142)
ORDER BY [订单编号], [订单行号];
```

结果：

- SAP 缺件物料：`22-103-060-YDZF-20V1.0-4.1`。
- SAP `DocNum=5960`。
- MES 同物料存在生产订单 `5960` 和 `7142`。

### 查询过程发布

命令：

```powershell
sqlcmd -S 192.168.2.92 -d YL_MESDB -U sa -P ****** -C -b -f 65001 -i db_backups\update_timely_kit_tracking_result_multi_detail_orders_20260630.sql
```

结果：

- 执行成功。
- 自制件 `detail_order` 改为按订单编号去重后返回多条，不再只取 `TOP (1)`。

### 4222 查询验证

命令：

```sql
EXEC dbo.[生产管理_及时齐套跟踪结果_查询] @订单号=4222;
```

结果：

```text
缺件物料编码                      缺件生产订单号
22-103-060-YDZF-20V1.0-4.1       5960
22-103-060-YDZF-20V1.0-4.1       7142
```

- `5960` 和 `7142` 均显示。
- 同一生产订单号未重复。
- `5960` 显示完整 13 道工艺路线，`7142` 显示 4 道工艺路线。

## 第 6 轮修正验证

### 查询过程发布

命令：

```powershell
sqlcmd -S 192.168.2.92 -d YL_MESDB -U sa -P ****** -C -b -f 65001 -i db_backups\update_timely_kit_tracking_result_purchase_order_20260630.sql
```

结果：

- 执行成功。
- 外购采购状态恢复采购员拼接。
- 未恢复单独采购员结果列。

### 样例验证

命令：

```sql
EXEC dbo.[生产管理_及时齐套跟踪结果_查询] @订单号=7321;
```

结果：

- 缺件物料：`XX-YG01013990`。
- 缺件属性：`外购`。
- 缺件生产订单号：`4111`，来自 SAP `在制采购`。
- 工艺路线/采购状态：`采购员:张丹 / 未清数量:50 / 到货草稿:11209 / 质检状态:未完成`。
- 预计完成时间：`2026-06-25`，来自 SAP `采购预计交货日期`。

### 结果集列验证

命令：

```sql
SELECT column_ordinal, name
FROM sys.dm_exec_describe_first_result_set_for_object(
  OBJECT_ID(N'dbo.生产管理_及时齐套跟踪结果_查询'), 0
)
WHERE name LIKE N'%采购员%'
   OR name IN (N'工艺路线', N'缺件生产订单号', N'预计完成时间');
```

结果：

```text
column_ordinal  name
26              缺件生产订单号
28              工艺路线
29              预计完成时间
```

说明：结果集中无单独 `采购员` 列。

### 前端列验证

命令：

```powershell
Select-String -Path src\views\PlanManagement\TimelyKitTrackingResult\index.vue -Pattern '采购员|label="采购员"|prop="采购员"'
```

结果：

- 无匹配。
- 页面不包含单独采购员列。

### 构建验证

命令：

```powershell
npm run build
```

结果：

- 构建通过。
- `webpack 5.103.0 compiled with 2 warnings`。
- 警告为项目既有资源体积过大和 Browserslist/caniuse-lite 数据过期。
