From 4109495b9c51a4bbd8b0a7c3c69093909d2e33e1 Mon Sep 17 00:00:00 2001
From: Pu Zhibing <393733352@qq.com>
Date: 星期一, 07 四月 2025 18:55:05 +0800
Subject: [PATCH] 修改接口bug

---
 ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/CarServiceImpl.java |   24 ++++++++++++++++++------
 1 files changed, 18 insertions(+), 6 deletions(-)

diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/CarServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/CarServiceImpl.java
index 5931356..e4ec30f 100644
--- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/CarServiceImpl.java
+++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/CarServiceImpl.java
@@ -1,6 +1,7 @@
 package com.ruoyi.system.service.impl;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.ruoyi.common.core.web.page.PageInfo;
 import com.ruoyi.dataInterchange.api.feignClient.UPExgMsgRegisterClient;
@@ -121,22 +122,33 @@
 	public void taskUpdateCarStatus() {
 		List<Car> list = this.list();
 		for (Car car : list) {
+			LambdaUpdateWrapper<Car> updateWrapper = new LambdaUpdateWrapper<>();
 			GnssDataVo gnssDataVo = (GnssDataVo) redisTemplate.opsForValue().get("location:" + car.getVehicleNumber());
 			if (null == gnssDataVo) {
-				car.setStatus(1);
+				if (car.getStatus() == 1) {
+					updateWrapper.set(Car::getDownlineTime, LocalDateTime.now());
+				}
+				updateWrapper.set(Car::getStatus, 4);
+				this.update(updateWrapper);
 			} else {
 				String dateTime = gnssDataVo.getDate() + " " + gnssDataVo.getTime();
 				LocalDateTime localDateTime = LocalDateTime.parse(dateTime, DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
 				long second = localDateTime.toEpochSecond(ZoneOffset.ofHours(8));
 				if (System.currentTimeMillis() / 1000 > second + 60) {
-					car.setStatus(4);
+					if (car.getStatus() == 1) {
+						updateWrapper.set(Car::getDownlineTime, LocalDateTime.now());
+					}
+					updateWrapper.set(Car::getStatus, 4);
+					this.update(updateWrapper);
 				} else {
-					car.setStatus(1);
+					if (car.getStatus() != 1) {
+						updateWrapper.set(Car::getDownlineTime, null);
+						updateWrapper.set(Car::getOnlineTime, LocalDateTime.now());
+					}
+					updateWrapper.set(Car::getStatus, 1);
+					this.update(updateWrapper);
 				}
 			}
-		}
-		if (list.size() > 0) {
-			this.updateBatchById(list);
 		}
 	}
 }

--
Gitblit v1.7.1