USE [YL_MESDB] GO SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE OR ALTER PROCEDURE [dbo].[异常提醒_装配及时送检_查询] @订单号 int = 0, @合同号 nvarchar(50) = N'', @产品编码 nvarchar(50) = N'', @产品名称 nvarchar(50) = N'', @工序名称 nvarchar(50) = N'', @辅助配件 nvarchar(50) = N'不含' AS BEGIN SET NOCOUNT ON; ;WITH 装配任务 AS ( SELECT CASE WHEN v.[物料描述] LIKE N'%系统%' THEN N'系统类' ELSE N'阀类' END AS 任务类型, v.[合同号], v.[订单编号] AS 订单号, v.[物料编号] AS 产品编码, v.[物料描述] AS 产品名称, TRIM('.' FROM TRIM('0' FROM CAST(v.[计划数量] AS varchar(30)))) AS 计划数量, v.[工序名称], v.[指派对象], v.[计划开始时间], v.[计划完成时间], v.[齐套时间], v.[钣金预达时间], CASE WHEN v.[物料描述] LIKE N'%系统%' THEN ISNULL(v.[预计送检日期], DATEADD(DAY, 3, v.[钣金预达时间])) ELSE ISNULL(v.[预计送检日期], DATEADD(DAY, 3, v.[齐套时间])) END AS 预计送检日期, CASE WHEN ISNULL(v.[加急状态], 0) = 1 THEN N'加急' ELSE N'' END AS 加急状态 FROM [dbo].[View_生产订单_MES] v WHERE v.[物料类型] = 'pit_Resource' AND v.[自制件属性] LIKE N'%装配%' AND ISNULL(v.[任务状态], 0) < 4 AND (@订单号 <= 0 OR v.[订单编号] = @订单号) AND (@合同号 = N'' OR v.[合同号] LIKE N'%' + @合同号 + N'%') AND (@产品编码 = N'' OR v.[物料编号] LIKE N'%' + @产品编码 + N'%') AND (@产品名称 = N'' OR v.[物料描述] LIKE N'%' + @产品名称 + N'%') AND (@工序名称 = N'' OR v.[工序名称] = @工序名称) AND ( @辅助配件 <> N'不含' OR ( v.[物料描述] NOT LIKE N'%软管总成%' AND v.[物料描述] NOT LIKE N'%发货部件%' ) ) AND v.[不装配] <> N'否' ) SELECT 任务类型, 合同号, 订单号, 产品编码, 产品名称, 计划数量, 工序名称, 指派对象, 计划开始时间, 计划完成时间, 齐套时间, 钣金预达时间, 预计送检日期, 加急状态 FROM 装配任务 WHERE 预计送检日期 IS NOT NULL AND CONVERT(date, 预计送检日期) <= CONVERT(date, GETDATE()) ORDER BY CONVERT(date, 预计送检日期), CASE WHEN 加急状态 = N'加急' THEN 0 ELSE 1 END, 订单号; END GO