From 8f18c4f54bb18bdacd30f346c18cbfac835f4367 Mon Sep 17 00:00:00 2001 From: haidong Date: Tue, 10 Oct 2023 14:55:15 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E5=A4=A7=E5=8D=8E=E8=AE=BE?= =?UTF-8?q?=E5=A4=87=E5=AF=B9=E6=8E=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: haidong --- .../com/netsdk/demo/module/GateModule.java | 46 ++++++++++++++++++- src/main/java/com/yzx/impl/DaHua.java | 5 +- 2 files changed, 48 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/netsdk/demo/module/GateModule.java b/src/main/java/com/netsdk/demo/module/GateModule.java index 774d5db..22bb87c 100644 --- a/src/main/java/com/netsdk/demo/module/GateModule.java +++ b/src/main/java/com/netsdk/demo/module/GateModule.java @@ -1038,7 +1038,51 @@ public class GateModule { return null; } - + + public static NET_RECORDSET_ACCESS_CTL_CARD[] findNextCardV2(LLong m_lFindHandle,int nFindCount) { + // 用于申请内存 + NET_RECORDSET_ACCESS_CTL_CARD[] pstRecord = new NET_RECORDSET_ACCESS_CTL_CARD[nFindCount]; + for(int i = 0; i < nFindCount; i++) { + pstRecord[i] = new NET_RECORDSET_ACCESS_CTL_CARD(); + } + + /** + * CLIENT_FindNextRecord 接口入参 + */ + NET_IN_FIND_NEXT_RECORD_PARAM stNextIn = new NET_IN_FIND_NEXT_RECORD_PARAM(); + stNextIn.lFindeHandle = m_lFindHandle; + stNextIn.nFileCount = nFindCount; //想查询的记录条数 + + /** + * CLIENT_FindNextRecord 接口出参 + */ + NET_OUT_FIND_NEXT_RECORD_PARAM stNextOut = new NET_OUT_FIND_NEXT_RECORD_PARAM(); + stNextOut.nMaxRecordNum = nFindCount; + stNextOut.pRecordList = new Memory(pstRecord[0].dwSize * nFindCount); // 申请内存 + stNextOut.pRecordList.clear(pstRecord[0].dwSize * nFindCount); + + ToolKits.SetStructArrToPointerData(pstRecord, stNextOut.pRecordList); // 将数组内存拷贝给指针 + + if(LoginModule.netsdk.CLIENT_FindNextRecord(stNextIn, stNextOut, 5000)) { + if(stNextOut.nRetRecordNum == 0) { + return null; + } + + ToolKits.GetPointerDataToStructArr(stNextOut.pRecordList, pstRecord); // 获取卡信息 + + // 获取有用的信息 + NET_RECORDSET_ACCESS_CTL_CARD[] pstRecordEx = new NET_RECORDSET_ACCESS_CTL_CARD[stNextOut.nRetRecordNum]; + for(int i = 0; i < stNextOut.nRetRecordNum; i++) { + pstRecordEx[i] = new NET_RECORDSET_ACCESS_CTL_CARD(); + pstRecordEx[i] = pstRecord[i]; + } + + return pstRecordEx; + } + + return null; + } + /** * 关闭查询 */ diff --git a/src/main/java/com/yzx/impl/DaHua.java b/src/main/java/com/yzx/impl/DaHua.java index e8dbda4..807b4eb 100644 --- a/src/main/java/com/yzx/impl/DaHua.java +++ b/src/main/java/com/yzx/impl/DaHua.java @@ -203,7 +203,7 @@ public class DaHua implements IHardwareEquipment { return true; } }else{//添加 - if(this.addUserCard(userFaceInfo) && this.updateUserFace(employeeNo,userFaceInfo.getImageBytes())){ + if(this.addUserCard(userFaceInfo) && this.addUserFace(employeeNo,userFaceInfo.getImageBytes())){ return true; } } @@ -260,6 +260,7 @@ public class DaHua implements IHardwareEquipment { String endTime = userFaceInfo.getEndTime(); String cardNo = userFaceInfo.getCardNo(); boolean b = GateModule.insertCardV2(info.getLoginHandle(),cardNo, employeeNo, employeeName, "", 0, 0, 0, 0, 1, startTime, endTime); + return b; } @@ -293,7 +294,7 @@ public class DaHua implements IHardwareEquipment { // 查询具体信息 while(true) { - NetSDKLib.NET_RECORDSET_ACCESS_CTL_CARD[] pstRecord = GateModule.findNextCard(nFindCount); + NetSDKLib.NET_RECORDSET_ACCESS_CTL_CARD[] pstRecord = GateModule.findNextCardV2(this.info.getFindHandle(),nFindCount); if(pstRecord == null) { break; }