zoukankan      html  css  js  c++  java
  • 后台发货业务逻辑

    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.创建成功配送单,把物流信息填入订单的物流页面

      

    奋斗
  • 相关阅读:
    debug:am dumpheap命令源码分析
    Android12系统源码分析:NativeTombstoneManager
    性能工具|ANRdaemon
    exampleappcoldstartbinder.trace
    debug:am profile命令的实现
    android studio的巨坑笔记
    android studio获取签名哈希
    Nginx配置反向代理 proxy_pass King
    Nginx配置反向代理 rewrite King
    Nginx配置文件nginx.conf详解 King
  • 原文地址:https://www.cnblogs.com/aimerh/p/11142554.html
Copyright © 2011-2022 走看看