feat: update MES tracking and reporting workflows

This commit is contained in:
2026-06-30 17:41:40 +08:00
parent e0e1b5d2bb
commit 1399b9a80a
47 changed files with 4465 additions and 90 deletions

View File

@@ -0,0 +1,44 @@
# 02-项目程序开发详细步骤
## 1. 需求解析
1. 用户反馈生产订单关闭“可关闭”查询以工时为基准,导致没有工时记录但满足其他条件的订单查不出来。
2. 确认不能简单放开所有无工时订单,否则会把未完工的新订单带入可关闭列表。
3. 确定口径:无工时订单只免除“全部工时校验”,仍必须满足原有可关闭条件。
## 2. 数据库开发
1. 新增脚本 `db_backups/update_plan_order_close_no_work_hours_20260630.sql`
2. 修改 `dbo.计划排产_生产订单关闭_查询全部订单``@单据状态 = N'可关闭'` 分支。
3. 使用 CTE 汇总收检数量和终检数量。
4. 第一段查询保留原有 `View_生产工时视图` 逻辑:
- 订单有工时。
- `MIN(CASE WHEN v.Expr1 IS NULL THEN 0 ELSE 1 END) = 1`,确保全部工时已校验。
- 保留原有计划数量、入库数量、终检和收检条件。
5. 第二段查询从 `MES_接口_生产计划` 补充无工时订单:
- `#工时订单` 临时表中不存在该订单号。
- 单据状态为空。
- 属性匹配。
- 满足原有计划数量、入库数量、终检和收检条件。
6. 两段结果使用 `UNION ALL` 合并。
7. 非“可关闭”分支改为参数化静态 SQL保留原输出字段。
## 3. 发布
1. 使用 `sqlcmd` 发布脚本到 `YL_MESDB`
2. 发布命令使用环境变量传入密码,不写入脚本和文档。
## 4. 验证
1. 验证无工时样例 `7410`
- `View_生产工时视图` 中无工时。
- `MES_接口_生产计划` 中计划数量 `1`、入库数量 `1`、单据状态为空、属性为机加件。
- 终检合格数 `1`、终检不合格数 `0`
- 查询 `@单据状态=N'可关闭', @属性=N'机加'` 能返回。
2. 验证默认可关闭机加查询:
- 查询耗时约 `0.56` 秒。
- 返回无工时样例 `7280``7409``7410`
3. 验证非可关闭分支可执行:
- `@单据状态=N'未关闭'`
- `@单据状态=N'已关闭'`