| | |
| | | import com.doumee.core.haikang.model.param.BaseResponse; |
| | | import com.doumee.core.haikang.model.param.request.*; |
| | | import com.doumee.core.haikang.model.param.respose.*; |
| | | import com.doumee.core.utils.Constants; |
| | | import com.hikvision.artemis.sdk.config.ArtemisConfig; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.apache.commons.lang3.StringUtils; |
| | | import org.slf4j.Logger; |
| | | import org.slf4j.LoggerFactory; |
| | | |
| | | import java.io.InputStream; |
| | | import java.lang.reflect.Field; |
| | | import java.util.HashMap; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | |
| | | @Slf4j |
| | | public class HKService { |
| | |
| | | */ |
| | | public static InputStream getFaceInputStream(FacePictureRequest param) { |
| | | log.info("【海康人脸访问图片流】================开始===="+JSONObject.toJSONString(param)); |
| | | log.error("********************ArtemisConfig.host***********************************"+ ArtemisConfig.host); |
| | | log.error("********************ArtemisConfig.key********************************"+ArtemisConfig.appKey); |
| | | try { |
| | | InputStream res = HKTools.getFaceInputStream(JSONObject.toJSONString(param)); |
| | | log.error("【海康人脸访问图片流】================成功====\n"); |
| | |
| | | public static BaseResponse parkReservationDeletion(ParkReservationDelRequest param){ |
| | | log.info("【海康车位取消预约】================开始===="+JSONObject.toJSONString(param)); |
| | | try { |
| | | String res = HKTools.carChargeDeletion(JSONObject.toJSONString(param)); |
| | | String res = HKTools.parkDeletion(JSONObject.toJSONString(param)); |
| | | TypeReference typeReference = |
| | | new TypeReference< BaseResponse>(){}; |
| | | BaseResponse result = JSONObject.parseObject(res, typeReference.getType()); |
| | |
| | | TypeReference typeReference = |
| | | new TypeReference< BaseResponse<VisitAppointmentResponse>>(){}; |
| | | BaseResponse<VisitAppointmentResponse> result = JSONObject.parseObject(res, typeReference.getType()); |
| | | logResult(result,"海康访客预约"); |
| | | return result; |
| | | }catch (Exception e){ |
| | | log.error("【海康访客预约】================失败====:\n"+ e.getMessage()); |
| | | } |
| | | return null; |
| | | } |
| | | /** |
| | | *访客预约 |
| | | * @return |
| | | */ |
| | | public static BaseResponse<IccmAppointmentResponse> iccmAppointment(IccmAppointmentRequest param){ |
| | | log.info("【海康访客预约】================开始===="+JSONObject.toJSONString(param)); |
| | | try { |
| | | String res = HKTools.iccmAppointment(JSONObject.toJSONString(param)); |
| | | TypeReference typeReference = |
| | | new TypeReference< BaseResponse<IccmAppointmentResponse>>(){}; |
| | | BaseResponse<IccmAppointmentResponse> result = JSONObject.parseObject(res, typeReference.getType()); |
| | | logResult(result,"海康访客预约"); |
| | | return result; |
| | | }catch (Exception e){ |
| | |
| | | return result; |
| | | }catch (Exception e){ |
| | | log.error("【海康访客免登记预约】================失败====:\n"+ e.getMessage()); |
| | | } |
| | | return null; |
| | | } |
| | | /** |
| | | *访客免登记预约 |
| | | * @return |
| | | */ |
| | | public static BaseResponse<IccmAppointmentMDJResponse> iccmAppiontmentMDJ(IccmAppointmentMDJRequest param){ |
| | | log.info("【海康访客免登记预约】================iccm开始===="+JSONObject.toJSONString(param)); |
| | | try { |
| | | String res = HKTools.iccmAppointmentMDJ(JSONObject.toJSONString(param)); |
| | | TypeReference typeReference = |
| | | new TypeReference< BaseResponse<IccmAppointmentMDJResponse> >(){}; |
| | | BaseResponse<IccmAppointmentMDJResponse> result = JSONObject.parseObject(res, typeReference.getType()); |
| | | logResult(result,"海康访客免登记预约"); |
| | | return result; |
| | | }catch (Exception e){ |
| | | log.error("【海康访客免登记预约】================iccm失败====:\n"+ e.getMessage()); |
| | | } |
| | | return null; |
| | | } |
| | |
| | | return null; |
| | | } |
| | | /** |
| | | *查询访客预约记录(分页) |
| | | * @return |
| | | */ |
| | | public static BaseResponse<BaseListPageResponse<IccmAppointmentListResponse>> iccmAppointmentRecords(IccmAppointmentListRequest param){ |
| | | log.info("【海康访客预约记录查询】================开始===="+JSONObject.toJSONString(param)); |
| | | try { |
| | | String res = HKTools.iccmAppointmentRecords(JSONObject.toJSONString(param)); |
| | | TypeReference typeReference = |
| | | new TypeReference<BaseResponse<BaseListPageResponse<IccmAppointmentListResponse>>>(){}; |
| | | BaseResponse<BaseListPageResponse<IccmAppointmentListResponse>> result = JSONObject.parseObject(res, typeReference.getType()); |
| | | logResult(result,"海康访客预约记录查询"); |
| | | return result; |
| | | }catch (Exception e){ |
| | | log.error("【海康访客预约记录查询】================失败====:\n"+ e.getMessage()); |
| | | } |
| | | return null; |
| | | } |
| | | /** |
| | | *1.9.1根据微信公众号信息获取AccessToken(分页) |
| | | * @return |
| | | */ |
| | | public static BaseResponse<String> wxAccessToken(String configId,String tagId){ |
| | | log.info("【海康根据微信公众号信息获取AccessToken】================开始====configId:"+configId+" && tagId:"+tagId); |
| | | try { |
| | | String res = HKTools.wxAccessToken(configId,tagId); |
| | | TypeReference typeReference = |
| | | new TypeReference<BaseResponse<String>>(){}; |
| | | BaseResponse<String> result = JSONObject.parseObject(res, typeReference.getType()); |
| | | logResult(result,"海康根据微信公众号信息获取AccessToken"); |
| | | return result; |
| | | }catch (Exception e){ |
| | | log.error("【海康根据微信公众号信息获取AccessToken】================失败====:\n"+ e.getMessage()); |
| | | } |
| | | return null; |
| | | } |
| | | /** |
| | | *根据配置微信公众号编号查询微信公众号信息 |
| | | * @return |
| | | */ |
| | | public static BaseResponse<BaseListPageResponse<WxConfigInfoResponse>> getWxConfig(WxConfigInfoRequest param){ |
| | | log.info("【海康根据配置微信公众号编号查询微信公众号信息】================开始===="+JSONObject.toJSONString(param)); |
| | | try { |
| | | String res = HKTools.getWxConfig(toMap(param)); |
| | | TypeReference typeReference = |
| | | new TypeReference<BaseResponse<BaseListPageResponse<WxConfigInfoResponse>>>(){}; |
| | | BaseResponse<BaseListPageResponse<WxConfigInfoResponse>> result = JSONObject.parseObject(res, typeReference.getType()); |
| | | logResult(result,"海康根据配置微信公众号编号查询微信公众号信息"); |
| | | return result; |
| | | }catch (Exception e){ |
| | | log.error("【海康根据配置微信公众号编号查询微信公众号信息】================失败====:\n"+ e.getMessage()); |
| | | } |
| | | return null; |
| | | } |
| | | |
| | | /** |
| | | *分页查询消防设备部件状态 |
| | | * @return |
| | | */ |
| | | public static BaseResponse<BaseListPageResponse<FireDeviceStatusListResponse>> fireDeviceStatusSearch(FireDeviceStatuslListRequest param){ |
| | | log.info("【海康查询消防设备部件状态】================开始===="+JSONObject.toJSONString(param)); |
| | | try { |
| | | String res = HKTools.fireDeviceStatusSearch(JSONObject.toJSONString(param)); |
| | | TypeReference typeReference = |
| | | new TypeReference<BaseResponse<BaseListPageResponse<FireDeviceStatusListResponse>>>(){}; |
| | | BaseResponse<BaseListPageResponse<FireDeviceStatusListResponse>> result = JSONObject.parseObject(res, typeReference.getType()); |
| | | logResult(result,"海康分页查询消防传感器部件状态"); |
| | | return result; |
| | | }catch (Exception e){ |
| | | log.error("【海康查询消防设备部件状态】================失败====:\n"+ e.getMessage()); |
| | | } |
| | | return null; |
| | | } |
| | | /** |
| | | *分页查询消防传感器部件状态 |
| | | * @return |
| | | */ |
| | | public static BaseResponse<BaseListPageResponse<SensorStatusListResponse>> sensorStatusSearch(SensorStatusListRequest param){ |
| | | log.info("【海康分页查询消防传感器部件状态】================开始===="+JSONObject.toJSONString(param)); |
| | | try { |
| | | String res = HKTools.sensorStatusSearch(JSONObject.toJSONString(param)); |
| | | TypeReference typeReference = |
| | | new TypeReference<BaseResponse<BaseListPageResponse<SensorStatusListResponse>>>(){}; |
| | | BaseResponse<BaseListPageResponse<SensorStatusListResponse>> result = JSONObject.parseObject(res, typeReference.getType()); |
| | | logResult(result,"海康分页查询消防传感器部件状态"); |
| | | return result; |
| | | }catch (Exception e){ |
| | | log.error("【海康分页查询消防传感器部件状态】================失败====:\n"+ e.getMessage()); |
| | | } |
| | | return null; |
| | | } |
| | | |
| | | /** |
| | | *查询消防传感器列表 |
| | | * @return |
| | | */ |
| | | public static BaseResponse<BaseListPageResponse<FireChannelListResponse>> fireChannelSearch(FireChannelListRequest param){ |
| | | log.info("【海康查询消防传感器列表】================开始===="+JSONObject.toJSONString(param)); |
| | | try { |
| | | String res = HKTools.fireChannelSearch(JSONObject.toJSONString(param)); |
| | | TypeReference typeReference = |
| | | new TypeReference<BaseResponse<BaseListPageResponse<FireChannelListResponse>>>(){}; |
| | | BaseResponse<BaseListPageResponse<FireChannelListResponse>> result = JSONObject.parseObject(res, typeReference.getType()); |
| | | logResult(result,"海康查询消防传感器列表"); |
| | | return result; |
| | | }catch (Exception e){ |
| | | log.error("【海康查询消防传感器列表】================失败====:\n"+ e.getMessage()); |
| | | } |
| | | return null; |
| | | } |
| | | /** |
| | | *分页查询设备下的所有报警记录 |
| | | * @return |
| | | */ |
| | | public static BaseResponse<BaseListPageResponse<FindDeviceAlarmListResponse>> findDeviceAlarmPage(FindDeviceAlarmListRequest param){ |
| | | log.info("【海康分页查询设备下的所有报警记录】================开始===="+JSONObject.toJSONString(param)); |
| | | try { |
| | | String res = HKTools.findDeviceAlarmPage(JSONObject.toJSONString(param)); |
| | | TypeReference typeReference = |
| | | new TypeReference<BaseResponse<BaseListPageResponse<FindDeviceAlarmListResponse>>>(){}; |
| | | BaseResponse<BaseListPageResponse<FindDeviceAlarmListResponse>> result = JSONObject.parseObject(res, typeReference.getType()); |
| | | logResult(result,"海康分页查询设备下的所有报警记录"); |
| | | return result; |
| | | }catch (Exception e){ |
| | | log.error("【海康分页查询设备下的所有报警记录】================失败====:\n"+ e.getMessage()); |
| | | } |
| | | return null; |
| | | } |
| | | /** |
| | | *询消防设备列表 |
| | | * @return |
| | | */ |
| | | public static BaseResponse<BaseListPageResponse<FireDeviceListResponse>> fireDeviceSearch(FireDeviceListRequest param){ |
| | | log.info("【海康询消防设备列表】================开始===="+JSONObject.toJSONString(param)); |
| | | try { |
| | | String res = HKTools.fireDeviceSearch(JSONObject.toJSONString(param)); |
| | | TypeReference typeReference = |
| | | new TypeReference<BaseResponse<BaseListPageResponse<FireDeviceListResponse>>>(){}; |
| | | BaseResponse<BaseListPageResponse<FireDeviceListResponse>> result = JSONObject.parseObject(res, typeReference.getType()); |
| | | logResult(result,"海康询消防设备列表"); |
| | | return result; |
| | | }catch (Exception e){ |
| | | log.error("【海康询消防设备列表】================失败====:\n"+ e.getMessage()); |
| | | } |
| | | return null; |
| | | } |
| | | /** |
| | | *分页获取告警事件 |
| | | * @return |
| | | */ |
| | | public static BaseResponse<BaseListPageResponse<NhEventPageListResponse>> nhEventPageList(NhEventPageListRequest param){ |
| | | log.info("【海康分页获取告警事件】================开始===="+JSONObject.toJSONString(param)); |
| | | try { |
| | | String res = HKTools.nhEventPageList(toMap(param)); |
| | | TypeReference typeReference = |
| | | new TypeReference<BaseResponse<BaseListPageResponse<NhEventPageListResponse>>>(){}; |
| | | BaseResponse<BaseListPageResponse<NhEventPageListResponse>> result = JSONObject.parseObject(res, typeReference.getType()); |
| | | logResult(result,"海康分页获取告警事件"); |
| | | return result; |
| | | }catch (Exception e){ |
| | | log.error("【海康分页获取告警事件】================失败====:\n"+ e.getMessage()); |
| | | } |
| | | return null; |
| | | } |
| | | /** |
| | | *查询访客来访记录(已登记)(分页) |
| | | * @return |
| | | */ |
| | |
| | | return result; |
| | | }catch (Exception e){ |
| | | log.error("【海康全量组织查询】================失败====:\n"+ e.getMessage()); |
| | | } |
| | | return null; |
| | | } |
| | | /** |
| | | *获取工作台菜单免密登陆调整地址 |
| | | * @return |
| | | */ |
| | | public static String getMenuUrl(Integer type,String token){ |
| | | String menuId = HKConstants.MenuPageId.afzx; |
| | | if(Constants.equalsInteger(type,Constants.ONE)){ |
| | | menuId = HKConstants.MenuPageId.xkzx; |
| | | }else if(Constants.equalsInteger(type,Constants.TWO)){ |
| | | menuId = HKConstants.MenuPageId.ngzx; |
| | | }else if(Constants.equalsInteger(type,Constants.THREE)){ |
| | | menuId = HKConstants.MenuPageId.jsc; |
| | | }else if(Constants.equalsInteger(type,Constants.FOUR)){ |
| | | menuId = HKConstants.MenuPageId.kqgl; |
| | | } |
| | | log.info("【海康获取工作台菜单免密登陆调整地址】================开始====menuId:"+menuId+"==token:"+token); |
| | | try { |
| | | String res = HKTools.getMenuUrl(menuId,token); |
| | | return res; |
| | | }catch (Exception e){ |
| | | log.error("【海康获取工作台菜单免密登陆调整地址】================失败====:\n"+ e.getMessage()); |
| | | } |
| | | return null; |
| | | } |
| | |
| | | return null; |
| | | } |
| | | /** |
| | | *分页获取广播点(分页) |
| | | * @return |
| | | */ |
| | | public static BaseResponse<BaseListPageResponse<FetchAudioChannelInfoResponse>> fetchAudioChannel(FetchAudioChannelRequest param){ |
| | | log.info("【海康获取分页获取广播点】================开始===="+JSONObject.toJSONString(param)); |
| | | try { |
| | | String res = HKTools.fetchAudioChannel(JSONObject.toJSONString(param)); |
| | | TypeReference typeReference = |
| | | new TypeReference< BaseResponse<BaseListPageResponse<FetchAudioChannelInfoResponse>> >(){}; |
| | | BaseResponse<BaseListPageResponse<FetchAudioChannelInfoResponse>> result = JSONObject.parseObject(res, typeReference.getType()); |
| | | logResult(result,"海康获取分页获取广播点"); |
| | | return result; |
| | | }catch (Exception e){ |
| | | log.error("【海康获取分页获取广播点】================失败====:\n"+ e.getMessage()); |
| | | } |
| | | return null; |
| | | } |
| | | /** |
| | | *分页获取广播点(分页) |
| | | * @return |
| | | */ |
| | | public static BaseResponse<BaseListPageResponse<FetchAudioChannelInfoResponse>> fetchAudioDevice(FetchAudioChannelRequest param){ |
| | | log.info("【海康获取分页获取广播点】================开始===="+JSONObject.toJSONString(param)); |
| | | try { |
| | | String res = HKTools.fetchAudioDevice(JSONObject.toJSONString(param)); |
| | | TypeReference typeReference = |
| | | new TypeReference< BaseResponse<BaseListPageResponse<FetchAudioChannelInfoResponse>> >(){}; |
| | | BaseResponse<BaseListPageResponse<FetchAudioChannelInfoResponse>> result = JSONObject.parseObject(res, typeReference.getType()); |
| | | logResult(result,"海康获取分页获取广播点"); |
| | | return result; |
| | | }catch (Exception e){ |
| | | log.error("【海康获取分页获取广播点】================失败====:\n"+ e.getMessage()); |
| | | } |
| | | return null; |
| | | } |
| | | /** |
| | | *获取全部月台信息 |
| | | * @return |
| | | */ |
| | | public static BaseResponse<BaseListPageResponse<PlatformListInfoResponse>> platformsList(PlatformsListRequest param){ |
| | | log.info("【海康获取全部月台信息】================开始===="+JSONObject.toJSONString(param)); |
| | | try { |
| | | String res = HKTools.platformsList(JSONObject.toJSONString(param)); |
| | | TypeReference typeReference = |
| | | new TypeReference< BaseResponse<BaseListPageResponse<PlatformListInfoResponse>> >(){}; |
| | | BaseResponse<BaseListPageResponse<PlatformListInfoResponse>> result = JSONObject.parseObject(res, typeReference.getType()); |
| | | logResult(result,"海康获取全部月台信息"); |
| | | return result; |
| | | }catch (Exception e){ |
| | | log.error("【海康获取全部月台信息】================失败====:\n"+ e.getMessage()); |
| | | } |
| | | return null; |
| | | } |
| | | /** |
| | | *获取月台组件配置的LED设备清单 |
| | | * @return |
| | | */ |
| | | public static BaseResponse<BaseListPageResponse<LedRecordsInfoResponse>> ledRecords(LedRecordsRequest param){ |
| | | log.info("【海康获取月台组件配置的LED设备清单】================开始===="+JSONObject.toJSONString(param)); |
| | | try { |
| | | String res = HKTools.ledRecords(JSONObject.toJSONString(param)); |
| | | TypeReference typeReference = |
| | | new TypeReference< BaseResponse<BaseListPageResponse<LedRecordsInfoResponse>> >(){}; |
| | | BaseResponse<BaseListPageResponse<LedRecordsInfoResponse>> result = JSONObject.parseObject(res, typeReference.getType()); |
| | | logResult(result,"海康获取月台组件配置的LED设备清单"); |
| | | return result; |
| | | }catch (Exception e){ |
| | | log.error("【海康获取月台组件配置的LED设备清单】================失败====:\n"+ e.getMessage()); |
| | | } |
| | | return null; |
| | | } |
| | | /** |
| | | *用于设置广播的自定播放和停止 |
| | | * @return |
| | | */ |
| | | public static BaseResponse customBroadcast(CustomBroadcastRequest param){ |
| | | log.info("【海康用于设置广播的自定播放和停止】================开始===="+JSONObject.toJSONString(param)); |
| | | try { |
| | | String res = HKTools.customBroadcast(JSONObject.toJSONString(param)); |
| | | TypeReference typeReference = |
| | | new TypeReference< BaseResponse>(){}; |
| | | BaseResponse result = JSONObject.parseObject(res, typeReference.getType()); |
| | | logResult(result,"海康用于设置广播的自定播放和停止"); |
| | | return result; |
| | | }catch (Exception e){ |
| | | log.error("【海康用于设置广播的自定播放和停止】================失败====:\n"+ e.getMessage()); |
| | | } |
| | | return null; |
| | | } |
| | | /** |
| | | *获取全部月台信息 |
| | | * @return |
| | | */ |
| | | public static BaseResponse<BaseListPageResponse<PlatformStatusInfoResponse>> platformStatus(PlatformStatusRequest param) { |
| | | log.info("【海康获取全部月台信息】================开始====" + JSONObject.toJSONString(param)); |
| | | try { |
| | | String res = HKTools.platformStatus(param.getPlatformIds()); |
| | | TypeReference typeReference = |
| | | new TypeReference<BaseResponse<BaseListPageResponse<PlatformStatusInfoResponse>>>() { |
| | | }; |
| | | BaseResponse<BaseListPageResponse<PlatformStatusInfoResponse>> result = JSONObject.parseObject(res, typeReference.getType()); |
| | | logResult(result, "海康获取全部月台信息"); |
| | | return result; |
| | | } catch (Exception e) { |
| | | log.error("【海康获取全部月台信息】================失败====:\n" + e.getMessage()); |
| | | } |
| | | return null; |
| | | } |
| | | /** |
| | | *发送消息给LED |
| | | * @return |
| | | */ |
| | | public static BaseResponse transparentchannel(TransparentChannelHeadRequest head,TransparentChannelBodyRequest param){ |
| | | log.info("【海康发送消息给LED】================开始===="+JSONObject.toJSONString(param)); |
| | | try { |
| | | Map<String,String> header = toMap(head); |
| | | String res = HKTools.transparentchannel(header,JSONObject.toJSONString(param)); |
| | | TypeReference typeReference = |
| | | new TypeReference<BaseResponse>(){}; |
| | | BaseResponse result = JSONObject.parseObject(res, typeReference.getType()); |
| | | logResult(result,"海康发送消息给LED"); |
| | | return result; |
| | | }catch (Exception e){ |
| | | log.error("【海康发送消息给LED】================失败====:\n"+ e.getMessage()); |
| | | } |
| | | return null; |
| | | } |
| | | public static Map<String, String> toMap(Object obj) throws IllegalAccessException { |
| | | Map<String, String> map = new HashMap<>(); |
| | | Class<?> clazz = obj.getClass(); |
| | | for (Field field : clazz.getDeclaredFields()) { |
| | | field.setAccessible(true); // 使得私有字段也可以访问 |
| | | map.put(field.getName(), (String) field.get(obj)); |
| | | } |
| | | return map; |
| | | } |
| | | /** |
| | | *查询场内车停车信息(分页) |
| | | * @return |
| | | */ |