118 lines
5.7 KiB
Transact-SQL
118 lines
5.7 KiB
Transact-SQL
/*
|
||
库房管理物料库位分页查询脚本(测试库 ERPTOOL_JY_20250826Back)
|
||
修改人:Ld 修改时间:2026-07-31 13:05:48;
|
||
说明:新增独立分页查询过程供库房管理新页面“物料综合查询/物料找库位/库位找物料”使用,不修改原仓储管理过程。
|
||
*/
|
||
|
||
SET NOCOUNT ON;
|
||
GO
|
||
|
||
IF OBJECT_ID(N'dbo.仓储管理_物料库位_分页查询_库房管理', N'P') IS NOT NULL
|
||
DROP PROCEDURE dbo.仓储管理_物料库位_分页查询_库房管理;
|
||
GO
|
||
|
||
CREATE PROCEDURE dbo.仓储管理_物料库位_分页查询_库房管理
|
||
@查询方向 NVARCHAR(20) = N'综合',
|
||
@关键字 NVARCHAR(50) = NULL,
|
||
@关键字_check BIT = 0,
|
||
@库房名称 NVARCHAR(50) = NULL,
|
||
@库房名称_check BIT = 0,
|
||
@PageCurrent INT = NULL,
|
||
@PageSize INT = NULL,
|
||
@PageCount INT = NULL OUTPUT,
|
||
@ItemCount INT = NULL OUTPUT
|
||
AS
|
||
BEGIN
|
||
SET NOCOUNT ON;
|
||
|
||
DECLARE @tbname NVARCHAR(MAX);
|
||
DECLARE @fieldkey NVARCHAR(1000);
|
||
DECLARE @where NVARCHAR(MAX);
|
||
DECLARE @fieldshow NVARCHAR(MAX);
|
||
DECLARE @fieldOrder NVARCHAR(1000);
|
||
DECLARE @keyword NVARCHAR(100);
|
||
DECLARE @warehouse NVARCHAR(100);
|
||
|
||
SET @keyword = REPLACE(ISNULL(@关键字, N''), N'''', N'''''');
|
||
SET @warehouse = REPLACE(ISNULL(@库房名称, N''), N'''', N'''''');
|
||
SET @PageCurrent = ISNULL(NULLIF(@PageCurrent, 0), 1);
|
||
SET @PageSize = ISNULL(NULLIF(@PageSize, 0), 20);
|
||
|
||
SET @tbname = N'(
|
||
SELECT
|
||
ROW_NUMBER() OVER (ORDER BY ISNULL(A.货位名称, N''''), ISNULL(A.物料编码, N''''), A.物料与货位流水号) AS 分页流水号,
|
||
A.物料名称 AS 名称,
|
||
A.图号或型号 AS 代号,
|
||
A.物料编码,
|
||
A.物料名称,
|
||
A.图号或型号,
|
||
A.类型,
|
||
A.单位,
|
||
A.库存,
|
||
A.库存 AS 库存数量,
|
||
A.货位名称,
|
||
A.货位名称 AS 库位,
|
||
A.物料与货位流水号,
|
||
ISNULL(m.物料流水号, 0) AS 物料流水号,
|
||
A.货位流水号,
|
||
A.货位流水号 AS 库位流水号,
|
||
A.批次编号,
|
||
A.编辑人,
|
||
A.编辑时间,
|
||
ISNULL(k.库房名称,
|
||
CASE
|
||
WHEN A.货位名称 LIKE N''%毛坯%'' THEN N''一楼毛坯库''
|
||
WHEN A.货位名称 LIKE N''%耗材%'' THEN N''耗材库''
|
||
WHEN A.货位名称 LIKE N''[A-Za-z][0-9]%-[0-9]%'' AND A.货位名称 NOT LIKE N''%-%-%'' THEN N''二楼隔层仓库''
|
||
WHEN A.货位名称 LIKE N''[0-9][0-9]-[0-9][0-9]-[0-9][0-9]'' THEN N''立库仓库''
|
||
WHEN A.货位名称 LIKE N''[0-9]-[0-9][0-9]-[0-9][0-9]-[0-9][0-9]'' THEN N''三楼仓库''
|
||
ELSE N''库房A区''
|
||
END) AS 库房名称,
|
||
ISNULL(q.库区名称,
|
||
CASE
|
||
WHEN A.货位名称 LIKE N''%毛坯%'' THEN N''一楼毛坯库区''
|
||
WHEN A.货位名称 LIKE N''%耗材%'' THEN N''耗材库区''
|
||
WHEN A.货位名称 LIKE N''[A-Za-z][0-9]%-[0-9]%'' AND A.货位名称 NOT LIKE N''%-%-%'' THEN N''二楼隔层库区''
|
||
WHEN A.货位名称 LIKE N''[0-9][0-9]-[0-9][0-9]-[0-9][0-9]'' THEN N''立库库区''
|
||
WHEN A.货位名称 LIKE N''[0-9]-[0-9][0-9]-[0-9][0-9]-[0-9][0-9]'' THEN N''三楼可视化库区''
|
||
ELSE N''标准库位区''
|
||
END) AS 库区名称,
|
||
CASE WHEN ISNULL(A.库存, 0) > 0 THEN N''有库存'' ELSE N'''' END AS 库存状态
|
||
FROM dbo.外购件库存_视图 A
|
||
LEFT JOIN dbo.库存管理_货位主文件 h ON A.货位流水号 = h.货位流水号
|
||
LEFT JOIN dbo.库存管理_物料主文件_基本 m ON A.物料编码 = m.物料编码
|
||
LEFT JOIN dbo.库房管理_库房主文件 k ON h.库房流水号 = k.库房流水号
|
||
LEFT JOIN dbo.库房管理_库区主文件 q ON h.库区流水号 = q.库区流水号
|
||
WHERE ((ISNULL(A.批次编号, N'''') <> N'''' AND ISNULL(A.库存, 0) > 0) OR ISNULL(A.批次编号, N'''') = N'''')
|
||
) AS T';
|
||
SET @fieldkey = N'分页流水号';
|
||
SET @fieldOrder = N'库位 ASC, 物料编码 ASC, 物料与货位流水号 ASC';
|
||
SET @fieldshow = N'名称,代号,物料编码,物料名称,图号或型号,类型,单位,库存,库存数量,货位名称,库位,物料与货位流水号,物料流水号,货位流水号,库位流水号,批次编号,编辑人,编辑时间,库房名称,库区名称,库存状态';
|
||
SET @where = N'1 = 1';
|
||
|
||
IF @关键字_check = 1 AND @keyword <> N''
|
||
BEGIN
|
||
IF @查询方向 = N'逆向'
|
||
SET @where = @where + N' AND (库位 LIKE N''%' + @keyword + N'%'' OR 货位名称 LIKE N''%' + @keyword + N'%'')';
|
||
ELSE IF @查询方向 = N'正向'
|
||
SET @where = @where + N' AND (名称 LIKE N''%' + @keyword + N'%'' OR 代号 LIKE N''%' + @keyword + N'%'' OR 物料名称 LIKE N''%' + @keyword + N'%'' OR 图号或型号 LIKE N''%' + @keyword + N'%'' OR 物料编码 LIKE N''%' + @keyword + N'%'')';
|
||
ELSE
|
||
SET @where = @where + N' AND (名称 LIKE N''%' + @keyword + N'%'' OR 代号 LIKE N''%' + @keyword + N'%'' OR 物料名称 LIKE N''%' + @keyword + N'%'' OR 图号或型号 LIKE N''%' + @keyword + N'%'' OR 物料编码 LIKE N''%' + @keyword + N'%'' OR 库位 LIKE N''%' + @keyword + N'%'' OR 货位名称 LIKE N''%' + @keyword + N'%'')';
|
||
END
|
||
|
||
IF @库房名称_check = 1 AND @warehouse <> N''
|
||
SET @where = @where + N' AND 库房名称 = N''' + @warehouse + N'''';
|
||
|
||
EXEC dbo.sp_xt_pagesplit2
|
||
@tbname,
|
||
@fieldkey,
|
||
@where,
|
||
@fieldshow,
|
||
@fieldOrder,
|
||
@PageCurrent,
|
||
@PageSize,
|
||
@PageCount OUTPUT,
|
||
@ItemCount OUTPUT;
|
||
END
|
||
GO
|