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

Merge remote-tracking branch 'origin/v31.9_last_truck_status_20241025' into test_jdk17

...@@ -45,6 +45,14 @@ public class LastTruckController { ...@@ -45,6 +45,14 @@ public class LastTruckController {
return Result.ok(orderChildStruct.convert(child)); 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);
}
} }
...@@ -160,7 +160,7 @@ public class OrderChildDtsListener { ...@@ -160,7 +160,7 @@ public class OrderChildDtsListener {
OpenCallBackClient openCallBackClient = thirdAppConfig.getOpenCallBackClient(orderInfoFeign.getOrderSource().toString()); OpenCallBackClient openCallBackClient = thirdAppConfig.getOpenCallBackClient(orderInfoFeign.getOrderSource().toString());
Result<?> result = openCallBackClient.encryptPost(data,after.topic()); Result<?> result = openCallBackClient.encryptPost(data,after.topic());
log.info("运单信息同步,运单编号:{},响应结果:{}",after.getChildNo(),JSON.toJSONString(result)); log.info("运单信息同步,运单编号:{},响应结果:{}",after.getChildNo(),JSON.toJSONString(result));
syncLastTruck(orderInfoFeign,after); lastTruckService.syncLastTruck(orderInfoFeign,after);
return; return;
} }
...@@ -226,26 +226,7 @@ public class OrderChildDtsListener { ...@@ -226,26 +226,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; 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.clx.performance.model.OrderChild;
import com.msl.common.result.Result; import com.msl.common.result.Result;
...@@ -15,6 +17,7 @@ public interface LastTruckService { ...@@ -15,6 +17,7 @@ public interface LastTruckService {
OrderChild getOrderLastTruck(String orderNo); 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; ...@@ -4,6 +4,7 @@ import com.alibaba.fastjson.JSON;
import com.clx.open.sdk.callback.OpenCallBackClient; import com.clx.open.sdk.callback.OpenCallBackClient;
import com.clx.open.sdk.callback.message.OrderChildMessage; import com.clx.open.sdk.callback.message.OrderChildMessage;
import com.clx.open.sdk.enums.ResultStatusEnum; import com.clx.open.sdk.enums.ResultStatusEnum;
import com.clx.order.enums.OrderEnum;
import com.clx.order.enums.ResultEnum; import com.clx.order.enums.ResultEnum;
import com.clx.order.enums.SyncPlatformEnum; import com.clx.order.enums.SyncPlatformEnum;
import com.clx.order.feign.OrderFeign; import com.clx.order.feign.OrderFeign;
...@@ -170,4 +171,49 @@ public class LastTruckServiceImpl implements LastTruckService { ...@@ -170,4 +171,49 @@ public class LastTruckServiceImpl implements LastTruckService {
public String getLastTruckCacheKey(String orderNo){ public String getLastTruckCacheKey(String orderNo){
return RedisConstants.ORDER_LAST_TRUCK_CHILD + 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 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论