Files
MES_Manage_View_V20/work/PlanManagement/PlannOrderClose/02-项目程序开发详细步骤.md

2.0 KiB
Raw Blame History

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 秒。
    • 返回无工时样例 728074097410
  3. 验证非可关闭分支可执行:
    • @单据状态=N'未关闭'
    • @单据状态=N'已关闭'