协议列表:
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:
CREATE TABLE `t_purchase_express_limit_config` (
`id` int(10) NOT NULL AUTO_INCREMENT COMMENT '主键id',
`create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`express_type` int(1) DEFAULT '1' COMMENT '快递类型:1-普通快递 2-跨越物流',
`city_code` int(10) DEFAULT '0' COMMENT '城市编码,用逗号隔开',
`city_name` varchar(50) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '城市名称,用逗号隔开',
`limit_day` double(10,1) DEFAULT '0.0' COMMENT '时效,天数:精确到小数点1位',
`group_id` varchar(50) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '每一次添加,都分为一个组,便于分页',
PRIMARY KEY (`id`),
KEY `idx_city_code` (`city_code`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=478 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin COMMENT='发货快递物流时效配置表';
DML:
ALTER TABLE `t_stockin_request`
ADD COLUMN `deliver_way` integer(1) NULL DEFAULT 1 COMMENT '1-快递 2-货拉拉 3-供应商自发',
ADD COLUMN `shipping_code` varchar(255) NULL COMMENT '物流公司编码:如:yunda、shunfeng',
ADD COLUMN `sender` varchar(255) NULL COMMENT '送货人姓名:对于供应商自发' ,
ADD COLUMN `contact` varchar(255) NULL COMMENT '联系方式:对于供应商自发' ,
ADD COLUMN `shipping_collect_date` datetime NULL COMMENT '快递揽收时间 job回填',
ADD COLUMN `deliver_city_code` integer(10) NULL COMMENT '寄送快递的城市编码 job回填',
ADD COLUMN `shipping_receive_date` datetime NULL COMMENT '快递签收时间';
-- 大货承接
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');
ALTER TABLE `t_purchase_main`
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、
顺丰接口模拟返回:
//fixme 正式环境需要取消 start
sfPurchaseOrderResp = new SFPurchaseOrderResp().setHead(Constants.STATUS_OK);
//fixme 正式环境需要取消 end