|
|
@@ -68,30 +68,26 @@ public class TrackLogServiceImpl extends ServiceImpl<TrackLogMapper, TrackLog> i
|
|
|
map.put("token", key.getToken());
|
|
|
map.put("cid", key.getCid());
|
|
|
map.put("srt", key.getSrt());
|
|
|
- map.put("vclN", trackLog.getPlateNo());
|
|
|
- map.put("vco", "2");
|
|
|
+ map.put("vnos", trackLog.getPlateNo() + "_" + trackLog.getColor());
|
|
|
|
|
|
DataExchangeService des = new DataExchangeService(5000, 8000);
|
|
|
String res = des.postHttps(LandConst.TRACK_LOCATION_URL, map);
|
|
|
- System.out.println("RES::" + res);
|
|
|
trackLog.setDetail(res);
|
|
|
|
|
|
JSONObject result = getData(res);
|
|
|
// 处理数据
|
|
|
- JSONObject temp = result.getJSONObject("result");
|
|
|
+ JSONObject temp = result.getJSONObject("result").getJSONObject("firstVcl");
|
|
|
|
|
|
- BigDecimal divisor = new BigDecimal("600000");
|
|
|
- BigDecimal longitude = new BigDecimal(temp.getString("lon")).divide(divisor, 6, RoundingMode.HALF_UP);
|
|
|
- BigDecimal latitude = new BigDecimal(temp.getString("lat")).divide(divisor, 6, RoundingMode.HALF_UP);
|
|
|
List<Double> location = new ArrayList<>();
|
|
|
- location.add(longitude.doubleValue());
|
|
|
- location.add(latitude.doubleValue());
|
|
|
+ location.add(dealGrid(temp.getString("lon")));
|
|
|
+ location.add(dealGrid(temp.getString("lat")));
|
|
|
|
|
|
data.put("location", location);
|
|
|
data.put("address", temp.getString("adr"));
|
|
|
data.put("time", temp.getString("utc"));
|
|
|
data.put("speed", temp.getString("spd"));
|
|
|
data.put("mileage", temp.getString("mil"));
|
|
|
+ data.put("distance", temp.getString("runDistance"));
|
|
|
} catch (Exception e) {
|
|
|
throw new RuntimeException("获取数据失败:" + e.getMessage());
|
|
|
}
|
|
|
@@ -105,41 +101,58 @@ public class TrackLogServiceImpl extends ServiceImpl<TrackLogMapper, TrackLog> i
|
|
|
|
|
|
@Override
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
- public List<List<Double>> track(TrackLog trackLog) {
|
|
|
+ public Map<String, Object> track(TrackLog trackLog) {
|
|
|
TrackKey key = CacheUtil.get(LandConst.LAND_CACHE, LandConst.TRACK_TOKEN, trackLog.getTenantId(), TrackKey.class, false);
|
|
|
if (ObjectUtil.isEmpty(key)) {
|
|
|
throw new RuntimeException("获取请求token失败");
|
|
|
}
|
|
|
|
|
|
- List<List<Double>> data = new ArrayList<>();
|
|
|
+ Map<String, Object> data = new HashMap<>();
|
|
|
try {
|
|
|
Map<String, String> map = new HashMap<>(7);
|
|
|
map.put("token", key.getToken());
|
|
|
map.put("cid", key.getCid());
|
|
|
map.put("srt", key.getSrt());
|
|
|
map.put("vclN", trackLog.getPlateNo());
|
|
|
- map.put("vco", "2");
|
|
|
+ map.put("vco", trackLog.getColor());
|
|
|
map.put("qryBtm", getInitDay());
|
|
|
map.put("qryEtm", DateUtil.formatDateTime(new Date()));
|
|
|
|
|
|
DataExchangeService des = new DataExchangeService(5000, 8000);
|
|
|
String res = des.postHttps(LandConst.TRACK_TRACK_URL, map);
|
|
|
- System.out.println("RES::" + res);
|
|
|
trackLog.setDetail(res);
|
|
|
|
|
|
JSONObject result = getData(res);
|
|
|
// 处理数据
|
|
|
- JSONArray array = result.getJSONObject("result").getJSONArray("trackArray");
|
|
|
- for (Object obj : array) {
|
|
|
+ JSONArray trackJsonArray = result.getJSONObject("result").getJSONArray("trackArray");
|
|
|
+ List<List<Double>> trackArray = new ArrayList<>();
|
|
|
+ for (Object obj : trackJsonArray) {
|
|
|
JSONObject temp = (JSONObject) obj;
|
|
|
- BigDecimal divisor = new BigDecimal("600000");
|
|
|
- BigDecimal longitude = new BigDecimal(temp.getString("lon")).divide(divisor, 6, RoundingMode.HALF_UP);
|
|
|
- BigDecimal latitude = new BigDecimal(temp.getString("lat")).divide(divisor, 6, RoundingMode.HALF_UP);
|
|
|
List<Double> tempList = new ArrayList<>();
|
|
|
- tempList.add(longitude.doubleValue());
|
|
|
- tempList.add(latitude.doubleValue());
|
|
|
- data.add(tempList);
|
|
|
+ tempList.add(dealGrid(temp.getString("lon")));
|
|
|
+ tempList.add(dealGrid(temp.getString("lat")));
|
|
|
+ trackArray.add(tempList);
|
|
|
}
|
|
|
+ data.put("trackArray", trackArray);
|
|
|
+
|
|
|
+ JSONArray parkJsonArray = result.getJSONObject("result").getJSONArray("parkArray");
|
|
|
+ List<Map<String, Object>> parkArray = new ArrayList<>();
|
|
|
+ for (Object obj : parkJsonArray) {
|
|
|
+ JSONObject temp = (JSONObject) obj;
|
|
|
+
|
|
|
+ List<Double> tempList = new ArrayList<>();
|
|
|
+ tempList.add(dealGrid(temp.getString("parkLon")));
|
|
|
+ tempList.add(dealGrid(temp.getString("parkLat")));
|
|
|
+
|
|
|
+ Map<String, Object> tempMap = new HashMap<>();
|
|
|
+ tempMap.put("location", tempList);
|
|
|
+ tempMap.put("address", temp.getString("parkAdr"));
|
|
|
+ tempMap.put("bte", temp.getString("parkBte"));
|
|
|
+ tempMap.put("ete", temp.getString("parkEte"));
|
|
|
+ tempMap.put("duration", temp.getString("parkMins"));
|
|
|
+ parkArray.add(tempMap);
|
|
|
+ }
|
|
|
+ data.put("parkArray", parkArray);
|
|
|
} catch (Exception e) {
|
|
|
throw new RuntimeException("获取数据失败:" + e.getMessage());
|
|
|
}
|
|
|
@@ -159,6 +172,11 @@ public class TrackLogServiceImpl extends ServiceImpl<TrackLogMapper, TrackLog> i
|
|
|
return result;
|
|
|
}
|
|
|
|
|
|
+ private Double dealGrid(String grid) {
|
|
|
+ BigDecimal divisor = new BigDecimal("600000");
|
|
|
+ return new BigDecimal(grid).divide(divisor, 6, RoundingMode.HALF_UP).doubleValue();
|
|
|
+ }
|
|
|
+
|
|
|
private String getInitDay() {
|
|
|
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
|
|
|
Calendar calendar = Calendar.getInstance();
|