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