提交 ef9244a1 authored 作者: aiqingguo's avatar aiqingguo

距离限制

上级 a31c87e7
...@@ -55,7 +55,8 @@ public enum PerformanceResultEnum implements ResultEnum { ...@@ -55,7 +55,8 @@ public enum PerformanceResultEnum implements ResultEnum {
ORDER_CHILD_UNLOAD_WEIGHT_ERROR(1313, "卸货净重超过载重的1.5倍"), ORDER_CHILD_UNLOAD_WEIGHT_ERROR(1313, "卸货净重超过载重的1.5倍"),
ORDER_CHILD_LOAD_TIME_ERROR(1314, "非装车时间段"), ORDER_CHILD_LOAD_TIME_ERROR(1314, "非装车时间段"),
ORDER_CHILD_UNLOAD_TIME_ERROR(1315, "非卸车时间段"), ORDER_CHILD_UNLOAD_TIME_ERROR(1315, "非卸车时间段"),
ORDER_CHILD_ARRIVE_SEND_ADDRESS_DISTANCE_ERROR(1316, "没有到达货源地"),
ORDER_CHILD_ARRIVE_RECEIVE_ADDRESS_DISTANCE_ERROR(1317, "没有到达目的地"),
; ;
private final int code; private final int code;
......
...@@ -30,6 +30,7 @@ import com.msl.common.enums.ResultCodeEnum; ...@@ -30,6 +30,7 @@ import com.msl.common.enums.ResultCodeEnum;
import com.msl.common.exception.ServiceSystemException; import com.msl.common.exception.ServiceSystemException;
import com.msl.common.utils.DateUtils; import com.msl.common.utils.DateUtils;
import com.msl.common.utils.LocalDateTimeUtils; import com.msl.common.utils.LocalDateTimeUtils;
import com.msl.common.utils.gps.GpsUtil;
import com.msl.user.data.UserSessionData; import com.msl.user.data.UserSessionData;
import com.msl.user.utils.TokenUtil; import com.msl.user.utils.TokenUtil;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
...@@ -253,6 +254,15 @@ public class OrderChildServiceImpl implements OrderChildService { ...@@ -253,6 +254,15 @@ public class OrderChildServiceImpl implements OrderChildService {
throw new ServiceSystemException(PerformanceResultEnum.ORDER_CHILD_LOAD_TIMEOUT); throw new ServiceSystemException(PerformanceResultEnum.ORDER_CHILD_LOAD_TIMEOUT);
} }
// 距离验证
FeignOrderInfoVO orderInfo = orderService.getOrderInfo(orderChild.getOrderNo()).orElseThrow(PerformanceResultEnum.DATA_NOT_FIND);
OrderGoods orderGoods = orderGoodsDao.getByOrderGoodsNo(orderChild.getOrderGoodsNo()).orElseThrow(PerformanceResultEnum.DATA_NOT_FIND);
double distance = GpsUtil.distance(orderGoods.getSendLongitude().doubleValue(), orderGoods.getSendLatitude().doubleValue(),
param.getLongitude().doubleValue(), param.getLatitude().doubleValue())/1000;
if (distance > orderInfo.getSendDriverArriveRange().doubleValue()){
throw new ServiceSystemException(PerformanceResultEnum.ORDER_CHILD_ARRIVE_SEND_ADDRESS_DISTANCE_ERROR);
}
orderChild.setStatus(OrderChildEnum.Status.ARRIVE_SEND.getCode()); orderChild.setStatus(OrderChildEnum.Status.ARRIVE_SEND.getCode());
orderChildDao.updateStatus(orderChild); orderChildDao.updateStatus(orderChild);
...@@ -304,6 +314,15 @@ public class OrderChildServiceImpl implements OrderChildService { ...@@ -304,6 +314,15 @@ public class OrderChildServiceImpl implements OrderChildService {
throw new ServiceSystemException(PerformanceResultEnum.ORDER_CHILD_STATUS_CHANGED); throw new ServiceSystemException(PerformanceResultEnum.ORDER_CHILD_STATUS_CHANGED);
} }
// 距离验证
FeignOrderInfoVO orderInfo = orderService.getOrderInfo(orderChild.getOrderNo()).orElseThrow(PerformanceResultEnum.DATA_NOT_FIND);
OrderGoods orderGoods = orderGoodsDao.getByOrderGoodsNo(orderChild.getOrderGoodsNo()).orElseThrow(PerformanceResultEnum.DATA_NOT_FIND);
double distance = GpsUtil.distance(orderGoods.getReceiveLongitude().doubleValue(), orderGoods.getReceiveLatitude().doubleValue(),
param.getLongitude().doubleValue(), param.getLatitude().doubleValue())/1000;
if (distance > orderInfo.getReveiveDriverArriveRange().doubleValue()){
throw new ServiceSystemException(PerformanceResultEnum.ORDER_CHILD_ARRIVE_RECEIVE_ADDRESS_DISTANCE_ERROR);
}
orderChild.setStatus(OrderChildEnum.Status.ARRIVE_RECEIVE.getCode()); orderChild.setStatus(OrderChildEnum.Status.ARRIVE_RECEIVE.getCode());
orderChildDao.updateStatus(orderChild); orderChildDao.updateStatus(orderChild);
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论