Compare commits

..

No commits in common. "82c547d77886b86e4a8b08bb0a6aca559d26efff" and "9c830759b349652d88280dabc7c5245ba9b96e21" have entirely different histories.

4 changed files with 13 additions and 27 deletions

View File

@ -50,7 +50,4 @@ public class DeviceCacheInfo {
// 最后在线时间 // 最后在线时间
private LocalDateTime lastOnlineTime; private LocalDateTime lastOnlineTime;
// 定位类型
private String locationType;
} }

View File

@ -361,9 +361,6 @@ public class DeviceIotServiceImpl implements DeviceIotService {
if (device.getSoftwareVersion() != null) { if (device.getSoftwareVersion() != null) {
info.setSoftwareVersion(device.getSoftwareVersion()); info.setSoftwareVersion(device.getSoftwareVersion());
} }
if (device.getLocationType() != null) {
info.setLocationType(device.getLocationType());
}
String key = CacheConstants.DEVICE_CACHE_INFO + device.getMac(); String key = CacheConstants.DEVICE_CACHE_INFO + device.getMac();
redisCache.setCacheObject(key, info); redisCache.setCacheObject(key, info);

View File

@ -134,9 +134,6 @@ public class DeviceUtil {
if (info.getSoftwareVersion() != null) { if (info.getSoftwareVersion() != null) {
device.setSoftwareVersion(info.getSoftwareVersion()); device.setSoftwareVersion(info.getSoftwareVersion());
} }
if (info.getLocationType() != null) {
device.setLocationType(info.getLocationType());
}
// 在线状态 // 在线状态
if (info.getOnlineStatus() != null) { if (info.getOnlineStatus() != null) {

View File

@ -488,34 +488,32 @@ public class OrderServiceImpl implements OrderService {
if (DeviceLocationType.DEVICE.getCode().equals(device.getLocationType())) { if (DeviceLocationType.DEVICE.getCode().equals(device.getLocationType())) {
LogParamHolder.set(LogParamHolder.DEVICE_LON, device.getLongitude()); LogParamHolder.set(LogParamHolder.DEVICE_LON, device.getLongitude());
LogParamHolder.set(LogParamHolder.DEVICE_LAT, device.getLatitude()); LogParamHolder.set(LogParamHolder.DEVICE_LAT, device.getLatitude());
} }
} }
} }
// 异步使用手机定位更新设备定位 // 异步使用手机定位更新设备定位
private void handleDeviceLocationAsync(DeviceVO device, BigDecimal lon, BigDecimal lat) { private void handleDeviceLocationAsync(DeviceVO device, BigDecimal lon, BigDecimal lat) {
if (device != null && device.getId() != null && StringUtils.isNotBlank(device.getMac()) && DeviceUtil.validLocation(lon, lat)) { if (device != null && device.getId() != null && DeviceUtil.isLowSatelliteSignal(device) && DeviceUtil.validLocation(lon, lat)) {
scheduledExecutorService.execute(() -> { scheduledExecutorService.execute(() -> {
device.setLongitude(lon); device.setLongitude(lon);
device.setLatitude(lat); device.setLatitude(lat);
device.setLocationType(DeviceLocationType.PHONE.getCode()); device.setLocationType(DeviceLocationType.PHONE.getCode());
device.setLastLocationTime(LocalDateTime.now()); device.setLastLocationTime(LocalDateTime.now());
// 若卫星信号弱则更新设备定位 // 更新设备定位
if (DeviceUtil.isLowSatelliteSignal(device)) { Device data = new Device();
Device data = new Device(); data.setId(device.getId());
data.setMac(device.getMac()); data.setLongitude(device.getLongitude());
data.setLongitude(device.getLongitude()); data.setLatitude(device.getLatitude());
data.setLatitude(device.getLatitude()); data.setLocationType(device.getLocationType());
data.setLocationType(device.getLocationType()); data.setLastLocationTime(LocalDateTime.now());
data.setLastLocationTime(LocalDateTime.now()); int rows = deviceService.updateDevice(data);
int rows = deviceIotService.updateIot(data); if (rows != 1) {
if (rows != 1) { log.error("通过手机定位修改设备定位失败deviceId={}", device.getId());
log.error("通过手机定位修改设备定位失败deviceMac={}", device.getMac());
}
} }
// 直接保存定位日志 // 转为定位日志
LocationLog locationLog = locationLogConverter.toPo(device); LocationLog locationLog = locationLogConverter.toPo(device);
if (locationLog == null) { if (locationLog == null) {
log.error("通过手机定位转换定位日志失败: {}", device.getMac()); log.error("通过手机定位转换定位日志失败: {}", device.getMac());
@ -656,10 +654,7 @@ public class OrderServiceImpl implements OrderService {
if (device == null) { if (device == null) {
return null; return null;
} }
// 设置日志参数
this.setLogParam(device); this.setLogParam(device);
// 处理设备位置
this.handleDeviceLocationAsync(device, dto.getLon(), dto.getLat());
// 查询运营区 // 查询运营区
AreaVO area = areaService.selectAreaById(order.getAreaId()); AreaVO area = areaService.selectAreaById(order.getAreaId());