186 lines
6.9 KiB
Transact-SQL
186 lines
6.9 KiB
Transact-SQL
-- 生产审核操作者输入框按人名查询兼容工作者和录工票人员;修改人:Ld 修改时间:2026-07-23 16:08:35;
|
|
ALTER 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.完成类型,
|
|
ISNULL(NULLIF(A.计价方式, N''), N'计件') AS 计价方式,
|
|
CASE WHEN ISNULL(A.单件工价, 0) <> 0 THEN A.单件工价 ELSE ISNULL(priceData.单件工价, 0) END AS 单件工价,
|
|
ISNULL(A.单时工价, 0) AS 单时工价,
|
|
A.录工票人员编号,
|
|
录工票人员.姓名 AS 录工票人员姓名,
|
|
A.工位号,
|
|
ISNULL(SB.设备名称, A.设备名) AS 工位设备名称,
|
|
A.备注,
|
|
A.剩余工时,
|
|
A.剩余数量,
|
|
A.设备号,
|
|
A.设备名,
|
|
A.操作者,
|
|
-- 操作者人名查询兼容操作者、工作者和录工票人员;修改人:Ld 修改时间:2026-07-23 16:08:35;
|
|
COALESCE(操作者人员.姓名, 工作者.姓名, 录工票人员.姓名, 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.工位号
|
|
OUTER APPLY (
|
|
SELECT TOP 1
|
|
CASE
|
|
WHEN ISNULL(price.[单件工价], 0) <> 0 THEN price.[单件工价]
|
|
ELSE ISNULL(price.[最终单价(元/件)], 0)
|
|
END AS 单件工价
|
|
FROM [dbo].[车间生产管理工艺_工序工价] price
|
|
WHERE price.工序流水号 = A.工序流水号
|
|
AND ISNULL(price.是否启用, 1) = 1
|
|
ORDER BY ISNULL(price.生效日期, CONVERT(DATE, '1900-01-01')) DESC, price.修改时间 DESC, price.工价流水号 DESC
|
|
) priceData
|
|
WHERE (@审核状态_check = 0 OR A.审核状态 = @审核状态)
|
|
AND (@审核类型_check = 0 OR A.审核类型 = @审核类型)
|
|
AND (
|
|
@操作者_check = 0
|
|
OR ISNULL(操作者人员.姓名, ISNULL(A.操作者, N'')) LIKE N'%' + @操作者 + N'%'
|
|
OR ISNULL(工作者.姓名, N'') LIKE N'%' + @操作者 + N'%'
|
|
OR ISNULL(录工票人员.姓名, 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.工作者考勤编号 = 工作者.考勤编号
|
|
LEFT JOIN [dbo].[人事档案管理_人员名单] AS 录工票人员
|
|
ON A.录工票人员编号 = 录工票人员.序号
|
|
OR 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'%'
|
|
OR ISNULL(工作者.姓名, N'') LIKE N'%' + @操作者 + N'%'
|
|
OR ISNULL(录工票人员.姓名, N'') LIKE N'%' + @操作者 + N'%'
|
|
)
|
|
AND (@时间_check = 0 OR CONVERT(DATE, A.提交时间) BETWEEN CONVERT(DATE, @开始时间) AND CONVERT(DATE, @结束时间));
|
|
END;
|
|
GO
|