提交 f028cd97 authored 作者: liuhaiquan's avatar liuhaiquan

增加订单取消/到达最晚拉运时间 最后一车 的feign 接口

上级 9efad4ab
......@@ -7,6 +7,7 @@ import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
@FeignClient(name = "clx-performance")
......@@ -20,4 +21,11 @@ public interface OrderChildFeign {
Result<OrderChildLineStatisticsVO> lineStatistics(@RequestParam @NotNull(message = "发货地址不可为空") Integer sendSystemAddressId,
@RequestParam @NotNull(message = "收货货地不可为空") Integer receiveSystemAddressId);
@RequestMapping(value = "clx-performance/feign/orderChild/syncLastTruck", method = RequestMethod.GET)
Result<OrderChildLineStatisticsVO> lineStatistics(@RequestParam("orderNo") @NotBlank(message = "订单编号不能为空") String orderNo);
}
......@@ -2,6 +2,7 @@ package com.clx.performance.controller.feign;
import cn.hutool.core.collection.CollectionUtil;
import com.clx.performance.model.OrderChild;
import com.clx.performance.service.LastTruckService;
import com.clx.performance.service.OrderChildService;
import com.clx.performance.service.child.FeignOrderChildService;
import com.clx.performance.vo.pc.child.OrderChildLineStatisticsVO;
......@@ -12,6 +13,7 @@ import lombok.AllArgsConstructor;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.util.List;
......@@ -26,6 +28,8 @@ public class OrderChildFeignController {
private final FeignOrderChildService feignOrderChildService;
private final LastTruckService lastTruckService;
@GetMapping({"/getOrderChildTotalByUserNo"})
Integer getTrucksByOrderGoodsNo(@RequestParam("userNo") @NotNull(message = "用户编号不可为空") Long userNo) {
......@@ -58,4 +62,13 @@ public class OrderChildFeignController {
}
@ApiOperation(value = "运单取消/到达最晚拉运时间 同步最后一车", notes = "<br>By:刘海泉")
@RequestMapping(value = "/syncLastTruck", method = RequestMethod.GET)
Result<?> syncLastTruck(@RequestParam("orderNo") @NotBlank(message = "订单编号不能为空") String orderNo){
return lastTruckService.syncLastTruckChild4OrderTrigger(orderNo);
}
}
......@@ -152,4 +152,6 @@ public interface OrderChildDao extends BaseDao<OrderChildMapper, OrderChild, Int
List<Double> getLossNet(OrderChildReportParam param);
BigDecimal getLastDriverFreightByTransportLine(Integer sendSystemAddressId, Integer receiveSystemAddressId);
OrderChild findLastTruckChildByCreateTime(String orderNo);
}
......@@ -465,4 +465,13 @@ public class OrderChildDaoImpl extends BaseDaoImpl<OrderChildMapper, OrderChild,
}
return BigDecimal.ZERO;
}
@Override
public OrderChild findLastTruckChildByCreateTime(String orderNo) {
LambdaQueryWrapper<OrderChild> query = new LambdaQueryWrapper<>();
query.eq(OrderChild :: getOrderNo,orderNo);
query.orderByDesc(OrderChild ::getCreateTime);
query.last("limit 1");
return baseMapper.selectOne(query);
}
}
......@@ -99,13 +99,7 @@ public class OrderChildDtsListener {
if(after.getStatus() >= OrderChildEnum.Status.ARRIVE_RECEIVE.getCode() && after.getStatus() <= OrderChildEnum.Status.COMPLETE.getCode()){
OrderChild child = lastTruckService.getLastTruckChild(after.getOrderNo());
if(Objects.nonNull(child)){
OrderChildMessage message = orderChildStruct.convertMessage(child);
message.setLastFlag(ResultStatusEnum.YES.getCode());
log.info("开始同步最后一车的运单,运单编号:{},运单信息:{}",child.getChildNo(),JSON.toJSONString(message));
OpenCallBackClient client2 = new OpenCallBackClient(mslAppConfig.getUrl(),mslAppConfig.getAppId(),mslAppConfig.getSecret());
Result<?> result2 = client2.encryptPost(JSON.toJSONString(message),message.topic());
log.info("结束同步最后一车的运单,运单编号:{},响应结果:{}",child.getChildNo(),JSON.toJSONString(result2));
lastTruckService.syncLastTruckChild(child);
}
}
}
......
package com.clx.performance.service;
import com.clx.performance.model.OrderChild;
import com.msl.common.result.Result;
public interface LastTruckService {
OrderChild getLastTruckChild(String orderNo);
Result<?> syncLastTruckChild(OrderChild child);
Result<?> syncLastTruckChild4OrderTrigger(String orderNo);
}
package com.clx.performance.service.impl;
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.feign.OrderFeign;
import com.clx.order.vo.feign.FeignOrderVO;
import com.clx.performance.config.MslAppConfig;
import com.clx.performance.dao.OrderChildDao;
import com.clx.performance.model.OrderChild;
import com.clx.performance.service.LastTruckService;
import com.clx.performance.struct.OrderChildStruct;
import com.msl.common.result.Result;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
......@@ -26,6 +33,8 @@ public class LastTruckServiceImpl implements LastTruckService {
private final OrderFeign orderFeign;
private final OrderChildDao orderChildDao;
private final OrderChildStruct orderChildStruct;
private final MslAppConfig mslAppConfig;
/**
* @Author kavin
* @Description 判断最后一车的逻辑
......@@ -51,4 +60,36 @@ public class LastTruckServiceImpl implements LastTruckService {
}
return null;
}
/**
* @Author kavin
* @Description 同步最后一车
* @Param [child]
* @return
**/
@Override
public Result<?> syncLastTruckChild(OrderChild child) {
OrderChildMessage message = orderChildStruct.convertMessage(child);
message.setLastFlag(ResultStatusEnum.YES.getCode());
log.info("开始同步最后一车的运单,运单编号:{},运单信息:{}",child.getChildNo(), JSON.toJSONString(message));
OpenCallBackClient client2 = new OpenCallBackClient(mslAppConfig.getUrl(),mslAppConfig.getAppId(),mslAppConfig.getSecret());
Result<?> result2 = client2.encryptPost(JSON.toJSONString(message),message.topic());
log.info("结束同步最后一车的运单,运单编号:{},响应结果:{}",child.getChildNo(),JSON.toJSONString(result2));
return result2;
}
/**
* @Author kavin
* @Description 订单取消、到达最晚拉运时间 同步最后一车
* @Param [orderNo]
* @return
**/
public Result<?> syncLastTruckChild4OrderTrigger(String orderNo) {
OrderChild child = orderChildDao.findLastTruckChildByCreateTime(orderNo);
log.info("订单取消/到达最晚拉运时间获取最后一车运单,订单号:{} ,获取到的最后一车的运单信息:{}",orderNo,JSON.toJSONString(child));
if(Objects.nonNull(child)){
return syncLastTruckChild(child);
}
return Result.ok("承运系统提示:承运系统未查询到该订单下的运单信息");
}
}
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论