大华接口--新增设备查询

main
haoyuanfu“;git config --global user.name haoyuanfu“ 1 week ago
parent 57d00ef96d
commit bc2c89cf34
  1. 38
      src/main/java/com/zilber/boot/dahua/controller/DahuaController.java
  2. 49
      src/main/java/com/zilber/boot/dahua/device/ChannelPageRequest.java
  3. 83
      src/main/java/com/zilber/boot/dahua/device/ChannelPageResponse.java
  4. 43
      src/main/java/com/zilber/boot/dahua/device/DevicePageRequest.java
  5. 120
      src/main/java/com/zilber/boot/dahua/device/DevicePageResponse.java
  6. 46
      src/main/java/com/zilber/boot/dahua/device/DeviceTreeRequest.java
  7. 72
      src/main/java/com/zilber/boot/dahua/device/DeviceTreeResponse.java

@ -12,6 +12,8 @@ import com.zilber.boot.dahua.attendance.GetRecordPageResponse;
import com.zilber.boot.dahua.attendance.GetResultPageRequest;
import com.zilber.boot.dahua.attendance.GetResultPageResponse;
import com.zilber.boot.dahua.config.OauthConfigUtil;
import com.zilber.boot.dahua.device.DevicePageRequest;
import com.zilber.boot.dahua.device.DevicePageResponse;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
@ -39,9 +41,9 @@ public class DahuaController {
OauthConfigUserPwdInfo config = OauthConfigUtil.getOauthConfig();
GetRecordPageResponse response=null;
try {
log.info("InfoQueryDemo,getAttendanceRecordPage,request:{}", JSONUtil.toJsonStr(getRecordPageRequest));
//log.info("InfoQueryDemo,getAttendanceRecordPage,request:{}", JSONUtil.toJsonStr(getRecordPageRequest));
response = HttpUtils.executeJson("/evo-apigw/evo-attendance/1.1.0/attendance/record/page", getRecordPageRequest,null, Method.POST , config, GetRecordPageResponse.class);
log.info("InfoQueryDemo,getAttendanceRecordPage,response:{}", JSONUtil.toJsonStr(response));
//log.info("InfoQueryDemo,getAttendanceRecordPage,response:{}", JSONUtil.toJsonStr(response));
} catch (ClientException e) {
log.error(e.getErrMsg(), e);
}
@ -63,9 +65,9 @@ public class DahuaController {
OauthConfigUserPwdInfo config = OauthConfigUtil.getOauthConfig();
GetResultPageResponse response=null;
try {
log.info("InfoQueryDemo,getAttendanceRecordPage,request:{}", JSONUtil.toJsonStr(getResultPageRequest));
//log.info("InfoQueryDemo,getAttendanceRecordPage,request:{}", JSONUtil.toJsonStr(getResultPageRequest));
response = HttpUtils.executeJson("/evo-apigw/evo-attendance/1.1.0/attendance/result/page", getResultPageRequest,null, Method.POST , config, GetResultPageResponse.class);
log.info("InfoQueryDemo,getAttendanceRecordPage,response:{}", JSONUtil.toJsonStr(response));
//log.info("InfoQueryDemo,getAttendanceRecordPage,response:{}", JSONUtil.toJsonStr(response));
} catch (ClientException e) {
log.error(e.getErrMsg(), e);
}
@ -87,9 +89,9 @@ public class DahuaController {
OauthConfigUserPwdInfo config = OauthConfigUtil.getOauthConfig();
QueryRecordResponse response=null;
try {
log.info("DeviceDemo,getRecordPage,request:{}", JSONUtil.toJsonStr(queryRecordRequest));
//log.info("DeviceDemo,getRecordPage,request:{}", JSONUtil.toJsonStr(queryRecordRequest));
response = HttpUtils.executeJson("/evo-apigw/evo-accesscontrol/1.0.0/card/accessControl/swingCardRecord/bycondition/combined", queryRecordRequest,null, Method.POST , config, QueryRecordResponse.class);
log.info("DeviceDemo,getRecordPage,response:{}", JSONUtil.toJsonStr(response));
//log.info("DeviceDemo,getRecordPage,response:{}", JSONUtil.toJsonStr(response));
} catch (ClientException e) {
log.error(e.getErrMsg(), e);
}
@ -99,4 +101,28 @@ public class DahuaController {
return response;
}
/**
* 设备分页查询
* @param devicePageRequest
* @return
* 参考API https://open-icc.dahuatech.com/#/home?url=%3Fnav%3Dwiki%2Fevo-brm%2Fdevice.html&version=enterprisebase/5.0.17&blank=true
*/
@ApiOperation(value = "门禁记录数量查询",notes = "门禁记录数量查询")
@PostMapping("/brm/getDevicePage")
public DevicePageResponse getDevicePage(DevicePageRequest devicePageRequest){
OauthConfigUserPwdInfo config = OauthConfigUtil.getOauthConfig();
DevicePageResponse response=null;
try {
//log.info("DeviceDemo,getDevicePage,request:{}", JSONUtil.toJsonStr(devicePageRequest));
response = HttpUtils.executeJson("/evo-apigw/evo-brm/1.2.0/device/subsystem/page", devicePageRequest,null, Method.POST , config, DevicePageResponse.class);
//log.info("DeviceDemo,getDevicePage,response:{}", JSONUtil.toJsonStr(response));
} catch (ClientException e) {
log.error(e.getErrMsg(), e);
}
if(!response.isSuccess()) {
log.info("设备信息分页查询失败:{}",response.getErrMsg());
}
return response;
}
}

@ -0,0 +1,49 @@
package com.zilber.boot.dahua.device;
import lombok.Data;
import java.util.List;
/**
* program:java-sdk-demo
*
* @Author: 355079
* @Date:2024-05-07 10:02
* @Description: 设备通道分页查询请求参数
*/
@Data
public class ChannelPageRequest {
/** 当前页, 默认1 */
private Integer pageNum=1;
/** 每页记录数, 默认10 */
private Integer pageSize=10;
/** 排序属性 */
private String sort;
/** 排序方式 */
private String sortType;
/** 所属组织编码 */
private String ownerCode;
/** 设备编码列表 */
private List<String> deviceCodeList;
/** 通道编码列表 */
private List<String> channelCodeList;
/** 设备大类 */
private Integer deviceCategory;
/** 设备小类 */
private Integer deviceType;
/** 单元类型列表 */
private List<Integer> unitTypeList;
/** 通道类型列表 */
private List<String> channelTypeList;
/** 在线状态 */
private Integer isOnline;
/** 是否已经接入 */
private Integer access;
/** 是否是虚拟通道 */
private Integer isVirtual;
/** 状态 */
private Integer stat;
/** 是否包含子节点,默认true,展示下级通道 */
private Boolean includeSubOwnerCodeFlag;
}

@ -0,0 +1,83 @@
package com.zilber.boot.dahua.device;
import com.dahuatech.icc.oauth.http.IccResponse;
import lombok.Data;
import java.util.List;
/**
* program:java-sdk-demo
*
* @Author: 355079
* @Date:2024-05-07 10:03
* @Description: 设备通道分页查询返回参数
*/
@Data
public class ChannelPageResponse extends IccResponse {
/** 分页数据 */
private PageVO data;
@Data
public static class PageVO{
/** 当前页码 */
private Integer currentPage;
/** 总页数 */
private Integer totalPage;
/** 页面大小 */
private Integer pageSize;
/** 总数 */
private Integer totalRows;
/** 数据列表 */
private List<ChannelInfoVO> pageData;
@Data
public static class ChannelInfoVO{
/** 自增ID */
private Long id;
/** 设备编码 */
private String deviceCode;
/** 单元类型 */
private Integer unitType;
/** 单元序号 */
private Integer unitSeq;
/** 通道序号 */
private Integer channelSeq;
/** 通道编码 */
private String channelCode;
/** 通道标识码 */
private String channelSn;
/** 通道名称 */
private String channelName;
/** 通道类型 */
private String channelType;
/** 摄像头类型 */
private String cameraType;
/** 所属组织编码 */
private String ownerCode;
/** 经度 */
private String gpsX;
/** 纬度 */
private String gpsY;
/** z轴 */
private String gpsZ;
/** 光栅图ID */
private Long mapId;
/** 域ID */
private Long domainId;
/** 描述 */
private String memo;
/** 设备通道在线状态 */
private Integer isOnline;
/** 状态 0:关闭 1:开启 */
private Integer stat;
/** 通道能力集,详细说明请参考通道能力级说明 */
private String capability;
/** 是否已经接入 :1-已接入, 0-未接入 */
private Integer access;
/** 通道详情扩展信息 */
private String chExt;
/** 是否是虚拟通道 */
private String isVirtual;
}
}
}

@ -0,0 +1,43 @@
package com.zilber.boot.dahua.device;
import lombok.Data;
import java.util.List;
/**
* program:java-sdk-demo
*
* @Author: 355079
* @Date:2024-03-26 14:50
* @Description:设备分页查询请求参数
*/
@Data
public class DevicePageRequest {
/** 当前页, 默认1 */
private Integer pageNum=1;
/** 每页记录数, 默认10 */
private Integer pageSize=10;
/** 设备所属组织编码集合 */
private List<String> ownerCodes;
/** 是否获取设备所属组织子节点下设备记录 */
private Integer showChildNodeData=1;
/** 单元类型,多个 */
private List<Integer> unitTypes;
/** 设备大类 */
private List<Integer> categorys;
/** 设备小类, */
private List<Integer> types;
/** 设备编码列表 最大支持500 */
private List<String> deviceCodes;
/** 设备标识码列表 最大支持500 */
private List<String> deviceSns;
/** 设备地址 最大支持500 */
private List<String> deviceIps;
/** 在线状态 */
private Integer isOnline;
/** 0:获取非虚拟设备 1 只获取虚拟设备 */
private Integer syncVirtualData;
}

@ -0,0 +1,120 @@
package com.zilber.boot.dahua.device;
import com.dahuatech.icc.oauth.http.IccResponse;
import lombok.Data;
import java.util.List;
/**
* program:java-sdk-demo
*
* @Author: 355079
* @Date:2024-03-26 17:20
* @Description: 分页查询设备信息返回
*/
@Data
public class DevicePageResponse extends IccResponse {
/** 分页数据 */
private PageVO data;
@Data
public static class PageVO{
/** 当前页码 */
private Integer currentPage;
/** 总页数 */
private Integer totalPage;
/** 页面大小 */
private Integer pageSize;
/** 总数 */
private Integer totalRows;
/** 数据列表 */
private List<DeviceInfoVO> pageData;
@Data
public static class DeviceInfoVO{
/** 设备编码 */
private String deviceCode;
/** 设备名称 */
private String deviceName;
/** 设备唯一标识码 */
private String deviceSn;
/** 设备大类 */
private Integer deviceCategory;
/** 设备小类 */
private Integer deviceType;
/** 厂商类型 */
private String deviceManufacturer;
/** 设备IP */
private String deviceIp;
/** 设备端口 */
private Integer devicePort;
/** 设备所属组织编码 */
private String ownerCode;
/** 在线状态 */
private Integer isOnline;
/** 设备离线原因 */
private String offlineReason;
/** 设备所属子系统 */
private String subSystem;
/** 设备扩展属性 */
private Object devExt;
/** 经度 */
private String gpsX;
/** 纬度 */
private String gpsY;
/** 单元信息 */
private List<UnitVO> units;
@Data
public static class UnitVO{
/** 单元类型 */
private Integer unitType;
/** 单元序号 */
private Integer unitSeq;
/** 排序码 */
private Integer sort;
/** 单元描述 */
private String memo;
/** 能力集 */
private String capability;
/** 单元扩展信息 */
private Object unitExt;
/** 单元通道信息 */
private List<ChannelVO> channels;
@Data
public static class ChannelVO{
/** 通道编码 */
private String channelCode;
/** 通道名称 */
private String channelName;
/** 通道序号 */
private Integer channelSeq;
/** 通道唯一标识码 */
private String channelSn;
/** 通道类型 */
private String channelType;
/** 通道能力集 */
private String capability;
/** 是否已接入:0-未接入,1-接入 */
private Integer access;
/** 经度 */
private String gpsX;
/** 纬度 */
private String gpsY;
/** Z轴 */
private String gpsZ;
/** 通道描述 */
private String memo;
/** 状态 :0-不启用,1-启用 */
private Integer stat;
/** 通道扩展属性 */
private Object chExt;
}
}
}
}
}

@ -0,0 +1,46 @@
package com.zilber.boot.dahua.device;
import lombok.Data;
import java.util.List;
/**
* program:java-sdk-demo
*
* @Author: 355079
* @Date:2024-05-07 16:39
* @Description: 设备树查询请求参数
*/
@Data
public class DeviceTreeRequest {
/** 上级节点编码 */
private String id;
/** 组织/设备树展示的节点类型 */
private String type;
/** 业务类型:1-基本组织,2-逻辑组织 */
private Integer busiType;
/** 查询逻辑组织根组织标识,默认true */
private Boolean checkLogicRootOrgNodeFlag;
/** 通道归属于组织还是归属于设备 1:归属于设备 0:归属于组织 默认0 */
private Integer channelBelong;
/** 操作类型 */
private String act;
/** 上级组织/设备节点是否有权限 */
private Integer checkStat;
/** act=search时模糊搜索的关键字 */
private String searchKey;
/** 通道能力集 */
private List<String> chCapability;
/** 设备能力集 */
private List<String> devCapability;
/** 初始化加载树时需要勾选的节点id列表 */
private List<String> checkNodes;
/** 是否展示级联节点,默认是1 */
private Integer showCascadeNode;
/** 是否展示虚拟设备、通道,默认0 */
private Integer showVirtualNode;
/** 是否展示出没有通道或设备的组织节点,默认0 */
private Integer showEmptyOrgNode;
/** 设备通道状态 -1:查询全部 0:查询关闭 1:查询已经开启 默认:1 */
private Integer stat;
}

@ -0,0 +1,72 @@
package com.zilber.boot.dahua.device;
import com.dahuatech.icc.oauth.http.IccResponse;
import lombok.Data;
import java.util.List;
/**
* program:java-sdk-demo
*
* @Author: 355079
* @Date:2024-05-07 16:39
* @Description: 设备树查询返回参数
*/
@Data
public class DeviceTreeResponse extends IccResponse {
private ValueVO data;
@Data
public static class ValueVO{
/** 数据列表 */
private List<TreeItemVO> value;
@Data
public static class TreeItemVO{
/** 节点ID */
private String id;
/** 节点名称 */
private String name;
/** 上级节点ID */
private String pId;
/** 节点类型 */
private String type;
/** 设备树节点类型 */
private String nodeType;
/** 节点图标 */
private String iconType;
/** 是否存在子节点 */
private Boolean isParent;
/** 是否勾选 */
private Boolean isCheck;
/** 上级组织/设备节点是否有权限 */
private Integer checkStat;
/** 设备大类 */
private Integer deviceCategory;
/** 设备型号 */
private String deviceModel;
/** 设备小类 */
private Integer deviceType;
/** 所属设备编码(通道节点属性) */
private String deviceCode;
/** 通道单元类型(通道节点属性) */
private Integer unitType;
/** 所属组织(设备节点/通道节点属性) */
private String ownerCode;
/** 摄像头类型(通道节点属性) */
private Integer cameraType;
/** 通道能力集 */
private String capability;
/** 组织序列号 */
private String sn;
/** 是否虚拟设备(null的话代表否) */
private Integer isVirtual;
/** 通道类型 */
private String channelType;
/** 通道编号 */
private String channelCode;
/** 通道状态 0:关闭 1:开启 */
private Integer stat;
}
}
}
Loading…
Cancel
Save