IF OBJECT_ID(N'[dbo].[测量数据发动机在线状态_查询_是否二次确认是否工作]', N'P') IS NULL
BEGIN
    EXEC(N'CREATE PROCEDURE [dbo].[测量数据发动机在线状态_查询_是否二次确认是否工作] AS BEGIN SET NOCOUNT ON; END')
END
GO

ALTER PROCEDURE [dbo].[测量数据发动机在线状态_查询_是否二次确认是否工作]
@工位号 nvarchar(50) = null,
@订单号 nvarchar(50) = null,
@总成号 nvarchar(50) = null
AS
BEGIN
SET NOCOUNT ON;

declare @返修工位号 nvarchar(100) = N''
declare @故障文本 nvarchar(1000) = N''
declare @弹窗文本 nvarchar(1200) = N''

-- 返修线返修优先：当前 MA 工位，且该工件存在 ET 工位返工记录。
IF (@工位号 LIKE N'J07MA%')
BEGIN
    SELECT TOP 1
        @返修工位号 = ISNULL([工位号], N''),
        @故障文本 = ISNULL([故障文本], N'')
    FROM [dbo].[北汽福田返工_记录]
    WHERE [总成号] = @总成号
      AND [工位号] LIKE N'J07ET%'
    ORDER BY [操作时间] DESC, [ID] DESC

    IF (@返修工位号 != N'')
    BEGIN
        SET @弹窗文本 = N'该工件在' + @返修工位号 + N'工位不合格，不合格故障文本：' + @故障文本 + N'，请选择操作方式'

        SELECT
            1 AS result,
            REPLACE(REPLACE(@弹窗文本, N'|', N' '), N'&', N' ') AS msg,
            N'#ff0000' AS color,
            N'测试线返修' AS reasonType
        RETURN
    END
END

IF EXISTS (
    SELECT 1
    FROM [dbo].[测量数据发动机在线状态]
    WHERE [工位号] = @工位号
      AND [订单号] = @订单号
      AND [发动机号] = @总成号
)
BEGIN
    SELECT
        1 AS result,
        N'该工件已工作完成 请选择操作方式' AS msg,
        N'#ffcc00' AS color,
        N'已工作' AS reasonType
    RETURN
END

SELECT
    2 AS result,
    N'' AS msg,
    N'#ff0000' AS color,
    N'' AS reasonType
END
