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

Merge branch 'v15.4_truck_fleet_20240513' into dev

# Conflicts: # performance-web/src/main/java/com/clx/performance/service/impl/trace/TruckTraceMqHandlerServiceImpl.java
......@@ -31,7 +31,7 @@ public class PlatTruckTraceJob {
try {
Result<List<String>> result = userClxFeign.getPlatformTruckList();
if(result.succeed()){
log.info("平台车辆轨迹同步, size:{}", result.getData().size());
log.info("平台车辆轨迹开始同步, size:{}", result.getData().size());
for (String truckNo : result.getData()) {
LocalDateTime now = LocalDateTime.now();
......@@ -39,6 +39,7 @@ public class PlatTruckTraceJob {
// 发送mq (同步车辆轨迹)
truckTraceMqService.truckTracSync( truckNo, LocalDateTimeUtils.formatTime(beginTime), LocalDateTimeUtils.formatTime(now));
}
log.info("平台车辆轨迹结束同步================");
}
} catch (Exception e) {
log.warn("平台车辆轨迹同步失败,异常原因:{}", ExceptionUtils.getStackTrace(e));
......
......@@ -20,6 +20,7 @@ import com.clx.performance.utils.LocalDateTimeUtils;
import com.clx.performance.vo.pc.IntegralTruckVO;
import com.clx.user.vo.app.driver.truck.DriverTruckAppVo;
import com.clx.user.vo.feign.DriverInfoFeignVo;
import com.msl.common.utils.DateUtils;
import com.msl.user.data.UserSessionData;
import com.msl.user.utils.TokenUtil;
import lombok.extern.slf4j.Slf4j;
......@@ -159,8 +160,8 @@ public class IntegralTruckServiceImpl implements IntegralTruckService {
@Override
public IPage<IntegralTruckVO> driverPageTruckRank(DriverPageIntegralTruckRankParam param) {
String time = LocalDateTimeUtils.formatTime(LocalDateTimeUtils.getStartWeek().minusDays(7));
//String time = LocalDateTimeUtils.formatTime(LocalDateTimeUtils.getStartWeek().minusDays(7));
String time = LocalDateTimeUtils.formatTime(LocalDateTimeUtils.getStartWeek().minusDays(0));
UserSessionData loginUserInfo = TokenUtil.getLoginUserInfo();
Long userNo = loginUserInfo.getUserNo();
......@@ -170,8 +171,10 @@ public class IntegralTruckServiceImpl implements IntegralTruckService {
List<String> truckNoList = driverTruckList.stream().map(item -> item.getTruckNo()).collect(Collectors.toList());
param.setTruckNoList(truckNoList);
param.setTime(LocalDateTimeUtils.formatTime(LocalDateTimeUtils.getStartWeek()));
param.setTime(DateUtils.formatDateTime(LocalDateTime.now()).get());
/* param.setTime(LocalDateTimeUtils.formatTime(LocalDateTimeUtils.getStartWeek()));*/
param.setStatisticsDate(time);
IPage<IntegralTruckVO> page = integralTruckDao.driverPageTruckRank(param);
truckNoList = page.getRecords().stream().map(item -> item.getTruckNo()).collect(Collectors.toList());
......
......@@ -21,6 +21,7 @@ import org.springframework.stereotype.Service;
import java.time.LocalDateTime;
import java.util.List;
import java.util.Objects;
@Slf4j
@Service
......@@ -56,7 +57,7 @@ public class TraceMonitorServiceImpl implements TraceMonitorService {
Result<TruckOwnerInfoVO> result = truckFeign.getTruckOwnerInfo(
param.getTruckNo());
log.info("查询车辆车主信息,车牌号:{},结果:{}",param.getTruckNo(),result);
if(!result.succeed()){
if(!result.succeed() || Objects.isNull(result.getData())){
throw new ServiceSystemException(ResultEnum.DATA_NOT_FIND,"未查询到车辆车主信息");
}
long userNo = result.getData().getUserNo();
......
package com.clx.performance.service.impl.trace;
import com.clx.performance.dao.OrderChildDao;
import com.clx.performance.dao.vehiclewarn.VehicleWarnChildDao;
import com.clx.performance.dto.zjxl.TruckTraceDTO;
import com.clx.performance.enums.ResultEnum;
import com.clx.performance.enums.vehiclewarn.VehicleWarnChildEnum;
import com.clx.performance.esplus.mapper.TruckTraceESPlusMapper;
import com.clx.performance.esplus.model.TruckTraceESPlus;
import com.clx.performance.model.OrderChild;
import com.clx.performance.model.vehiclewarn.VehicleWarnChild;
import com.clx.performance.param.mq.trace.TruckTraceSyncMqParam;
import com.clx.performance.service.trace.TruckTraceMqHandlerService;
import com.clx.performance.utils.LocalDateTimeUtils;
import com.clx.performance.utils.zjxl.ZjxlGpsService;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
......@@ -29,11 +21,6 @@ public class TruckTraceMqHandlerServiceImpl implements TruckTraceMqHandlerServic
@Autowired
private ZjxlGpsService zjxlGpsService;
@Autowired
private VehicleWarnChildDao vehicleWarnChildDao;
@Autowired
private OrderChildDao orderChildDao;
@Autowired
private TruckTraceESPlusMapper truckTraceESPlusMapper;
......@@ -42,21 +29,6 @@ public class TruckTraceMqHandlerServiceImpl implements TruckTraceMqHandlerServic
@Override
public void truckTracSync(TruckTraceSyncMqParam mq) {
if (StringUtils.isNotBlank(mq.getChildNo())) {
VehicleWarnChild vehicleWarnChild = vehicleWarnChildDao.findByChildNo(mq.getChildNo()).orElseThrow(ResultEnum.DATA_NOT_FIND);
OrderChild orderChild = orderChildDao.getByChildNo(mq.getChildNo()).orElseThrow(ResultEnum.DATA_NOT_FIND);
if (orderChild.getFinishTime() != null) {
vehicleWarnChild.setTraceStatus(VehicleWarnChildEnum.TraceStatus.DISABLE.getCode());
}
vehicleWarnChild.setTraceTime(LocalDateTimeUtils.parseTime(mq.getEndTime()));
// 更新同步时间
if (StringUtils.isNotBlank(mq.getChildNo())) {
vehicleWarnChildDao.updateTraceTime(vehicleWarnChild);
}
}
List<TruckTraceDTO> list = zjxlGpsService.getTruckTrace(mq.getTruckNo(), mq.getBeginTime(), mq.getEndTime());
if (list.isEmpty()) {return;}
......
......@@ -55,16 +55,24 @@ public class TruckTraceServiceImpl implements TruckTraceService {
// 停留时长计算
Integer parkIdx = null;
for (int i=0; i<traceList.size(); i++){
if (traceList.get(i).getSpeed() == null){continue;}
if (traceList.get(i).getSpeed().compareTo(new BigDecimal(PARK_SPEED)) < 0){
parkIdx = i;
if (parkIdx == null) {parkIdx = i;}
}
else {
if (parkIdx == null) {continue;}
long stayTime = 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));
parkIdx = null;
}
}
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();
traceList.get(parkIdx).setStayTime(new BigDecimal(stayTime).divide(new BigDecimal(60), 1, RoundingMode.HALF_UP));
}
return traceList;
}
......@@ -82,20 +90,27 @@ public class TruckTraceServiceImpl implements TruckTraceService {
// 停留时长计算
Integer parkIdx = null;
for (int i=0; i<traceList.size(); i++){
if (traceList.get(i).getSpeed() == null){continue;}
if (traceList.get(i).getSpeed().compareTo(new BigDecimal(PARK_SPEED)) < 0){
parkIdx = i;
if (parkIdx == null) {parkIdx = i;}
}
else {
if (parkIdx == null) {continue;}
long stayTime = 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));
parkIdx = null;
}
}
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();
traceList.get(parkIdx).setStayTime(new BigDecimal(stayTime).divide(new BigDecimal(60), 1, RoundingMode.HALF_UP));
}
return traceList;
}
@Override
public void truckTraceSave(TruckTraceAddParam param){
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论