feat: update mes management reports

This commit is contained in:
2026-06-26 16:21:09 +08:00
parent f6dce5daa8
commit abf822fd2c
13 changed files with 1554 additions and 36 deletions

View File

@@ -0,0 +1,110 @@
USE [YL_MESDB]
GO
SET NOCOUNT ON;
DECLARE @Title nvarchar(100) = N'手续确认报表';
DECLARE @Path nvarchar(300) = N'FormalityConfirmReport/index';
DECLARE @Component nvarchar(300) = N'/ProductionManagement/FormalityConfirmReport/index';
DECLARE @Name nvarchar(100) = N'FormalityConfirmReport';
DECLARE @SourcePath nvarchar(300) = N'AssemblyCenter/index';
DECLARE @SourceComponent nvarchar(300) = N'/ProductionManagement/AssemblyCenter/index';
DECLARE @TargetRole int = NULL;
IF OBJECT_ID(N'dbo.登录基础数据_二级菜单', N'U') IS NULL
BEGIN
RAISERROR(N'未找到表 dbo.登录基础数据_二级菜单。', 16, 1);
RETURN;
END;
DECLARE @IdIsIdentity bit = ISNULL(COLUMNPROPERTY(OBJECT_ID(N'dbo.登录基础数据_二级菜单'), N'id', 'IsIdentity'), 0);
IF @IdIsIdentity = 1
BEGIN
;WITH SourceRows AS (
SELECT
src.[],
src.[pid],
src.[icon]
FROM [dbo].[_二级菜单] src
WHERE src.[] = 1
AND (@TargetRole IS NULL OR src.[] = @TargetRole)
AND (src.[path] = @SourcePath OR src.[componet] = @SourceComponent OR src.[title] = N'装配中心')
AND NOT EXISTS (
SELECT 1
FROM [dbo].[_二级菜单] existing
WHERE existing.[] = src.[]
AND (existing.[path] = @Path OR existing.[componet] = @Component OR existing.[title] = @Title)
)
)
INSERT INTO [dbo].[_二级菜单]
([pid], [path], [componet], [redirect], [name], [title], [icon], [], [], [])
SELECT
[pid],
@Path,
@Component,
NULL,
@Name,
@Title,
[icon],
[],
1,
GETDATE()
FROM SourceRows;
END
ELSE
BEGIN
;WITH SourceRows AS (
SELECT
ROW_NUMBER() OVER (ORDER BY src.[], src.[id]) AS rn,
src.[],
src.[pid],
src.[icon]
FROM [dbo].[_二级菜单] src
WHERE src.[] = 1
AND (@TargetRole IS NULL OR src.[] = @TargetRole)
AND (src.[path] = @SourcePath OR src.[componet] = @SourceComponent OR src.[title] = N'装配中心')
AND NOT EXISTS (
SELECT 1
FROM [dbo].[_二级菜单] existing
WHERE existing.[] = src.[]
AND (existing.[path] = @Path OR existing.[componet] = @Component OR existing.[title] = @Title)
)
),
BaseId AS (
SELECT ISNULL(MAX([id]), 0) AS maxId
FROM [dbo].[_二级菜单]
)
INSERT INTO [dbo].[_二级菜单]
([id], [pid], [path], [componet], [redirect], [name], [title], [icon], [], [], [], [])
SELECT
BaseId.maxId + SourceRows.rn,
SourceRows.[pid],
@Path,
@Component,
NULL,
@Name,
@Title,
SourceRows.[icon],
SourceRows.[],
BaseId.maxId + SourceRows.rn,
1,
GETDATE()
FROM SourceRows
CROSS JOIN BaseId;
END;
UPDATE [dbo].[_二级菜单]
SET
[path] = @Path,
[componet] = @Component,
[name] = @Name,
[title] = @Title,
[] = [id],
[] = 1
WHERE [title] = @Title OR [componet] = @Component;
SELECT [id], [pid], [path], [componet], [name], [title], [icon], [], [], []
FROM [dbo].[_二级菜单]
WHERE [path] = @Path OR [componet] = @Component OR [title] = @Title
ORDER BY [], [id];

View File

@@ -0,0 +1,123 @@
USE [YL_MESDB]
GO
SET NOCOUNT ON;
DECLARE @Title nvarchar(100) = N'及时检验报表';
DECLARE @Path nvarchar(300) = N'CheckTask/punctualInspection';
DECLARE @Component nvarchar(300) = N'/QualityManagement/CheckTask/punctualInspection';
DECLARE @Name nvarchar(100) = N'PunctualInspectionReport';
DECLARE @SourcePath nvarchar(300) = N'CheckTask/processReceive';
DECLARE @SourceComponent nvarchar(300) = N'/QualityManagement/CheckTask/processReceive';
DECLARE @TargetRole int = NULL; -- NULL means all roles that already have 序检收检.
IF OBJECT_ID(N'dbo.登录基础数据_二级菜单', N'U') IS NULL
BEGIN
RAISERROR(N'未找到表 dbo.登录基础数据_二级菜单。', 16, 1);
RETURN;
END;
DECLARE @IdIsIdentity bit = ISNULL(COLUMNPROPERTY(OBJECT_ID(N'dbo.登录基础数据_二级菜单'), N'id', 'IsIdentity'), 0);
IF @IdIsIdentity = 1
BEGIN
;WITH SourceRows AS (
SELECT
src.[],
COALESCE(reportParent.[id], src.[pid]) AS [pid],
src.[icon]
FROM [dbo].[_二级菜单] src
OUTER APPLY (
SELECT TOP (1) rp.[id]
FROM [dbo].[_二级菜单] rp
WHERE rp.[] = src.[]
AND rp.[] = 1
AND rp.[title] = N'质量报表'
ORDER BY rp.[id]
) reportParent
WHERE src.[] = 1
AND (@TargetRole IS NULL OR src.[] = @TargetRole)
AND (src.[path] = @SourcePath OR src.[componet] = @SourceComponent OR src.[title] = N'序检收检')
AND NOT EXISTS (
SELECT 1
FROM [dbo].[_二级菜单] existing
WHERE existing.[] = src.[]
AND (existing.[path] = @Path OR existing.[componet] = @Component OR existing.[title] = @Title)
)
)
INSERT INTO [dbo].[_二级菜单]
([pid], [path], [componet], [redirect], [name], [title], [icon], [], [])
SELECT
[pid],
@Path,
@Component,
NULL,
@Name,
@Title,
[icon],
[],
1
FROM SourceRows;
END
ELSE
BEGIN
;WITH SourceRows AS (
SELECT
ROW_NUMBER() OVER (ORDER BY src.[], src.[id]) AS rn,
src.[],
COALESCE(reportParent.[id], src.[pid]) AS [pid],
src.[icon]
FROM [dbo].[_二级菜单] src
OUTER APPLY (
SELECT TOP (1) rp.[id]
FROM [dbo].[_二级菜单] rp
WHERE rp.[] = src.[]
AND rp.[] = 1
AND rp.[title] = N'质量报表'
ORDER BY rp.[id]
) reportParent
WHERE src.[] = 1
AND (@TargetRole IS NULL OR src.[] = @TargetRole)
AND (src.[path] = @SourcePath OR src.[componet] = @SourceComponent OR src.[title] = N'序检收检')
AND NOT EXISTS (
SELECT 1
FROM [dbo].[_二级菜单] existing
WHERE existing.[] = src.[]
AND (existing.[path] = @Path OR existing.[componet] = @Component OR existing.[title] = @Title)
)
),
BaseId AS (
SELECT ISNULL(MAX([id]), 0) AS maxId
FROM [dbo].[_二级菜单]
)
INSERT INTO [dbo].[_二级菜单]
([id], [pid], [path], [componet], [redirect], [name], [title], [icon], [], [])
SELECT
BaseId.maxId + SourceRows.rn,
SourceRows.[pid],
@Path,
@Component,
NULL,
@Name,
@Title,
SourceRows.[icon],
SourceRows.[],
1
FROM SourceRows
CROSS JOIN BaseId;
END;
UPDATE [dbo].[_二级菜单]
SET
[path] = @Path,
[componet] = @Component,
[name] = @Name,
[title] = @Title,
[] = [id],
[] = 1
WHERE [title] = @Title OR [componet] = @Component;
SELECT [id], [pid], [path], [componet], [name], [title], [icon], [], []
FROM [dbo].[_二级菜单]
WHERE [path] = @Path OR [componet] = @Component OR [title] = @Title
ORDER BY [], [id];

View File

@@ -0,0 +1,212 @@
USE [YL_MESDB]
GO
IF OBJECT_ID(N'dbo.生产管理_手续确认报表记录', N'U') IS NULL
BEGIN
CREATE TABLE [dbo].[_手续确认报表记录] (
[AID] bigint IDENTITY(1,1) NOT NULL CONSTRAINT [PK_生产管理_手续确认报表记录] PRIMARY KEY,
[TaskAID] bigint NOT NULL,
[] int NULL,
[] int NOT NULL CONSTRAINT [DF_生产管理_手续确认报表记录_手续确认] DEFAULT (1),
[] nvarchar(50) NULL,
[] datetime NOT NULL CONSTRAINT [DF_生产管理_手续确认报表记录_确认时间] DEFAULT (GETDATE()),
[] nvarchar(500) NULL
);
CREATE UNIQUE INDEX [UX_生产管理_手续确认报表记录_TaskAID]
ON [dbo].[_手续确认报表记录] ([TaskAID]);
END
GO
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].[_手续确认报表_查询]
@TaskAID int = -1,
@ int = -1,
@ nvarchar(50) = N'',
@ nvarchar(50) = N'',
@_Start nvarchar(50) = N'',
@_End nvarchar(50) = N'',
@ int = -1,
@ nvarchar(50) = N'',
@ nvarchar(50) = N'',
@ nvarchar(50) = N''
AS
BEGIN
SET NOCOUNT ON;
SELECT TOP (500)
main.TaskAID,
main.[] AS ,
main.,
main.,
main.,
main.,
main.[],
main.[],
main.[],
main.[] AS ,
main.[] AS ,
CASE WHEN ISNULL(main.[], 0) = 1 THEN N'加急' ELSE N'' END AS [],
main.[] AS [],
main.[],
main.[],
main.[],
main.[],
main.[],
ISNULL(main.[], 0) AS ,
main.[] AS ,
main.[] AS ,
main.[] AS ,
main.[] AS ,
ISNULL(main.[], 0) AS ,
ISNULL(main.[], 0) AS ,
ISNULL(main.[], 0) AS ,
ISNULL(main.[], 0) AS ,
main.[],
main.[],
CASE
WHEN ISNULL(main., 0) = 1 THEN N''
WHEN ISNULL(main., 0) = 0 THEN N''
ELSE N''
END AS [],
CASE
WHEN ISNULL(main., 0) = 1 THEN N'发料齐套'
WHEN ISNULL(main., 0) = 2 THEN N'发料缺件'
ELSE N''
END AS [],
CASE
WHEN ISNULL(main., 0) = 1 THEN N'已拣配'
WHEN ISNULL(main., 0) = 0 THEN N'未拣配'
ELSE N''
END AS [],
CASE
WHEN ISNULL(main., 0) = 4 THEN N'已完成'
WHEN ISNULL(main., 0) = 2 THEN N'已开工'
WHEN ISNULL(main., 0) = 0 THEN N'待执行'
WHEN ISNULL(main., 0) = 1 THEN N'可执行'
ELSE N''
END AS [],
CASE
WHEN ISNULL(main., 0) = 2 THEN N'辅助开始'
WHEN ISNULL(main., 0) = 3 THEN N'辅助结束'
WHEN ISNULL(main., 0) = 4 THEN N'开始加工'
WHEN ISNULL(main., 0) = 5 THEN N'暂停'
WHEN ISNULL(main., 0) = 6 THEN N'报工'
ELSE N''
END AS [],
ISNULL(main., 0) AS ,
CASE WHEN ISNULL(main.[], -1) = 1 THEN N'OK' WHEN ISNULL(main.[], -1) = 0 THEN N'NG' ELSE N'' END AS [],
CASE WHEN ISNULL(main.[], -1) = 1 THEN N'OK' WHEN ISNULL(main.[], -1) = 0 THEN N'NG' ELSE N'' END AS [],
next_task.[] AS ,
ISNULL(prev_quality., 0) AS ,
second_worker.,
CASE WHEN confirm.TaskAID IS NULL THEN N'未完成' ELSE N'已完成' END AS ,
confirm. AS ,
confirm. AS
FROM [dbo].[View_生产订单_MES] AS main
OUTER APPLY (
SELECT TOP (1) next_task.[]
FROM [dbo].[View_生产订单_MES] AS next_task
WHERE next_task.[] = main.[]
AND next_task.[] = main.[] + 1
AND next_task.[] = 1
ORDER BY next_task.[]
) AS next_task
OUTER APPLY (
SELECT ISNULL(SUM(ISNULL(a., 0)), 0) AS
FROM [dbo].[YL_质量检验_质检记录] AS a
INNER JOIN [dbo].[MES_接口_生产计划_生产任务] AS b ON a.TaskAID = b.AID
WHERE b. = main.[]
AND b. = main.[] - 1
AND a. = 6
) AS prev_quality
OUTER APPLY (
SELECT STRING_AGG(a.Personnel_Name, N',') AS
FROM [dbo].[_人员信息] AS a
WHERE EXISTS (
SELECT 1
FROM STRING_SPLIT(ISNULL(main., N''), N',') AS ids
WHERE LTRIM(RTRIM(ids.value)) = CAST(a.Personnel_Number AS varchar(50))
)
) AS second_worker
LEFT JOIN [dbo].[_手续确认报表记录] AS confirm ON confirm.TaskAID = main.TaskAID
WHERE main.[] = 1
AND ISNULL(main.[], N'') <> N'外协'
AND ISNULL(main.[], N'') LIKE N'%装配%'
AND confirm.TaskAID IS NULL
AND ISNULL(main.[], 0) <> 1
AND ISNULL(main.[], 0) <= 0
AND ISNULL(main.[], N'') NOT LIKE N'%取消%'
AND ISNULL(main.[], N'') NOT LIKE N'%关闭%'
AND ISNULL(main.[], N'') = N''
AND (@ <= 0 OR main.[] = @)
AND (@ = N'' OR main.[] = @)
AND (@ = N'' OR main.[] LIKE N'%' + @ + N'%')
AND (@TaskAID <= 0 OR main.[TaskAID] = @TaskAID)
AND (@ = N'' OR main.[] LIKE N'%' + @ + N'%')
AND (@ = N'' OR main.[] LIKE N'%' + @ + N'%')
AND (@_Start = N'' OR main.[] >= TRY_CONVERT(datetime, @_Start))
AND (@_End = N'' OR main.[] <= TRY_CONVERT(datetime, @_End))
AND (@ = N'' OR main.[] IN (SELECT LTRIM(RTRIM(value)) FROM STRING_SPLIT(@, N',')))
AND (
@ IS NULL
OR @ = -1
OR @ = 10
OR ISNULL(main., 0) = @
)
ORDER BY
CASE WHEN ISNULL(main.[], 0) = 1 THEN 0 ELSE 1 END,
CASE WHEN ISNULL(main., 0) = 1 THEN 0 ELSE 1 END,
main.[],
main.[],
main.[];
END
GO
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].[_手续确认报表_确认]
@TaskAID bigint,
@ int = NULL,
@ nvarchar(50) = N'',
@ nvarchar(500) = N''
AS
BEGIN
SET NOCOUNT ON;
IF @TaskAID IS NULL OR @TaskAID <= 0
BEGIN
SELECT 0 AS result, N'TaskAID不能为空' AS msg;
RETURN;
END;
IF EXISTS (SELECT 1 FROM [dbo].[_手续确认报表记录] WHERE TaskAID = @TaskAID)
BEGIN
UPDATE [dbo].[_手续确认报表记录]
SET
[] = 1,
[] = @,
[] = GETDATE(),
[] = @
WHERE TaskAID = @TaskAID;
END
ELSE
BEGIN
INSERT INTO [dbo].[_手续确认报表记录]
([TaskAID], [], [], [], [], [])
VALUES
(@TaskAID, @, 1, @, GETDATE(), @);
END;
SELECT 1 AS result, N'确认成功' AS msg;
END
GO

View File

@@ -0,0 +1,132 @@
USE [YL_MESDB]
GO
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(100) = N'',
@ nvarchar(100) = N'',
@ nvarchar(100) = N'',
@ nvarchar(100) = N'',
@_Start nvarchar(20) = N'',
@_End nvarchar(20) = N'',
@_Start nvarchar(20) = N'',
@_End nvarchar(20) = N'',
@ nvarchar(10) = N'',
@ nvarchar(50) = N'',
@ nvarchar(50) = N'',
@ nvarchar(50) = N''
AS
BEGIN
SET NOCOUNT ON;
;WITH QualitySummary AS (
SELECT
TaskAID,
SUM(ISNULL(, 0)) AS ,
SUM(ISNULL(, 0)) AS ,
SUM(ISNULL(, 0)) AS ,
MAX() AS ,
MAX() AS ,
MAX() AS
FROM [dbo].[YL_质量检验_质检记录]
WHERE = 6
GROUP BY TaskAID
),
OperationSummary AS (
SELECT
TaskAID,
,
,
,
,
SUM(ISNULL(, 0)) AS ,
MAX() AS
FROM [dbo].[YL_加工中心_操作记录表]
WHERE ISNULL(, 0) IN (3, 6)
AND TaskAID IS NOT NULL
AND IS NOT NULL
GROUP BY
TaskAID,
,
,
,
)
SELECT TOP (500)
o.TaskAID AS TaskAID,
o. AS ,
v.,
o. AS ,
o. AS ,
v. AS ,
o. AS ,
CAST(N'' AS nvarchar(100)) AS ,
CAST(N'' AS nvarchar(100)) AS ,
v.,
o. AS ,
ISNULL(v., 0) AS ,
ISNULL(v., 0) AS ,
ISNULL(q., 0) AS ,
ISNULL(q., 0) AS ,
ISNULL(q., 0) AS ,
ISNULL(q., N'') AS ,
ISNULL(CONVERT(nvarchar(19), q., 120), N'') AS ,
ISNULL(q., N'') AS ,
CONVERT(nvarchar(19), o., 120) AS ,
DATEDIFF(DAY, CONVERT(date, o.), CONVERT(date, GETDATE())) AS ,
CASE
WHEN q.TaskAID IS NULL THEN 0
WHEN q. > 0 AND q. = 0 THEN 1
WHEN q. > 0 THEN 2
ELSE 0
END AS
FROM OperationSummary AS o
LEFT JOIN QualitySummary AS q ON o.TaskAID = q.TaskAID
LEFT JOIN [dbo].[View_生产订单全部] AS v ON o.TaskAID = v.TaskAID
WHERE ISNULL(v., N'') = N''
AND ISNULL(o., 0) > ISNULL(q., 0)
AND DATEDIFF(DAY, CONVERT(date, o.), CONVERT(date, GETDATE())) > 2
AND (@ = N'' OR o. = @)
AND (@ = N'' OR v. LIKE N'%' + @ + N'%')
AND (@ = N'' OR o. LIKE N'%' + @ + N'%')
AND (@ = N'' OR o. LIKE N'%' + @ + N'%')
AND (
@_Start = N''
OR CONVERT(date, o.) >= TRY_CONVERT(date, @_Start)
)
AND (
@_End = N''
OR CONVERT(date, o.) <= TRY_CONVERT(date, @_End)
)
AND (
@_Start = N''
OR CONVERT(date, q.) >= TRY_CONVERT(date, @_Start)
)
AND (
@_End = N''
OR CONVERT(date, q.) <= TRY_CONVERT(date, @_End)
)
AND (
@ = N''
OR (@ = N'1' AND ISNULL(q., 0) > 0 AND ISNULL(q., 0) = 0)
OR (@ = N'0' AND ISNULL(q., 0) > 0)
)
AND (@ = N'' OR ISNULL(q., N'') LIKE N'%' + @ + N'%')
AND (
@ = N''
OR @ = N'0'
OR (@ = N'1' AND ISNULL(v., N'') NOT LIKE N'%装配%')
OR (@ = N'2' AND ISNULL(v., N'') LIKE N'%装配%')
)
ORDER BY
ISNULL(v., 0) DESC,
DATEDIFF(DAY, CONVERT(date, o.), CONVERT(date, GETDATE())) DESC,
o. ASC,
o. DESC;
END
GO

View File

@@ -0,0 +1,173 @@
USE [YL_MESDB]
GO
ALTER PROCEDURE [dbo].[_质检明细_查询]
@ nvarchar(4000) = '10',
@ datetime = NULL,
@ datetime = NULL,
@ nvarchar(4000) = '0',
@ nvarchar(4000) = '0',
@ nvarchar(4000) = '0',
@ nvarchar(4000) = '0',
@PageCurrent int = 1,
@PageSize int = 20,
@PageCount int OUTPUT,
@ItemCount int OUTPUT,
@ nvarchar(10) = NULL
AS
BEGIN
SET NOCOUNT ON;
DECLARE @tbname sysname = ' [dbo].[View_质检明细] '
DECLARE @fieldkey sysname = 'QT_AID'
DECLARE @where nvarchar(4000)
DECLARE @fieldshow nvarchar(1000)
DECLARE @fieldOrder nvarchar(1000) = ' 检测时间 DESC, QT_AID DESC '
SET @where = ' (1=1) '
IF @ = '10'
SET @where = @where + ' AND (1=1) '
ELSE IF @ = '0'
SET @where = @where + ' AND 质检类型 = ''收检'' '
ELSE IF @ = '1'
SET @where = @where + ' AND 质检类型 = ''终检'' '
ELSE IF @ = '2'
SET @where = @where + ' AND 质检类型 = ''来料检验'' '
ELSE IF @ = '3'
SET @where = @where + ' AND 质检类型 = ''退库检验'' '
IF @ <> '0'
SET @where = @where + ' AND 计划号 LIKE ''%' + @ + '%'' '
--IF @ <> '0'
-- SET @where = @where + ' AND 内部合同号 LIKE ''%' + @合同号 + '%'' '
IF @ <> '0'
SET @where = @where + ' AND 零件编码 LIKE ''%' + @ + '%'' '
IF @ <> '0'
SET @where = @where + ' AND 零件名称 LIKE ''%' + @ + '%'' '
IF @ = '1'
SET @where = @where + ' AND ISNULL(放行数量, 0) > 0 '
ELSE IF @ = '0'
SET @where = @where + ' AND ISNULL(放行数量, 0) <= 0 '
IF @ IS NOT NULL
SET @where = @where + ' AND 检测时间 >= ''' + CONVERT(nvarchar(30), @, 120) + ''' '
IF @ IS NOT NULL
SET @where = @where + ' AND 检测时间 <= ''' + CONVERT(nvarchar(30), @, 120) + ''' '
SET @fieldshow = '
[QT_AID]
,[质检类型]
,[零件编码]
,[零件名称]
,[内部合同号]
,[计划号]
,[工序名称]
,[检验数量]
,[合格数]
,[不合格数]
,[放行数量]
,[检测人]
,[检测时间]
,[检测说明]
,[工位名称]
,[订单类型]'
EXEC [dbo].[sp_xt_pagesplit]
@tbname,
@fieldkey,
@where,
@fieldshow,
@fieldOrder,
@PageCurrent,
@PageSize,
@PageCount OUTPUT,
@ItemCount OUTPUT
END
GO
ALTER PROCEDURE [dbo].[_质检明细_导出]
@ nvarchar(4000) = '10',
@ datetime = NULL,
@ datetime = NULL,
@ nvarchar(4000) = '0',
@ nvarchar(4000) = '0',
@ nvarchar(4000) = '0',
@ nvarchar(4000) = '0',
@ nvarchar(10) = NULL
AS
BEGIN
SET NOCOUNT ON;
SELECT '质检明细_' + REPLACE(REPLACE(REPLACE(CONVERT(NVARCHAR(19), GETDATE(), 21), ':', ''), '-', ''), ' ', '-') AS tablename, '15' AS tabletype
SELECT 256*12 AS , 256*40 AS , 256*20 AS , 256*12 AS , 256*12 AS ,
256*15 AS , 256*15 AS , 256*10 AS , 256*25 AS , 256*12 AS ,
256*12 AS , 256*10 AS , 256*20 AS , 256*20 AS
SELECT 0 AS , 0 AS , 0 AS , 0 AS , 0 AS ,
0 AS , 0 AS , 0 AS , 0 AS , 0 AS ,
0 AS , 0 AS , 0 AS , 0 AS
DECLARE @where nvarchar(max) = ' where '
DECLARE @selStr nvarchar(max) =
'SELECT
[质检类型]
,[零件编码]
,[零件名称]
,[内部合同号]
,[计划号]
,[工序名称]
,[检验数量]
,[合格数]
,[不合格数]
,[放行数量]
,[检测人]
,[工位名称]
,[检测时间]
,[检测说明]
FROM [dbo].[View_质检明细]'
IF @ = '10'
SET @where = @where + ' (1=1) '
ELSE IF @ = '0'
SET @where = @where + ' AND 质检类型 = ''收检'' '
ELSE IF @ = '1'
SET @where = @where + ' AND 质检类型 = ''终检'' '
ELSE IF @ = '2'
SET @where = @where + ' AND 质检类型 = ''来料检验'' '
ELSE IF @ = '3'
SET @where = @where + ' AND 质检类型 = ''退库检验'' '
IF @ <> '0'
SET @where = @where + ' AND 计划号 LIKE ''%' + @ + '%'' '
--IF @ <> '0'
-- SET @where = @where + ' AND 内部合同号 LIKE ''%' + @合同号 + '%'' '
IF @ <> '0'
SET @where = @where + ' AND 零件编码 LIKE ''%' + @ + '%'' '
IF @ <> '0'
SET @where = @where + ' AND 零件名称 LIKE ''%' + @ + '%'' '
IF @ = '1'
SET @where = @where + ' AND ISNULL(放行数量, 0) > 0 '
ELSE IF @ = '0'
SET @where = @where + ' AND ISNULL(放行数量, 0) <= 0 '
IF @ IS NOT NULL
SET @where = @where + ' AND 检测时间 >= ''' + CONVERT(nvarchar(30), @, 120) + ''' '
IF @ IS NOT NULL
SET @where = @where + ' AND 检测时间 <= ''' + CONVERT(nvarchar(30), @, 120) + ''' '
SET @selStr = @selStr + @where + ' ORDER BY 检测时间 DESC'
EXEC sp_executesql @selStr
END
GO