diff --git a/src/main/java/com/hkversion/Acs/AcsMain.java b/src/main/java/com/hkversion/Acs/AcsMain.java index b76e7d2..26aefdc 100644 --- a/src/main/java/com/hkversion/Acs/AcsMain.java +++ b/src/main/java/com/hkversion/Acs/AcsMain.java @@ -91,14 +91,15 @@ public class AcsMain { //开启SDK日志打印 boolean i= hCNetSDK.NET_DVR_SetLogToFile(3, "./sdklog", false); - login_V40("118.122.89.90","admin","yzx123456",(short) 7713); //登陆设备 + login_V40("118.122.89.90","admin","yzx123456",(short) 7715); //登陆设备 +// login_V40("175.155.64.18","admin","ADMIN12345",(short) 50021); //登陆设备 /** * 人员管理模块 */ // UserManage.searchUserInfo(lUserID,"s4775"); //查询所有人员 // UserManage.deleteUserInfo(lUserID); // UserManage.addUserInfo(lUserID,"test20221122"); //添加人员 - UserManage.modifyUserInfo(lUserID,"s382268",1); +// UserManage.modifyUserInfo(lUserID,"u461",1); /** * 人脸管理模块 @@ -140,7 +141,9 @@ public class AcsMain { // MutilCard.setGroupCfg(lUserID); // MutilCard.setMultiCardCfg(lUserID); //计划模板 - UserManage.setCardTemplate(lUserID,1); +// UserManage.setCardTemplate(lUserID,1); + //获取计划模板 + UserManage.getCardTemplate(lUserID,2); //设备能力获取 // DeviceAbility.getDeviceAbility(lUserID,0x01); diff --git a/src/main/java/com/hkversion/Acs/UserManage.java b/src/main/java/com/hkversion/Acs/UserManage.java index 0409209..1cc8a2c 100644 --- a/src/main/java/com/hkversion/Acs/UserManage.java +++ b/src/main/java/com/hkversion/Acs/UserManage.java @@ -126,6 +126,7 @@ public class UserManage { } public static int modifyUserInfo(int lUserID, String employeeNo,int planTemplateNo) throws InterruptedException, JSONException { + int status = -1; HCNetSDK.BYTE_ARRAY ptrByteArray = new HCNetSDK.BYTE_ARRAY(1024); //数组 //"POST /ISAPI/AccessControl/UserInfo/Record?format=json" 此URL也是下发人员 String strInBuffer = "PUT /ISAPI/AccessControl/UserInfo/Modify?format=json"; @@ -191,6 +192,7 @@ public class UserManage { System.out.println("更新人员成功,但是有异常情况:" + jsonResult.toString()); } else { System.out.println("更新人员成功: json retun:" + jsonResult.toString()); + status = 1; } break; } else if (dwState == HCNetSDK.NET_SDK_CONFIG_STATUS_FINISH) { @@ -203,10 +205,9 @@ public class UserManage { System.out.println("NET_DVR_StopRemoteConfig接口调用失败,错误码:" + HKVersion.hCNetSDK.NET_DVR_GetLastError()); } else { System.out.println("NET_DVR_StopRemoteConfig接口成功"); - return 1; } } - return -1; + return status; } /** @@ -466,6 +467,57 @@ public class UserManage { } + /** + * 人员计划模板配置 + * + * @param userID 用户登录句柄 + * @param iPlanTemplateNumber 计划模板编号,从1开始,最大值从门禁能力集获取 + */ + public static void getCardTemplate(int userID, int iPlanTemplateNumber) { + //设置卡权限计划模板参数 + HCNetSDK.NET_DVR_PLAN_TEMPLATE_COND struPlanCond = new HCNetSDK.NET_DVR_PLAN_TEMPLATE_COND(); + struPlanCond.dwSize = struPlanCond.size(); + struPlanCond.dwPlanTemplateNumber = iPlanTemplateNumber;//计划模板编号,从1开始,最大值从门禁能力集获取 + struPlanCond.wLocalControllerID = 0;//就地控制器序号[1,64],0表示门禁主机 + struPlanCond.write(); + IntByReference pInt = new IntByReference(0); + Pointer lpStatusList = pInt.getPointer(); + //获取卡权限周计划参数 + HCNetSDK.NET_DVR_WEEK_PLAN_COND struWeekPlanCond = new HCNetSDK.NET_DVR_WEEK_PLAN_COND(); + struWeekPlanCond.dwSize = struWeekPlanCond.size(); + struWeekPlanCond.dwWeekPlanNumber = iPlanTemplateNumber; + struWeekPlanCond.wLocalControllerID = 0; + HCNetSDK.NET_DVR_WEEK_PLAN_CFG struWeekPlanCfg = new HCNetSDK.NET_DVR_WEEK_PLAN_CFG(); + struWeekPlanCond.write(); + struWeekPlanCfg.write(); + Pointer lpCond = struWeekPlanCond.getPointer(); + Pointer lpInbuferCfg = struWeekPlanCfg.getPointer(); + if (false == HKVersion.hCNetSDK.NET_DVR_GetDeviceConfig(userID, HCNetSDK.NET_DVR_GET_CARD_RIGHT_WEEK_PLAN_V50, 1, lpCond, struWeekPlanCond.size(), lpStatusList, lpInbuferCfg, struWeekPlanCfg.size())) { + System.out.println("NET_DVR_GET_CARD_RIGHT_WEEK_PLAN_V50失败,错误号:" + HKVersion.hCNetSDK.NET_DVR_GetLastError()); + return; + } + struWeekPlanCfg.read(); + + + + for (int i = 0; i < 7; i++) { + System.out.println("星期:"+(i+1)); + for (int j = 0; j < 8; j++) { + System.out.print("可用状态:"+struWeekPlanCfg.struPlanCfg[i].struPlanCfgDay[j].byEnable); + System.out.println("\t时间段"+j+":"+struWeekPlanCfg.struPlanCfg[i].struPlanCfgDay[j].struTimeSegment.struBeginTime.byHour + + ":" + + struWeekPlanCfg.struPlanCfg[i].struPlanCfgDay[j].struTimeSegment.struBeginTime.byMinute + + ":" + + struWeekPlanCfg.struPlanCfg[i].struPlanCfgDay[j].struTimeSegment.struBeginTime.bySecond + "--" + struWeekPlanCfg.struPlanCfg[i].struPlanCfgDay[j].struTimeSegment.struEndTime.byHour + + ":" + + struWeekPlanCfg.struPlanCfg[i].struPlanCfgDay[j].struTimeSegment.struEndTime.byMinute + + ":" + + struWeekPlanCfg.struPlanCfg[i].struPlanCfgDay[j].struTimeSegment.struEndTime.bySecond); + } + } + } + + /** * 人员计划模板配置 * @@ -483,7 +535,7 @@ public class UserManage { HCNetSDK.NET_DVR_PLAN_TEMPLATE struPlanTemCfg = new HCNetSDK.NET_DVR_PLAN_TEMPLATE(); struPlanTemCfg.dwSize = struPlanTemCfg.size(); struPlanTemCfg.byEnable = info.getEnable(); //是否使能:0- 否,1- 是 - struPlanTemCfg.dwWeekPlanNo = 2;//周计划编号,0表示无效 + struPlanTemCfg.dwWeekPlanNo = iPlanTemplateNumber;//周计划编号,0表示无效 struPlanTemCfg.dwHolidayGroupNo[0] = 0;//假日组编号,按值表示,采用紧凑型排列,中间遇到0则后续无效 byte[] byTemplateName; try { @@ -508,7 +560,7 @@ public class UserManage { //获取卡权限周计划参数 HCNetSDK.NET_DVR_WEEK_PLAN_COND struWeekPlanCond = new HCNetSDK.NET_DVR_WEEK_PLAN_COND(); struWeekPlanCond.dwSize = struWeekPlanCond.size(); - struWeekPlanCond.dwWeekPlanNumber = 2; + struWeekPlanCond.dwWeekPlanNumber = iPlanTemplateNumber; struWeekPlanCond.wLocalControllerID = 0; HCNetSDK.NET_DVR_WEEK_PLAN_CFG struWeekPlanCfg = new HCNetSDK.NET_DVR_WEEK_PLAN_CFG(); struWeekPlanCond.write();