# 02-项目程序开发详细步骤

## 1. 需求解析

1. 解包并读取 `doc/新增产品合格率.docx`。
2. 确认新增页面为“产品合格率(工位)”，放在生产管理模块下。
3. 确认一级数据只计算已关闭生产订单。
4. 确认二级数据按订单行号、工序、工位汇总完成数量、不良数量和检验说明。

## 2. 数据库开发

1. 新增 `db_backups/create_product_pass_rate_workstation_20260630.sql`。
2. 创建或更新查询过程 `dbo.生产管理_产品合格率工位_查询`。
3. 参数包括生产订单号、物料编码、物料名称、关闭日期起止、工序、工位。
4. 使用 `OPENQUERY([SAP], ...)` 读取 `SBO_YL.dbo.UBT_OWOR`，将 SAP 已关闭订单先写入本地临时表。
5. 使用 `YL_质量检验_质检记录` 汇总生产过程质检数据。
6. 使用 `View_生产订单_MES` 补齐订单行号、工序和指派对象。
7. 输出一级汇总和 `明细JSON`，前端展开行解析 JSON 展示二级数据。
8. 空条件查询自动限定近 30 天，避免页面默认打开时全量扫描。
9. 2026-06-30 按用户反馈修正工序号来源：改为连接 `dbo.MES_接口_生产计划_生产任务`，通过 `YL_质量检验_质检记录.TaskAID = MES_接口_生产计划_生产任务.AID` 读取 `订单行号`。

## 3. 菜单开发

1. 新增 `db_backups/add_product_pass_rate_workstation_menu_20260630.sql`。
2. 菜单标题：`产品合格率(工位)`。
3. 路由：`ProductPassRateWorkstation/index`。
4. 组件：`/ProductionManagement/ProductPassRateWorkstation/index`。
5. 权限来源参考已有“生产计划跟踪”，写入生产管理模块下。

## 4. 前端开发

1. 新增页面 `src/views/ProductionManagement/ProductPassRateWorkstation/index.vue`。
2. 查询区提供关闭日期、生产订单、物料编码、物料名称、工序、工位。
3. 主表展示一级汇总字段。
4. 使用展开行展示二级明细。
5. 合格率按 100%、90%-99.99%、低于 90% 显示不同颜色。
6. 默认关闭日期范围为近 30 天。
7. 2026-06-30 页面去掉 `created()` 自动查询，进入页面后先显示空表。
8. 2026-06-30 查询区新增“合格状态”，默认 `不合格`，查询时传入存储过程参数 `合格状态`。
9. 2026-06-30 将关闭日期范围控件拆成两个独立日期控件，分别传入 `关闭日期_Start` 和 `关闭日期_End`。

## 5. 验证

1. 发布查询过程成功。
2. 发布菜单脚本成功，写入 `12` 条角色菜单记录。
3. 验证 `@生产订单号=N'7649'` 能返回一级汇总和二级明细。
4. 验证近 7 天查询返回 `175` 行，耗时约 `0.37` 秒。
5. 验证空条件自动限定近 30 天，返回 `1420` 行，耗时约 `1.17` 秒。
6. 执行 `npm run build`，构建通过，只有项目既有资源体积和 browserslist 警告。
7. 2026-06-30 验证近 30 天 `不合格` 返回 `50` 行，最高合格率 `99.99`；`合格` 返回 `1370` 行；`全部` 返回 `1420` 行。
8. 2026-06-30 拆分关闭日期控件后执行 `npm run build`，构建通过。
