Skip to content

净菜 进销存部分 逻辑 备忘与拾遗

由于开发周期限制,净菜进销存的流程在很多处权宜地屏蔽掉了一些逻辑,现做备忘,用以复查

库存部分

1.商品库详情->库存设置->限制库存
    返回中新增了clean_food字段用以标识,当该sku为净菜时,拉取成品库存,毛菜时拉取原料库存,全部为销售单位,以扣减冻结库存
2.入库->成品入库/半成品入库
    此处导出已做过滤
3.成品出库->详情
    拉取详情时才会根据绑定在出库单中的小码去找对应的大批次号返回给前端,前端用后台返回的数据再传回后台用以出库,出库和保存草稿时会保存大批次号到出库单中,刷新页面会重新去找一遍大批次号,不会使用原来存入的大批次号
    out_stock_base字段在毛菜时,由用户选择批次时手动填入,净菜在拉取详情时,根据小码自动生成该字段,出库时会用该字段去扣减批次库存
4.成品出库->出库
    出库单中商品被标记为净菜时,使用原出库单中的detail数据,因为净菜出库单数据只能由订单及分拣软件同步过来,不能手动修改,不能自动出库,不能批量出库
    出库流程的最后调用__change_stock方法修改库存,假定全部用户为先进先出,并未在加权平均的方法中做验证

5.库存总览
    使用的是stock_new中的数据
6.库存总览->详情
    使用的是batch_stock中的数据
7.库存总览->详情->批次流水
    新增了几个stock_type:    
        StockOutCleanFood = 11  # 净菜原料领料
        StockRefCleanFood = 12  # 净菜退货入库
        StockInSemi = 13  # 净菜半成品入库
        StockInProduct = 14  # 净菜成品入库
        StockOutSemi = 15  # 净菜半成品领料
        StockOutProduct = 16  # 净菜成品出库
8.库存变动记录
    入库出库退货三个页面对应的接口中,拉取流水的方法中过滤stock_type的条件改为毛菜type+新增的净菜type    

订单部分

1.下单时会在pl单的detail中加入clean_food字段标识净菜,为了正确扣减库存,取商品加入订单时的净毛值(bool)
2.同时会创建出库单,也存在clean_food标识,根据标识锁定对应库存
3.下单时会根据净毛值来选择比较的库存,默认无上下游订单,不存入redis
4.比较库存在生成订单之前,为避免多层传值,在比较库存与生成订单时各自会查一遍商品工艺以区分净菜

分拣部分

1.clean_food_sort_update_weight 一定要在异步修改出库单之前调用,因为该方法中会调用sync_by_order重新从订单同步一遍出库单,需先同步完出库单再绑定或解绑小批次码
2.绑定解绑均调用CleanFoodOutStockSheetEditView接口,注意幂等