From e0d1b7e8ed3dfb1799c95b90d3461ff972621e11 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?haoyuanfu=E2=80=9C=EF=BC=9Bgit=20config=20--global=20user?=
=?UTF-8?q?=2Ename=20haoyuanfu=E2=80=9C?= <46495777@qq.com>
Date: Wed, 7 May 2025 09:44:15 +0800
Subject: [PATCH] =?UTF-8?q?=E5=A4=A7=E5=8D=8E=E6=8E=A5=E5=8F=A3=E9=89=B4?=
=?UTF-8?q?=E6=9D=83=E4=BB=A5=E5=8F=8A=E5=BC=95=E7=94=A8=E5=8C=85?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
pom.xml | 7 ++
....java => IntelligenceSiteApplication.java} | 4 +-
.../accesscontrol/QueryRecordRequest.java | 52 +++++++++
.../accesscontrol/QueryRecordResponse.java | 84 +++++++++++++++
.../attendance/GetRecordPageRequest.java | 37 +++++++
.../attendance/GetRecordPageResponse.java | 53 +++++++++
.../attendance/GetResultPageRequest.java | 42 ++++++++
.../attendance/GetResultPageResponse.java | 101 +++++++++++++++++
.../boot/dahua/config/OauthConfigUtil.java | 31 ++++++
.../boot/dahua/config/PlatformConfig.java | 89 +++++++++++++++
.../dahua/controller/DahuaController.java | 102 ++++++++++++++++++
11 files changed, 600 insertions(+), 2 deletions(-)
rename src/main/java/com/zilber/boot/{TermiCheckLabApplication.java => IntelligenceSiteApplication.java} (88%)
create mode 100644 src/main/java/com/zilber/boot/dahua/accesscontrol/QueryRecordRequest.java
create mode 100644 src/main/java/com/zilber/boot/dahua/accesscontrol/QueryRecordResponse.java
create mode 100644 src/main/java/com/zilber/boot/dahua/attendance/GetRecordPageRequest.java
create mode 100644 src/main/java/com/zilber/boot/dahua/attendance/GetRecordPageResponse.java
create mode 100644 src/main/java/com/zilber/boot/dahua/attendance/GetResultPageRequest.java
create mode 100644 src/main/java/com/zilber/boot/dahua/attendance/GetResultPageResponse.java
create mode 100644 src/main/java/com/zilber/boot/dahua/config/OauthConfigUtil.java
create mode 100644 src/main/java/com/zilber/boot/dahua/config/PlatformConfig.java
create mode 100644 src/main/java/com/zilber/boot/dahua/controller/DahuaController.java
diff --git a/pom.xml b/pom.xml
index b4aeb7f..5548f41 100644
--- a/pom.xml
+++ b/pom.xml
@@ -262,6 +262,13 @@
3.15.1
+
+
+ com.dahuatech.icc
+ java-sdk-oauth
+ 1.0.13.10
+
+
diff --git a/src/main/java/com/zilber/boot/TermiCheckLabApplication.java b/src/main/java/com/zilber/boot/IntelligenceSiteApplication.java
similarity index 88%
rename from src/main/java/com/zilber/boot/TermiCheckLabApplication.java
rename to src/main/java/com/zilber/boot/IntelligenceSiteApplication.java
index 6736bda..44410bd 100644
--- a/src/main/java/com/zilber/boot/TermiCheckLabApplication.java
+++ b/src/main/java/com/zilber/boot/IntelligenceSiteApplication.java
@@ -12,11 +12,11 @@ import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
*/
@SpringBootApplication(exclude = DataSourceAutoConfiguration.class)
@EnableKnife4j
-public class TermiCheckLabApplication
+public class IntelligenceSiteApplication
{
public static void main(String[] args)
{
- SpringApplication.run(TermiCheckLabApplication.class, args);
+ SpringApplication.run(IntelligenceSiteApplication.class, args);
System.out.println("(♥◠‿◠)ノ゙ 启动成功 ლ(´ڡ`ლ)゙ \n" +
" _ _ _ \n" +
" (_) | | \n" +
diff --git a/src/main/java/com/zilber/boot/dahua/accesscontrol/QueryRecordRequest.java b/src/main/java/com/zilber/boot/dahua/accesscontrol/QueryRecordRequest.java
new file mode 100644
index 0000000..2ac5e90
--- /dev/null
+++ b/src/main/java/com/zilber/boot/dahua/accesscontrol/QueryRecordRequest.java
@@ -0,0 +1,52 @@
+package com.zilber.boot.dahua.accesscontrol;
+
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class QueryRecordRequest {
+
+ /** 页码,正整数 */
+ private Integer pageNum;
+ /** 分页大小,正整数 */
+ private Integer pageSize;
+ /** 查询开始时间,格式:yyyy-MM-dd HH:mm:ss */
+ private String startSwingTime;
+ /** 查询结束时间,格式:yyyy-MM-dd HH:mm:ss */
+ private String endSwingTime;
+ /** 入库开始时间,格式:yyyy-MM-dd HH:mm:ss */
+ private String startCreateTime;
+ /** 入库结束时间,格式:yyyy-MM-dd HH:mm:ss */
+ private String endCreateTime;
+ /** 开门类型 */
+ private Integer openType;
+ /** 开门类型多选 */
+ private List openTypes;
+ /** 卡片类型 */
+ private String category;
+ /** 人员名称 */
+ private String personName;
+ /** 人员编号 */
+ private String personCode;
+ /** 通道编码列表 */
+ private List channelCodes;
+ /** 部门ID */
+ private String deptIds;
+ /** 卡号 */
+ private String cardNumber;
+ /** 事件类型 */
+ private Integer enterOrExit;
+ /** 开门结果 */
+ private Integer openResult;
+ /** 是否超温 */
+ private Boolean overTemp;
+ /** 体温低限 */
+ private Float curTempStart;
+ /** 体温高限 */
+ private Float curTempEnd;
+ /** 口罩状态 3-带口罩,2—没带口罩,1-未识别 */
+ private Integer maskState;
+ /** 访客筛选,1 - 只查询访客记录 2 - 只查询非访客记录 */
+ private Integer visitorFilter;
+}
diff --git a/src/main/java/com/zilber/boot/dahua/accesscontrol/QueryRecordResponse.java b/src/main/java/com/zilber/boot/dahua/accesscontrol/QueryRecordResponse.java
new file mode 100644
index 0000000..0d28a4f
--- /dev/null
+++ b/src/main/java/com/zilber/boot/dahua/accesscontrol/QueryRecordResponse.java
@@ -0,0 +1,84 @@
+package com.zilber.boot.dahua.accesscontrol;
+
+import com.dahuatech.icc.oauth.http.IccResponse;
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class QueryRecordResponse extends IccResponse {
+
+ /** */
+ private Data data;
+
+ @lombok.Data
+ public static class Data {
+ /** 当前页 */
+ private Integer currentPage;
+ /** 是否启用云数据库,false-不启用,true-启用 */
+ private Boolean enableCloudDB;
+ /** 分页大小 */
+ private Integer pageSize;
+ /** 总页码 */
+ private Integer totalPage;
+ /** 总条数 */
+ private Integer totalRows;
+ /** 分页数据 */
+ private List pageData;
+
+ @lombok.Data
+ public static class PageData{
+ /** 卡号 */
+ private String cardNumber;
+ /** 卡状态,-1-空白卡,0-正常卡,1-挂失卡,2-注销卡 */
+ private Integer cardStatus;
+ /** 卡类型,0-IC卡, 1-有源RFID, 2-CPU卡 */
+ private Integer cardType;
+ /** 通道编码 */
+ private String channelCode;
+ /** 通道名称 */
+ private String channelName;
+ /** 部门名称 */
+ private String deptName;
+ /** 设备编码 */
+ private String deviceCode;
+ /** 设备名称 */
+ private String deviceName;
+ /** 进出门类型,1-进门, 2出门, 3-进/出门 */
+ private Integer enterOrExit;
+ /** 记录id */
+ private Long id;
+ /** 1-内部人员, 2-访客 */
+ private Integer imageType;
+ /** 开门结果,0-失败,1-成功 */
+ private Integer openResult;
+ /** 开门类型 */
+ private Integer openType;
+ /** 证件号码 */
+ private String paperNumber;
+ /** 人员编号 */
+ private String personCode;
+ /** 人员ID */
+ private Long personId;
+ /** 人员姓名 */
+ private String personName;
+ /** 抓图,相对路径 */
+ private String recordImageUrl;
+ /** 抓图,绝对路径 */
+ private String recordImage;
+ /** 开门失败原因 */
+ private String remark;
+ /** 刷卡时间 */
+ private String swingTime;
+ /** 入库时间 */
+ private String createTime;
+ /** 口罩状态(3-带口罩,2—没带口罩,1-未识别) */
+ private Integer maskState;
+ /** 是否超温 */
+ private Boolean overTemp;
+ /** 体温 */
+ private Float curTemp;
+ }
+ }
+
+}
diff --git a/src/main/java/com/zilber/boot/dahua/attendance/GetRecordPageRequest.java b/src/main/java/com/zilber/boot/dahua/attendance/GetRecordPageRequest.java
new file mode 100644
index 0000000..dac9bd5
--- /dev/null
+++ b/src/main/java/com/zilber/boot/dahua/attendance/GetRecordPageRequest.java
@@ -0,0 +1,37 @@
+package com.zilber.boot.dahua.attendance;
+
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * program:java-sdk-demo
+ * @Author: 355079
+ * @Date:2024-04-28 14:06
+ * @Description: 打卡记录查询请求参数
+ */
+@Data
+public class GetRecordPageRequest {
+ /** 当前页 */
+ private Integer pageNum;
+ /** 每页记录数 */
+ private Integer pageSize;
+ /** 开始时间,格式: yyyy-MM-dd HH:mm:ss */
+ private String actionTimeAfter;
+ /** 结束时间,格式: yyyy-MM-dd HH:mm:ss */
+ private String actionTimeBefore;
+ /** 卡号 */
+ private String cardNo;
+ /** 考勤类型(0:刷卡考勤;1:人像考勤;2:指纹考勤) */
+ private String attendanceType;
+ /** 人员id集合 */
+ private List personIds;
+ /** 模糊查询参数(人员姓名) */
+ private String personName;
+ /** 模糊查询参数(人员编号) */
+ private String personCode;
+ /** 排序字段 */
+ private String sort;
+ /** DESC-降序, ASC-升序 */
+ private String sortType;
+}
diff --git a/src/main/java/com/zilber/boot/dahua/attendance/GetRecordPageResponse.java b/src/main/java/com/zilber/boot/dahua/attendance/GetRecordPageResponse.java
new file mode 100644
index 0000000..f0622d3
--- /dev/null
+++ b/src/main/java/com/zilber/boot/dahua/attendance/GetRecordPageResponse.java
@@ -0,0 +1,53 @@
+package com.zilber.boot.dahua.attendance;
+
+import com.dahuatech.icc.oauth.http.IccResponse;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * program:java-sdk-demo
+ * @Author: 355079
+ * @Date:2024-04-28 14:13
+ * @Description: 打卡记录查询返回参数
+ */
+@Data
+public class GetRecordPageResponse extends IccResponse {
+ private Data data;
+ @lombok.Data
+ public static class Data{
+ /** 当前页 */
+ private Integer currentPage;
+ /** 每页条数 */
+ private Integer pageSize;
+ /** 总页数 */
+ private Integer totalPage;
+ /** 总条数 */
+ private Integer totalRows;
+ /** 分页数据 */
+ private List pageData;
+ @lombok.Data
+ public static class PageData{
+ /** 刷卡时间(yyyy-MM-dd HH:mm:ss) */
+ private String actionTime;
+ /** 考勤方式 */
+ private String attendanceType;
+ /** 卡号 */
+ private String cardNo;
+ /** 部门名称 */
+ private String deptName;
+ /** 人员编号 */
+ private String personCode;
+ /** 人员id */
+ private Integer personId;
+ /** 人员姓名 */
+ private String personName;
+ /** 上报时间(yyyy-MM-dd HH:mm:ss) */
+ private String reportTime;
+ /** 考勤点id */
+ private String siteId;
+ /** 考勤点名称 */
+ private String siteName;
+ }
+ }
+}
diff --git a/src/main/java/com/zilber/boot/dahua/attendance/GetResultPageRequest.java b/src/main/java/com/zilber/boot/dahua/attendance/GetResultPageRequest.java
new file mode 100644
index 0000000..6007bf9
--- /dev/null
+++ b/src/main/java/com/zilber/boot/dahua/attendance/GetResultPageRequest.java
@@ -0,0 +1,42 @@
+package com.zilber.boot.dahua.attendance;
+
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * program:java-sdk-demo
+ *
+ * @Author: 355079
+ * @Date:2024-04-29 13:48
+ * @Description: 分页获取考勤结果请求参数
+ */
+@Data
+public class GetResultPageRequest {
+ /** 第几页 */
+ private Integer pageNum;
+ /** 每页条数 */
+ private Integer pageSize;
+ /** 开始时间(yyyy-MM-dd) */
+ private String dutyDateAfter;
+ /** 结束时间(yyyy-MM-dd) */
+ private String dutyDateBefore;
+ /** 考勤结果(0-异常,1-正常) */
+ private Integer result;
+ /** 班次类型: 1-固定班, 2-弹性班, 3-签到班, 4-休班 */
+ private String dailyType;
+ /** 单个人员编号 */
+ private String personCode;
+ /** 部门id(部门间以逗号隔开) */
+ private String deptIdsString;
+ /** 人员id集合 */
+ private List personIds;
+ /** 班次中各时段状态: 0-异常, 1-正常 */
+ private List attendanceStatus;
+ /** 选择的班次id集合 */
+ private List classesIds;
+ /** 排序字段 */
+ private String sort;
+ /** DESC-降序, ASC-升序 */
+ private String sortType;
+}
diff --git a/src/main/java/com/zilber/boot/dahua/attendance/GetResultPageResponse.java b/src/main/java/com/zilber/boot/dahua/attendance/GetResultPageResponse.java
new file mode 100644
index 0000000..beb999f
--- /dev/null
+++ b/src/main/java/com/zilber/boot/dahua/attendance/GetResultPageResponse.java
@@ -0,0 +1,101 @@
+package com.zilber.boot.dahua.attendance;
+
+import com.dahuatech.icc.oauth.http.IccResponse;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * program:java-sdk-demo
+ *
+ * @Author: 355079
+ * @Date:2024-04-29 14:21
+ * @Description: 分页获取考勤结果请求参数
+ */
+@Data
+public class GetResultPageResponse extends IccResponse {
+ private Data data;
+ @lombok.Data
+ public static class Data{
+ /** 当前页 */
+ private Integer currentPage;
+ /** 每页条数 */
+ private Integer pageSize;
+ /** 总页数 */
+ private Integer totalPage;
+ /** 总条数 */
+ private Integer totalRows;
+ /** 分页数据 */
+ private List pageData;
+ @lombok.Data
+ public static class PageData{
+ /** 考勤时间(yyyy-MM-dd) */
+ private String dutyDate;
+ /** 员工姓名 */
+ private String personName;
+ /** 员工编号 */
+ private String personCode;
+ /** 员工id */
+ private Long personId;
+ /** 部门id */
+ private Integer departmentId;
+ /** 部门名称 */
+ private String deptName;
+ /** 班次id */
+ private String dailyId;
+ /** 班次名称 */
+ private String dailyName;
+ /** 班次类型 */
+ private Integer dailyType;
+ /** 考勤结果 */
+ private Integer result;
+ /** 时间段1签入情况:0-异常,1-正常 */
+ private Integer timeOneSignIn;
+ /** 时间段1签出情况 */
+ private Integer timeOneSignOut;
+ /** 时间段2签入情况 */
+ private Integer timeTwoSignIn;
+ /** 时间段2签出情况 */
+ private Integer timeTwoSignOut;
+ /** 时间段3签入情况 */
+ private Integer timeThreeSignIn;
+ /** 时间段3签出情况 */
+ private Integer timeThreeSignOut;
+ /** 时间段4签入情况 */
+ private Integer timeFourSignIn;
+ /** 时间段4签出情况 */
+ private Integer timeFourSignOut;
+ /** 时间段5签入情况 */
+ private Integer timeFiveSignIn;
+ /** 时间段5签出情况 */
+ private Integer timeFiveSignOut;
+ /** 应勤时长,单位小时 */
+ private Float plannedWorkHours;
+ /** 实际时长,单位小时 */
+ private Float actualWorkHours;
+ /** 缺勤时长,单位小时 */
+ private Float absenceWorkHours;
+ /** 旷工时长,单位小时 */
+ private Float absenteeismWorkHours;
+ /** 迟到时长,单位小时 */
+ private Float lateWorkHours;
+ /** 早退时长,单位小时 */
+ private Float earlyLeaveWorkHours;
+ /** 出差时长,单位小时 */
+ private Float travelWorkHours;
+ /** 周内加班时长 ,单位小时 */
+ private Float overtimeWeekday;
+ /** 周末加班时长,单位小时 */
+ private Float overtimeWeekend;
+ /** 节假日加班时长,单位小时 */
+ private Float overtimeHoliday;
+ /** 无薪时长,单位小时 */
+ private Float unpaidWorkHours;
+ /** 有薪时长,单位小时 */
+ private Float paidWorkHours;
+ /** 单据编号 */
+ private String documentNumber;
+
+ }
+ }
+}
diff --git a/src/main/java/com/zilber/boot/dahua/config/OauthConfigUtil.java b/src/main/java/com/zilber/boot/dahua/config/OauthConfigUtil.java
new file mode 100644
index 0000000..f853730
--- /dev/null
+++ b/src/main/java/com/zilber/boot/dahua/config/OauthConfigUtil.java
@@ -0,0 +1,31 @@
+package com.zilber.boot.dahua.config;
+
+import com.dahuatech.icc.oauth.model.v202010.OauthConfigUserPwdInfo;
+
+/**
+ * 公钥加密
+ * 使用RSA加密
+ */
+public class OauthConfigUtil {
+ /**
+ * 获取Oauth配置信息
+ *
+ * @return Oauth配置信息
+ */
+ public static OauthConfigUserPwdInfo getOauthConfig() {
+ PlatformConfig platformConfig = new PlatformConfig();//读取配置
+ OauthConfigUserPwdInfo oauthConfigUserPwdInfo = new OauthConfigUserPwdInfo(
+ platformConfig.getHost(),
+ platformConfig.getClientId(),
+ platformConfig.getClientSecret(),
+ platformConfig.getUsername(),
+ platformConfig.getPassword(),
+ false,
+ platformConfig.getHttpsPort(),
+ platformConfig.getHttpPort()
+ );
+ oauthConfigUserPwdInfo.getHttpConfigInfo().setReadTimeout(platformConfig.getReadTimeout());
+ oauthConfigUserPwdInfo.getHttpConfigInfo().setConnectionTimeout(platformConfig.getConnectionTimeout());
+ return oauthConfigUserPwdInfo;
+ }
+}
diff --git a/src/main/java/com/zilber/boot/dahua/config/PlatformConfig.java b/src/main/java/com/zilber/boot/dahua/config/PlatformConfig.java
new file mode 100644
index 0000000..ea0a000
--- /dev/null
+++ b/src/main/java/com/zilber/boot/dahua/config/PlatformConfig.java
@@ -0,0 +1,89 @@
+package com.zilber.boot.dahua.config;
+
+/**
+ * 平台信息配置
+ */
+public class PlatformConfig {
+
+ private String clientId = "CompanyName";//凭证ID自定义,配合申请凭证流程申请
+ private String clientSecret = "42bec152-8f04-476a-9aec-e7d616ff3cb3";//凭证密钥,参考此地址申请https://open-icc.dahuatech.com/iccdoc/enterprisebase/5.0.15/wiki/common/quickstart.html#%E7%94%B3%E8%AF%B7OpenAPI%E7%94%A8%E6%88%B7
+ private String username = "TEST";//平台登录用户名
+ private String password = "OGR28u6_cc";//平台登录密码
+ private String host = "124.160.33.135";//平台IP,联调环境IP
+ private String httpsPort = "4077";//https默认端口是443,联调环境443映射外网端口为4077
+ private String httpPort = "4078";//http默认端口是83,但不开启,,联调环境83映射外网端口为4078;需运维中心开启http调试模式后才支持;isEnableHttpTest=true时有效,
+ private Long connectionTimeout = -1l;//连接超时
+ private Long readTimeout = -1l;//读取超时
+
+ public String getClientId() {
+ return clientId;
+ }
+
+ public void setClientId(String clientId) {
+ this.clientId = clientId;
+ }
+
+ public String getClientSecret() {
+ return clientSecret;
+ }
+
+ public void setClientSecret(String clientSecret) {
+ this.clientSecret = clientSecret;
+ }
+
+ public String getUsername() {
+ return username;
+ }
+
+ public void setUsername(String username) {
+ this.username = username;
+ }
+
+ public String getPassword() {
+ return password;
+ }
+
+ public void setPassword(String password) {
+ this.password = password;
+ }
+
+ public String getHost() {
+ return host;
+ }
+
+ public void setHost(String host) {
+ this.host = host;
+ }
+
+ public String getHttpsPort() {
+ return httpsPort;
+ }
+
+ public void setHttpsPort(String httpsPort) {
+ this.httpsPort = httpsPort;
+ }
+
+ public String getHttpPort() {
+ return httpPort;
+ }
+
+ public void setHttpPort(String httpPort) {
+ this.httpPort = httpPort;
+ }
+
+ public Long getConnectionTimeout() {
+ return connectionTimeout;
+ }
+
+ public void setConnectionTimeout(Long connectionTimeout) {
+ this.connectionTimeout = connectionTimeout;
+ }
+
+ public Long getReadTimeout() {
+ return readTimeout;
+ }
+
+ public void setReadTimeout(Long readTimeout) {
+ this.readTimeout = readTimeout;
+ }
+}
diff --git a/src/main/java/com/zilber/boot/dahua/controller/DahuaController.java b/src/main/java/com/zilber/boot/dahua/controller/DahuaController.java
new file mode 100644
index 0000000..a965bf5
--- /dev/null
+++ b/src/main/java/com/zilber/boot/dahua/controller/DahuaController.java
@@ -0,0 +1,102 @@
+package com.zilber.boot.dahua.controller;
+
+import com.dahuatech.hutool.http.Method;
+import com.dahuatech.hutool.json.JSONUtil;
+import com.dahuatech.icc.exception.ClientException;
+import com.dahuatech.icc.oauth.model.v202010.OauthConfigUserPwdInfo;
+import com.dahuatech.icc.oauth.utils.HttpUtils;
+import com.zilber.boot.dahua.accesscontrol.QueryRecordRequest;
+import com.zilber.boot.dahua.accesscontrol.QueryRecordResponse;
+import com.zilber.boot.dahua.attendance.GetRecordPageRequest;
+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 io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+@RestController
+@Api(tags = "大华接口")
+@RequestMapping("/dahua")
+@Slf4j
+public class DahuaController {
+
+ /**
+ * 打卡记录查询
+ * @param getRecordPageRequest
+ * @return
+ * @throws ClientException
+ * 参考API:https://open-icc.dahuatech.com/#/home?url=%3Fnav%3Dwiki%2Fevo-attendance%2Fatt_information.html%23%E6%89%93%E5%8D%A1%E8%AE%B0%E5%BD%95%E6%9F%A5%E8%AF%A2&version=enterprisebase/5.0.16&blank=true
+ */
+ @ApiOperation(value = "打卡记录查询",notes = "打卡记录查询")
+ @PostMapping("/attendance/getRecordPage")
+ public GetRecordPageResponse getAttendanceRecordPage(@RequestBody GetRecordPageRequest getRecordPageRequest) {
+ OauthConfigUserPwdInfo config = OauthConfigUtil.getOauthConfig();
+ GetRecordPageResponse response=null;
+ try {
+ 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));
+ } catch (ClientException e) {
+ log.error(e.getErrMsg(), e);
+ }
+ if(!response.isSuccess()) {
+ log.info("打卡记录查询失败:{}",response.getErrMsg());
+ }
+ return response;
+ }
+
+ /**
+ * 分页获取考勤结果
+ * @param getResultPageRequest
+ * @return
+ * @throws ClientException
+ */
+ @ApiOperation(value = "分页获取考勤结果",notes = "分页获取考勤结果")
+ @PostMapping("/attendance/getResultPage")
+ public GetResultPageResponse getAttendanceResultPage(@RequestBody GetResultPageRequest getResultPageRequest) {
+ OauthConfigUserPwdInfo config = OauthConfigUtil.getOauthConfig();
+ GetResultPageResponse response=null;
+ try {
+ 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));
+ } catch (ClientException e) {
+ log.error(e.getErrMsg(), e);
+ }
+ if(!response.isSuccess()) {
+ log.info("分页获取考勤结果失败:{}",response.getErrMsg());
+ }
+ return response;
+ }
+
+ /**
+ * 门禁
+ * @return
+ * @throws ClientException
+ * 参考API:https://open-icc.dahuatech.com/#/home?url=%3Fnav%3Dwiki%2Fevo-accesscontrol%2Fevent.html&version=enterprisebase/5.0.16&blank=true
+ */
+ @ApiOperation(value = "门禁记录查询",notes = "门禁记录查询")
+ @PostMapping("/accessControl/getRecordPage")
+ public QueryRecordResponse getRecordPage(@RequestBody QueryRecordRequest queryRecordRequest){
+ OauthConfigUserPwdInfo config = OauthConfigUtil.getOauthConfig();
+ QueryRecordResponse response=null;
+ try {
+ 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));
+ } catch (ClientException e) {
+ log.error(e.getErrMsg(), e);
+ }
+ if(!response.isSuccess()) {
+ log.info("门禁记录分页查询失败:{}",response.getErrMsg());
+ }
+ return response;
+ }
+
+}