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

提交运单同步挂车车牌号和装卸车磅单图片的同步

上级 adf45dbe
......@@ -13,25 +13,33 @@ import com.clx.order.feign.OrderFeign;
import com.clx.order.vo.feign.FeignOrderVO;
import com.clx.performance.config.ThirdAppConfig;
import com.clx.performance.constant.RabbitKeyConstants;
import com.clx.performance.dao.OrderChildImageDao;
import com.clx.performance.dto.dts.DataTransportDTO;
import com.clx.performance.enums.DtsOperationTypeEnum;
import com.clx.performance.enums.OrderChildEnum;
import com.clx.performance.enums.OrderChildPoundAuditEnum;
import com.clx.performance.event.OrderChildCancelEvent;
import com.clx.performance.extranal.user.DriverService;
import com.clx.performance.model.OrderChild;
import com.clx.performance.model.OrderChildImage;
import com.clx.performance.service.LastTruckService;
import com.clx.user.feign.TruckFeign;
import com.clx.user.vo.feign.FeignDriverTruckModelVo;
import com.clx.user.vo.feign.TruckInfoFeignVo;
import com.msl.common.enums.ResultCodeEnum;
import com.msl.common.result.Result;
import com.msl.common.utils.DtsMapConvertUtil;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang.StringUtils;
import org.springframework.amqp.core.Message;
import org.springframework.amqp.rabbit.annotation.RabbitListener;
import org.springframework.context.ApplicationEventPublisher;
import org.springframework.stereotype.Component;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
import java.util.Optional;
......@@ -44,6 +52,8 @@ public class OrderChildDtsListener {
private final DriverService driverService;
private final ApplicationEventPublisher applicationEventPublisher;
private final ThirdAppConfig thirdAppConfig;
private final TruckFeign truckFeign;
private final OrderChildImageDao orderChildImageDao;
......@@ -71,7 +81,8 @@ public class OrderChildDtsListener {
if(OrderChildEnum.SYNC_STATUS_lIST.contains(after.getStatus()) &&
(!Objects.equals(before.getStatus(),after.getStatus()) ||
!Objects.equals(before.getLoadNet(),after.getLoadNet())) ||
!Objects.equals(before.getUnloadNet(),after.getUnloadNet())
!Objects.equals(before.getUnloadNet(),after.getUnloadNet()) ||
!Objects.equals(before.getPoundStatus(),after.getPoundStatus())
){
orderChildChangeAfter(after);
}
......@@ -91,6 +102,7 @@ public class OrderChildDtsListener {
}
}
public void orderChildChangeAfter(OrderChildMessage after){
FeignOrderVO orderInfoFeign = orderFeign.getOrderInfoFeign(after.getOrderNo());
if (orderInfoFeign == null) {
......@@ -104,6 +116,8 @@ public class OrderChildDtsListener {
FeignDriverTruckModelVo dumpType = driverService.getDumpType(truckModel).orElseThrow(ResultCodeEnum.FAIL);
after.setDumpType(dumpType.getDumpType());
}
buildOrderOtherInfo(after);
//同步after数据
Optional<OrderChildEnum.Status> option = OrderChildEnum.Status.getByCode(after.getStatus());
String statusName = option.isPresent()?option.get().getName():"未知状态";
......@@ -146,6 +160,42 @@ public class OrderChildDtsListener {
}
}
}
//构建运单其它信息
public void buildOrderOtherInfo(OrderChildMessage after){
//查询挂车车牌号
if(Objects.nonNull(after.getTruckId())){
log.info("通过车辆id:{} 开始查找运单号:{},车牌号:{} 对应的车辆信息开始查询===",
after.getTruckId(),after.getChildNo(),after.getTruckNo());
Result<TruckInfoFeignVo> result = truckFeign.getTruckInfo(after.getTruckId());
if(!result.succeed()){
log.warn("通过车辆id:{} 开始查找运单号:{},车牌号:{} 的车辆信息未查询到,响应结果:{}",
after.getTruckId(),after.getChildNo(),after.getTruckNo(),result);
}else{
log.warn("通过车辆id:{} 开始查找运单号:{},车牌号:{} 查询到对应的车辆信息,响应结果:{}",
after.getTruckId(),after.getChildNo(),after.getTruckNo(),result);
after.setTruckNo2(result.getData().getTruckNo2());
}
}
//查询收发货地对应的磅单图片信息,
if(Objects.equals(after.getPoundStatus(), OrderChildPoundAuditEnum.Status.APPROVED.getCode())){
List<OrderChildImage> orderChildImages = orderChildImageDao.listByField(OrderChildImage::getChildNo,
after.getChildNo());
if(CollectionUtils.isNotEmpty(orderChildImages)){
List<String> sendAddressPoundPicList = new ArrayList<>();
List<String> receiveAddressPoundPicList = new ArrayList<>();
orderChildImages.forEach(item->{
if(Objects.equals(item.getType(),OrderChildImage.Type.LOAD.getCode())){
sendAddressPoundPicList.add(item.getImage());
}
if(Objects.equals(item.getType(),OrderChildImage.Type.UNLOAD.getCode())){
receiveAddressPoundPicList.add(item.getImage());
}
});
after.setSendAddressPoundPicList(sendAddressPoundPicList);
after.setReceiveAddressPoundPicList(receiveAddressPoundPicList);
}
}
}
public void syncLastTruck(FeignOrderVO orderInfoFeign,OrderChildMessage after){
//当运单状态为到达目的地之后的状态时候,需要判断最后一车的逻辑
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论