99 lines
4.3 KiB
Transact-SQL
99 lines
4.3 KiB
Transact-SQL
/*
|
||
库房管理库位归类规则脚本(测试库 ERPTOOL_JY_20250826Back)
|
||
修改人:Ld 修改时间:2026-07-31 14:26:30;
|
||
说明:毛坯库归一楼毛坯库,耗材归耗材库,其余未归类库位归库房A区。
|
||
*/
|
||
|
||
SET NOCOUNT ON;
|
||
GO
|
||
|
||
IF NOT EXISTS (SELECT 1 FROM dbo.库房管理_库房主文件 WHERE 库房编号 = N'KF-A')
|
||
BEGIN
|
||
INSERT INTO dbo.库房管理_库房主文件(库房编号, 库房名称, 库房类型, 地址, 状态, 排数, 每排列数, 层数, 备注, 创建人)
|
||
VALUES(N'KF-A', N'库房A区', N'标准库房', N'库房A区', N'启用', 1, 99, 1, N'未归类库位默认归属库房', 0);
|
||
END
|
||
GO
|
||
|
||
IF NOT EXISTS (SELECT 1 FROM dbo.库房管理_库房主文件 WHERE 库房编号 = N'KF-MP')
|
||
BEGIN
|
||
INSERT INTO dbo.库房管理_库房主文件(库房编号, 库房名称, 库房类型, 地址, 状态, 排数, 每排列数, 层数, 备注, 创建人)
|
||
VALUES(N'KF-MP', N'一楼毛坯库', N'毛坯库', N'一楼毛坯库', N'启用', 1, 99, 1, N'毛坯库库位归属', 0);
|
||
END
|
||
GO
|
||
|
||
IF NOT EXISTS (SELECT 1 FROM dbo.库房管理_库房主文件 WHERE 库房编号 = N'KF-HC')
|
||
BEGIN
|
||
INSERT INTO dbo.库房管理_库房主文件(库房编号, 库房名称, 库房类型, 地址, 状态, 排数, 每排列数, 层数, 备注, 创建人)
|
||
VALUES(N'KF-HC', N'耗材库', N'耗材库', N'耗材库', N'启用', 1, 99, 1, N'耗材库位归属', 0);
|
||
END
|
||
GO
|
||
|
||
;WITH DefaultArea AS
|
||
(
|
||
SELECT N'KF-A' AS 库房编号, N'A01' AS 库区编号, N'标准库位区' AS 库区名称, N'标准库区' AS 库区类型, N'未归类库位默认库区' AS 备注
|
||
UNION ALL SELECT N'KF-MP', N'MP', N'一楼毛坯库区', N'毛坯库区', N'毛坯库库位默认库区'
|
||
UNION ALL SELECT N'KF-HC', N'HC', N'耗材库区', N'耗材库区', N'耗材库位默认库区'
|
||
)
|
||
INSERT INTO dbo.库房管理_库区主文件(库房流水号, 库区编号, 库区名称, 库区类型, 排序, 备注, 创建人)
|
||
SELECT k.库房流水号, a.库区编号, a.库区名称, a.库区类型, 1, a.备注, 0
|
||
FROM DefaultArea a
|
||
INNER JOIN dbo.库房管理_库房主文件 k ON a.库房编号 = k.库房编号
|
||
WHERE NOT EXISTS
|
||
(
|
||
SELECT 1
|
||
FROM dbo.库房管理_库区主文件 x
|
||
WHERE x.库房流水号 = k.库房流水号
|
||
AND x.库区编号 = a.库区编号
|
||
);
|
||
GO
|
||
|
||
DECLARE @库房A INT;
|
||
DECLARE @库区A INT;
|
||
DECLARE @毛坯库 INT;
|
||
DECLARE @毛坯库区 INT;
|
||
DECLARE @耗材库 INT;
|
||
DECLARE @耗材库区 INT;
|
||
|
||
SELECT @库房A = 库房流水号 FROM dbo.库房管理_库房主文件 WHERE 库房编号 = N'KF-A';
|
||
SELECT @库区A = 库区流水号 FROM dbo.库房管理_库区主文件 WHERE 库房流水号 = @库房A AND 库区编号 = N'A01';
|
||
SELECT @毛坯库 = 库房流水号 FROM dbo.库房管理_库房主文件 WHERE 库房编号 = N'KF-MP';
|
||
SELECT @毛坯库区 = 库区流水号 FROM dbo.库房管理_库区主文件 WHERE 库房流水号 = @毛坯库 AND 库区编号 = N'MP';
|
||
SELECT @耗材库 = 库房流水号 FROM dbo.库房管理_库房主文件 WHERE 库房编号 = N'KF-HC';
|
||
SELECT @耗材库区 = 库区流水号 FROM dbo.库房管理_库区主文件 WHERE 库房流水号 = @耗材库 AND 库区编号 = N'HC';
|
||
|
||
UPDATE h
|
||
SET 库房流水号 = @毛坯库,
|
||
库区流水号 = @毛坯库区,
|
||
库位状态 = ISNULL(h.库位状态, N'空库位'),
|
||
修改人 = 0,
|
||
修改时间 = GETDATE()
|
||
FROM dbo.库存管理_货位主文件 h
|
||
WHERE h.货位名称 LIKE N'%毛坯%';
|
||
|
||
UPDATE h
|
||
SET 库房流水号 = @耗材库,
|
||
库区流水号 = @耗材库区,
|
||
库位状态 = ISNULL(h.库位状态, N'空库位'),
|
||
修改人 = 0,
|
||
修改时间 = GETDATE()
|
||
FROM dbo.库存管理_货位主文件 h
|
||
WHERE h.货位名称 LIKE N'%耗材%';
|
||
|
||
UPDATE h
|
||
SET 库房流水号 = @库房A,
|
||
库区流水号 = @库区A,
|
||
库位状态 = ISNULL(h.库位状态, N'空库位'),
|
||
修改人 = 0,
|
||
修改时间 = GETDATE()
|
||
FROM dbo.库存管理_货位主文件 h
|
||
LEFT JOIN dbo.库房管理_库房主文件 k ON h.库房流水号 = k.库房流水号
|
||
WHERE k.库房流水号 IS NULL;
|
||
|
||
SELECT
|
||
SUM(CASE WHEN h.库房流水号 = @毛坯库 THEN 1 ELSE 0 END) AS 一楼毛坯库库位数,
|
||
SUM(CASE WHEN h.库房流水号 = @耗材库 THEN 1 ELSE 0 END) AS 耗材库库位数,
|
||
SUM(CASE WHEN h.库房流水号 = @库房A THEN 1 ELSE 0 END) AS 库房A区库位数,
|
||
SUM(CASE WHEN h.库房流水号 IS NULL THEN 1 ELSE 0 END) AS 未归类库位数
|
||
FROM dbo.库存管理_货位主文件 h;
|
||
GO
|