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

提交从es 获取中交的位置信息接口

上级 e28e0096
package com.clx.performance.service.impl; package com.clx.performance.service.impl;
import cn.hutool.core.util.ArrayUtil;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.clx.order.enums.OrderEnum; import com.clx.order.enums.OrderEnum;
...@@ -33,9 +34,11 @@ import com.clx.performance.param.pc.PagePoundAuditParam; ...@@ -33,9 +34,11 @@ import com.clx.performance.param.pc.PagePoundAuditParam;
import com.clx.performance.service.*; import com.clx.performance.service.*;
import com.clx.performance.service.breakcontract.BreakContractDriverRecordService; import com.clx.performance.service.breakcontract.BreakContractDriverRecordService;
import com.clx.performance.service.child.OrderChildPostService; import com.clx.performance.service.child.OrderChildPostService;
import com.clx.performance.service.impl.trace.TruckTraceServiceImpl;
import com.clx.performance.service.settle.SettlementDriverDetailService; import com.clx.performance.service.settle.SettlementDriverDetailService;
import com.clx.performance.service.settle.SettlementMqService; import com.clx.performance.service.settle.SettlementMqService;
import com.clx.performance.service.settle.SettlementOwnerDetailService; import com.clx.performance.service.settle.SettlementOwnerDetailService;
import com.clx.performance.service.trace.TruckTraceService;
import com.clx.performance.struct.*; import com.clx.performance.struct.*;
import com.clx.performance.utils.gd.GdService; import com.clx.performance.utils.gd.GdService;
import com.clx.performance.utils.spring.ApplicationContextUtils; import com.clx.performance.utils.spring.ApplicationContextUtils;
...@@ -58,6 +61,7 @@ import com.msl.user.data.UserSessionData; ...@@ -58,6 +61,7 @@ import com.msl.user.data.UserSessionData;
import com.msl.user.utils.TokenUtil; import com.msl.user.utils.TokenUtil;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang.ArrayUtils;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.redisson.api.RLock; import org.redisson.api.RLock;
import org.redisson.api.RedissonClient; import org.redisson.api.RedissonClient;
...@@ -177,6 +181,9 @@ public class OrderChildServiceImpl implements OrderChildService { ...@@ -177,6 +181,9 @@ public class OrderChildServiceImpl implements OrderChildService {
@Autowired @Autowired
private OrderChildLoanComponent orderChildLoanComponent; private OrderChildLoanComponent orderChildLoanComponent;
@Autowired
private TruckTraceService truckTraceService;
@Override @Override
public SaveOrderChildVO saveOrderChild(OrderChildSaveParam param) { public SaveOrderChildVO saveOrderChild(OrderChildSaveParam param) {
...@@ -572,16 +579,19 @@ public class OrderChildServiceImpl implements OrderChildService { ...@@ -572,16 +579,19 @@ public class OrderChildServiceImpl implements OrderChildService {
PerformanceResultEnum.DATA_NOT_FIND); PerformanceResultEnum.DATA_NOT_FIND);
OrderGoods orderGoods = orderGoodsDao.getByOrderGoodsNo(orderChild.getOrderGoodsNo()).orElseThrow( OrderGoods orderGoods = orderGoodsDao.getByOrderGoodsNo(orderChild.getOrderGoodsNo()).orElseThrow(
PerformanceResultEnum.DATA_NOT_FIND); PerformanceResultEnum.DATA_NOT_FIND);
BigDecimal longitude = null; double longitude;
BigDecimal latitude = null; double latitude;
/* if(){ //首先获取中交的车来那个经纬度信息,不存在则使用app传过来的经纬度
BigDecimal[] currentTruckPosition = truckTraceService.getCurrentTruckPosition(orderChild.getTruckNo());
if(ArrayUtils.isNotEmpty(currentTruckPosition)){
longitude = currentTruckPosition[0].doubleValue();
latitude = currentTruckPosition[1].doubleValue();
}else{ }else{
longitude = param.getLongitude().doubleValue();
}*/ latitude = param.getLatitude().doubleValue();
}
double distance = GpsUtil.distance(orderGoods.getSendLongitude().doubleValue(), double distance = GpsUtil.distance(orderGoods.getSendLongitude().doubleValue(),
orderGoods.getSendLatitude().doubleValue(), param.getLongitude().doubleValue(), orderGoods.getSendLatitude().doubleValue(), longitude, latitude) / 1000;
param.getLatitude().doubleValue()) / 1000;
if (distance > orderInfo.getSendDriverArriveRange().doubleValue()) { if (distance > orderInfo.getSendDriverArriveRange().doubleValue()) {
throw new ServiceSystemException(PerformanceResultEnum.ORDER_CHILD_ARRIVE_SEND_ADDRESS_DISTANCE_ERROR); throw new ServiceSystemException(PerformanceResultEnum.ORDER_CHILD_ARRIVE_SEND_ADDRESS_DISTANCE_ERROR);
} }
......
...@@ -13,6 +13,7 @@ import com.clx.performance.utils.LocalDateTimeUtils; ...@@ -13,6 +13,7 @@ import com.clx.performance.utils.LocalDateTimeUtils;
import com.clx.performance.vo.pc.trace.DriverTraceVO; import com.clx.performance.vo.pc.trace.DriverTraceVO;
import com.clx.performance.vo.pc.trace.DriverTruckTraceVO; import com.clx.performance.vo.pc.trace.DriverTruckTraceVO;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils;
import org.dromara.easyes.core.conditions.select.LambdaEsQueryWrapper; import org.dromara.easyes.core.conditions.select.LambdaEsQueryWrapper;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
...@@ -214,4 +215,25 @@ public class TruckTraceServiceImpl implements TruckTraceService { ...@@ -214,4 +215,25 @@ public class TruckTraceServiceImpl implements TruckTraceService {
return 0; return 0;
} }
@Override
public BigDecimal[] getCurrentTruckPosition(String truckNo) {
String beginTime = LocalDateTimeUtils.formatTime(LocalDateTime.now().minusMinutes(5));
String endTime = LocalDateTimeUtils.formatTime();
// 车辆
List<TruckTraceESPlus> list = truckTraceESPlusMapper.selectList(new LambdaEsQueryWrapper<TruckTraceESPlus>()
.eq(TruckTraceESPlus::getTruckNo, truckNo)
.ge(TruckTraceESPlus::getGpsTime, beginTime)
.le(TruckTraceESPlus::getGpsTime, endTime)
.orderByDesc("gpsTime")
.limit(1)
);
if (CollectionUtils.isNotEmpty(list)){
return list.get(0).getLocation();
}
return null;
}
} }
...@@ -20,4 +20,7 @@ public interface TruckTraceService { ...@@ -20,4 +20,7 @@ public interface TruckTraceService {
BigDecimal[] getCurrentPosition(String truckNo, Long userNo); BigDecimal[] getCurrentPosition(String truckNo, Long userNo);
int getParkTime(String truckNo, Long userNo); int getParkTime(String truckNo, Long userNo);
BigDecimal[] getCurrentTruckPosition(String truckNo);
} }
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论