暂无
任务描述
需求描述
一、背景和价值
1.背景
观察数据分析,统计,查看使用情况,及时调整仓库的库存利用率
2.价值
提高数据统计准确性,快捷性,提高效率
二、需求描述
2.1. 功能清单
1.按仓库维度统计库容的利用率
2.2.影响点
无
2.3. 功能描述:
1.报表中心-自定义导出-新建【仓库库容利用率统计报表】,仓库控件(仅限本地仓),支持多选,必填,每个仓库用一个sheet页签进行导出统计。
2.详细的报表导出字段逻辑如下:
①导出涉及的数据源:库位管理功能 和 所有仓库库存的数量,产品库的尺寸,作为基础数据源。
②仓库字段:导出选择的仓库
③库位类型:库位管理->库位大小
④库位尺寸:库位管理->库位的长*宽*高 (分别显示用* 相连显示即可如下图)
⑤总库位:当前库位类型的总库位数
⑥已使用库位:当前库位类型已占用的总数
⑦空置库位:总库位-已使用库位
⑧总库容:库位类型的尺寸长*宽*高*库位总数/1000000
⑨已使用库容:库位类型库存产品包装尺寸长*宽*高*当前库位类型的当前库存数量/1000000 ---------(注:这是N个SKU的累加值库容/1000000)
⑩剩余库容:总库容-剩余库容
11.库位使用率:已使用库位/总库位
12.库容使用率:已使用库容/总库容

验收标准
暂无
自测结果:
在生产库中也执行了一下sql,然后挑选出一个数据比较少的仓库,查看数据是否正确
在自定义报告配置这里新增一个报表,然后复制下面的sql,筛选条件添加一个仓库(多选)
本地仓库sql:
SELECT WareHouseName AS text,ID AS value FROM dbo.RB_WareHouse (NOLOCK) WHERE CustomerID=@CustomerID AND WareHouseTYpe=1
报表sql:
SELECT
T2.仓库,
T2.库位大小,
T2.总库位,
T2.已使用库位,
T2.空置库位,
Round(T2.总库容,2) 总库容,
Round(T2.已使用库容,2) 已使用库容,
Round(T2.剩余库容,2) 剩余库容,
CAST(Round(T2.库位使用率 * 100,2) AS varchar) + '%' 库位使用率,
CAST(Round(T2.库容使用率 * 100,2) AS varchar) + '%' 库容使用率
FROM (
SELECT T1.WarehouseName '仓库',
T1.PositionSize '库位大小',
T1.TotalPositionCount '总库位',
(T1.TotalPositionCount - T1.TotalEmptyPositionCount) '已使用库位',
T1.TotalEmptyPositionCount '空置库位',
ISNULL((T1.TotalPositionVolume / 1000000 * T1.TotalPositionCount),0) '总库容',
ISNULL(((T1.TotalPositionCount - T1.TotalEmptyPositionCount) * 1.00 / 1000000 * T1.TotalUsedPositionVolume),0) '已使用库容',
ISNULL((T1.TotalPositionVolume * 1.00 / 1000000 * T1.TotalPositionCount),0) - ISNULL(((T1.TotalPositionCount - T1.TotalEmptyPositionCount) * 1.00 / 1000000 * T1.TotalUsedPositionVolume),0) '剩余库容',
ISNULL(((T1.TotalPositionCount - T1.TotalEmptyPositionCount) * 1.00 / T1.TotalPositionCount),0) '库位使用率',
CASE WHEN (T1.TotalPositionVolume * 1.00 / 1000000 * T1.TotalPositionCount) > 0
THEN
ISNULL(((T1.TotalPositionCount - T1.TotalEmptyPositionCount) * 1.00 / 1000000 * T1.TotalUsedPositionVolume),0) / ISNULL((T1.TotalPositionVolume * 1.00 / 1000000 * T1.TotalPositionCount),0)
ELSE 0.00
END '库容使用率'
FROM
(
SELECT wh.WarehouseName,
CASE wps.SizeType
WHEN 0 THEN '迷你'
WHEN 1 THEN '小'
WHEN 2 THEN '中'
WHEN 3 THEN '大'
WHEN 4 THEN '加大'
WHEN 5 THEN '加加大'
WHEN 6 THEN '加加加大'
WHEN 7 THEN '特大'
WHEN 8 THEN '特特大'
WHEN 9 THEN '托盘'
WHEN 10 THEN '无限制尺寸'
WHEN 11 THEN '零件盒'
ELSE '未设置' END PositionSize,
COUNT(DISTINCT wps.ID) as TotalPositionCount,
SUM(wps.Volume) TotalPositionVolume,
SUM(p.Pack_Length * p.Pack_Width * p.Pack_Height * wopp.GoodNum) TotalUsedPositionVolume,
SUM(CASE WHEN ISNULL(wopp.ID,0)<=0 THEN 1 ELSE 0 END) TotalEmptyPositionCount
FROM RB_WareHouse_Position wps(nolock)
LEFT JOIN RB_WareHouse_OneProductMorePosition_Product wopp(NOLOCK) ON wps.CustomerID=wopp.CustomerID AND wps.ID=wopp.PositionID
INNER JOIN RB_Product p(NOLOCK) ON p.CustomerID=wopp.CustomerID AND p.SKU=wopp.SKU
INNER JOIN RB_WareHouse wh(NOLOCK) ON wh.CustomerID=wps.CustomerID AND wps.WarehouseID= wh.ID
where wps.CustomerID=@CustomerID and wps.WarehouseID in (@WarehouseID)
GROUP BY wps.SizeType,WarehouseName
) T1
) T2
ORDER BY T2.仓库,T2.库位大小