-- 排产数量按工序收率倒推 —— 远端 mom-hm 变更记录(2026-10-15) -- 执行顺序:1 → 2 → 3,已在 36.213.150.237:10000 的 mom-hm 库执行完毕。 -- 1. 新增收率字段(产出/投入,0~1) ALTER TABLE mes_pro_route_process ADD COLUMN yield_rate DECIMAL(10,6) NULL COMMENT '工序收率(产出/投入,0~1)' AFTER param_template_id; ALTER TABLE mes_pro_work_order_process ADD COLUMN yield_rate DECIMAL(10,6) NULL COMMENT '工序收率(产出/投入,0~1)' AFTER param_template_id; -- 2. 现有工序统一初始化为 98% UPDATE mes_pro_route_process SET yield_rate = 0.980000 WHERE yield_rate IS NULL; UPDATE mes_pro_work_order_process SET yield_rate = 0.980000 WHERE yield_rate IS NULL; -- 3. 既有 604 条任务数量按收率倒推重算(末道=订单量,前面各道除以后续累计收率后向上取整为整数) UPDATE mes_pro_task t JOIN ( SELECT wop.work_order_id, wop.process_id, CEIL(wo.quantity / COALESCE(EXP(SUM(LN(COALESCE(wop.yield_rate,1))) OVER (PARTITION BY wop.work_order_id ORDER BY wop.sort DESC ROWS BETWEEN UNBOUNDED PRECEDING AND 1 PRECEDING)),1)) AS new_qty FROM mes_pro_work_order_process wop JOIN mes_pro_work_order wo ON wo.id = wop.work_order_id WHERE wop.deleted = 0 ) x ON x.work_order_id = t.work_order_id AND x.process_id = t.process_id SET t.quantity = x.new_qty, t.produced_quantity = x.new_qty, t.qualify_quantity = x.new_qty WHERE t.deleted = 0; -- 备份:task-before.tsv(重算前)、task-after.tsv(重算后)、work-order-process.tsv(工序与收率依据) -- 说明:604 条任务 duration 原本即为 NULL,且设备未绑定工作站,故时长未参与重算。