package com.doumee.core.haikang.model; import com.alibaba.fastjson.JSONObject; import com.doumee.config.SpringContextUtil; import com.doumee.core.haikang.model.param.request.CarPictureRequest; import com.doumee.core.haikang.service.HKService; import com.doumee.core.utils.Constants; import com.doumee.dao.business.model.InterfaceLog; import com.doumee.service.business.InterfaceLogService; import com.hikvision.artemis.sdk.ArtemisHttpUtil; import com.hikvision.artemis.sdk.config.ArtemisConfig; import lombok.extern.slf4j.Slf4j; import org.apache.http.HttpEntity; import org.apache.http.HttpResponse; import org.apache.tomcat.util.bcel.Const; import org.yaml.snakeyaml.scanner.Constant; import java.io.*; import java.net.HttpURLConnection; import java.net.InetSocketAddress; import java.net.Proxy; import java.net.URL; import java.text.DateFormat; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.*; @Slf4j public class HKTools { // private static final Logger logger = LoggerFactory.getLogger(HKUtil.class); public static void main(String[] args) throws Exception { ArtemisConfig.host = "10.50.60.253"; ArtemisConfig.appKey = "27786546"; ArtemisConfig.appSecret = "kC5dohxU7CvEqgGhVt4R"; HKConstants.https = "https://"; CarPictureRequest param = new CarPictureRequest(); param.setPicUri( "HKIMG=/pic?0dd400=4c40ip-feo831-933*9o4=3=2109*2l0001893117*0t7=6*2ps==014b*=787d*069d70361-95754d-9*l108od0b192=001"); param.setAswSyscode("3fa3e5e3-db3e-41ba-97fc-39c948778dfe"); InputStream is = HKService.getCarPicture(param); File imageFile = new File("D:\\visit\\111"+UUID.randomUUID().toString()+".png"); try { byte[] bytes = new byte[1024]; FileOutputStream outStream = new FileOutputStream(imageFile); int index; while ((index = is.read(bytes)) != -1) { outStream.write(bytes, 0, index); outStream.flush(); } // outStream = new FileOutputStream(imageFile); // outStream.write(bytes); //关闭输出流 outStream.close(); //写入数据 } catch ( Exception e) { throw new RuntimeException(e); } } public static InterfaceLogService interfaceLogService = null; private static void saveInterfaceLog(String s, String result,Map path) { // InterfaceLogService bean = SpringContextUtil.getBean(InterfaceLogService.class); if(interfaceLogService !=null){ InterfaceLog hkMonitoryLogDO=new InterfaceLog(); hkMonitoryLogDO.setType(0); hkMonitoryLogDO.setCreateDate(new Date()); hkMonitoryLogDO.setIsdeleted(0); hkMonitoryLogDO.setRequest(s); hkMonitoryLogDO.setRepose(result); hkMonitoryLogDO.setName(path.get(HKConstants.https)); hkMonitoryLogDO.setUrl(HKConstants.https + ArtemisConfig.host+path.get(HKConstants.https)); interfaceLogService.create(hkMonitoryLogDO); } } private static Map getPath(String str) { final String getCamsApi = HKConstants.ARTEMIS_PATH + str; Map path = new HashMap(2) { { put(HKConstants.https, getCamsApi);// 根据现场环境部署确认是http还是https } }; return path; } /** * 获取门禁时间数据集合 * @return */ public static String getRootOrg() { Map path = getPath(HKConstants.InterfacePath.rootOrg); String result = ArtemisHttpUtil.doPostStringArtemis(path, "", null, null, "application/json", null);// post请求application/json类型参数 saveInterfaceLog("",result,path); return result; } /** * 更新组织信息 * @param body * @return */ public static String editOrg(String body) { Map path = getPath(HKConstants.InterfacePath.editOrg); String result = ArtemisHttpUtil.doPostStringArtemis(path, body, null, null, "application/json", null);// post请求application/json类型参数 saveInterfaceLog(body,result,path); return result; } /** * 新增组织信息 * @param body * @return */ public static String addBatchOrg(String body) { Map path = getPath(HKConstants.InterfacePath.addBatchOrg); String result = ArtemisHttpUtil.doPostStringArtemis(path, body, null, null, "application/json", null);// post请求application/json类型参数 saveInterfaceLog(body,result,path); return result; } /** * 删除组织信息 * @param body * @return */ public static String delOrg(String body) { Map path = getPath(HKConstants.InterfacePath.delBatchOrg); String result = ArtemisHttpUtil.doPostStringArtemis(path, body, null, null, "application/json", null);// post请求application/json类型参数 saveInterfaceLog(body,result,path); return result; } /** * 新增人员信息 * @param body * @return */ public static String addUser(String body) { Map path = getPath(HKConstants.InterfacePath.addUser); String result = ArtemisHttpUtil.doPostStringArtemis(path, body, null, null, "application/json", null);// post请求application/json类型参数 saveInterfaceLog(body,result,path); return result; } /** * 批量新增人员信息 * @param body * @return */ public static String addBatchUser(String body) { Map path = getPath(HKConstants.InterfacePath.addBatchUser); String result = ArtemisHttpUtil.doPostStringArtemis(path, body, null, null, "application/json", null);// post请求application/json类型参数 saveInterfaceLog(body,result,path); return result; } /** * 批量删除人员信息 * @param body * @return */ public static String delBatchUser(String body) { Map path = getPath(HKConstants.InterfacePath.delBatchUser); String result = ArtemisHttpUtil.doPostStringArtemis(path, body, null, null, "application/json", null);// post请求application/json类型参数 saveInterfaceLog(body,result,path); return result; } /** * 修改人员信息 * @param body * @return */ public static String editUser(String body) { Map path = getPath(HKConstants.InterfacePath.editUser); String result = ArtemisHttpUtil.doPostStringArtemis(path, body, null, null, "application/json", null);// post请求application/json类型参数 saveInterfaceLog(body,result,path); return result; } /** * 添加人脸信息 * @param body * @return */ public static String addFace(String body) { Map path = getPath(HKConstants.InterfacePath.addFace); String result = ArtemisHttpUtil.doPostStringArtemis(path, body, null, null, "application/json", null);// post请求application/json类型参数 saveInterfaceLog(body,result,path); return result; } /** * 编辑人脸信息 * @param body * @return */ public static String editFace(String body) { Map path = getPath(HKConstants.InterfacePath.editFace); String result = ArtemisHttpUtil.doPostStringArtemis(path, body, null, null, "application/json", null);// post请求application/json类型参数 saveInterfaceLog(body,result,path); return result; } /** * 删除人脸信息 * @param body * @return */ public static String delFace(String body) { Map path = getPath(HKConstants.InterfacePath.delFace); String result = ArtemisHttpUtil.doPostStringArtemis(path, body, null, null, "application/json", null);// post请求application/json类型参数 saveInterfaceLog(body,result,path); return result; } /** * 全量获取车库信息 * @param body * @return */ public static String parkList(String body) { Map path = getPath(HKConstants.InterfacePath.getParkList); String result = ArtemisHttpUtil.doPostStringArtemis(path, body, null, null, "application/json", null);// post请求application/json类型参数 saveInterfaceLog(body,result,path); return result; } /** * 根据车库编码查询出入口列表 * @param body * @return */ public static String entranceList(String body) { Map path = getPath(HKConstants.InterfacePath.getEntranceList); String result = ArtemisHttpUtil.doPostStringArtemis(path, body, null, null, "application/json", null);// post请求application/json类型参数 saveInterfaceLog(body,result,path); return result; } /** * 车辆预约 * @param body * @return */ public static String parkAddition(String body) { Map path = getPath(HKConstants.InterfacePath.parkAddition); String result = ArtemisHttpUtil.doPostStringArtemis(path, body, null, null, "application/json", null);// post请求application/json类型参数 saveInterfaceLog(body,result,path); return result; } /** * 车辆取消预约 * @param body * @return */ public static String parkDeletion(String body) { Map path = getPath(HKConstants.InterfacePath.parkDeletion); String result = ArtemisHttpUtil.doPostStringArtemis(path, body, null, null, "application/json", null);// post请求application/json类型参数 saveInterfaceLog(body,result,path); return result; } /** * 固定车辆充值(包期) * @param body * @return */ public static String carChargeAddtion(String body) { Map path = getPath(HKConstants.InterfacePath.carChargeAddtion); String result = ArtemisHttpUtil.doPostStringArtemis(path, body, null, null, "application/json", null);// post请求application/json类型参数 saveInterfaceLog(body,result,path); return result; } /** * 固定车辆取消包期 * @param body * @return */ public static String carChargeDeletion(String body) { Map path = getPath(HKConstants.InterfacePath.carChargeDeletion); String result = ArtemisHttpUtil.doPostStringArtemis(path, body, null, null, "application/json", null);// post请求application/json类型参数 saveInterfaceLog(body,result,path); return result; } /** * 获取人脸数据(提取人脸访问地址) * @param body * @return */ public static InputStream getFaceInputStream(String body) throws Exception{ Map path = getPath(HKConstants.InterfacePath.facePicture); //参数根据接口实际情况设置 HttpResponse resp = ArtemisHttpUtil.doPostStringImgArtemis( path, body, null, null,"application/json",null); if (200==resp.getStatusLine().getStatusCode()) { HttpEntity entity = resp.getEntity(); InputStream in = entity.getContent(); return in; }else{ throw new Exception("人脸下载出错"); } } /** * 获取访客记录中的图片 * @param body * @return */ public static InputStream getVisitPicture(String body) throws Exception{ Map path = getPath(HKConstants.InterfacePath.visitPicture); //参数根据接口实际情况设置 HttpResponse resp = ArtemisHttpUtil.doPostStringImgArtemis( path, body, null, null,"application/json",null); if (200==resp.getStatusLine().getStatusCode()) { HttpEntity entity = resp.getEntity(); InputStream in = entity.getContent(); return in; }else{ throw new Exception("获取访客记录中的图片下载出错"); } } /** * 获取门禁事件的图片 * @param body * @return */ public static InputStream getDevicePicture(String body) throws Exception{ Map path = getPath(HKConstants.InterfacePath.devicePicture); //参数根据接口实际情况设置 HttpResponse resp = ArtemisHttpUtil.doPostStringImgArtemis( path, body, null, null,"application/json",null); if (200==resp.getStatusLine().getStatusCode()) { HttpEntity entity = resp.getEntity(); InputStream in = entity.getContent(); return in; }else{ throw new Exception("获取门禁事件的图片下载出错"); } } /** * 查询车辆抓拍图片 * @param body * @return */ public static InputStream getCarPicture(String body) throws Exception{ Map path = getPath(HKConstants.InterfacePath.carPicture); //参数根据接口实际情况设置 HttpResponse resp = ArtemisHttpUtil.doPostStringImgArtemis( path, body, null, null,"application/json",null); if (200==resp.getStatusLine().getStatusCode()) { HttpEntity entity = resp.getEntity(); InputStream in = entity.getContent(); return in; }else{ throw new Exception("查询车辆抓拍图片下载出错"); } } /** * 获取门禁点列表 * @param body * @return */ public static String doorSearch(String body) { Map path = getPath(HKConstants.InterfacePath.doorSearch); String result = ArtemisHttpUtil.doPostStringArtemis(path, body, null, null, "application/json", null);// post请求application/json类型参数 saveInterfaceLog(body,result,path); return result; } /** * 获取门禁设备列表 * @param body * @return */ public static String acsDeviceList(String body) { Map path = getPath(HKConstants.InterfacePath.acsDeviceList); String result = ArtemisHttpUtil.doPostStringArtemis(path, body, null, null, "application/json", null);// post请求application/json类型参数 saveInterfaceLog(body,result,path); return result; } /** * 增量获取门禁设备列表 * @param body * @return */ public static String acsDeviceTimeRangeList(String body) { Map path = getPath(HKConstants.InterfacePath.acsDeviceList); String result = ArtemisHttpUtil.doPostStringArtemis(path, body, null, null, "application/json", null);// post请求application/json类型参数 saveInterfaceLog(body,result,path); return result; } /** * 访客预约 * @param body * @return */ public static String visitAppiontment(String body) { Map path = getPath(HKConstants.InterfacePath.visitAppiontment); String result = ArtemisHttpUtil.doPostStringArtemis(path, body, null, null, "application/json", null);// post请求application/json类型参数 saveInterfaceLog(body,result,path); return result; } /** * 访客免登记预约 * @param body * @return */ public static String visitAppiontmentMDJ(String body) { Map path = getPath(HKConstants.InterfacePath.visitAppiontmentMDJ); String result = ArtemisHttpUtil.doPostStringArtemis(path, body, null, null, "application/json", null);// post请求application/json类型参数 saveInterfaceLog(body,result,path); return result; } /** * 取消访客预约 * @param body * @return */ public static String visitCancel(String body) { Map path = getPath(HKConstants.InterfacePath.visitCancel); String result = ArtemisHttpUtil.doPostStringArtemis(path, body, null, null, "application/json", null);// post请求application/json类型参数 saveInterfaceLog(body,result,path); return result; } /** * 签离访客预约 * @param body * @return */ public static String visitOut(String body) { Map path = getPath(HKConstants.InterfacePath.visitOut); String result = ArtemisHttpUtil.doPostStringArtemis(path, body, null, null, "application/json", null);// post请求application/json类型参数 saveInterfaceLog(body,result,path); return result; } /** * 访客权限组 * @param body * @return */ public static String privilegeGroup(String body) { Map path = getPath(HKConstants.InterfacePath.privilegeGroup); String result = ArtemisHttpUtil.doPostStringArtemis(path, body, null, null, "application/json", null);// post请求application/json类型参数 saveInterfaceLog(body,result,path); return result; } /** * 事件订阅 * @param body * @return */ public static String eventSub(String body) { Map path = getPath(HKConstants.InterfacePath.eventSub); String result = ArtemisHttpUtil.doPostStringArtemis(path, body, null, null, "application/json", null);// post请求application/json类型参数 saveInterfaceLog(body,result,path); return result; } /** * 取消事件订阅 * @param body * @return */ public static String cancelEventSub(String body) { Map path = getPath(HKConstants.InterfacePath.cancelEventSub); String result = ArtemisHttpUtil.doPostStringArtemis(path, body, null, null, "application/json", null);// post请求application/json类型参数 saveInterfaceLog(body,result,path); return result; } /** * 创建一卡通权限下载任务 * @param body * @return */ public static String taskAddition(String body) { Map path = getPath(HKConstants.InterfacePath.taskAddition); String result = ArtemisHttpUtil.doPostStringArtemis(path, body, null, null, "application/json", null);// post请求application/json类型参数 saveInterfaceLog(body,result,path); return result; } /** * 查询一卡通权限查询设备通道的人员权限下载详情总数v2 * @param body * @return */ public static String taskProgress(String body) { Map path = getPath(HKConstants.InterfacePath.taskProgress); String result = ArtemisHttpUtil.doPostStringArtemis(path, body, null, null, "application/json", null);// post请求application/json类型参数 saveInterfaceLog(body,result,path); return result; } /** * 查询一卡通权限下载任务进度 * @param body * @return */ public static String taskProgressNum(String body) { Map path = getPath(HKConstants.InterfacePath.taskProgressNum); String result = ArtemisHttpUtil.doPostStringArtemis(path, body, null, null, "application/json", null);// post请求application/json类型参数 saveInterfaceLog(body,result,path); return result; } /** * 一卡通权限下载任务中添加数据_根据人员与设备通道指定下载 * @param body * @return */ public static String taskDataAddition(String body) { Map path = getPath(HKConstants.InterfacePath.taskDataAddition); String result = ArtemisHttpUtil.doPostStringArtemis(path, body, null, null, "application/json", null);// post请求application/json类型参数 saveInterfaceLog(body,result,path); return result; } /** * 一卡通开始下载任务 * @param body * @return */ public static String taskStart(String body) { Map path = getPath(HKConstants.InterfacePath.taskStart); String result = ArtemisHttpUtil.doPostStringArtemis(path, body, null, null, "application/json", null);// post请求application/json类型参数 saveInterfaceLog(body,result,path); return result; } /** * 查询权限条目列表 * @param body * @return */ public static String authItemList(String body) { Map path = getPath(HKConstants.InterfacePath.authItemList); Map header = new HashMap<>(); header.put("tagId", UUID.randomUUID().toString().replace("-", "")); // header.put("tagId", "frs"); String result = ArtemisHttpUtil.doPostStringArtemis(path, body, null, null, "application/json", header);// post请求application/json类型参数 saveInterfaceLog(body,result,path); return result; } /** * 批量开卡 * @param body * @return */ public static String cardBingding(String body) { Map path = getPath(HKConstants.InterfacePath.cardBingding); Map header = new HashMap<>(); String result = ArtemisHttpUtil.doPostStringArtemis(path, body, null, null, "application/json", header);// post请求application/json类型参数 saveInterfaceLog(body,result,path); return result; } /** * 退卡 * @param body * @return */ public static String cardDeletion(String body) { Map path = getPath(HKConstants.InterfacePath.cardDeletion); Map header = new HashMap<>(); String result = ArtemisHttpUtil.doPostStringArtemis(path, body, null, null, "application/json", header);// post请求application/json类型参数 saveInterfaceLog(body,result,path); return result; } /** * 批量挂失 * @param body * @return */ public static String cardLoss(String body) { Map path = getPath(HKConstants.InterfacePath.cardLoss); Map header = new HashMap<>(); String result = ArtemisHttpUtil.doPostStringArtemis(path, body, null, null, "application/json", header);// post请求application/json类型参数 saveInterfaceLog(body,result,path); return result; } /** * 批量解挂 * @param body * @return */ public static String cardUnloss(String body) { Map path = getPath(HKConstants.InterfacePath.cardUnloss); Map header = new HashMap<>(); String result = ArtemisHttpUtil.doPostStringArtemis(path, body, null, null, "application/json", header);// post请求application/json类型参数 saveInterfaceLog(body,result,path); return result; } /** * 查询设备通道的人员权限下载详情 * @param body * @return */ public static String taskPersoDetail(String body) { Map path = getPath(HKConstants.InterfacePath.taskPersoDetail); Map header = new HashMap<>(); String result = ArtemisHttpUtil.doPostStringArtemis(path, body, null, null, "application/json", header);// post请求application/json类型参数 saveInterfaceLog(body,result,path); return result; } /** * 获取访客预约记录列表 * @param body * @return */ public static String visitingRecords(String body) { Map path = getPath(HKConstants.InterfacePath.visitingRecords); String result = ArtemisHttpUtil.doPostStringArtemis(path, body, null, null, "application/json", null);// post请求application/json类型参数 saveInterfaceLog(body,result,path); return result; } /** * 获取访客预约记录列表 * @param body * @return */ public static String appointmentRecords(String body) { Map path = getPath(HKConstants.InterfacePath.appointmentRecords); String result = ArtemisHttpUtil.doPostStringArtemis(path, body, null, null, "application/json", null);// post请求application/json类型参数 saveInterfaceLog(body,result,path); return result; } /** * 获取全量组织列表 * @param body * @return */ public static String orgAllList(String body) { Map path = getPath(HKConstants.InterfacePath.orgAllList); String result = ArtemisHttpUtil.doPostStringArtemis(path, body, null, null, "application/json", null);// post请求application/json类型参数 saveInterfaceLog(body,result,path); return result; } /** * 获取全量用户列表 * @param body * @return */ public static String userAllList(String body) { Map path = getPath(HKConstants.InterfacePath.userAllList); String result = ArtemisHttpUtil.doPostStringArtemis(path, body, null, null, "application/json", null);// post请求application/json类型参数 saveInterfaceLog(body,result,path); return result; } /** * 增量获取组织列表 * @param body * @return */ public static String orgTimeRangeList(String body) { Map path = getPath(HKConstants.InterfacePath.orgTimeRangeList); String result = ArtemisHttpUtil.doPostStringArtemis(path, body, null, null, "application/json", null);// post请求application/json类型参数 saveInterfaceLog(body,result,path); return result; } /** * 增量获取用户列表 * @param body * @return */ public static String userTimeRangeList(String body) { Map path = getPath(HKConstants.InterfacePath.userTimeRangeList); String result = ArtemisHttpUtil.doPostStringArtemis(path, body, null, null, "application/json", null);// post请求application/json类型参数 saveInterfaceLog(body,result,path); return result; } /** * 增量获取车辆列表 * @param body * @return */ public static String vehicleTimeRangeList(String body) { Map path = getPath(HKConstants.InterfacePath.vehicleTimeRangeList); String result = ArtemisHttpUtil.doPostStringArtemis(path, body, null, null, "application/json", null);// post请求application/json类型参数 saveInterfaceLog(body,result,path); return result; } /** * 全量获取车辆列表 * @param body * @return */ public static String vehicleList(String body) { Map path = getPath(HKConstants.InterfacePath.vehicleList); String result = ArtemisHttpUtil.doPostStringArtemis(path, body, null, null, "application/json", null);// post请求application/json类型参数 saveInterfaceLog(body,result,path); return result; } /** * 停车场过车记录查询 * @param body * @return */ public static String parkCrossRecords(String body) { Map path = getPath(HKConstants.InterfacePath.parkCrossRecords); String result = ArtemisHttpUtil.doPostStringArtemis(path, body, null, null, "application/json", null);// post请求application/json类型参数 saveInterfaceLog(body,result,path); return result; } /** * 停车场过车记录查询 * @param body * @return */ public static String facePictureCheck(String body) { Map path = getPath(HKConstants.InterfacePath.facePictureCheck); String result = ArtemisHttpUtil.doPostStringArtemis(path, body, null, null, "application/json", null);// post请求application/json类型参数 saveInterfaceLog(body,result,path); return result; } }