提交 a02d1466 authored 作者: 刘海泉's avatar 刘海泉

增加手动触发数媒宝最后一车的接口

上级 525e391b
......@@ -45,6 +45,14 @@ public class LastTruckController {
return Result.ok(orderChildStruct.convert(child));
}
@Operation(summary = "手动同步数媒宝最后一车触发",description = "<br>By:刘海泉")
@GetMapping("/getOrderLastTruck")
public Result<?> getOrderLastTruck(
@RequestParam("orderNo")
@NotBlank(message = "订单编号不能为空") String orderNo,
@RequestParam("childNo")
@NotBlank(message = "运单编号不能为空") String childNo) {
return lastTruckService.handExecSyncSmbLastTruck(orderNo,childNo);
}
}
......@@ -151,7 +151,7 @@ public class OrderChildDtsListener {
OpenCallBackClient openCallBackClient = thirdAppConfig.getOpenCallBackClient(orderInfoFeign.getOrderSource().toString());
Result<?> result = openCallBackClient.encryptPost(data,after.topic());
log.info("运单信息同步,运单编号:{},响应结果:{}",after.getChildNo(),JSON.toJSONString(result));
syncLastTruck(orderInfoFeign,after);
lastTruckService.syncLastTruck(orderInfoFeign,after);
return;
}
......@@ -217,26 +217,7 @@ public class OrderChildDtsListener {
}
}
public void syncLastTruck(FeignOrderVO orderInfoFeign,OrderChildMessage after) {
//当运单状态为到达目的地之后的状态时候,需要判断最后一车的逻辑
if(Objects.equals(com.clx.open.sdk.enums.OrderChildEnum.Status.COMMON_CANCEL.getCode(),after.getStatus()) ||
(after.getStatus() >= OrderChildEnum.Status.ARRIVE_RECEIVE.getCode() && after.getStatus() <= OrderChildEnum.Status.COMPLETE.getCode())){
OrderChild child;
if(Objects.equals(orderInfoFeign.getOrderStatus(), OrderEnum.Status.COMPLETED.getCode()) ||
Objects.equals(orderInfoFeign.getOrderStatus(), OrderEnum.Status.SUCCESS.getCode())) { //订单变成已完成 || 已完结
OrderEnum.Status byCode = OrderEnum.Status.getByCode(orderInfoFeign.getOrderStatus());
log.info("订单号:{},运单号:{},订单状态:{},开始查询最后一车运单===========" ,orderInfoFeign.getOrderNo(),after.getChildNo(),
Objects.nonNull(byCode)?byCode.getName():"未知状态");
child = lastTruckService.getOrderCompleteLastTruck(after.getOrderNo());
}else{ // 订单除 已完成 || 已完结 外的其他状态
child = lastTruckService.getOrderLastTruck(after.getOrderNo());
}
if(Objects.nonNull(child)){
lastTruckService.syncLastTruckChild(child);
}
}
}
/**
* 第三方同步
......
package com.clx.performance.service;
import com.clx.open.sdk.callback.message.OrderChildMessage;
import com.clx.order.vo.feign.FeignOrderVO;
import com.clx.performance.model.OrderChild;
import com.msl.common.result.Result;
......@@ -15,6 +17,7 @@ public interface LastTruckService {
OrderChild getOrderLastTruck(String orderNo);
Result<?> syncLastTruck(FeignOrderVO orderInfoFeign, OrderChildMessage after);
Result<?> handExecSyncSmbLastTruck(String orderNo, String childNo);
}
......@@ -4,6 +4,7 @@ import com.alibaba.fastjson.JSON;
import com.clx.open.sdk.callback.OpenCallBackClient;
import com.clx.open.sdk.callback.message.OrderChildMessage;
import com.clx.open.sdk.enums.ResultStatusEnum;
import com.clx.order.enums.OrderEnum;
import com.clx.order.enums.ResultEnum;
import com.clx.order.enums.SyncPlatformEnum;
import com.clx.order.feign.OrderFeign;
......@@ -170,4 +171,49 @@ public class LastTruckServiceImpl implements LastTruckService {
public String getLastTruckCacheKey(String orderNo){
return RedisConstants.ORDER_LAST_TRUCK_CHILD + orderNo;
}
@Override
public Result<?> syncLastTruck(FeignOrderVO orderInfoFeign, OrderChildMessage after) {
//当运单状态为到达目的地之后的状态时候,需要判断最后一车的逻辑
if(Objects.equals(com.clx.open.sdk.enums.OrderChildEnum.Status.COMMON_CANCEL.getCode(),after.getStatus()) ||
(after.getStatus() >= OrderChildEnum.Status.ARRIVE_RECEIVE.getCode() && after.getStatus() <= OrderChildEnum.Status.COMPLETE.getCode())){
OrderChild child;
if(Objects.equals(orderInfoFeign.getOrderStatus(), OrderEnum.Status.COMPLETED.getCode()) ||
Objects.equals(orderInfoFeign.getOrderStatus(), OrderEnum.Status.SUCCESS.getCode())) { //订单变成已完成 || 已完结
OrderEnum.Status byCode = OrderEnum.Status.getByCode(orderInfoFeign.getOrderStatus());
log.info("订单号:{},运单号:{},订单状态:{},开始查询最后一车运单===========" ,orderInfoFeign.getOrderNo(),after.getChildNo(),
Objects.nonNull(byCode)?byCode.getName():"未知状态");
child = this.getOrderCompleteLastTruck(after.getOrderNo());
}else{ // 订单除 已完成 || 已完结 外的其他状态
child = this.getOrderLastTruck(after.getOrderNo());
}
if(Objects.nonNull(child)){
return this.syncLastTruckChild(child);
}
}
return Result.ok("未查询到最后一车,不进行同步最后一车");
}
/*
* @Author kavin
* @Description
* @Param [orderNo, childNo] 运单号可以是该订单下任意一个运单,为了是触发最后一车
* @return
**/
@Override
public Result<?> handExecSyncSmbLastTruck(String orderNo,String childNo){
FeignOrderVO orderInfoFeign = orderFeign.getOrderInfoFeign(orderNo);
OrderChild child = orderChildDao.getByChildNo(childNo).get();
OrderChildMessage message = orderChildStruct.convertMessage(child);
return syncLastTruck(orderInfoFeign,message);
}
}
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论