From 7298d5354963a88643a543b51b90192dc9fc934c Mon Sep 17 00:00:00 2001 From: doum <doum> Date: 星期四, 11 九月 2025 18:43:14 +0800 Subject: [PATCH] 最新版本541200007 --- server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/service/HKCarOpenService.java | 113 ++++++++++++++++++++++++++++++++++++++++++++++++-------- 1 files changed, 96 insertions(+), 17 deletions(-) diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/service/HKCarOpenService.java b/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/service/HKCarOpenService.java index 648f197..9873fe2 100644 --- a/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/service/HKCarOpenService.java +++ b/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/service/HKCarOpenService.java @@ -2,13 +2,13 @@ import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.TypeReference; + import com.doumee.core.haikang.model.HKConstants; import com.doumee.core.haikang.model.cars.BaseCarsPageResponse; import com.doumee.core.haikang.model.cars.BaseCarsResponse; + import com.doumee.core.haikang.model.cars.request.CarsAlarmListRequest; import com.doumee.core.haikang.model.cars.request.CarsDeviceRequest; import com.doumee.core.haikang.model.cars.request.CarsGpsRequest; - import com.doumee.core.haikang.model.cars.response.CarsDeviceDetaisResponse; - import com.doumee.core.haikang.model.cars.response.CarsDeviceResponse; - import com.doumee.core.haikang.model.cars.response.CarsGpsResponse; + import com.doumee.core.haikang.model.cars.response.*; import com.doumee.core.haikang.model.param.BaseListPageResponse; import com.doumee.core.haikang.model.param.BaseResponse; import com.doumee.core.haikang.model.param.respose.FindHomeAlarmInfoPageResponse; @@ -16,6 +16,7 @@ import com.doumee.core.utils.DateUtil; import com.google.common.collect.Maps; import org.apache.commons.lang3.StringUtils; + import org.apache.http.client.config.RequestConfig; import org.apache.http.client.methods.CloseableHttpResponse; import org.apache.http.client.methods.HttpGet; import org.apache.http.impl.client.CloseableHttpClient; @@ -34,6 +35,8 @@ private static final String DEFAULT_CHARSET = "UTF-8"; private static final String REGION_ID = "cn-hangzhou"; private static final String VERSION = "2.1.0"; + + public static List<CarsDeviceDetaisResponse> HK_CARS_LIST= null; public static String BASE_URL = "https://open.hikvisionauto.com:14021/v2/"; private static TreeMap<String, String> getBaseParams() { Map<String, String> params = Maps.newHashMap(); @@ -50,7 +53,6 @@ public static String sign(String accessSecret, TreeMap<String, String> params, HttpMethod method) throws Exception { String stringToSign = getStringToSign(params, method); - System.out.println("StringToSign = [" + stringToSign + "]"); javax.crypto.Mac mac = javax.crypto.Mac.getInstance("HmacSHA1"); mac.init(new javax.crypto.spec.SecretKeySpec(accessSecret.getBytes(DEFAULT_CHARSET), "HmacSHA1")); byte[] signData = mac.doFinal(stringToSign.getBytes(DEFAULT_CHARSET)); @@ -72,7 +74,15 @@ } public static void main(String[] args) { - getAllCarsDetais(); +// getAllCarsDetais(); + CarsAlarmListRequest param = new CarsAlarmListRequest(); + param.setStartTime(DateUtil.getPlusTime2(DateUtil.getStartOfDay(new Date()))); + param.setEndTime(DateUtil.getPlusTime2(DateUtil.getEndOfDay(new Date()))); + param.setPageNo(1); + param.setPageSize(100); + param.setDeviceCode("15954209015"); + BaseCarsPageResponse<CarsAlarmListResponse> data = getAlarmList(param); + System.out.println(JSONObject.toJSONString(data)); } public static List<CarsDeviceDetaisResponse> getAllCarsDetais() { @@ -82,7 +92,7 @@ List<String> cars = new ArrayList<>(); List<String> codes = new ArrayList<>(); for(CarsDeviceResponse model :data.getResults()){ -// System.out.println("=================杞︾墝鍙凤細"+model.getPlateNum()); + System.out.println(model.getTerminalID()+"=================杞︾墝鍙凤細"+model.getPlateNum()); cars.add(model.getPlateNum()); codes.add(model.getTerminalID()); CarsDeviceDetaisResponse t = new CarsDeviceDetaisResponse(); @@ -120,8 +130,43 @@ } for(CarsDeviceDetaisResponse m : list){ - System.out.println("=================杞︾墝鍙凤細"+m.getPlateNum()+" 鐘舵�侊細銆�"+m.getStatus()+"銆�"+" 浣嶇疆锛氥��"+m.getLongitude()+","+m.getLatitude()+"銆�"); + System.out.println("=================杞︾墝鍙凤細"+m.getPlateNum()+" 鐘舵�侊細銆�"+m.getTerminalID()+"銆�"+" 浣嶇疆锛氥��"+m.getLongitude()+","+m.getLatitude()+"銆�"); } + return list; + } + public static List<CarsAlarmResultListResponse> getAlarmEvemtList(List<CarsDeviceDetaisResponse> detaisResponses , Date date) { + List<CarsAlarmResultListResponse> list = new ArrayList<>(); + if(detaisResponses ==null || detaisResponses.size()==0){ + return list ; + } + CarsAlarmListRequest param = new CarsAlarmListRequest(); + param.setStartTime(DateUtil.getPlusTime2(DateUtil.getStartOfDay(date))); + param.setEndTime(DateUtil.getPlusTime2(DateUtil.getEndOfDay(date))); + param.setPageNo(1); + param.setPageSize(100); + for( CarsDeviceDetaisResponse de :detaisResponses ){ + param.setDeviceCode(de.getTerminalID()); + BaseCarsPageResponse<CarsAlarmListResponse> data = getAlarmList(param); + if(data!=null &&data.getResults()!=null){ + for(CarsAlarmListResponse model :data.getResults()){ + CarsAlarmResultListResponse tm = new CarsAlarmResultListResponse(); + tm.setTime(model.getTime()); + tm.setCarCode(de.getPlateNum()); + tm.setType(model.getType()); + tm.setSubType(model.getSubType()); + Date tmDate = DateUtil.fromStringToDate("yyyy-MM-dd HH:mm:ss", tm.getTime() ); + if(tmDate!=null){ + tm.setTimeStamp(tmDate.getTime()); + } + tm.setTitle(HKConstants.CarsEventType.getName(tm.getType(),tm.getSubType())); + list.add(tm); + } + } + } + Collections.sort(list, (o1, o2) -> { + return (int) (o2.getTimeStamp() - o1.getTimeStamp()); //鎸夋椂闂村�掑簭 + }); + System.out.println(JSONObject.toJSONString(list)); return list; } @@ -136,6 +181,8 @@ public static String sendRequest(String url,TreeMap<String, String> map){ try { + + map.put("random", System.currentTimeMillis()+""); StringBuilder sortQueryStringTmp = new StringBuilder(); for(Map.Entry<String, String> entry : map.entrySet()){ sortQueryStringTmp @@ -147,13 +194,19 @@ //涓庝笅鏂圭殑HttpGet瀵瑰簲锛岄噰鐢ㄧ殑鏄疕ttpMethod.GET String sign = sign(ACCESS_SECRET + "&", map, HttpMethod.GET); url += "?Signature=" + specialUrlEncode(sign) + sortQueryStringTmp.toString(); + RequestConfig requestConfig = RequestConfig.custom() + .setSocketTimeout(5000) // 璁剧疆璇诲彇瓒呮椂鏃堕棿锛堝崟浣嶏細姣锛� + .setConnectTimeout(5000) // 璁剧疆杩炴帴瓒呮椂鏃堕棿锛堝崟浣嶏細姣锛� + .build(); CloseableHttpClient httpClient = HttpClientBuilder.create().build(); //涓庝笂鏂圭殑HttpMethod.GET瀵瑰簲锛屼娇鐢℉ttpGet HttpGet httpDelete = new HttpGet(url); + httpDelete.setConfig(requestConfig); CloseableHttpResponse response = httpClient.execute(httpDelete); return EntityUtils.toString(response.getEntity()); }catch (Exception e){ e.printStackTrace(); + System.err.println(url); } return null; @@ -188,16 +241,21 @@ return null; } public static CarsGpsResponse getLatestGpsInfo(String deviceCode) { - String url = BASE_URL + "gps/latest/"; - TreeMap<String, String> BASE_PARAMS = getBaseParams(); - BASE_PARAMS.put("deviceCode", deviceCode);//璁惧鍨嬪彿绉橀挜 - String str = sendRequest(url,BASE_PARAMS); - TypeReference typeReference = - new TypeReference<BaseCarsResponse<CarsGpsResponse>>(){}; - BaseCarsResponse<CarsGpsResponse> result = JSONObject.parseObject(str, typeReference.getType()); - if(result!=null && Constants.equalsInteger(result.getStatus(),0)){ - return result.getData(); + try { + String url = BASE_URL + "gps/latest/"; + TreeMap<String, String> BASE_PARAMS = getBaseParams(); + BASE_PARAMS.put("deviceCode", deviceCode);//璁惧鍨嬪彿绉橀挜 + String str = sendRequest(url,BASE_PARAMS); + TypeReference typeReference = + new TypeReference<BaseCarsResponse<CarsGpsResponse>>(){}; + BaseCarsResponse<CarsGpsResponse> result = JSONObject.parseObject(str, typeReference.getType()); + if(result!=null && Constants.equalsInteger(result.getStatus(),0)){ + return result.getData(); + } + }catch (Exception e){ + e.printStackTrace(); } + return null; } public static Map<String,Integer> getDeviceStatusList(List<String> code) { @@ -220,7 +278,7 @@ String url = BASE_URL + "device/list/"; TreeMap<String, String> BASE_PARAMS = getBaseParams(); if(StringUtils.isNotBlank(param.getProductKey())){ - BASE_PARAMS.put("productKey", "");//璁惧鍨嬪彿绉橀挜 + BASE_PARAMS.put("productKey", param.getProductKey());//璁惧鍨嬪彿绉橀挜 } BASE_PARAMS.put("pageSize",Constants.equalsInteger(param.getPageSize(),0)? "100":param.getPageSize().toString());//椤甸潰澶у皬 BASE_PARAMS.put("pageNo", Constants.equalsInteger(param.getPageNo(),0)? "1":param.getPageNo().toString());//褰撳墠椤� @@ -233,4 +291,25 @@ } return null; } + public static BaseCarsPageResponse<CarsAlarmListResponse> getAlarmList(CarsAlarmListRequest param) { + String url = BASE_URL + "alarm/list/"; + TreeMap<String, String> BASE_PARAMS = getBaseParams(); + if(StringUtils.isNotBlank(param.getStartTime())){ + BASE_PARAMS.put("startTime", param.getStartTime()); + } + if(StringUtils.isNotBlank(param.getEndTime())){ + BASE_PARAMS.put("endTime", param.getEndTime()); + } + BASE_PARAMS.put("deviceCode", param.getDeviceCode()); + BASE_PARAMS.put("pageSize",Constants.equalsInteger(param.getPageSize(),0)? "100":param.getPageSize().toString());//椤甸潰澶у皬 + BASE_PARAMS.put("pageNo", Constants.equalsInteger(param.getPageNo(),0)? "1":param.getPageNo().toString());//褰撳墠椤� + String str = sendRequest(url,BASE_PARAMS); + TypeReference typeReference = + new TypeReference<BaseCarsResponse<BaseCarsPageResponse<CarsAlarmListResponse>>>(){}; + BaseCarsResponse<BaseCarsPageResponse<CarsAlarmListResponse>> result = JSONObject.parseObject(str, typeReference.getType()); + if(result!=null && Constants.equalsInteger(result.getStatus(),0)){ + return result.getData(); + } + return null; + } } \ No newline at end of file -- Gitblit v1.9.3