[关闭]
@Wahson 2019-04-10T10:32:36.000000Z 字数 2088 阅读 617

服务分层

Wanbo


原子方法

新建销售子单
  1. insert into order_items
  2. update orders set 金额,数量
  3. 不变量:
  4. 1. 主单已存在
  5. 2. 主单总金额 = sum(子单总金额)
  6. 3. 主单总数量 = sum(子单总数量)
新建销售单
  1. insert into orders
  2. call(新建销售子单)
新建采购子单
  1. insert into order_items
  2. update orders set 金额,数量
新建采购单
  1. insert into purchases
  2. call(新建采购子单)
取消销售子单
  1. update order_items set status = 取消
  2. if( forall order_items.status == 取消
  3. call(取消销售单)
取消销售单
  1. update orders set status = 取消
取消采购子单
  1. update purchase_items set status = 取消
  2. if ( forall purchase_items.status == 取消 )
  3. call(取消采购单)
取消采购单
  1. update purchases set status = 取消
销售订单提交审核
  1. update orders set status = 待审核
关联采购子单
  1. update purchase_items set order_item_id = ${orderItemId}
  2. update order_items set purchase_item_id = ${purchaseItemId}
解除关联采购子单
  1. update purchase_items set order_item_id = null
  2. update order_items set purchase_item_id = null
新建物流单
  1. insert into deliveries
  2. insert into delivery_items
新建采购合同
  1. insert into purchase_contracts
新建销售合同
  1. insert into order_contracts
审批销售单
  1. update orders set status = 审批通过/新单
审批采购单
  1. update purchases set status = 审批通过/新单
采购确认销售子单
  1. update purchase_items set status = 采购已确认
销售单发货
  1. update orders set status = 已发货
销售单付款
  1. update orders set status = 已付款
销售单签收
  1. update orders set status = 已签收

聚合方法

新建销售订单:(非资源下单)
  1. 1. 新建采购订单,多个商品时需要根据供应商进行拆单
  2. 2. 新建采购子单
  3. 3. 新建销售订单
  4. 4. 新建销售子单
  5. 5. 销售子单绑定采购子单
新建销售订单:(资源订单)
  1. 3. 新建销售订单
  2. 4. 新建销售子单
  3. 5. 销售子单绑定采购子单
添加物流信息:
  1. 1. 新建物流单(主单、子单)
录入销售合同:
  1. 1. 新建采购合同
更新销售合同:
  1. 1. 更新销售合同
录入采购合同:
  1. 1. 新建采购合同
  2. 2. 更新对应销售子单状态为采购已确认
更新采购合同
  1. 更新销售合同
提交审批:
  1. 1. 更新销售订单为待审核
订单审核:
  1. 前置: 销售合同已录入待审批,销售合同已录入待审批,物流预约单已录入
  2. 1. 审核销售合同
  3. 2. 审核采购合同
  4. 3.
  5. // 审核不通过
取消订单:
  1. 1. 取消销售子单
  2. 2. 取消销售单
  3. 3. 取消采购子单
  4. 4. 取消采购单
订单收款
  1. 1. 流水关联销售订单
  2. 2. 主单.status = if(子单.forall(已收款)) 部分收款 else 已收款
  3. 3. if(子单.forall(已发货))
订单发货
  1. 1. 更新销售单状态为已发货
订单签收
  1. 1. 更新销售单状态为已签收

问题整理

  1. 付款单位: currency enum('USD','CNY') DEFAULT ‘CNY’,设计的意图?主单和子单都有相同的字段,如何维护,
    A: 只保留主单字段,暂时默认为CNY
  2. 是否期货,同一个订单下不允许同时存在期货和现货吧?
    A:为简化处理,同一单要么到时期货,要么都是现货。
  3. 合同综合价,包含了物流费。在做物流委托书时,物流人员也会再次录入物流费,这里有一个风险是同一个单的两个物流费不一致。
    A:允许这种不一致。
  4. 线下计价模式: 先确定总价,扣除物流分摊单价、金融分摊单价(以总价记)、折扣分摊单价,剩余部分为:货物销售单价;线上计价模式:先确定货物销售单价、物流销售单价,再确定金融单价(以货物单价+物流单价记)。???
    A:两种模式暂时先以线下计价模式,后期根据实际情况取舍哪种模式
  5. 背靠背订单,采购订单的配送方式确定逻辑是?
    A:配送方式在供应商给出报价时已经确定下来
  6. 金融单价怎么维护?
    A:金融单价通过维护一个计算规则,有系统自动计算,计算方式跟计价模式有关系。
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注