-- 修复 WX-20260730001 / WX-20260730002 调拨明细归属异常 -- 修改人:Ld 修改时间:2026-07-31 15:56:00; SET NOCOUNT ON; SET XACT_ABORT ON; -- 修复前快照,便于回溯。修改人:Ld 修改时间:2026-07-31 15:56:00; IF OBJECT_ID(N'dbo.GPT_调拨修复备份_20260731_1556_单', N'U') IS NULL SELECT * INTO dbo.GPT_调拨修复备份_20260731_1556_单 FROM dbo.车间生产管理_外协调拨单 WHERE 外协调拨单流水号 IN (2369,2370); IF OBJECT_ID(N'dbo.GPT_调拨修复备份_20260731_1556_明细', N'U') IS NULL SELECT * INTO dbo.GPT_调拨修复备份_20260731_1556_明细 FROM dbo.车间生产管理_外协调拨单明细 WHERE 外协调拨单流水号 IN (2369,2370) OR 外协调拨单明细流水号 IN (6325,6326,6327,6328,6329); IF OBJECT_ID(N'dbo.GPT_调拨修复备份_20260731_1556_工序', N'U') IS NULL SELECT * INTO dbo.GPT_调拨修复备份_20260731_1556_工序 FROM dbo.车间生产管理_外协调拨单明细_工序 WHERE 外协调拨单流水号 IN (2369,2370) OR 外协调拨单明细流水号 IN (6325,6326,6327,6328,6329) OR 工序流水号 IN (108349,81720,30967); IF OBJECT_ID(N'dbo.GPT_调拨修复备份_20260731_1556_零件工序', N'U') IS NULL SELECT * INTO dbo.GPT_调拨修复备份_20260731_1556_零件工序 FROM dbo.车间生产管理工艺_零件工序 WHERE 工序流水号 IN (108349,81720,30967); IF OBJECT_ID(N'dbo.GPT_调拨修复备份_20260731_1556_任务分配', N'U') IS NULL SELECT * INTO dbo.GPT_调拨修复备份_20260731_1556_任务分配 FROM dbo.车间生产管理工艺_零件工序_任务分配 WHERE 工艺任务流水号 IN (39177,36624,38805) OR 工序流水号 IN (108349,81720,30967); BEGIN TRAN; IF NOT EXISTS (SELECT 1 FROM dbo.车间生产管理_外协调拨单 WHERE 外协调拨单流水号 = 2369 AND 调拨单号 = N'WX-20260730001') BEGIN RAISERROR(N'未找到 WX-20260730001 对应流水号 2369,停止修复', 16, 1); ROLLBACK TRAN; RETURN; END IF NOT EXISTS (SELECT 1 FROM dbo.车间生产管理_外协调拨单 WHERE 外协调拨单流水号 = 2370 AND 调拨单号 = N'WX-20260730002') BEGIN RAISERROR(N'未找到 WX-20260730002 对应流水号 2370,停止修复', 16, 1); ROLLBACK TRAN; RETURN; END IF NOT EXISTS (SELECT 1 FROM dbo.车间生产管理_外协调拨单明细 WHERE 外协调拨单明细流水号 = 6328 AND 外协调拨单流水号 = 2369 AND 工艺计划流水号 = 1724 AND 外协数量 = 1) BEGIN RAISERROR(N'未找到待移动明细 6328,停止修复', 16, 1); ROLLBACK TRAN; RETURN; END IF EXISTS (SELECT 1 FROM dbo.车间生产管理_外协调拨单明细 WHERE 外协调拨单明细流水号 IN (6325,6326)) BEGIN RAISERROR(N'原明细流水号 6325/6326 已存在,停止修复', 16, 1); ROLLBACK TRAN; RETURN; END IF NOT EXISTS (SELECT 1 FROM dbo.车间生产管理_外协调拨单明细 WHERE 外协调拨单明细流水号 = 6329 AND 外协调拨单流水号 = 2369 AND 工艺计划流水号 = 4313 AND 外协数量 = 100) BEGIN RAISERROR(N'未找到待替换明细 6329,停止修复', 16, 1); ROLLBACK TRAN; RETURN; END -- 将本应属于 WX-20260730002 的明细移到新单。修改人:Ld 修改时间:2026-07-31 15:56:00; UPDATE dbo.车间生产管理_外协调拨单明细 SET 外协调拨单流水号 = 2370 WHERE 外协调拨单明细流水号 = 6328; UPDATE dbo.车间生产管理_外协调拨单明细_工序 SET 外协调拨单流水号 = 2370 WHERE 外协调拨单明细流水号 = 6328; -- 恢复 WX-20260730001 原明细流水号,避免保留误补流水号。修改人:Ld 修改时间:2026-07-31 15:56:00; DELETE FROM dbo.车间生产管理_外协调拨单明细_工序 WHERE 外协调拨单明细流水号 = 6329; DELETE FROM dbo.车间生产管理_外协调拨单明细 WHERE 外协调拨单明细流水号 = 6329; SET IDENTITY_INSERT dbo.车间生产管理_外协调拨单明细 ON; INSERT INTO dbo.车间生产管理_外协调拨单明细 (外协调拨单明细流水号, 外协调拨单流水号, 工艺计划流水号, 外协价格, 外协数量, 到货状态, 到货数量, 操作日期, 到货时间, 备注) VALUES (6325, 2369, 5710, NULL, 171, 0, NULL, '2026-07-30T10:48:58.617', NULL, NULL), (6326, 2369, 4313, NULL, 100, 0, NULL, '2026-07-30T10:49:29.737', NULL, NULL); SET IDENTITY_INSERT dbo.车间生产管理_外协调拨单明细 OFF; SET IDENTITY_INSERT dbo.车间生产管理_外协调拨单明细_工序 ON; INSERT INTO dbo.车间生产管理_外协调拨单明细_工序 (id, 外协调拨单流水号, 外协调拨单明细流水号, 工序流水号, 工序工时, 操作日期) VALUES (6325, 2369, 6325, 108349, NULL, '2026-07-30T10:48:58.617'), (6326, 2369, 6326, 81720, NULL, '2026-07-30T10:49:29.737'); SET IDENTITY_INSERT dbo.车间生产管理_外协调拨单明细_工序 OFF; -- 修正工序和任务选中/加工状态,不重复累加已外协数。修改人:Ld 修改时间:2026-07-31 15:56:00; UPDATE dbo.车间生产管理工艺_零件工序 SET 是否选进外协单中 = CASE WHEN 工序流水号 = 30967 THEN 1 ELSE 0 END WHERE 工序流水号 IN (108349,81720,30967); UPDATE dbo.车间生产管理工艺_零件工序_任务分配 SET 是否加工中 = 1 WHERE 工艺任务流水号 IN (39177,36624,38805); COMMIT TRAN; SELECT N'修复完成' AS 结果; SELECT o.外协调拨单流水号,o.调拨单号,o.单据状态,o.操作日期,o.备注 FROM dbo.车间生产管理_外协调拨单 o WHERE o.外协调拨单流水号 IN (2369,2370) ORDER BY o.外协调拨单流水号; SELECT d.外协调拨单明细流水号,d.外协调拨单流水号,o.调拨单号,d.工艺计划流水号,g.工序流水号,d.外协数量,d.到货状态,d.到货数量,d.操作日期,d.到货时间,d.备注 FROM dbo.车间生产管理_外协调拨单明细 d LEFT JOIN dbo.车间生产管理_外协调拨单 o ON d.外协调拨单流水号 = o.外协调拨单流水号 LEFT JOIN dbo.车间生产管理_外协调拨单明细_工序 g ON d.外协调拨单明细流水号 = g.外协调拨单明细流水号 WHERE d.外协调拨单流水号 IN (2369,2370) ORDER BY d.外协调拨单流水号,d.外协调拨单明细流水号; SELECT 工序流水号,工艺计划流水号,是否选进外协单中,已外协数,外协数量,到货数量,工序状态 FROM dbo.车间生产管理工艺_零件工序 WHERE 工序流水号 IN (108349,81720,30967) ORDER BY 工序流水号; SELECT 工艺任务流水号,工序流水号,人员编号,数量,已领数量,是否加工中 FROM dbo.车间生产管理工艺_零件工序_任务分配 WHERE 工艺任务流水号 IN (39177,36624,38805) ORDER BY 工艺任务流水号;