237 lines
8.3 KiB
Transact-SQL
237 lines
8.3 KiB
Transact-SQL
USE [ERPTOOL_JY_20250826Back]
|
|
GO
|
|
|
|
SET ANSI_NULLS ON
|
|
GO
|
|
|
|
SET QUOTED_IDENTIFIER ON
|
|
GO
|
|
|
|
-- 员工工时汇总增加工价总价,工价取工序工价当前启用最终单价,总价=完成数量*工价;修改人:Ld 修改时间:2026-07-06 09:12:38;
|
|
ALTER PROCEDURE [dbo].[车间生产管理_工人工时统计_查询数据]
|
|
@开始时间 DATETIME = NULL,
|
|
@结束时间 DATETIME = NULL
|
|
AS
|
|
BEGIN
|
|
SET NOCOUNT ON;
|
|
|
|
SELECT
|
|
SUM(a.工时) AS 加工工时,
|
|
SUM(a.完成数量) AS 总数量,
|
|
SUM(a.总价) AS 总价,
|
|
a.姓名 AS 操作者,
|
|
a.操作者编号
|
|
FROM (
|
|
SELECT
|
|
ISNULL(f.扫码工时, 0) AS 工时,
|
|
p.姓名,
|
|
f.操作者编号,
|
|
f.完成日期,
|
|
f.完成数量,
|
|
ISNULL(f.完成数量, 0) * ISNULL(price.工价, 0) AS 总价
|
|
FROM dbo.设备管理_零件工序_工序完成过程情况 f
|
|
INNER JOIN dbo.人事档案管理_人员名单 p ON f.操作者编号 = p.人员编号
|
|
OUTER APPLY (
|
|
SELECT TOP 1 ISNULL(pp.[最终单价(元/件)], 0) AS 工价
|
|
FROM dbo.车间生产管理工艺_工序工价 pp
|
|
WHERE pp.工序流水号 = f.工序流水号
|
|
AND ISNULL(pp.是否启用, 1) = 1
|
|
ORDER BY ISNULL(pp.生效日期, CONVERT(DATE, '1900-01-01')) DESC, pp.修改时间 DESC, pp.工价流水号 DESC
|
|
) price
|
|
WHERE f.完成日期 >= @开始时间
|
|
AND f.完成日期 <= @结束时间
|
|
) a
|
|
GROUP BY a.姓名, a.操作者编号;
|
|
END
|
|
GO
|
|
|
|
-- 员工工时明细增加工价总价,明细按零件名称+图号+工序匹配工序工价;修改人:Ld 修改时间:2026-07-06 09:12:38;
|
|
ALTER PROCEDURE [dbo].[精工车间_员工工时统计_详情_查询数据]
|
|
@操作者编号 INT = 62,
|
|
@开始时间 DATETIME = NULL,
|
|
@结束时间 DATETIME = NULL,
|
|
@排序名称 INT = NULL,
|
|
@排序方式 INT = NULL
|
|
AS
|
|
BEGIN
|
|
SET NOCOUNT ON;
|
|
|
|
SELECT
|
|
data.*,
|
|
data.加工时长 / NULLIF(data.完成数, 0) AS 单个工时,
|
|
ISNULL(price.工价, 0) AS 工价,
|
|
ISNULL(data.完成数, 0) * ISNULL(price.工价, 0) AS 总价
|
|
FROM dbo.车间生产管理_零件工序加工时长_视图 data
|
|
OUTER APPLY (
|
|
SELECT TOP 1 ISNULL(pp.[最终单价(元/件)], 0) AS 工价
|
|
FROM dbo.车间生产管理工艺_工序工价 pp
|
|
WHERE pp.零件名称 = data.零件名称
|
|
AND pp.图号 = data.图号
|
|
AND pp.工序名称 = data.工序
|
|
AND ISNULL(pp.是否启用, 1) = 1
|
|
ORDER BY ISNULL(pp.生效日期, CONVERT(DATE, '1900-01-01')) DESC, pp.修改时间 DESC, pp.工价流水号 DESC
|
|
) price
|
|
WHERE data.操作者编号 = @操作者编号
|
|
AND data.结束加工 >= @开始时间
|
|
AND data.结束加工 < DATEADD(DAY, 1, @结束时间)
|
|
ORDER BY
|
|
CASE WHEN @排序名称 = 1 AND @排序方式 = 1 THEN data.结束加工 END DESC,
|
|
CASE WHEN @排序名称 = 1 AND @排序方式 <> 1 THEN data.结束加工 END ASC,
|
|
CASE WHEN ISNULL(@排序名称, 0) <> 1 THEN data.结束加工 END DESC;
|
|
END
|
|
GO
|
|
|
|
-- 设备工时汇总增加工价总价,工价取工序工价当前启用最终单价,总价=完成数量*工价;修改人:Ld 修改时间:2026-07-06 09:12:38;
|
|
ALTER PROCEDURE [dbo].[车间生产管理_设备工时统计_查询数据]
|
|
@开始时间 DATETIME = NULL,
|
|
@结束时间 DATETIME = NULL
|
|
AS
|
|
BEGIN
|
|
SET NOCOUNT ON;
|
|
|
|
SELECT
|
|
SUM(a.工时) AS 加工工时,
|
|
a.工位号 AS 设备,
|
|
SUM(a.完成数量) AS 总数量,
|
|
SUM(a.总价) AS 总价
|
|
FROM (
|
|
SELECT
|
|
ISNULL(f.扫码工时, 0) AS 工时,
|
|
e.设备名称 + N'-' + f.工位号 AS 工位号,
|
|
f.完成数量,
|
|
ISNULL(f.完成数量, 0) * ISNULL(price.工价, 0) AS 总价
|
|
FROM dbo.设备管理_零件工序_工序完成过程情况 f
|
|
INNER JOIN dbo.基础数据_设备工位点检表 e ON f.工位号 = e.工位号
|
|
OUTER APPLY (
|
|
SELECT TOP 1 ISNULL(pp.[最终单价(元/件)], 0) AS 工价
|
|
FROM dbo.车间生产管理工艺_工序工价 pp
|
|
WHERE pp.工序流水号 = f.工序流水号
|
|
AND ISNULL(pp.是否启用, 1) = 1
|
|
ORDER BY ISNULL(pp.生效日期, CONVERT(DATE, '1900-01-01')) DESC, pp.修改时间 DESC, pp.工价流水号 DESC
|
|
) price
|
|
WHERE f.完成日期 >= @开始时间
|
|
AND f.完成日期 <= @结束时间
|
|
) a
|
|
GROUP BY a.工位号;
|
|
END
|
|
GO
|
|
|
|
-- 设备工时明细增加工价总价,明细按零件名称+图号+工序匹配工序工价;修改人:Ld 修改时间:2026-07-06 09:12:38;
|
|
ALTER PROCEDURE [dbo].[精工车间_设备工时统计_详情_查询数据]
|
|
@设备 NVARCHAR(50) = NULL,
|
|
@开始时间 DATETIME = NULL,
|
|
@结束时间 DATETIME = NULL,
|
|
@排序名称 INT = NULL,
|
|
@排序方式 INT = NULL
|
|
AS
|
|
BEGIN
|
|
SET NOCOUNT ON;
|
|
|
|
SELECT
|
|
data.*,
|
|
ISNULL(price.工价, 0) AS 工价,
|
|
ISNULL(data.完成数, 0) * ISNULL(price.工价, 0) AS 总价
|
|
FROM dbo.车间生产管理_零件工序加工时长_视图 data
|
|
OUTER APPLY (
|
|
SELECT TOP 1 ISNULL(pp.[最终单价(元/件)], 0) AS 工价
|
|
FROM dbo.车间生产管理工艺_工序工价 pp
|
|
WHERE pp.零件名称 = data.零件名称
|
|
AND pp.图号 = data.图号
|
|
AND pp.工序名称 = data.工序
|
|
AND ISNULL(pp.是否启用, 1) = 1
|
|
ORDER BY ISNULL(pp.生效日期, CONVERT(DATE, '1900-01-01')) DESC, pp.修改时间 DESC, pp.工价流水号 DESC
|
|
) price
|
|
WHERE data.工位号 = @设备
|
|
AND data.结束加工 >= @开始时间
|
|
AND data.结束加工 <= @结束时间
|
|
ORDER BY
|
|
CASE WHEN @排序名称 = 1 AND @排序方式 = 1 THEN data.结束加工 END DESC,
|
|
CASE WHEN @排序名称 = 1 AND @排序方式 <> 1 THEN data.结束加工 END ASC,
|
|
CASE WHEN ISNULL(@排序名称, 0) <> 1 THEN data.结束加工 END DESC;
|
|
END
|
|
GO
|
|
|
|
-- 员工工时导出增加工价总价列,保持与页面明细一致;修改人:Ld 修改时间:2026-07-06 09:12:38;
|
|
ALTER PROCEDURE [dbo].[报表_精工车间_员工工时统计_查询数据]
|
|
@开始时间 DATETIME = NULL,
|
|
@结束时间 DATETIME = NULL,
|
|
@排序名称 INT = NULL,
|
|
@排序方式 INT = NULL
|
|
AS
|
|
BEGIN
|
|
SET NOCOUNT ON;
|
|
|
|
SELECT N'库存_' + REPLACE(REPLACE(REPLACE(CONVERT(NVARCHAR(19), GETDATE(), 21), ':', ''), '-', ''), ' ', '-') AS tablename, '17' AS tabletype;
|
|
|
|
SELECT
|
|
256 * 15 AS 工序,
|
|
256 * 10 AS 工序顺序,
|
|
256 * 30 AS 零件名称,
|
|
256 * 30 AS 零件图号,
|
|
256 * 20 AS 物料编码,
|
|
256 * 10 AS 加工数,
|
|
256 * 15 AS 加工工时M,
|
|
256 * 10 AS 暂停时长,
|
|
256 * 10 AS 工价,
|
|
256 * 12 AS 总价,
|
|
256 * 30 AS 开始加工时间,
|
|
256 * 30 AS 完成时间,
|
|
256 * 10 AS 操作者,
|
|
256 * 25 AS 设备,
|
|
246 * 25 AS 订单编号,
|
|
246 * 25 AS 产品名称;
|
|
|
|
SELECT
|
|
0 AS 工序,
|
|
1 AS 工序顺序,
|
|
0 AS 零件名称,
|
|
0 AS 零件图号,
|
|
0 AS 物料编号,
|
|
1 AS 加工数,
|
|
1 AS 加工工时M,
|
|
1 AS 暂停时长,
|
|
1 AS 工价,
|
|
1 AS 总价,
|
|
0 AS 开始加工时间,
|
|
0 AS 完成时间,
|
|
0 AS 操作者,
|
|
0 AS 设备,
|
|
0 AS 订单编号,
|
|
0 AS 产品名称;
|
|
|
|
SELECT
|
|
data.工序,
|
|
data.工序顺序,
|
|
data.零件名称,
|
|
data.图号 AS 零件图号,
|
|
data.物料编码,
|
|
data.完成数 AS 加工数,
|
|
data.加工时长 AS 加工工时M,
|
|
data.暂停时间 AS 暂停时长,
|
|
ISNULL(price.工价, 0) AS 工价,
|
|
ISNULL(data.完成数, 0) * ISNULL(price.工价, 0) AS 总价,
|
|
data.开始加工 AS 开始加工时间,
|
|
data.结束加工 AS 完成时间,
|
|
data.操作者,
|
|
data.工位号 AS 设备,
|
|
data.订单编号,
|
|
data.产品名称
|
|
FROM dbo.车间生产管理_零件工序加工时长_视图 data
|
|
OUTER APPLY (
|
|
SELECT TOP 1 ISNULL(pp.[最终单价(元/件)], 0) AS 工价
|
|
FROM dbo.车间生产管理工艺_工序工价 pp
|
|
WHERE pp.零件名称 = data.零件名称
|
|
AND pp.图号 = data.图号
|
|
AND pp.工序名称 = data.工序
|
|
AND ISNULL(pp.是否启用, 1) = 1
|
|
ORDER BY ISNULL(pp.生效日期, CONVERT(DATE, '1900-01-01')) DESC, pp.修改时间 DESC, pp.工价流水号 DESC
|
|
) price
|
|
WHERE data.结束加工 >= @开始时间
|
|
AND data.结束加工 <= @结束时间
|
|
ORDER BY
|
|
CASE WHEN @排序名称 = 1 AND @排序方式 = 1 THEN data.结束加工 END DESC,
|
|
CASE WHEN @排序名称 = 1 AND @排序方式 <> 1 THEN data.结束加工 END ASC,
|
|
CASE WHEN ISNULL(@排序名称, 0) <> 1 THEN data.结束加工 END DESC;
|
|
END
|
|
GO
|