/* 库房管理库位归类规则脚本(测试库 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