feat: update MES tracking and timesheet reports

This commit is contained in:
meswork764
2026-06-22 18:07:51 +08:00
parent ab508369c9
commit 20c6d587ad
22 changed files with 3136 additions and 2 deletions

View File

@@ -0,0 +1,188 @@
USE [YL_MESDB]
GO
ALTER PROCEDURE [dbo].[_项目工时_查询_导出]
@ NVARCHAR(50) = NULL,
@ NVARCHAR(50) = NULL,
@ NVARCHAR(100) = NULL,
@ NVARCHAR(50) = NULL,
@ NVARCHAR(50) = NULL,
@ DATE = NULL,
@ DATE = NULL
AS
BEGIN
SET NOCOUNT ON;
SELECT '项目工时统计_' + REPLACE(REPLACE(REPLACE(CONVERT(NVARCHAR(19), GETDATE(), 21), ':', ''), '-', ''), ' ', '-') AS tablename, '15' AS tabletype
SELECT 256*20 AS , 256*20 AS , 256*30 AS , 256*40 AS , 256*15 AS , 256*12 AS ,
256*12 AS , 256*12 AS , 256*12 AS , 256*10 AS , 256*15 AS , 256*15 AS , 256*12 AS '工时(h)'
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 '工时(h)'
SELECT
v. AS ,
v.,
v.,
v.,
v.,
v.,
ISNULL(v., '') AS ,
CASE WHEN v. IS NULL THEN '' WHEN v. = FLOOR(v.) THEN CAST(CAST(v. AS INT) AS VARCHAR(20)) ELSE CAST(CAST(v. AS DECIMAL(10,1)) AS VARCHAR(20)) END AS ,
CASE WHEN v. IS NULL THEN '' WHEN v. = FLOOR(v.) THEN CAST(CAST(v. AS INT) AS VARCHAR(20)) ELSE CAST(CAST(v. AS DECIMAL(10,1)) AS VARCHAR(20)) END AS ,
CASE WHEN v. IN ('报工', '辅助结束') THEN CAST(v. AS VARCHAR(20)) ELSE '0' END AS ,
CONVERT(VARCHAR(10), v., 120) AS ,
CONVERT(VARCHAR(10), v., 120) AS ,
CAST(CAST(v. / 60.0 / 60.0 AS DECIMAL(10,2)) AS VARCHAR(20)) AS '工时(h)'
FROM View_生产工时视图 v
WHERE (@ IS NULL OR @ = '' OR >= @)
AND (@ IS NULL OR @ = '' OR <= @)
AND (@ IS NULL OR @ = '' OR v. LIKE '%' + @ + '%')
AND (@ IS NULL OR @ = '' OR v. LIKE '%' + @ + '%')
AND (@ IS NULL OR @ = '' OR v. LIKE '%' + @ + '%')
AND (@ IS NULL OR @ = '' OR v. LIKE '%' + @ + '%')
AND (@ IS NULL OR @ = '' OR v. LIKE '%' + @ + '%')
ORDER BY v., v., v., v., v.
END
GO
ALTER PROCEDURE [dbo].[_作业者工时_查询_导出]
@ NVARCHAR(50) = NULL,
@ NVARCHAR(50) = NULL,
@ NVARCHAR(100) = NULL,
@ NVARCHAR(50) = NULL,
@ NVARCHAR(50) = NULL,
@ DATE = NULL,
@ DATE = 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*15 AS , 256*20 AS , 256*12 AS , 256*40 AS ,
256*25 AS , 256*15 AS , 256*12 AS , 256*10 AS , 256*20 AS , 256*20 AS , 256*12 AS '工时(h)'
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 '工时(h)'
SELECT
,
CONVERT(VARCHAR(10), , 120) AS ,
ISNULL(, '') AS ,
ISNULL(, '') AS ,
ISNULL(, '') AS ,
ISNULL(, '') AS ,
ISNULL(, '') AS ,
ISNULL(, '') AS ,
CASE WHEN IN ('报工', '辅助结束', '加班', '异常', '开始加工') THEN CAST( AS VARCHAR(20)) ELSE '0' END AS ,
CONVERT(VARCHAR(19), , 120) AS ,
CONVERT(VARCHAR(19), , 120) AS ,
CAST(CAST( / 60.0 / 60.0 AS DECIMAL(10,2)) AS VARCHAR(20)) AS '工时(h)'
FROM [dbo].[View_生产工时视图]
WHERE (@ IS NULL OR @ = '' OR >= @)
AND (@ IS NULL OR @ = '' OR <= @)
AND IS NOT NULL AND != ''
AND (@ IS NULL OR @ = '' OR LIKE '%' + @ + '%')
AND (@ IS NULL OR @ = '' OR LIKE '%' + @ + '%')
AND (@ IS NULL OR @ = '' OR LIKE '%' + @ + '%')
AND (@ IS NULL OR @ = '' OR LIKE '%' + @ + '%')
AND (@ IS NULL OR @ = '' OR LIKE '%' + @ + '%')
AND ISNULL(, 0) != -1
ORDER BY ,
END
GO
ALTER PROCEDURE [dbo].[_任务工时_查询_导出]
@ NVARCHAR(50) = NULL,
@ NVARCHAR(50) = NULL,
@ NVARCHAR(100) = NULL,
@ NVARCHAR(50) = NULL,
@ NVARCHAR(50) = NULL,
@ DATE = NULL,
@ DATE = NULL
AS
BEGIN
SET NOCOUNT ON;
SELECT '任务工时统计_' + REPLACE(REPLACE(REPLACE(CONVERT(NVARCHAR(19), GETDATE(), 21), ':', ''), '-', ''), ' ', '-') AS tablename, '15' AS tabletype
SELECT 256*20 AS , 256*12 AS , 256*40 AS , 256*25 AS , 256*15 AS ,
256*12 AS , 256*12 AS , 256*12 AS , 256*12 AS , 256*10 AS , 256*20 AS , 256*20 AS , 256*12 AS '工时(h)'
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 '工时(h)'
SELECT
ISNULL(, '') AS ,
ISNULL(, '') AS ,
ISNULL(, '') AS ,
ISNULL(, '') AS ,
ISNULL(, '') AS ,
ISNULL(, '') AS ,
ISNULL(, '') AS ,
CASE WHEN IS NULL THEN '' WHEN = FLOOR() THEN CAST(CAST( AS INT) AS VARCHAR(20)) ELSE CAST(CAST( AS DECIMAL(10,1)) AS VARCHAR(20)) END AS ,
CASE WHEN IS NULL THEN '' WHEN = FLOOR() THEN CAST(CAST( AS INT) AS VARCHAR(20)) ELSE CAST(CAST( AS DECIMAL(10,1)) AS VARCHAR(20)) END AS ,
CASE WHEN IN ('报工', '辅助结束') THEN CAST( AS VARCHAR(20)) ELSE '0' END AS ,
CONVERT(VARCHAR(19), , 120) AS ,
CONVERT(VARCHAR(19), , 120) AS ,
CAST(CAST( / 60.0 / 60.0 AS DECIMAL(10,2)) AS VARCHAR(20)) AS '工时(h)'
FROM View_生产工时视图
WHERE (@ IS NULL OR @ = '' OR >= @)
AND (@ IS NULL OR @ = '' OR <= @)
AND (@ IS NULL OR @ = '' OR LIKE '%' + @ + '%')
AND (@ IS NULL OR @ = '' OR LIKE '%' + @ + '%')
AND (@ IS NULL OR @ = '' OR LIKE '%' + @ + '%')
AND (@ IS NULL OR @ = '' OR LIKE '%' + @ + '%')
AND (@ IS NULL OR @ = '' OR LIKE '%' + @ + '%')
ORDER BY , , , ,
END
GO
ALTER PROCEDURE [dbo].[_设备工时_查询_导出]
@ NVARCHAR(50) = NULL,
@ NVARCHAR(50) = NULL,
@ NVARCHAR(100) = NULL,
@ NVARCHAR(50) = NULL,
@ NVARCHAR(50) = NULL,
@ DATE = NULL,
@ DATE = 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*15 AS , 256*20 AS , 256*12 AS , 256*40 AS ,
256*25 AS , 256*15 AS , 256*12 AS , 256*10 AS , 256*20 AS , 256*20 AS , 256*12 AS '工时(h)'
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 '工时(h)'
SELECT
,
CONVERT(VARCHAR(10), , 120) AS ,
ISNULL(, '') AS ,
ISNULL(, '') AS ,
ISNULL(, '') AS ,
ISNULL(, '') AS ,
ISNULL(, '') AS ,
ISNULL(, '') AS ,
CASE WHEN IN ('报工', '辅助结束') THEN CAST( AS VARCHAR(20)) ELSE '0' END AS ,
CONVERT(VARCHAR(19), , 120) AS ,
CONVERT(VARCHAR(19), , 120) AS ,
CAST(CAST( / 60.0 / 60.0 AS DECIMAL(10,2)) AS VARCHAR(20)) AS '工时(h)'
FROM View_生产工时视图
WHERE (@ IS NULL OR @ = '' OR >= @)
AND (@ IS NULL OR @ = '' OR <= @)
AND IS NOT NULL AND != ''
AND (@ IS NULL OR @ = '' OR LIKE '%' + @ + '%')
AND (@ IS NULL OR @ = '' OR LIKE '%' + @ + '%')
AND (@ IS NULL OR @ = '' OR LIKE '%' + @ + '%')
AND (@ IS NULL OR @ = '' OR LIKE '%' + @ + '%')
AND (@ IS NULL OR @ = '' OR LIKE '%' + @ + '%')
AND ISNULL(, 0) = -1
ORDER BY ,
END
GO

View File

@@ -0,0 +1,492 @@
USE [YL_MESDB]
GO
ALTER PROCEDURE [dbo].[_项目工时_查询]
@ NVARCHAR(50) = NULL,
@ NVARCHAR(50) = NULL,
@ NVARCHAR(100) = NULL,
@ NVARCHAR(50) = NULL,
@ NVARCHAR(50) = NULL,
@ DATE = NULL,
@ DATE = NULL
AS
BEGIN
SET NOCOUNT ON;
;WITH AS (
SELECT
v. AS ,
v.,
v.,
MAX(v.) AS ,
MAX(v.) AS ,
SUM(CASE WHEN v. IN ('报工', '辅助结束') THEN v. ELSE 0 END) AS ,
MIN(CONVERT(VARCHAR(10), v., 120)) AS ,
MAX(CONVERT(VARCHAR(10), v., 120)) AS ,
CAST(SUM(v.) / 60.0 / 60.0 AS DECIMAL(10,1)) AS
FROM View_生产工时视图 v
WHERE (@ IS NULL OR @ = '' OR >= @)
AND (@ IS NULL OR @ = '' OR <= @)
AND (@ IS NULL OR @ = '' OR v. LIKE '%' + @ + '%')
AND (@ IS NULL OR @ = '' OR v. LIKE '%' + @ + '%')
AND (@ IS NULL OR @ = '' OR v. LIKE '%' + @ + '%')
AND (@ IS NULL OR @ = '' OR v. LIKE '%' + @ + '%')
AND (@ IS NULL OR @ = '' OR v. LIKE '%' + @ + '%')
GROUP BY v., v., v.
),
AS (
SELECT
v. AS ,
v.,
v.,
v.,
MAX(v.) AS ,
v.,
SUM(CASE WHEN v. IN ('报工', '辅助结束') THEN v. ELSE 0 END) AS ,
CAST(SUM(v.) / 60.0 / 60.0 AS DECIMAL(10,1)) AS ,
MIN(CONVERT(VARCHAR(10), v., 120)) AS ,
MAX(CONVERT(VARCHAR(10), v., 120)) AS
FROM View_生产工时视图 v
WHERE (@ IS NULL OR @ = '' OR >= @)
AND (@ IS NULL OR @ = '' OR <= @)
AND (@ IS NULL OR @ = '' OR v. LIKE '%' + @ + '%')
AND (@ IS NULL OR @ = '' OR v. LIKE '%' + @ + '%')
AND (@ IS NULL OR @ = '' OR v. LIKE '%' + @ + '%')
AND (@ IS NULL OR @ = '' OR v. LIKE '%' + @ + '%')
AND (@ IS NULL OR @ = '' OR v. LIKE '%' + @ + '%')
GROUP BY v., v., v., v., v.
)
SELECT
1 AS [Level],
AS contractNo,
AS materialDesc,
AS materialCode,
'' AS processName,
'' AS operator,
'' AS ,
CASE WHEN = FLOOR() THEN CAST(CAST( AS INT) AS VARCHAR(20)) ELSE CAST(CAST( AS DECIMAL(10,1)) AS VARCHAR(20)) END + '/' +
CASE WHEN = FLOOR() THEN CAST(CAST( AS INT) AS VARCHAR(20)) ELSE CAST(CAST( AS DECIMAL(10,1)) AS VARCHAR(20)) END AS qty,
CAST( AS VARCHAR(20)) AS reportQty,
ISNULL(, '') AS planStart,
ISNULL(, '') AS planEnd,
CAST( AS VARCHAR(20)) AS workHours,
'' AS
FROM
UNION ALL
SELECT
2 AS [Level],
d. AS contractNo,
'' AS materialDesc,
d. AS materialCode,
d. AS processName,
d. AS operator,
ISNULL(d., '') AS ,
'' AS qty,
CAST(d. AS VARCHAR(20)) AS reportQty,
d. AS planStart,
d. AS planEnd,
CAST(d. AS VARCHAR(20)) AS workHours,
d. AS
FROM d
ORDER BY contractNo, materialCode, [Level], processName
END
GO
ALTER PROCEDURE [dbo].[_作业者工时_查询]
@ NVARCHAR(50) = NULL,
@ NVARCHAR(50) = NULL,
@ NVARCHAR(100) = NULL,
@ NVARCHAR(50) = NULL,
@ NVARCHAR(50) = NULL,
@ DATE = NULL,
@ DATE = NULL
AS
BEGIN
SET NOCOUNT ON;
;WITH AS (
SELECT
,
COUNT(*) AS ,
SUM(CASE
WHEN NOT IN ('异常') THEN
WHEN = '异常' THEN -
ELSE 0
END) AS ,
CAST(SUM(CASE
WHEN = '异常' THEN -
ELSE
END) / 60.0 / 60.0 AS DECIMAL(10,1)) AS
FROM [dbo].[View_生产工时视图]
WHERE (@ IS NULL OR @ = '' OR >= @)
AND (@ IS NULL OR @ = '' OR <= @)
AND IS NOT NULL AND != ''
AND (@ IS NULL OR @ = '' OR LIKE '%' + @ + '%')
AND (@ IS NULL OR @ = '' OR LIKE '%' + @ + '%')
AND (@ IS NULL OR @ = '' OR LIKE '%' + @ + '%')
AND (@ IS NULL OR @ = '' OR LIKE '%' + @ + '%')
AND (@ IS NULL OR @ = '' OR LIKE '%' + @ + '%')
AND ISNULL(, 0) != -1
GROUP BY
),
AS (
SELECT
,
CONVERT(VARCHAR(10), , 120) AS ,
COUNT(*) AS ,
SUM(CASE
WHEN NOT IN ('异常') THEN
WHEN = '异常' THEN -
ELSE 0
END) AS ,
CAST(SUM(CASE
WHEN = '异常' THEN -
ELSE
END) / 60.0 / 60.0 AS DECIMAL(10,1)) AS
FROM [dbo].[View_生产工时视图]
WHERE (@ IS NULL OR @ = '' OR >= @)
AND (@ IS NULL OR @ = '' OR <= @)
AND IS NOT NULL AND != ''
AND (@ IS NULL OR @ = '' OR LIKE '%' + @ + '%')
AND (@ IS NULL OR @ = '' OR LIKE '%' + @ + '%')
AND (@ IS NULL OR @ = '' OR LIKE '%' + @ + '%')
AND (@ IS NULL OR @ = '' OR LIKE '%' + @ + '%')
AND (@ IS NULL OR @ = '' OR LIKE '%' + @ + '%')
AND ISNULL(, 0) != -1
GROUP BY , CONVERT(VARCHAR(10), , 120)
),
AS (
SELECT
,
CONVERT(VARCHAR(10), , 120) AS ,
AS ,
,
,
,
,
AS ,
CASE
WHEN NOT IN ('异常') THEN
WHEN = '异常' THEN -
ELSE 0
END AS ,
CONVERT(VARCHAR(19), , 120) AS ,
CONVERT(VARCHAR(19), , 120) AS ,
CAST(CASE
WHEN = '异常' THEN -
ELSE
END / 60.0 / 60.0 AS DECIMAL(10,2)) AS ,
,
,
FROM [dbo].[View_生产工时视图]
WHERE (@ IS NULL OR @ = '' OR >= @)
AND (@ IS NULL OR @ = '' OR <= @)
AND IS NOT NULL AND != ''
AND (@ IS NULL OR @ = '' OR LIKE '%' + @ + '%')
AND (@ IS NULL OR @ = '' OR LIKE '%' + @ + '%')
AND (@ IS NULL OR @ = '' OR LIKE '%' + @ + '%')
AND (@ IS NULL OR @ = '' OR LIKE '%' + @ + '%')
AND (@ IS NULL OR @ = '' OR LIKE '%' + @ + '%')
AND ISNULL(, 0) != -1
)
SELECT
1 AS [Level],
AS operator,
'' AS dateLabel,
CAST( AS VARCHAR(20)) AS reportCount,
CAST( AS VARCHAR(20)) AS reportQty,
'' AS contractNo,
'' AS orderNo,
'' AS productCode,
'' AS productName,
'' AS processName,
'' AS ,
'' AS startTime,
'' AS endTime,
'' AS ,
'' AS ,
'' AS ,
CAST( AS VARCHAR(20)) AS workHours
FROM
UNION ALL
SELECT
2 AS [Level],
AS operator,
AS dateLabel,
CAST( AS VARCHAR(20)) AS reportCount,
CAST( AS VARCHAR(20)) AS reportQty,
'' AS contractNo,
'' AS orderNo,
'' AS productCode,
'' AS productName,
'' AS processName,
'' AS ,
'' AS startTime,
'' AS endTime,
'' AS ,
'' AS ,
'' AS ,
CAST( AS VARCHAR(20)) AS workHours
FROM
UNION ALL
SELECT
3 AS [Level],
AS operator,
AS dateLabel,
'' AS reportCount,
CAST( AS VARCHAR(20)) AS reportQty,
ISNULL(, '') AS contractNo,
ISNULL(, '') AS orderNo,
ISNULL(, '') AS productCode,
ISNULL(, '') AS productName,
ISNULL(, '') AS processName,
ISNULL(, '') AS ,
ISNULL(, '') AS startTime,
ISNULL(, '') AS endTime,
ISNULL(, '') AS ,
ISNULL(, '') AS ,
ISNULL(, '') AS ,
CAST( AS VARCHAR(20)) AS workHours
FROM
ORDER BY operator, dateLabel, [Level]
END
GO
ALTER PROCEDURE [dbo].[_任务工时_查询]
@ NVARCHAR(50) = NULL,
@ NVARCHAR(50) = NULL,
@ NVARCHAR(100) = NULL,
@ NVARCHAR(50) = NULL,
@ NVARCHAR(50) = NULL,
@ DATE = NULL,
@ DATE = NULL
AS
BEGIN
SET NOCOUNT ON;
;WITH AS (
SELECT
AS ,
,
,
,
,
,
MAX() AS ,
MAX() AS ,
SUM(CASE WHEN IN ('报工', '辅助结束') THEN ELSE 0 END) AS ,
CAST(SUM() / 60.0 / 60.0 AS DECIMAL(10,1)) AS
FROM View_生产工时视图
WHERE (@ IS NULL OR @ = '' OR >= @)
AND (@ IS NULL OR @ = '' OR <= @)
AND (@ IS NULL OR @ = '' OR LIKE '%' + @ + '%')
AND (@ IS NULL OR @ = '' OR LIKE '%' + @ + '%')
AND (@ IS NULL OR @ = '' OR LIKE '%' + @ + '%')
AND (@ IS NULL OR @ = '' OR LIKE '%' + @ + '%')
AND (@ IS NULL OR @ = '' OR LIKE '%' + @ + '%')
GROUP BY , , , , ,
),
AS (
SELECT
AS ,
,
,
,
,
AS ,
,
CASE WHEN IN ('报工', '辅助结束') THEN ELSE 0 END AS ,
CONVERT(VARCHAR(19), , 120) AS ,
CONVERT(VARCHAR(19), , 120) AS ,
CAST( / 60.0 / 60.0 AS DECIMAL(10,2)) AS
FROM View_生产工时视图
WHERE (@ IS NULL OR @ = '' OR >= @)
AND (@ IS NULL OR @ = '' OR <= @)
AND (@ IS NULL OR @ = '' OR LIKE '%' + @ + '%')
AND (@ IS NULL OR @ = '' OR LIKE '%' + @ + '%')
AND (@ IS NULL OR @ = '' OR LIKE '%' + @ + '%')
AND (@ IS NULL OR @ = '' OR LIKE '%' + @ + '%')
AND (@ IS NULL OR @ = '' OR LIKE '%' + @ + '%')
)
SELECT
1 AS [Level],
ISNULL(, '') AS contractNo,
ISNULL(, '') AS orderNo,
ISNULL(, '') AS productCode,
ISNULL(, '') AS productName,
ISNULL(, '') AS processName,
'' AS operator,
'' AS ,
CASE WHEN IS NULL THEN '0' WHEN = FLOOR() THEN CAST(CAST( AS INT) AS VARCHAR(20)) ELSE CAST(CAST( AS DECIMAL(10,1)) AS VARCHAR(20)) END + '/' +
CASE WHEN IS NULL THEN '0' WHEN = FLOOR() THEN CAST(CAST( AS INT) AS VARCHAR(20)) ELSE CAST(CAST( AS DECIMAL(10,1)) AS VARCHAR(20)) END AS qty,
CAST( AS VARCHAR(20)) AS reportQty,
'' AS startTime,
'' AS endTime,
CAST( AS VARCHAR(20)) AS workHours,
FROM
UNION ALL
SELECT
2 AS [Level],
ISNULL(, '') AS contractNo,
ISNULL(, '') AS orderNo,
ISNULL(, '') AS productCode,
'' AS productName,
ISNULL(, '') AS processName,
ISNULL(, '') AS operator,
ISNULL(, '') AS ,
'' AS qty,
CAST( AS VARCHAR(20)) AS reportQty,
ISNULL(, '') AS startTime,
ISNULL(, '') AS endTime,
CAST( AS VARCHAR(20)) AS workHours,
FROM
ORDER BY contractNo, orderNo, productCode, processName, [Level], startTime
END
GO
ALTER PROCEDURE [dbo].[_设备工时_查询]
@ NVARCHAR(50) = NULL,
@ NVARCHAR(50) = NULL,
@ NVARCHAR(100) = NULL,
@ NVARCHAR(50) = NULL,
@ NVARCHAR(50) = NULL,
@ DATE = NULL,
@ DATE = NULL
AS
BEGIN
SET NOCOUNT ON;
;WITH AS (
SELECT
,
COUNT(*) AS ,
SUM(CASE WHEN IN ('报工', '辅助结束') THEN ELSE 0 END) AS ,
CAST(SUM() / 60.0 / 60.0 AS DECIMAL(10,1)) AS
FROM View_生产工时视图
WHERE (@ IS NULL OR @ = '' OR >= @)
AND (@ IS NULL OR @ = '' OR <= @)
AND IS NOT NULL AND != ''
AND (@ IS NULL OR @ = '' OR LIKE '%' + @ + '%')
AND (@ IS NULL OR @ = '' OR LIKE '%' + @ + '%')
AND (@ IS NULL OR @ = '' OR LIKE '%' + @ + '%')
AND (@ IS NULL OR @ = '' OR LIKE '%' + @ + '%')
AND (@ IS NULL OR @ = '' OR LIKE '%' + @ + '%')
AND ISNULL(, 0) = -1
GROUP BY
),
AS (
SELECT
,
CONVERT(VARCHAR(10), , 120) AS ,
COUNT(*) AS ,
SUM(CASE WHEN IN ('报工', '辅助结束') THEN ELSE 0 END) AS ,
CAST(SUM() / 60.0 / 60.0 AS DECIMAL(10,1)) AS
FROM View_生产工时视图
WHERE (@ IS NULL OR @ = '' OR >= @)
AND (@ IS NULL OR @ = '' OR <= @)
AND IS NOT NULL AND != ''
AND (@ IS NULL OR @ = '' OR LIKE '%' + @ + '%')
AND (@ IS NULL OR @ = '' OR LIKE '%' + @ + '%')
AND (@ IS NULL OR @ = '' OR LIKE '%' + @ + '%')
AND (@ IS NULL OR @ = '' OR LIKE '%' + @ + '%')
AND (@ IS NULL OR @ = '' OR LIKE '%' + @ + '%')
AND ISNULL(, 0) = -1
GROUP BY , CONVERT(VARCHAR(10), , 120)
),
AS (
SELECT
,
CONVERT(VARCHAR(10), , 120) AS ,
AS ,
,
,
,
,
AS ,
CASE WHEN IN ('报工', '辅助结束') THEN ELSE 0 END AS ,
CONVERT(VARCHAR(19), , 120) AS ,
CONVERT(VARCHAR(19), , 120) AS ,
CAST( / 60.0 / 60.0 AS DECIMAL(10,2)) AS
FROM View_生产工时视图
WHERE (@ IS NULL OR @ = '' OR >= @)
AND (@ IS NULL OR @ = '' OR <= @)
AND IS NOT NULL AND != ''
AND (@ IS NULL OR @ = '' OR LIKE '%' + @ + '%')
AND (@ IS NULL OR @ = '' OR LIKE '%' + @ + '%')
AND (@ IS NULL OR @ = '' OR LIKE '%' + @ + '%')
AND (@ IS NULL OR @ = '' OR LIKE '%' + @ + '%')
AND (@ IS NULL OR @ = '' OR LIKE '%' + @ + '%')
AND ISNULL(, 0) = -1
)
SELECT
1 AS [Level],
AS operator,
'' AS dateLabel,
CAST( AS VARCHAR(20)) AS reportCount,
CAST( AS VARCHAR(20)) AS reportQty,
'' AS contractNo,
'' AS orderNo,
'' AS productCode,
'' AS productName,
'' AS processName,
'' AS ,
'' AS startTime,
'' AS endTime,
CAST( AS VARCHAR(20)) AS workHours
FROM
UNION ALL
SELECT
2 AS [Level],
AS operator,
AS dateLabel,
CAST( AS VARCHAR(20)) AS reportCount,
CAST( AS VARCHAR(20)) AS reportQty,
'' AS contractNo,
'' AS orderNo,
'' AS productCode,
'' AS productName,
'' AS processName,
'' AS ,
'' AS startTime,
'' AS endTime,
CAST( AS VARCHAR(20)) AS workHours
FROM
UNION ALL
SELECT
3 AS [Level],
AS operator,
AS dateLabel,
'' AS reportCount,
CAST( AS VARCHAR(20)) AS reportQty,
ISNULL(, '') AS contractNo,
ISNULL(, '') AS orderNo,
ISNULL(, '') AS productCode,
ISNULL(, '') AS productName,
ISNULL(, '') AS processName,
ISNULL(, '') AS ,
ISNULL(, '') AS startTime,
ISNULL(, '') AS endTime,
CAST( AS VARCHAR(20)) AS workHours
FROM
ORDER BY operator, dateLabel, [Level]
END
GO

View File

@@ -0,0 +1,186 @@
USE [YL_MESDB]
GO
ALTER PROCEDURE [dbo].[_生产计划跟踪]
@ int = 0,
@ nvarchar(50) = '',
@ nvarchar(50) = '',
@ nvarchar(50) = '',
@ nvarchar(50) = '',
@ nvarchar(50) = '',
@1 nvarchar(50) = '',
@2 nvarchar(50) = '',
@1 nvarchar(50) = '',
@2 nvarchar(50) = '',
@1 nvarchar(50) = '',
@2 nvarchar(50) = '',
@ nvarchar(50) = '全部',
@ nvarchar(50) = '全部',
@ nvarchar(50) = '全部',
@ nvarchar(50) = '',
@ nvarchar(50) = '',
@ nvarchar(50) = ''
AS
BEGIN
DECLARE @selectStr NVARCHAR(MAX)
DECLARE @selectStrWhere NVARCHAR(4000) = ' WHERE [物料类型] = ''pit_Resource'' '
SET @selectStr = N'
SELECT top 500
v.计划号,
加急总数,
拣配状态,
自制件属性,
入库数量,
外协分组,
case
when isnull(任务状态,0)=4 then ''已完成''
when isnull(任务状态,0)=2 then ''已开工''
when isnull(任务状态,0)=0 then ''待执行''
when isnull(任务状态,0)=1 then ''可执行''
else ''''
end as [任务状态],
case
when isnull(加工状态,0)=2 then ''辅助开始''
when isnull(加工状态,0)=3 then ''辅助结束''
when isnull(加工状态,0)=4 then ''开始加工''
when isnull(加工状态,0)=5 then ''暂停''
when isnull(加工状态,0)=6 then ''报工''
else ''''
end as [加工状态],
[计划数量订单],
ISNULL(开工时间, 0) AS 开工时间,
ISNULL(进度, 0) AS 进度,
v.[TaskAID],
[合同号],
v.[订单编号] AS 订单号,
[订单行号],
[订单拆分内码] AS 拆分内码,
[物料编号] AS 产品编码,
[物料描述] AS 产品名称,
TRIM(''.'' FROM TRIM(''0'' FROM CAST([计划数量] AS VARCHAR(30)))) AS 计划数量,
ISNULL(gy.标准工时, 0) AS 标准工时,
[计划完成] AS 要求完工日期,
[工序名称],
完成数量,
收料数量,
CASE
WHEN [加急状态] = 1 THEN ''加急''
ELSE ''''
END AS 加急状态,
加急数量,
性质,
ISNULL(总工时, 0) AS 总工时,
[占用情况],
[排产状态],
[工序计划数量],
指派对象编号,
指派对象,
TRIM(''.'' FROM TRIM(''0'' FROM CAST([指派数量] AS VARCHAR(30)))) AS 指派数量,
计划开始时间,
计划完成时间,
最晚开始时间,
[派工状态],
[外协通知],
[优先级],
[未完成说明],
[派工特殊说明],
[最后编辑人],
[最后编辑时间],
[二次派工],
CASE
WHEN zj_终检.计划号 IS NOT NULL THEN ''''
ELSE ''''
END AS 终检,
ISNULL(zj_收检.合格数合计, 0) AS 收检合格数,
ISNULL(zj_收检.不合格数合计, 0) AS 收检不合格数,
ISNULL(zj_收检.合格数合计, 0) + ISNULL(zj_收检.不合格数合计, 0) AS 收检总数,
ISNULL(jl.开始时间, 0) AS 开始时间,
ISNULL(jl.结束时间, 0) AS 结束时间,
ISNULL(jl.外协结束时间, 0) AS 外协结束时间,
STUFF((
SELECT '','' + d2.工序名称
FROM [dbo].[View_生产订单_MES] d2
WHERE d2.订单编号 = v.订单编号 order by d2.订单行号
FOR XML PATH('''')
), 1, 1, '''') AS 工艺路线
FROM [dbo].[View_生产订单全部包括已关闭] v
LEFT JOIN (
SELECT DISTINCT 计划号
FROM dbo.YL_质量检验_质检记录
WHERE 质检类型 = ''终检''
) zj_终检 ON v.[订单编号] = zj_终检.计划号
LEFT JOIN (
SELECT
TaskAID,
SUM(ISNULL(合格数, 0)) AS 合格数合计,
SUM(ISNULL(不合格数, 0)) AS 不合格数合计
FROM dbo.YL_质量检验_质检记录
WHERE 质检类型 = ''收检''
GROUP BY TaskAID
) zj_收检 ON v.[TaskAID] = zj_收检.TaskAID
LEFT JOIN (
SELECT
TaskAID,
min(ISNULL(开始时间, 0)) AS 开始时间,
MAX(CASE WHEN 操作类别 = ''报工'' THEN ISNULL(开始时间, 0) ELSE NULL END) AS 外协结束时间,
MAX(CASE WHEN 操作类别 = ''报工'' THEN ISNULL(结束时间, 0) ELSE NULL END) AS 结束时间
FROM [dbo].[YL_加工中心_操作记录表]
GROUP BY TaskAID
) jl ON v.[TaskAID] = jl.TaskAID
LEFT JOIN (
SELECT
订单编号,
工艺顺序,
MAX(ISNULL(标准工时, 0)) AS 标准工时
FROM dbo.[车间生产管理工艺_零件生产工艺_工艺库]
GROUP BY 订单编号, 工艺顺序
) gy ON v.[订单编号] = gy.[订单编号] AND v.[订单行号] = gy.[工艺顺序]'
IF (@ > 0)
SET @selectStrWhere = @selectStrWhere + ' AND v.[订单编号] = ' + CONVERT(VARCHAR(10), @)
IF (@ > 0)
SET @selectStrWhere = @selectStrWhere + ' AND v.[计划号] = '''+@+''''
IF (@ <> '')
SET @selectStrWhere = @selectStrWhere + ' AND [合同号] LIKE ''%' + @ + '%'''
IF (@ <> '')
SET @selectStrWhere = @selectStrWhere + ' AND [物料编号] LIKE ''%' + @ + '%'''
IF (@ <> '')
SET @selectStrWhere = @selectStrWhere + ' AND [物料描述] LIKE ''%' + @ + '%'''
IF (@ <> '')
SET @selectStrWhere = @selectStrWhere + ' AND [工序名称] = ''' + @ + ''''
IF (@1 <> '')
SET @selectStrWhere = @selectStrWhere + ' AND [计划完成] >= ''' + @1 + ''''
IF (@2 <> '')
SET @selectStrWhere = @selectStrWhere + ' AND [计划完成] <= ''' + @2 + ''''
IF (@1 <> '')
SET @selectStrWhere = @selectStrWhere + ' AND [计划开始时间] >= ''' + @1 + ''''
IF (@2 <> '')
SET @selectStrWhere = @selectStrWhere + ' AND [计划开始时间] <= ''' + @2 + ''''
IF (@1 <> '')
SET @selectStrWhere = @selectStrWhere + ' AND [计划完成时间] >= ''' + @1 + ''''
IF (@2 <> '')
SET @selectStrWhere = @selectStrWhere + ' AND [计划完成时间] <= ''' + @2 + ''''
IF (@ = '未完成')
SET @selectStrWhere = @selectStrWhere + ' AND ISNULL([排产状态], 0) = 0'
ELSE IF (@ = '已完成')
SET @selectStrWhere = @selectStrWhere + ' AND [排产状态] = 1'
IF (@ = '机加')
SET @selectStrWhere = @selectStrWhere + ' AND [自制件属性] = ''机加件'''
ELSE IF (@ = '装配')
SET @selectStrWhere = @selectStrWhere + ' AND [自制件属性] LIKE ''%装配'''
IF (@ = '加急')
SET @selectStrWhere = @selectStrWhere + ' AND [加急状态] = 1'
IF (@ = '正常')
SET @selectStrWhere = @selectStrWhere + ' AND [单据状态] is null'
ELSE IF (@ = '关闭')
SET @selectStrWhere = @selectStrWhere + ' AND [单据状态] is not null'
IF (@ <> '全部')
SET @selectStrWhere = @selectStrWhere + ' AND [指派对象] IN (SELECT value FROM STRING_SPLIT(''' + @ + ''', '',''))'
SET @selectStrWhere = @selectStrWhere + ' ORDER BY v.[计划完成] ASC, v.[订单编号] ASC'
SET @selectStr = @selectStr + @selectStrWhere
PRINT @selectStr
EXEC sp_executesql @selectStr
END
GO

View File

@@ -0,0 +1,94 @@
CREATE PROCEDURE [dbo].[_任务工时_查询]
@ NVARCHAR(50) = NULL,
@ NVARCHAR(50) = NULL,
@ NVARCHAR(100) = NULL,
@ NVARCHAR(50) = NULL,
@ NVARCHAR(50) = NULL,
@ DATE = NULL,
@ DATE = NULL
AS
BEGIN
SET NOCOUNT ON;
;WITH AS (
SELECT
AS ,
,
,
,
,
,
MAX() AS ,
MAX() AS ,
SUM(CASE WHEN IN ('报工', '辅助结束') THEN ELSE 0 END) AS ,
CAST(SUM() / 60.0 / 60.0 AS DECIMAL(10,1)) AS
FROM View_生产工时视图
WHERE (@ IS NULL OR @ = '' OR >= @)
AND (@ IS NULL OR @ = '' OR <= @)
AND (@ IS NULL OR @ = '' OR LIKE '%' + @ + '%')
AND (@ IS NULL OR @ = '' OR LIKE '%' + @ + '%')
AND (@ IS NULL OR @ = '' OR LIKE '%' + @ + '%')
AND (@ IS NULL OR @ = '' OR LIKE '%' + @ + '%')
AND (@ IS NULL OR @ = '' OR LIKE '%' + @ + '%')
GROUP BY , , , , ,
),
AS (
SELECT
AS ,
,
,
,
,
,
CASE WHEN IN ('报工', '辅助结束') THEN ELSE 0 END AS ,
CONVERT(VARCHAR(19), , 120) AS ,
CONVERT(VARCHAR(19), , 120) AS ,
CAST( / 60.0 / 60.0 AS DECIMAL(10,2)) AS
FROM View_生产工时视图
WHERE (@ IS NULL OR @ = '' OR >= @)
AND (@ IS NULL OR @ = '' OR <= @)
AND (@ IS NULL OR @ = '' OR LIKE '%' + @ + '%')
AND (@ IS NULL OR @ = '' OR LIKE '%' + @ + '%')
AND (@ IS NULL OR @ = '' OR LIKE '%' + @ + '%')
AND (@ IS NULL OR @ = '' OR LIKE '%' + @ + '%')
AND (@ IS NULL OR @ = '' OR LIKE '%' + @ + '%')
)
SELECT
1 AS [Level],
ISNULL(, '') AS contractNo,
ISNULL(, '') AS orderNo,
ISNULL(, '') AS productCode,
ISNULL(, '') AS productName,
ISNULL(, '') AS processName,
'' AS operator,
CASE WHEN IS NULL THEN '0' WHEN = FLOOR() THEN CAST(CAST( AS INT) AS VARCHAR(20)) ELSE CAST(CAST( AS DECIMAL(10,1)) AS VARCHAR(20)) END + '/' +
CASE WHEN IS NULL THEN '0' WHEN = FLOOR() THEN CAST(CAST( AS INT) AS VARCHAR(20)) ELSE CAST(CAST( AS DECIMAL(10,1)) AS VARCHAR(20)) END AS qty,
CAST( AS VARCHAR(20)) AS reportQty,
'' AS startTime,
'' AS endTime,
CAST( AS VARCHAR(20)) AS workHours,
FROM
UNION ALL
SELECT
2 AS [Level],
ISNULL(, '') AS contractNo,
ISNULL(, '') AS orderNo,
ISNULL(, '') AS productCode,
'' AS productName,
ISNULL(, '') AS processName,
ISNULL(, '') AS operator,
'' AS qty,
CAST( AS VARCHAR(20)) AS reportQty,
ISNULL(, '') AS startTime,
ISNULL(, '') AS endTime,
CAST( AS VARCHAR(20)) AS workHours,
FROM
ORDER BY contractNo, orderNo, productCode, processName, [Level], startTime
END

View File

@@ -0,0 +1,49 @@
CREATE PROCEDURE [dbo].[_任务工时_查询_导出]
@ NVARCHAR(50) = NULL,
@ NVARCHAR(50) = NULL,
@ NVARCHAR(100) = NULL,
@ NVARCHAR(50) = NULL,
@ NVARCHAR(50) = NULL,
@ DATE = NULL,
@ DATE = NULL
AS
BEGIN
SET NOCOUNT ON;
-- 导出文件名和类型
SELECT '任务工时统计_' + REPLACE(REPLACE(REPLACE(CONVERT(NVARCHAR(19), GETDATE(), 21), ':', ''), '-', ''), ' ', '-') AS tablename, '15' AS tabletype
-- 字段宽度
SELECT 256*20 AS , 256*12 AS , 256*40 AS , 256*25 AS , 256*15 AS ,
256*12 AS , 256*12 AS , 256*12 AS , 256*10 AS , 256*20 AS , 256*20 AS , 256*12 AS '工时(h)'
-- 是否计算列
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 '工时(h)'
-- 导出数据:每行都填满完整信息
SELECT
ISNULL(, '') AS ,
ISNULL(, '') AS ,
ISNULL(, '') AS ,
ISNULL(, '') AS ,
ISNULL(, '') AS ,
ISNULL(, '') AS ,
CASE WHEN IS NULL THEN '' WHEN = FLOOR() THEN CAST(CAST( AS INT) AS VARCHAR(20)) ELSE CAST(CAST( AS DECIMAL(10,1)) AS VARCHAR(20)) END AS ,
CASE WHEN IS NULL THEN '' WHEN = FLOOR() THEN CAST(CAST( AS INT) AS VARCHAR(20)) ELSE CAST(CAST( AS DECIMAL(10,1)) AS VARCHAR(20)) END AS ,
CASE WHEN IN ('报工', '辅助结束') THEN CAST( AS VARCHAR(20)) ELSE '0' END AS ,
CONVERT(VARCHAR(19), , 120) AS ,
CONVERT(VARCHAR(19), , 120) AS ,
CAST(CAST( / 60.0 / 60.0 AS DECIMAL(10,2)) AS VARCHAR(20)) AS '工时(h)'
FROM View_生产工时视图
WHERE (@ IS NULL OR @ = '' OR >= @)
AND (@ IS NULL OR @ = '' OR <= @)
AND (@ IS NULL OR @ = '' OR LIKE '%' + @ + '%')
AND (@ IS NULL OR @ = '' OR LIKE '%' + @ + '%')
AND (@ IS NULL OR @ = '' OR LIKE '%' + @ + '%')
AND (@ IS NULL OR @ = '' OR LIKE '%' + @ + '%')
AND (@ IS NULL OR @ = '' OR LIKE '%' + @ + '%')
ORDER BY , , , ,
END

View File

@@ -0,0 +1,164 @@
CREATE PROCEDURE [dbo].[_作业者工时_查询]
@ NVARCHAR(50) = NULL,
@ NVARCHAR(50) = NULL,
@ NVARCHAR(100) = NULL,
@ NVARCHAR(50) = NULL,
@ NVARCHAR(50) = NULL,
@ DATE = NULL,
@ DATE = NULL
AS
BEGIN
SET NOCOUNT ON;
;WITH AS (
SELECT
,
COUNT(*) AS ,
SUM(CASE
--WHEN IN ('报工', '辅助结束', '加班', '开始加工') THEN
WHEN NOT IN ('异常') THEN
WHEN = '异常' THEN - -- 异常工时记为负数
ELSE 0
END) AS ,
CAST(SUM(CASE
WHEN = '异常' THEN - -- 异常时长记为负数
ELSE
END) / 60.0 / 60.0 AS DECIMAL(10,1)) AS
FROM [dbo].[View_生产工时视图]
WHERE (@ IS NULL OR @ = '' OR >= @)
AND (@ IS NULL OR @ = '' OR <= @)
AND IS NOT NULL AND != ''
AND (@ IS NULL OR @ = '' OR LIKE '%' + @ + '%')
AND (@ IS NULL OR @ = '' OR LIKE '%' + @ + '%')
AND (@ IS NULL OR @ = '' OR LIKE '%' + @ + '%')
AND (@ IS NULL OR @ = '' OR LIKE '%' + @ + '%')
AND (@ IS NULL OR @ = '' OR LIKE '%' + @ + '%')
and isNull(,0) != -1
GROUP BY
),
AS (
SELECT
,
CONVERT(VARCHAR(10), , 120) AS ,
COUNT(*) AS ,
SUM(CASE
--WHEN IN ('报工', '辅助结束', '加班', '开始加工') THEN
WHEN NOT IN ('异常') THEN
WHEN = '异常' THEN - -- 异常工时记为负数
ELSE 0
END) AS ,
CAST(SUM(CASE
WHEN = '异常' THEN - -- 异常时长记为负数
ELSE
END) / 60.0 / 60.0 AS DECIMAL(10,1)) AS
FROM [dbo].[View_生产工时视图]
WHERE (@ IS NULL OR @ = '' OR >= @)
AND (@ IS NULL OR @ = '' OR <= @)
AND IS NOT NULL AND != ''
AND (@ IS NULL OR @ = '' OR LIKE '%' + @ + '%')
AND (@ IS NULL OR @ = '' OR LIKE '%' + @ + '%')
AND (@ IS NULL OR @ = '' OR LIKE '%' + @ + '%')
AND (@ IS NULL OR @ = '' OR LIKE '%' + @ + '%')
AND (@ IS NULL OR @ = '' OR LIKE '%' + @ + '%')
and isNull(,0) != -1
GROUP BY , CONVERT(VARCHAR(10), , 120)
),
AS (
SELECT
,
CONVERT(VARCHAR(10), , 120) AS ,
AS ,
,
,
,
,
CASE
--WHEN IN ('报工', '辅助结束', '加班', '开始加工') THEN
WHEN NOT IN ('异常') THEN
WHEN = '异常' THEN - -- 异常数量记为负数
ELSE 0
END AS ,
CONVERT(VARCHAR(19), , 120) AS ,
CONVERT(VARCHAR(19), , 120) AS ,
CAST(CASE
WHEN = '异常' THEN - -- 异常时长记为负数
ELSE
END / 60.0 / 60.0 AS DECIMAL(10,2)) AS ,
,
,
FROM [dbo].[View_生产工时视图]
WHERE (@ IS NULL OR @ = '' OR >= @)
AND (@ IS NULL OR @ = '' OR <= @)
AND IS NOT NULL AND != ''
AND (@ IS NULL OR @ = '' OR LIKE '%' + @ + '%')
AND (@ IS NULL OR @ = '' OR LIKE '%' + @ + '%')
AND (@ IS NULL OR @ = '' OR LIKE '%' + @ + '%')
AND (@ IS NULL OR @ = '' OR LIKE '%' + @ + '%')
AND (@ IS NULL OR @ = '' OR LIKE '%' + @ + '%')
and isNull(,0) != -1
)
SELECT
1 AS [Level],
AS operator,
'' AS dateLabel,
CAST( AS VARCHAR(20)) AS reportCount,
CAST( AS VARCHAR(20)) AS reportQty,
'' AS contractNo,
'' AS orderNo,
'' AS productCode,
'' AS productName,
'' AS processName,
'' AS startTime,
'' AS endTime,
'' AS ,
'' AS ,
'' AS ,
CAST( AS VARCHAR(20)) AS workHours
FROM
UNION ALL
SELECT
2 AS [Level],
AS operator,
AS dateLabel,
CAST( AS VARCHAR(20)) AS reportCount,
CAST( AS VARCHAR(20)) AS reportQty,
'' AS contractNo,
'' AS orderNo,
'' AS productCode,
'' AS productName,
'' AS processName,
'' AS startTime,
'' AS endTime,
'' AS ,
'' AS ,
'' AS ,
CAST( AS VARCHAR(20)) AS workHours
FROM
UNION ALL
SELECT
3 AS [Level],
AS operator,
AS dateLabel,
'' AS reportCount,
CAST( AS VARCHAR(20)) AS reportQty,
ISNULL(, '') AS contractNo,
ISNULL(, '') AS orderNo,
ISNULL(, '') AS productCode,
ISNULL(, '') AS productName,
ISNULL(, '') AS processName,
ISNULL(, '') AS startTime,
ISNULL(, '') AS endTime,
ISNULL(, '') AS ,
ISNULL(, '') AS ,
ISNULL(, '') AS ,
CAST( AS VARCHAR(20)) AS workHours
FROM
ORDER BY operator, dateLabel, [Level]
END

View File

@@ -0,0 +1,50 @@
CREATE PROCEDURE [dbo].[_作业者工时_查询_导出]
@ NVARCHAR(50) = NULL,
@ NVARCHAR(50) = NULL,
@ NVARCHAR(100) = NULL,
@ NVARCHAR(50) = NULL,
@ NVARCHAR(50) = NULL,
@ DATE = NULL,
@ DATE = 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*15 AS , 256*20 AS , 256*12 AS , 256*40 AS ,
256*25 AS , 256*15 AS , 256*10 AS , 256*20 AS , 256*20 AS , 256*12 AS '工时(h)'
-- 是否计算列
SELECT 0 AS , 0 AS , 0 AS , 0 AS , 0 AS ,
0 AS , 0 AS , 0 AS , 0 AS , 0 AS , 0 AS '工时(h)'
-- 导出数据:每行都填满完整信息
SELECT
,
CONVERT(VARCHAR(10), , 120) AS ,
ISNULL(, '') AS ,
ISNULL(, '') AS ,
ISNULL(, '') AS ,
ISNULL(, '') AS ,
ISNULL(, '') AS ,
CASE WHEN IN ('报工', '辅助结束','加班','异常','开始加工') THEN CAST( AS VARCHAR(20)) ELSE '0' END AS ,
CONVERT(VARCHAR(19), , 120) AS ,
CONVERT(VARCHAR(19), , 120) AS ,
CAST(CAST( / 60.0 / 60.0 AS DECIMAL(10,2)) AS VARCHAR(20)) AS '工时(h)'
FROM [dbo].[View_生产工时视图]
WHERE (@ IS NULL OR @ = '' OR >= @)
AND (@ IS NULL OR @ = '' OR <= @)
AND IS NOT NULL AND != ''
AND (@ IS NULL OR @ = '' OR LIKE '%' + @ + '%')
AND (@ IS NULL OR @ = '' OR LIKE '%' + @ + '%')
AND (@ IS NULL OR @ = '' OR LIKE '%' + @ + '%')
AND (@ IS NULL OR @ = '' OR LIKE '%' + @ + '%')
AND (@ IS NULL OR @ = '' OR LIKE '%' + @ + '%')
and isNull(,0) != -1
ORDER BY ,
END

View File

@@ -0,0 +1,129 @@
CREATE PROCEDURE [dbo].[_设备工时_查询]
@ NVARCHAR(50) = NULL,
@ NVARCHAR(50) = NULL,
@ NVARCHAR(100) = NULL,
@ NVARCHAR(50) = NULL,
@ NVARCHAR(50) = NULL,
@ DATE = NULL,
@ DATE = NULL
AS
BEGIN
SET NOCOUNT ON;
;WITH AS (
SELECT
,
COUNT(*) AS ,
SUM(CASE WHEN IN ('报工', '辅助结束') THEN ELSE 0 END) AS ,
CAST(SUM() / 60.0 / 60.0 AS DECIMAL(10,1)) AS
FROM View_生产工时视图
WHERE (@ IS NULL OR @ = '' OR >= @)
AND (@ IS NULL OR @ = '' OR <= @)
AND IS NOT NULL AND != ''
AND (@ IS NULL OR @ = '' OR LIKE '%' + @ + '%')
AND (@ IS NULL OR @ = '' OR LIKE '%' + @ + '%')
AND (@ IS NULL OR @ = '' OR LIKE '%' + @ + '%')
AND (@ IS NULL OR @ = '' OR LIKE '%' + @ + '%')
AND (@ IS NULL OR @ = '' OR LIKE '%' + @ + '%')
and isNull(,0) = -1
GROUP BY
),
AS (
SELECT
,
CONVERT(VARCHAR(10), , 120) AS ,
COUNT(*) AS ,
SUM(CASE WHEN IN ('报工', '辅助结束') THEN ELSE 0 END) AS ,
CAST(SUM() / 60.0 / 60.0 AS DECIMAL(10,1)) AS
FROM View_生产工时视图
WHERE (@ IS NULL OR @ = '' OR >= @)
AND (@ IS NULL OR @ = '' OR <= @)
AND IS NOT NULL AND != ''
AND (@ IS NULL OR @ = '' OR LIKE '%' + @ + '%')
AND (@ IS NULL OR @ = '' OR LIKE '%' + @ + '%')
AND (@ IS NULL OR @ = '' OR LIKE '%' + @ + '%')
AND (@ IS NULL OR @ = '' OR LIKE '%' + @ + '%')
AND (@ IS NULL OR @ = '' OR LIKE '%' + @ + '%')
and isNull(,0) = -1
GROUP BY , CONVERT(VARCHAR(10), , 120)
),
AS (
SELECT
,
CONVERT(VARCHAR(10), , 120) AS ,
AS ,
,
,
,
,
CASE WHEN IN ('报工', '辅助结束') THEN ELSE 0 END AS ,
CONVERT(VARCHAR(19), , 120) AS ,
CONVERT(VARCHAR(19), , 120) AS ,
CAST( / 60.0 / 60.0 AS DECIMAL(10,2)) AS
FROM View_生产工时视图
WHERE (@ IS NULL OR @ = '' OR >= @)
AND (@ IS NULL OR @ = '' OR <= @)
AND IS NOT NULL AND != ''
AND (@ IS NULL OR @ = '' OR LIKE '%' + @ + '%')
AND (@ IS NULL OR @ = '' OR LIKE '%' + @ + '%')
AND (@ IS NULL OR @ = '' OR LIKE '%' + @ + '%')
AND (@ IS NULL OR @ = '' OR LIKE '%' + @ + '%')
AND (@ IS NULL OR @ = '' OR LIKE '%' + @ + '%')
and isNull(,0) = -1
)
SELECT
1 AS [Level],
AS operator,
'' AS dateLabel,
CAST( AS VARCHAR(20)) AS reportCount,
CAST( AS VARCHAR(20)) AS reportQty,
'' AS contractNo,
'' AS orderNo,
'' AS productCode,
'' AS productName,
'' AS processName,
'' AS startTime,
'' AS endTime,
CAST( AS VARCHAR(20)) AS workHours
FROM
UNION ALL
SELECT
2 AS [Level],
AS operator,
AS dateLabel,
CAST( AS VARCHAR(20)) AS reportCount,
CAST( AS VARCHAR(20)) AS reportQty,
'' AS contractNo,
'' AS orderNo,
'' AS productCode,
'' AS productName,
'' AS processName,
'' AS startTime,
'' AS endTime,
CAST( AS VARCHAR(20)) AS workHours
FROM
UNION ALL
SELECT
3 AS [Level],
AS operator,
AS dateLabel,
'' AS reportCount,
CAST( AS VARCHAR(20)) AS reportQty,
ISNULL(, '') AS contractNo,
ISNULL(, '') AS orderNo,
ISNULL(, '') AS productCode,
ISNULL(, '') AS productName,
ISNULL(, '') AS processName,
ISNULL(, '') AS startTime,
ISNULL(, '') AS endTime,
CAST( AS VARCHAR(20)) AS workHours
FROM
ORDER BY operator, dateLabel, [Level]
END

View File

@@ -0,0 +1,50 @@
CREATE PROCEDURE [dbo].[_设备工时_查询_导出]
@ NVARCHAR(50) = NULL,
@ NVARCHAR(50) = NULL,
@ NVARCHAR(100) = NULL,
@ NVARCHAR(50) = NULL,
@ NVARCHAR(50) = NULL,
@ DATE = NULL,
@ DATE = 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*15 AS , 256*20 AS , 256*12 AS , 256*40 AS ,
256*25 AS , 256*15 AS , 256*10 AS , 256*20 AS , 256*20 AS , 256*12 AS '工时(h)'
-- 是否计算列
SELECT 0 AS , 0 AS , 0 AS , 0 AS , 0 AS ,
0 AS , 0 AS , 0 AS , 0 AS , 0 AS , 0 AS '工时(h)'
-- 导出数据:每行都填满完整信息
SELECT
,
CONVERT(VARCHAR(10), , 120) AS ,
ISNULL(, '') AS ,
ISNULL(, '') AS ,
ISNULL(, '') AS ,
ISNULL(, '') AS ,
ISNULL(, '') AS ,
CASE WHEN IN ('报工', '辅助结束') THEN CAST( AS VARCHAR(20)) ELSE '0' END AS ,
CONVERT(VARCHAR(19), , 120) AS ,
CONVERT(VARCHAR(19), , 120) AS ,
CAST(CAST( / 60.0 / 60.0 AS DECIMAL(10,2)) AS VARCHAR(20)) AS '工时(h)'
FROM View_生产工时视图
WHERE (@ IS NULL OR @ = '' OR >= @)
AND (@ IS NULL OR @ = '' OR <= @)
AND IS NOT NULL AND != ''
AND (@ IS NULL OR @ = '' OR LIKE '%' + @ + '%')
AND (@ IS NULL OR @ = '' OR LIKE '%' + @ + '%')
AND (@ IS NULL OR @ = '' OR LIKE '%' + @ + '%')
AND (@ IS NULL OR @ = '' OR LIKE '%' + @ + '%')
AND (@ IS NULL OR @ = '' OR LIKE '%' + @ + '%')
and isNull(,0) = -1
ORDER BY ,
END

View File

@@ -0,0 +1,90 @@
CREATE PROCEDURE [dbo].[_项目工时_查询]
@ NVARCHAR(50) = NULL,
@ NVARCHAR(50) = NULL,
@ NVARCHAR(100) = NULL,
@ NVARCHAR(50) = NULL,
@ NVARCHAR(50) = NULL,
@ DATE = NULL,
@ DATE = NULL
AS
BEGIN
SET NOCOUNT ON;
;WITH AS (
SELECT
v. AS ,
v.,
v.,
MAX(v.) AS ,
MAX(v.) AS ,
SUM(CASE WHEN v. IN ('报工', '辅助结束') THEN v. ELSE 0 END) AS ,
MIN(CONVERT(VARCHAR(10), v., 120)) AS ,
MAX(CONVERT(VARCHAR(10), v., 120)) AS ,
CAST(SUM(v.) / 60.0 / 60.0 AS DECIMAL(10,1)) AS
FROM View_生产工时视图 v
WHERE (@ IS NULL OR @ = '' OR >= @)
AND (@ IS NULL OR @ = '' OR <= @)
AND (@ IS NULL OR @ = '' OR v. LIKE '%' + @ + '%')
AND (@ IS NULL OR @ = '' OR v. LIKE '%' + @ + '%')
AND (@ IS NULL OR @ = '' OR v. LIKE '%' + @ + '%')
AND (@ IS NULL OR @ = '' OR v. LIKE '%' + @ + '%')
AND (@ IS NULL OR @ = '' OR v. LIKE '%' + @ + '%')
GROUP BY v., v., v.
),
AS (
SELECT
v. AS ,
v.,
v.,
v.,
v.,
SUM(CASE WHEN v. IN ('报工', '辅助结束') THEN v. ELSE 0 END) AS ,
CAST(SUM(v.) / 60.0 / 60.0 AS DECIMAL(10,1)) AS ,
MIN(CONVERT(VARCHAR(10), v., 120)) AS ,
MAX(CONVERT(VARCHAR(10), v., 120)) AS
FROM View_生产工时视图 v
WHERE (@ IS NULL OR @ = '' OR >= @)
AND (@ IS NULL OR @ = '' OR <= @)
AND (@ IS NULL OR @ = '' OR v. LIKE '%' + @ + '%')
AND (@ IS NULL OR @ = '' OR v. LIKE '%' + @ + '%')
AND (@ IS NULL OR @ = '' OR v. LIKE '%' + @ + '%')
AND (@ IS NULL OR @ = '' OR v. LIKE '%' + @ + '%')
AND (@ IS NULL OR @ = '' OR v. LIKE '%' + @ + '%')
GROUP BY v., v., v., v.,v.
)
SELECT
1 AS [Level],
AS contractNo,
AS materialDesc,
AS materialCode,
'' AS processName,
'' AS operator,
CASE WHEN = FLOOR() THEN CAST(CAST( AS INT) AS VARCHAR(20)) ELSE CAST(CAST( AS DECIMAL(10,1)) AS VARCHAR(20)) END + '/' +
CASE WHEN = FLOOR() THEN CAST(CAST( AS INT) AS VARCHAR(20)) ELSE CAST(CAST( AS DECIMAL(10,1)) AS VARCHAR(20)) END AS qty,
CAST( AS VARCHAR(20)) AS reportQty,
ISNULL(, '') AS planStart,
ISNULL(, '') AS planEnd,
CAST( AS VARCHAR(20)) AS workHours,
'' AS
FROM
UNION ALL
SELECT
2 AS [Level],
d. AS contractNo,
'' AS materialDesc,
d. AS materialCode,
d. AS processName,
d. AS operator,
'' AS qty,
CAST(d. AS VARCHAR(20)) AS reportQty,
d. AS planStart,
d. AS planEnd,
CAST(d. AS VARCHAR(20)) AS workHours,
d. AS
FROM d
ORDER BY contractNo, materialCode, [Level], processName
END

View File

@@ -0,0 +1,48 @@
CREATE PROCEDURE [dbo].[_项目工时_查询_导出]
@ NVARCHAR(50) = NULL,
@ NVARCHAR(50) = NULL,
@ NVARCHAR(100) = NULL,
@ NVARCHAR(50) = NULL,
@ NVARCHAR(50) = NULL,
@ DATE = NULL,
@ DATE = NULL
AS
BEGIN
SET NOCOUNT ON;
-- 导出文件名和类型
SELECT '项目工时统计_' + REPLACE(REPLACE(REPLACE(CONVERT(NVARCHAR(19), GETDATE(), 21), ':', ''), '-', ''), ' ', '-') AS tablename, '15' AS tabletype
-- 字段宽度
SELECT 256*20 AS , 256*20 AS ,256*30 AS , 256*40 AS , 256*15 AS , 256*12 AS ,
256*12 AS , 256*12 AS , 256*10 AS , 256*15 AS , 256*15 AS , 256*12 AS '工时(h)'
-- 是否计算列
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 '工时(h)'
-- 导出数据:每行都填满完整信息
SELECT
v. AS ,
v.,
v.,
v.,
v.,
v.,
CASE WHEN v. IS NULL THEN '' WHEN v. = FLOOR(v.) THEN CAST(CAST(v. AS INT) AS VARCHAR(20)) ELSE CAST(CAST(v. AS DECIMAL(10,1)) AS VARCHAR(20)) END AS ,
CASE WHEN v. IS NULL THEN '' WHEN v. = FLOOR(v.) THEN CAST(CAST(v. AS INT) AS VARCHAR(20)) ELSE CAST(CAST(v. AS DECIMAL(10,1)) AS VARCHAR(20)) END AS ,
CASE WHEN v. IN ('报工', '辅助结束') THEN CAST(v. AS VARCHAR(20)) ELSE '0' END AS ,
CONVERT(VARCHAR(10), v., 120) AS ,
CONVERT(VARCHAR(10), v., 120) AS ,
CAST(CAST(v. / 60.0 / 60.0 AS DECIMAL(10,2)) AS VARCHAR(20)) AS '工时(h)'
FROM View_生产工时视图 v
WHERE(@ IS NULL OR @ = '' OR >= @)
AND (@ IS NULL OR @ = '' OR <= @)
AND (@ IS NULL OR @ = '' OR v. LIKE '%' + @ + '%')
AND (@ IS NULL OR @ = '' OR v. LIKE '%' + @ + '%')
AND (@ IS NULL OR @ = '' OR v. LIKE '%' + @ + '%')
AND (@ IS NULL OR @ = '' OR v. LIKE '%' + @ + '%')
AND (@ IS NULL OR @ = '' OR v. LIKE '%' + @ + '%')
ORDER BY v., v., v., v.,v.
END

View File

@@ -0,0 +1,196 @@
CREATE PROCEDURE [dbo].[_生产计划跟踪]
@ int = 0,
@ nvarchar(50) = '', --
@ nvarchar(50) = '',
@ nvarchar(50) = '',
@ nvarchar(50) = '',
@ nvarchar(50) = '',
@1 nvarchar(50) = '',
@2 nvarchar(50) = '',
@1 nvarchar(50) = '',
@2 nvarchar(50) = '',
@1 nvarchar(50) = '',
@2 nvarchar(50) = '',
@ nvarchar(50) = '全部', --
@ nvarchar(50) = '全部',
@ nvarchar(50) = '全部',
@ nvarchar(50) = '',
@ nvarchar(50) = '',
@ nvarchar(50) = ''
AS
BEGIN
DECLARE @selectStr NVARCHAR(MAX)
DECLARE @selectStrWhere NVARCHAR(4000) = ' WHERE [物料类型] = ''pit_Resource'' '
SET @selectStr = N'
SELECT top 500
v.计划号,
加急总数,
拣配状态,
自制件属性,
入库数量,
外协分组,
case
when isnull(任务状态,0)=4 then ''已完成''
when isnull(任务状态,0)=2 then ''已开工''
when isnull(任务状态,0)=0 then ''待执行''
when isnull(任务状态,0)=1 then ''可执行''
else ''''
end as [任务状态],
case
when isnull(加工状态,0)=2 then ''辅助开始''
when isnull(加工状态,0)=3 then ''辅助结束''
when isnull(加工状态,0)=4 then ''开始加工''
when isnull(加工状态,0)=5 then ''暂停''
when isnull(加工状态,0)=6 then ''报工''
else ''''
end as [加工状态],
[计划数量订单],
ISNULL(开工时间, 0) AS 开工时间,
ISNULL(进度, 0) AS 进度,
v.[TaskAID],
[合同号],
v.[订单编号] AS 订单号,
[订单行号],
[订单拆分内码] AS 拆分内码,
[物料编号] AS 产品编码,
[物料描述] AS 产品名称,
TRIM(''.'' FROM TRIM(''0'' FROM CAST([计划数量] AS VARCHAR(30)))) AS 计划数量,
[计划完成] AS 要求完工日期,
[工序名称],
完成数量,
收料数量,
CASE
WHEN [加急状态] = 1 THEN ''加急''
ELSE ''''
END AS 加急状态,
加急数量,
性质,
ISNULL(总工时, 0) AS 总工时,
[占用情况],
[排产状态],
[工序计划数量],
指派对象编号,
指派对象,
TRIM(''.'' FROM TRIM(''0'' FROM CAST([指派数量] AS VARCHAR(30)))) AS 指派数量,
计划开始时间,
计划完成时间,
最晚开始时间,
[派工状态],
[外协通知],
[优先级],
[未完成说明],
[派工特殊说明],
[最后编辑人],
[最后编辑时间],
[二次派工],
CASE
WHEN zj_终检.计划号 IS NOT NULL THEN ''''
ELSE ''''
END AS 终检,
-- 新增收检相关字段
ISNULL(zj_收检.合格数合计, 0) AS 收检合格数,
ISNULL(zj_收检.不合格数合计, 0) AS 收检不合格数,
ISNULL(zj_收检.合格数合计, 0) + ISNULL(zj_收检.不合格数合计, 0) AS 收检总数,
ISNULL(jl.开始时间, 0) AS 开始时间,
ISNULL(jl.结束时间, 0) AS 结束时间,
ISNULL(jl.外协结束时间, 0) AS 外协结束时间,
STUFF((
SELECT '','' + d2.工序名称
FROM [dbo].[View_生产订单_MES] d2
WHERE d2.订单编号 = v.订单编号 order by d2.订单行号
FOR XML PATH('''')
), 1, 1, '''') AS 工艺路线
FROM [dbo].[View_生产订单全部包括已关闭] v
-- 终检判断
LEFT JOIN (
SELECT DISTINCT 计划号
FROM dbo.YL_质量检验_质检记录
WHERE 质检类型 = ''终检''
) zj_终检 ON v.[订单编号] = zj_终检.计划号
-- 收检数量统计
LEFT JOIN (
SELECT
TaskAID,
SUM(ISNULL(合格数, 0)) AS 合格数合计,
SUM(ISNULL(不合格数, 0)) AS 不合格数合计
FROM dbo.YL_质量检验_质检记录
WHERE 质检类型 = ''收检''
GROUP BY TaskAID
) zj_收检 ON v.[TaskAID] = zj_收检.TaskAID
LEFT JOIN (
SELECT
TaskAID,
min(ISNULL(开始时间, 0)) AS 开始时间,
MAX(CASE WHEN 操作类别 = ''报工'' THEN ISNULL(开始时间, 0) ELSE NULL END) AS 外协结束时间,
MAX(CASE WHEN 操作类别 = ''报工'' THEN ISNULL(结束时间, 0) ELSE NULL END) AS 结束时间
FROM [dbo].[YL_加工中心_操作记录表]
GROUP BY TaskAID
) jl ON v.[TaskAID] = jl.TaskAID'
-- 添加筛选条件
IF (@ > 0)
SET @selectStrWhere = @selectStrWhere + ' AND [订单编号] = ' + CONVERT(VARCHAR(10), @)
IF (@ > 0)
SET @selectStrWhere = @selectStrWhere + ' AND v.[计划号] = '''+@+''''
IF (@ <> '')
SET @selectStrWhere = @selectStrWhere + ' AND [合同号] LIKE ''%' + @ + '%'''
IF (@ <> '')
SET @selectStrWhere = @selectStrWhere + ' AND [物料编号] LIKE ''%' + @ + '%'''
IF (@ <> '')
SET @selectStrWhere = @selectStrWhere + ' AND [物料描述] LIKE ''%' + @ + '%'''
IF (@ <> '')
SET @selectStrWhere = @selectStrWhere + ' AND [工序名称] = ''' + @ + ''''
IF (@1 <> '')
SET @selectStrWhere = @selectStrWhere + ' AND [计划完成] >= ''' + @1 + ''''
IF (@2 <> '')
SET @selectStrWhere = @selectStrWhere + ' AND [计划完成] <= ''' + @2 + ''''
IF (@1 <> '')
SET @selectStrWhere = @selectStrWhere + ' AND [计划开始时间] >= ''' + @1 + ''''
IF (@2 <> '')
SET @selectStrWhere = @selectStrWhere + ' AND [计划开始时间] <= ''' + @2 + ''''
IF (@1 <> '')
SET @selectStrWhere = @selectStrWhere + ' AND [计划完成时间] >= ''' + @1 + ''''
IF (@2 <> '')
SET @selectStrWhere = @selectStrWhere + ' AND [计划完成时间] <= ''' + @2 + ''''
IF (@ = '未完成')
SET @selectStrWhere = @selectStrWhere + ' AND ISNULL([排产状态], 0) = 0'
ELSE IF (@ = '已完成')
SET @selectStrWhere = @selectStrWhere + ' AND [排产状态] = 1'
IF (@ = '机加')
SET @selectStrWhere = @selectStrWhere + ' AND [自制件属性] = ''机加件'''
ELSE IF (@ = '装配')
SET @selectStrWhere = @selectStrWhere + ' AND [自制件属性] LIKE ''%装配'''
IF (@ = '加急')
SET @selectStrWhere = @selectStrWhere + ' AND [加急状态] = 1'
IF (@ = '正常')
SET @selectStrWhere = @selectStrWhere + ' AND [单据状态] is null'
ELSE IF (@ = '关闭')
SET @selectStrWhere = @selectStrWhere + ' AND [单据状态] is not null'
IF (@ <> '全部')
SET @selectStrWhere = @selectStrWhere + ' AND [指派对象] IN (SELECT value FROM STRING_SPLIT(''' + @ + ''', '',''))'
-- 添加排序
SET @selectStrWhere = @selectStrWhere + ' ORDER BY [计划完成] ASC, [订单编号] ASC'
-- 合并SQL
SET @selectStr = @selectStr + @selectStrWhere
-- 打印SQL调试用
PRINT @selectStr
-- 执行查询
EXEC sp_executesql @selectStr
END