From 1ad5e3d97eb99662b08c0f5acff34875deca04c1 Mon Sep 17 00:00:00 2001
From: Pu Zhibing <393733352@qq.com>
Date: 星期二, 06 五月 2025 17:27:12 +0800
Subject: [PATCH] 修改功能

---
 ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/WarnServiceImpl.java |   35 +++++++++++++++++++++++++++++++----
 1 files changed, 31 insertions(+), 4 deletions(-)

diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/WarnServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/WarnServiceImpl.java
index 2b0bff9..db0db5d 100644
--- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/WarnServiceImpl.java
+++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/WarnServiceImpl.java
@@ -86,9 +86,13 @@
 			warn.setEndTime(LocalDateTime.ofInstant(Instant.ofEpochMilli(vo.getCreateTime() * 1000), ZoneOffset.ofHours(8)).format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
 			warn.setWarnType(WarnType.getWarnTypeName(vo.getWarnType()));
 			warn.setWarnNumber(1);
-			warn.setSpeed(new BigDecimal(vo.getSpeed()));
-			warn.setLongitude(new BigDecimal(vo.getLongitude()).divide(new BigDecimal(1000000)).toString());
-			warn.setLatitude(new BigDecimal(vo.getLatitude()).divide(new BigDecimal(1000000)).toString());
+			warn.setSpeed(null == vo.getSpeed() ? BigDecimal.ZERO : new BigDecimal(vo.getSpeed()));
+			if(null != vo.getLongitude()){
+				warn.setLongitude(new BigDecimal(vo.getLongitude()).divide(new BigDecimal(1000000)).toString());
+			}
+			if(null != vo.getLatitude()){
+				warn.setLatitude(new BigDecimal(vo.getLatitude()).divide(new BigDecimal(1000000)).toString());
+			}
 			Map<String, String> geocode = null;
 			try {
 				geocode = GDMapGeocodingUtil.geocode(warn.getLongitude(), warn.getLatitude());
@@ -112,6 +116,7 @@
 			}
 			warn.setCreateTime(LocalDateTime.now());
 			warn.setObjectId(vo.getInfoId());
+			warn.setVehicleNumber(vo.getVehicleNo());
 			warns.add(warn);
 		}
 		if (warns.size() > 0) {
@@ -119,6 +124,28 @@
 		}
 	}
 	
+	
+	/**
+	 * 定时保存车辆id和司机id
+	 */
+	@Override
+	public void taskSaveCarIdAndDriverId() {
+		List<Warn> list = this.list(new LambdaQueryWrapper<Warn>().isNull(Warn::getCarId).or().isNull(Warn::getDriverId));
+		List<Car> carList = carService.list();
+		List<Driver> driverList = driverService.list(new LambdaQueryWrapper<Driver>().eq(Driver::getStatus, 1));
+		for (Warn warn : list) {
+			Optional<Driver> optional = driverList.stream().filter(s -> s.getVehicleNumber().equals(warn.getVehicleNumber())).findFirst();
+			if (optional.isPresent()) {
+				warn.setDriverId(optional.get().getId());
+				this.updateById(warn);
+			}
+			Optional<Car> optional1 = carList.stream().filter(s -> s.getVehicleNumber().equals(warn.getVehicleNumber())).findFirst();
+			if (optional1.isPresent()) {
+				warn.setCarId(optional1.get().getId());
+				this.updateById(warn);
+			}
+		}
+	}
 	
 	/**
 	 * 定时任务修改预警信息处理结果
@@ -158,7 +185,7 @@
 	 */
 	@Override
 	public PageInfo<CarWarnListResp> getCarWarnList(CarWarnListReq carWarnListReq) {
-		PageInfo<CarWarnListResp> pageInfo = new PageInfo<>(carWarnListReq.getPageCurr(), carWarnListReq.getPageCurr());
+		PageInfo<CarWarnListResp> pageInfo = new PageInfo<>(carWarnListReq.getPageCurr(), carWarnListReq.getPageSize());
 		return this.baseMapper.getCarWarnList(pageInfo, carWarnListReq);
 	}
 	

--
Gitblit v1.7.1