Files
yl/MES_Manage_View_V20/sql_异常提醒_装配及时送检_查询.sql
2026-06-22 18:07:51 +08:00

82 lines
2.8 KiB
Transact-SQL

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