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

Merge branch 'refs/heads/v14.4_vehicle_warn_20240425' into dev

# Conflicts: # performance-web/src/main/java/com/clx/performance/service/impl/trace/TruckTraceServiceImpl.java
...@@ -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 stayBeginTime;
@ApiModelProperty(value = "停留结束时间") @ApiModelProperty(value = "停留结束时间")
private String stayEndTime; private String stayEndTime;
@ApiModelProperty(value = "车辆状态:1空车 2重车", example = "1") @ApiModelProperty(value = "车辆状态:1空车 2重车", example = "1")
......
...@@ -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 stayBeginTime;
@ApiModelProperty(value = "停留结束时间") @ApiModelProperty(value = "停留结束时间")
private String stayEndTime; private String stayEndTime;
@ApiModelProperty(value = "停留时长(min)", example = "12.3") @ApiModelProperty(value = "停留时长(min)", example = "12.3")
......
...@@ -6,6 +6,7 @@ import com.clx.performance.param.temp.DriverTraceAddParam; ...@@ -6,6 +6,7 @@ import com.clx.performance.param.temp.DriverTraceAddParam;
import com.clx.performance.param.temp.TruckTraceAddParam; import com.clx.performance.param.temp.TruckTraceAddParam;
import com.clx.performance.service.trace.TruckTraceMqHandlerService; import com.clx.performance.service.trace.TruckTraceMqHandlerService;
import com.clx.performance.service.trace.TruckTraceService; import com.clx.performance.service.trace.TruckTraceService;
import com.clx.performance.utils.LocalDateTimeUtils;
import com.clx.performance.utils.gd.GdService; import com.clx.performance.utils.gd.GdService;
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;
...@@ -55,6 +56,14 @@ public class TempTraceController { ...@@ -55,6 +56,14 @@ public class TempTraceController {
return Result.ok(); return Result.ok();
} }
@ApiOperation(value = "停留时长", notes = "<br>By:艾庆国")
@PostMapping("/getParkTime")
public Result<Integer> getParkTime(String truckNo, Long userNo, String beginTime, String endTime) {
int parkTime = truckTraceService.getParkTime(truckNo, userNo, LocalDateTimeUtils.parseTime(beginTime), LocalDateTimeUtils.parseTime(endTime));
return Result.ok(parkTime);
}
@ApiOperation(value = "车辆轨迹同步", notes = "<br>By:艾庆国") @ApiOperation(value = "车辆轨迹同步", notes = "<br>By:艾庆国")
@PostMapping("/truckTraceSync") @PostMapping("/truckTraceSync")
public Result truckTraceSync(@RequestBody TruckTraceAddParam param) { public Result truckTraceSync(@RequestBody TruckTraceAddParam param) {
......
...@@ -15,19 +15,10 @@ public class VehicleWarnChildDaoImpl extends BaseDaoImpl<VehicleWarnChildMapper, ...@@ -15,19 +15,10 @@ public class VehicleWarnChildDaoImpl extends BaseDaoImpl<VehicleWarnChildMapper,
@Override @Override
public boolean updateTraceTime(VehicleWarnChild item) { public boolean updateWarnStatus(VehicleWarnChild item) {
return update(lUdWrapper() return update(lUdWrapper()
.eq(VehicleWarnChild::getId, item.getId()) .eq(VehicleWarnChild::getId, item.getId())
.set(VehicleWarnChild::getTraceStatus, item.getTraceStatus()) .set(VehicleWarnChild::getWarnStatus, item.getWarnStatus())
.set(VehicleWarnChild::getTraceTime, item.getTraceTime())
);
}
@Override
public boolean updateReceiveAddressDistance(VehicleWarnChild item) {
return update(lUdWrapper()
.eq(VehicleWarnChild::getId, item.getId())
.set(VehicleWarnChild::getReceiveAddressDistance, item.getReceiveAddressDistance())
); );
} }
...@@ -48,12 +39,17 @@ public class VehicleWarnChildDaoImpl extends BaseDaoImpl<VehicleWarnChildMapper, ...@@ -48,12 +39,17 @@ public class VehicleWarnChildDaoImpl extends BaseDaoImpl<VehicleWarnChildMapper,
@Override @Override
public List<VehicleWarnChild> ListTruckNoOfTrace() { public List<VehicleWarnChild> ListTruckNoOfTrace() {
return list(lQrWrapper().select(VehicleWarnChild::getChildNo, VehicleWarnChild::getTruckNo).eq(VehicleWarnChild::getTraceStatus, VehicleWarnChildEnum.TraceStatus.ENABLE.getCode())); return list(lQrWrapper().select(VehicleWarnChild::getChildNo, VehicleWarnChild::getTruckNo)
.eq(VehicleWarnChild::getWarnStatus, VehicleWarnChildEnum.WarnStatus.ENABLE.getCode()));
} }
@Override @Override
public List<VehicleWarnChild> ListTruckNoOfWarn() { public List<VehicleWarnChild> ListTruckNoOfWarn() {
return list(lQrWrapper().select(VehicleWarnChild::getChildNo, VehicleWarnChild::getTruckNo).eq(VehicleWarnChild::getTraceStatus, VehicleWarnChildEnum.WarnStatus.ENABLE.getCode())); return list(lQrWrapper().select(VehicleWarnChild::getChildNo, VehicleWarnChild::getTruckNo)
.eq(VehicleWarnChild::getWarnStatus, VehicleWarnChildEnum.WarnStatus.ENABLE.getCode())
.orderByDesc(VehicleWarnChild::getId)
.last("limit 10000")
);
} }
} }
...@@ -4,15 +4,11 @@ package com.clx.performance.dao.impl.vehiclewarn; ...@@ -4,15 +4,11 @@ package com.clx.performance.dao.impl.vehiclewarn;
import com.clx.performance.dao.vehiclewarn.VehicleWarnLogDao; import com.clx.performance.dao.vehiclewarn.VehicleWarnLogDao;
import com.clx.performance.mapper.vehiclewarn.VehicleWarnLogMapper; import com.clx.performance.mapper.vehiclewarn.VehicleWarnLogMapper;
import com.clx.performance.model.vehiclewarn.VehicleWarnLog; import com.clx.performance.model.vehiclewarn.VehicleWarnLog;
import com.msl.common.base.Optional;
import com.msl.common.dao.impl.BaseDaoImpl; import com.msl.common.dao.impl.BaseDaoImpl;
import org.springframework.stereotype.Repository; import org.springframework.stereotype.Repository;
@Repository @Repository
public class VehicleWarnLogDaoImpl extends BaseDaoImpl<VehicleWarnLogMapper, VehicleWarnLog, Integer> implements VehicleWarnLogDao { public class VehicleWarnLogDaoImpl extends BaseDaoImpl<VehicleWarnLogMapper, VehicleWarnLog, Integer> implements VehicleWarnLogDao {
@Override
public Optional<VehicleWarnLog> findById(Integer id) {
return null;
}
} }
...@@ -9,8 +9,7 @@ import java.util.List; ...@@ -9,8 +9,7 @@ import java.util.List;
public interface VehicleWarnChildDao extends BaseDao<VehicleWarnChildMapper, VehicleWarnChild, Integer> { public interface VehicleWarnChildDao extends BaseDao<VehicleWarnChildMapper, VehicleWarnChild, Integer> {
boolean updateTraceTime(VehicleWarnChild item); boolean updateWarnStatus(VehicleWarnChild item);
boolean updateReceiveAddressDistance(VehicleWarnChild item);
boolean updateEstimateLoadTime(VehicleWarnChild item); boolean updateEstimateLoadTime(VehicleWarnChild item);
Optional<VehicleWarnChild> findByChildNo(String childNo); Optional<VehicleWarnChild> findByChildNo(String childNo);
......
...@@ -2,11 +2,9 @@ package com.clx.performance.dao.vehiclewarn; ...@@ -2,11 +2,9 @@ package com.clx.performance.dao.vehiclewarn;
import com.clx.performance.mapper.vehiclewarn.VehicleWarnLogMapper; import com.clx.performance.mapper.vehiclewarn.VehicleWarnLogMapper;
import com.clx.performance.model.vehiclewarn.VehicleWarnLog; import com.clx.performance.model.vehiclewarn.VehicleWarnLog;
import com.msl.common.base.Optional;
import com.msl.common.dao.BaseDao; import com.msl.common.dao.BaseDao;
public interface VehicleWarnLogDao extends BaseDao<VehicleWarnLogMapper, VehicleWarnLog, Integer> { public interface VehicleWarnLogDao extends BaseDao<VehicleWarnLogMapper, VehicleWarnLog, Integer> {
Optional<VehicleWarnLog> findById(Integer id);
} }
...@@ -41,9 +41,6 @@ public class VehicleWarnJob { ...@@ -41,9 +41,6 @@ public class VehicleWarnJob {
for (VehicleWarnChild item : list) { for (VehicleWarnChild item : list) {
LocalDateTime now = LocalDateTime.now();
LocalDateTime beginTime = now.minusSeconds(600);
// 发送mq (车辆预警) // 发送mq (车辆预警)
vehicleWarnMqService.truckWarn(item.getChildNo()); vehicleWarnMqService.truckWarn(item.getChildNo());
} }
...@@ -55,22 +52,4 @@ public class VehicleWarnJob { ...@@ -55,22 +52,4 @@ public class VehicleWarnJob {
} }
// /**
// * 预警暂停取消
// */
// @XxlJob("vehicleWarnSuspendCancel")
// public void vehicleWarnSuspendCancel() {
//
// try {
//
// List<VehicleWarnInfo> list = vehicleWarnInfoDao.listSuspendTimeout();
// log.info("预警暂停取消, size:{}", list.size());
//
// vehicleWarnInfoDao.batchUpdateStatus(list.stream().map(item->item.getId()).collect(Collectors.toList()), VehicleWarnInfoEnum.Status.INIT.getCode());
//
// } catch (Exception e) {
// log.warn("预警暂停取消失败,异常原因:{}", ExceptionUtils.getStackTrace(e));
// JobLog.error("预警暂停取消失败,异常原因=====================", e);
// }
// }
} }
...@@ -42,7 +42,7 @@ public class VehicleWarnChild implements HasKey<Integer> { ...@@ -42,7 +42,7 @@ public class VehicleWarnChild implements HasKey<Integer> {
private LocalDateTime estimateLoadTime; //轨迹更新时间 private LocalDateTime estimateLoadTime; //轨迹更新时间
private LocalDateTime traceTime; //轨迹更新时间 private LocalDateTime traceTime; //轨迹更新时间
private Integer traceStatus; //轨迹更新状态:0禁止 1启用 private Integer traceStatus; //轨迹更新状态:0禁止 1启用
private Integer wanStatus; //预警更新状态:0禁用 1启用 private Integer warnStatus; //预警使能:0禁用 1启用
private Integer status; //状态 private Integer status; //状态
private LocalDateTime createTime; //创建时间 private LocalDateTime createTime; //创建时间
private LocalDateTime modifiedTime; //修改时间 private LocalDateTime modifiedTime; //修改时间
......
...@@ -69,17 +69,29 @@ public class TruckTraceServiceImpl implements TruckTraceService { ...@@ -69,17 +69,29 @@ public class TruckTraceServiceImpl implements TruckTraceService {
} }
else { else {
if (parkIdx == null) {continue;} if (parkIdx == null) {continue;}
long stayTime = Duration.between(LocalDateTimeUtils.parseTime(traceList.get(parkIdx).getGpsTime()), LocalDateTimeUtils.parseTime(traceList.get(i).getGpsTime())).getSeconds(); long duration = Duration.between(LocalDateTimeUtils.parseTime(traceList.get(parkIdx).getGpsTime()),
traceList.get(parkIdx).setStayTime(new BigDecimal(stayTime).divide(new BigDecimal(60), 1, RoundingMode.HALF_UP)); LocalDateTimeUtils.parseTime(traceList.get(i).getGpsTime())).getSeconds();
traceList.get(parkIdx).setStayEndTime(traceList.get(i).getGpsTime()); BigDecimal stayTime = new BigDecimal(duration)
.divide(new BigDecimal(60), 1, RoundingMode.HALF_UP);
for (int j= parkIdx; j<=i; j++){
traceList.get(j).setStayTime(stayTime);
traceList.get(j).setStayBeginTime(traceList.get(parkIdx).getGpsTime());
traceList.get(j).setStayEndTime(traceList.get(i).getGpsTime());
}
parkIdx = null; parkIdx = null;
} }
} }
if (parkIdx!=null && parkIdx < traceList.size()-1){ if (parkIdx!=null && parkIdx < traceList.size()-1){
long stayTime = Duration.between(LocalDateTimeUtils.parseTime(traceList.get(parkIdx).getGpsTime()), LocalDateTimeUtils.parseTime(traceList.get(traceList.size()-1).getGpsTime())).getSeconds(); long duration = Duration.between(LocalDateTimeUtils.parseTime(traceList.get(parkIdx).getGpsTime()),
traceList.get(parkIdx).setStayTime(new BigDecimal(stayTime).divide(new BigDecimal(60), 1, RoundingMode.HALF_UP)); LocalDateTimeUtils.parseTime(traceList.get(traceList.size()-1).getGpsTime())).getSeconds();
traceList.get(parkIdx).setStayEndTime(traceList.get(traceList.size()-1).getGpsTime()); BigDecimal stayTime = new BigDecimal(duration)
.divide(new BigDecimal(60), 1, RoundingMode.HALF_UP);
for (int j= parkIdx; j<=traceList.size()-1; j++){
traceList.get(j).setStayTime(stayTime);
traceList.get(j).setStayBeginTime(traceList.get(parkIdx).getGpsTime());
traceList.get(j).setStayEndTime(traceList.get(traceList.size()-1).getGpsTime());
}
} }
return traceList; return traceList;
...@@ -98,17 +110,27 @@ public class TruckTraceServiceImpl implements TruckTraceService { ...@@ -98,17 +110,27 @@ public class TruckTraceServiceImpl implements TruckTraceService {
} }
else { else {
if (parkIdx == null) {continue;} if (parkIdx == null) {continue;}
long stayTime = Duration.between(LocalDateTimeUtils.parseTime(traceList.get(parkIdx).getGpsTime()), LocalDateTimeUtils.parseTime(traceList.get(i).getGpsTime())).getSeconds(); long duration = Duration.between(LocalDateTimeUtils.parseTime(traceList.get(parkIdx).getGpsTime()), LocalDateTimeUtils.parseTime(traceList.get(i).getGpsTime())).getSeconds();
traceList.get(parkIdx).setStayTime(new BigDecimal(stayTime).divide(new BigDecimal(60), 1, RoundingMode.HALF_UP)); BigDecimal stayTime = new BigDecimal(duration)
traceList.get(parkIdx).setStayEndTime(traceList.get(i).getGpsTime()); .divide(new BigDecimal(60), 1, RoundingMode.HALF_UP);
for (int j= parkIdx; j<=i; j++) {
traceList.get(j).setStayTime(stayTime);
traceList.get(j).setStayBeginTime(traceList.get(parkIdx).getGpsTime());
traceList.get(j).setStayEndTime(traceList.get(i).getGpsTime());
}
parkIdx = null; parkIdx = null;
} }
} }
if (parkIdx!=null && parkIdx < traceList.size()-1){ if (parkIdx!=null && parkIdx < traceList.size()-1){
long stayTime = Duration.between(LocalDateTimeUtils.parseTime(traceList.get(parkIdx).getGpsTime()), LocalDateTimeUtils.parseTime(traceList.get(traceList.size()-1).getGpsTime())).getSeconds(); long duration = Duration.between(LocalDateTimeUtils.parseTime(traceList.get(parkIdx).getGpsTime()), LocalDateTimeUtils.parseTime(traceList.get(traceList.size()-1).getGpsTime())).getSeconds();
traceList.get(parkIdx).setStayTime(new BigDecimal(stayTime).divide(new BigDecimal(60), 1, RoundingMode.HALF_UP)); BigDecimal stayTime = new BigDecimal(duration)
traceList.get(parkIdx).setStayEndTime(traceList.get(traceList.size()-1).getGpsTime()); .divide(new BigDecimal(60), 1, RoundingMode.HALF_UP);
for (int j= parkIdx; j<=traceList.size()-1; j++) {
traceList.get(j).setStayTime(stayTime);
traceList.get(j).setStayBeginTime(traceList.get(parkIdx).getGpsTime());
traceList.get(j).setStayEndTime(traceList.get(traceList.size() - 1).getGpsTime());
}
} }
return traceList; return traceList;
...@@ -270,14 +292,16 @@ public class TruckTraceServiceImpl implements TruckTraceService { ...@@ -270,14 +292,16 @@ public class TruckTraceServiceImpl implements TruckTraceService {
} }
@Override @Override
public int getParkTime(String truckNo, Long userNo) { public int getParkTime(String truckNo, Long userNo, LocalDateTime beginDateTime) {
return getParkTime(truckNo, userNo, LocalDateTime.now().minusDays(1)); return getParkTime(truckNo, userNo, beginDateTime, LocalDateTime.now());
} }
@Override @Override
public int getParkTime(String truckNo, Long userNo, LocalDateTime beginDateTime) { public int getParkTime(String truckNo, Long userNo, LocalDateTime beginDateTime, LocalDateTime endDateTime) {
String beginTime = LocalDateTimeUtils.formatTime(beginDateTime); String beginTime = LocalDateTimeUtils.formatTime(beginDateTime);
String endTime = LocalDateTimeUtils.formatTime(); String endTime = LocalDateTimeUtils.formatTime(endDateTime);
boolean flag = false;
// 车辆 // 车辆
// 非停留最大时间 // 非停留最大时间
...@@ -291,7 +315,10 @@ public class TruckTraceServiceImpl implements TruckTraceService { ...@@ -291,7 +315,10 @@ public class TruckTraceServiceImpl implements TruckTraceService {
); );
String time = beginTime; String time = beginTime;
if (!list.isEmpty()){list.get(0).getGpsTime();} if (!list.isEmpty()){
time = list.get(0).getGpsTime();
flag = true; //车辆存在轨迹
}
// 停留时间段 // 停留时间段
list = truckTraceESPlusMapper.selectList(new LambdaEsQueryWrapper<TruckTraceESPlus>() list = truckTraceESPlusMapper.selectList(new LambdaEsQueryWrapper<TruckTraceESPlus>()
.eq(TruckTraceESPlus::getTruckNo, truckNo) .eq(TruckTraceESPlus::getTruckNo, truckNo)
...@@ -304,26 +331,28 @@ public class TruckTraceServiceImpl implements TruckTraceService { ...@@ -304,26 +331,28 @@ public class TruckTraceServiceImpl implements TruckTraceService {
// 停留时长 // 停留时长
return (int)Duration.between(LocalDateTimeUtils.parseTime(list.get(list.size() - 1).getGpsTime()), LocalDateTimeUtils.parseTime(list.get(0).getGpsTime())).toMinutes(); return (int)Duration.between(LocalDateTimeUtils.parseTime(list.get(list.size() - 1).getGpsTime()), LocalDateTimeUtils.parseTime(list.get(0).getGpsTime())).toMinutes();
} }
if (flag) {return 0;}
// 司机 // 司机
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::getSpeed, PARK_SPEED)
.ge(DriverTraceESPlus::getPositionTime, beginTime) .ge(DriverTraceESPlus::getPositionTime, beginTime)
.le(DriverTraceESPlus::getPositionTime, endTime) .le(DriverTraceESPlus::getPositionTime, endTime)
.orderByDesc("positionTime") .orderByDesc("positionTime")
.limit(1) .limit(1)
); );
if (!list1.isEmpty()){ time = beginTime;
if (!list1.isEmpty()){time = list1.get(0).getPositionTime();}
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, time)
.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(list1.size() - 1).getPositionTime()), LocalDateTimeUtils.parseTime(list1.get(0).getPositionTime())).toMinutes();
} }
return 0; return 0;
......
...@@ -16,6 +16,7 @@ import com.clx.performance.dto.vehiclewarn.VehicleWarnCommonInfoDTO; ...@@ -16,6 +16,7 @@ import com.clx.performance.dto.vehiclewarn.VehicleWarnCommonInfoDTO;
import com.clx.performance.enums.OrderChildEnum; import com.clx.performance.enums.OrderChildEnum;
import com.clx.performance.enums.PerformanceResultEnum; import com.clx.performance.enums.PerformanceResultEnum;
import com.clx.performance.enums.ResultEnum; import com.clx.performance.enums.ResultEnum;
import com.clx.performance.enums.vehiclewarn.VehicleWarnChildEnum;
import com.clx.performance.extranal.user.OrderService; import com.clx.performance.extranal.user.OrderService;
import com.clx.performance.model.OrderChild; import com.clx.performance.model.OrderChild;
import com.clx.performance.model.OrderGoods; import com.clx.performance.model.OrderGoods;
...@@ -87,7 +88,11 @@ public class VehicleWarnMqHandlerServiceImpl implements VehicleWarnMqHandlerServ ...@@ -87,7 +88,11 @@ public class VehicleWarnMqHandlerServiceImpl implements VehicleWarnMqHandlerServ
truckTraceSyncMqParam.setTruckNo(orderChild.getTruckNo()); truckTraceSyncMqParam.setTruckNo(orderChild.getTruckNo());
truckTraceSyncMqParam.setBeginTime(LocalDateTimeUtils.formatTime(LocalDateTime.now().minusMinutes(5))); truckTraceSyncMqParam.setBeginTime(LocalDateTimeUtils.formatTime(LocalDateTime.now().minusMinutes(5)));
truckTraceSyncMqParam.setEndTime(LocalDateTimeUtils.formatTime()); truckTraceSyncMqParam.setEndTime(LocalDateTimeUtils.formatTime());
try {
truckTraceMqHandlerService.truckTracSync(truckTraceSyncMqParam); truckTraceMqHandlerService.truckTracSync(truckTraceSyncMqParam);
}catch (Exception e){
log.info("同步车辆轨迹失败, msg:{}", e.getMessage());
}
// 计算预计时间 // 计算预计时间
BigDecimal[] currentPosition = vehicleWarnCommonService.getCurrentPosition(orderChild.getTruckNo(), BigDecimal[] currentPosition = vehicleWarnCommonService.getCurrentPosition(orderChild.getTruckNo(),
...@@ -115,6 +120,7 @@ public class VehicleWarnMqHandlerServiceImpl implements VehicleWarnMqHandlerServ ...@@ -115,6 +120,7 @@ public class VehicleWarnMqHandlerServiceImpl implements VehicleWarnMqHandlerServ
vehicleWarnChild.setTakeTime(orderChild.getPayTime()); vehicleWarnChild.setTakeTime(orderChild.getPayTime());
vehicleWarnChild.setTraceTime(LocalDateTime.now()); vehicleWarnChild.setTraceTime(LocalDateTime.now());
vehicleWarnChild.setWarnStatus(VehicleWarnChildEnum.WarnStatus.ENABLE.getCode());
vehicleWarnChildDao.saveEntity(vehicleWarnChild); vehicleWarnChildDao.saveEntity(vehicleWarnChild);
} }
...@@ -290,6 +296,17 @@ public class VehicleWarnMqHandlerServiceImpl implements VehicleWarnMqHandlerServ ...@@ -290,6 +296,17 @@ public class VehicleWarnMqHandlerServiceImpl implements VehicleWarnMqHandlerServ
} }
} }
if (Objects.equals(orderChild.getStatus(), OrderChildEnum.Status.COMPLETE.getCode())
|| Objects.equals(orderChild.getStatus(), OrderChildEnum.Status.DRIVER_CANCEL.getCode())
|| Objects.equals(orderChild.getStatus(), OrderChildEnum.Status.PLATFORM_CANCEL.getCode())
|| Objects.equals(orderChild.getStatus(), OrderChildEnum.Status.OWNER_CANCEL.getCode())
|| Objects.equals(orderChild.getStatus(), OrderChildEnum.Status.ARTIFICIAL_CANCEL.getCode())
) {
// 运单结束不再预警
vehicleWarnChild.setWarnStatus(VehicleWarnChildEnum.TraceStatus.DISABLE.getCode());
vehicleWarnChildDao.updateWarnStatus(vehicleWarnChild);
}
} }
@Override @Override
......
...@@ -76,7 +76,7 @@ public class VehicleWarnParkWarnServiceImpl implements VehicleWarnParkWarnServic ...@@ -76,7 +76,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 (parkTime > time){return;} if (parkTime < time){return;}
// 更新 // 更新
vehicleWarnCommonService.vehicleWarnInfoUpdate(orderChild, vehicleWarnInfo, vehicleWarnConfig); vehicleWarnCommonService.vehicleWarnInfoUpdate(orderChild, vehicleWarnInfo, vehicleWarnConfig);
...@@ -91,7 +91,7 @@ public class VehicleWarnParkWarnServiceImpl implements VehicleWarnParkWarnServic ...@@ -91,7 +91,7 @@ public class VehicleWarnParkWarnServiceImpl implements VehicleWarnParkWarnServic
orderChild.setLoadTime(commonInfo.getGotoReceiveTime()); orderChild.setLoadTime(commonInfo.getGotoReceiveTime());
// 停留时间 // 停留时间
int parkTime = truckTraceService.getParkTime(vehicleWarnChild.getTruckNo(), vehicleWarnChild.getDriverUserNo()); int parkTime = truckTraceService.getParkTime(vehicleWarnChild.getTruckNo(), vehicleWarnChild.getDriverUserNo(), vehicleWarnChild.getTakeTime());
if (parkTime < PARK_TIMEOUT_DEFAULT) {return;} if (parkTime < PARK_TIMEOUT_DEFAULT) {return;}
List<VehicleWarnConfig> vehicleWarnConfigList = vehicleWarnConfigDao.listByWarnType(VehicleWarnConfigEnum.WarnType.SENSITIVE_AREA_PARK_TIMEOUT.getCode()); List<VehicleWarnConfig> vehicleWarnConfigList = vehicleWarnConfigDao.listByWarnType(VehicleWarnConfigEnum.WarnType.SENSITIVE_AREA_PARK_TIMEOUT.getCode());
......
...@@ -39,9 +39,9 @@ public class VehicleWarnSendAddressWarnServiceImpl implements VehicleWarnSendAdd ...@@ -39,9 +39,9 @@ public class VehicleWarnSendAddressWarnServiceImpl implements VehicleWarnSendAdd
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
@Override @Override
public void gotoSendAddressTimeout(OrderChild orderChild, VehicleWarnChild vehicleWarnChild, VehicleWarnCommonInfoDTO commonInfo){ public void gotoSendAddressTimeout(OrderChild orderChild, VehicleWarnChild vehicleWarnChild, VehicleWarnCommonInfoDTO commonInfo){
if (vehicleWarnChild.getArriveReceiveExpectTime() == null) {return;} if (vehicleWarnChild.getArriveSendExpectTime() == null) {return;}
long expectTime = vehicleWarnChild.getArriveReceiveExpectTime(); long expectTime = vehicleWarnChild.getArriveSendExpectTime();
// 计算需要的时间 // 计算需要的时间
Integer needTime = commonInfo.getSendAddressTime(); Integer needTime = commonInfo.getSendAddressTime();
......
...@@ -20,8 +20,8 @@ public interface TruckTraceService { ...@@ -20,8 +20,8 @@ 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, LocalDateTime beginDateTime);
int getParkTime(String truckNo, Long userNo, LocalDateTime beginTime); int getParkTime(String truckNo, Long userNo, LocalDateTime beginTime, LocalDateTime endTime);
BigDecimal[] getCurrentTruckPosition(String truckNo); BigDecimal[] getCurrentTruckPosition(String truckNo);
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论