Files
JY1.0/sql/repair_WX_20260730001_002.sql

117 lines
6.5 KiB
SQL
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
-- 修复 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 ;