| package com.doumee.core.haikang; | 
|   | 
| import com.alibaba.fastjson.JSONArray; | 
| import com.alibaba.fastjson.JSONObject; | 
| import com.hikvision.artemis.sdk.ArtemisHttpUtil; | 
| import org.slf4j.Logger; | 
| import org.slf4j.LoggerFactory; | 
|   | 
| import java.text.DateFormat; | 
| import java.text.ParseException; | 
| import java.text.SimpleDateFormat; | 
| import java.util.*; | 
|   | 
|   | 
| public class HKUtil { | 
|   | 
|     private static final Logger logger = LoggerFactory.getLogger(HKUtil.class); | 
|   | 
|     /** | 
|      * 请根据自己的appKey和appSecret更换static静态块中的三个参数. [1 host] | 
|      * 如果你选择的是和现场环境对接,host要修改为现场环境的ip,https端口默认为443,http端口默认为80.例如10.33.25.22:443 | 
|      * 或者10.33.25.22:80 appKey和appSecret请按照或得到的appKey和appSecret更改. TODO | 
|      * 调用前先要清楚接口传入的是什么,是传入json就用doPostStringArtemis方法,下载图片doPostStringImgArtemis方法 | 
|      */ | 
|     static { | 
|   | 
|     } | 
|     public static void main(String[] args) throws ParseException { | 
|   | 
|     } | 
|   | 
|   | 
|     /** | 
|      * 能力开放平台的网站路径 TODO 路径不用修改,就是/artemis | 
|      */ | 
|     private static final String ARTEMIS_PATH = "/artemis"; | 
|   | 
|     public static JSONObject loginData(int page, int rows, String start, String end) { | 
|         final String getCamsApi = ARTEMIS_PATH + "/api/acs/v2/door/events"; | 
|         Map<String, String> path = new HashMap<String, String>(2) { | 
|             { | 
|                 put("https://", getCamsApi);// 根据现场环境部署确认是http还是https | 
|             } | 
|         }; | 
|         JSONObject jsonBody = new JSONObject(); | 
|         jsonBody.put("startTime", start); | 
|         jsonBody.put("endTime", end); | 
|         jsonBody.put("receiveStartTime", start); | 
|         jsonBody.put("receiveEndTime", end); | 
|         jsonBody.put("pageNo", page); | 
|         jsonBody.put("pageSize", rows); | 
|         jsonBody.put("sort", "eventTime"); | 
|         jsonBody.put("order", "desc"); | 
|         String body = jsonBody.toJSONString(); | 
|         logger.info(getCamsApi+"--->body参数:"+body); | 
|         String result = ArtemisHttpUtil.doPostStringArtemis(path, body, null, null, "application/json", null);// post请求application/json类型参数 | 
|         logger.info(getCamsApi+"--->result参数:"+result); | 
|         return JSONObject.parseObject(result); | 
|     } | 
|   | 
|     /** | 
|      * 访客查询 | 
|      * @param page | 
|      * @param rows | 
|      * @return | 
|      */ | 
|     public static JSONObject fkData(int page, int rows, String visitorId) { | 
|         final String getCamsApi = ARTEMIS_PATH + "/api/visitor/v1/event/turnover/search"; | 
|         Map<String, String> path = new HashMap<String, String>(2) { | 
|             { | 
|                 put("https://", getCamsApi);// 根据现场环境部署确认是http还是https | 
|             } | 
|         }; | 
|         JSONObject jsonBody = new JSONObject(); | 
|   | 
|         jsonBody.put("pageNo", page); | 
|         jsonBody.put("pageSize", rows); | 
|         jsonBody.put("visitorName", visitorId); | 
|         String body = jsonBody.toJSONString(); | 
|   | 
|         logger.info(getCamsApi+"--->body参数:"+body); | 
|         String result = ArtemisHttpUtil.doPostStringArtemis(path, body, null, null, "application/json", null);// post请求application/json类型参数 | 
|         logger.info(getCamsApi+"--->result参数:"+result); | 
|         return JSONObject.parseObject(result); | 
|     } | 
|   | 
|     /** | 
|      * 访客记录列表 | 
|      * @param page | 
|      * @param rows | 
|      * @return | 
|      */ | 
|     public static JSONObject fkList(int page, int rows) { | 
|         final String getCamsApi = ARTEMIS_PATH + "/api/visitor/v2/visiting/records"; | 
|         Map<String, String> path = new HashMap<String, String>(2) { | 
|             { | 
|                 put("https://", getCamsApi);// 根据现场环境部署确认是http还是https | 
|             } | 
|         }; | 
|         JSONObject jsonBody = new JSONObject(); | 
|   | 
|         jsonBody.put("pageNo", page); | 
|         jsonBody.put("pageSize", rows); | 
|         String body = jsonBody.toJSONString(); | 
|   | 
|         logger.info(getCamsApi+"--->body参数:"+body); | 
|         String result = sendPost(path, body); | 
|         logger.info(getCamsApi+"--->result参数:"+result); | 
|         return JSONObject.parseObject(result); | 
|     } | 
|   | 
|     private static String sendPost(Map<String, String> path, String body) { | 
|         return ArtemisHttpUtil.doPostStringArtemis(path, body, null, null, "application/json", null); | 
|     } | 
|   | 
|     /** | 
|      * 事件订阅 | 
|      * 正常开门--198913 | 
|      * @param code | 
|      * @param url | 
|      * @return | 
|      */ | 
|     public static JSONObject event(int code, String url) { | 
|         final String getCamsApi = ARTEMIS_PATH + "/api/eventService/v1/eventSubscriptionByEventTypes"; | 
|         Map<String, String> path = new HashMap<String, String>(2) { | 
|             { | 
|                 put("https://", getCamsApi);// 根据现场环境部署确认是http还是https | 
|             } | 
|         }; | 
|         JSONObject jsonBody = new JSONObject(); | 
|         jsonBody.put("eventTypes", Arrays.asList(code)); | 
|         jsonBody.put("eventDest", url); | 
|         String body = jsonBody.toJSONString(); | 
|   | 
|         logger.info(getCamsApi+"--->body参数:"+body); | 
|         String result = sendPost(path, body);// post请求application/json类型参数 | 
|         logger.info(getCamsApi+"--->result参数:"+result); | 
|         return JSONObject.parseObject(result); | 
|     } | 
|   | 
|     /** | 
|      * 取消事件订阅 | 
|      * @param code | 
|      * @return | 
|      */ | 
|     public static JSONObject eventCancle(int code) { | 
|         final String getCamsApi = ARTEMIS_PATH + "/api/eventService/v1/eventUnSubscriptionByEventTypes"; | 
|         Map<String, String> path = new HashMap<String, String>(2) { | 
|             { | 
|                 put("https://", getCamsApi);// 根据现场环境部署确认是http还是https | 
|             } | 
|         }; | 
|         JSONObject jsonBody = new JSONObject(); | 
|         jsonBody.put("eventTypes", Arrays.asList(code)); | 
|         String body = jsonBody.toJSONString(); | 
|   | 
|         logger.info(getCamsApi+"--->body参数:"+body); | 
|         String result = sendPost(path, body);// post请求application/json类型参数 | 
|         logger.info(getCamsApi+"--->result参数:"+result); | 
|         return JSONObject.parseObject(result); | 
|     } | 
|   | 
|     /** | 
|      * 查询订阅事件 | 
|      * @return | 
|      */ | 
|     public static JSONObject eventQuery() { | 
|         final String getCamsApi = ARTEMIS_PATH + "/api/eventService/v1/eventSubscriptionView"; | 
|         Map<String, String> path = new HashMap<String, String>(2) { | 
|             { | 
|                 put("https://", getCamsApi);// 根据现场环境部署确认是http还是https | 
|             } | 
|         }; | 
|         JSONObject jsonBody = new JSONObject(); | 
|         String body = jsonBody.toJSONString(); | 
|   | 
|         logger.info(getCamsApi+"--->body参数:"+body); | 
|         String result = sendPost(path, body);// post请求application/json类型参数 | 
|         logger.info(getCamsApi+"--->result参数:"+result); | 
|         return JSONObject.parseObject(result); | 
|     } | 
|   | 
|     /** | 
|      * 获取组织列表 | 
|      * @param page | 
|      * @param rows | 
|      * @return | 
|      */ | 
|     public static JSONObject orgList(int page, int rows) { | 
|         final String getCamsApi = ARTEMIS_PATH + "/api/resource/v1/org/orgList"; | 
|         Map<String, String> path = new HashMap<String, String>(2) { | 
|             { | 
|                 put("https://", getCamsApi);// 根据现场环境部署确认是http还是https | 
|             } | 
|         }; | 
|         JSONObject jsonBody = new JSONObject(); | 
|   | 
|         jsonBody.put("pageNo", page); | 
|         jsonBody.put("pageSize", rows); | 
|         String body = jsonBody.toJSONString(); | 
|   | 
|         logger.info(getCamsApi+"--->body参数:"+body); | 
|         String result = sendpost(path, body,"0","获取组织列表","0");// post请求application/json类型参数 | 
|         logger.info(getCamsApi+"--->result参数:"+result); | 
|         System.out.println(result); | 
|         return JSONObject.parseObject(result); | 
|     } | 
|   | 
|     /** | 
|      * 添加组织 | 
|      * @param jsonArray | 
|      * @return | 
|      */ | 
|     public static JSONObject addOrg(JSONArray jsonArray) { | 
|         final String getCamsApi = ARTEMIS_PATH + "/api/resource/v1/org/batch/add"; | 
|         Map<String, String> path = new HashMap<String, String>(2) { | 
|             { | 
|                 put("https://", getCamsApi);// 根据现场环境部署确认是http还是https | 
|             } | 
|         }; | 
|   | 
|         String body = jsonArray.toJSONString(); | 
|   | 
|         logger.info(getCamsApi+"--->body参数:"+body); | 
|         String result = sendpost(path, body,"0","添加组织","0");// post请求application/json类型参数 | 
|         logger.info(getCamsApi+"--->result参数:"+result); | 
|         return JSONObject.parseObject(result); | 
|     } | 
|   | 
|     /** | 
|      * 修改组织 | 
|      * @param jsonBody | 
|      * @return | 
|      */ | 
|     public static JSONObject updateOrg(JSONObject jsonBody) { | 
|         final String getCamsApi = ARTEMIS_PATH + "/api/resource/v1/org/single/update"; | 
|         Map<String, String> path = new HashMap<String, String>(2) { | 
|             { | 
|                 put("https://", getCamsApi);// 根据现场环境部署确认是http还是https | 
|             } | 
|         }; | 
|   | 
|         String body = jsonBody.toJSONString(); | 
|         logger.info(getCamsApi+"--->body参数:"+body); | 
|         String result = sendpost(path, body,"0","修改组织","0");// post请求application/json类型参数 | 
|         logger.info(getCamsApi+"--->result参数:"+result); | 
|         return JSONObject.parseObject(result); | 
|     } | 
|   | 
|     /** | 
|      * 删除组织 | 
|      * @param jsonBody | 
|      * @return | 
|      */ | 
|     public static JSONObject delOrg(JSONObject jsonBody) { | 
|         final String getCamsApi = ARTEMIS_PATH + "/api/resource/v1/org/batch/delete"; | 
|         Map<String, String> path = new HashMap<String, String>(2) { | 
|             { | 
|                 put("https://", getCamsApi);// 根据现场环境部署确认是http还是https | 
|             } | 
|         }; | 
|   | 
|         String body = jsonBody.toJSONString(); | 
|         logger.info(getCamsApi+"--->body参数:"+body); | 
|         String result = sendpost(path, body,"0","删除组织","0");// post请求application/json类型参数 | 
|         logger.info(getCamsApi+"--->result参数:"+result); | 
|         return JSONObject.parseObject(result); | 
|     } | 
|   | 
|     /** | 
|      * 门禁设备列表 | 
|      * @param page | 
|      * @param rows | 
|      * @return | 
|      */ | 
|     public static JSONObject deviceList(int page, int rows) { | 
|         final String getCamsApi = ARTEMIS_PATH + "/api/resource/v2/acsDevice/search"; | 
|         Map<String, String> path = new HashMap<String, String>(2) { | 
|             { | 
|                 put("https://", getCamsApi);// 根据现场环境部署确认是http还是https | 
|             } | 
|         }; | 
|         JSONObject jsonBody = new JSONObject(); | 
|   | 
|         jsonBody.put("pageNo", page); | 
|         jsonBody.put("pageSize", rows); | 
| //        jsonBody.put("resourceType", "acsDevice"); | 
|         String body = jsonBody.toJSONString(); | 
|   | 
|         logger.info(getCamsApi+"--->body参数:"+body); | 
|         String result = sendpost(path, body,"0","获取门禁设备列表","0"); | 
|         logger.info(getCamsApi+"--->result参数:"+result); | 
|         return JSONObject.parseObject(result); | 
|     } | 
|   | 
|     /** | 
|      * 门禁点列表 | 
|      * @param page | 
|      * @param rows | 
|      * @return | 
|      */ | 
|     public static JSONObject doorList(int page, int rows) { | 
|         final String getCamsApi = ARTEMIS_PATH + "/api/resource/v2/door/search"; | 
|         Map<String, String> path = new HashMap<String, String>(2) { | 
|             { | 
|                 put("https://", getCamsApi);// 根据现场环境部署确认是http还是https | 
|             } | 
|         }; | 
|         JSONObject jsonBody = new JSONObject(); | 
|   | 
|         jsonBody.put("pageNo", page); | 
|         jsonBody.put("pageSize", rows); | 
|         String body = jsonBody.toJSONString(); | 
|   | 
|         logger.info(getCamsApi+"--->body参数:"+body); | 
|         String result = sendpost(path, body,"0","门禁点列表","0"); | 
|         logger.info(getCamsApi+"--->result参数:"+result); | 
|         return JSONObject.parseObject(result); | 
|     } | 
|   | 
|     /** | 
|      * 分页获取监控点资源列表 | 
|      * @param page | 
|      * @param rows | 
|      * @return | 
|      */ | 
|     public static JSONObject camerasList(int page, int rows) { | 
|         final String getCamsApi = ARTEMIS_PATH + "/api/resource/v1/cameras"; | 
|         Map<String, String> path = new HashMap<String, String>(2) { | 
|             { | 
|                 put("https://", getCamsApi);// 根据现场环境部署确认是http还是https | 
|             } | 
|         }; | 
|         JSONObject jsonBody = new JSONObject(); | 
|   | 
|         jsonBody.put("pageNo", page); | 
|         jsonBody.put("pageSize", rows); | 
|         String body = jsonBody.toJSONString(); | 
|   | 
|         logger.info(getCamsApi+"--->body参数:"+body); | 
|         String result = sendpost(path, body,"0","分页获取监控点资源","0");// post请求application/json类型参数 | 
|         logger.info(getCamsApi+"--->result参数:"+result); | 
|         return JSONObject.parseObject(result); | 
|     } | 
|   | 
|     /** | 
|      * 获取监控点预览取流URL | 
|      * @param code | 
|      * @param streamType | 
|      * @return | 
|      */ | 
|     public static JSONObject previewURLs(String code, int streamType, String protocol, Integer transmode, String expand, String streamform) { | 
|         final String getCamsApi = ARTEMIS_PATH + "/api/video/v2/cameras/previewURLs"; | 
|         Map<String, String> path = new HashMap<String, String>(2) { | 
|             { | 
|                 put("https://", getCamsApi);// 根据现场环境部署确认是http还是https | 
|             } | 
|         }; | 
|         JSONObject jsonBody = new JSONObject(); | 
|   | 
|         // 监控点唯一标识 | 
|         jsonBody.put("cameraIndexCode", code); | 
|         // 码流类型,0:主码流,1:子码流,2:第三码流,参数不填,默认为主码流 | 
| /*        jsonBody.put("streamType", streamType); | 
|         *//* 取流协议(应用层协议),“hik”:HIK私有协议,使用视频SDK进行播放时,传入此类型;“rtsp”,“rtmp”,“hls”,“ws”。参数不填,默认为HIK协议 *//* | 
|         jsonBody.put("protocol", protocol); | 
|         //传输协议(传输层协议),0:UDP,1:TCP。默认是TCP | 
|         jsonBody.put("transmode", transmode); | 
|         // 转码标志,不携带此字段或传0表示不转码,传1或2表示转码。 | 
|         jsonBody.put("expand", expand); | 
|         // 输出码流转封装格式,“ps”:PS封装格式、“rtp”:RTP封装协议。当protocol=rtsp时生效,且不传值时默认为RTP封装协议。 | 
|         jsonBody.put("streamform", streamform);*/ | 
|         String body = jsonBody.toJSONString(); | 
|   | 
|         logger.info(getCamsApi+"--->body参数:"+body); | 
|         String result = sendpost(path, body,"0","获取监控点预览流","0");// post请求application/json类型参数 | 
|         logger.info(getCamsApi+"--->result参数:"+result); | 
|         return JSONObject.parseObject(result); | 
|     } | 
|   | 
|     /** | 
|      * 添加人员 | 
|      * @param jsonBody | 
|      * @return | 
|      */ | 
|     public static JSONObject addPerson(JSONObject jsonBody) { | 
|         final String getCamsApi = ARTEMIS_PATH + "/api/resource/v2/person/single/add"; | 
|         Map<String, String> path = new HashMap<String, String>(2) { | 
|             { | 
|                 put("https://", getCamsApi);// 根据现场环境部署确认是http还是https | 
|             } | 
|         }; | 
|   | 
|         String body = jsonBody.toJSONString(); | 
|   | 
|         logger.info(getCamsApi+"--->body参数:"+body); | 
|         String result = sendpost(path, body,"0","添加人员","0");// post请求application/json类型参数 | 
|         logger.info(getCamsApi+"--->result参数:"+result); | 
|         return JSONObject.parseObject(result); | 
|     } | 
|   | 
|     /** | 
|      * 批量添加人员 | 
|      * @param jsonBody | 
|      * @return | 
|      */ | 
|     public static JSONObject batchSave(JSONArray jsonBody) { | 
|         final String getCamsApi = ARTEMIS_PATH + "/api/resource/v1/person/batch/add"; | 
|         Map<String, String> path = new HashMap<String, String>(2) { | 
|             { | 
|                 put("https://", getCamsApi);// 根据现场环境部署确认是http还是https | 
|             } | 
|         }; | 
|   | 
|         String body = jsonBody.toJSONString(); | 
|   | 
|         logger.info(getCamsApi+"--->body参数:"+body); | 
|         String result = sendpost(path, body,"0","批量添加人员","0");// post请求application/json类型参数 | 
|         logger.info(getCamsApi+"--->result参数:"+result); | 
|         return JSONObject.parseObject(result); | 
|     } | 
|   | 
|     /** | 
|      * 删除人员 | 
|      * @param jsonBody | 
|      * @return | 
|      */ | 
|     public static JSONObject delPerson(JSONObject jsonBody) { | 
|         final String getCamsApi = ARTEMIS_PATH + "/api/resource/v1/person/batch/delete"; | 
|         Map<String, String> path = new HashMap<String, String>(2) { | 
|             { | 
|                 put("https://", getCamsApi);// 根据现场环境部署确认是http还是https | 
|             } | 
|         }; | 
|   | 
|         String body = jsonBody.toJSONString(); | 
|   | 
|         logger.info(getCamsApi+"--->body参数:"+body); | 
|         String result = sendpost(path, body,"0","删除人员","0");// post请求application/json类型参数 | 
|         logger.info(getCamsApi+"--->result参数:"+result); | 
|         return JSONObject.parseObject(result); | 
|     } | 
|   | 
|     /** | 
|      * 获取人员卡号 | 
|      * @param jsonBody | 
|      * @return | 
|      */ | 
|     public static JSONObject getPersonCard(JSONObject jsonBody) { | 
|         final String getCamsApi = ARTEMIS_PATH + "/api/irds/v1/card/advance/cardList"; | 
|         Map<String, String> path = new HashMap<String, String>(2) { | 
|             { | 
|                 put("https://", getCamsApi);// 根据现场环境部署确认是http还是https | 
|             } | 
|         }; | 
|   | 
|         String body = jsonBody.toJSONString(); | 
|   | 
|         logger.info(getCamsApi+"--->body参数:"+body); | 
|         String result = sendpost(path, body,"0","获取人员卡号","1");// post请求application/json类型参数 | 
|         logger.info(getCamsApi+"--->result参数:"+result); | 
|         return JSONObject.parseObject(result); | 
|     } | 
|   | 
|     /** | 
|      * 同步人员 | 
|      * @param jsonBody | 
|      * @return | 
|      */ | 
|     public static JSONObject getPersonList(JSONObject jsonBody) { | 
|         final String getCamsApi = ARTEMIS_PATH + "/api/resource/v2/person/advance/personList"; | 
|         Map<String, String> path = new HashMap<String, String>(2) { | 
|             { | 
|                 put("https://", getCamsApi);// 根据现场环境部署确认是http还是https | 
|             } | 
|         }; | 
|   | 
|         String body = jsonBody.toJSONString(); | 
|   | 
|         logger.info(getCamsApi+"--->body参数:"+body); | 
|         String result = sendpost(path, body,"0","获取人员列表","0");// post请求application/json类型参数 | 
|         logger.info(getCamsApi+"--->result参数:"+result); | 
|         return JSONObject.parseObject(result); | 
|     } | 
|   | 
|     /** | 
|      * 修改人员信息,不含人脸 | 
|      * @param jsonBody | 
|      * @return | 
|      */ | 
|     public static JSONObject updatePerson(JSONObject jsonBody) { | 
|         final String getCamsApi = ARTEMIS_PATH + "/api/resource/v1/person/single/update"; | 
|         Map<String, String> path = new HashMap<String, String>(2) { | 
|             { | 
|                 put("https://", getCamsApi);// 根据现场环境部署确认是http还是https | 
|             } | 
|         }; | 
|   | 
|         String body = jsonBody.toJSONString(); | 
|   | 
|         logger.info(getCamsApi+"--->body参数:"+body); | 
|         String result = sendpost(path, body,"0","修改人员信息","0");// post请求application/json类型参数 | 
|         logger.info(getCamsApi+"--->result参数:"+result); | 
|         return JSONObject.parseObject(result); | 
|     } | 
|   | 
|     /** | 
|      * 添加人脸数据 | 
|      * @param jsonBody | 
|      * @return | 
|      */ | 
|     public static JSONObject addPersonFace(JSONObject jsonBody) { | 
|         final String getCamsApi = ARTEMIS_PATH + "/api/resource/v1/face/single/add"; | 
|         Map<String, String> path = new HashMap<String, String>(2) { | 
|             { | 
|                 put("https://", getCamsApi);// 根据现场环境部署确认是http还是https | 
|             } | 
|         }; | 
|   | 
|         String body = jsonBody.toJSONString(); | 
|   | 
|         logger.info(getCamsApi+"--->body参数:"+body); | 
|         String result = sendpost(path, body,"0","添加人脸数据","0");// post请求application/json类型参数 | 
|         logger.info(getCamsApi+"--->result参数:"+result); | 
|         return JSONObject.parseObject(result); | 
|     } | 
|   | 
|     /** | 
|      * 修改人脸数据 | 
|      * @param jsonBody | 
|      * @return | 
|      */ | 
|     public static JSONObject updatePersonFace(JSONObject jsonBody) { | 
|         final String getCamsApi = ARTEMIS_PATH + "/api/resource/v1/face/single/update"; | 
|         Map<String, String> path = new HashMap<String, String>(2) { | 
|             { | 
|                 put("https://", getCamsApi);// 根据现场环境部署确认是http还是https | 
|             } | 
|         }; | 
|   | 
|         String body = jsonBody.toJSONString(); | 
|   | 
|         logger.info(getCamsApi+"--->body参数:"+body); | 
|         String result = sendpost(path, body,"0","修改人脸数据","0");// post请求application/json类型参数 | 
|         logger.info(getCamsApi+"--->result参数:"+result); | 
|         return JSONObject.parseObject(result); | 
|     } | 
|   | 
|     /** | 
|      * 创建下载任务 | 
|      * @param taskType(下载任务类型 1:卡片 4:人脸) | 
|      * | 
|      * @return | 
|      */ | 
|     public static JSONObject newTask(String taskType) { | 
|         final String getCamsApi = ARTEMIS_PATH + "/api/acps/v1/authDownload/task/addition"; | 
|         Map<String, String> path = new HashMap<String, String>(2) { | 
|             { | 
|                 put("https://", getCamsApi);// 根据现场环境部署确认是http还是https | 
|             } | 
|         }; | 
|         JSONObject jsonBody = new JSONObject(); | 
|         jsonBody.put("taskType",taskType); | 
|         String body = jsonBody.toJSONString(); | 
|   | 
|         logger.info(getCamsApi+"--->body参数:"+body); | 
|         String result = sendpost(path, body,"0","创建下载任务","0");// post请求application/json类型参数 | 
|         logger.info(getCamsApi+"--->result参数:"+result); | 
|         return JSONObject.parseObject(result); | 
|     } | 
|   | 
|     /** | 
|      * 向下载任务中添加数据 | 
|      * @param jsonBody | 
|      * @return | 
|      */ | 
|     public static JSONObject addTaskData(JSONObject jsonBody) { | 
|         final String getCamsApi = ARTEMIS_PATH + "/api/acps/v1/authDownload/data/addition"; | 
|         Map<String, String> path = new HashMap<String, String>(2) { | 
|             { | 
|                 put("https://", getCamsApi);// 根据现场环境部署确认是http还是https | 
|             } | 
|         }; | 
|         String body = jsonBody.toJSONString(); | 
|   | 
|         logger.info(getCamsApi+"--->body参数:"+body); | 
|         String result = sendpost(path, body,"0","下载任务添加数据","0");// post请求application/json类型参数 | 
|         logger.info(getCamsApi+"--->result参数:"+result); | 
|         return JSONObject.parseObject(result); | 
|     } | 
|   | 
|     /** | 
|      * 开始下载任务 | 
|      * @param taskId | 
|      * @return | 
|      */ | 
|     public static JSONObject startTask(String taskId) { | 
|         final String getCamsApi = ARTEMIS_PATH + "/api/acps/v1/authDownload/task/start"; | 
|         Map<String, String> path = new HashMap<String, String>(2) { | 
|             { | 
|                 put("https://", getCamsApi);// 根据现场环境部署确认是http还是https | 
|             } | 
|         }; | 
|         JSONObject jsonBody = new JSONObject(); | 
|         jsonBody.put("taskId",taskId); | 
|         String body = jsonBody.toJSONString(); | 
|   | 
|         logger.info(getCamsApi+"--->body参数:"+body); | 
|         String result = sendpost(path, body,"0","开始下载任务","0");// post请求application/json类型参数 | 
|         logger.info(getCamsApi+"--->result参数:"+result); | 
|         return JSONObject.parseObject(result); | 
|     } | 
|   | 
|     /** | 
|      * 删除未开始的下载任务 | 
|      * @param taskId | 
|      * @return | 
|      */ | 
|     public static JSONObject deleteTask(String taskId) { | 
|         final String getCamsApi = ARTEMIS_PATH + "/api/acps/v1/authDownload/task/deletion"; | 
|         Map<String, String> path = new HashMap<String, String>(2) { | 
|             { | 
|                 put("https://", getCamsApi);// 根据现场环境部署确认是http还是https | 
|             } | 
|         }; | 
|         JSONObject jsonBody = new JSONObject(); | 
|         jsonBody.put("taskId",taskId); | 
|         String body = jsonBody.toJSONString(); | 
|   | 
|         logger.info(getCamsApi+"--->body参数:"+body); | 
|         String result = sendpost(path, body,"0","删除未开始下载任务","0");// post请求application/json类型参数 | 
|         logger.info(getCamsApi+"--->result参数:"+result); | 
|         return JSONObject.parseObject(result); | 
|     } | 
|   | 
|     /** | 
|      * 查询下载任务进度 | 
|      * @param taskId | 
|      * @return | 
|      */ | 
|     public static JSONObject queryTask(String taskId) { | 
|         final String getCamsApi = ARTEMIS_PATH + "/api/acps/v1/authDownload/task/progress"; | 
|         Map<String, String> path = new HashMap<String, String>(2) { | 
|             { | 
|                 put("https://", getCamsApi);// 根据现场环境部署确认是http还是https | 
|             } | 
|         }; | 
|         JSONObject jsonBody = new JSONObject(); | 
|         jsonBody.put("taskId",taskId); | 
|         String body = jsonBody.toJSONString(); | 
|   | 
|         logger.info(getCamsApi+"--->body参数:"+body); | 
|         String result = sendpost(path, body,"0","查询下载任务进度","0");// post请求application/json类型参数 | 
|         logger.info(getCamsApi+"--->result参数:"+result); | 
|         return JSONObject.parseObject(result); | 
|     } | 
|   | 
|   | 
|     /** | 
|      * 查询人员下载结果 | 
|      * @param jsonBody | 
|      * @return | 
|      */ | 
|     public static JSONObject queryPersonResult(JSONObject jsonBody) { | 
|         final String getCamsApi = ARTEMIS_PATH + "/api/acps/v1/auth_item/list/search"; | 
|         Map<String, String> path = new HashMap<String, String>(2) { | 
|             { | 
|                 put("https://", getCamsApi);// 根据现场环境部署确认是http还是https | 
|             } | 
|         }; | 
|         String body = jsonBody.toJSONString(); | 
|   | 
|         logger.info(getCamsApi+"--->body参数:"+body); | 
|         String result = sendpost(path, body,"0","查询人员下载结果","0");// post请求application/json类型参数 | 
|         logger.info(getCamsApi+"--->result参数:"+result); | 
|         return JSONObject.parseObject(result); | 
|     } | 
|   | 
|     /*public static JSONArray getResourceInfos(List<LhDeviceDO> deviceList){ | 
|         JSONArray resourceInfos = new JSONArray(); | 
|         deviceList.forEach(v->{ | 
|             JSONObject deviceObject = new JSONObject(); | 
|             deviceObject.put("resourceIndexCode",v.getId()); | 
|             deviceObject.put("resourceType",v.getResourceType()); | 
|             String channelNo = v.getChannelNo(); | 
|             String[] c = channelNo.split(","); | 
|             int[] array = Arrays.asList(c).stream().mapToInt(Integer::parseInt).toArray(); | 
|             JSONArray ca = new JSONArray(); | 
|             for (int i =0 ; i<array.length;i++) { | 
|                 ca.add(array[i]); | 
|             } | 
|             deviceObject.put("channelNos",ca); | 
|             resourceInfos.add(deviceObject); | 
|         }); | 
|         return resourceInfos; | 
|     }*/ | 
|     /** | 
|      * 分页获取监控点资源 | 
|      * @param page | 
|      * @param rows | 
|      * @return | 
|      */ | 
|     public static JSONObject monitoryList(int page, int rows) { | 
|         final String getCamsApi = ARTEMIS_PATH + "/api/resource/v1/cameras"; | 
|         Map<String, String> path = new HashMap<String, String>(2) { | 
|             { | 
|                 put("https://", getCamsApi);// 根据现场环境部署确认是http还是https | 
|             } | 
|         }; | 
|         JSONObject jsonBody = new JSONObject(); | 
|   | 
|         jsonBody.put("pageNo", page); | 
|         jsonBody.put("pageSize", rows); | 
| //        jsonBody.put("resourceType", "acsDevice"); | 
|         String body = jsonBody.toJSONString(); | 
|   | 
|         logger.info(getCamsApi+"--->body参数:"+body); | 
|         String result = null; | 
|         try { | 
|             result = sendpost(path, body,"0","分页获取监控点资源","1"); | 
|   | 
|         } catch (Exception e) { | 
|             e.printStackTrace(); | 
|         } | 
|         logger.info(getCamsApi+"--->result参数:"+result); | 
|         return JSONObject.parseObject(result); | 
|     } | 
|     /** | 
|      * 分页获取监控点在线状态 | 
|      * @param page | 
|      * @param rows | 
|      * @return | 
|      */ | 
|     public static JSONObject monitoryStatus(int page, int rows) { | 
|         final String getCamsApi = ARTEMIS_PATH + "/api/nms/v1/online/camera/get"; | 
|         Map<String, String> path = new HashMap<String, String>(2) { | 
|             { | 
|                 put("https://", getCamsApi);// 根据现场环境部署确认是http还是https | 
|             } | 
|         }; | 
|         JSONObject jsonBody = new JSONObject(); | 
|   | 
|         jsonBody.put("pageNo", page); | 
|         jsonBody.put("pageSize", rows); | 
|   | 
| //        List<String>list=new ArrayList<>(); | 
| //        list.add("1a3cb6e19fbc44d8b31ae74e29fb438d"); | 
| //        jsonBody.put("indexCodes", list); | 
|         String body = jsonBody.toJSONString(); | 
|   | 
|         logger.info(getCamsApi+"--->body参数:"+body); | 
|         String result = null; | 
|         try { | 
|             result = sendpost(path, body,"0","分页获取监控点在线状态","1"); | 
|   | 
|         } catch (Exception e) { | 
|             e.printStackTrace(); | 
|         } | 
|         logger.info(getCamsApi+"--->result参数:"+result); | 
|         return JSONObject.parseObject(result); | 
|     } | 
|   | 
|     /** | 
|      * 获取监控点预览取流URLv2 | 
|      * @param cameraIndexCode | 
|      * @return | 
|      */ | 
|     public static JSONObject monitoryPreview(String cameraIndexCode) { | 
|         final String getCamsApi = ARTEMIS_PATH + "/api/video/v2/cameras/previewURLs"; | 
|         Map<String, String> path = new HashMap<String, String>(2) { | 
|             { | 
|                 put("https://", getCamsApi);// 根据现场环境部署确认是http还是https | 
|             } | 
|         }; | 
|         JSONObject jsonBody = new JSONObject(); | 
|   | 
|         jsonBody.put("cameraIndexCode", cameraIndexCode); | 
|         jsonBody.put("streamType", ""); | 
|         jsonBody.put("protocol", ""); | 
|         jsonBody.put("transmode", ""); | 
|         jsonBody.put("expand", ""); | 
|         jsonBody.put("streamform", ""); | 
|         String body = jsonBody.toJSONString(); | 
|   | 
|         logger.info(getCamsApi+"--->body参数:"+body); | 
|         String result = null; | 
|         try { | 
|             result = sendpost(path, body,"0","获取监控点预览取流URLv2","0"); | 
|         } catch (Exception e) { | 
|             e.printStackTrace(); | 
|         } | 
|         logger.info(getCamsApi+"--->result参数:"+result); | 
|         return JSONObject.parseObject(result); | 
|     } | 
|   | 
|     /** | 
|      * 获取监控点回放 | 
|      * @param cameraIndexCode | 
|      * @return | 
|      */ | 
|     public static JSONObject monitoryBackview(String cameraIndexCode,String beginTime,String endTime) { | 
|         final String getCamsApi = ARTEMIS_PATH + "/api/video/v2/cameras/playbackURLs"; | 
|         Map<String, String> path = new HashMap<String, String>(2) { | 
|             { | 
|                 put("https://", getCamsApi);// 根据现场环境部署确认是http还是https | 
|             } | 
|         }; | 
|         JSONObject jsonBody = new JSONObject(); | 
|         SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); | 
|         Date startDate=null; | 
|         Date endDate=null; | 
|         try { | 
|              startDate = sdf.parse(beginTime); | 
|              endDate = sdf.parse(endTime); | 
|         } catch (ParseException e) { | 
|             e.printStackTrace(); | 
|         } | 
|   | 
|         jsonBody.put("cameraIndexCode", cameraIndexCode); | 
|         jsonBody.put("recordLocation", ""); | 
|         jsonBody.put("protocol", ""); | 
|         jsonBody.put("transmode", ""); | 
|         jsonBody.put("uuid", ""); | 
|         jsonBody.put("expand", ""); | 
|         jsonBody.put("streamform", ""); | 
|         jsonBody.put("lockType", ""); | 
|         jsonBody.put("beginTime", getISO8601Timestamp(startDate)); | 
|         jsonBody.put("endTime", getISO8601Timestamp(endDate)); | 
| //        jsonBody.put("beginTime", "2021-12-15T00:00:00.000+08:00"); | 
| //        jsonBody.put("endTime", "2021-12-16T00:00:00.000+08:00"); | 
|         String body = jsonBody.toJSONString(); | 
|   | 
|         logger.info(getCamsApi+"--->body参数:"+body); | 
|         String result = null; | 
|         try { | 
| //            result = sendPost(path, body); | 
|             result = sendpost(path, body,"0","获取监控点回放","0"); | 
|   | 
|         } catch (Exception e) { | 
|             e.printStackTrace(); | 
|         } | 
|         logger.info(getCamsApi+"--->result参数:"+result); | 
|         return JSONObject.parseObject(result); | 
|     } | 
|   | 
|     /** | 
|      * 云台操作 | 
|      * @param cameraIndexCode | 
|      * @return | 
|      */ | 
|     public static JSONObject yuntaiOperation(String cameraIndexCode,String action,String command,String speed) { | 
|         final String getCamsApi = ARTEMIS_PATH + "/api/video/v1/ptzs/controlling"; | 
|         Map<String, String> path = new HashMap<String, String>(2) { | 
|             { | 
|                 put("https://", getCamsApi);// 根据现场环境部署确认是http还是https | 
|             } | 
|         }; | 
|         JSONObject jsonBody = new JSONObject(); | 
|   | 
|   | 
|         jsonBody.put("cameraIndexCode", cameraIndexCode); | 
|         jsonBody.put("action", action); | 
|         jsonBody.put("command", command); | 
|         jsonBody.put("speed", speed); | 
|         jsonBody.put("presetIndex", ""); | 
|   | 
|         String body = jsonBody.toJSONString(); | 
|   | 
|         logger.info(getCamsApi+"--->body参数:"+body); | 
|         String result = null; | 
|         try { | 
|             result = sendpost(path, body,"0","云台操作","0"); | 
|         } catch (Exception e) { | 
|             e.printStackTrace(); | 
|         } | 
|         logger.info(getCamsApi+"--->result参数:"+result); | 
|         return JSONObject.parseObject(result); | 
|     } | 
|   | 
|     /** | 
|      * type 0内部调用1外部调用 | 
|      * msg 方法名 | 
|      * flage 0走log日志 1不走 | 
|      * @param path | 
|      * @param body | 
|      * @param type | 
|      * @return | 
|      */ | 
|     private static String sendpost(Map<String, String> path, String body,String type,String msg,String flage) { | 
|         String result = null; | 
|         try { | 
|             result = ArtemisHttpUtil.doPostStringArtemis(path, body, null, null, "application/json", null); | 
|         } catch (Exception e) { | 
|             e.printStackTrace(); | 
|         } finally { | 
|             try { | 
|                 if("0".equals(flage)){ | 
| //                    HkMonitoryLogDO hkMonitoryLogDO=new HkMonitoryLogDO(); | 
| //                    hkMonitoryLogDO.setId(UUID.randomUUID().toString()); | 
| //                    hkMonitoryLogDO.setMethodName(msg); | 
| //                    hkMonitoryLogDO.setType(type); | 
| //                    hkMonitoryLogDO.setCreateDate(new Date()); | 
| // | 
| //                    hkMonitoryLogDO.setCreator("内部请求"); | 
| //                    hkMonitoryLogDO.setIsDeleted("0"); | 
| //                    hkMonitoryLogDO.setRequestData(body); | 
| //                    hkMonitoryLogDO.setResponseData(result); | 
| //                    hkMonitoryLogDO.setUrl(path.get("https://")); | 
| //                    HkMonitoryLogService bean = SpringContextUtil.getBean(HkMonitoryLogService.class); | 
| //                    int save = bean.save(hkMonitoryLogDO); | 
|                 } | 
|             } catch (Exception e) { | 
|                 e.printStackTrace(); | 
|             } | 
|             return result; | 
|         } | 
|   | 
|     } | 
|   | 
|   | 
|     /** | 
|      * 获取增量人员数据列表(删除,修改,新增) | 
|      * @param page | 
|      * @param rows | 
|      * @param startTime | 
|      * @param endTime | 
|      * @return | 
|      */ | 
|     public static JSONObject userChange(int page, int rows, String startTime, String endTime) { | 
|         final String getCamsApi = ARTEMIS_PATH + "/api/resource/v1/person/personList/timeRange"; | 
|         Map<String, String> path = new HashMap<String, String>(2) { | 
|             { | 
|                 put("https://", getCamsApi);// 根据现场环境部署确认是http还是https | 
|             } | 
|         }; | 
|         JSONObject jsonBody = new JSONObject(); | 
|   | 
|         jsonBody.put("pageNo", page); | 
|         jsonBody.put("pageSize", rows); | 
|         jsonBody.put("startTime", startTime); | 
|         jsonBody.put("endTime", endTime); | 
|         String body = jsonBody.toJSONString(); | 
|   | 
|         logger.info(getCamsApi+"--->body参数:"+body); | 
|         String result = ArtemisHttpUtil.doPostStringArtemis(path, body, null, null, "application/json", null);// post请求application/json类型参数 | 
|         logger.info(getCamsApi+"--->result参数:"+result); | 
|         return JSONObject.parseObject(result); | 
| //        return JSONObject.parseObject("{\"code\":\"1\",\"msg\":\"HKUtil代码注释,功能关闭\"}"); | 
|     } | 
|   | 
|     /** | 
|      * 获取增量人员数据列表(删除,修改,新增) | 
|      * @param page | 
|      * @param rows | 
|      * @param startTime | 
|      * @param endTime | 
|      * @return | 
|      */ | 
|     public static JSONObject orgChange(int page, int rows, String startTime, String endTime) { | 
|         final String getCamsApi = ARTEMIS_PATH + "/api/resource/v1/org/timeRange"; | 
|         Map<String, String> path = new HashMap<String, String>(2) { | 
|             { | 
|                 put("https://", getCamsApi);// 根据现场环境部署确认是http还是https | 
|             } | 
|         }; | 
|         JSONObject jsonBody = new JSONObject(); | 
|   | 
|         jsonBody.put("pageNo", page); | 
|         jsonBody.put("pageSize", rows); | 
|         jsonBody.put("startTime", startTime); | 
|         jsonBody.put("endTime", endTime); | 
|         String body = jsonBody.toJSONString(); | 
|   | 
|         logger.info(getCamsApi+"--->body参数:"+body); | 
|         String result = ArtemisHttpUtil.doPostStringArtemis(path, body, null, null, "application/json", null);// post请求application/json类型参数 | 
|         logger.info(getCamsApi+"--->result参数:"+result); | 
|         return JSONObject.parseObject(result); | 
| //        return JSONObject.parseObject("{\"code\":\"1\",\"msg\":\"HKUtil代码注释,功能关闭\"}"); | 
|     } | 
|   | 
|   | 
|     /** | 
|      * 传入Data类型日期,返回字符串类型时间(ISO8601标准时间) | 
|      * @param date | 
|      * @return | 
|      */ | 
|     public static String getISO8601Timestamp(Date date){ | 
|         TimeZone tz = TimeZone.getTimeZone("Asia/Shanghai"); | 
|         //TimeZone tz = TimeZone.getTimeZone("GMT-01"); | 
|         DateFormat df = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'"); | 
|         df.setTimeZone(tz); | 
|         String nowAsISO = df.format(date); | 
|         return nowAsISO; | 
|     } | 
|   | 
| } |