更新装配、精工车间、技术中心、仓储模块,新增工序工价、生产审核、三楼仓库可视化等功能及文档SQL
This commit is contained in:
94
sql/三楼仓库可视化_存储过程.sql
Normal file
94
sql/三楼仓库可视化_存储过程.sql
Normal file
@@ -0,0 +1,94 @@
|
||||
-- 三楼仓库可视化 - 库位查询存储过程
|
||||
-- 创建时间: 2026-06-30
|
||||
-- 说明: 查询三楼仓库库位列表及状态(三段式库位编码: 排号-列号-层号)
|
||||
-- 状态: 0=空闲, 1=有物料无库存, 2=有库存
|
||||
-- 矩阵布局: 竖向排号,横向列号
|
||||
|
||||
IF EXISTS (SELECT name FROM sys.procedures WHERE name = '仓储管理_三楼仓库库位_查询数据')
|
||||
DROP PROCEDURE 仓储管理_三楼仓库库位_查询数据
|
||||
GO
|
||||
|
||||
CREATE PROCEDURE [dbo].[仓储管理_三楼仓库库位_查询数据]
|
||||
@排号_check bit = 0,
|
||||
@排号 nvarchar(50) = NULL,
|
||||
@库位编号_check bit = 0,
|
||||
@库位编号 nvarchar(50) = NULL,
|
||||
@库位状态_check bit = 0,
|
||||
@库位状态 int = NULL
|
||||
AS
|
||||
BEGIN
|
||||
SET NOCOUNT ON;
|
||||
|
||||
SELECT
|
||||
h.货位名称 AS 库位编号,
|
||||
h.货位名称 AS 库位名称,
|
||||
CASE
|
||||
WHEN EXISTS (SELECT 1 FROM 库存管理_物料与货位对照表 ml WHERE ml.货位流水号 = h.货位流水号 AND ml.货位存量 > 0) THEN 2
|
||||
WHEN EXISTS (SELECT 1 FROM 库存管理_物料主文件_基本 m WHERE m.货位流水号 = h.货位流水号) THEN 1
|
||||
ELSE 0
|
||||
END AS 状态,
|
||||
PARSENAME(REPLACE(h.货位名称, '-', '.'), 3) AS 排号,
|
||||
CAST(PARSENAME(REPLACE(h.货位名称, '-', '.'), 2) AS int) AS 列号,
|
||||
PARSENAME(REPLACE(h.货位名称, '-', '.'), 1) AS 层号,
|
||||
h.货位流水号
|
||||
INTO #TempLocations
|
||||
FROM 库存管理_货位主文件 h
|
||||
WHERE LEN(h.货位名称) - LEN(REPLACE(h.货位名称, '-', '')) = 2
|
||||
AND ISNUMERIC(PARSENAME(REPLACE(h.货位名称, '-', '.'), 3)) = 1
|
||||
|
||||
DECLARE @sql nvarchar(4000)
|
||||
SET @sql = 'SELECT 库位编号, 库位名称, 状态, 排号, 列号, 层号, 货位流水号 FROM #TempLocations WHERE 1=1'
|
||||
|
||||
IF @排号_check = 1 AND @排号 IS NOT NULL
|
||||
SET @sql = @sql + ' AND 排号 = @p_row'
|
||||
|
||||
IF @库位编号_check = 1 AND @库位编号 IS NOT NULL
|
||||
SET @sql = @sql + ' AND 库位编号 LIKE ''%'' + @p_code + ''%'''
|
||||
|
||||
IF @库位状态_check = 1 AND @库位状态 IS NOT NULL
|
||||
SET @sql = @sql + ' AND 状态 = @p_status'
|
||||
|
||||
SET @sql = @sql + ' ORDER BY 排号, 列号, 层号'
|
||||
|
||||
EXEC sp_executesql @sql,
|
||||
N'@p_row nvarchar(50), @p_code nvarchar(50), @p_status int',
|
||||
@p_row = @排号, @p_code = @库位编号, @p_status = @库位状态
|
||||
|
||||
DROP TABLE #TempLocations
|
||||
END
|
||||
GO
|
||||
|
||||
|
||||
-- 三楼仓库可视化 - 库位物料查询存储过程
|
||||
-- 创建时间: 2026-06-30
|
||||
-- 说明: 按库位编号查询三楼仓库库位上的物料明细
|
||||
|
||||
IF EXISTS (SELECT name FROM sys.procedures WHERE name = '仓储管理_三楼仓库库位物料_查询数据')
|
||||
DROP PROCEDURE 仓储管理_三楼仓库库位物料_查询数据
|
||||
GO
|
||||
|
||||
CREATE PROCEDURE [dbo].[仓储管理_三楼仓库库位物料_查询数据]
|
||||
@库位编号_check bit = 0,
|
||||
@库位编号 nvarchar(50) = NULL
|
||||
AS
|
||||
BEGIN
|
||||
SET NOCOUNT ON;
|
||||
|
||||
IF @库位编号_check = 1 AND @库位编号 IS NOT NULL
|
||||
BEGIN
|
||||
SELECT
|
||||
m.物料编码 AS 物料编号,
|
||||
m.名称 AS 物料名称,
|
||||
m.代号 AS 图号,
|
||||
m.规格 AS 规格型号,
|
||||
ISNULL(ml.货位存量, 0) AS 库存数量,
|
||||
ISNULL(m.库存计量单位, '台') AS 单位,
|
||||
ISNULL(ml.批次号, '') AS 批次
|
||||
FROM 库存管理_货位主文件 h
|
||||
INNER JOIN 库存管理_物料主文件_基本 m ON h.货位流水号 = m.货位流水号
|
||||
LEFT JOIN 库存管理_物料与货位对照表 ml ON m.物料流水号 = ml.物料流水号 AND ml.货位流水号 = h.货位流水号
|
||||
WHERE h.货位名称 = @库位编号
|
||||
ORDER BY m.物料编码
|
||||
END
|
||||
END
|
||||
GO
|
||||
238
sql/仓储管理_入库记录_入库单去重.sql
Normal file
238
sql/仓储管理_入库记录_入库单去重.sql
Normal file
@@ -0,0 +1,238 @@
|
||||
-- 入库记录查询关联入库单去重修正
|
||||
-- 修改人:Ld 修改时间:2026-07-02 16:50:22;
|
||||
|
||||
ALTER PROCEDURE [dbo].[仓储管理_入库记录_查询]
|
||||
@物料名称_check bit = null,
|
||||
@物料名称 nvarchar(50)=null,
|
||||
@物料编码_check bit = null,
|
||||
@物料编码 nvarchar(50) = null,
|
||||
@订单号_check bit = null,
|
||||
@订单号 nvarchar(50) = null,
|
||||
@类型_check bit = null,
|
||||
@类型 nvarchar(50) = null,
|
||||
@入库时间_check bit = null,
|
||||
@开始时间 datetime = null,
|
||||
@结束时间 datetime = null,
|
||||
@采购合同_check bit = null,
|
||||
@采购合同流水号 int = null,
|
||||
@供应商_check bit = null,
|
||||
@供应商名称 nvarchar(50) = null,
|
||||
@排序名称 int =null,
|
||||
@排序方式 int =null,
|
||||
@入库单号_check bit = null,
|
||||
@入库单号 varchar(50) = null
|
||||
AS
|
||||
|
||||
declare @selectStr nvarchar(4000)
|
||||
declare @selectStrWhere nvarchar(4000)
|
||||
|
||||
set @selectStr =
|
||||
-- 修改人:Ld 修改时间:2026-07-02 16:50:22; 入库单先按采购合同流水号聚合,避免一合同多入库单行导致入库记录重复。
|
||||
' select A.*,1 as 打印条码数,库存管理_物料主文件_基本.物料编码,采购管理_供应商.供应商编号,货位名称,isnull(累计库存,0) as 库存,入库单去重.入库单号 from (SELECT *
|
||||
FROM 仓储管理_采购入库记录_视图
|
||||
UNION ALL
|
||||
SELECT *
|
||||
FROM 仓储管理_自制入库记录_视图
|
||||
UNION ALL
|
||||
SELECT *
|
||||
FROM 仓储管理_退料入库记录_视图
|
||||
UNION ALL
|
||||
SELECT *
|
||||
FROM 仓储管理_通用入库记录_视图
|
||||
UNION ALL
|
||||
SELECT *
|
||||
FROM 仓储管理_耗材采购入库记录_视图
|
||||
UNION ALL
|
||||
SELECT *
|
||||
FROM 仓储管理_备货入库记录_视图) AS A LEFT JOIN
|
||||
库存管理_物料主文件_基本 ON A.物料流水号 = 库存管理_物料主文件_基本.物料流水号 LEFT JOIN
|
||||
采购管理_供应商 ON A.供应商流水号 = 采购管理_供应商.供应商流水号 LEFT JOIN
|
||||
库存管理_货位主文件 ON 库存管理_物料主文件_基本.货位流水号 = 库存管理_货位主文件.货位流水号 LEFT JOIN
|
||||
库存管理_外购件累计库存 ON 库存管理_物料主文件_基本.物料流水号 = 库存管理_外购件累计库存.物料流水号 LEFT JOIN
|
||||
(SELECT 采购合同流水号, MAX(入库单号) AS 入库单号 FROM 仓储管理_入库单 GROUP BY 采购合同流水号) AS 入库单去重 ON A.采购合同流水号 = 入库单去重.采购合同流水号 '
|
||||
|
||||
set @selectStrWhere = 'where 1 = 1 '
|
||||
|
||||
if(@物料名称_check = 1)
|
||||
set @selectStrWhere = @selectStrWhere+' and replace(isnull(物料名称,''''),'' '','''') + replace(isnull(图号或型号,''''),'' '','''') + 批次编号 like + ''%'' + replace(@物料名称,'' '','''') + ''%'' '
|
||||
if(@物料编码_check = 1)
|
||||
set @selectStrWhere = @selectStrWhere+' and replace(isnull(库存管理_物料主文件_基本.物料编码,''''),'' '','''') like + ''%'' + replace(@物料编码,'' '','''') + ''%'' '
|
||||
if(@入库时间_check = 1)
|
||||
set @selectStrWhere = @selectStrWhere+' and 入库日期 >=@开始时间 and 入库日期 <=@结束时间 '
|
||||
if(@订单号_check = 1)
|
||||
set @selectStrWhere = @selectStrWhere+' and 订单号 like + ''%'' + @订单号 + ''%'' '
|
||||
if(@类型_check = 1)
|
||||
set @selectStrWhere = @selectStrWhere+' and A.类型 = @类型 '
|
||||
if(@采购合同_check = 1)
|
||||
set @selectStrWhere = @selectStrWhere+' and A.采购合同流水号 = @采购合同流水号 '
|
||||
if(@供应商_check = 1)
|
||||
set @selectStrWhere = @selectStrWhere+' and 供应商 = @供应商名称 '
|
||||
if(@入库单号_check = 1)
|
||||
set @selectStrWhere = @selectStrWhere+' and 入库单号 like + ''%'' + @入库单号 + ''%'' '
|
||||
|
||||
if @排序名称 = 1
|
||||
begin
|
||||
if @排序方式 = 1
|
||||
begin
|
||||
set @selectStr = @selectStr+@selectStrWhere+'order by 物料编码 DESC'
|
||||
end
|
||||
else
|
||||
begin
|
||||
set @selectStr = @selectStr+@selectStrWhere+'order by 物料编码 ASC'
|
||||
end
|
||||
end
|
||||
else if @排序名称 = 2
|
||||
begin
|
||||
if @排序方式 = 1
|
||||
begin
|
||||
set @selectStr = @selectStr+@selectStrWhere+'order by 物料名称 DESC'
|
||||
end
|
||||
else
|
||||
begin
|
||||
set @selectStr = @selectStr+@selectStrWhere+'order by 物料名称 ASC'
|
||||
end
|
||||
end
|
||||
else if @排序名称 = 3
|
||||
begin
|
||||
if @排序方式 = 1
|
||||
begin
|
||||
set @selectStr = @selectStr+@selectStrWhere+'order by 图号或型号 DESC'
|
||||
end
|
||||
else
|
||||
begin
|
||||
set @selectStr = @selectStr+@selectStrWhere+'order by 图号或型号 ASC'
|
||||
end
|
||||
end
|
||||
else if @排序名称 = 4
|
||||
begin
|
||||
if @排序方式 = 1
|
||||
begin
|
||||
set @selectStr = @selectStr+@selectStrWhere+'order by 货位名称 DESC'
|
||||
end
|
||||
else
|
||||
begin
|
||||
set @selectStr = @selectStr+@selectStrWhere+'order by 货位名称 ASC'
|
||||
end
|
||||
end
|
||||
else if @排序名称 = 5
|
||||
begin
|
||||
if @排序方式 = 1
|
||||
begin
|
||||
set @selectStr = @selectStr+@selectStrWhere+'order by 批次编号 DESC'
|
||||
end
|
||||
else
|
||||
begin
|
||||
set @selectStr = @selectStr+@selectStrWhere+'order by 批次编号 ASC'
|
||||
end
|
||||
end
|
||||
else if @排序名称 = 6
|
||||
begin
|
||||
if @排序方式 = 1
|
||||
begin
|
||||
set @selectStr = @selectStr+@selectStrWhere+'order by 供应商编号 DESC'
|
||||
end
|
||||
else
|
||||
begin
|
||||
set @selectStr = @selectStr+@selectStrWhere+'order by 供应商编号 ASC'
|
||||
end
|
||||
end
|
||||
else if @排序名称 = 7
|
||||
begin
|
||||
if @排序方式 = 1
|
||||
begin
|
||||
set @selectStr = @selectStr+@selectStrWhere+'order by 采购合同编号 DESC'
|
||||
end
|
||||
else
|
||||
begin
|
||||
set @selectStr = @selectStr+@selectStrWhere+'order by 采购合同编号 ASC'
|
||||
end
|
||||
end
|
||||
else
|
||||
begin
|
||||
set @selectStr = @selectStr+@selectStrWhere + ' order by 入库日期 desc '
|
||||
end
|
||||
|
||||
EXEC sp_executesql @selectStr,N'@物料名称 nvarchar(50),@物料编码 nvarchar(50),@开始时间 datetime,@结束时间 datetime,@订单号 nvarchar(50),@类型 nvarchar(50),@采购合同流水号 int,@供应商名称 nvarchar(50),@入库单号 nvarchar(50) ',
|
||||
@物料名称,@物料编码,@开始时间,@结束时间,@订单号,@类型,@采购合同流水号,@供应商名称,@入库单号
|
||||
GO
|
||||
|
||||
ALTER PROCEDURE [dbo].[仓储管理_入库记录_导出表格_查询]
|
||||
@入库单号_check bit = null,
|
||||
@入库单号 nvarchar(50) = null,
|
||||
@物料名称_check bit = null,
|
||||
@物料名称 nvarchar(50)=null,
|
||||
@物料编码_check bit = null,
|
||||
@物料编码 nvarchar(50) = null,
|
||||
@订单号_check bit = null,
|
||||
@订单号 nvarchar(50) = null,
|
||||
@类型_check bit = null,
|
||||
@类型 nvarchar(50) = null,
|
||||
@入库时间_check bit = null,
|
||||
@开始时间 datetime = null,
|
||||
@结束时间 datetime = null,
|
||||
@采购合同_check bit = null,
|
||||
@采购合同流水号 int = null,
|
||||
@供应商_check bit = null,
|
||||
@供应商名称 nvarchar(50) = null
|
||||
AS
|
||||
|
||||
select '入库记录_'+replace(replace(replace(CONVERT(nvarchar(19),GETDATE(),21),':',''),'-',''),' ','-') as tablename,'15' as tabletype
|
||||
|
||||
select 256*15 as 类型,256*30 as 物料编号,256*30 as 物料名称,256*20 as [图号/型号],256*15 as 单位,256*15 as 入库数,256*15 as 库位,246*20 as 入库日期,256*30 as 入库单号,
|
||||
256*30 as 批次编号,256*15 as 供应商编号,256*30 as 供应商,256*20 as 采购合同,256*30 as 订单号,256*20 as [产品/组件名称],256*20 as 采购备注
|
||||
|
||||
select 0 as 类型,0 as 物料编号,0 as 物料名称,0 as [图号/型号],0 as 单位,1 as 入库数,0 as 库位,0 as 入库日期,0 as 入库单号
|
||||
,0 as 批次编号,0 as 供应商编号,0 as 供应商,0 as 采购合同,0 as 订单号,0 as [产品/组件名称],0 as 采购备注
|
||||
|
||||
declare @selectStr nvarchar(4000)
|
||||
declare @selectStrWhere nvarchar(4000)
|
||||
|
||||
set @selectStr =
|
||||
-- 修改人:Ld 修改时间:2026-07-02 16:50:22; 入库单先按采购合同流水号聚合,保持导出与页面查询去重口径一致。
|
||||
' select A.类型,库存管理_物料主文件_基本.物料编码 AS 物料编号,A.物料名称,A.图号或型号 AS [图号/型号],A.单位,A.入库数,货位名称,A.入库日期,
|
||||
A.批次编号,采购管理_供应商.供应商编号,A.供应商,A.采购合同编号 AS 采购合同,A.订单号,A.产品名称 AS [产品/组件名称],A.备注,入库单去重.入库单号 from (SELECT *
|
||||
FROM 仓储管理_采购入库记录_视图
|
||||
UNION ALL
|
||||
SELECT *
|
||||
FROM 仓储管理_自制入库记录_视图
|
||||
UNION ALL
|
||||
SELECT *
|
||||
FROM 仓储管理_退料入库记录_视图
|
||||
UNION ALL
|
||||
SELECT *
|
||||
FROM 仓储管理_通用入库记录_视图
|
||||
UNION ALL
|
||||
SELECT *
|
||||
FROM 仓储管理_耗材采购入库记录_视图
|
||||
UNION ALL
|
||||
SELECT *
|
||||
FROM 仓储管理_备货入库记录_视图) AS A LEFT JOIN
|
||||
库存管理_物料主文件_基本 ON A.物料流水号 = 库存管理_物料主文件_基本.物料流水号 LEFT JOIN
|
||||
采购管理_供应商 ON A.供应商流水号 = 采购管理_供应商.供应商流水号 LEFT JOIN
|
||||
库存管理_货位主文件 ON 库存管理_物料主文件_基本.货位流水号 = 库存管理_货位主文件.货位流水号 LEFT JOIN
|
||||
(SELECT 采购合同流水号, MAX(入库单号) AS 入库单号 FROM 仓储管理_入库单 GROUP BY 采购合同流水号) AS 入库单去重 ON A.采购合同流水号 = 入库单去重.采购合同流水号 '
|
||||
|
||||
set @selectStrWhere = 'where 1 = 1 '
|
||||
|
||||
if(@物料名称_check = 1)
|
||||
set @selectStrWhere = @selectStrWhere+' and replace(isnull(物料名称,''''),'' '','''') + replace(isnull(图号或型号,''''),'' '','''') like + ''%'' + replace(@物料名称,'' '','''') + ''%'' '
|
||||
if(@物料编码_check = 1)
|
||||
set @selectStrWhere = @selectStrWhere+' and replace(isnull(库存管理_物料主文件_基本.物料编码,''''),'' '','''') like + ''%'' + replace(@物料编码,'' '','''') + ''%'' '
|
||||
if(@入库时间_check = 1)
|
||||
set @selectStrWhere = @selectStrWhere+' and 入库日期 >=@开始时间 and 入库日期 <=@结束时间 '
|
||||
if(@订单号_check = 1)
|
||||
set @selectStrWhere = @selectStrWhere+' and 订单号 like + ''%'' + @订单号 + ''%'' '
|
||||
if(@类型_check = 1)
|
||||
set @selectStrWhere = @selectStrWhere+' and A.类型 = @类型 '
|
||||
if(@采购合同_check = 1)
|
||||
set @selectStrWhere = @selectStrWhere+' and 采购合同流水号 = @采购合同流水号 '
|
||||
if(@供应商_check = 1)
|
||||
set @selectStrWhere = @selectStrWhere+' and 供应商 = @供应商名称 '
|
||||
if(@入库单号_check = 1)
|
||||
set @selectStrWhere = @selectStrWhere+' and 入库单号 like + ''%'' + @入库单号 + ''%'' '
|
||||
|
||||
set @selectStr = @selectStr+@selectStrWhere+'order by 入库日期 DESC'
|
||||
|
||||
EXEC sp_executesql @selectStr,N'@物料名称 nvarchar(50),@物料编码 nvarchar(50),@开始时间 datetime,@结束时间 datetime,@订单号 nvarchar(50),@类型 nvarchar(50),@采购合同流水号 int,@供应商名称 nvarchar(50),@入库单号 nvarchar(50) ',
|
||||
@物料名称,@物料编码,@开始时间,@结束时间,@订单号,@类型,@采购合同流水号,@供应商名称,@入库单号
|
||||
GO
|
||||
1037
sql/工序工价_存储过程.sql
Normal file
1037
sql/工序工价_存储过程.sql
Normal file
File diff suppressed because it is too large
Load Diff
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
|
||||
381
sql/机加工MES_加工完成整修审核_查询审核.sql
Normal file
381
sql/机加工MES_加工完成整修审核_查询审核.sql
Normal file
@@ -0,0 +1,381 @@
|
||||
-- 生产完成审核查询与审核处理 修改人:Ld 修改时间:2026-07-02 13:57:18;
|
||||
IF OBJECT_ID(N'[dbo].[机加工MES_加工完成整修审核_查询数据]', N'P') IS NOT NULL
|
||||
DROP PROCEDURE [dbo].[机加工MES_加工完成整修审核_查询数据];
|
||||
GO
|
||||
|
||||
CREATE PROCEDURE [dbo].[机加工MES_加工完成整修审核_查询数据]
|
||||
@审核状态_check INT = 0,
|
||||
@审核状态 NVARCHAR(20) = N'',
|
||||
@审核类型_check INT = 0,
|
||||
@审核类型 NVARCHAR(50) = N'',
|
||||
@操作者_check INT = 0,
|
||||
@操作者 NVARCHAR(100) = N'',
|
||||
@时间_check INT = 0,
|
||||
@开始时间 NVARCHAR(20) = N'',
|
||||
@结束时间 NVARCHAR(20) = N'',
|
||||
@PageCurrent INT = 1,
|
||||
@PageSize INT = 100
|
||||
AS
|
||||
BEGIN
|
||||
SET NOCOUNT ON;
|
||||
|
||||
IF @PageCurrent IS NULL OR @PageCurrent < 1 SET @PageCurrent = 1;
|
||||
IF @PageSize IS NULL OR @PageSize < 1 SET @PageSize = 100;
|
||||
|
||||
;WITH AuditData AS (
|
||||
SELECT
|
||||
ROW_NUMBER() OVER (
|
||||
ORDER BY
|
||||
CASE WHEN A.审核状态 = N'待审核' THEN 0 ELSE 1 END,
|
||||
A.提交时间 DESC,
|
||||
A.id DESC
|
||||
) AS RowNum,
|
||||
A.id,
|
||||
A.审核类型,
|
||||
A.审核状态,
|
||||
V.订单号,
|
||||
V.产品名称,
|
||||
V.零件名称,
|
||||
V.零件图号,
|
||||
V.工序,
|
||||
V.工艺计划流水号,
|
||||
V.数量 AS 投产数量,
|
||||
V.已完成数,
|
||||
V.工序顺序,
|
||||
V.物料编码,
|
||||
V.材料,
|
||||
A.工序流水号,
|
||||
A.工作者考勤编号,
|
||||
工作者.姓名 AS 工作者姓名,
|
||||
A.完成数量,
|
||||
A.完成类型,
|
||||
A.录工票人员编号,
|
||||
录工票人员.姓名 AS 录工票人员姓名,
|
||||
A.工位号,
|
||||
ISNULL(SB.设备名称, A.设备名) AS 工位设备名称,
|
||||
A.备注,
|
||||
A.剩余工时,
|
||||
A.剩余数量,
|
||||
A.设备号,
|
||||
A.设备名,
|
||||
A.操作者,
|
||||
ISNULL(操作者人员.姓名, A.操作者) AS 操作者姓名,
|
||||
A.整修状态,
|
||||
A.整修记录id,
|
||||
A.整修方案,
|
||||
CONVERT(VARCHAR(19), A.开始时间, 120) AS 开始时间,
|
||||
CONVERT(VARCHAR(19), A.结束时间, 120) AS 结束时间,
|
||||
CONVERT(VARCHAR(19), A.提交时间, 120) AS 提交时间,
|
||||
A.审核人,
|
||||
审核人员.姓名 AS 审核人姓名,
|
||||
CONVERT(VARCHAR(19), A.审核时间, 120) AS 审核时间,
|
||||
A.审核意见,
|
||||
A.修改人,
|
||||
CONVERT(VARCHAR(19), A.修改时间, 120) AS 修改时间
|
||||
FROM [dbo].[MES_机加工MES_加工完成整修审核表] AS A
|
||||
LEFT JOIN [dbo].[车间生产管理_零件工序_视图] AS V
|
||||
ON A.工序流水号 = V.工序流水号
|
||||
LEFT JOIN [dbo].[人事档案管理_人员名单] AS 工作者
|
||||
ON A.工作者考勤编号 = 工作者.考勤编号
|
||||
LEFT JOIN [dbo].[人事档案管理_人员名单] AS 录工票人员
|
||||
ON A.录工票人员编号 = 录工票人员.序号
|
||||
OR A.录工票人员编号 = 录工票人员.人员编号
|
||||
LEFT JOIN [dbo].[人事档案管理_人员名单] AS 操作者人员
|
||||
ON A.操作者 = CONVERT(NVARCHAR(100), 操作者人员.人员编号)
|
||||
OR A.操作者 = CONVERT(NVARCHAR(100), 操作者人员.序号)
|
||||
OR A.操作者 = 操作者人员.姓名
|
||||
LEFT JOIN [dbo].[人事档案管理_人员名单] AS 审核人员
|
||||
ON A.审核人 = CONVERT(NVARCHAR(100), 审核人员.人员编号)
|
||||
OR A.审核人 = CONVERT(NVARCHAR(100), 审核人员.序号)
|
||||
OR A.审核人 = 审核人员.姓名
|
||||
LEFT JOIN [dbo].[基础数据_设备工位点检表] AS SB
|
||||
ON A.工位号 = SB.工位号
|
||||
WHERE (@审核状态_check = 0 OR A.审核状态 = @审核状态)
|
||||
AND (@审核类型_check = 0 OR A.审核类型 = @审核类型)
|
||||
AND (@操作者_check = 0 OR ISNULL(操作者人员.姓名, ISNULL(A.操作者, N'')) LIKE N'%' + @操作者 + N'%')
|
||||
AND (@时间_check = 0 OR CONVERT(DATE, A.提交时间) BETWEEN CONVERT(DATE, @开始时间) AND CONVERT(DATE, @结束时间))
|
||||
)
|
||||
SELECT
|
||||
id,
|
||||
审核类型,
|
||||
审核状态,
|
||||
订单号,
|
||||
产品名称,
|
||||
零件名称,
|
||||
零件图号,
|
||||
工序,
|
||||
工艺计划流水号,
|
||||
投产数量,
|
||||
已完成数,
|
||||
工序顺序,
|
||||
物料编码,
|
||||
材料,
|
||||
工序流水号,
|
||||
工作者考勤编号,
|
||||
工作者姓名,
|
||||
完成数量,
|
||||
完成类型,
|
||||
录工票人员编号,
|
||||
录工票人员姓名,
|
||||
工位号,
|
||||
工位设备名称,
|
||||
备注,
|
||||
剩余工时,
|
||||
剩余数量,
|
||||
设备号,
|
||||
设备名,
|
||||
操作者,
|
||||
操作者姓名,
|
||||
整修状态,
|
||||
整修记录id,
|
||||
整修方案,
|
||||
开始时间,
|
||||
结束时间,
|
||||
提交时间,
|
||||
审核人,
|
||||
审核人姓名,
|
||||
审核时间,
|
||||
审核意见,
|
||||
修改人,
|
||||
修改时间
|
||||
FROM AuditData
|
||||
WHERE RowNum BETWEEN ((@PageCurrent - 1) * @PageSize + 1) AND (@PageCurrent * @PageSize)
|
||||
ORDER BY RowNum;
|
||||
|
||||
SELECT COUNT(1) AS total
|
||||
FROM [dbo].[MES_机加工MES_加工完成整修审核表] AS A
|
||||
LEFT JOIN [dbo].[人事档案管理_人员名单] AS 操作者人员
|
||||
ON A.操作者 = CONVERT(NVARCHAR(100), 操作者人员.人员编号)
|
||||
OR A.操作者 = CONVERT(NVARCHAR(100), 操作者人员.序号)
|
||||
OR A.操作者 = 操作者人员.姓名
|
||||
WHERE (@审核状态_check = 0 OR A.审核状态 = @审核状态)
|
||||
AND (@审核类型_check = 0 OR A.审核类型 = @审核类型)
|
||||
AND (@操作者_check = 0 OR ISNULL(操作者人员.姓名, ISNULL(A.操作者, N'')) LIKE N'%' + @操作者 + N'%')
|
||||
AND (@时间_check = 0 OR CONVERT(DATE, A.提交时间) BETWEEN CONVERT(DATE, @开始时间) AND CONVERT(DATE, @结束时间));
|
||||
END;
|
||||
GO
|
||||
|
||||
-- 生产完成审核状态更新,审核通过时接入原 MES 完工链路 修改人:Ld 修改时间:2026-07-02 14:55:23;
|
||||
IF OBJECT_ID(N'[dbo].[机加工MES_加工完成整修审核_审核数据]', N'P') IS NOT NULL
|
||||
DROP PROCEDURE [dbo].[机加工MES_加工完成整修审核_审核数据];
|
||||
GO
|
||||
|
||||
CREATE PROCEDURE [dbo].[机加工MES_加工完成整修审核_审核数据]
|
||||
@审核流水号 INT,
|
||||
@审核状态 NVARCHAR(20),
|
||||
@审核人 NVARCHAR(100) = NULL,
|
||||
@审核意见 NVARCHAR(1000) = NULL,
|
||||
@审核完成数量 FLOAT = NULL,
|
||||
@审核加工开始时间 DATETIME = NULL,
|
||||
@审核加工完成时间 DATETIME = NULL,
|
||||
@审核整修开始时间 DATETIME = NULL,
|
||||
@审核整修结束时间 DATETIME = NULL,
|
||||
@审核整修方案 NVARCHAR(1000) = NULL
|
||||
AS
|
||||
BEGIN
|
||||
SET NOCOUNT ON;
|
||||
|
||||
DECLARE @审核类型 NVARCHAR(50);
|
||||
DECLARE @工序流水号 INT;
|
||||
DECLARE @工作者考勤编号 NVARCHAR(50);
|
||||
DECLARE @完成数量 FLOAT;
|
||||
DECLARE @完成类型 INT;
|
||||
DECLARE @录工票人员编号 INT;
|
||||
DECLARE @工位号 NVARCHAR(100);
|
||||
DECLARE @备注 NVARCHAR(500);
|
||||
DECLARE @设备号 NVARCHAR(100);
|
||||
DECLARE @整修记录id INT;
|
||||
DECLARE @整修方案 NVARCHAR(1000);
|
||||
DECLARE @剩余工时 FLOAT;
|
||||
DECLARE @剩余数量 INT;
|
||||
DECLARE @原流程结果 NVARCHAR(100);
|
||||
DECLARE @完成过程流水号 INT;
|
||||
DECLARE @是否本过程开启事务 BIT;
|
||||
DECLARE @原流程返回 TABLE (result NVARCHAR(100));
|
||||
|
||||
IF NOT EXISTS (
|
||||
SELECT 1
|
||||
FROM [dbo].[MES_机加工MES_加工完成整修审核表]
|
||||
WHERE id = @审核流水号
|
||||
AND 审核状态 = N'待审核'
|
||||
)
|
||||
BEGIN
|
||||
SELECT N'0' AS result, N'该审核记录不存在或已审核' AS message;
|
||||
RETURN;
|
||||
END;
|
||||
|
||||
IF @审核状态 NOT IN (N'审核通过', N'审核不通过')
|
||||
BEGIN
|
||||
SELECT N'0' AS result, N'审核状态不正确' AS message;
|
||||
RETURN;
|
||||
END;
|
||||
|
||||
SELECT
|
||||
@审核类型 = 审核类型,
|
||||
@工序流水号 = 工序流水号,
|
||||
@工作者考勤编号 = 工作者考勤编号,
|
||||
@完成数量 = ISNULL(@审核完成数量, 完成数量),
|
||||
@完成类型 = 完成类型,
|
||||
@录工票人员编号 = 录工票人员编号,
|
||||
@工位号 = 工位号,
|
||||
@备注 = 备注,
|
||||
@设备号 = 设备号,
|
||||
@整修记录id = 整修记录id,
|
||||
@整修方案 = ISNULL(@审核整修方案, 整修方案)
|
||||
FROM [dbo].[MES_机加工MES_加工完成整修审核表]
|
||||
WHERE id = @审核流水号
|
||||
AND 审核状态 = N'待审核';
|
||||
|
||||
BEGIN TRY
|
||||
SET @是否本过程开启事务 = CASE WHEN @@TRANCOUNT = 0 THEN 1 ELSE 0 END;
|
||||
IF @是否本过程开启事务 = 1
|
||||
BEGIN
|
||||
BEGIN TRAN;
|
||||
END
|
||||
ELSE
|
||||
BEGIN
|
||||
SAVE TRAN 生产完成审核保存点;
|
||||
END;
|
||||
|
||||
IF @审核状态 = N'审核通过' AND @审核类型 = N'加工完成'
|
||||
BEGIN
|
||||
IF @工序流水号 IS NULL OR @工作者考勤编号 IS NULL OR @完成数量 IS NULL OR @完成类型 IS NULL OR @录工票人员编号 IS NULL
|
||||
BEGIN
|
||||
IF @是否本过程开启事务 = 1 ROLLBACK TRAN ELSE ROLLBACK TRAN 生产完成审核保存点;
|
||||
SELECT N'0' AS result, N'审核记录缺少原 MES 完工必需参数' AS message;
|
||||
RETURN;
|
||||
END;
|
||||
|
||||
IF @完成数量 <= 0 OR @完成数量 <> FLOOR(@完成数量)
|
||||
BEGIN
|
||||
IF @是否本过程开启事务 = 1 ROLLBACK TRAN ELSE ROLLBACK TRAN 生产完成审核保存点;
|
||||
SELECT N'0' AS result, N'完成数量必须为大于 0 的整数' AS message;
|
||||
RETURN;
|
||||
END;
|
||||
|
||||
INSERT INTO @原流程返回(result)
|
||||
EXEC [dbo].[设备管理_零件工序_工序完成过程情况_增加数据]
|
||||
@工序流水号 = @工序流水号,
|
||||
@工作者考勤编号 = @工作者考勤编号,
|
||||
@完成数量 = @完成数量,
|
||||
@完成类型 = @完成类型,
|
||||
@录工票人员编号 = @录工票人员编号,
|
||||
@工位号 = @工位号,
|
||||
@备注 = @备注,
|
||||
@剩余工时 = @剩余工时 OUTPUT,
|
||||
@剩余数量 = @剩余数量 OUTPUT;
|
||||
|
||||
SELECT TOP 1 @原流程结果 = result FROM @原流程返回;
|
||||
|
||||
IF ISNULL(@原流程结果, N'') <> N'成功'
|
||||
BEGIN
|
||||
IF @是否本过程开启事务 = 1 ROLLBACK TRAN ELSE ROLLBACK TRAN 生产完成审核保存点;
|
||||
SELECT N'0' AS result, ISNULL(@原流程结果, N'原 MES 完工流程执行失败') AS message;
|
||||
RETURN;
|
||||
END;
|
||||
|
||||
IF @审核加工完成时间 IS NOT NULL
|
||||
BEGIN
|
||||
SELECT @完成过程流水号 = MAX(完成过程流水号)
|
||||
FROM [dbo].[设备管理_零件工序_工序完成过程情况]
|
||||
WHERE 工序流水号 = @工序流水号
|
||||
AND 录工票人员编号 = @录工票人员编号
|
||||
AND 完成数量 = @完成数量;
|
||||
|
||||
UPDATE [dbo].[设备管理_零件工序_工序完成过程情况]
|
||||
SET 加工开始时间 = ISNULL(@审核加工开始时间, 加工开始时间),
|
||||
加工完成时间 = @审核加工完成时间,
|
||||
完成日期 = CONVERT(DATE, @审核加工完成时间),
|
||||
操作日期 = @审核加工完成时间,
|
||||
修改人员 = CASE WHEN ISNUMERIC(@审核人) = 1 THEN CAST(@审核人 AS INT) ELSE 修改人员 END,
|
||||
修改时间 = GETDATE()
|
||||
WHERE 完成过程流水号 = @完成过程流水号;
|
||||
|
||||
UPDATE [dbo].[车间生产管理工艺_零件工序]
|
||||
SET 完成日期 = CASE WHEN 完成日期 IS NULL OR 完成数量 >= ISNULL(完成数量, 0) THEN @审核加工完成时间 ELSE 完成日期 END
|
||||
WHERE 工序流水号 = @工序流水号;
|
||||
END;
|
||||
|
||||
IF @审核加工开始时间 IS NOT NULL AND @审核加工完成时间 IS NULL
|
||||
BEGIN
|
||||
SELECT @完成过程流水号 = MAX(完成过程流水号)
|
||||
FROM [dbo].[设备管理_零件工序_工序完成过程情况]
|
||||
WHERE 工序流水号 = @工序流水号
|
||||
AND 录工票人员编号 = @录工票人员编号
|
||||
AND 完成数量 = @完成数量;
|
||||
|
||||
UPDATE [dbo].[设备管理_零件工序_工序完成过程情况]
|
||||
SET 加工开始时间 = @审核加工开始时间,
|
||||
修改人员 = CASE WHEN ISNUMERIC(@审核人) = 1 THEN CAST(@审核人 AS INT) ELSE 修改人员 END,
|
||||
修改时间 = GETDATE()
|
||||
WHERE 完成过程流水号 = @完成过程流水号;
|
||||
END;
|
||||
END;
|
||||
|
||||
IF @审核状态 = N'审核通过' AND @审核类型 = N'结束整修'
|
||||
BEGIN
|
||||
IF @整修记录id IS NULL OR @设备号 IS NULL
|
||||
BEGIN
|
||||
IF @是否本过程开启事务 = 1 ROLLBACK TRAN ELSE ROLLBACK TRAN 生产完成审核保存点;
|
||||
SELECT N'0' AS result, N'审核记录缺少整修结束必需参数' AS message;
|
||||
RETURN;
|
||||
END;
|
||||
|
||||
UPDATE [dbo].[设备管理_整修]
|
||||
SET 整修开始时间 = CASE WHEN @审核整修开始时间 IS NULL THEN 整修开始时间 ELSE CONVERT(VARCHAR(20), @审核整修开始时间, 120) END,
|
||||
整修结束时间 = CONVERT(VARCHAR(20), ISNULL(@审核整修结束时间, GETDATE()), 120),
|
||||
整修状态 = N'1',
|
||||
整修方案 = @整修方案
|
||||
WHERE id = @整修记录id
|
||||
AND 设备号 = @设备号;
|
||||
END;
|
||||
|
||||
UPDATE [dbo].[MES_机加工MES_加工完成整修审核表]
|
||||
SET 审核状态 = @审核状态,
|
||||
审核人 = @审核人,
|
||||
审核时间 = GETDATE(),
|
||||
审核意见 = ISNULL(@审核意见, N''),
|
||||
完成数量 = CASE WHEN @审核状态 = N'审核通过' AND @审核类型 = N'加工完成' THEN @完成数量 ELSE 完成数量 END,
|
||||
开始时间 = CASE
|
||||
WHEN @审核状态 = N'审核通过' AND @审核类型 = N'加工完成' AND @审核加工开始时间 IS NOT NULL THEN @审核加工开始时间
|
||||
WHEN @审核状态 = N'审核通过' AND @审核类型 = N'结束整修' AND @审核整修开始时间 IS NOT NULL THEN @审核整修开始时间
|
||||
ELSE 开始时间
|
||||
END,
|
||||
结束时间 = CASE
|
||||
WHEN @审核状态 = N'审核通过' AND @审核类型 = N'加工完成' AND @审核加工完成时间 IS NOT NULL THEN @审核加工完成时间
|
||||
WHEN @审核状态 = N'审核通过' AND @审核类型 = N'结束整修' THEN ISNULL(@审核整修结束时间, GETDATE())
|
||||
ELSE 结束时间
|
||||
END,
|
||||
整修方案 = CASE WHEN @审核状态 = N'审核通过' AND @审核类型 = N'结束整修' THEN @整修方案 ELSE 整修方案 END,
|
||||
剩余工时 = CASE WHEN @审核状态 = N'审核通过' AND @审核类型 = N'加工完成' THEN @剩余工时 ELSE 剩余工时 END,
|
||||
剩余数量 = CASE WHEN @审核状态 = N'审核通过' AND @审核类型 = N'加工完成' THEN @剩余数量 ELSE 剩余数量 END,
|
||||
修改人 = N'Ld',
|
||||
修改时间 = GETDATE()
|
||||
WHERE id = @审核流水号
|
||||
AND 审核状态 = N'待审核';
|
||||
|
||||
IF @是否本过程开启事务 = 1
|
||||
BEGIN
|
||||
COMMIT TRAN;
|
||||
END;
|
||||
END TRY
|
||||
BEGIN CATCH
|
||||
IF @@TRANCOUNT > 0
|
||||
BEGIN
|
||||
IF ISNULL(@是否本过程开启事务, 1) = 1
|
||||
BEGIN
|
||||
ROLLBACK TRAN;
|
||||
END
|
||||
ELSE
|
||||
BEGIN
|
||||
ROLLBACK TRAN 生产完成审核保存点;
|
||||
END;
|
||||
END;
|
||||
|
||||
SELECT N'0' AS result, ERROR_MESSAGE() AS message;
|
||||
RETURN;
|
||||
END CATCH;
|
||||
|
||||
SELECT N'1' AS result;
|
||||
END;
|
||||
GO
|
||||
259
sql/核心物料搜索栏_物料编码查询_存储过程调整.sql
Normal file
259
sql/核心物料搜索栏_物料编码查询_存储过程调整.sql
Normal file
@@ -0,0 +1,259 @@
|
||||
USE [ERPTOOL_JY_20250826Back]
|
||||
GO
|
||||
|
||||
-- 核心物料搜索栏增加物料编码查询条件
|
||||
-- 需求提出人:罗伟
|
||||
-- 说明:以下过程补充 @物料编码_check、@物料编码 可选参数。未传入物料编码时保持原查询逻辑不变。
|
||||
-- 备注:修改人:Ld 修改时间:2026-06-29 14:30:00
|
||||
|
||||
ALTER PROCEDURE [dbo].[仓储管理_物料记录_查询新]
|
||||
@物料名称_check bit = null,
|
||||
@物料名称 nvarchar(50) = null,
|
||||
@物料编码_check bit = null,
|
||||
@物料编码 nvarchar(50) = null,
|
||||
@时间_check bit = null,
|
||||
@开始时间 datetime = null,
|
||||
@结束时间 datetime = null
|
||||
AS
|
||||
BEGIN
|
||||
declare @selectStr nvarchar(4000)
|
||||
declare @selectStrWhere nvarchar(4000)
|
||||
|
||||
set @selectStr =
|
||||
'SELECT row_number() OVER (ORDER BY b.记录时间) AS id, d.*, CONVERT(int, isnull(出库数, 0)) AS 出库数, isnull(入库数, 0) AS 入库数, 库存管理_货位主文件.货位名称, 单位名称_基础表.单位, isnull(库存数, 0) AS 库存数, 记录时间
|
||||
FROM (SELECT 物料流水号, 库存数, CONVERT(varchar(10), 操作日期, 23) AS 记录时间 FROM 库存管理_每日库存结余表) AS b
|
||||
LEFT JOIN (SELECT sum(领料数) AS 出库数, 物料流水号, 领料日期 FROM 仓储管理_出库记录_视图 GROUP BY 物料流水号, 领料日期) AS c ON b.物料流水号 = c.物料流水号 AND c.领料日期 = b.记录时间
|
||||
LEFT JOIN (SELECT sum(入库数) AS 入库数, 物料流水号, 入库日期 FROM 仓储管理_入库记录_视图 GROUP BY 物料流水号, 入库日期) AS a ON b.物料流水号 = a.物料流水号 AND a.入库日期 = b.记录时间
|
||||
INNER JOIN (SELECT 物料编码, 名称, 代号, 物料流水号, 货位流水号, 单位流水号 FROM 库存管理_物料主文件_基本) AS d ON b.物料流水号 = d.物料流水号
|
||||
LEFT JOIN 单位名称_基础表 ON d.单位流水号 = 单位名称_基础表.单位流水号
|
||||
LEFT JOIN 库存管理_货位主文件 ON d.货位流水号 = 库存管理_货位主文件.货位流水号 '
|
||||
|
||||
set @selectStrWhere = ' where 1 = 1 '
|
||||
|
||||
if(@物料名称_check = 1)
|
||||
set @selectStrWhere = @selectStrWhere + ' and replace(isnull(名称,''''),'' '','''') + replace(isnull(代号,''''),'' '','''') + replace(isnull(物料编码,''''),'' '','''') like ''%'' + replace(@物料名称,'' '','''') + ''%'' '
|
||||
|
||||
if(@物料编码_check = 1)
|
||||
set @selectStrWhere = @selectStrWhere + ' and replace(isnull(物料编码,''''),'' '','''') like ''%'' + replace(@物料编码,'' '','''') + ''%'' '
|
||||
|
||||
if(@时间_check = 1)
|
||||
set @selectStrWhere = @selectStrWhere + ' and 记录时间 >= convert(varchar(10),@开始时间,23) and 记录时间 <= convert(varchar(10),@结束时间,23) '
|
||||
|
||||
set @selectStr = @selectStr + @selectStrWhere + ' order by 记录时间 desc'
|
||||
|
||||
EXEC sp_executesql @selectStr,
|
||||
N'@物料名称 nvarchar(50),@物料编码 nvarchar(50),@开始时间 datetime,@结束时间 datetime',
|
||||
@物料名称,@物料编码,@开始时间,@结束时间
|
||||
END
|
||||
GO
|
||||
|
||||
ALTER PROCEDURE [dbo].[仓储管理_物料记录_查询]
|
||||
@物料名称_check bit = null,
|
||||
@物料名称 nvarchar(50) = null,
|
||||
@物料编码_check bit = null,
|
||||
@物料编码 nvarchar(50) = null,
|
||||
@时间_check bit = null,
|
||||
@开始时间 datetime = null,
|
||||
@结束时间 datetime = null
|
||||
AS
|
||||
BEGIN
|
||||
declare @selectStr nvarchar(4000)
|
||||
|
||||
set @selectStr =
|
||||
' select sum(convert(int,isnull(出库数,0))) as 出库数,sum(isnull(入库数,0)) as 入库数,sum(isnull(库存数,0)) as 库存数 from (select 物料流水号,库存数,convert(varchar(10),操作日期,23) as 记录时间 from 库存管理_每日库存结余表 where 1 = 1 '
|
||||
|
||||
if(@时间_check = 1)
|
||||
set @selectStr = @selectStr + ' and convert(varchar(10),操作日期,23) >= @开始时间 and convert(varchar(10),操作日期,23) <= @结束时间 '
|
||||
|
||||
set @selectStr = @selectStr +
|
||||
' ) as b left join (select sum(领料数) as 出库数,物料流水号,领料日期 from 仓储管理_出库记录_视图 where 1=1 '
|
||||
|
||||
if(@时间_check = 1)
|
||||
set @selectStr = @selectStr + ' and 领料日期 >= @开始时间 and 领料日期 <= @结束时间 '
|
||||
|
||||
set @selectStr = @selectStr +
|
||||
' group by 物料流水号,领料日期 ) as c on b.物料流水号 = c.物料流水号 and c.领料日期 = b.记录时间 left join (select sum(入库数) as 入库数,物料流水号,入库日期 from 仓储管理_入库记录_视图 where 1=1 '
|
||||
|
||||
if(@时间_check = 1)
|
||||
set @selectStr = @selectStr + ' and 入库日期 >= @开始时间 and 入库日期 <= @结束时间 '
|
||||
|
||||
set @selectStr = @selectStr +
|
||||
' group by 物料流水号,入库日期 ) as a on b.物料流水号 = a.物料流水号 and a.入库日期 = b.记录时间
|
||||
inner join (select 物料编码,名称,代号,物料流水号,货位流水号,单位流水号 from 库存管理_物料主文件_基本 where 1 = 1 '
|
||||
|
||||
if(@物料名称_check = 1)
|
||||
set @selectStr = @selectStr + ' and replace(isnull(名称,''''),'' '','''') + replace(isnull(代号,''''),'' '','''') + replace(isnull(物料编码,''''),'' '','''') like ''%'' + replace(@物料名称,'' '','''') + ''%'' '
|
||||
|
||||
if(@物料编码_check = 1)
|
||||
set @selectStr = @selectStr + ' and replace(isnull(物料编码,''''),'' '','''') like ''%'' + replace(@物料编码,'' '','''') + ''%'' '
|
||||
|
||||
set @selectStr = @selectStr +
|
||||
' ) as d on b.物料流水号 = d.物料流水号 left join 单位名称_基础表 on d.单位流水号 = 单位名称_基础表.单位流水号
|
||||
left join 库存管理_货位主文件 on d.货位流水号 = 库存管理_货位主文件.货位流水号 '
|
||||
|
||||
EXEC sp_executesql @selectStr,
|
||||
N'@物料名称 nvarchar(50),@物料编码 nvarchar(50),@开始时间 datetime,@结束时间 datetime',
|
||||
@物料名称,@物料编码,@开始时间,@结束时间
|
||||
END
|
||||
GO
|
||||
|
||||
ALTER PROCEDURE [dbo].[报表_仓储管理_物料记录_查询]
|
||||
@物料名称_check bit = null,
|
||||
@物料名称 nvarchar(50) = null,
|
||||
@物料编码_check bit = null,
|
||||
@物料编码 nvarchar(50) = null,
|
||||
@时间_check bit = null,
|
||||
@开始时间 datetime = null,
|
||||
@结束时间 datetime = null
|
||||
AS
|
||||
BEGIN
|
||||
select '物料记录_' + replace(replace(replace(CONVERT(nvarchar(19),GETDATE(),21),':',''),'-',''),' ','-') as tablename,'15' as tabletype
|
||||
select 256*15 as 物料编码,256*30 as 名称,256*30 as 代号,256*10 as 单位,256*15 as 出库数,256*15 as 入库数,256*15 as 库存数,256*15 as 库位,256*15 as 记录日期
|
||||
select 0 as 物料编码,0 as 名称,0 as 代号,0 as 单位,1 as 出库数,1 as 入库数,1 as 库存数,0 as 库位,0 as 记录日期
|
||||
|
||||
declare @selectStr nvarchar(4000)
|
||||
|
||||
set @selectStr =
|
||||
' select d.物料编码,名称,代号,单位名称_基础表.单位,isnull(出库数,0) as 出库数,isnull(入库数,0) as 入库数,isnull(库存数,0) as 库存数,库存管理_货位主文件.货位名称 as 库位,记录时间 from (select 物料流水号,库存数,convert(varchar(10),操作日期,23) as 记录时间 from 库存管理_每日库存结余表 where 1 = 1 '
|
||||
|
||||
if(@时间_check = 1)
|
||||
set @selectStr = @selectStr + ' and convert(varchar(10),操作日期,23) >= @开始时间 and convert(varchar(10),操作日期,23) <= @结束时间 '
|
||||
|
||||
set @selectStr = @selectStr +
|
||||
' ) as b left join (select sum(领料数) as 出库数,物料流水号,领料日期 from 仓储管理_出库记录_视图 where 1=1 '
|
||||
|
||||
if(@时间_check = 1)
|
||||
set @selectStr = @selectStr + ' and 领料日期 >= @开始时间 and 领料日期 <= @结束时间 '
|
||||
|
||||
set @selectStr = @selectStr +
|
||||
' group by 物料流水号,领料日期 ) as c on b.物料流水号 = c.物料流水号 and c.领料日期 = b.记录时间 left join (select sum(入库数) as 入库数,物料流水号,入库日期 from 仓储管理_入库记录_视图 where 1=1 '
|
||||
|
||||
if(@时间_check = 1)
|
||||
set @selectStr = @selectStr + ' and 入库日期 >= @开始时间 and 入库日期 <= @结束时间 '
|
||||
|
||||
set @selectStr = @selectStr +
|
||||
' group by 物料流水号,入库日期 ) as a on b.物料流水号 = a.物料流水号 and a.入库日期 = b.记录时间
|
||||
inner join (select 物料编码,名称,代号,物料流水号,货位流水号,单位流水号 from 库存管理_物料主文件_基本 where 1 = 1 '
|
||||
|
||||
if(@物料名称_check = 1)
|
||||
set @selectStr = @selectStr + ' and replace(isnull(名称,''''),'' '','''') + replace(isnull(代号,''''),'' '','''') + replace(isnull(物料编码,''''),'' '','''') like ''%'' + replace(@物料名称,'' '','''') + ''%'' '
|
||||
|
||||
if(@物料编码_check = 1)
|
||||
set @selectStr = @selectStr + ' and replace(isnull(物料编码,''''),'' '','''') like ''%'' + replace(@物料编码,'' '','''') + ''%'' '
|
||||
|
||||
set @selectStr = @selectStr +
|
||||
' ) as d on b.物料流水号 = d.物料流水号 left join 单位名称_基础表 on d.单位流水号 = 单位名称_基础表.单位流水号
|
||||
left join 库存管理_货位主文件 on d.货位流水号 = 库存管理_货位主文件.货位流水号 '
|
||||
|
||||
EXEC sp_executesql @selectStr,
|
||||
N'@物料名称 nvarchar(50),@物料编码 nvarchar(50),@开始时间 datetime,@结束时间 datetime',
|
||||
@物料名称,@物料编码,@开始时间,@结束时间
|
||||
END
|
||||
GO
|
||||
|
||||
ALTER PROCEDURE [dbo].[仓储管理_盘点记录_查询]
|
||||
@物料名称_check bit = null,
|
||||
@物料名称 nvarchar(50) = null,
|
||||
@物料编码_check bit = null,
|
||||
@物料编码 nvarchar(50) = null,
|
||||
@时间_check bit = null,
|
||||
@开始时间 datetime = null,
|
||||
@结束时间 datetime = null
|
||||
AS
|
||||
BEGIN
|
||||
declare @selectStr nvarchar(4000)
|
||||
|
||||
set @selectStr = ' select * from 库存管理_盘点记录_视图 where 1 = 1 '
|
||||
|
||||
if(@物料名称_check = 1)
|
||||
set @selectStr = @selectStr + ' and replace(isnull(名称,''''),'' '','''') + replace(isnull(代号,''''),'' '','''') + replace(isnull(物料编码,''''),'' '','''') like ''%'' + replace(@物料名称,'' '','''') + ''%'' '
|
||||
|
||||
if(@物料编码_check = 1)
|
||||
set @selectStr = @selectStr + ' and replace(isnull(物料编码,''''),'' '','''') like ''%'' + replace(@物料编码,'' '','''') + ''%'' '
|
||||
|
||||
if(@时间_check = 1)
|
||||
set @selectStr = @selectStr + ' and convert(varchar(10),修改时间,23) >= @开始时间 and convert(varchar(10),修改时间,23) <= @结束时间 '
|
||||
|
||||
set @selectStr = @selectStr + ' order by 修改时间 desc '
|
||||
|
||||
EXEC sp_executesql @selectStr,
|
||||
N'@物料名称 nvarchar(50),@物料编码 nvarchar(50),@开始时间 datetime,@结束时间 datetime',
|
||||
@物料名称,@物料编码,@开始时间,@结束时间
|
||||
END
|
||||
GO
|
||||
|
||||
ALTER PROCEDURE [dbo].[报表_仓储管理_盘点记录_查询]
|
||||
@物料名称_check bit = null,
|
||||
@物料名称 nvarchar(50) = null,
|
||||
@物料编码_check bit = null,
|
||||
@物料编码 nvarchar(50) = null,
|
||||
@时间_check bit = null,
|
||||
@开始时间 datetime = null,
|
||||
@结束时间 datetime = null
|
||||
AS
|
||||
BEGIN
|
||||
select '盘点记录_' + replace(replace(replace(CONVERT(nvarchar(19),GETDATE(),21),':',''),'-',''),' ','-') as tablename,'15' as tabletype
|
||||
select 256*15 as 物料编码,256*30 as 名称,256*30 as 代号,256*10 as 单位,256*15 as 原库存,256*15 as 盘点后库存,256*15 as 盘点人,256*25 as 盘点时间
|
||||
select 0 as 物料编码,0 as 名称,0 as 代号,0 as 单位,1 as 原库存,1 as 盘点后库存,0 as 盘点人,0 as 盘点时间
|
||||
|
||||
declare @selectStr nvarchar(4000)
|
||||
|
||||
set @selectStr = ' select * from 库存管理_盘点记录_视图 where 1 = 1 '
|
||||
|
||||
if(@物料名称_check = 1)
|
||||
set @selectStr = @selectStr + ' and replace(isnull(名称,''''),'' '','''') + replace(isnull(代号,''''),'' '','''') + replace(isnull(物料编码,''''),'' '','''') like ''%'' + replace(@物料名称,'' '','''') + ''%'' '
|
||||
|
||||
if(@物料编码_check = 1)
|
||||
set @selectStr = @selectStr + ' and replace(isnull(物料编码,''''),'' '','''') like ''%'' + replace(@物料编码,'' '','''') + ''%'' '
|
||||
|
||||
if(@时间_check = 1)
|
||||
set @selectStr = @selectStr + ' and convert(varchar(10),修改时间,23) >= @开始时间 and convert(varchar(10),修改时间,23) <= @结束时间 '
|
||||
|
||||
EXEC sp_executesql @selectStr,
|
||||
N'@物料名称 nvarchar(50),@物料编码 nvarchar(50),@开始时间 datetime,@结束时间 datetime',
|
||||
@物料名称,@物料编码,@开始时间,@结束时间
|
||||
END
|
||||
GO
|
||||
|
||||
ALTER PROCEDURE [dbo].[仓储管理_入库记录退货_条件查询]
|
||||
@物料名称_check bit = null,
|
||||
@物料名称 nvarchar(50) = null,
|
||||
@采购合同_check bit = null,
|
||||
@采购合同 nvarchar(50) = null,
|
||||
@供应商_check bit = null,
|
||||
@供应商 nvarchar(50) = null,
|
||||
@物料编码_check bit = null,
|
||||
@物料编码 nvarchar(50) = null,
|
||||
@时间_check bit = null,
|
||||
@开始时间 nvarchar(50) = null,
|
||||
@结束时间 nvarchar(50) = null
|
||||
AS
|
||||
BEGIN
|
||||
declare @selectStr nvarchar(4000)
|
||||
declare @selectStrWhere nvarchar(4000)
|
||||
|
||||
set @selectStr = ' select * from [dbo].[仓储管理_入库记录退货_视图] '
|
||||
set @selectStrWhere = ' where 1 = 1 '
|
||||
|
||||
if(@物料名称_check = 1)
|
||||
set @selectStrWhere = @selectStrWhere + ' and 物料名称 + 图号或型号 like ''%'' + @物料名称 + ''%'' '
|
||||
|
||||
if(@采购合同_check = 1)
|
||||
set @selectStrWhere = @selectStrWhere + ' and 采购合同 like ''%'' + @采购合同 + ''%'' '
|
||||
|
||||
if(@供应商_check = 1)
|
||||
set @selectStrWhere = @selectStrWhere + ' and 供应商 like ''%'' + @供应商 + ''%'' '
|
||||
|
||||
if(@物料编码_check = 1)
|
||||
set @selectStrWhere = @selectStrWhere + ' and replace(isnull(物料编码,''''),'' '','''') like ''%'' + replace(@物料编码,'' '','''') + ''%'' '
|
||||
|
||||
if(@时间_check = 1)
|
||||
set @selectStrWhere = @selectStrWhere + ' and convert(varchar(10),退货时间,23) >= @开始时间 and convert(varchar(10),退货时间,23) <= @结束时间 '
|
||||
|
||||
set @selectStr = @selectStr + @selectStrWhere + ' order by 退货时间 desc '
|
||||
|
||||
EXEC sp_executesql @selectStr,
|
||||
N'@物料名称 nvarchar(50),@采购合同 nvarchar(50),@供应商 nvarchar(50),@物料编码 nvarchar(50),@开始时间 nvarchar(50),@结束时间 nvarchar(50)',
|
||||
@物料名称,@采购合同,@供应商,@物料编码,@开始时间,@结束时间
|
||||
END
|
||||
GO
|
||||
11
sql/生产审核菜单组件路径修正.sql
Normal file
11
sql/生产审核菜单组件路径修正.sql
Normal file
@@ -0,0 +1,11 @@
|
||||
-- 修正生产审核菜单组件路径,避免动态路由加载不存在的 ProductionCompletionAudi 目录 修改人:Ld 修改时间:2026-07-02 14:12:00;
|
||||
UPDATE dbo.基础表_模块信息
|
||||
SET path = N'SeikoWorkshop/ProductionCompletionAudit',
|
||||
component = N'/SeikoWorkshop/ProductionCompletionAudit',
|
||||
name = N'ProductionCompletionAudit'
|
||||
WHERE id = 152
|
||||
AND title = N'生产审核';
|
||||
|
||||
SELECT id, path, component, name, title
|
||||
FROM dbo.基础表_模块信息
|
||||
WHERE id = 152;
|
||||
50
sql/采购入库合同明细_关联未入库最新到货.sql
Normal file
50
sql/采购入库合同明细_关联未入库最新到货.sql
Normal file
@@ -0,0 +1,50 @@
|
||||
-- 采购入库合同明细关联未入库最新到货记录
|
||||
-- 修改人:Ld 修改时间:2026-07-02 17:11:48;
|
||||
|
||||
ALTER VIEW dbo.采购管理_采购合同明细_视图
|
||||
AS
|
||||
SELECT dbo.采购管理_采购合同明细.采购合同明细流水号, dbo.库存管理_物料主文件_基本.名称 AS 物料名称,
|
||||
dbo.库存管理_物料主文件_基本.代号 AS 图号或型号, dbo.采购管理_采购合同明细.单位, CASE WHEN isnull(是否主轴,
|
||||
0) = 1 THEN 采购管理_采购批次.数量 ELSE 采购管理_采购合同明细.数量 END AS 采购数, CASE WHEN isnull(是否主轴,
|
||||
0) = 1 THEN 采购管理_采购批次.已到数 ELSE 已到货数量 END AS 已到数,
|
||||
dbo.合同管理_订单信息_基础表.订单编号 AS 订单号, dbo.合同管理_订单信息_基础表.订单流水号,
|
||||
dbo.采购管理_采购合同明细.采购合同流水号, dbo.采购管理_采购合同明细.标准件和外购件流水号,
|
||||
dbo.PDM_零件明细表_标准件和外购件.组件流水号, dbo.采购管理_采购合同.供应商流水号,
|
||||
dbo.PDM_零件明细表_标准件和外购件.物料流水号, dbo.采购管理_合同审批.审批情况流水号,
|
||||
ISNULL(dbo.库存管理_物料主文件_基本.货位流水号, 0) AS 货位流水号, dbo.库存管理_货位主文件.货位名称,
|
||||
dbo.采购管理_采购批次.批号, dbo.采购管理_采购批次.是否主轴, dbo.采购管理_采购合同明细.备注,
|
||||
dbo.PDM_零件明细表_标准件和外购件.是否使用库存, dbo.库存管理_物料主文件_基本.物料编码,
|
||||
dbo.采购管理_手动完成记录.id AS 手动完成id, 到货最新.到货数 AS 采购到货数,
|
||||
dbo.采购管理_采购合同.采购合同编号 AS 合同号, dbo.采购管理_供应商.供应商名称, 到货最新.已检数量,
|
||||
到货最新.等待入库数量
|
||||
FROM dbo.采购管理_采购合同明细 INNER JOIN
|
||||
dbo.PDM_零件明细表_标准件和外购件 ON
|
||||
dbo.采购管理_采购合同明细.标准件和外购件流水号 = dbo.PDM_零件明细表_标准件和外购件.标准件和外购件流水号 INNER
|
||||
JOIN
|
||||
dbo.库存管理_物料主文件_基本 ON
|
||||
dbo.PDM_零件明细表_标准件和外购件.物料流水号 = dbo.库存管理_物料主文件_基本.物料流水号 INNER JOIN
|
||||
dbo.PDM_组件名称 ON
|
||||
dbo.PDM_零件明细表_标准件和外购件.组件流水号 = dbo.PDM_组件名称.组件流水号 INNER JOIN
|
||||
dbo.PDM_机床名称 ON dbo.PDM_组件名称.机床流水号 = dbo.PDM_机床名称.机床流水号 INNER JOIN
|
||||
dbo.PDM_项目名称 ON dbo.PDM_机床名称.项目流水号 = dbo.PDM_项目名称.项目流水号 INNER JOIN
|
||||
dbo.合同管理_订单信息_基础表 ON
|
||||
dbo.PDM_项目名称.项目流水号 = dbo.合同管理_订单信息_基础表.项目流水号 INNER JOIN
|
||||
dbo.采购管理_采购合同 ON
|
||||
dbo.采购管理_采购合同明细.采购合同流水号 = dbo.采购管理_采购合同.采购合同流水号 INNER JOIN
|
||||
dbo.采购管理_采购批次 ON
|
||||
dbo.采购管理_采购合同明细.采购合同明细流水号 = dbo.采购管理_采购批次.采购合同明细流水号 INNER JOIN
|
||||
dbo.采购管理_供应商 ON
|
||||
dbo.采购管理_采购合同.供应商流水号 = dbo.采购管理_供应商.供应商流水号 OUTER APPLY
|
||||
(SELECT TOP 1 *
|
||||
FROM dbo.采购管理_采购到货
|
||||
WHERE 采购合同流水号 = dbo.采购管理_采购合同明细.采购合同流水号
|
||||
AND 物料流水号 = dbo.库存管理_物料主文件_基本.物料流水号
|
||||
AND ISNULL(质检状态, '') <> N'已入库'
|
||||
ORDER BY ISNULL(id, 0) DESC) AS 到货最新 LEFT OUTER JOIN
|
||||
dbo.库存管理_货位主文件 ON
|
||||
dbo.库存管理_物料主文件_基本.货位流水号 = dbo.库存管理_货位主文件.货位流水号 LEFT OUTER JOIN
|
||||
dbo.采购管理_合同审批 ON
|
||||
dbo.采购管理_采购合同.采购合同流水号 = dbo.采购管理_合同审批.采购合同流水号 LEFT OUTER JOIN
|
||||
dbo.采购管理_手动完成记录 ON
|
||||
dbo.采购管理_采购合同明细.采购合同明细流水号 = dbo.采购管理_手动完成记录.采购合同明细流水号
|
||||
GO
|
||||
315
sql/零件改制_发起改制_精确基本件.sql
Normal file
315
sql/零件改制_发起改制_精确基本件.sql
Normal file
@@ -0,0 +1,315 @@
|
||||
SET ANSI_NULLS ON
|
||||
GO
|
||||
SET QUOTED_IDENTIFIER ON
|
||||
GO
|
||||
|
||||
ALTER PROCEDURE [dbo].[技术中心_改制订单_发起改制]
|
||||
@原订单流水号 int = null,
|
||||
@原组件流水号 int = null,
|
||||
@改制零件名称 nvarchar(50) = null,
|
||||
@改制零件图号 nvarchar(50) = null,
|
||||
@改制数量 int = null,
|
||||
@精工期限 date = null,
|
||||
@发起人 int = null,
|
||||
@原零件名称 nvarchar(50) = null,
|
||||
@原零件图号 nvarchar(50) = null,
|
||||
@原基本件流水号 int = null
|
||||
AS
|
||||
BEGIN
|
||||
SET NOCOUNT ON;
|
||||
|
||||
DECLARE @工艺计划流水号 int;
|
||||
DECLARE @改制订单流水号 int;
|
||||
DECLARE @改制订单编号 varchar(100);
|
||||
DECLARE @改制工艺编号 int;
|
||||
DECLARE @工序流水号 int;
|
||||
DECLARE @改制物料流水号 int;
|
||||
|
||||
DECLARE @单号排序代码 varchar(100);
|
||||
DECLARE @年份 varchar(100);
|
||||
DECLARE @n int;
|
||||
|
||||
IF ISNULL(LTRIM(RTRIM(@原零件图号)), '') <> ''
|
||||
AND ISNULL(LTRIM(RTRIM(@改制零件图号)), '') <> ''
|
||||
AND LTRIM(RTRIM(@原零件图号)) = LTRIM(RTRIM(@改制零件图号))
|
||||
BEGIN
|
||||
SELECT '0' AS result, '改制零件图号不能与原零件图号相同' AS msg;
|
||||
RETURN;
|
||||
END;
|
||||
|
||||
IF @原订单流水号 IS NULL OR @原组件流水号 IS NULL
|
||||
BEGIN
|
||||
SELECT '0' AS result, '原订单流水号或原组件流水号不能为空' AS msg;
|
||||
RETURN;
|
||||
END;
|
||||
|
||||
IF ISNULL(@改制零件名称, '') = '' OR ISNULL(@改制零件图号, '') = ''
|
||||
BEGIN
|
||||
SELECT '0' AS result, '改制零件名称或改制零件图号不能为空' AS msg;
|
||||
RETURN;
|
||||
END;
|
||||
|
||||
IF ISNULL(@改制数量, 0) <= 0
|
||||
BEGIN
|
||||
SELECT '0' AS result, '改制数量必须大于0' AS msg;
|
||||
RETURN;
|
||||
END;
|
||||
|
||||
-- 修改人:Ld 修改时间:2026-07-01 14:45:00; 优先使用前端点击行传入的原基本件流水号,避免同组件内重复零件或历史流水号导致改制记录回显错位。
|
||||
IF @原基本件流水号 IS NULL
|
||||
BEGIN
|
||||
SELECT TOP 1
|
||||
@原基本件流水号 = B.流水号
|
||||
FROM dbo.PDM_零件明细表_所有视图 AS B
|
||||
WHERE B.订单流水号 = @原订单流水号
|
||||
AND B.组件流水号 = @原组件流水号
|
||||
AND (ISNULL(@原零件名称, '') = '' OR B.零件名称 = @原零件名称)
|
||||
AND (ISNULL(@原零件图号, '') = '' OR B.[图号或型号] = @原零件图号)
|
||||
ORDER BY B.流水号 DESC;
|
||||
END;
|
||||
|
||||
IF @原基本件流水号 IS NULL
|
||||
BEGIN
|
||||
SELECT TOP 1
|
||||
@原基本件流水号 = 基本件流水号
|
||||
FROM dbo.PDM_零件明细表_基本件
|
||||
WHERE 组件流水号 = @原组件流水号
|
||||
ORDER BY 基本件流水号 DESC;
|
||||
END;
|
||||
|
||||
IF @原基本件流水号 IS NULL
|
||||
BEGIN
|
||||
SELECT '0' AS result, '未找到原零件基本件流水号' AS msg;
|
||||
RETURN;
|
||||
END;
|
||||
|
||||
SELECT TOP 1
|
||||
@改制物料流水号 = 物料流水号
|
||||
FROM dbo.库存管理_物料主文件_基本
|
||||
WHERE LTRIM(RTRIM(名称)) = LTRIM(RTRIM(@改制零件名称))
|
||||
AND LTRIM(RTRIM(代号)) = LTRIM(RTRIM(@改制零件图号))
|
||||
AND ISNULL(是否禁用, 0) = 0
|
||||
ORDER BY 物料流水号 DESC;
|
||||
|
||||
IF @改制物料流水号 IS NULL
|
||||
BEGIN
|
||||
SELECT '0' AS result, '未找到改制零件对应的新物料,请先维护物料信息' AS msg;
|
||||
RETURN;
|
||||
END;
|
||||
|
||||
IF @精工期限 IS NULL
|
||||
SET @精工期限 = CONVERT(date, GETDATE());
|
||||
|
||||
BEGIN TRY
|
||||
BEGIN TRAN;
|
||||
|
||||
SELECT @n = COUNT(*)
|
||||
FROM dbo.技术中心_改制订单排序
|
||||
WHERE 年份 = CONVERT(varchar(4), GETDATE(), 23);
|
||||
|
||||
IF @n = 0
|
||||
BEGIN
|
||||
SET @年份 = CONVERT(varchar(4), GETDATE(), 23);
|
||||
|
||||
INSERT INTO dbo.技术中心_改制订单排序(年份, 数量)
|
||||
VALUES(@年份, 1);
|
||||
|
||||
SET @单号排序代码 = 1;
|
||||
END
|
||||
ELSE
|
||||
BEGIN
|
||||
UPDATE dbo.技术中心_改制订单排序
|
||||
SET 数量 = 数量 + 1
|
||||
WHERE 年份 = CONVERT(varchar(4), GETDATE(), 23);
|
||||
|
||||
SELECT @单号排序代码 = 数量
|
||||
FROM dbo.技术中心_改制订单排序
|
||||
WHERE 年份 = CONVERT(varchar(4), GETDATE(), 23);
|
||||
END;
|
||||
|
||||
SET @单号排序代码 = RIGHT(10000 + CONVERT(varchar(100), @单号排序代码), 4);
|
||||
|
||||
SET @改制订单编号 =
|
||||
'BHGZ' + '-'
|
||||
+ DATENAME(year, GETDATE())
|
||||
+ DATENAME(month, GETDATE())
|
||||
+ RIGHT(100 + DAY(GETDATE()), 2)
|
||||
+ CONVERT(varchar, @单号排序代码);
|
||||
|
||||
INSERT INTO dbo.技术中心_改制订单记录
|
||||
(
|
||||
改制订单编号,
|
||||
原订单流水号,
|
||||
原组件流水号,
|
||||
原基本件流水号,
|
||||
原零件名称,
|
||||
原零件图号,
|
||||
改制零件名称,
|
||||
改制零件图号,
|
||||
改制物料流水号,
|
||||
改制数量,
|
||||
精工期限,
|
||||
状态,
|
||||
发起人,
|
||||
发起时间,
|
||||
是否删除
|
||||
)
|
||||
VALUES
|
||||
(
|
||||
@改制订单编号,
|
||||
@原订单流水号,
|
||||
@原组件流水号,
|
||||
@原基本件流水号,
|
||||
@原零件名称,
|
||||
@原零件图号,
|
||||
@改制零件名称,
|
||||
@改制零件图号,
|
||||
@改制物料流水号,
|
||||
@改制数量,
|
||||
@精工期限,
|
||||
N'待生成任务',
|
||||
@发起人,
|
||||
GETDATE(),
|
||||
0
|
||||
);
|
||||
|
||||
SET @改制订单流水号 = SCOPE_IDENTITY();
|
||||
|
||||
INSERT INTO dbo.车间生产管理工艺_零件工艺计划
|
||||
(
|
||||
基本件流水号,
|
||||
零件图号,
|
||||
批次数量,
|
||||
操作日期,
|
||||
考核状态,
|
||||
工艺更新时间,
|
||||
工艺员编号,
|
||||
计划完成
|
||||
)
|
||||
VALUES
|
||||
(
|
||||
@原基本件流水号,
|
||||
@改制零件图号,
|
||||
@改制数量,
|
||||
GETDATE(),
|
||||
2,
|
||||
GETDATE(),
|
||||
@发起人,
|
||||
@精工期限
|
||||
);
|
||||
|
||||
SET @工艺计划流水号 = SCOPE_IDENTITY();
|
||||
|
||||
UPDATE dbo.技术中心_改制订单记录
|
||||
SET 工艺计划流水号 = @工艺计划流水号,
|
||||
状态 = N'工艺完成'
|
||||
WHERE 改制订单流水号 = @改制订单流水号;
|
||||
|
||||
SELECT TOP 1
|
||||
@改制工艺编号 = 工艺编号
|
||||
FROM dbo.车间生产管理工艺_基础表_工艺名称
|
||||
WHERE 工艺名称 = N'改制'
|
||||
AND ISNULL(是否启用, 1) = 1;
|
||||
|
||||
IF @改制工艺编号 IS NULL
|
||||
BEGIN
|
||||
INSERT INTO dbo.车间生产管理工艺_基础表_工艺名称(工艺名称, 是否启用)
|
||||
VALUES(N'改制', 1);
|
||||
|
||||
SET @改制工艺编号 = SCOPE_IDENTITY();
|
||||
END;
|
||||
|
||||
SELECT TOP 1
|
||||
@工序流水号 = 工序流水号
|
||||
FROM dbo.车间生产管理工艺_零件工序
|
||||
WHERE 工艺计划流水号 = @工艺计划流水号
|
||||
ORDER BY 工序顺序;
|
||||
|
||||
IF @工序流水号 IS NOT NULL
|
||||
BEGIN
|
||||
UPDATE dbo.车间生产管理工艺_零件工序
|
||||
SET 工艺编号 = @改制工艺编号,
|
||||
工序顺序 = 1,
|
||||
工艺要求 = N'改制',
|
||||
工序间是否外协 = 0,
|
||||
外协数量 = 0,
|
||||
是否最后一序 = 1,
|
||||
定额工时 = 0,
|
||||
准结工时 = 0,
|
||||
已分配数 = 0,
|
||||
已外协数 = 0,
|
||||
是否允许变更 = 1
|
||||
WHERE 工序流水号 = @工序流水号;
|
||||
END
|
||||
ELSE
|
||||
BEGIN
|
||||
INSERT INTO dbo.车间生产管理工艺_零件工序
|
||||
(
|
||||
工艺计划流水号,
|
||||
工艺编号,
|
||||
工序顺序,
|
||||
工艺要求,
|
||||
工序间是否外协,
|
||||
外协数量,
|
||||
是否最后一序,
|
||||
定额工时,
|
||||
准结工时,
|
||||
已分配数,
|
||||
已外协数,
|
||||
是否允许变更
|
||||
)
|
||||
VALUES
|
||||
(
|
||||
@工艺计划流水号,
|
||||
@改制工艺编号,
|
||||
1,
|
||||
N'改制',
|
||||
0,
|
||||
0,
|
||||
1,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
1
|
||||
);
|
||||
END;
|
||||
|
||||
EXEC dbo.精工车间_工艺保存_派工
|
||||
@工艺计划流水号 = @工艺计划流水号,
|
||||
@人员编号 = @发起人;
|
||||
|
||||
UPDATE dbo.PDM_组件名称
|
||||
SET 组件精工车间 = 1,
|
||||
是否分配 = 1
|
||||
WHERE 组件流水号 = @原组件流水号;
|
||||
|
||||
UPDATE dbo.合同管理_订单信息_基础表
|
||||
SET 精工车间 = 1,
|
||||
是否下达 = 1,
|
||||
技术审核 = 0,
|
||||
下达人 = @发起人,
|
||||
下达日期 = GETDATE(),
|
||||
精工期限 = @精工期限
|
||||
WHERE 订单流水号 = @原订单流水号;
|
||||
|
||||
COMMIT TRAN;
|
||||
|
||||
SELECT
|
||||
'1' AS result,
|
||||
'改制订单已生成' AS msg,
|
||||
@改制订单流水号 AS 改制订单流水号,
|
||||
@改制订单编号 AS 改制订单编号,
|
||||
@工艺计划流水号 AS 工艺计划流水号,
|
||||
@改制物料流水号 AS 改制物料流水号;
|
||||
END TRY
|
||||
BEGIN CATCH
|
||||
IF @@TRANCOUNT > 0
|
||||
ROLLBACK TRAN;
|
||||
|
||||
SELECT
|
||||
'0' AS result,
|
||||
ERROR_MESSAGE() AS msg;
|
||||
END CATCH;
|
||||
END;
|
||||
GO
|
||||
Reference in New Issue
Block a user