feat: update mes management reports
This commit is contained in:
110
db_backups/add_formality_confirm_report_menu_20260626.sql
Normal file
110
db_backups/add_formality_confirm_report_menu_20260626.sql
Normal 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];
|
||||
123
db_backups/add_punctual_inspection_menu_20260626.sql
Normal file
123
db_backups/add_punctual_inspection_menu_20260626.sql
Normal 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];
|
||||
212
db_backups/create_formality_confirm_report_20260626.sql
Normal file
212
db_backups/create_formality_confirm_report_20260626.sql
Normal 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
|
||||
@@ -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
|
||||
173
db_backups/update_quality_details_release_qty_20260626.sql
Normal file
173
db_backups/update_quality_details_release_qty_20260626.sql
Normal 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
|
||||
Reference in New Issue
Block a user