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

运单预警

上级 27dc73a6
...@@ -274,44 +274,50 @@ public class TruckTraceServiceImpl implements TruckTraceService { ...@@ -274,44 +274,50 @@ public class TruckTraceServiceImpl implements TruckTraceService {
String endTime = LocalDateTimeUtils.formatTime(); String endTime = LocalDateTimeUtils.formatTime();
// 车辆 // 车辆
// 非停留最大时间
List<TruckTraceESPlus> list = truckTraceESPlusMapper.selectList(new LambdaEsQueryWrapper<TruckTraceESPlus>() List<TruckTraceESPlus> list = truckTraceESPlusMapper.selectList(new LambdaEsQueryWrapper<TruckTraceESPlus>()
.eq(TruckTraceESPlus::getTruckNo, truckNo) .eq(TruckTraceESPlus::getTruckNo, truckNo)
.gt(TruckTraceESPlus::getSpeed, PARK_SPEED) .ge(TruckTraceESPlus::getSpeed, PARK_SPEED)
.ge(TruckTraceESPlus::getGpsTime, beginTime) .ge(TruckTraceESPlus::getGpsTime, beginTime)
.le(TruckTraceESPlus::getGpsTime, endTime) .le(TruckTraceESPlus::getGpsTime, endTime)
.orderByAsc("gpsTime") .orderByDesc("gpsTime")
.limit(1) .limit(1)
); );
if (!list.isEmpty()){ if (!list.isEmpty()){
// 停留时间段
list = truckTraceESPlusMapper.selectList(new LambdaEsQueryWrapper<TruckTraceESPlus>() list = truckTraceESPlusMapper.selectList(new LambdaEsQueryWrapper<TruckTraceESPlus>()
.eq(TruckTraceESPlus::getTruckNo, truckNo) .eq(TruckTraceESPlus::getTruckNo, truckNo)
.gt(TruckTraceESPlus::getSpeed, PARK_SPEED) .lt(TruckTraceESPlus::getSpeed, PARK_SPEED)
.gt(TruckTraceESPlus::getGpsTime, list.get(0).getGpsTime()) .gt(TruckTraceESPlus::getGpsTime, list.get(0).getGpsTime())
.le(TruckTraceESPlus::getGpsTime, endTime) .le(TruckTraceESPlus::getGpsTime, endTime)
.orderByDesc("gpsTime") .orderByDesc("gpsTime")
); );
return (int)Duration.between(LocalDateTimeUtils.parseTime(list.get(0).getGpsTime()), LocalDateTimeUtils.parseTime(list.get(list.size() - 1).getGpsTime())).toMinutes(); if (!list.isEmpty()) {
// 停留时长
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>() List<DriverTraceESPlus> list1 = driverTraceESPlusMapper.selectList(new LambdaEsQueryWrapper<DriverTraceESPlus>()
.eq(DriverTraceESPlus::getUserNo, userNo) .eq(DriverTraceESPlus::getUserNo, userNo)
.gt(DriverTraceESPlus::getSpeed, PARK_SPEED) .ge(DriverTraceESPlus::getSpeed, PARK_SPEED)
.ge(DriverTraceESPlus::getPositionTime, beginTime) .ge(DriverTraceESPlus::getPositionTime, beginTime)
.le(DriverTraceESPlus::getPositionTime, endTime) .le(DriverTraceESPlus::getPositionTime, endTime)
.orderByAsc("positionTime") .orderByDesc("positionTime")
.limit(1) .limit(1)
); );
if (!list1.isEmpty()){ if (!list1.isEmpty()){
list1 = driverTraceESPlusMapper.selectList(new LambdaEsQueryWrapper<DriverTraceESPlus>() list1 = driverTraceESPlusMapper.selectList(new LambdaEsQueryWrapper<DriverTraceESPlus>()
.eq(DriverTraceESPlus::getUserNo, userNo) .eq(DriverTraceESPlus::getUserNo, userNo)
.gt(DriverTraceESPlus::getSpeed, PARK_SPEED) .lt(DriverTraceESPlus::getSpeed, PARK_SPEED)
.ge(DriverTraceESPlus::getPositionTime, list1.get(0).getPositionTime()) .gt(DriverTraceESPlus::getPositionTime, list1.get(0).getPositionTime())
.le(DriverTraceESPlus::getPositionTime, endTime) .le(DriverTraceESPlus::getPositionTime, endTime)
.orderByDesc("positionTime") .orderByDesc("positionTime")
); );
return (int)Duration.between(LocalDateTimeUtils.parseTime(list1.get(0).getPositionTime()), LocalDateTimeUtils.parseTime(list1.get(list1.size() - 1).getPositionTime())).toMinutes(); if (!list1.isEmpty()) {
return (int) Duration.between(LocalDateTimeUtils.parseTime(list1.get(0).getPositionTime()), LocalDateTimeUtils.parseTime(list1.get(list1.size() - 1).getPositionTime())).toMinutes();
}
} }
return 0; return 0;
......
...@@ -28,10 +28,8 @@ public interface TruckTraceService { ...@@ -28,10 +28,8 @@ public interface TruckTraceService {
List<List<DriverTraceVO>> splitDriverTrace(List<DriverTraceVO> driverTraceList); List<List<DriverTraceVO>> splitDriverTrace(List<DriverTraceVO> driverTraceList);
//计算车辆的停留结束时间
List<DriverTruckTraceVO> calcTruckStayTime(List<DriverTruckTraceVO> traceList); List<DriverTruckTraceVO> calcTruckStayTime(List<DriverTruckTraceVO> traceList);
//计算司机的停留结束时间
List<DriverTraceVO> calcDriverStayTime(List<DriverTraceVO> traceList); List<DriverTraceVO> calcDriverStayTime(List<DriverTraceVO> traceList);
List<List<DriverTruckTraceVO>> splitTruckTrace(List<DriverTruckTraceVO> traceList); List<List<DriverTruckTraceVO>> splitTruckTrace(List<DriverTruckTraceVO> traceList);
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论