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