更新装配、精工车间、技术中心、仓储模块,新增工序工价、生产审核、三楼仓库可视化等功能及文档SQL
This commit is contained in:
236
sql/工时统计_添加工价总价.sql
Normal file
236
sql/工时统计_添加工价总价.sql
Normal file
@@ -0,0 +1,236 @@
|
||||
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
|
||||
Reference in New Issue
Block a user