零星需求待整理
# 大流程
# 冻结的两种实现方案
# 实时计算冻结数量
- 冻结的数量从在途订单或采购单实时计算
- 需要及时维护订单或采购单的状态
- 冻结的毛料转成冻结的成品需要及时更新订单状态
# 冻结数量扣减
- 库存表记录冻结数量,增减时更改数量,同时记录更改记录
- 库存的冻结数据相当于冗余缓存数据,
# 其它
# 一些疑问
- 加工员工是先打开加工单,再选产品来填完工数量,还是直接搜索产品,填入数量
- 预分拣要做吗
- 完工时成品不够,如果成品库有多,直接冻结成品库,如果没成品库,就被领料单继续生产
- 没完成的生产单,能不能先入库,和先退料,以后再生产
- 生产的损耗超预期,生产出的成品不够,能及时通知生产吗
- 库存里有可用库存,冻结库存,在途库存,因为生产可直接领,
- 入库如果实际货不够,是否重新采购让客户决定,系统要考虑,如果可用库存就冻可用库存的差量,如果不够,相应采购单和领料的冻结就减
- 财务付款是按采购单来付还是按入库单来付?
# spu和sku设计上的考虑
- 考虑强化sku,弱化spu成分类和公共属性修改
- 业务中只需要取sku即可,无需spu的存在
- 代码中,所有属性都是从sku上取。实际的数据库实现中,spu的属性可以在sku上存一份也可以不存,不存时spu的属性也需要从sku上取,sku代理spu的属性。更新spu的公共属性同时更新sku属性这逻辑清晰简单,所以在sku上冗余所有spu的公共属性是比较好的方案,这方案也便于sku,spu属性移动重构
- 这样设计容易实现启用和屏蔽spu
- 这样设计容易实现spu和sku的属性可配置
# inventory库存设计上的考虑
- inventory表有现有库存,冻结库存,在途库存三个库存属性,可用库存=现有库存-冻结库存
- 商品goods与仓库storage是多对多的关系,在inventory表里就有商品id和仓库id,多条inventory记录组成一个商品的完整库存,对应现实情况就是一个商品可以存放在多个仓库中
- 取得商品的库存,需要sum所有的goodsId
- 每个商品都对应唯一的一个默认仓库,冻结和在途这两个虚拟的库存只在这个默认仓库里有值
- 保存现有库存,而不保存可用库存,这样设计的考虑是在为了简化冻结的操作,不用匹配和更新多条记录
- 可用,冻结,在途的考虑:
- 冻结和在途是虚拟的操作,不体现在现实的仓库操作中
- 冻结操作:直接在默认仓库的冻结上加值,update set freezeQuantity=freezeQuantity+冻结量 where goodsId=商品id and isDefaultStorage=true
- 在途操作:与冻结类似
- 发货出库,领料出库等出库操作,是冻结出库,这时除了正常减现有库存外,还需要减冻结库存
- 收货入库操作,除了加现有库存外,还需要减在途库存
- 所有的减库存都要加库存>0的判断,不够就抛错,以防产生负库存
- 库存的变动记录到库存变动记录表
# 一些疑问2
人员管理和每个模块配送员、分拣员、工人、采购员之间的关系
配送员、分拣员、工人、采购员公用人员管理功能,需要登录后台系统的人员和Person记录一一对应,使用Person功能来实现登录操作日志的覆盖范围,蔬东坡的的操作模块只有商品和订单这个部分
供应商、采购员、工人等登录密码都先暂时先不做
供应商中的采购协议价先不做
采购单的确认收货的相关流程尚未有确定,蔬东坡是放在采购单中,但是按照陈总的意思应该是放在入库的动作上
采购退回的具体流程,谁可以审核,怎么审核,通过后是否就是管理流程,是否还有其他操作,审核不通过,该退回流程是否作废
///采购单新增的时候,不清楚供应商的商品在那里设置的
采购单的关闭,什么情况下可以关闭,谁具有这个权限
不要考虑非标准的流程,采购在订单的前面
配送管理由于区域管理要做
客户类型的运营时段不知道在那里配置
供应商和商品的关系是否是一一对应,一个商品只能由一个供应商提供
基础商品\加工商品怎么区分
加工商品对应的生产线在那里新增
商品上了一个保质期
线路排线的界面需要画一下,到事线路要改为路线可能相对比较好
有确认流程的比如:退货退回单\采购退回单,待入库\待退款等状态
商品新增部分:基础商品\加工品有所不同,加工品必须的选择生产线
标记完工入库:只能标记整个加工单,还是可以针对性的标记每个商品 库存变更记录\多次分拣的弹出框还没有做
确认收货还没有做
# 需求疑问3
- 发货差异表是怎么操作的,有用到吗
- 一般是批量结算吗
- 订单核算是怎么使用的
- 订单汇总有加工品,能采购加工品吗
- 规格转换,不同的规格,在他们系统是同一个sku
- 商品的供应商有多个吗
- 有用到商品分拣吗
- 很多加工单只能一个个领料吗
# 订单汇总
- 如果是基础商品,就直接显示,如果是加工品,就去bom里计算出对应的毛料显示出来
# 入库前的检测
- 现在是用表格来记录的
# 做少的:
- 采购协议价
- 采购确认
- 发货差异表
- 分拣员
- 导出的很多框,设计的不合里
- 系统单号没有跑完,发货单还没有走
# 客户结算
- 退货自动结算
# 分拣2020-09-08
- 重新梳理分拣功能,分拣单退化为次要的扩展功能,可有可无,概念改为分拣计划
- 分拣操作不依赖分拣计划,分拣计划只用来查看
- 系统底层不限定分拣的步骤
- 可直接分拣,分拣完成的同时生成出库单,出库单明细直接关联订单明细
- 可先生成分拣计划(可按客户,商品,订单来勾选),分拣计划生成出库单,库管出库后再进行分拣(这功能可先不实现,后面再加),出库单关联分拣计划
- 正常情况,需要把所有的分拣任务的进行分拣操作,所以不需要特意生成分拣计划
- pc版按商品分拣
- 实时统计所选日期的待分拣记录(包括已经分拣完成的)
- 每行信息是商品+客户的分拣记录
- 一行记录多次录入分拣数据,打印多张标签
- 订单明细里记录已分拣数,分拣完成的状态
- 分拣记录关联订单明细
# 配送单
- 配送单只跟订单有关,跟分拣无关,系统不限制也不判断是否有做分拣,是否有货等
- 重要原则:配送单很独立,很简单,直接根据订单生成,这样保证系统数据错乱或卡住跑不下去时,配送单依然正确和有效
- 正常订单与配送单是1对1的关系,但考虑到净食安提的单个订单,在部分有货的情况下,可优化发货的需求,订单与配送单改成1对多的关系
- 根据净食安的实际情况,订单生成后自动生成11对应的配送单,有特殊情况需要分开配送时,可对配送单进行分拆
- 配送单打印时,可按商品来打印
- 打印配送单时,先完成客户价格核算
# 生产
# 苏东坡的流程
- 做分拣时,会把数量同时更新到加工单,分拣单
- 分拣动作是独立的,分拣不判断库存,不减库存,不依赖加工单的完成
- 完工单审核通过加库存
- 配送单点发货按钮时减库存
# 一些思考
- 标准流程,应该不是出库后分拣,而是先从库管管理的仓库出库到分拣库,在分拣库里分拣,和苏东坡流程一样,在配送发货时才算是真正的出库
- 兼容模式下,有且只有一个成品仓(分拣仓),加工那些都不需要选仓库,直接默认就到成品仓,不需要生产完后交给库管,下一分钟再找库管拿这个多余的步骤