117 lines
6.5 KiB
SQL
117 lines
6.5 KiB
SQL
-- 修复 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 工艺任务流水号;
|