协议列表:

MC:

发货:http://yapi.future.org/project/192/interface/api/17810
获取快递公司列表:http://yapi.future.org/project/192/interface/api/17777
获取备货单状态tab数:http://yapi.future.org/project/192/interface/api/17750
备货单列表:http://yapi.future.org/project/192/interface/api/17738

TC:

备货单列表:http://yapi.future.org/project/237/interface/api/17405
添加/修改物流时效配置:http://yapi.future.org/project/237/interface/api/17678
删除物流时效配置:http://yapi.future.org/project/237/interface/api/17681
查询物流时效配置:http://yapi.future.org/project/237/interface/api/17684
根据单号查询物流轨迹:http://yapi.future.org/project/237/interface/api/17687
获取入库单列表:http://yapi.future.org/project/237/interface/api/17492
获取省份列表:http://yapi.future.org/project/237/interface/api/18053
入库单签收:http://yapi.future.org/project/237/interface/api/18056
获取入库单个数:http://yapi.future.org/project/237/interface/api/17690
获取入库单详情:http://yapi.future.org/project/237/interface/api/17693

数据库设计:

DDL:

  1. CREATE TABLE `t_purchase_express_limit_config` (
  2. `id` int(10) NOT NULL AUTO_INCREMENT COMMENT '主键id',
  3. `create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  4. `update_time` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  5. `express_type` int(1) DEFAULT '1' COMMENT '快递类型:1-普通快递 2-跨越物流',
  6. `city_code` int(10) DEFAULT '0' COMMENT '城市编码,用逗号隔开',
  7. `city_name` varchar(50) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '城市名称,用逗号隔开',
  8. `limit_day` double(10,1) DEFAULT '0.0' COMMENT '时效,天数:精确到小数点1位',
  9. `group_id` varchar(50) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '每一次添加,都分为一个组,便于分页',
  10. PRIMARY KEY (`id`),
  11. KEY `idx_city_code` (`city_code`) USING BTREE
  12. ) ENGINE=InnoDB AUTO_INCREMENT=478 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin COMMENT='发货快递物流时效配置表';

DML:

  1. ALTER TABLE `t_stockin_request`
  2. ADD COLUMN `deliver_way` integer(1) NULL DEFAULT 1 COMMENT '1-快递 2-货拉拉 3-供应商自发',
  3. ADD COLUMN `shipping_code` varchar(255) NULL COMMENT '物流公司编码:如:yunda、shunfeng',
  4. ADD COLUMN `sender` varchar(255) NULL COMMENT '送货人姓名:对于供应商自发' ,
  5. ADD COLUMN `contact` varchar(255) NULL COMMENT '联系方式:对于供应商自发' ,
  6. ADD COLUMN `shipping_collect_date` datetime NULL COMMENT '快递揽收时间 job回填',
  7. ADD COLUMN `deliver_city_code` integer(10) NULL COMMENT '寄送快递的城市编码 job回填',
  8. ADD COLUMN `shipping_receive_date` datetime NULL COMMENT '快递签收时间';
  9. -- 大货承接
  10. INSERT INTO `ec-account`.`t_sys_action` (`id`, `action_name`, `action_desc`, `action_type`, `action_code`, `parent_id`, `level`, `system_type`, `url`, `status`, `create_time`, `update_time`) VALUES ('69921', 'tab-大货承接', NULL, '1', 'purchase:purchasePlan:carry', '69558', '3', '1', NULL, '1', '2021-03-22 21:44:56', '2021-03-22 21:44:56');
  11. ALTER TABLE `t_purchase_main`
  12. ADD COLUMN `sign_status` int(1) NULL DEFAULT 1 COMMENT '签收状态:1-全部未签收 2-部分未签收 3-全部签收';

业务模块分析:

1、StockInJobHandler会根据顺丰的收货信息回填到入库单的“已收货”状态中
2、发货方法:io.batcloud.rpc.api.wms.IStockService#saveStockInRequest
3、发货后回调方法:io.batcloud.ec.sc.api.purchase.PurchaseUpdateApiImpl#supplierDeliverCallBack
4、发货后,设置入库单的状态为“未审核”,再推送到顺丰,如果返回成功,则标识为“已审核”(即待收货,即新版“入库中”状态)。
5、如果mc发货后推送顺丰失败了,导致状态未改成“已审核(即待收货,新版“入库中”)”的情况,会通过此方法重推: io.batcloud.project.service.StockInService#repushStockInByOrderNo
6、

顺丰接口模拟返回:

  1. //fixme 正式环境需要取消 start
  2. sfPurchaseOrderResp = new SFPurchaseOrderResp().setHead(Constants.STATUS_OK);
  3. //fixme 正式环境需要取消 end