增加刀具寿命界面
This commit is contained in:
45
sql/EquipmentOperationAnalysis/设备管理_刀具寿命_明细_查询.sql
Normal file
45
sql/EquipmentOperationAnalysis/设备管理_刀具寿命_明细_查询.sql
Normal file
@@ -0,0 +1,45 @@
|
||||
IF OBJECT_ID(N'dbo.设备管理_刀具寿命_明细_查询', N'P') IS NOT NULL
|
||||
DROP PROCEDURE dbo.设备管理_刀具寿命_明细_查询
|
||||
GO
|
||||
|
||||
CREATE PROCEDURE dbo.设备管理_刀具寿命_明细_查询
|
||||
@设备编号 NVARCHAR(100) = N''
|
||||
AS
|
||||
BEGIN
|
||||
SET NOCOUNT ON
|
||||
|
||||
SELECT
|
||||
LTRIM(RTRIM(所在工位号)) AS 设备编号,
|
||||
LTRIM(RTRIM(所在工位号)) AS 设备名称,
|
||||
ISNULL(名称, '') AS 刀具名称,
|
||||
ISNULL(刀具代码, '') AS 刀具代码,
|
||||
ISNULL(刀具组号, '') AS 刀具组号,
|
||||
ISNULL(规格, '') AS 规格,
|
||||
ISNULL(型号, '') AS 型号,
|
||||
CAST(ISNULL(刀具额定寿命, 0) AS DECIMAL(18, 2)) AS 额定寿命,
|
||||
CAST(ISNULL(已用寿命, 0) AS DECIMAL(18, 2)) AS 已用寿命,
|
||||
CAST(ISNULL(预警值1, 0) AS DECIMAL(18, 2)) AS 预警值1,
|
||||
CAST(ISNULL(刀具额定寿命, 0) - ISNULL(已用寿命, 0) AS DECIMAL(18, 2)) AS 剩余寿命,
|
||||
CASE
|
||||
WHEN ISNULL(刀具额定寿命, 0) > 0 AND ISNULL(已用寿命, 0) >= ISNULL(刀具额定寿命, 0) THEN N'报废'
|
||||
WHEN ISNULL(预警值1, 0) > 0 AND ISNULL(已用寿命, 0) >= ISNULL(预警值1, 0) THEN N'预警'
|
||||
ELSE N'正常'
|
||||
END AS 状态,
|
||||
所属工艺,
|
||||
采购日期,
|
||||
装刀到工位日期,
|
||||
操作时间
|
||||
FROM dbo.设备管理_刀具设备台账
|
||||
WHERE ISNULL(LTRIM(RTRIM(@设备编号)), '') = ''
|
||||
OR LTRIM(RTRIM(所在工位号)) = LTRIM(RTRIM(@设备编号))
|
||||
ORDER BY
|
||||
LTRIM(RTRIM(所在工位号)),
|
||||
CASE
|
||||
WHEN ISNULL(刀具额定寿命, 0) > 0 AND ISNULL(已用寿命, 0) >= ISNULL(刀具额定寿命, 0) THEN 3
|
||||
WHEN ISNULL(预警值1, 0) > 0 AND ISNULL(已用寿命, 0) >= ISNULL(预警值1, 0) THEN 2
|
||||
ELSE 1
|
||||
END DESC,
|
||||
ISNULL(名称, ''),
|
||||
ISNULL(刀具代码, '')
|
||||
END
|
||||
GO
|
||||
23
sql/EquipmentOperationAnalysis/设备管理_刀具寿命_机床列表_查询.sql
Normal file
23
sql/EquipmentOperationAnalysis/设备管理_刀具寿命_机床列表_查询.sql
Normal file
@@ -0,0 +1,23 @@
|
||||
IF OBJECT_ID(N'dbo.设备管理_刀具寿命_机床列表_查询', N'P') IS NOT NULL
|
||||
DROP PROCEDURE dbo.设备管理_刀具寿命_机床列表_查询
|
||||
GO
|
||||
|
||||
CREATE PROCEDURE dbo.设备管理_刀具寿命_机床列表_查询
|
||||
AS
|
||||
BEGIN
|
||||
SET NOCOUNT ON
|
||||
|
||||
/*
|
||||
当前表“设备管理_刀具设备台账”中:
|
||||
1. 设备编号为空
|
||||
2. 所在工位号有实际值,可作为设备/机床维度使用
|
||||
*/
|
||||
|
||||
SELECT DISTINCT
|
||||
LTRIM(RTRIM(所在工位号)) AS 设备编号,
|
||||
LTRIM(RTRIM(所在工位号)) AS 设备名称
|
||||
FROM dbo.设备管理_刀具设备台账
|
||||
WHERE ISNULL(LTRIM(RTRIM(所在工位号)), '') <> ''
|
||||
ORDER BY LTRIM(RTRIM(所在工位号))
|
||||
END
|
||||
GO
|
||||
46
sql/QualityAssurance/质量数据查询_测量数据发动机在线状态_工位JPH_历史.sql
Normal file
46
sql/QualityAssurance/质量数据查询_测量数据发动机在线状态_工位JPH_历史.sql
Normal file
@@ -0,0 +1,46 @@
|
||||
CREATE OR ALTER PROCEDURE [dbo].[质量数据查询_测量数据发动机在线状态_工位JPH_历史]
|
||||
@开始时间 nvarchar(50) = null,
|
||||
@结束时间 nvarchar(50) = null,
|
||||
@工位_check bit = null,
|
||||
@工位列表 nvarchar(max) = null,
|
||||
@订单号_check bit = null,
|
||||
@订单号 nvarchar(50) = null,
|
||||
@产品型号代码_check bit = null,
|
||||
@产品型号代码 nvarchar(50) = null
|
||||
AS
|
||||
BEGIN
|
||||
SET NOCOUNT ON
|
||||
|
||||
DECLARE @startTime datetime = null
|
||||
DECLARE @endTime datetime = null
|
||||
|
||||
IF @开始时间 IS NOT NULL AND LTRIM(RTRIM(@开始时间)) <> N''
|
||||
SET @startTime = CONVERT(datetime, @开始时间 + N' 00:00:00', 120)
|
||||
|
||||
IF @结束时间 IS NOT NULL AND LTRIM(RTRIM(@结束时间)) <> N''
|
||||
SET @endTime = CONVERT(datetime, @结束时间 + N' 23:59:59', 120)
|
||||
|
||||
;WITH StationFilter AS (
|
||||
SELECT LTRIM(RTRIM(value)) AS 工位号
|
||||
FROM STRING_SPLIT(ISNULL(@工位列表, N''), N',')
|
||||
WHERE LTRIM(RTRIM(value)) <> N''
|
||||
)
|
||||
SELECT
|
||||
日期 = CONVERT(nvarchar(10), CONVERT(datetime, [离开时间], 120), 23),
|
||||
小时段 = RIGHT('0' + CAST(DATEPART(HOUR, CONVERT(datetime, [离开时间], 120)) AS nvarchar(2)), 2) + N':00',
|
||||
产量 = COUNT(1)
|
||||
FROM [dbo].[测量数据发动机在线状态] m
|
||||
WHERE m.[ID] <> 0
|
||||
AND m.[离开时间] IS NOT NULL
|
||||
AND (@startTime IS NULL OR CONVERT(datetime, m.[离开时间], 120) >= @startTime)
|
||||
AND (@endTime IS NULL OR CONVERT(datetime, m.[离开时间], 120) <= @endTime)
|
||||
AND (ISNULL(@订单号_check, 0) = 0 OR m.[订单号] = @订单号)
|
||||
AND (ISNULL(@产品型号代码_check, 0) = 0 OR m.[机型代码] = @产品型号代码)
|
||||
AND (ISNULL(@工位_check, 0) = 0 OR EXISTS (
|
||||
SELECT 1 FROM StationFilter f WHERE f.工位号 = m.[工位号]
|
||||
))
|
||||
GROUP BY
|
||||
CONVERT(nvarchar(10), CONVERT(datetime, m.[离开时间], 120), 23),
|
||||
DATEPART(HOUR, CONVERT(datetime, m.[离开时间], 120))
|
||||
ORDER BY 日期, 小时段
|
||||
END
|
||||
23
sql/QualityAssurance/质量数据查询_测量数据发动机在线状态_工位JPH_历史_导出.sql
Normal file
23
sql/QualityAssurance/质量数据查询_测量数据发动机在线状态_工位JPH_历史_导出.sql
Normal file
@@ -0,0 +1,23 @@
|
||||
CREATE OR ALTER PROCEDURE [dbo].[质量数据查询_测量数据发动机在线状态_工位JPH_历史_导出]
|
||||
@开始时间 nvarchar(50) = null,
|
||||
@结束时间 nvarchar(50) = null,
|
||||
@工位_check bit = null,
|
||||
@工位列表 nvarchar(max) = null,
|
||||
@订单号_check bit = null,
|
||||
@订单号 nvarchar(50) = null,
|
||||
@产品型号代码_check bit = null,
|
||||
@产品型号代码 nvarchar(50) = null
|
||||
AS
|
||||
BEGIN
|
||||
SET NOCOUNT ON
|
||||
|
||||
EXEC [dbo].[质量数据查询_测量数据发动机在线状态_工位JPH_历史]
|
||||
@开始时间 = @开始时间,
|
||||
@结束时间 = @结束时间,
|
||||
@工位_check = @工位_check,
|
||||
@工位列表 = @工位列表,
|
||||
@订单号_check = @订单号_check,
|
||||
@订单号 = @订单号,
|
||||
@产品型号代码_check = @产品型号代码_check,
|
||||
@产品型号代码 = @产品型号代码
|
||||
END
|
||||
25
sql/QualityAssurance/质量数据查询_测量数据发动机在线状态_工位JPH_实时.sql
Normal file
25
sql/QualityAssurance/质量数据查询_测量数据发动机在线状态_工位JPH_实时.sql
Normal file
@@ -0,0 +1,25 @@
|
||||
CREATE OR ALTER PROCEDURE [dbo].[质量数据查询_测量数据发动机在线状态_工位JPH_实时]
|
||||
@开始时间 nvarchar(50) = null,
|
||||
@结束时间 nvarchar(50) = null,
|
||||
@工位_check bit = null,
|
||||
@工位列表 nvarchar(max) = null,
|
||||
@订单号_check bit = null,
|
||||
@订单号 nvarchar(50) = null,
|
||||
@产品型号代码_check bit = null,
|
||||
@产品型号代码 nvarchar(50) = null
|
||||
AS
|
||||
BEGIN
|
||||
SET NOCOUNT ON
|
||||
|
||||
DECLARE @today nvarchar(10) = CONVERT(nvarchar(10), GETDATE(), 23)
|
||||
|
||||
EXEC [dbo].[质量数据查询_测量数据发动机在线状态_工位JPH_历史]
|
||||
@开始时间 = @today,
|
||||
@结束时间 = @today,
|
||||
@工位_check = @工位_check,
|
||||
@工位列表 = @工位列表,
|
||||
@订单号_check = @订单号_check,
|
||||
@订单号 = @订单号,
|
||||
@产品型号代码_check = @产品型号代码_check,
|
||||
@产品型号代码 = @产品型号代码
|
||||
END
|
||||
71
sql/QualityAssurance/质量数据查询_测量数据发动机在线状态_工位节拍统计.sql
Normal file
71
sql/QualityAssurance/质量数据查询_测量数据发动机在线状态_工位节拍统计.sql
Normal file
@@ -0,0 +1,71 @@
|
||||
CREATE OR ALTER PROCEDURE [dbo].[质量数据查询_测量数据发动机在线状态_工位节拍统计]
|
||||
@开始时间 nvarchar(50) = null,
|
||||
@结束时间 nvarchar(50) = null,
|
||||
@工位_check bit = null,
|
||||
@工位列表 nvarchar(max) = null,
|
||||
@订单号_check bit = null,
|
||||
@订单号 nvarchar(50) = null,
|
||||
@产品型号代码_check bit = null,
|
||||
@产品型号代码 nvarchar(50) = null
|
||||
AS
|
||||
BEGIN
|
||||
SET NOCOUNT ON
|
||||
|
||||
DECLARE @startTime datetime = null
|
||||
DECLARE @endTime datetime = null
|
||||
|
||||
IF @开始时间 IS NOT NULL AND LTRIM(RTRIM(@开始时间)) <> N''
|
||||
SET @startTime = CONVERT(datetime, @开始时间 + N' 00:00:00', 120)
|
||||
|
||||
IF @结束时间 IS NOT NULL AND LTRIM(RTRIM(@结束时间)) <> N''
|
||||
SET @endTime = CONVERT(datetime, @结束时间 + N' 23:59:59', 120)
|
||||
|
||||
;WITH StationFilter AS (
|
||||
SELECT LTRIM(RTRIM(value)) AS 工位号
|
||||
FROM STRING_SPLIT(ISNULL(@工位列表, N''), N',')
|
||||
WHERE LTRIM(RTRIM(value)) <> N''
|
||||
),
|
||||
SourceData AS (
|
||||
SELECT
|
||||
s.[工位号] AS 工位,
|
||||
CONVERT(nvarchar(10), CONVERT(datetime, m.[离开时间], 120), 23) AS 日期,
|
||||
CAST(m.[在线时间] AS decimal(18, 2)) AS 在线时间
|
||||
FROM [dbo].[测量数据发动机在线状态] m
|
||||
INNER JOIN [dbo].[MES_计划BOM_工位与名称] s
|
||||
ON m.[工位号] = s.[工位号]
|
||||
WHERE m.[ID] <> 0
|
||||
AND m.[离开时间] IS NOT NULL
|
||||
AND m.[在线时间] IS NOT NULL
|
||||
AND ISNUMERIC(CONVERT(nvarchar(50), m.[在线时间])) = 1
|
||||
AND (@startTime IS NULL OR CONVERT(datetime, m.[离开时间], 120) >= @startTime)
|
||||
AND (@endTime IS NULL OR CONVERT(datetime, m.[离开时间], 120) <= @endTime)
|
||||
AND (ISNULL(@订单号_check, 0) = 0 OR m.[订单号] = @订单号)
|
||||
AND (ISNULL(@产品型号代码_check, 0) = 0 OR m.[机型代码] = @产品型号代码)
|
||||
AND (ISNULL(@工位_check, 0) = 0 OR EXISTS (
|
||||
SELECT 1 FROM StationFilter f WHERE f.工位号 = m.[工位号]
|
||||
))
|
||||
),
|
||||
DailyAgg AS (
|
||||
SELECT
|
||||
工位,
|
||||
日期,
|
||||
CAST(AVG(在线时间) AS decimal(18, 2)) AS 当日平均节拍
|
||||
FROM SourceData
|
||||
GROUP BY 工位, 日期
|
||||
),
|
||||
TotalAgg AS (
|
||||
SELECT
|
||||
工位,
|
||||
CAST(AVG(在线时间) AS decimal(18, 2)) AS 总平均节拍
|
||||
FROM SourceData
|
||||
GROUP BY 工位
|
||||
)
|
||||
SELECT
|
||||
d.工位,
|
||||
t.总平均节拍,
|
||||
d.日期,
|
||||
d.当日平均节拍
|
||||
FROM DailyAgg d
|
||||
INNER JOIN TotalAgg t ON d.工位 = t.工位
|
||||
ORDER BY d.工位, d.日期
|
||||
END
|
||||
140
sql/QualityAssurance/质量数据查询_测量数据发动机在线状态_工位节拍统计_导出.sql
Normal file
140
sql/QualityAssurance/质量数据查询_测量数据发动机在线状态_工位节拍统计_导出.sql
Normal file
@@ -0,0 +1,140 @@
|
||||
CREATE OR ALTER PROCEDURE [dbo].[质量数据查询_测量数据发动机在线状态_工位节拍统计_导出]
|
||||
@开始时间 nvarchar(50) = null,
|
||||
@结束时间 nvarchar(50) = null,
|
||||
@工位_check bit = null,
|
||||
@工位列表 nvarchar(max) = null,
|
||||
@订单号_check bit = null,
|
||||
@订单号 nvarchar(50) = null,
|
||||
@产品型号代码_check bit = null,
|
||||
@产品型号代码 nvarchar(50) = null
|
||||
AS
|
||||
BEGIN
|
||||
SET NOCOUNT ON
|
||||
|
||||
DECLARE @startTime datetime = null
|
||||
DECLARE @endTime datetime = null
|
||||
DECLARE @cols nvarchar(max) = N''
|
||||
DECLARE @sql nvarchar(max)
|
||||
|
||||
IF @开始时间 IS NOT NULL AND LTRIM(RTRIM(@开始时间)) <> N''
|
||||
SET @startTime = CONVERT(datetime, @开始时间 + N' 00:00:00', 120)
|
||||
|
||||
IF @结束时间 IS NOT NULL AND LTRIM(RTRIM(@结束时间)) <> N''
|
||||
SET @endTime = CONVERT(datetime, @结束时间 + N' 23:59:59', 120)
|
||||
|
||||
;WITH StationFilter AS (
|
||||
SELECT LTRIM(RTRIM(value)) AS 工位号
|
||||
FROM STRING_SPLIT(ISNULL(@工位列表, N''), N',')
|
||||
WHERE LTRIM(RTRIM(value)) <> N''
|
||||
),
|
||||
SourceData AS (
|
||||
SELECT
|
||||
m.[工位号] AS 工位,
|
||||
CONVERT(nvarchar(10), CONVERT(datetime, m.[离开时间], 120), 23) AS 日期,
|
||||
CAST(m.[在线时间] AS decimal(18, 2)) AS 在线时间
|
||||
FROM [dbo].[测量数据发动机在线状态] m
|
||||
INNER JOIN [dbo].[MES_计划BOM_工位与名称] s
|
||||
ON m.[工位号] = s.[工位号]
|
||||
WHERE m.[ID] <> 0
|
||||
AND m.[离开时间] IS NOT NULL
|
||||
AND m.[在线时间] IS NOT NULL
|
||||
AND ISNUMERIC(CONVERT(nvarchar(50), m.[在线时间])) = 1
|
||||
AND (@startTime IS NULL OR CONVERT(datetime, m.[离开时间], 120) >= @startTime)
|
||||
AND (@endTime IS NULL OR CONVERT(datetime, m.[离开时间], 120) <= @endTime)
|
||||
AND (ISNULL(@订单号_check, 0) = 0 OR m.[订单号] = @订单号)
|
||||
AND (ISNULL(@产品型号代码_check, 0) = 0 OR m.[机型代码] = @产品型号代码)
|
||||
AND (ISNULL(@工位_check, 0) = 0 OR EXISTS (
|
||||
SELECT 1 FROM StationFilter f WHERE f.工位号 = m.[工位号]
|
||||
))
|
||||
),
|
||||
DailyAgg AS (
|
||||
SELECT
|
||||
工位,
|
||||
日期,
|
||||
CAST(AVG(在线时间) AS decimal(18, 2)) AS 当日平均节拍
|
||||
FROM SourceData
|
||||
GROUP BY 工位, 日期
|
||||
)
|
||||
SELECT @cols = STUFF((
|
||||
SELECT N',' + QUOTENAME(日期)
|
||||
FROM (SELECT DISTINCT 日期 FROM DailyAgg) d
|
||||
ORDER BY 日期
|
||||
FOR XML PATH(''), TYPE
|
||||
).value('.', 'nvarchar(max)'), 1, 1, N'')
|
||||
|
||||
IF ISNULL(@cols, N'') = N''
|
||||
BEGIN
|
||||
SELECT CAST(N'' AS nvarchar(50)) AS 工位, CAST(0 AS decimal(18, 2)) AS 总平均节拍
|
||||
WHERE 1 = 0
|
||||
RETURN
|
||||
END
|
||||
|
||||
SET @sql = N'
|
||||
;WITH StationFilter AS (
|
||||
SELECT LTRIM(RTRIM(value)) AS 工位号
|
||||
FROM STRING_SPLIT(ISNULL(@工位列表, N''''), N'','')
|
||||
WHERE LTRIM(RTRIM(value)) <> N''''
|
||||
),
|
||||
SourceData AS (
|
||||
SELECT
|
||||
m.[工位号] AS 工位,
|
||||
CONVERT(nvarchar(10), CONVERT(datetime, m.[离开时间], 120), 23) AS 日期,
|
||||
CAST(m.[在线时间] AS decimal(18, 2)) AS 在线时间
|
||||
FROM [dbo].[测量数据发动机在线状态] m
|
||||
INNER JOIN [dbo].[MES_计划BOM_工位与名称] s
|
||||
ON m.[工位号] = s.[工位号]
|
||||
WHERE m.[ID] <> 0
|
||||
AND m.[离开时间] IS NOT NULL
|
||||
AND m.[在线时间] IS NOT NULL
|
||||
AND ISNUMERIC(CONVERT(nvarchar(50), m.[在线时间])) = 1
|
||||
AND (@startTime IS NULL OR CONVERT(datetime, m.[离开时间], 120) >= @startTime)
|
||||
AND (@endTime IS NULL OR CONVERT(datetime, m.[离开时间], 120) <= @endTime)
|
||||
AND (ISNULL(@订单号_check, 0) = 0 OR m.[订单号] = @订单号)
|
||||
AND (ISNULL(@产品型号代码_check, 0) = 0 OR m.[机型代码] = @产品型号代码)
|
||||
AND (ISNULL(@工位_check, 0) = 0 OR EXISTS (
|
||||
SELECT 1 FROM StationFilter f WHERE f.工位号 = m.[工位号]
|
||||
))
|
||||
),
|
||||
DailyAgg AS (
|
||||
SELECT
|
||||
工位,
|
||||
日期,
|
||||
CAST(AVG(在线时间) AS decimal(18, 2)) AS 当日平均节拍
|
||||
FROM SourceData
|
||||
GROUP BY 工位, 日期
|
||||
),
|
||||
TotalAgg AS (
|
||||
SELECT
|
||||
工位,
|
||||
CAST(AVG(在线时间) AS decimal(18, 2)) AS 总平均节拍
|
||||
FROM SourceData
|
||||
GROUP BY 工位
|
||||
),
|
||||
PivotData AS (
|
||||
SELECT 工位, 日期, 当日平均节拍
|
||||
FROM DailyAgg
|
||||
)
|
||||
SELECT 工位, 总平均节拍, ' + @cols + N'
|
||||
FROM (
|
||||
SELECT p.工位, t.总平均节拍, p.日期, p.当日平均节拍
|
||||
FROM PivotData p
|
||||
INNER JOIN TotalAgg t ON p.工位 = t.工位
|
||||
) src
|
||||
PIVOT (
|
||||
MAX(当日平均节拍)
|
||||
FOR 日期 IN (' + @cols + N')
|
||||
) p
|
||||
ORDER BY 工位'
|
||||
|
||||
EXEC sp_executesql
|
||||
@sql,
|
||||
N'@startTime datetime, @endTime datetime, @工位_check bit, @工位列表 nvarchar(max), @订单号_check bit, @订单号 nvarchar(50), @产品型号代码_check bit, @产品型号代码 nvarchar(50)',
|
||||
@startTime = @startTime,
|
||||
@endTime = @endTime,
|
||||
@工位_check = @工位_check,
|
||||
@工位列表 = @工位列表,
|
||||
@订单号_check = @订单号_check,
|
||||
@订单号 = @订单号,
|
||||
@产品型号代码_check = @产品型号代码_check,
|
||||
@产品型号代码 = @产品型号代码
|
||||
END
|
||||
Reference in New Issue
Block a user