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