更新装配、精工车间、技术中心、仓储模块,新增工序工价、生产审核、三楼仓库可视化等功能及文档SQL

This commit is contained in:
Developer
2026-07-06 11:21:59 +08:00
parent be0ff91e24
commit 9c1f52078d
43 changed files with 8566 additions and 233 deletions

View 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

View 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

File diff suppressed because it is too large Load Diff

View 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

View 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

View 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

View 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;

View 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

View 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