From a8553f9ef7e165b6348243af91caad1a987f8f9c Mon Sep 17 00:00:00 2001
From: wzp <2040239371@qq.com>
Date: 星期三, 03 九月 2025 17:49:52 +0800
Subject: [PATCH] fix: 修复轨迹查询报错问题。 更换了接口地址和增加请求参数

---
 ruoyi-system/src/main/java/com/ruoyi/system/service/impl/CmsGpsCollectServiceImpl.java |   80 ++++++++++++++++++++++++++++++++++++++-
 1 files changed, 77 insertions(+), 3 deletions(-)

diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/CmsGpsCollectServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/CmsGpsCollectServiceImpl.java
index 493f47d..2c6b036 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/CmsGpsCollectServiceImpl.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/CmsGpsCollectServiceImpl.java
@@ -6,6 +6,7 @@
 import com.ruoyi.system.domain.CmsVehicleDeviceResponse;
 import com.ruoyi.system.domain.CmsVehicleDeviceListResponse;
 import com.ruoyi.system.domain.CmsVehicleLocationResponse;
+import com.ruoyi.system.domain.CmsTrackDetailResponse;
 import com.ruoyi.system.domain.SysGpsConfig;
 import com.ruoyi.system.service.ICmsGpsCollectService;
 import com.ruoyi.system.service.IGpsConfigService;
@@ -15,6 +16,8 @@
 import org.springframework.stereotype.Service;
 import com.alibaba.fastjson.JSONObject;
 import java.util.Date;
+import java.net.URLEncoder;
+import java.nio.charset.StandardCharsets;
 
 /**
  * CMS GPS閲囬泦鏈嶅姟瀹炵幇
@@ -115,13 +118,17 @@
             }
 
             // 鏋勫缓璇锋眰URL
-            String url = baseUrlConfig.getDomain() + "/StandardApiAction_getDeviceByVehicle.action?jsession=" + baseUrlConfig.getToken();
+            StringBuilder url = new StringBuilder();
+            url.append(baseUrlConfig.getDomain())
+               .append("/StandardApiAction_getDeviceByVehicle.action?jsession=")
+               .append(baseUrlConfig.getToken());
+
             if (vehicleId != null && !vehicleId.isEmpty()) {
-                url += "&vehiIdno=" + vehicleId;
+                url.append("&vehiIdno=").append(vehicleId);
             }
 
             // 鍙戦�佹煡璇㈣姹�
-            String response = HttpUtil.get(url,null);
+            String response = HttpUtils.sendGet(url.toString());
             
             // 瑙f瀽鍝嶅簲
             CmsVehicleDeviceListResponse deviceListResponse = JSONObject.parseObject(response, CmsVehicleDeviceListResponse.class);
@@ -196,4 +203,71 @@
             throw new RuntimeException("鑾峰彇杞﹁締浣嶇疆淇℃伅寮傚父锛�" + e.getMessage());
         }
     }
+
+    @Override
+    public CmsTrackDetailResponse queryTrackDetail(String devIdno, String begintime, String endtime,
+            Double distance, Integer parkTime, Integer geoaddress, Integer currentPage,
+            Integer pageRecords, Integer toMap) {
+        
+        try {
+            // 浠庢暟鎹簱鑾峰彇CMS閰嶇疆
+            SysGpsConfig baseUrlConfig = gpsConfigService.selectGpsConfigByKey("gpscms");
+            if (baseUrlConfig == null) {
+                throw new RuntimeException("鏈厤缃瓹MS绯荤粺鍦板潃");
+            }
+
+            // 妫�鏌oken鏄惁杩囨湡
+            if (baseUrlConfig.getTokenExpireTime() == null || 
+                baseUrlConfig.getTokenExpireTime().before(new Date())) {
+                // token杩囨湡锛岄噸鏂扮櫥褰�
+                login(baseUrlConfig.getUsername(), baseUrlConfig.getPassword());
+                baseUrlConfig = gpsConfigService.selectGpsConfigByKey("gpscms");
+            }
+
+            // 鏋勫缓璇锋眰URL
+            StringBuilder url = new StringBuilder(baseUrlConfig.getDomain())
+               .append("/StandardApiAction_queryTrackDetail.action?jsession=")
+               .append(baseUrlConfig.getToken())
+               .append("&devIdno=").append(devIdno)
+               .append("&begintime=").append(begintime)
+               .append("&endtime=").append(endtime);
+
+            // 娣诲姞鍙�夊弬鏁�
+            if (distance != null) {
+                url.append("&distance=").append(distance);
+            }
+            if (parkTime != null) {
+                url.append("&parkTime=").append(parkTime);
+            }
+            if (geoaddress != null) {
+                url.append("&geoaddress=").append(geoaddress);
+            }
+            if (currentPage != null) {
+                url.append("&currentPage=").append(currentPage);
+            }
+            if (pageRecords != null) {
+                url.append("&pageRecords=").append(pageRecords);
+            }
+            if (toMap != null) {
+                url.append("&toMap=").append(toMap);
+            }
+
+            // 鍙戦�佹煡璇㈣姹�
+            String response = HttpUtils.sendGet(url.toString());
+            
+            // 瑙f瀽鍝嶅簲
+            CmsTrackDetailResponse trackResponse = JSONObject.parseObject(response, CmsTrackDetailResponse.class);
+            
+            if (trackResponse.getResult() == 0) {
+                log.info("鑾峰彇璁惧鍘嗗彶杞ㄨ抗鎴愬姛锛岃澶囧彿锛歿}", devIdno);
+            } else {
+                log.error("鑾峰彇璁惧鍘嗗彶杞ㄨ抗澶辫触锛岃澶囧彿锛歿}", devIdno);
+            }
+            
+            return trackResponse;
+        } catch (Exception e) {
+            log.error("鑾峰彇璁惧鍘嗗彶杞ㄨ抗寮傚父锛岃澶囧彿锛歿}", devIdno, e);
+            throw new RuntimeException("鑾峰彇璁惧鍘嗗彶杞ㄨ抗寮傚父锛�" + e.getMessage());
+        }
+    }
 } 
\ No newline at end of file

--
Gitblit v1.9.1