diff --git a/src/main/java/com/zilber/boot/dahua/controller/DahuaController.java b/src/main/java/com/zilber/boot/dahua/controller/DahuaController.java index a965bf5..b643d69 100644 --- a/src/main/java/com/zilber/boot/dahua/controller/DahuaController.java +++ b/src/main/java/com/zilber/boot/dahua/controller/DahuaController.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; + } + } diff --git a/src/main/java/com/zilber/boot/dahua/device/ChannelPageRequest.java b/src/main/java/com/zilber/boot/dahua/device/ChannelPageRequest.java new file mode 100644 index 0000000..a4b1199 --- /dev/null +++ b/src/main/java/com/zilber/boot/dahua/device/ChannelPageRequest.java @@ -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 deviceCodeList; + /** 通道编码列表 */ + private List channelCodeList; + /** 设备大类 */ + private Integer deviceCategory; + /** 设备小类 */ + private Integer deviceType; + /** 单元类型列表 */ + private List unitTypeList; + /** 通道类型列表 */ + private List channelTypeList; + /** 在线状态 */ + private Integer isOnline; + /** 是否已经接入 */ + private Integer access; + /** 是否是虚拟通道 */ + private Integer isVirtual; + /** 状态 */ + private Integer stat; + /** 是否包含子节点,默认true,展示下级通道 */ + private Boolean includeSubOwnerCodeFlag; + +} diff --git a/src/main/java/com/zilber/boot/dahua/device/ChannelPageResponse.java b/src/main/java/com/zilber/boot/dahua/device/ChannelPageResponse.java new file mode 100644 index 0000000..76171f5 --- /dev/null +++ b/src/main/java/com/zilber/boot/dahua/device/ChannelPageResponse.java @@ -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 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; + } + } +} diff --git a/src/main/java/com/zilber/boot/dahua/device/DevicePageRequest.java b/src/main/java/com/zilber/boot/dahua/device/DevicePageRequest.java new file mode 100644 index 0000000..76fcf5c --- /dev/null +++ b/src/main/java/com/zilber/boot/dahua/device/DevicePageRequest.java @@ -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 ownerCodes; + /** 是否获取设备所属组织子节点下设备记录 */ + private Integer showChildNodeData=1; + /** 单元类型,多个 */ + private List unitTypes; + /** 设备大类 */ + private List categorys; + /** 设备小类, */ + private List types; + /** 设备编码列表 最大支持500 */ + private List deviceCodes; + /** 设备标识码列表 最大支持500 */ + private List deviceSns; + /** 设备地址 最大支持500 */ + private List deviceIps; + /** 在线状态 */ + private Integer isOnline; + /** 0:获取非虚拟设备 1 只获取虚拟设备 */ + private Integer syncVirtualData; + + +} diff --git a/src/main/java/com/zilber/boot/dahua/device/DevicePageResponse.java b/src/main/java/com/zilber/boot/dahua/device/DevicePageResponse.java new file mode 100644 index 0000000..5487ed3 --- /dev/null +++ b/src/main/java/com/zilber/boot/dahua/device/DevicePageResponse.java @@ -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 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 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 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; + } + } + + } + } + +} diff --git a/src/main/java/com/zilber/boot/dahua/device/DeviceTreeRequest.java b/src/main/java/com/zilber/boot/dahua/device/DeviceTreeRequest.java new file mode 100644 index 0000000..a8f1ab4 --- /dev/null +++ b/src/main/java/com/zilber/boot/dahua/device/DeviceTreeRequest.java @@ -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 chCapability; + /** 设备能力集 */ + private List devCapability; + /** 初始化加载树时需要勾选的节点id列表 */ + private List checkNodes; + /** 是否展示级联节点,默认是1 */ + private Integer showCascadeNode; + /** 是否展示虚拟设备、通道,默认0 */ + private Integer showVirtualNode; + /** 是否展示出没有通道或设备的组织节点,默认0 */ + private Integer showEmptyOrgNode; + /** 设备通道状态 -1:查询全部 0:查询关闭 1:查询已经开启 默认:1 */ + private Integer stat; +} diff --git a/src/main/java/com/zilber/boot/dahua/device/DeviceTreeResponse.java b/src/main/java/com/zilber/boot/dahua/device/DeviceTreeResponse.java new file mode 100644 index 0000000..b131369 --- /dev/null +++ b/src/main/java/com/zilber/boot/dahua/device/DeviceTreeResponse.java @@ -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 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; + } + } +}