Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
A
attendance-performance-platform
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
赵啸非
attendance-performance-platform
Commits
e9c21db6
Commit
e9c21db6
authored
Nov 24, 2023
by
赵啸非
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
添加海康人员查询接口
parent
a888b865
Changes
17
Show whitespace changes
Inline
Side-by-side
Showing
17 changed files
with
466 additions
and
6 deletions
+466
-6
assembly/assembly.xml
assembly/assembly.xml
+7
-1
attendance-performance-manager/src/main/java/com/mortals/xhx/daemon/task/SyncDoorsEventAfterTaskImpl.java
.../mortals/xhx/daemon/task/SyncDoorsEventAfterTaskImpl.java
+1
-1
attendance-performance-manager/src/main/java/com/mortals/xhx/daemon/task/SyncDoorsEventTaskImpl.java
...a/com/mortals/xhx/daemon/task/SyncDoorsEventTaskImpl.java
+1
-1
attendance-performance-manager/src/main/java/com/mortals/xhx/daemon/task/SyncUserTaskImpl.java
...in/java/com/mortals/xhx/daemon/task/SyncUserTaskImpl.java
+1
-1
attendance-performance-manager/src/main/java/com/mortals/xhx/hikdoor/Acs/AcsMain.java
...er/src/main/java/com/mortals/xhx/hikdoor/Acs/AcsMain.java
+2
-2
attendance-performance-manager/src/main/java/com/mortals/xhx/module/hik/AbstractHikService.java
...n/java/com/mortals/xhx/module/hik/AbstractHikService.java
+111
-0
attendance-performance-manager/src/main/java/com/mortals/xhx/module/hik/staff/model/req/org/OrgListReq.java
...ortals/xhx/module/hik/staff/model/req/org/OrgListReq.java
+11
-0
attendance-performance-manager/src/main/java/com/mortals/xhx/module/hik/staff/model/req/person/PersonReq.java
...tals/xhx/module/hik/staff/model/req/person/PersonReq.java
+22
-0
attendance-performance-manager/src/main/java/com/mortals/xhx/module/hik/staff/model/rsp/org/OrgDataInfo.java
...rtals/xhx/module/hik/staff/model/rsp/org/OrgDataInfo.java
+13
-0
attendance-performance-manager/src/main/java/com/mortals/xhx/module/hik/staff/model/rsp/org/OrgInfo.java
...m/mortals/xhx/module/hik/staff/model/rsp/org/OrgInfo.java
+14
-0
attendance-performance-manager/src/main/java/com/mortals/xhx/module/hik/staff/model/rsp/person/PersonDataInfo.java
...xhx/module/hik/staff/model/rsp/person/PersonDataInfo.java
+13
-0
attendance-performance-manager/src/main/java/com/mortals/xhx/module/hik/staff/model/rsp/person/PersonInfo.java
...als/xhx/module/hik/staff/model/rsp/person/PersonInfo.java
+23
-0
attendance-performance-manager/src/main/java/com/mortals/xhx/module/hik/staff/model/rsp/person/PersonPhoto.java
...ls/xhx/module/hik/staff/model/rsp/person/PersonPhoto.java
+11
-0
attendance-performance-manager/src/main/java/com/mortals/xhx/module/hik/staff/model/rsp/staff/StaffInfo.java
...rtals/xhx/module/hik/staff/model/rsp/staff/StaffInfo.java
+15
-0
attendance-performance-manager/src/main/java/com/mortals/xhx/module/hik/staff/model/rsp/staff/ValidInfo.java
...rtals/xhx/module/hik/staff/model/rsp/staff/ValidInfo.java
+18
-0
attendance-performance-manager/src/main/java/com/mortals/xhx/module/hik/staff/service/IHikStaffService.java
...ortals/xhx/module/hik/staff/service/IHikStaffService.java
+34
-0
attendance-performance-manager/src/main/java/com/mortals/xhx/module/hik/staff/service/impl/HikStaffServiceImpl.java
...hx/module/hik/staff/service/impl/HikStaffServiceImpl.java
+169
-0
No files found.
assembly/assembly.xml
View file @
e9c21db6
...
...
@@ -18,8 +18,14 @@
<outputDirectory>
boot
</outputDirectory>
<fileMode>
0755
</fileMode>
</fileSet>
<fileSet>
<directory>
${project.parent.basedir}/lib
</directory>
<outputDirectory>
lib
</outputDirectory>
<fileMode>
0755
</fileMode>
</fileSet>
<fileSet>
<directory>
.
/db
</directory>
<directory>
${project.parent.basedir}
/db
</directory>
<includes>
<include>
*.sql
</include>
</includes>
...
...
attendance-performance-manager/src/main/java/com/mortals/xhx/daemon/task/SyncDoorsEventAfterTaskImpl.java
View file @
e9c21db6
...
...
@@ -35,7 +35,7 @@ import java.util.stream.Collectors;
* 同步获取下午海康门禁事件
*/
@Slf4j
@Service
(
"SyncDoorsEventAfterTask"
)
//
@Service("SyncDoorsEventAfterTask")
public
class
SyncDoorsEventAfterTaskImpl
implements
ITaskExcuteService
{
@Autowired
...
...
attendance-performance-manager/src/main/java/com/mortals/xhx/daemon/task/SyncDoorsEventTaskImpl.java
View file @
e9c21db6
...
...
@@ -39,7 +39,7 @@ import java.util.stream.Collectors;
* 同步获取当天海康门禁事件
*/
@Slf4j
@Service
(
"SyncDoorsEventTask"
)
//
@Service("SyncDoorsEventTask")
public
class
SyncDoorsEventTaskImpl
implements
ITaskExcuteService
{
@Autowired
...
...
attendance-performance-manager/src/main/java/com/mortals/xhx/daemon/task/SyncUserTaskImpl.java
View file @
e9c21db6
...
...
@@ -38,7 +38,7 @@ import java.util.stream.Collectors;
* 同步海康用户
*/
@Slf4j
@Service
(
"SyncUserTask"
)
//
@Service("SyncUserTask")
public
class
SyncUserTaskImpl
implements
ITaskExcuteService
{
@Autowired
...
...
attendance-performance-manager/src/main/java/com/mortals/xhx/hikdoor/Acs/AcsMain.java
View file @
e9c21db6
...
...
@@ -100,7 +100,7 @@ public class AcsMain {
/**门禁主机参数设置(获取)*/
ACSManage
.
acsCfg
(
lUserID
);
//
ACSManage.acsCfg(lUserID);
/**获取门禁主机工作状态*/
// ACSManage.getAcsStatus(lUserID);
...
...
@@ -118,7 +118,7 @@ public class AcsMain {
/**
* 删除人员
*/
//
UserManage.deleteUserInfo(lUserID);
UserManage
.
deleteUserInfo
(
lUserID
);
/**获取所有卡*/
// CardManage.getAllCard(lUserID);
...
...
attendance-performance-manager/src/main/java/com/mortals/xhx/module/hik/AbstractHikService.java
View file @
e9c21db6
package
com.mortals.xhx.module.hik
;
import
com.hikvision.artemis.sdk.config.ArtemisConfig
;
import
com.mortals.xhx.hikdoor.Commom.osSelect
;
import
com.mortals.xhx.hikdoor.NetSDKDemo.HCNetSDK
;
import
com.mortals.xhx.module.door.model.DoorEntity
;
import
com.sun.jna.Native
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Value
;
import
java.util.HashMap
;
import
java.util.Map
;
@Slf4j
public
abstract
class
AbstractHikService
{
@Value
(
"${hik.host:}"
)
...
...
@@ -23,6 +29,111 @@ public abstract class AbstractHikService {
public
String
ARTEMIS_PATH
=
"/artemis"
;
protected
Map
<
String
,
String
>
path
=
new
HashMap
<>(
2
);
// int lUserID = -1;//用户句柄
static
int
iCharEncodeType
=
0
;
//设备字符集
protected
HCNetSDK
createSDKInstance
()
{
HCNetSDK
hCNetSDK
=
null
;
if
(
hCNetSDK
==
null
)
{
synchronized
(
HCNetSDK
.
class
)
{
String
strDllPath
=
""
;
try
{
//System.setProperty("jna.debug_load", "true");
if
(
osSelect
.
isWindows
())
//win系统加载库路径
strDllPath
=
System
.
getProperty
(
"user.dir"
)
+
"\\lib\\HCNetSDK.dll"
;
else
if
(
osSelect
.
isLinux
())
//Linux系统加载库路径
strDllPath
=
System
.
getProperty
(
"user.dir"
)
+
"/lib/libhcnetsdk.so"
;
hCNetSDK
=
(
HCNetSDK
)
Native
.
loadLibrary
(
strDllPath
,
HCNetSDK
.
class
);
}
catch
(
Exception
ex
)
{
log
.
error
(
"loadLibrary: "
+
strDllPath
+
" Error: "
+
ex
.
getMessage
());
return
hCNetSDK
;
}
}
}
return
hCNetSDK
;
}
/**
* 返回用户句柄
*
* @param hCNetSDK
* @return
*/
public
HCNetSDK
initLoadSdk
(
HCNetSDK
hCNetSDK
)
{
if
(
osSelect
.
isLinux
())
{
HCNetSDK
.
BYTE_ARRAY
ptrByteArray1
=
new
HCNetSDK
.
BYTE_ARRAY
(
256
);
HCNetSDK
.
BYTE_ARRAY
ptrByteArray2
=
new
HCNetSDK
.
BYTE_ARRAY
(
256
);
//这里是库的绝对路径,请根据实际情况修改,注意改路径必须有访问权限
String
strPath1
=
System
.
getProperty
(
"user.dir"
)
+
"/lib/libcrypto.so.1.1"
;
String
strPath2
=
System
.
getProperty
(
"user.dir"
)
+
"/lib/libssl.so.1.1"
;
System
.
arraycopy
(
strPath1
.
getBytes
(),
0
,
ptrByteArray1
.
byValue
,
0
,
strPath1
.
length
());
ptrByteArray1
.
write
();
hCNetSDK
.
NET_DVR_SetSDKInitCfg
(
3
,
ptrByteArray1
.
getPointer
());
System
.
arraycopy
(
strPath2
.
getBytes
(),
0
,
ptrByteArray2
.
byValue
,
0
,
strPath2
.
length
());
ptrByteArray2
.
write
();
hCNetSDK
.
NET_DVR_SetSDKInitCfg
(
4
,
ptrByteArray2
.
getPointer
());
String
strPathCom
=
System
.
getProperty
(
"user.dir"
)
+
"/lib/"
;
HCNetSDK
.
NET_DVR_LOCAL_SDK_PATH
struComPath
=
new
HCNetSDK
.
NET_DVR_LOCAL_SDK_PATH
();
System
.
arraycopy
(
strPathCom
.
getBytes
(),
0
,
struComPath
.
sPath
,
0
,
strPathCom
.
length
());
struComPath
.
write
();
hCNetSDK
.
NET_DVR_SetSDKInitCfg
(
2
,
struComPath
.
getPointer
());
}
/**初始化*/
hCNetSDK
.
NET_DVR_Init
();
/**加载日志*/
boolean
i
=
hCNetSDK
.
NET_DVR_SetLogToFile
(
3
,
"./sdklog"
,
false
);
return
hCNetSDK
;
}
protected
int
login
(
HCNetSDK
hCNetSDK
,
DoorEntity
doorEntity
)
{
int
lUserID
=
-
1
;
//用户句柄
//注册
HCNetSDK
.
NET_DVR_USER_LOGIN_INFO
m_strLoginInfo
=
new
HCNetSDK
.
NET_DVR_USER_LOGIN_INFO
();
//设备登录信息
String
m_sDeviceIP
=
doorEntity
.
getIp
();
//设备ip地址
m_strLoginInfo
.
sDeviceAddress
=
new
byte
[
HCNetSDK
.
NET_DVR_DEV_ADDRESS_MAX_LEN
];
System
.
arraycopy
(
m_sDeviceIP
.
getBytes
(),
0
,
m_strLoginInfo
.
sDeviceAddress
,
0
,
m_sDeviceIP
.
length
());
String
m_sUsername
=
doorEntity
.
getUsername
();
//设备用户名
m_strLoginInfo
.
sUserName
=
new
byte
[
HCNetSDK
.
NET_DVR_LOGIN_USERNAME_MAX_LEN
];
System
.
arraycopy
(
m_sUsername
.
getBytes
(),
0
,
m_strLoginInfo
.
sUserName
,
0
,
m_sUsername
.
length
());
String
m_sPassword
=
doorEntity
.
getPassword
();
//设备密码
m_strLoginInfo
.
sPassword
=
new
byte
[
HCNetSDK
.
NET_DVR_LOGIN_PASSWD_MAX_LEN
];
System
.
arraycopy
(
m_sPassword
.
getBytes
(),
0
,
m_strLoginInfo
.
sPassword
,
0
,
m_sPassword
.
length
());
m_strLoginInfo
.
wPort
=
doorEntity
.
getPort
().
shortValue
();
//sdk端口
m_strLoginInfo
.
bUseAsynLogin
=
false
;
//是否异步登录:0- 否,1- 是
m_strLoginInfo
.
write
();
HCNetSDK
.
NET_DVR_DEVICEINFO_V40
m_strDeviceInfo
=
new
HCNetSDK
.
NET_DVR_DEVICEINFO_V40
();
//设备信息
lUserID
=
hCNetSDK
.
NET_DVR_Login_V40
(
m_strLoginInfo
,
m_strDeviceInfo
);
if
(
lUserID
==
-
1
)
{
log
.
info
(
"登录失败,错误码为"
+
hCNetSDK
.
NET_DVR_GetLastError
());
return
lUserID
;
}
else
{
log
.
info
(
"登录成功!"
);
m_strDeviceInfo
.
read
();
iCharEncodeType
=
m_strDeviceInfo
.
byCharEncodeType
;
return
lUserID
;
}
}
/**
* 登出操作
*/
public
void
logout
(
HCNetSDK
hCNetSDK
,
int
lUserID
)
{
/**登出和清理,释放SDK资源*/
if
(
lUserID
>=
0
)
{
hCNetSDK
.
NET_DVR_Logout
(
lUserID
);
}
}
protected
ArtemisConfig
getArtemisConfig
()
{
...
...
attendance-performance-manager/src/main/java/com/mortals/xhx/module/hik/staff/model/req/org/OrgListReq.java
0 → 100644
View file @
e9c21db6
package
com.mortals.xhx.module.hik.staff.model.req.org
;
import
lombok.Data
;
@Data
public
class
OrgListReq
{
private
String
orgName
;
private
String
orgIndexCodes
;
private
int
pageNo
;
private
int
pageSize
;
}
\ No newline at end of file
attendance-performance-manager/src/main/java/com/mortals/xhx/module/hik/staff/model/req/person/PersonReq.java
0 → 100644
View file @
e9c21db6
package
com.mortals.xhx.module.hik.staff.model.req.person
;
import
com.mortals.xhx.module.hik.BaseReq
;
import
lombok.Data
;
import
java.io.Serializable
;
@Data
public
class
PersonReq
extends
BaseReq
implements
Serializable
{
/**
* 当前页
*/
private
Integer
pageNo
;
/**
* 每页大小
*/
private
Integer
pageSize
;
}
attendance-performance-manager/src/main/java/com/mortals/xhx/module/hik/staff/model/rsp/org/OrgDataInfo.java
0 → 100644
View file @
e9c21db6
package
com.mortals.xhx.module.hik.staff.model.rsp.org
;
import
lombok.Data
;
import
java.util.List
;
@Data
public
class
OrgDataInfo
{
private
List
<
OrgInfo
>
list
;
private
Integer
total
;
private
Integer
totalPage
;
private
Integer
pageNo
;
}
attendance-performance-manager/src/main/java/com/mortals/xhx/module/hik/staff/model/rsp/org/OrgInfo.java
0 → 100644
View file @
e9c21db6
package
com.mortals.xhx.module.hik.staff.model.rsp.org
;
import
lombok.Data
;
@Data
public
class
OrgInfo
{
private
String
orgName
;
private
String
orgNo
;
private
String
orgPath
;
private
String
parentOrgIndexCode
;
private
String
orgIndexCode
;
private
String
updateTime
;
private
String
parentOrgName
;
}
\ No newline at end of file
attendance-performance-manager/src/main/java/com/mortals/xhx/module/hik/staff/model/rsp/person/PersonDataInfo.java
0 → 100644
View file @
e9c21db6
package
com.mortals.xhx.module.hik.staff.model.rsp.person
;
import
lombok.Data
;
import
java.util.List
;
@Data
public
class
PersonDataInfo
{
private
List
<
PersonInfo
>
list
;
private
Integer
total
;
private
Integer
totalPage
;
private
Integer
pageNo
;
}
attendance-performance-manager/src/main/java/com/mortals/xhx/module/hik/staff/model/rsp/person/PersonInfo.java
0 → 100644
View file @
e9c21db6
package
com.mortals.xhx.module.hik.staff.model.rsp.person
;
import
com.alibaba.fastjson.annotation.JSONField
;
import
lombok.Data
;
import
java.util.Date
;
@Data
public
class
PersonInfo
{
private
String
personId
;
private
String
personName
;
private
int
gender
;
private
String
orgPath
;
private
String
orgIndexCode
;
private
String
orgName
;
private
int
certificateType
;
private
String
certificateNo
;
@JSONField
(
format
=
"yyyy-MM-dd'T'HH:mm:ssXXX"
)
private
Date
updateTime
;
private
String
phoneNo
;
private
PersonPhoto
personPhoto
;
private
String
jobNo
;
}
\ No newline at end of file
attendance-performance-manager/src/main/java/com/mortals/xhx/module/hik/staff/model/rsp/person/PersonPhoto.java
0 → 100644
View file @
e9c21db6
package
com.mortals.xhx.module.hik.staff.model.rsp.person
;
import
lombok.Data
;
@Data
public
class
PersonPhoto
{
private
String
personPhotoIndexCode
;
private
String
picUri
;
private
String
personId
;
private
String
serverIndexCode
;
}
\ No newline at end of file
attendance-performance-manager/src/main/java/com/mortals/xhx/module/hik/staff/model/rsp/staff/StaffInfo.java
0 → 100644
View file @
e9c21db6
package
com.mortals.xhx.module.hik.staff.model.rsp.staff
;
import
lombok.Data
;
@Data
public
class
StaffInfo
{
private
String
employeeNo
;
private
String
name
;
private
String
gender
;
private
String
userType
;
private
String
password
;
private
String
belongGroup
;
private
int
numOfCard
;
private
int
numOfFace
;
}
\ No newline at end of file
attendance-performance-manager/src/main/java/com/mortals/xhx/module/hik/staff/model/rsp/staff/ValidInfo.java
0 → 100644
View file @
e9c21db6
package
com.mortals.xhx.module.hik.staff.model.rsp.staff
;
import
com.alibaba.fastjson.annotation.JSONField
;
import
com.mortals.xhx.module.hik.staff.model.rsp.person.PersonInfo
;
import
lombok.Data
;
import
java.util.Date
;
import
java.util.List
;
@Data
public
class
ValidInfo
{
private
Boolean
enable
;
@JSONField
(
format
=
"yyyy-MM-dd'T'HH:mm:ss"
)
private
Date
beginTime
;
@JSONField
(
format
=
"yyyy-MM-dd'T'HH:mm:ss"
)
private
Date
endTime
;
}
attendance-performance-manager/src/main/java/com/mortals/xhx/module/hik/staff/service/IHikStaffService.java
0 → 100644
View file @
e9c21db6
package
com.mortals.xhx.module.hik.staff.service
;
import
com.mortals.framework.common.Rest
;
import
com.mortals.xhx.module.door.model.DoorEntity
;
import
com.mortals.xhx.module.hik.staff.model.req.person.PersonReq
;
import
com.mortals.xhx.module.hik.staff.model.rsp.person.PersonDataInfo
;
/**
* 海康人员接口对接类
*
* @author:
* @date: 2023/4/12 17:47
*/
public
interface
IHikStaffService
{
/**
* 获取人员接口
*
* @param personReq
* @return
*/
Rest
<
PersonDataInfo
>
getPersonList
(
PersonReq
personReq
,
DoorEntity
doorEntity
);
/**
* 获取所有人员接口
*
* @return
*/
Rest
<
PersonDataInfo
>
getAllPersonList
(
DoorEntity
doorEntity
);
}
attendance-performance-manager/src/main/java/com/mortals/xhx/module/hik/staff/service/impl/HikStaffServiceImpl.java
0 → 100644
View file @
e9c21db6
package
com.mortals.xhx.module.hik.staff.service.impl
;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.TypeReference
;
import
com.hikvision.artemis.sdk.ArtemisHttpUtil
;
import
com.hikvision.artemis.sdk.config.ArtemisConfig
;
import
com.mortals.framework.common.Rest
;
import
com.mortals.xhx.hikdoor.Acs.AcsMain
;
import
com.mortals.xhx.hikdoor.NetSDKDemo.HCNetSDK
;
import
com.mortals.xhx.module.door.model.DoorEntity
;
import
com.mortals.xhx.module.hik.AbstractHikService
;
import
com.mortals.xhx.module.hik.HikApiRest
;
import
com.mortals.xhx.module.hik.staff.model.req.person.PersonReq
;
import
com.mortals.xhx.module.hik.staff.model.rsp.person.PersonDataInfo
;
import
com.mortals.xhx.module.hik.staff.service.IHikStaffService
;
import
com.sun.jna.ptr.IntByReference
;
import
lombok.extern.slf4j.Slf4j
;
import
org.json.JSONObject
;
import
org.springframework.stereotype.Service
;
import
java.util.HashMap
;
import
java.util.Map
;
/**
* 海康人员接口类
*
* @author: zxfei
* @date: 2023/4/12 17:51
*/
@Service
(
"hikStaffService"
)
@Slf4j
public
class
HikStaffServiceImpl
extends
AbstractHikService
implements
IHikStaffService
{
//查询所有人员
@Override
public
Rest
<
PersonDataInfo
>
getPersonList
(
PersonReq
personReq
,
DoorEntity
doorEntity
)
{
//todo 新的链接设备
HCNetSDK
hCNetSDK
=
createSDKInstance
();
initLoadSdk
(
hCNetSDK
);
int
userID
=
login
(
hCNetSDK
,
doorEntity
);
HCNetSDK
.
BYTE_ARRAY
ptrByteArray
=
new
HCNetSDK
.
BYTE_ARRAY
(
1024
);
//数组
String
strInBuffer
=
"POST /ISAPI/AccessControl/UserInfo/Search?format=json"
;
System
.
arraycopy
(
strInBuffer
.
getBytes
(),
0
,
ptrByteArray
.
byValue
,
0
,
strInBuffer
.
length
());
//字符串拷贝到数组中
ptrByteArray
.
write
();
int
lHandler
=
hCNetSDK
.
NET_DVR_StartRemoteConfig
(
userID
,
HCNetSDK
.
NET_DVR_JSON_CONFIG
,
ptrByteArray
.
getPointer
(),
strInBuffer
.
length
(),
null
,
null
);
if
(
lHandler
<
0
){
log
.
info
(
"SearchUserInfo NET_DVR_StartRemoteConfig 失败,错误码为"
+
hCNetSDK
.
NET_DVR_GetLastError
());
}
else
{
//组装查询的JSON报文,这边查询的是所有的人员
JSONObject
jsonObject
=
new
JSONObject
();
JSONObject
jsonSearchCond
=
new
JSONObject
();
//如果需要查询指定的工号人员信息,把下面注释的内容去除掉即可
/* JSONArray EmployeeNoList = new JSONArray();
JSONObject employeeNo1 = new JSONObject();
employeeNo1.put("employeeNo", "12346");
JSONObject employeeNo2 = new JSONObject();
employeeNo2.put("employeeNo", "1000");
EmployeeNoList.put(employeeNo1);
EmployeeNoList.put(employeeNo2);
jsonSearchCond.put("EmployeeNoList", EmployeeNoList);*/
jsonSearchCond
.
put
(
"searchID"
,
"20211126"
);
jsonSearchCond
.
put
(
"searchResultPosition"
,
0
);
jsonSearchCond
.
put
(
"maxResults"
,
150
);
jsonObject
.
put
(
"UserInfoSearchCond"
,
jsonSearchCond
);
String
strInbuff
=
jsonObject
.
toString
();
log
.
info
(
"查询的json报文:"
+
strInbuff
);
//把string传递到Byte数组中,后续用.getPointer()方法传入指针地址中。
HCNetSDK
.
BYTE_ARRAY
ptrInbuff
=
new
HCNetSDK
.
BYTE_ARRAY
(
strInbuff
.
length
());
System
.
arraycopy
(
strInbuff
.
getBytes
(),
0
,
ptrInbuff
.
byValue
,
0
,
strInbuff
.
length
());
ptrInbuff
.
write
();
//定义接收结果的结构体
HCNetSDK
.
BYTE_ARRAY
ptrOutuff
=
new
HCNetSDK
.
BYTE_ARRAY
(
1024
*
1024
);
IntByReference
pInt
=
new
IntByReference
(
0
);
while
(
true
){
int
dwState
=
hCNetSDK
.
NET_DVR_SendWithRecvRemoteConfig
(
lHandler
,
ptrInbuff
.
getPointer
(),
strInbuff
.
length
(),
ptrOutuff
.
getPointer
(),
1024
*
1024
,
pInt
);
System
.
out
.
println
(
dwState
);
if
(
dwState
==
-
1
){
System
.
out
.
println
(
"NET_DVR_SendWithRecvRemoteConfig接口调用失败,错误码:"
+
hCNetSDK
.
NET_DVR_GetLastError
());
break
;
}
else
if
(
dwState
==
HCNetSDK
.
NET_SDK_CONFIG_STATUS_NEED_WAIT
)
{
System
.
out
.
println
(
"配置等待"
);
try
{
Thread
.
sleep
(
10
);
}
catch
(
InterruptedException
e
)
{
// TODO Auto-generated catch block
e
.
printStackTrace
();
}
continue
;
}
else
if
(
dwState
==
HCNetSDK
.
NET_SDK_CONFIG_STATUS_FAILED
)
{
System
.
out
.
println
(
"查询人员失败"
);
break
;
}
else
if
(
dwState
==
HCNetSDK
.
NET_SDK_CONFIG_STATUS_EXCEPTION
)
{
System
.
out
.
println
(
"查询人员异常"
);
break
;
}
else
if
(
dwState
==
HCNetSDK
.
NET_SDK_CONFIG_STATUS_SUCCESS
)
{
ptrOutuff
.
read
();
System
.
out
.
println
(
"查询人员成功, json:"
+
new
String
(
ptrOutuff
.
byValue
).
trim
());
break
;
}
else
if
(
dwState
==
HCNetSDK
.
NET_SDK_CONFIG_STATUS_FINISH
)
{
System
.
out
.
println
(
"获取人员完成"
);
break
;
}
}
if
(!
hCNetSDK
.
NET_DVR_StopRemoteConfig
(
lHandler
)){
System
.
out
.
println
(
"NET_DVR_StopRemoteConfig接口调用失败,错误码:"
+
hCNetSDK
.
NET_DVR_GetLastError
());
}
else
{
System
.
out
.
println
(
"NET_DVR_StopRemoteConfig接口成功"
);
lHandler
=
-
1
;
}
}
ArtemisConfig
config
=
getArtemisConfig
();
String
getCamsApi
=
ARTEMIS_PATH
+
"/api/resource/v1/person/personList"
;
Map
<
String
,
String
>
path
=
new
HashMap
<>(
2
);
path
.
put
(
protocol
,
getCamsApi
);
try
{
String
respJson
=
ArtemisHttpUtil
.
doPostStringArtemis
(
config
,
path
,
JSON
.
toJSONString
(
personReq
),
null
,
null
,
"application/json"
);
log
.
info
(
"person resp=>{}"
,
respJson
);
HikApiRest
<
PersonDataInfo
>
rest
=
JSON
.
parseObject
(
respJson
,
new
TypeReference
<
HikApiRest
<
PersonDataInfo
>>()
{
});
if
(
"0"
.
equals
(
rest
.
getCode
()))
{
return
Rest
.
ok
(
rest
.
getData
());
}
else
{
log
.
info
(
"person error resp=>{}"
,
respJson
);
return
Rest
.
fail
(
rest
.
getMsg
());
}
}
catch
(
Exception
e
)
{
log
.
error
(
"获取人员异常"
,
e
);
return
Rest
.
fail
(
e
.
getMessage
());
}
}
@Override
public
Rest
<
PersonDataInfo
>
getAllPersonList
(
DoorEntity
doorEntity
)
{
return
null
;
}
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment