feat: update MES tracking and reporting workflows
This commit is contained in:
44
work/PlanManagement/PlannOrderClose/02-项目程序开发详细步骤.md
Normal file
44
work/PlanManagement/PlannOrderClose/02-项目程序开发详细步骤.md
Normal 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'已关闭'`
|
||||
|
||||
Reference in New Issue
Block a user