提交 bc7573a4 authored 作者: 艾庆国's avatar 艾庆国

运单预警

上级 633587de
...@@ -11,7 +11,7 @@ import com.clx.performance.dao.OrderGoodsDao; ...@@ -11,7 +11,7 @@ import com.clx.performance.dao.OrderGoodsDao;
import com.clx.performance.dao.vehiclewarn.VehicleWarnChildDao; import com.clx.performance.dao.vehiclewarn.VehicleWarnChildDao;
import com.clx.performance.dao.vehiclewarn.VehicleWarnInfoDao; import com.clx.performance.dao.vehiclewarn.VehicleWarnInfoDao;
import com.clx.performance.dao.vehiclewarn.VehicleWarnUserDao; import com.clx.performance.dao.vehiclewarn.VehicleWarnUserDao;
import com.clx.performance.dto.gd.GdRouteDTO; import com.clx.performance.dto.vehiclewarn.VehicleWarnCommonInfoDTO;
import com.clx.performance.enums.OrderChildEnum; import com.clx.performance.enums.OrderChildEnum;
import com.clx.performance.enums.ResultEnum; import com.clx.performance.enums.ResultEnum;
import com.clx.performance.model.OrderChild; import com.clx.performance.model.OrderChild;
...@@ -22,19 +22,15 @@ import com.clx.performance.model.vehiclewarn.VehicleWarnUser; ...@@ -22,19 +22,15 @@ import com.clx.performance.model.vehiclewarn.VehicleWarnUser;
import com.clx.performance.param.mq.vehiclewarn.VehicleWarnChildAddMqParam; import com.clx.performance.param.mq.vehiclewarn.VehicleWarnChildAddMqParam;
import com.clx.performance.param.mq.vehiclewarn.VehicleWarnTruckWarnMqParam; import com.clx.performance.param.mq.vehiclewarn.VehicleWarnTruckWarnMqParam;
import com.clx.performance.param.mq.vehiclewarn.VehicleWarnTruckWarnNoticeMqParam; import com.clx.performance.param.mq.vehiclewarn.VehicleWarnTruckWarnNoticeMqParam;
import com.clx.performance.service.trace.TruckTraceService; import com.clx.performance.service.vehiclewarn.*;
import com.clx.performance.service.vehiclewarn.VehicleWarnLoadAndUnloadWarnService;
import com.clx.performance.service.vehiclewarn.VehicleWarnMqHandlerService;
import com.clx.performance.service.vehiclewarn.VehicleWarnSendAddressWarnService;
import com.clx.performance.utils.gd.GdService;
import com.msl.common.exception.ServiceSystemException;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.exception.ExceptionUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.time.LocalDateTime;
import java.util.Objects; import java.util.Objects;
import java.util.UUID; import java.util.UUID;
...@@ -58,9 +54,9 @@ public class VehicleWarnMqHandlerServiceImpl implements VehicleWarnMqHandlerServ ...@@ -58,9 +54,9 @@ public class VehicleWarnMqHandlerServiceImpl implements VehicleWarnMqHandlerServ
@Autowired @Autowired
private VehicleWarnLoadAndUnloadWarnService vehicleWarnLoadAndUnloadWarnService; private VehicleWarnLoadAndUnloadWarnService vehicleWarnLoadAndUnloadWarnService;
@Autowired @Autowired
private TruckTraceService truckTraceService; private VehicleWarnReceiveAddressWarnService vehicleWarnReceiveAddressWarnService;
@Autowired @Autowired
private GdService gdService; private VehicleWarnCommonService vehicleWarnCommonService;
@Autowired @Autowired
private ClxMessageConfig clxMessageConfig; private ClxMessageConfig clxMessageConfig;
@Autowired @Autowired
...@@ -71,8 +67,10 @@ public class VehicleWarnMqHandlerServiceImpl implements VehicleWarnMqHandlerServ ...@@ -71,8 +67,10 @@ public class VehicleWarnMqHandlerServiceImpl implements VehicleWarnMqHandlerServ
OrderChild orderChild = orderChildDao.getByChildNo(mq.getChildNo()).orElseThrow(ResultEnum.DATA_NOT_FIND); OrderChild orderChild = orderChildDao.getByChildNo(mq.getChildNo()).orElseThrow(ResultEnum.DATA_NOT_FIND);
OrderGoods orderGoods = orderGoodsDao.getByOrderGoodsNo(orderChild.getOrderGoodsNo()).orElseThrow(ResultEnum.DATA_NOT_FIND); OrderGoods orderGoods = orderGoodsDao.getByOrderGoodsNo(orderChild.getOrderGoodsNo()).orElseThrow(ResultEnum.DATA_NOT_FIND);
int arriveSendExpectTime = getNeedTime(orderChild.getTruckNo(), orderChild.getDriverUserNo(), orderGoods.getSendLongitude(), orderGoods.getSendLatitude()); // 计算预计时间
int arriveReceiveExpectTime = getNeedTime(orderChild.getTruckNo(), orderChild.getDriverUserNo(), orderGoods.getReceiveLongitude(), orderGoods.getReceiveLatitude()); BigDecimal[] currentPosition = vehicleWarnCommonService.getCurrentPosition(orderChild.getTruckNo(), orderChild.getDriverUserNo());
int arriveSendExpectTime = vehicleWarnCommonService.getNeedTime(currentPosition, orderGoods.getSendLongitude(), orderGoods.getSendLatitude());
int arriveReceiveExpectTime = vehicleWarnCommonService.getNeedTime(currentPosition, orderGoods.getReceiveLongitude(), orderGoods.getReceiveLatitude());
VehicleWarnChild vehicleWarnChild = new VehicleWarnChild(); VehicleWarnChild vehicleWarnChild = new VehicleWarnChild();
vehicleWarnChild.setOrderNo(orderChild.getOrderNo()); vehicleWarnChild.setOrderNo(orderChild.getOrderNo());
...@@ -94,15 +92,34 @@ public class VehicleWarnMqHandlerServiceImpl implements VehicleWarnMqHandlerServ ...@@ -94,15 +92,34 @@ public class VehicleWarnMqHandlerServiceImpl implements VehicleWarnMqHandlerServ
@Override @Override
public void truckWarn(VehicleWarnTruckWarnMqParam mq) { public void truckWarn(VehicleWarnTruckWarnMqParam mq) {
OrderChild orderChild = orderChildDao.getByChildNo(mq.getChildNo()).orElseThrow(ResultEnum.DATA_NOT_FIND); OrderChild orderChild = orderChildDao.getByChildNo(mq.getChildNo()).orElseThrow(ResultEnum.DATA_NOT_FIND);
OrderGoods orderGoods = orderGoodsDao.getByOrderGoodsNo(orderChild.getOrderGoodsNo()).orElseThrow(ResultEnum.DATA_NOT_FIND);
VehicleWarnChild vehicleWarnChild = vehicleWarnChildDao.findByChildNo(mq.getChildNo()).orElseThrow(ResultEnum.DATA_NOT_FIND); VehicleWarnChild vehicleWarnChild = vehicleWarnChildDao.findByChildNo(mq.getChildNo()).orElseThrow(ResultEnum.DATA_NOT_FIND);
VehicleWarnCommonInfoDTO commonInfo = new VehicleWarnCommonInfoDTO();
// 获取当前位置
commonInfo.setCurrentPosition(vehicleWarnCommonService.getCurrentPosition(orderChild.getTruckNo(), orderChild.getDriverUserNo()));
// 距货源地时间
commonInfo.setSendAddressDistance(vehicleWarnCommonService.getNeedTime(commonInfo.getCurrentPosition()[0], commonInfo.getCurrentPosition()[1], vehicleWarnChild.getSendLongitude(), vehicleWarnChild.getSendLatitude()));
// 距目的地时间
commonInfo.setReceiveAddressDistance(vehicleWarnCommonService.getNeedTime(commonInfo.getCurrentPosition()[0], commonInfo.getCurrentPosition()[1], vehicleWarnChild.getReceiveLongitude(), vehicleWarnChild.getReceiveLatitude()));
commonInfo.setLastArriveSendTime(orderGoods.getLastArriveReceiveTime());
commonInfo.setLastArriveReceiveTime(orderGoods.getLastArriveSendTime());
commonInfo.setCurrentTime(LocalDateTime.now());
// 前往货源地超时 // 前往货源地超时
if (Objects.equals(orderChild.getStatus(), OrderChildEnum.Status.CREATED.getCode()) if (Objects.equals(orderChild.getStatus(), OrderChildEnum.Status.CREATED.getCode())
|| Objects.equals(orderChild.getStatus(), OrderChildEnum.Status.PAY.getCode()) || Objects.equals(orderChild.getStatus(), OrderChildEnum.Status.PAY.getCode())
|| Objects.equals(orderChild.getStatus(), OrderChildEnum.Status.GO_TO_SEND.getCode()) || Objects.equals(orderChild.getStatus(), OrderChildEnum.Status.GO_TO_SEND.getCode())
){ ){
vehicleWarnSendAddressWarnService.gotoSendAddressTimeout(orderChild, vehicleWarnChild); try {
vehicleWarnSendAddressWarnService.gotoSendAddressTimeout(orderChild, vehicleWarnChild, commonInfo);
}catch (Exception e){
log.error("前往货源地超时错误, msg:{}", ExceptionUtils.getStackTrace(e));
}
} }
// 到达货源地超时 // 到达货源地超时
...@@ -110,7 +127,11 @@ public class VehicleWarnMqHandlerServiceImpl implements VehicleWarnMqHandlerServ ...@@ -110,7 +127,11 @@ public class VehicleWarnMqHandlerServiceImpl implements VehicleWarnMqHandlerServ
|| Objects.equals(orderChild.getStatus(), OrderChildEnum.Status.PAY.getCode()) || Objects.equals(orderChild.getStatus(), OrderChildEnum.Status.PAY.getCode())
|| Objects.equals(orderChild.getStatus(), OrderChildEnum.Status.GO_TO_SEND.getCode()) || Objects.equals(orderChild.getStatus(), OrderChildEnum.Status.GO_TO_SEND.getCode())
){ ){
vehicleWarnSendAddressWarnService.arriveSendAddressTimeout(orderChild, vehicleWarnChild); try{
vehicleWarnSendAddressWarnService.arriveSendAddressTimeout(orderChild, vehicleWarnChild, commonInfo);
}catch (Exception e){
log.error("到达货源地超时错误, msg:{}", ExceptionUtils.getStackTrace(e));
}
} }
if (Objects.equals(orderChild.getStatus(), OrderChildEnum.Status.ARRIVE_SEND.getCode()) if (Objects.equals(orderChild.getStatus(), OrderChildEnum.Status.ARRIVE_SEND.getCode())
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论