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

添加考勤逻辑判断

parent 3f8b5c82
...@@ -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);
} }
} }
......
...@@ -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);
......
...@@ -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);
......
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