Browse Source

车载心跳监测接口定义修改

gao.qiang 12 hours ago
parent
commit
988a7c75c4

+ 9 - 1
vehicle-sdk/src/main/java/com/ozs/controller/upload/GeoHazardMonitorTokenController.java

@@ -91,8 +91,10 @@ import org.springframework.web.bind.annotation.RestController;
 import javax.annotation.Resource;
 import javax.servlet.http.HttpServletRequest;
 import java.text.SimpleDateFormat;
+import java.time.Instant;
 import java.time.LocalDateTime;
 import java.time.format.DateTimeFormatter;
+import java.time.temporal.ChronoUnit;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Calendar;
@@ -2773,7 +2775,13 @@ public class GeoHazardMonitorTokenController {
             if (baseTerminalLogService.save(baseTerminalLog) && update) {
                 if (!ObjectUtils.isEmpty(baseTerminalLog.getTrainNum()) && !ObjectUtils.isEmpty(baseTerminalLog.getFrontTrainNum())) {
                     VehiclePosition vehiclePosition = vehiclePositionService.getOne(new LambdaQueryWrapper<VehiclePosition>().eq(VehiclePosition::getVehicleCode, baseTerminalLog.getTrainNum()).orderByDesc(VehiclePosition::getCreateTime).last("limit 1"));
-                    VehiclePosition positionServiceOne = vehiclePositionService.getOne(new LambdaQueryWrapper<VehiclePosition>().eq(VehiclePosition::getVehicleCode, baseTerminalLog.getFrontTrainNum()).eq(VehiclePosition::getLineDir, vehiclePosition.getLineDir()).orderByDesc(VehiclePosition::getCreateTime).last("limit 1"));
+                    // 获取当前时间的前5分钟
+                    Date fiveMinutesAgo = Date.from(Instant.now().minus(5, ChronoUnit.MINUTES));
+                    VehiclePosition positionServiceOne = vehiclePositionService.getOne(new LambdaQueryWrapper<VehiclePosition>()
+                            .eq(VehiclePosition::getVehicleCode, baseTerminalLog.getFrontTrainNum())
+                            .eq(VehiclePosition::getLineDir, vehiclePosition.getLineDir())
+                            .ge(VehiclePosition::getCreateTime, fiveMinutesAgo) // 添加条件:createTime大于当前时间前5分钟
+                            .orderByDesc(VehiclePosition::getCreateTime).last("limit 1"));
                     Map<String, Object> map = new HashMap<>();
                     if (!ObjectUtils.isEmpty(positionServiceOne) && !ObjectUtils.isEmpty(vehiclePosition)) {
                         if ((vehiclePosition.getLineDir() == 1 && positionServiceOne.getTravelMile() >= vehiclePosition.getTravelMile()) ||