一、摘要
因为同事离职,他负责开发的仓储模块由于:
- 耦合性强,与生产、销售等模块耦合太紧密;
- 模块内部复用性差,一些公用功能(主要是规则检测):物料账期检测,仓库可操作时间控制,先进先出控制等没有独立出来;
- Service类功能划分不清晰、有点乱,比如报表查询部分在ServiceA,部分在ServiceB;销售出库在ServiceA,领料出库则在ServiceC…
鉴于此,要对仓储模块进行重构,包括:业务功能梳理和代码重构,本文重点讨论业务功能梳理,即仓储模块应该包括哪些功能,功能之间有哪些关系?
二、仓储模块功能梳理
1、仓储模块功能列表
仓储模块简单理解就是管理货物的进、出及余量查询,对应功能就是:入库管理、出库管理和库存查询,结合快消品行业,我认为仓储模块应该具备下述功能。
1)基础数据维护
- 仓库信息维护
至少包含仓库代码、名称、类型(标准库,车间库,中转库等)、状态;
需要库位管理的,则还需要库位信息;
除此之外还应包含车间库所属车间,仓库所属分厂,可以在组织结构维护,也可以在仓储模块维护。
- 仓储模块参数设置
单据编号规则:入库单号,出库单号,调拨单号,领料单号等;
出入库规则:先进先出还是后进先出等;
库存金额计算:移动平均还是加权平均等;
账期设置:通常是自然年月,也可以起始日期;
仓库操作权限清单:哪些人可以操作成品库等;
2)入库管理
- 生产入库:生产车间、入库仓库、入库日期、经手人、入库货物明细(货物ID、货物数量、单位、成本价、生产批号)等;
- 生产退货:信息同生产入库,类似生产入库冲销,负数入库;
- 采购入库:根据企业管理要求可以从采购单直接入库,也可以根据采购单先生成收获单,然后根据收获单入库,主要包括:入库仓库、供应商、入库日期、经手人、货物明细(货物ID、货物数量、单位、采购价、批号)等;
- 采购退货:与生产退货入库有点像,负数入库,通常是根据已有采购单创建一张采购退货单,然后根据采购退货单直接入库或先生成收获单,然后根据退货单入库;
- 其它入库:上述4种情况之外的入库,都可以通过其它入库来处理,关键信息包括:入库仓库、入库日期、经手人、入库货物明细、责任单位(供应商或车间或部门);
- 单据跟踪:入库单查询,入库单明细查看、打印,入库单冲销。
3)出库管理
- 销售出库:出库仓库、出库客户、出库日期、经手人、出库货物明细(货物ID、货物数量、单位、售价、批号)、货运信息(物流公司、驾驶员等)、参考单据号等;
- 领料出库:领料车间(部门)、出库仓库、出库日期、经手人、出库货物明细(货物ID、货物数量、单位、成本价、批号)、参考单据号等;
- 其它出库:供应商退货、客户补货等非标准出库都可以走其它出库,包含:出库仓库、出库单位(部门、客户、供应商)、经手人、货物明细等;
- 单据跟踪:单据查询,出库单明细查看、打印,出库冲销。
4)调拨管理
仓库之间的货物转移,发货仓库对应的是出库操作,收获仓库对应的是入库操作。
- 调拨单创建:发货仓库、收获仓库、经手人、货物明细(货物ID,数量、单价、单位、金额、批号)、操作时间等;
- 调拨出库:货物离开发货仓库,根据调拨单及实发数量出库;
- 调拨入库:收获仓库收到货物后,根据调拨单及实收数量入库;
- 单据跟踪:调拨单查询,明细查看、打印,调拨冲销(反向调拨);
5)盘点管理
会计、仓管应定期对货物进行盘点(全盘或抽样盘点),核实账实是否相符。
- 创建盘点单:盘点仓库、盘点日期、经手人、盘点明细(货物ID、名称、单位、批次、数量);
- 盘点录入:盘点结果录入,然后过账,盘盈入库,盘亏出库;
- 单据查询:盘点单查询,明细查看、打印;
6)库存查询及报表
- 库存查询:按仓库查看该仓库所有货物的库存情况;按货物查看货物总库存,查看货物在不同仓库的分布情况;查看货物在仓库的批次明细;
- 物料经销存:进销存日报表,物料期初量,入库量,出库量,结存量等,点击结存量客户查看物料明细账;
- 物料明细账:物料出入库每一笔明细记录;
三、小结
1、安全库存
安全库存本文并没有提及,有需要的可以加上:
1)安全库存设置:可以设置到单品,也可以设置到仓库+单品;
2)安全库存预警提醒,超过库存上限或低于库存下限,系统都要提醒;
2、装箱、拆箱
装箱、拆箱功能本文也没有提及,实际情况装箱、拆箱在快消品行业应用场景还是比较多的,比如:要给客户发30个小火车,小火车按箱采购(每箱100个小火车),发货时就必须先将箱拆成个。但装箱、拆箱操作更多用于生产,因此并未在仓储模块列出,当然仓储模块可以包含装箱、拆箱功能。
3、快消品行业仓储特性
快消品行业尤其有生产性质的快消品企业,其仓储有几个特性:
1)中小企业成品品类相对较少,因此成品管理相对简单;
2)原辅材料、包装材料,通常在一个大仓库里,而且品类繁多,管理难度较大,一般企业经常会发生原辅料濒临过期问题;因此,原辅包材建议先进先出,并做好批次管理;
3)车间库,车间通常领料到车间库,后续的消耗、半成品出入库、成品生产入库都是基于车间库操作;因此,车间库对于有生产属性的快消品企业非常重要,企业的部分利润来源(生产成本的控制)就要源自车间库的严格管理。