更新装配、精工车间、技术中心、仓储模块,新增工序工价、生产审核、三楼仓库可视化等功能及文档SQL
This commit is contained in:
381
sql/机加工MES_加工完成整修审核_查询审核.sql
Normal file
381
sql/机加工MES_加工完成整修审核_查询审核.sql
Normal file
@@ -0,0 +1,381 @@
|
||||
-- 生产完成审核查询与审核处理 修改人:Ld 修改时间:2026-07-02 13:57:18;
|
||||
IF OBJECT_ID(N'[dbo].[机加工MES_加工完成整修审核_查询数据]', N'P') IS NOT NULL
|
||||
DROP PROCEDURE [dbo].[机加工MES_加工完成整修审核_查询数据];
|
||||
GO
|
||||
|
||||
CREATE PROCEDURE [dbo].[机加工MES_加工完成整修审核_查询数据]
|
||||
@审核状态_check INT = 0,
|
||||
@审核状态 NVARCHAR(20) = N'',
|
||||
@审核类型_check INT = 0,
|
||||
@审核类型 NVARCHAR(50) = N'',
|
||||
@操作者_check INT = 0,
|
||||
@操作者 NVARCHAR(100) = N'',
|
||||
@时间_check INT = 0,
|
||||
@开始时间 NVARCHAR(20) = N'',
|
||||
@结束时间 NVARCHAR(20) = N'',
|
||||
@PageCurrent INT = 1,
|
||||
@PageSize INT = 100
|
||||
AS
|
||||
BEGIN
|
||||
SET NOCOUNT ON;
|
||||
|
||||
IF @PageCurrent IS NULL OR @PageCurrent < 1 SET @PageCurrent = 1;
|
||||
IF @PageSize IS NULL OR @PageSize < 1 SET @PageSize = 100;
|
||||
|
||||
;WITH AuditData AS (
|
||||
SELECT
|
||||
ROW_NUMBER() OVER (
|
||||
ORDER BY
|
||||
CASE WHEN A.审核状态 = N'待审核' THEN 0 ELSE 1 END,
|
||||
A.提交时间 DESC,
|
||||
A.id DESC
|
||||
) AS RowNum,
|
||||
A.id,
|
||||
A.审核类型,
|
||||
A.审核状态,
|
||||
V.订单号,
|
||||
V.产品名称,
|
||||
V.零件名称,
|
||||
V.零件图号,
|
||||
V.工序,
|
||||
V.工艺计划流水号,
|
||||
V.数量 AS 投产数量,
|
||||
V.已完成数,
|
||||
V.工序顺序,
|
||||
V.物料编码,
|
||||
V.材料,
|
||||
A.工序流水号,
|
||||
A.工作者考勤编号,
|
||||
工作者.姓名 AS 工作者姓名,
|
||||
A.完成数量,
|
||||
A.完成类型,
|
||||
A.录工票人员编号,
|
||||
录工票人员.姓名 AS 录工票人员姓名,
|
||||
A.工位号,
|
||||
ISNULL(SB.设备名称, A.设备名) AS 工位设备名称,
|
||||
A.备注,
|
||||
A.剩余工时,
|
||||
A.剩余数量,
|
||||
A.设备号,
|
||||
A.设备名,
|
||||
A.操作者,
|
||||
ISNULL(操作者人员.姓名, A.操作者) AS 操作者姓名,
|
||||
A.整修状态,
|
||||
A.整修记录id,
|
||||
A.整修方案,
|
||||
CONVERT(VARCHAR(19), A.开始时间, 120) AS 开始时间,
|
||||
CONVERT(VARCHAR(19), A.结束时间, 120) AS 结束时间,
|
||||
CONVERT(VARCHAR(19), A.提交时间, 120) AS 提交时间,
|
||||
A.审核人,
|
||||
审核人员.姓名 AS 审核人姓名,
|
||||
CONVERT(VARCHAR(19), A.审核时间, 120) AS 审核时间,
|
||||
A.审核意见,
|
||||
A.修改人,
|
||||
CONVERT(VARCHAR(19), A.修改时间, 120) AS 修改时间
|
||||
FROM [dbo].[MES_机加工MES_加工完成整修审核表] AS A
|
||||
LEFT JOIN [dbo].[车间生产管理_零件工序_视图] AS V
|
||||
ON A.工序流水号 = V.工序流水号
|
||||
LEFT JOIN [dbo].[人事档案管理_人员名单] AS 工作者
|
||||
ON A.工作者考勤编号 = 工作者.考勤编号
|
||||
LEFT JOIN [dbo].[人事档案管理_人员名单] AS 录工票人员
|
||||
ON A.录工票人员编号 = 录工票人员.序号
|
||||
OR A.录工票人员编号 = 录工票人员.人员编号
|
||||
LEFT JOIN [dbo].[人事档案管理_人员名单] AS 操作者人员
|
||||
ON A.操作者 = CONVERT(NVARCHAR(100), 操作者人员.人员编号)
|
||||
OR A.操作者 = CONVERT(NVARCHAR(100), 操作者人员.序号)
|
||||
OR A.操作者 = 操作者人员.姓名
|
||||
LEFT JOIN [dbo].[人事档案管理_人员名单] AS 审核人员
|
||||
ON A.审核人 = CONVERT(NVARCHAR(100), 审核人员.人员编号)
|
||||
OR A.审核人 = CONVERT(NVARCHAR(100), 审核人员.序号)
|
||||
OR A.审核人 = 审核人员.姓名
|
||||
LEFT JOIN [dbo].[基础数据_设备工位点检表] AS SB
|
||||
ON A.工位号 = SB.工位号
|
||||
WHERE (@审核状态_check = 0 OR A.审核状态 = @审核状态)
|
||||
AND (@审核类型_check = 0 OR A.审核类型 = @审核类型)
|
||||
AND (@操作者_check = 0 OR ISNULL(操作者人员.姓名, ISNULL(A.操作者, N'')) LIKE N'%' + @操作者 + N'%')
|
||||
AND (@时间_check = 0 OR CONVERT(DATE, A.提交时间) BETWEEN CONVERT(DATE, @开始时间) AND CONVERT(DATE, @结束时间))
|
||||
)
|
||||
SELECT
|
||||
id,
|
||||
审核类型,
|
||||
审核状态,
|
||||
订单号,
|
||||
产品名称,
|
||||
零件名称,
|
||||
零件图号,
|
||||
工序,
|
||||
工艺计划流水号,
|
||||
投产数量,
|
||||
已完成数,
|
||||
工序顺序,
|
||||
物料编码,
|
||||
材料,
|
||||
工序流水号,
|
||||
工作者考勤编号,
|
||||
工作者姓名,
|
||||
完成数量,
|
||||
完成类型,
|
||||
录工票人员编号,
|
||||
录工票人员姓名,
|
||||
工位号,
|
||||
工位设备名称,
|
||||
备注,
|
||||
剩余工时,
|
||||
剩余数量,
|
||||
设备号,
|
||||
设备名,
|
||||
操作者,
|
||||
操作者姓名,
|
||||
整修状态,
|
||||
整修记录id,
|
||||
整修方案,
|
||||
开始时间,
|
||||
结束时间,
|
||||
提交时间,
|
||||
审核人,
|
||||
审核人姓名,
|
||||
审核时间,
|
||||
审核意见,
|
||||
修改人,
|
||||
修改时间
|
||||
FROM AuditData
|
||||
WHERE RowNum BETWEEN ((@PageCurrent - 1) * @PageSize + 1) AND (@PageCurrent * @PageSize)
|
||||
ORDER BY RowNum;
|
||||
|
||||
SELECT COUNT(1) AS total
|
||||
FROM [dbo].[MES_机加工MES_加工完成整修审核表] AS A
|
||||
LEFT JOIN [dbo].[人事档案管理_人员名单] AS 操作者人员
|
||||
ON A.操作者 = CONVERT(NVARCHAR(100), 操作者人员.人员编号)
|
||||
OR A.操作者 = CONVERT(NVARCHAR(100), 操作者人员.序号)
|
||||
OR A.操作者 = 操作者人员.姓名
|
||||
WHERE (@审核状态_check = 0 OR A.审核状态 = @审核状态)
|
||||
AND (@审核类型_check = 0 OR A.审核类型 = @审核类型)
|
||||
AND (@操作者_check = 0 OR ISNULL(操作者人员.姓名, ISNULL(A.操作者, N'')) LIKE N'%' + @操作者 + N'%')
|
||||
AND (@时间_check = 0 OR CONVERT(DATE, A.提交时间) BETWEEN CONVERT(DATE, @开始时间) AND CONVERT(DATE, @结束时间));
|
||||
END;
|
||||
GO
|
||||
|
||||
-- 生产完成审核状态更新,审核通过时接入原 MES 完工链路 修改人:Ld 修改时间:2026-07-02 14:55:23;
|
||||
IF OBJECT_ID(N'[dbo].[机加工MES_加工完成整修审核_审核数据]', N'P') IS NOT NULL
|
||||
DROP PROCEDURE [dbo].[机加工MES_加工完成整修审核_审核数据];
|
||||
GO
|
||||
|
||||
CREATE PROCEDURE [dbo].[机加工MES_加工完成整修审核_审核数据]
|
||||
@审核流水号 INT,
|
||||
@审核状态 NVARCHAR(20),
|
||||
@审核人 NVARCHAR(100) = NULL,
|
||||
@审核意见 NVARCHAR(1000) = NULL,
|
||||
@审核完成数量 FLOAT = NULL,
|
||||
@审核加工开始时间 DATETIME = NULL,
|
||||
@审核加工完成时间 DATETIME = NULL,
|
||||
@审核整修开始时间 DATETIME = NULL,
|
||||
@审核整修结束时间 DATETIME = NULL,
|
||||
@审核整修方案 NVARCHAR(1000) = NULL
|
||||
AS
|
||||
BEGIN
|
||||
SET NOCOUNT ON;
|
||||
|
||||
DECLARE @审核类型 NVARCHAR(50);
|
||||
DECLARE @工序流水号 INT;
|
||||
DECLARE @工作者考勤编号 NVARCHAR(50);
|
||||
DECLARE @完成数量 FLOAT;
|
||||
DECLARE @完成类型 INT;
|
||||
DECLARE @录工票人员编号 INT;
|
||||
DECLARE @工位号 NVARCHAR(100);
|
||||
DECLARE @备注 NVARCHAR(500);
|
||||
DECLARE @设备号 NVARCHAR(100);
|
||||
DECLARE @整修记录id INT;
|
||||
DECLARE @整修方案 NVARCHAR(1000);
|
||||
DECLARE @剩余工时 FLOAT;
|
||||
DECLARE @剩余数量 INT;
|
||||
DECLARE @原流程结果 NVARCHAR(100);
|
||||
DECLARE @完成过程流水号 INT;
|
||||
DECLARE @是否本过程开启事务 BIT;
|
||||
DECLARE @原流程返回 TABLE (result NVARCHAR(100));
|
||||
|
||||
IF NOT EXISTS (
|
||||
SELECT 1
|
||||
FROM [dbo].[MES_机加工MES_加工完成整修审核表]
|
||||
WHERE id = @审核流水号
|
||||
AND 审核状态 = N'待审核'
|
||||
)
|
||||
BEGIN
|
||||
SELECT N'0' AS result, N'该审核记录不存在或已审核' AS message;
|
||||
RETURN;
|
||||
END;
|
||||
|
||||
IF @审核状态 NOT IN (N'审核通过', N'审核不通过')
|
||||
BEGIN
|
||||
SELECT N'0' AS result, N'审核状态不正确' AS message;
|
||||
RETURN;
|
||||
END;
|
||||
|
||||
SELECT
|
||||
@审核类型 = 审核类型,
|
||||
@工序流水号 = 工序流水号,
|
||||
@工作者考勤编号 = 工作者考勤编号,
|
||||
@完成数量 = ISNULL(@审核完成数量, 完成数量),
|
||||
@完成类型 = 完成类型,
|
||||
@录工票人员编号 = 录工票人员编号,
|
||||
@工位号 = 工位号,
|
||||
@备注 = 备注,
|
||||
@设备号 = 设备号,
|
||||
@整修记录id = 整修记录id,
|
||||
@整修方案 = ISNULL(@审核整修方案, 整修方案)
|
||||
FROM [dbo].[MES_机加工MES_加工完成整修审核表]
|
||||
WHERE id = @审核流水号
|
||||
AND 审核状态 = N'待审核';
|
||||
|
||||
BEGIN TRY
|
||||
SET @是否本过程开启事务 = CASE WHEN @@TRANCOUNT = 0 THEN 1 ELSE 0 END;
|
||||
IF @是否本过程开启事务 = 1
|
||||
BEGIN
|
||||
BEGIN TRAN;
|
||||
END
|
||||
ELSE
|
||||
BEGIN
|
||||
SAVE TRAN 生产完成审核保存点;
|
||||
END;
|
||||
|
||||
IF @审核状态 = N'审核通过' AND @审核类型 = N'加工完成'
|
||||
BEGIN
|
||||
IF @工序流水号 IS NULL OR @工作者考勤编号 IS NULL OR @完成数量 IS NULL OR @完成类型 IS NULL OR @录工票人员编号 IS NULL
|
||||
BEGIN
|
||||
IF @是否本过程开启事务 = 1 ROLLBACK TRAN ELSE ROLLBACK TRAN 生产完成审核保存点;
|
||||
SELECT N'0' AS result, N'审核记录缺少原 MES 完工必需参数' AS message;
|
||||
RETURN;
|
||||
END;
|
||||
|
||||
IF @完成数量 <= 0 OR @完成数量 <> FLOOR(@完成数量)
|
||||
BEGIN
|
||||
IF @是否本过程开启事务 = 1 ROLLBACK TRAN ELSE ROLLBACK TRAN 生产完成审核保存点;
|
||||
SELECT N'0' AS result, N'完成数量必须为大于 0 的整数' AS message;
|
||||
RETURN;
|
||||
END;
|
||||
|
||||
INSERT INTO @原流程返回(result)
|
||||
EXEC [dbo].[设备管理_零件工序_工序完成过程情况_增加数据]
|
||||
@工序流水号 = @工序流水号,
|
||||
@工作者考勤编号 = @工作者考勤编号,
|
||||
@完成数量 = @完成数量,
|
||||
@完成类型 = @完成类型,
|
||||
@录工票人员编号 = @录工票人员编号,
|
||||
@工位号 = @工位号,
|
||||
@备注 = @备注,
|
||||
@剩余工时 = @剩余工时 OUTPUT,
|
||||
@剩余数量 = @剩余数量 OUTPUT;
|
||||
|
||||
SELECT TOP 1 @原流程结果 = result FROM @原流程返回;
|
||||
|
||||
IF ISNULL(@原流程结果, N'') <> N'成功'
|
||||
BEGIN
|
||||
IF @是否本过程开启事务 = 1 ROLLBACK TRAN ELSE ROLLBACK TRAN 生产完成审核保存点;
|
||||
SELECT N'0' AS result, ISNULL(@原流程结果, N'原 MES 完工流程执行失败') AS message;
|
||||
RETURN;
|
||||
END;
|
||||
|
||||
IF @审核加工完成时间 IS NOT NULL
|
||||
BEGIN
|
||||
SELECT @完成过程流水号 = MAX(完成过程流水号)
|
||||
FROM [dbo].[设备管理_零件工序_工序完成过程情况]
|
||||
WHERE 工序流水号 = @工序流水号
|
||||
AND 录工票人员编号 = @录工票人员编号
|
||||
AND 完成数量 = @完成数量;
|
||||
|
||||
UPDATE [dbo].[设备管理_零件工序_工序完成过程情况]
|
||||
SET 加工开始时间 = ISNULL(@审核加工开始时间, 加工开始时间),
|
||||
加工完成时间 = @审核加工完成时间,
|
||||
完成日期 = CONVERT(DATE, @审核加工完成时间),
|
||||
操作日期 = @审核加工完成时间,
|
||||
修改人员 = CASE WHEN ISNUMERIC(@审核人) = 1 THEN CAST(@审核人 AS INT) ELSE 修改人员 END,
|
||||
修改时间 = GETDATE()
|
||||
WHERE 完成过程流水号 = @完成过程流水号;
|
||||
|
||||
UPDATE [dbo].[车间生产管理工艺_零件工序]
|
||||
SET 完成日期 = CASE WHEN 完成日期 IS NULL OR 完成数量 >= ISNULL(完成数量, 0) THEN @审核加工完成时间 ELSE 完成日期 END
|
||||
WHERE 工序流水号 = @工序流水号;
|
||||
END;
|
||||
|
||||
IF @审核加工开始时间 IS NOT NULL AND @审核加工完成时间 IS NULL
|
||||
BEGIN
|
||||
SELECT @完成过程流水号 = MAX(完成过程流水号)
|
||||
FROM [dbo].[设备管理_零件工序_工序完成过程情况]
|
||||
WHERE 工序流水号 = @工序流水号
|
||||
AND 录工票人员编号 = @录工票人员编号
|
||||
AND 完成数量 = @完成数量;
|
||||
|
||||
UPDATE [dbo].[设备管理_零件工序_工序完成过程情况]
|
||||
SET 加工开始时间 = @审核加工开始时间,
|
||||
修改人员 = CASE WHEN ISNUMERIC(@审核人) = 1 THEN CAST(@审核人 AS INT) ELSE 修改人员 END,
|
||||
修改时间 = GETDATE()
|
||||
WHERE 完成过程流水号 = @完成过程流水号;
|
||||
END;
|
||||
END;
|
||||
|
||||
IF @审核状态 = N'审核通过' AND @审核类型 = N'结束整修'
|
||||
BEGIN
|
||||
IF @整修记录id IS NULL OR @设备号 IS NULL
|
||||
BEGIN
|
||||
IF @是否本过程开启事务 = 1 ROLLBACK TRAN ELSE ROLLBACK TRAN 生产完成审核保存点;
|
||||
SELECT N'0' AS result, N'审核记录缺少整修结束必需参数' AS message;
|
||||
RETURN;
|
||||
END;
|
||||
|
||||
UPDATE [dbo].[设备管理_整修]
|
||||
SET 整修开始时间 = CASE WHEN @审核整修开始时间 IS NULL THEN 整修开始时间 ELSE CONVERT(VARCHAR(20), @审核整修开始时间, 120) END,
|
||||
整修结束时间 = CONVERT(VARCHAR(20), ISNULL(@审核整修结束时间, GETDATE()), 120),
|
||||
整修状态 = N'1',
|
||||
整修方案 = @整修方案
|
||||
WHERE id = @整修记录id
|
||||
AND 设备号 = @设备号;
|
||||
END;
|
||||
|
||||
UPDATE [dbo].[MES_机加工MES_加工完成整修审核表]
|
||||
SET 审核状态 = @审核状态,
|
||||
审核人 = @审核人,
|
||||
审核时间 = GETDATE(),
|
||||
审核意见 = ISNULL(@审核意见, N''),
|
||||
完成数量 = CASE WHEN @审核状态 = N'审核通过' AND @审核类型 = N'加工完成' THEN @完成数量 ELSE 完成数量 END,
|
||||
开始时间 = CASE
|
||||
WHEN @审核状态 = N'审核通过' AND @审核类型 = N'加工完成' AND @审核加工开始时间 IS NOT NULL THEN @审核加工开始时间
|
||||
WHEN @审核状态 = N'审核通过' AND @审核类型 = N'结束整修' AND @审核整修开始时间 IS NOT NULL THEN @审核整修开始时间
|
||||
ELSE 开始时间
|
||||
END,
|
||||
结束时间 = CASE
|
||||
WHEN @审核状态 = N'审核通过' AND @审核类型 = N'加工完成' AND @审核加工完成时间 IS NOT NULL THEN @审核加工完成时间
|
||||
WHEN @审核状态 = N'审核通过' AND @审核类型 = N'结束整修' THEN ISNULL(@审核整修结束时间, GETDATE())
|
||||
ELSE 结束时间
|
||||
END,
|
||||
整修方案 = CASE WHEN @审核状态 = N'审核通过' AND @审核类型 = N'结束整修' THEN @整修方案 ELSE 整修方案 END,
|
||||
剩余工时 = CASE WHEN @审核状态 = N'审核通过' AND @审核类型 = N'加工完成' THEN @剩余工时 ELSE 剩余工时 END,
|
||||
剩余数量 = CASE WHEN @审核状态 = N'审核通过' AND @审核类型 = N'加工完成' THEN @剩余数量 ELSE 剩余数量 END,
|
||||
修改人 = N'Ld',
|
||||
修改时间 = GETDATE()
|
||||
WHERE id = @审核流水号
|
||||
AND 审核状态 = N'待审核';
|
||||
|
||||
IF @是否本过程开启事务 = 1
|
||||
BEGIN
|
||||
COMMIT TRAN;
|
||||
END;
|
||||
END TRY
|
||||
BEGIN CATCH
|
||||
IF @@TRANCOUNT > 0
|
||||
BEGIN
|
||||
IF ISNULL(@是否本过程开启事务, 1) = 1
|
||||
BEGIN
|
||||
ROLLBACK TRAN;
|
||||
END
|
||||
ELSE
|
||||
BEGIN
|
||||
ROLLBACK TRAN 生产完成审核保存点;
|
||||
END;
|
||||
END;
|
||||
|
||||
SELECT N'0' AS result, ERROR_MESSAGE() AS message;
|
||||
RETURN;
|
||||
END CATCH;
|
||||
|
||||
SELECT N'1' AS result;
|
||||
END;
|
||||
GO
|
||||
Reference in New Issue
Block a user