| | |
| | | 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.model.param.request.FacePictureCheckRequest; |
| | | 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.commons.lang3.StringUtils; |
| | | 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.*; |
| | | import java.io.File; |
| | | import java.io.FileOutputStream; |
| | | import java.io.InputStream; |
| | | import java.util.Date; |
| | | import java.util.HashMap; |
| | | import java.util.Map; |
| | | import java.util.UUID; |
| | | |
| | | |
| | | @Slf4j |
| | |
| | | |
| | | |
| | | public static void main(String[] args) throws Exception { |
| | | ArtemisConfig.host = "10.50.60.253"; |
| | | ArtemisConfig.appKey = "27786546"; |
| | | ArtemisConfig.appSecret = "kC5dohxU7CvEqgGhVt4R"; |
| | | ArtemisConfig.host = "10.50.250.253:1443"; |
| | | |
| | | ArtemisConfig.appKey = "23154099"; |
| | | ArtemisConfig.appSecret = "88wFsg3xfn7o8QMsWEO2"; |
| | | HKConstants.https = "https://"; |
| | | CarPictureRequest param = new CarPictureRequest(); |
| | | /* 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); |
| | |
| | | outStream.close(); //写入数据 |
| | | } catch ( Exception e) { |
| | | throw new RuntimeException(e); |
| | | } |
| | | }*/ |
| | | |
| | | FacePictureCheckRequest param = new FacePictureCheckRequest(); |
| | | param.setFacePicUrl("http://10.50.250.253:8088/file/member/20241016/d0cded86-a55d-43be-bc01-4f628a1400cf.jpg"); |
| | | System.out.println(facePictureCheck(JSONObject.toJSONString(param))); |
| | | |
| | | } |
| | | public static InterfaceLogService interfaceLogService = null; |
| | | private static void saveInterfaceLog(String s, String result,Map<String, String> path) { |
| | | private static void saveInterfaceLog(String s, String result,Map<String, String> path,String name) { |
| | | // InterfaceLogService bean = SpringContextUtil.getBean(InterfaceLogService.class); |
| | | if(interfaceLogService !=null){ |
| | | InterfaceLog hkMonitoryLogDO=new InterfaceLog(); |
| | |
| | | hkMonitoryLogDO.setIsdeleted(0); |
| | | hkMonitoryLogDO.setRequest(s); |
| | | hkMonitoryLogDO.setRepose(result); |
| | | hkMonitoryLogDO.setName(path.get(HKConstants.https)); |
| | | hkMonitoryLogDO.setName("【安防平台】"+name); |
| | | hkMonitoryLogDO.setUrl(HKConstants.https + ArtemisConfig.host+path.get(HKConstants.https)); |
| | | interfaceLogService.create(hkMonitoryLogDO); |
| | | } |
| | |
| | | private static Map<String, String> getPath(String str) { |
| | | final String getCamsApi = HKConstants.ARTEMIS_PATH + str; |
| | | Map<String, String> path = new HashMap<String, String>(2) { |
| | | { |
| | | put(HKConstants.https, getCamsApi);// 根据现场环境部署确认是http还是https |
| | | } |
| | | { |
| | | put(HKConstants.https, getCamsApi);// 根据现场环境部署确认是http还是https |
| | | } |
| | | }; |
| | | return path; |
| | | } |
| | |
| | | */ |
| | | public static InputStream getFaceInputStream(String body) throws Exception{ |
| | | |
| | | Map<String, String> path = getPath(HKConstants.InterfacePath.facePicture); |
| | | Map<String, String> path = getPath(HKConstants.InterfacePath.facePicture[0]); |
| | | //参数根据接口实际情况设置 |
| | | HttpResponse resp = ArtemisHttpUtil.doPostStringImgArtemis( path, body, null, null,"application/json",null); |
| | | if (200==resp.getStatusLine().getStatusCode()) { |
| | |
| | | InputStream in = entity.getContent(); |
| | | return in; |
| | | }else{ |
| | | log.error("人脸下载出错"); |
| | | throw new Exception("人脸下载出错"); |
| | | } |
| | | } |
| | |
| | | * @return |
| | | */ |
| | | public static InputStream getVisitPicture(String body) throws Exception{ |
| | | Map<String, String> path = getPath(HKConstants.InterfacePath.visitPicture); |
| | | Map<String, String> path = getPath(HKConstants.InterfacePath.visitPicture[0]); |
| | | //参数根据接口实际情况设置 |
| | | HttpResponse resp = ArtemisHttpUtil.doPostStringImgArtemis( path, body, null, null,"application/json",null); |
| | | if (200==resp.getStatusLine().getStatusCode()) { |
| | |
| | | */ |
| | | public static InputStream getDevicePicture(String body) throws Exception{ |
| | | |
| | | Map<String, String> path = getPath(HKConstants.InterfacePath.devicePicture); |
| | | Map<String, String> path = getPath(HKConstants.InterfacePath.devicePicture[0]); |
| | | //参数根据接口实际情况设置 |
| | | HttpResponse resp = ArtemisHttpUtil.doPostStringImgArtemis( path, body, null, null,"application/json",null); |
| | | if (200==resp.getStatusLine().getStatusCode()) { |
| | |
| | | */ |
| | | public static InputStream getCarPicture(String body) throws Exception{ |
| | | |
| | | Map<String, String> path = getPath(HKConstants.InterfacePath.carPicture); |
| | | Map<String, String> path = getPath(HKConstants.InterfacePath.carPicture[0]); |
| | | //参数根据接口实际情况设置 |
| | | HttpResponse resp = ArtemisHttpUtil.doPostStringImgArtemis( path, body, null, null,"application/json",null); |
| | | if (200==resp.getStatusLine().getStatusCode()) { |
| | |
| | | }else{ |
| | | throw new Exception("查询车辆抓拍图片下载出错"); |
| | | } |
| | | } |
| | | /** |
| | | * 分页获取待办列表 |
| | | * @param body |
| | | * @return |
| | | */ |
| | | public static String getTodoListPage(Map<String, String> body) throws Exception{ |
| | | return startDoGetStringArtemis(HKConstants.InterfacePath.getTodoListPage,body); |
| | | } |
| | | /** |
| | | * 获取门禁点列表 |
| | |
| | | return startDoPostStringArtemis(HKConstants.InterfacePath.visitAppiontment,body); |
| | | } |
| | | /** |
| | | * 访客预约 |
| | | * @param body |
| | | * @return |
| | | */ |
| | | public static String iccmAppointment(String body) { |
| | | return startDoPostStringArtemis(HKConstants.InterfacePath.iccmAppointment,body); |
| | | } |
| | | /** |
| | | * 访客免登记预约 |
| | | * @param body |
| | | * @return |
| | | */ |
| | | public static String iccmAppointmentMDJ(String body) { |
| | | return startDoPostStringArtemis(HKConstants.InterfacePath.iccmAppointmentMDJ,body); |
| | | } |
| | | /** |
| | | * 访客免登记预约 |
| | | * @param body |
| | | * @return |
| | |
| | | return startDoPostStringArtemis(HKConstants.InterfacePath.visitCancel,body); |
| | | } |
| | | |
| | | public static String startDoPostStringArtemis(String pathStr,String body){ |
| | | Map<String, String> path = getPath(pathStr); |
| | | |
| | | public static String startDoPostStringArtemis(String[] pathStr,String body ){ |
| | | Map<String, String> path = getPath(pathStr[0]); |
| | | Map<String, String> header = new HashMap<>(); |
| | | header.put("tagId", UUID.randomUUID().toString().replace("-", "")); |
| | | String result = ArtemisHttpUtil.doPostStringArtemis(path, body, null, null, "application/json", header);// post请求application/json类型参数 |
| | | saveInterfaceLog(body,result,path); |
| | | saveInterfaceLog(body,result,path,pathStr[1]); |
| | | return result; |
| | | } |
| | | public static String startDoGetStringArtemis(String[] pathStr,Map<String,String> body ){ |
| | | Map<String, String> path = getPath(pathStr[0]); |
| | | Map<String, String> header = new HashMap<>(); |
| | | header.put("tagId", UUID.randomUUID().toString().replace("-", "")); |
| | | String result = ArtemisHttpUtil.doGetArtemis(path, body, null, null, header); |
| | | saveInterfaceLog(JSONObject.toJSONString(body),result,path,pathStr[1]); |
| | | return result; |
| | | } |
| | | public static String startDoPostStringArtemis(String[] pathStr,String param,String body ){ |
| | | Map<String, String> path = getPath(pathStr[0]+StringUtils.defaultString(param,"")); |
| | | Map<String, String> header = new HashMap<>(); |
| | | header.put("tagId", UUID.randomUUID().toString().replace("-", "")); |
| | | String result = ArtemisHttpUtil.doPostStringArtemis(path, body, null, null, "application/json", header);// post请求application/json类型参数 |
| | | saveInterfaceLog(body,result,path,pathStr[1]); |
| | | return result; |
| | | |
| | | } |
| | | public static String startDoPostStringArtemis(String pathStr,Map<String, String> querys,Map<String, String> header,String body){ |
| | | Map<String, String> path = getPath(pathStr); |
| | | public static String startDoPostStringArtemis(String[] pathStr,Map<String, String> querys,Map<String, String> header,String body){ |
| | | Map<String, String> path = getPath(pathStr[0]); |
| | | header.put("tagId", UUID.randomUUID().toString().replace("-", "")); |
| | | String result = ArtemisHttpUtil.doPostStringArtemis(path, body, querys, null, "application/json", header);// post请求application/json类型参数 |
| | | saveInterfaceLog(body,result,path); |
| | | saveInterfaceLog(body,result,path,pathStr[1]); |
| | | return result; |
| | | |
| | | } |
| | |
| | | } |
| | | |
| | | /** |
| | | * 获取全量组织信息 |
| | | * @param body |
| | | * @return |
| | | */ |
| | | public static String orgAllList(String body) { |
| | | return startDoPostStringArtemis(HKConstants.InterfacePath.orgAllList,body); |
| | | } |
| | | /** |
| | | * 获取访客预约记录列表 |
| | | * @param body |
| | | * @return |
| | |
| | | public static String appointmentRecords(String body) { |
| | | return startDoPostStringArtemis(HKConstants.InterfacePath.appointmentRecords,body); |
| | | } |
| | | |
| | | /** |
| | | * 获取全量组织列表 |
| | | * 获取访客预约记录列表 iccm |
| | | * @param body |
| | | * @return |
| | | */ |
| | | public static String orgAllList(String body) { |
| | | return startDoPostStringArtemis(HKConstants.InterfacePath.orgAllList,body); |
| | | public static String iccmAppointmentRecords(String body) { |
| | | return startDoPostStringArtemis(HKConstants.InterfacePath.iccmAppointmentRecords,body); |
| | | } |
| | | /** |
| | | * 根据微信公众号信息获取AccessToken |
| | | * @return |
| | | */ |
| | | public static String wxAccessToken(String configId,String tagId) { |
| | | String[] wxAccessToken= HKConstants.InterfacePath.wxAccessToken; |
| | | wxAccessToken[0] = HKConstants.InterfacePath.wxAccessToken+"?tagId="+tagId+"&configId"+configId; |
| | | return startDoPostStringArtemis(wxAccessToken,""); |
| | | } |
| | | /** |
| | | * 根据配置微信公众号编号查询微信公众号信息 |
| | | * @param body |
| | | * @return |
| | | */ |
| | | public static String getWxConfig(Map<String,String> body) { |
| | | return startDoGetStringArtemis(HKConstants.InterfacePath.getWxConfig,body); |
| | | } |
| | | /** |
| | | * 根据配置微信公众号编号查询微信公众号信息 |
| | | * @param body |
| | | * @return |
| | | */ |
| | | public static String nhEventPageList(Map<String,String> body) { |
| | | return startDoGetStringArtemis(HKConstants.InterfacePath.nhEventPageList,body); |
| | | } |
| | | |
| | | /** |
| | | * 查询消防设备部件状态 |
| | | * @param body |
| | | * @return |
| | | */ |
| | | public static String fireDeviceStatusSearch(String body) { |
| | | return startDoPostStringArtemis(HKConstants.InterfacePath.fireDeviceStatusSearch,body); |
| | | } |
| | | /** |
| | | * 分页查询消防传感器部件状态 |
| | | * @param body |
| | | * @return |
| | | */ |
| | | public static String sensorStatusSearch(String body) { |
| | | return startDoPostStringArtemis(HKConstants.InterfacePath.sensorStatusSearch,body); |
| | | } |
| | | /** |
| | | * 分页查询设备下的所有报警记录 |
| | | * @param body |
| | | * @return |
| | | */ |
| | | public static String findDeviceAlarmPage(String body) { |
| | | return startDoPostStringArtemis(HKConstants.InterfacePath.findDeviceAlarmPage,body); |
| | | } |
| | | /** |
| | | * 询消防设备列表 |
| | | * @param body |
| | | * @return |
| | | */ |
| | | public static String fireChannelSearch(String body) { |
| | | return startDoPostStringArtemis(HKConstants.InterfacePath.fireChannelSearch,body); |
| | | } |
| | | |
| | | /** |
| | | * 询消防设备列表 |
| | | * @param body |
| | | * @return |
| | | */ |
| | | public static String fireDeviceSearch(String body) { |
| | | return startDoPostStringArtemis(HKConstants.InterfacePath.fireDeviceSearch,body); |
| | | } |
| | | /** |
| | | * 获取全量用户列表 |
| | |
| | | return startDoPostStringArtemis(HKConstants.InterfacePath.platformsList,body); |
| | | } |
| | | /** |
| | | * 获取月台状态 |
| | | * 获取消防传感器列表 |
| | | * @param body |
| | | * @return |
| | | */ |
| | | public static String platformStatus(String body) { |
| | | return startDoPostStringArtemis(HKConstants.InterfacePath.platformStatus,body); |
| | | public static String pageFireChannel(String body) { |
| | | return startDoPostStringArtemis(HKConstants.InterfacePath.pageFireChannel,body); |
| | | } |
| | | /** |
| | | * 查询消防传感器部件状态v2 |
| | | * @param body |
| | | * @return |
| | | */ |
| | | public static String pageSensorStatus(String body) { |
| | | return startDoPostStringArtemis(HKConstants.InterfacePath.pageSensorStatus,body); |
| | | } |
| | | /** |
| | | * 安防看板-今日告警事件-根据eventType字段3 |
| | | * @param body |
| | | * @return |
| | | */ |
| | | public static String ruleEventSearch(String body) { |
| | | return startDoPostStringArtemis(HKConstants.InterfacePath.ruleEventSearch,body); |
| | | } |
| | | /** |
| | | * 安防看板-园区安防设备-各类型设备状态数据列表 |
| | | * @param body |
| | | * @return |
| | | */ |
| | | public static String getSecureDevStatusList(String body) { |
| | | return startDoPostStringArtemis(HKConstants.InterfacePath.getSecureDevStatusList,body); |
| | | } |
| | | /** |
| | | * 能耗看板-6按月查询近12个月的用电总量数据 |
| | | * @param body |
| | | * @return |
| | | */ |
| | | public static String energyTrend(String body) { |
| | | return startDoPostStringArtemis(HKConstants.InterfacePath.energyTrend,body); |
| | | } |
| | | /** |
| | | * 消防维保统计 |
| | | * @param body |
| | | * @return |
| | | */ |
| | | public static String fireStatistic(String body) { |
| | | return startDoPostStringArtemis(HKConstants.InterfacePath.fireStatistic,body); |
| | | } |
| | | /** |
| | | * 消防看板-消防设备在离线1 |
| | | * @param body |
| | | * @return |
| | | */ |
| | | public static String getFireDevStatusTotal(String body) { |
| | | return startDoPostStringArtemis(HKConstants.InterfacePath.getFireDevStatusTotal,body); |
| | | } |
| | | /** |
| | | * 消防看板-各类型设备在线率2 |
| | | * @param body |
| | | * @return |
| | | */ |
| | | public static String getFireDevStatusList(String body) { |
| | | return startDoPostStringArtemis(HKConstants.InterfacePath.getFireDevStatusList,body); |
| | | } |
| | | /** |
| | | *消防看板-4报警信息统计 |
| | | * @param body |
| | | * @return |
| | | */ |
| | | public static String findAlarmBaseDataStatistic(String body) { |
| | | return startDoPostStringArtemis(HKConstants.InterfacePath.findAlarmBaseDataStatistic,body); |
| | | } |
| | | /** |
| | | *安防看板-- 分页查询未处理报警信息6 |
| | | * @param body |
| | | * @return |
| | | */ |
| | | public static String findHomeAlarmInfoPage(String body) { |
| | | return startDoPostStringArtemis(HKConstants.InterfacePath.findHomeAlarmInfoPage,body); |
| | | } |
| | | /** |
| | | *分页查询设备监测历史数据 |
| | | * @param body |
| | | * @return |
| | | */ |
| | | public static String minitorDataSearch(String body) { |
| | | return startDoPostStringArtemis(HKConstants.InterfacePath.minitorDataSearch,body); |
| | | } |
| | | /** |
| | | * 统计园区总体的安防设备数量,在线数、在线率、离线数、离线率 |
| | | * @param body |
| | | * @return |
| | | */ |
| | | public static String getSecureDevStatusTotal(String body) { |
| | | return startDoPostStringArtemis(HKConstants.InterfacePath.getSecureDevStatusTotal,body); |
| | | } |
| | | /** |
| | | * 统安防看板--园区实时车数量4 |
| | | * @return |
| | | */ |
| | | public static String getParkingStatistics() { |
| | | return startDoGetStringArtemis(HKConstants.InterfacePath.getParkingStatistics,null); |
| | | } |
| | | /** |
| | | * 能耗看板-1.获取本月用能总量-自然月 |
| | | * @return |
| | | */ |
| | | public static String getCurrentMonthDataByMeterType(Map<String,String> powerType) { |
| | | return startDoGetStringArtemis(HKConstants.InterfacePath.getCurrentMonthDataByMeterType,powerType); |
| | | } |
| | | /** |
| | | * 能耗看板-2.获取区域用能前N位 |
| | | * @return |
| | | */ |
| | | public static String regionTopPower(Map<String,String> params) { |
| | | return startDoGetStringArtemis(HKConstants.InterfacePath.regionTopPower,params); |
| | | } |
| | | /** |
| | | * 能耗看板-3.获取各区域用能及总能耗 |
| | | * @return |
| | | */ |
| | | public static String regionEnergyList(Map<String,String> params) { |
| | | return startDoGetStringArtemis(HKConstants.InterfacePath.regionEnergyList,params); |
| | | } |
| | | /** |
| | | * 能耗看板-4.获取上月用能费用,一天刷新,凌晨某个点刷 |
| | | * @return |
| | | */ |
| | | public static String lastMonthFeeByMeterType(Map<String,String> params) { |
| | | return startDoGetStringArtemis(HKConstants.InterfacePath.lastMonthFeeByMeterType,params); |
| | | } |
| | | /** |
| | | * 能耗看板-5.园区实时负荷曲线 |
| | | * @return |
| | | */ |
| | | public static String energyTodayLoadData( ) { |
| | | return startDoGetStringArtemis(HKConstants.InterfacePath.energyTodayLoadData,null); |
| | | } |
| | | /** |
| | | * 获取月台状态 |
| | | * @return |
| | | */ |
| | | public static String platformStatus(String param) { |
| | | if(StringUtils.isNotBlank(param)){ |
| | | return startDoPostStringArtemis(HKConstants.InterfacePath.platformStatus,"?platformIds="+param,null); |
| | | }else{ |
| | | return startDoPostStringArtemis(HKConstants.InterfacePath.platformStatus,null); |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 获取菜单 |
| | | * @param body |
| | | * @return |
| | | */ |
| | | public static String getHkMenu(Map<String,String> body) { |
| | | return startDoGetStringArtemis(HKConstants.InterfacePath.getMenus,body); |
| | | } |
| | | /** |
| | | * 分页获取区域列表 |
| | | * @param body |
| | | * @return |
| | | */ |
| | | public static String pageRegions(Map<String,String> header,String body) { |
| | | return startDoPostStringArtemis(HKConstants.InterfacePath.pageRegions,null,header,body); |
| | | } |
| | | /** |
| | | * 分页获取监控点资源 |
| | | * @param body |
| | | * @return |
| | | */ |
| | | public static String pageCameras(Map<String,String> header,String body) { |
| | | return startDoPostStringArtemis(HKConstants.InterfacePath.pageCameras,null,header,body); |
| | | } |
| | | /** |
| | | * 获取监控点预览取流URL |
| | | * @param body |
| | | * @return |
| | | */ |
| | | public static String cameraPreviewURLs(Map<String,String> header,String body) { |
| | | return startDoPostStringArtemis(HKConstants.InterfacePath.cameraPreviewURLs,null,header,body); |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 发送短信验证码 |
| | | * @param body |
| | | * @return |
| | | */ |
| | | public static String sendSms(String body) { |
| | | return startDoPostStringArtemis(HKConstants.InterfacePath.sendSms,body); |
| | | } |
| | | |
| | | /** |
| | | * 获取月台组件配置的LED设备清单 |
| | | * @param body |
| | |
| | | return startDoPostStringArtemis(HKConstants.InterfacePath.applyST,body); |
| | | } |
| | | |
| | | public static String getMenuUrl(String menuId, String token) { |
| | | String url = HKConstants.InterfacePath.goMenuUrl[0]; |
| | | url = url.replace("${menuId}", menuId).replace("${token}",token); |
| | | return url; |
| | | } |
| | | } |