| | |
| | | package com.ruoyi.system.service.impl; |
| | | |
| | | import com.ruoyi.common.utils.PlateNumberExtractor; |
| | | import com.ruoyi.common.utils.http.HttpUtils; |
| | | import com.ruoyi.system.domain.*; |
| | | import com.ruoyi.system.service.IGpsCollectService; |
| | | import com.ruoyi.system.config.GpsServiceConfig; |
| | | import com.ruoyi.common.utils.MD5Util; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.web.client.RestTemplate; |
| | | import org.springframework.http.HttpEntity; |
| | |
| | | /** |
| | | * GPS采集服务实现 |
| | | */ |
| | | @Slf4j |
| | | @Service |
| | | public class GpsCollectServiceImpl implements IGpsCollectService { |
| | | |
| | |
| | | response.setSuccess(true); |
| | | response.setMessage("登录成功"); |
| | | response.setToken(jsonResult.getString("token")); |
| | | response.setServerid(jsonResult.getInteger("serverid")); |
| | | break; |
| | | case -1: |
| | | response.setSuccess(false); |
| | |
| | | if (loginResponse.isSuccess()) { |
| | | //将token写入gspconfig |
| | | token = loginResponse.getToken(); |
| | | Integer serviceid = loginResponse.getServerid(); |
| | | //getTokenExpireTime 这个是没有的 需要自己计算,当前时间+23小时 |
| | | Date expireTime = DateUtils.addHours(new Date(), 23); |
| | | gpsConfigService.updateToken("gps51", token, expireTime); |
| | | gpsConfigService.updateToken("gps51", token,serviceid, expireTime); |
| | | System.out.println("GPS系统登录成功,token已更新"); |
| | | return token; |
| | | } else { |
| | |
| | | private String extractPlateNumber(String deviceName, String remark) { |
| | | // 这里可以根据实际情况实现车牌号提取逻辑 |
| | | // 例如:从字符串中匹配车牌号格式 |
| | | //aaxx粤VSX120 |
| | | //在这里提取 粤VSX120 |
| | | |
| | | if (StringUtils.isNotEmpty(deviceName)) { |
| | | String plateNo =PlateNumberExtractor.extractPlateNumber(deviceName); |
| | | if (plateNo != null) { |
| | | return plateNo; |
| | | } |
| | | return deviceName; |
| | | } |
| | | if (StringUtils.isNotEmpty(remark)) { |
| | | String plateNo =PlateNumberExtractor.extractPlateNumber(remark); |
| | | if (plateNo != null) { |
| | | return plateNo; |
| | | } |
| | | return remark; |
| | | } |
| | | return null; |
| | |
| | | |
| | | String username = config.getUsername(); |
| | | // 构建请求URL |
| | | String url = config.getDomain() + "/webapi?action=querymonitorlist&token=" + token; |
| | | String url = config.getDomain() + "/webapi?action=querymonitorlist&token=" + token+"&serverid="+config.getServerid(); |
| | | Map<String, String> params = new HashMap<>(); |
| | | params.put("username", username); |
| | | |
| | |
| | | System.out.println("token获取成功!"+token); |
| | | |
| | | // 构建请求URL |
| | | String url = config.getDomain() + "/webapi?action=lastposition&token="+token; |
| | | String url = config.getDomain() + "/webapi?action=lastposition&token="+token+"&serverid="+config.getServerid(); |
| | | System.out.println("请求URL:"+url); |
| | | |
| | | // 构建请求参数 |
| | |
| | | // 解析位置记录列表 |
| | | JSONArray recordsArray = jsonResult.getJSONArray("records"); |
| | | List<GpsLastPosition> records = new ArrayList<>(); |
| | | |
| | | log.info("recordsArray length:{}",recordsArray.size()); |
| | | for (int i = 0; i < recordsArray.size(); i++) { |
| | | JSONObject recordJson = recordsArray.getJSONObject(i); |
| | | GpsLastPosition record = new GpsLastPosition(); |
| | |
| | | System.out.println("Token获取成功: " + token); |
| | | |
| | | // 构建请求URL |
| | | String url = config.getDomain() + "/webapi?action=querytracks&token=" + token; |
| | | String url = config.getDomain() + "/webapi?action=querytracks&token=" + token+"&serverid="+config.getServerid(); |
| | | System.out.println("请求URL: " + url); |
| | | |
| | | // 构建请求参数 |
| | |
| | | response.setDeviceid(jsonResult.getString("deviceid")); |
| | | |
| | | if (response.getStatus() == 0) { |
| | | |
| | | if(jsonResult.getJSONObject("result")==null) |
| | | { |
| | | System.err.println("查询轨迹失败,轨迹记录为空"); |
| | | GpsTrackQueryResponse responseErr = new GpsTrackQueryResponse(); |
| | | responseErr.setStatus(-1); |
| | | responseErr.setCause("轨迹记录为空"); |
| | | return responseErr; |
| | | } |
| | | |
| | | // 解析轨迹记录列表 |
| | | JSONArray recordsArray = jsonResult.getJSONArray("records"); |