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

运单预警

上级 0e63db6b
...@@ -31,6 +31,8 @@ public class DriverTraceAddParam { ...@@ -31,6 +31,8 @@ public class DriverTraceAddParam {
private BigDecimal[] location; private BigDecimal[] location;
@ApiModelProperty(value = "时间") @ApiModelProperty(value = "时间")
private String gpsTime; private String gpsTime;
@ApiModelProperty(value = "速度", example = "12.34")
private BigDecimal speed;
} }
} }
...@@ -22,6 +22,8 @@ public class DriverTraceVO { ...@@ -22,6 +22,8 @@ public class DriverTraceVO {
private BigDecimal speed; private BigDecimal speed;
@ApiModelProperty(value = "停留时长(min)", example = "12.3") @ApiModelProperty(value = "停留时长(min)", example = "12.3")
private BigDecimal stayTime=BigDecimal.ZERO; private BigDecimal stayTime=BigDecimal.ZERO;
@ApiModelProperty(value = "停留结束时间")
private String stayEndTime;
@ApiModelProperty(value = "车辆状态:1空车 2重车", example = "1") @ApiModelProperty(value = "车辆状态:1空车 2重车", example = "1")
private Integer truckStatus; private Integer truckStatus;
} }
...@@ -26,6 +26,8 @@ public class DriverTruckTraceVO { ...@@ -26,6 +26,8 @@ public class DriverTruckTraceVO {
private BigDecimal latitude; private BigDecimal latitude;
@ApiModelProperty(value = "GPS 时间") @ApiModelProperty(value = "GPS 时间")
private String gpsTime; private String gpsTime;
@ApiModelProperty(value = "停留结束时间")
private String stayEndTime;
@ApiModelProperty(value = "停留时长(min)", example = "12.3") @ApiModelProperty(value = "停留时长(min)", example = "12.3")
private BigDecimal stayTime=BigDecimal.ZERO; private BigDecimal stayTime=BigDecimal.ZERO;
@ApiModelProperty(value = "车辆状态:1空车 2重车", example = "1") @ApiModelProperty(value = "车辆状态:1空车 2重车", example = "1")
......
...@@ -113,8 +113,8 @@ public class VehicleWarnInfoServiceImpl implements VehicleWarnInfoService { ...@@ -113,8 +113,8 @@ public class VehicleWarnInfoServiceImpl implements VehicleWarnInfoService {
if (orderChild.getFinishTime() != null) {endTime = orderChild.getFinishTime();} if (orderChild.getFinishTime() != null) {endTime = orderChild.getFinishTime();}
if (endTime.isAfter(beginTime.plusDays(TRUCK_TRACE_DAY_MAX))) {endTime = beginTime.plusDays(TRUCK_TRACE_DAY_MAX);} //最多查询3天 if (endTime.isAfter(beginTime.plusDays(TRUCK_TRACE_DAY_MAX))) {endTime = beginTime.plusDays(TRUCK_TRACE_DAY_MAX);} //最多查询3天
List<DriverTruckTraceVO> truckTraceList = truckTraceService.listTruckTraceByTime(vehicleWarnInfo.getTruckNo(), LocalDateTimeUtils.formatTime(beginTime), LocalDateTimeUtils.formatTime(endTime)); List<DriverTruckTraceVO> truckTraceList = truckTraceService.calcTruckStayTime(truckTraceService.listTruckTraceByTime(vehicleWarnInfo.getTruckNo(), LocalDateTimeUtils.formatTime(beginTime), LocalDateTimeUtils.formatTime(endTime)));
List<DriverTraceVO> driverTraceList = truckTraceService.listDriverTraceByTime(vehicleWarnInfo.getDriverUserNo(), LocalDateTimeUtils.formatTime(beginTime), LocalDateTimeUtils.formatTime(endTime)); List<DriverTraceVO> driverTraceList = truckTraceService.calcDriverStayTime(truckTraceService.listDriverTraceByTime(vehicleWarnInfo.getDriverUserNo(), LocalDateTimeUtils.formatTime(beginTime), LocalDateTimeUtils.formatTime(endTime)));
// 接单重车、卸车空车 // 接单重车、卸车空车
for (DriverTruckTraceVO item : truckTraceList) { for (DriverTruckTraceVO item : truckTraceList) {
......
...@@ -73,7 +73,7 @@ public class VehicleWarnParkWarnServiceImpl implements VehicleWarnParkWarnServic ...@@ -73,7 +73,7 @@ public class VehicleWarnParkWarnServiceImpl implements VehicleWarnParkWarnServic
} }
private void doParkTimeout(OrderChild orderChild, VehicleWarnChild vehicleWarnChild, VehicleWarnConfig vehicleWarnConfig, int parkTimee){ private void doParkTimeout(OrderChild orderChild, VehicleWarnChild vehicleWarnChild, VehicleWarnConfig vehicleWarnConfig, int parkTime){
VehicleWarnInfo vehicleWarnInfo = vehicleWarnInfoDao.findByChildNoAndWarnConfigId(vehicleWarnChild.getChildNo(), vehicleWarnConfig.getId()).orNull(); VehicleWarnInfo vehicleWarnInfo = vehicleWarnInfoDao.findByChildNoAndWarnConfigId(vehicleWarnChild.getChildNo(), vehicleWarnConfig.getId()).orNull();
if (vehicleWarnInfo != null && Objects.equals(vehicleWarnInfo.getStatus(), VehicleWarnInfoEnum.Status.RESOLVE.getCode())){ if (vehicleWarnInfo != null && Objects.equals(vehicleWarnInfo.getStatus(), VehicleWarnInfoEnum.Status.RESOLVE.getCode())){
return; return;
...@@ -85,7 +85,7 @@ public class VehicleWarnParkWarnServiceImpl implements VehicleWarnParkWarnServic ...@@ -85,7 +85,7 @@ public class VehicleWarnParkWarnServiceImpl implements VehicleWarnParkWarnServic
// 超时判断 // 超时判断
int time = vehicleWarnConfig.getTimeoutRatio().multiply(new BigDecimal(MIN_FER_HOUR)).intValue(); int time = vehicleWarnConfig.getTimeoutRatio().multiply(new BigDecimal(MIN_FER_HOUR)).intValue();
if (parkTimee > time){return;} if (parkTime > time){return;}
// 更新 // 更新
vehicleWarnCommonService.vehicleWarnInfoUpdate(orderChild, vehicleWarnInfo, vehicleWarnConfig); vehicleWarnCommonService.vehicleWarnInfoUpdate(orderChild, vehicleWarnInfo, vehicleWarnConfig);
......
...@@ -20,4 +20,19 @@ public interface TruckTraceService { ...@@ -20,4 +20,19 @@ 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);
List<List<DriverTraceVO>> splitDriverTrace(List<DriverTraceVO> driverTraceList);
//计算车辆的停留结束时间
List<DriverTruckTraceVO> calcTruckStayTime(List<DriverTruckTraceVO> traceList);
//计算司机的停留结束时间
List<DriverTraceVO> calcDriverStayTime(List<DriverTraceVO> traceList);
List<List<DriverTruckTraceVO>> splitTruckTrace(List<DriverTruckTraceVO> traceList);
} }
...@@ -409,4 +409,9 @@ public class LocalDateTimeUtils { ...@@ -409,4 +409,9 @@ public class LocalDateTimeUtils {
Duration duration = Duration.between(startTime, endTime); Duration duration = Duration.between(startTime, endTime);
return duration.getSeconds(); return duration.getSeconds();
} }
public static long betweenMin(LocalDateTime startTime, LocalDateTime endTime){
Duration duration = Duration.between(startTime, endTime);
return duration.toMinutes();
}
} }
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论