后台发货业务逻辑

1.发货判断

  发货类型:整单发货,拆单发货。

  判断:

    1.是否订单存在

    2.是否是待出库状态

    3.获取配送员信息是否可配送

    4.订单信息是否已支付

    5.登录用户是否有发货权限

2.创建出库单:

  1.获取订单,获取订单来源渠道,创建出库单信息,绑定订单号

  2.获取订单是否上锁(Threading.ReaderWriterLockSlim.EnterWriteLock),判断订单是否被其他用户占用

  3.订单创建出库单流程:(事务在此包裹System.TransactionScope.TransactionScope)

    a).选择仓库

    b).判断订单状态是否可创建出库单

    c).判断订单类型:寄付:到付

    d).获取订单收货地址:邮寄:自提

    e).修改状态:待创建配送单,状态为待配送,发票在第一张出库单上

    f).计算出库单实际销售金额,计算零售单价,计算折扣金额

      1.获取订单明细所有商品信息,折扣信息,判断当前订单明细编号已创建分配出库的出库单明细

      2.减去运费后,计算销售金额,折扣金额,毛利金额,需分摊金额

      3.循环出库商品,最后一个商品出库时:订单商品数量==已出库商品数

    g).出库单主表上添加记录,出库单子表添加记录

    h).推送出库信息,数量给WMS,推送成功,更新数据库数量

    i).更新订单主表状态为已出库:部分出库,待出库

  4.解除锁,将已处理的订单在任务池删除,并写进订单事务日志表

3.创建配送单

  1.获取出库单信息,订单信息,商品信息,仓库信息,检查时间戳是否改变,出库单是否被别人改变

  2.获取订单所有商品库存信息,库存是否充足

  3.修改出库单状态为待拣货,更新库存数量

  4.获取订单配送方式,配送单表上添加记录

 发货状态:创建配送单号后为已发货。

前端确认发货按钮事件

  1.获取仓库信息,配送员信息,配送方式信息,配送单明细

  2.判断配送单能否正常,判断快递单号填写是否正确,有无被占用

  3.配送单作废会生成出库单对应的入库单,再次将此入库单加入配送,检查此入库单是否已经完成入库

  4.创建成功配送单,把物流信息填入订单的物流页面

  

奋斗
原文地址:https://www.cnblogs.com/aimerh/p/11142554.html