95 lines
3.6 KiB
Transact-SQL
95 lines
3.6 KiB
Transact-SQL
-- 三楼仓库可视化 - 库位查询存储过程
|
|
-- 创建时间: 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
|