Commit 8f40faaf authored by 赵啸非's avatar 赵啸非

添加考勤逻辑判断

parent 3f8b5c82
......@@ -32,8 +32,9 @@ public abstract class AbstractHikService {
// int lUserID = -1;//用户句柄
static int iCharEncodeType = 0; //设备字符集
private HCNetSDK hCNetSDK;
protected HCNetSDK createSDKInstance() {
HCNetSDK hCNetSDK = null;
if (hCNetSDK == null) {
synchronized (HCNetSDK.class) {
String strDllPath = "";
......@@ -44,9 +45,41 @@ public abstract class AbstractHikService {
strDllPath = System.getProperty("user.dir") + "\\lib\\HCNetSDK.dll";
else if (osSelect.isLinux())
//Linux系统加载库路径
// strDllPath = System.getProperty("user.dir") + "/lib/libhcnetsdk.so";
// strDllPath = System.getProperty("user.dir") + "/lib/libhcnetsdk.so";
strDllPath = "/home/jx/lib/libhcnetsdk.so";
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) {
log.error("loadLibrary: " + strDllPath + " Error: " + ex.getMessage());
return hCNetSDK;
......@@ -61,16 +94,16 @@ public abstract class AbstractHikService {
*
* @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 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 = 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());
......@@ -81,7 +114,7 @@ public abstract class AbstractHikService {
ptrByteArray2.write();
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/";
HCNetSDK.NET_DVR_LOCAL_SDK_PATH struComPath = new HCNetSDK.NET_DVR_LOCAL_SDK_PATH();
System.arraycopy(strPathCom.getBytes(), 0, struComPath.sPath, 0, strPathCom.length());
......@@ -89,15 +122,17 @@ public abstract class AbstractHikService {
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;//用户句柄
//注册
......@@ -137,6 +172,7 @@ public abstract class AbstractHikService {
if (lUserID >= 0) {
hCNetSDK.NET_DVR_Logout(lUserID);
}
}
......
......@@ -68,7 +68,7 @@ public class HikDoorServiceImpl extends AbstractHikService implements IHikDoorSe
public Rest<List<EventInfo>> searchDoorEventsList(HikDoorEventReq hikDoorEventReq, DoorEntity doorEntity) {
HCNetSDK hCNetSDK = createSDKInstance();
initLoadSdk(hCNetSDK);
//initLoadSdk(hCNetSDK);
int userID = login(hCNetSDK, doorEntity);
List<EventInfo> eventInfoList = new ArrayList<>();
......@@ -163,7 +163,7 @@ public class HikDoorServiceImpl extends AbstractHikService implements IHikDoorSe
} catch (Exception e) {
log.error("获取事件异常", e);
}
logout(hCNetSDK,userID);
return Rest.ok(eventInfoList);
......
......@@ -33,7 +33,7 @@ public class HikStaffServiceImpl extends AbstractHikService implements IHikStaff
public Rest<UserSearchInfo> getPersonList(StaffReq personReq, DoorEntity doorEntity) {
//todo 新的链接设备
HCNetSDK hCNetSDK = createSDKInstance();
initLoadSdk(hCNetSDK);
// initLoadSdk(hCNetSDK);
int userID = login(hCNetSDK, doorEntity);
HCNetSDK.BYTE_ARRAY ptrByteArray = new HCNetSDK.BYTE_ARRAY(1024); //数组
......@@ -107,6 +107,7 @@ public class HikStaffServiceImpl extends AbstractHikService implements IHikStaff
}
UserSearchInfo userSearchInfo = JSON.parseObject(resp, new TypeReference<UserSearchInfo>() {
});
logout(hCNetSDK,userID);
return Rest.ok(userSearchInfo);
} catch (Exception e) {
log.error("获取人员异常", e);
......@@ -117,7 +118,7 @@ public class HikStaffServiceImpl extends AbstractHikService implements IHikStaff
@Override
public Rest<UserSearchInfo> getPersonCount(StaffReq personReq, DoorEntity doorEntity) {
HCNetSDK hCNetSDK = createSDKInstance();
initLoadSdk(hCNetSDK);
//initLoadSdk(hCNetSDK);
int userID = login(hCNetSDK, doorEntity);
HCNetSDK.BYTE_ARRAY ptrByteArray = new HCNetSDK.BYTE_ARRAY(1024); //数组
......@@ -192,6 +193,8 @@ public class HikStaffServiceImpl extends AbstractHikService implements IHikStaff
}
UserSearchInfo userSearchInfo = JSON.parseObject(resp, new TypeReference<UserSearchInfo>() {
});
logout(hCNetSDK,userID);
return Rest.ok(userSearchInfo);
} catch (Exception e) {
log.error("获取人员异常", e);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment