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

运单预警

上级 6004a946
......@@ -26,6 +26,9 @@ public class DriverTraceESPlus {
@IndexField(fieldType = FieldType.GEO_POINT)
private BigDecimal[] location; //位置
@ApiModelProperty("速度")
private BigDecimal speed;
@IndexField(fieldType = FieldType.DATE)
private String positionTime;
......
......@@ -18,6 +18,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.math.BigDecimal;
import java.time.Duration;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.List;
......@@ -25,6 +26,7 @@ import java.util.List;
@Slf4j
@Service
public class TruckTraceServiceImpl implements TruckTraceService {
private static final Integer PARK_SPEED = 5;
@Autowired
private TruckTraceESPlusMapper truckTraceESPlusMapper;
......@@ -137,4 +139,50 @@ public class TruckTraceServiceImpl implements TruckTraceService {
return null;
}
@Override
public int getParkTime(String truckNo, Long userNo) {
String beginTime = LocalDateTimeUtils.formatTime(LocalDateTime.now().minusDays(1));
String endTime = LocalDateTimeUtils.formatTime();
List<TruckTraceESPlus> list = truckTraceESPlusMapper.selectList(new LambdaEsQueryWrapper<TruckTraceESPlus>()
.eq(TruckTraceESPlus::getTruckNo, truckNo)
.gt(TruckTraceESPlus::getSpeed, PARK_SPEED)
.ge(TruckTraceESPlus::getGpsTime, beginTime)
.le(TruckTraceESPlus::getGpsTime, endTime)
.orderByAsc("gpsTime")
.limit(1)
);
if (!list.isEmpty()){
list = truckTraceESPlusMapper.selectList(new LambdaEsQueryWrapper<TruckTraceESPlus>()
.eq(TruckTraceESPlus::getTruckNo, truckNo)
.gt(TruckTraceESPlus::getSpeed, PARK_SPEED)
.gt(TruckTraceESPlus::getGpsTime, list.get(0).getGpsTime())
.le(TruckTraceESPlus::getGpsTime, endTime)
.orderByDesc("gpsTime")
);
return (int)Duration.between(LocalDateTimeUtils.parseTime(list.get(0).getGpsTime()), LocalDateTimeUtils.parseTime(list.get(list.size() - 1).getGpsTime())).toMinutes();
}
List<DriverTraceESPlus> list1 = driverTraceESPlusMapper.selectList(new LambdaEsQueryWrapper<DriverTraceESPlus>()
.eq(DriverTraceESPlus::getUserNo, userNo)
.ge(DriverTraceESPlus::getPositionTime, beginTime)
.le(DriverTraceESPlus::getPositionTime, endTime)
.orderByAsc("positionTime")
.limit(1)
);
if (!list1.isEmpty()){
list1 = driverTraceESPlusMapper.selectList(new LambdaEsQueryWrapper<DriverTraceESPlus>()
.eq(DriverTraceESPlus::getUserNo, userNo)
.eq(DriverTraceESPlus::getSpeed, PARK_SPEED)
.ge(DriverTraceESPlus::getPositionTime, list1.get(0).getPositionTime())
.le(DriverTraceESPlus::getPositionTime, endTime)
.orderByDesc("positionTime")
);
return (int)Duration.between(LocalDateTimeUtils.parseTime(list.get(0).getGpsTime()), LocalDateTimeUtils.parseTime(list.get(list.size() - 1).getGpsTime())).toMinutes();
}
return 0;
}
}
......@@ -18,4 +18,6 @@ public interface TruckTraceService {
void driverTraceSave(DriverTraceAddParam param);
BigDecimal[] getLastPosition(String truckNo, Long userNo);
int getParkTime(String truckNo, Long userNo);
}
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论