wlzboy
9 小时以前 5f2ee03958a1a16dc27195c76ea7cffb422c95d1
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/GpsCollectServiceImpl.java
@@ -1,10 +1,12 @@
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;
@@ -30,6 +32,7 @@
/**
 * GPS采集服务实现
 */
@Slf4j
@Service
public class GpsCollectServiceImpl implements IGpsCollectService {
@@ -78,6 +81,7 @@
                    response.setSuccess(true);
                    response.setMessage("登录成功");
                    response.setToken(jsonResult.getString("token"));
                    response.setServerid(jsonResult.getInteger("serverid"));
                    break;
                case -1:
                    response.setSuccess(false);
@@ -166,9 +170,10 @@
                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 {
@@ -254,10 +259,21 @@
    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;
@@ -285,7 +301,7 @@
        
        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);
        
@@ -381,7 +397,7 @@
        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);
        // 构建请求参数
@@ -428,7 +444,7 @@
                // 解析位置记录列表
                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();
@@ -568,7 +584,7 @@
            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);
            
            // 构建请求参数
@@ -603,15 +619,6 @@
            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");