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
8f40faaf
Commit
8f40faaf
authored
Nov 28, 2023
by
赵啸非
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
添加考勤逻辑判断
parent
3f8b5c82
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
54 additions
and
15 deletions
+54
-15
attendance-performance-manager/src/main/java/com/mortals/xhx/module/hik/AbstractHikService.java
...n/java/com/mortals/xhx/module/hik/AbstractHikService.java
+47
-11
attendance-performance-manager/src/main/java/com/mortals/xhx/module/hik/door/service/impl/HikDoorServiceImpl.java
.../xhx/module/hik/door/service/impl/HikDoorServiceImpl.java
+2
-2
attendance-performance-manager/src/main/java/com/mortals/xhx/module/hik/staff/service/impl/HikStaffServiceImpl.java
...hx/module/hik/staff/service/impl/HikStaffServiceImpl.java
+5
-2
No files found.
attendance-performance-manager/src/main/java/com/mortals/xhx/module/hik/AbstractHikService.java
View file @
8f40faaf
...
@@ -32,8 +32,9 @@ public abstract class AbstractHikService {
...
@@ -32,8 +32,9 @@ public abstract class AbstractHikService {
// int lUserID = -1;//用户句柄
// int lUserID = -1;//用户句柄
static
int
iCharEncodeType
=
0
;
//设备字符集
static
int
iCharEncodeType
=
0
;
//设备字符集
private
HCNetSDK
hCNetSDK
;
protected
HCNetSDK
createSDKInstance
()
{
protected
HCNetSDK
createSDKInstance
()
{
HCNetSDK
hCNetSDK
=
null
;
if
(
hCNetSDK
==
null
)
{
if
(
hCNetSDK
==
null
)
{
synchronized
(
HCNetSDK
.
class
)
{
synchronized
(
HCNetSDK
.
class
)
{
String
strDllPath
=
""
;
String
strDllPath
=
""
;
...
@@ -44,9 +45,41 @@ public abstract class AbstractHikService {
...
@@ -44,9 +45,41 @@ public abstract class AbstractHikService {
strDllPath
=
System
.
getProperty
(
"user.dir"
)
+
"\\lib\\HCNetSDK.dll"
;
strDllPath
=
System
.
getProperty
(
"user.dir"
)
+
"\\lib\\HCNetSDK.dll"
;
else
if
(
osSelect
.
isLinux
())
else
if
(
osSelect
.
isLinux
())
//Linux系统加载库路径
//Linux系统加载库路径
// strDllPath = System.getProperty("user.dir") + "/lib/libhcnetsdk.so";
// strDllPath = System.getProperty("user.dir") + "/lib/libhcnetsdk.so";
strDllPath
=
"/home/jx/lib/libhcnetsdk.so"
;
strDllPath
=
"/home/jx/lib/libhcnetsdk.so"
;
hCNetSDK
=
(
HCNetSDK
)
Native
.
loadLibrary
(
strDllPath
,
HCNetSDK
.
class
);
hCNetSDK
=
(
HCNetSDK
)
Native
.
loadLibrary
(
strDllPath
,
HCNetSDK
.
class
);
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
strPath1
=
"/home/jx/lib/libcrypto.so.1.1"
;
// String strPath2 = System.getProperty("user.dir") + "/lib/libssl.so.1.1";
String
strPath2
=
"/home/jx/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/";
String
strPathCom
=
"/home/jx/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
);
}
catch
(
Exception
ex
)
{
}
catch
(
Exception
ex
)
{
log
.
error
(
"loadLibrary: "
+
strDllPath
+
" Error: "
+
ex
.
getMessage
());
log
.
error
(
"loadLibrary: "
+
strDllPath
+
" Error: "
+
ex
.
getMessage
());
return
hCNetSDK
;
return
hCNetSDK
;
...
@@ -61,16 +94,16 @@ public abstract class AbstractHikService {
...
@@ -61,16 +94,16 @@ public abstract class AbstractHikService {
*
*
* @param hCNetSDK
* @param hCNetSDK
* @return
* @return
*/
*/
/*
public HCNetSDK initLoadSdk(HCNetSDK hCNetSDK) {
public HCNetSDK initLoadSdk(HCNetSDK hCNetSDK) {
if (osSelect.isLinux()) {
if (osSelect.isLinux()) {
HCNetSDK.BYTE_ARRAY ptrByteArray1 = new HCNetSDK.BYTE_ARRAY(256);
HCNetSDK.BYTE_ARRAY ptrByteArray1 = new HCNetSDK.BYTE_ARRAY(256);
HCNetSDK.BYTE_ARRAY ptrByteArray2 = 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 strPath1 = System.getProperty("user.dir") + "/lib/libcrypto.so.1.1";
String strPath1 = "/home/jx/lib/libcrypto.so.1.1";
String strPath1 = "/home/jx/lib/libcrypto.so.1.1";
// String strPath2 = System.getProperty("user.dir") + "/lib/libssl.so.1.1";
// String strPath2 = System.getProperty("user.dir") + "/lib/libssl.so.1.1";
String strPath2 = "/home/jx/lib/libssl.so.1.1";
String strPath2 = "/home/jx/lib/libssl.so.1.1";
System.arraycopy(strPath1.getBytes(), 0, ptrByteArray1.byValue, 0, strPath1.length());
System.arraycopy(strPath1.getBytes(), 0, ptrByteArray1.byValue, 0, strPath1.length());
...
@@ -81,7 +114,7 @@ public abstract class AbstractHikService {
...
@@ -81,7 +114,7 @@ public abstract class AbstractHikService {
ptrByteArray2.write();
ptrByteArray2.write();
hCNetSDK.NET_DVR_SetSDKInitCfg(4, ptrByteArray2.getPointer());
hCNetSDK.NET_DVR_SetSDKInitCfg(4, ptrByteArray2.getPointer());
// String strPathCom = System.getProperty("user.dir") + "/lib/";
// String strPathCom = System.getProperty("user.dir") + "/lib/";
String strPathCom = "/home/jx/lib/";
String strPathCom = "/home/jx/lib/";
HCNetSDK.NET_DVR_LOCAL_SDK_PATH struComPath = new HCNetSDK.NET_DVR_LOCAL_SDK_PATH();
HCNetSDK.NET_DVR_LOCAL_SDK_PATH struComPath = new HCNetSDK.NET_DVR_LOCAL_SDK_PATH();
System.arraycopy(strPathCom.getBytes(), 0, struComPath.sPath, 0, strPathCom.length());
System.arraycopy(strPathCom.getBytes(), 0, struComPath.sPath, 0, strPathCom.length());
...
@@ -89,15 +122,17 @@ public abstract class AbstractHikService {
...
@@ -89,15 +122,17 @@ public abstract class AbstractHikService {
hCNetSDK.NET_DVR_SetSDKInitCfg(2, struComPath.getPointer());
hCNetSDK.NET_DVR_SetSDKInitCfg(2, struComPath.getPointer());
}
}
/**初始化*/
*//**初始化*//*
hCNetSDK.NET_DVR_Init();
hCNetSDK.NET_DVR_Init();
/**加载日志*/
*/
/**
* 加载日志
*//*
boolean i = hCNetSDK.NET_DVR_SetLogToFile(3, "./sdklog", false);
boolean i = hCNetSDK.NET_DVR_SetLogToFile(3, "./sdklog", false);
return hCNetSDK;
return hCNetSDK;
}
}*/
protected
int
login
(
HCNetSDK
hCNetSDK
,
DoorEntity
doorEntity
)
{
protected
int
login
(
HCNetSDK
hCNetSDK
,
DoorEntity
doorEntity
)
{
int
lUserID
=
-
1
;
//用户句柄
int
lUserID
=
-
1
;
//用户句柄
//注册
//注册
...
@@ -137,6 +172,7 @@ public abstract class AbstractHikService {
...
@@ -137,6 +172,7 @@ public abstract class AbstractHikService {
if
(
lUserID
>=
0
)
{
if
(
lUserID
>=
0
)
{
hCNetSDK
.
NET_DVR_Logout
(
lUserID
);
hCNetSDK
.
NET_DVR_Logout
(
lUserID
);
}
}
}
}
...
...
attendance-performance-manager/src/main/java/com/mortals/xhx/module/hik/door/service/impl/HikDoorServiceImpl.java
View file @
8f40faaf
...
@@ -68,7 +68,7 @@ public class HikDoorServiceImpl extends AbstractHikService implements IHikDoorSe
...
@@ -68,7 +68,7 @@ public class HikDoorServiceImpl extends AbstractHikService implements IHikDoorSe
public
Rest
<
List
<
EventInfo
>>
searchDoorEventsList
(
HikDoorEventReq
hikDoorEventReq
,
DoorEntity
doorEntity
)
{
public
Rest
<
List
<
EventInfo
>>
searchDoorEventsList
(
HikDoorEventReq
hikDoorEventReq
,
DoorEntity
doorEntity
)
{
HCNetSDK
hCNetSDK
=
createSDKInstance
();
HCNetSDK
hCNetSDK
=
createSDKInstance
();
initLoadSdk
(
hCNetSDK
);
//
initLoadSdk(hCNetSDK);
int
userID
=
login
(
hCNetSDK
,
doorEntity
);
int
userID
=
login
(
hCNetSDK
,
doorEntity
);
List
<
EventInfo
>
eventInfoList
=
new
ArrayList
<>();
List
<
EventInfo
>
eventInfoList
=
new
ArrayList
<>();
...
@@ -163,7 +163,7 @@ public class HikDoorServiceImpl extends AbstractHikService implements IHikDoorSe
...
@@ -163,7 +163,7 @@ public class HikDoorServiceImpl extends AbstractHikService implements IHikDoorSe
}
catch
(
Exception
e
)
{
}
catch
(
Exception
e
)
{
log
.
error
(
"获取事件异常"
,
e
);
log
.
error
(
"获取事件异常"
,
e
);
}
}
logout
(
hCNetSDK
,
userID
);
return
Rest
.
ok
(
eventInfoList
);
return
Rest
.
ok
(
eventInfoList
);
...
...
attendance-performance-manager/src/main/java/com/mortals/xhx/module/hik/staff/service/impl/HikStaffServiceImpl.java
View file @
8f40faaf
...
@@ -33,7 +33,7 @@ public class HikStaffServiceImpl extends AbstractHikService implements IHikStaff
...
@@ -33,7 +33,7 @@ public class HikStaffServiceImpl extends AbstractHikService implements IHikStaff
public
Rest
<
UserSearchInfo
>
getPersonList
(
StaffReq
personReq
,
DoorEntity
doorEntity
)
{
public
Rest
<
UserSearchInfo
>
getPersonList
(
StaffReq
personReq
,
DoorEntity
doorEntity
)
{
//todo 新的链接设备
//todo 新的链接设备
HCNetSDK
hCNetSDK
=
createSDKInstance
();
HCNetSDK
hCNetSDK
=
createSDKInstance
();
initLoadSdk
(
hCNetSDK
);
//
initLoadSdk(hCNetSDK);
int
userID
=
login
(
hCNetSDK
,
doorEntity
);
int
userID
=
login
(
hCNetSDK
,
doorEntity
);
HCNetSDK
.
BYTE_ARRAY
ptrByteArray
=
new
HCNetSDK
.
BYTE_ARRAY
(
1024
);
//数组
HCNetSDK
.
BYTE_ARRAY
ptrByteArray
=
new
HCNetSDK
.
BYTE_ARRAY
(
1024
);
//数组
...
@@ -107,6 +107,7 @@ public class HikStaffServiceImpl extends AbstractHikService implements IHikStaff
...
@@ -107,6 +107,7 @@ public class HikStaffServiceImpl extends AbstractHikService implements IHikStaff
}
}
UserSearchInfo
userSearchInfo
=
JSON
.
parseObject
(
resp
,
new
TypeReference
<
UserSearchInfo
>()
{
UserSearchInfo
userSearchInfo
=
JSON
.
parseObject
(
resp
,
new
TypeReference
<
UserSearchInfo
>()
{
});
});
logout
(
hCNetSDK
,
userID
);
return
Rest
.
ok
(
userSearchInfo
);
return
Rest
.
ok
(
userSearchInfo
);
}
catch
(
Exception
e
)
{
}
catch
(
Exception
e
)
{
log
.
error
(
"获取人员异常"
,
e
);
log
.
error
(
"获取人员异常"
,
e
);
...
@@ -117,7 +118,7 @@ public class HikStaffServiceImpl extends AbstractHikService implements IHikStaff
...
@@ -117,7 +118,7 @@ public class HikStaffServiceImpl extends AbstractHikService implements IHikStaff
@Override
@Override
public
Rest
<
UserSearchInfo
>
getPersonCount
(
StaffReq
personReq
,
DoorEntity
doorEntity
)
{
public
Rest
<
UserSearchInfo
>
getPersonCount
(
StaffReq
personReq
,
DoorEntity
doorEntity
)
{
HCNetSDK
hCNetSDK
=
createSDKInstance
();
HCNetSDK
hCNetSDK
=
createSDKInstance
();
initLoadSdk
(
hCNetSDK
);
//
initLoadSdk(hCNetSDK);
int
userID
=
login
(
hCNetSDK
,
doorEntity
);
int
userID
=
login
(
hCNetSDK
,
doorEntity
);
HCNetSDK
.
BYTE_ARRAY
ptrByteArray
=
new
HCNetSDK
.
BYTE_ARRAY
(
1024
);
//数组
HCNetSDK
.
BYTE_ARRAY
ptrByteArray
=
new
HCNetSDK
.
BYTE_ARRAY
(
1024
);
//数组
...
@@ -192,6 +193,8 @@ public class HikStaffServiceImpl extends AbstractHikService implements IHikStaff
...
@@ -192,6 +193,8 @@ public class HikStaffServiceImpl extends AbstractHikService implements IHikStaff
}
}
UserSearchInfo
userSearchInfo
=
JSON
.
parseObject
(
resp
,
new
TypeReference
<
UserSearchInfo
>()
{
UserSearchInfo
userSearchInfo
=
JSON
.
parseObject
(
resp
,
new
TypeReference
<
UserSearchInfo
>()
{
});
});
logout
(
hCNetSDK
,
userID
);
return
Rest
.
ok
(
userSearchInfo
);
return
Rest
.
ok
(
userSearchInfo
);
}
catch
(
Exception
e
)
{
}
catch
(
Exception
e
)
{
log
.
error
(
"获取人员异常"
,
e
);
log
.
error
(
"获取人员异常"
,
e
);
...
...
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