[关闭]
@Wahson 2017-04-24T11:35:10.000000Z 字数 2413 阅读 1080

采购物流设计文档

工作


接口实现:

order-deliveries
以下逻辑原有接口上进行添加,case OwningType.PURCHASE => {//采购发货单逻辑}
1. 创建发货单

前置条件:
    1. 无        
逻辑处理:
    1. 插入发货单
    2. fire DeliveryEvent eventType=Created

2. 编辑发货单

前置条件:
    1. 无
逻辑处理:
    1. 更新发货单
    2. fire DeliveryEvent eventType=Updated

3. 确认发货

前置条件:
    1. 发货单状态 == 待发货
逻辑处理:
    1. 更新发货单状态 = 已发货
    2. if(发货单发货方 == 供应商) 释放供应商预付款额度=发货单的数量*采购价

4. 确认收货

前置条件:
    1. 发货单状态 == 已发货   
    2. delivery_type == 转货权 || 供应商配送
逻辑处理:
    1. 更新发货单状态 = 已收签收单
    2. if(发货单发货方 == 供应商) 释放供应商预付款额度=发货单的数量*采购价
    3. fire DeliveryEvent eventType=ConfirmSigned

5. 撤销签收

前置条件:
    1. 发货单状态 == 已收签收单
逻辑处理:
    1. 更新发货单状态 = 已发货
    2. if(发货单发货方==供应商) 占用供应商预付款额度=发货单的数量*采购价
    3. fire DeliveryEvent eventType=RevokeConfirmSigned

6. 创建物流预约单

前置条件:
    1. 无        
逻辑处理:
    1. 插入发货单
    2. fire DeliveryEvent eventType=Created

7. 编辑物流预约单

前置条件:
    1. 无
逻辑处理:
    1. 更新发货单
    2. fire DeliveryEvent eventType=Updated

8. 物流预约单确认提货(逻辑同快塑配送)
9. 物流预约单确认签收(逻辑同快塑配送)

 

order
订单域更改点:
1. "Created" 事件处理

  1. 更新订单物流费用 =(原来有运费、装卸费、仓储费、报关费、杂费) +  货权转移费用
  2. 调用结算接口修改物流费用

2. "Updated" 事件处理(处理逻辑同Created事件处理

 

purchase-order (新增模块,采购订单域)
1. "Created" 事件处理

  1. 更新采购子单未发货数量
  2. 更新订单物流费用 =(原来有运费、装卸费、仓储费、报关费、杂费) +  货权转移费用
  2. 调用结算接口修改物流费用

2. "Updated" 事件处理(处理逻辑同Created事件处理

 

order-stock2
1. "Created" 事件处理
2. "Updated" 事件处理
3. "ConfirmSigned" 事件处理
4. "RevokeConfirmSigned" 事件处理
5. 根据销售订单号查询库存

逻辑处理:
    1. 查询条件 orderId and 物流状态!= 运输中
    2. groupBy(采购子单id)

6. 根据采购订单号查询库存

逻辑处理:
    1. 查询条件 purchaseOrderId and 物流状态 != 运输中 and 货权实际控制方 == 供应商
    2. groupBy(采购子单id)

 

数据模型变更:

  1. -- 添加存库字段用于保存采购物流单的目的地仓库
  2. ALTER TABLE orderdb.order_deliveries ADD dest_warehouse_id INT(11) NULL COMMENT 'destination warehourse id 收货仓库id';
  3. ALTER TABLE orderdb.order_deliveries ADD dest_warehouse_address VARCHAR(200) NULL COMMENT 'destination warehouse address 收货仓库地址';
  4. ALTER TABLE orderdb.order_deliveries ADD dest_warehouse_area_code VARCHAR(9) NULL COMMENT 'destination warehourse area code 收货仓库编码';
  5. -- 添加货权转移费用
  6. ALTER TABLE orderdb.order_deliveries
  7. ADD COLUMN ownership_transfer_expenses decimal(13,2) null COMMENT '货权转移费用';
  8. ALTER TABLE orderdb.purchase_order_fees
  9. ADD COLUMN ownership_transfer_expenses decimal(13,2) null COMMENT '货权转移费用';
  10. ALTER TABLE orderdb.order_fees
  11. ADD COLUMN ownership_transfer_expenses decimal(13,2) null COMMENT '货权转移费用';
  12. -- delivery_type 改为 交割方式,加入 快塑自提
  13. ALTER TABLE orderdb.order_deliveries MODIFY delivery_type SMALLINT(1) NOT NULL COMMENT '交割方式,1:客户自提(pickBySelf),2:供应商配送(supplierDelivery),3:快塑配送(kuaisuDelivery),4:快塑自提(pickByKuaisu), 5 : 转货权(transferOfOwnership)';
  14. -- 采购子单未发货数量
  15. ALTER TABLE orderdb.purchase_order_item
  16. ADD COLUMN delivery_weight_left DECIMAL(13,3) NOT NULL COMMENT '未发货数量';

不变量关系

  1. 采购子单未发货数量 + 发货单已发货单数量 == 采购子单数量
  2. 销售订单的配送方式==自提 时,发货单的交割方式==自提/转货权
  3. 销售订单的配送方式==供应商配送 时,发货单的交割方式=供应商配送
  4. 销售订单的配送方式==快塑配送 时,发货单的交割方式==快塑配送
  5. 采购订单的配送方式==需方自提 时,发货单的交割方式==快塑自提/转货权
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注