Commit 533102565aaa8093fc7bec7f246cba165b20cf5d
1 parent
4fd85d85
Exists in
master
大华项目代码提交
Showing
4 changed files
with
100 additions
and
78 deletions
Show diff stats
cloud/dahua/src/main/java/com/example/dahua/MyTask.java
| @@ -443,12 +443,13 @@ public class MyTask implements ApplicationRunner { | @@ -443,12 +443,13 @@ public class MyTask implements ApplicationRunner { | ||
| 443 | checkIn.setFlag(eventType == 2 ? 1 : 0); | 443 | checkIn.setFlag(eventType == 2 ? 1 : 0); |
| 444 | checkIn.setCheckTime(eventTime); | 444 | checkIn.setCheckTime(eventTime); |
| 445 | searchMapper.checkIn(checkIn); | 445 | searchMapper.checkIn(checkIn); |
| 446 | + | ||
| 446 | if (checkIn.getIsSuccess() == 1) { | 447 | if (checkIn.getIsSuccess() == 1) { |
| 447 | //考勤成功 | 448 | //考勤成功 |
| 448 | String content = "考勤成功!,设备:" + deviceId + "卡号:" + cardNo + "方向:" + (eventType == 1 ? "进门" : "出门") + "______" + eventTime; | 449 | String content = "考勤成功!,设备:" + deviceId + "卡号:" + cardNo + "方向:" + (eventType == 1 ? "进门" : "出门") + "______" + eventTime; |
| 449 | 450 | ||
| 450 | //开始推送看板 | 451 | //开始推送看板 |
| 451 | - sendMQMess(content,deviceId,eventType); | 452 | + sendMQMess(deviceId,cardNo,eventType); |
| 452 | 453 | ||
| 453 | //记录学生考勤签到记录 | 454 | //记录学生考勤签到记录 |
| 454 | FileUtils.getInstance().writeLogs(content, FileUtils.qiandaoSuccess); | 455 | FileUtils.getInstance().writeLogs(content, FileUtils.qiandaoSuccess); |
cloud/dahua/src/main/java/com/example/dahua/async/SendUserInfoTask.java
| @@ -328,7 +328,7 @@ public class SendUserInfoTask { | @@ -328,7 +328,7 @@ public class SendUserInfoTask { | ||
| 328 | 328 | ||
| 329 | String studentType = userDao.getStudentType(attendanceBean.getSchool_id(),sendRecordBean.getCustomerid()); | 329 | String studentType = userDao.getStudentType(attendanceBean.getSchool_id(),sendRecordBean.getCustomerid()); |
| 330 | //通道号 | 330 | //通道号 |
| 331 | - int channel = analysisPermission(Integer.parseInt(attendanceBean.getSchool_id()),studentType); | 331 | + String channel = analysisPermission(Integer.parseInt(attendanceBean.getSchool_id()),studentType); |
| 332 | 332 | ||
| 333 | /** | 333 | /** |
| 334 | * 注:用户下发逻辑 | 334 | * 注:用户下发逻辑 |
| @@ -370,10 +370,12 @@ public class SendUserInfoTask { | @@ -370,10 +370,12 @@ public class SendUserInfoTask { | ||
| 370 | log.info("=================开始执行下发人脸及卡号任务================="); | 370 | log.info("=================开始执行下发人脸及卡号任务================="); |
| 371 | //卡号取反 | 371 | //卡号取反 |
| 372 | String cardNum =""; | 372 | String cardNum =""; |
| 373 | - if(attendanceBean.getClint_id().startsWith("ytj")&&Integer.parseInt(attendanceBean.getSchool_id())!=126&&Integer.parseInt(attendanceBean.getSchool_id())!=393) | ||
| 374 | - {cardNum = student_num;} | ||
| 375 | - else | ||
| 376 | - {cardNum = cardNo(student_num);} | 373 | + if(attendanceBean.getClint_id().startsWith("ytj")&&Integer.parseInt(attendanceBean.getSchool_id())!=126 |
| 374 | + &&Integer.parseInt(attendanceBean.getSchool_id())!=393) { | ||
| 375 | + cardNum = student_num; | ||
| 376 | + } else { | ||
| 377 | + cardNum = cardNo(student_num); | ||
| 378 | + } | ||
| 377 | //bCardFlags = true, 存在下发记录,则存在下发记录集编号,执行修改卡、人脸信息 | 379 | //bCardFlags = true, 存在下发记录,则存在下发记录集编号,执行修改卡、人脸信息 |
| 378 | if (bCardFlags ==1) { | 380 | if (bCardFlags ==1) { |
| 379 | //修改设备卡信息 | 381 | //修改设备卡信息 |
| @@ -510,7 +512,7 @@ public class SendUserInfoTask { | @@ -510,7 +512,7 @@ public class SendUserInfoTask { | ||
| 510 | * @param studentType | 512 | * @param studentType |
| 511 | * @return | 513 | * @return |
| 512 | */ | 514 | */ |
| 513 | - private int analysisPermission(int schoolId, String studentType){ | 515 | + private String analysisPermission(int schoolId, String studentType){ |
| 514 | List<PermissionFaceBean> permissionFaceBeans = permissFaceService.getPermissionList(schoolId); | 516 | List<PermissionFaceBean> permissionFaceBeans = permissFaceService.getPermissionList(schoolId); |
| 515 | String channel =""; | 517 | String channel =""; |
| 516 | if(permissionFaceBeans.size()>0){ | 518 | if(permissionFaceBeans.size()>0){ |
| @@ -523,22 +525,24 @@ public class SendUserInfoTask { | @@ -523,22 +525,24 @@ public class SendUserInfoTask { | ||
| 523 | channel= permissionFaceBean.getChannel(); | 525 | channel= permissionFaceBean.getChannel(); |
| 524 | } | 526 | } |
| 525 | } | 527 | } |
| 528 | + if(StringUtils.isEmpty(channel)){ | ||
| 529 | + log.warn("未获取到学校权限通道号!"); | ||
| 530 | + return ""; | ||
| 531 | + } | ||
| 532 | + return channel; | ||
| 526 | } | 533 | } |
| 527 | - if(StringUtils.isEmpty(channel)){ | ||
| 528 | - log.warn("未获取到学校权限通道号!"); | ||
| 529 | - return 0; | ||
| 530 | - } | ||
| 531 | - return Integer.parseInt(channel); | 534 | + return channel; |
| 532 | } | 535 | } |
| 533 | 536 | ||
| 534 | - | ||
| 535 | public static void main(String[] args) { | 537 | public static void main(String[] args) { |
| 536 | - String json ="{\"studentType\":\"1,2\",\"deviceIds\":[\"aaa\"],\"weekDays\":[{\"weekTimes\":[{\"startTime\":\"12:00\",\"endTime\":\"06:00\"}],\"sex\":\"1,2\",\"weekDay\":\"0,1,2\"}]}"; | ||
| 537 | - PermissionBean permissionBean = objectMapper.fromJson(json,PermissionBean.class); | ||
| 538 | - String studentType = permissionBean.getStudentType(); | ||
| 539 | - if(studentType.indexOf("1")!=-1){ | ||
| 540 | - System.out.println(true); | ||
| 541 | - } | 538 | +// String json ="{\"studentType\":\"1,2\",\"deviceIds\":[\"aaa\"],\"weekDays\":[{\"weekTimes\":[{\"startTime\":\"12:00\",\"endTime\":\"06:00\"}],\"sex\":\"1,2\",\"weekDay\":\"0,1,2\"}]}"; |
| 539 | +// PermissionBean permissionBean = objectMapper.fromJson(json,PermissionBean.class); | ||
| 540 | +// String studentType = permissionBean.getStudentType(); | ||
| 541 | +// if(studentType.indexOf("1")!=-1){ | ||
| 542 | +// System.out.println(true); | ||
| 543 | +// } | ||
| 544 | + String channel =""; | ||
| 545 | + System.out.println(Integer.parseInt(channel)); | ||
| 542 | } | 546 | } |
| 543 | 547 | ||
| 544 | /** | 548 | /** |
cloud/dahua/src/main/java/com/example/dahua/enums/EnumSendFaceErrorType.java
| @@ -9,6 +9,7 @@ import org.apache.commons.lang.StringUtils; | @@ -9,6 +9,7 @@ import org.apache.commons.lang.StringUtils; | ||
| 9 | */ | 9 | */ |
| 10 | public enum EnumSendFaceErrorType { | 10 | public enum EnumSendFaceErrorType { |
| 11 | 11 | ||
| 12 | + CHECK_DATA_ERR_21("21", "对返回数据的校验出错"), | ||
| 12 | EXCEED_SIZE_1028("1028", "图片大小超限"), | 13 | EXCEED_SIZE_1028("1028", "图片大小超限"), |
| 13 | NOT_EXIST_USER_1029("1029", "用户ID不存在"), | 14 | NOT_EXIST_USER_1029("1029", "用户ID不存在"), |
| 14 | EXTRACT_ERROR_1030("1030", "照片特征值提取失败"), | 15 | EXTRACT_ERROR_1030("1030", "照片特征值提取失败"), |
cloud/dahua/src/main/java/com/example/dahua/module/GateModule.java
| @@ -13,6 +13,7 @@ import com.sun.jna.Memory; | @@ -13,6 +13,7 @@ import com.sun.jna.Memory; | ||
| 13 | import com.sun.jna.Pointer; | 13 | import com.sun.jna.Pointer; |
| 14 | import com.sun.jna.ptr.IntByReference; | 14 | import com.sun.jna.ptr.IntByReference; |
| 15 | import lombok.extern.slf4j.Slf4j; | 15 | import lombok.extern.slf4j.Slf4j; |
| 16 | +import org.springframework.util.StringUtils; | ||
| 16 | 17 | ||
| 17 | import javax.imageio.ImageIO; | 18 | import javax.imageio.ImageIO; |
| 18 | import java.awt.image.BufferedImage; | 19 | import java.awt.image.BufferedImage; |
| @@ -202,91 +203,97 @@ public class GateModule { | @@ -202,91 +203,97 @@ public class GateModule { | ||
| 202 | // return true; | 203 | // return true; |
| 203 | } | 204 | } |
| 204 | 205 | ||
| 206 | + /** | ||
| 207 | + * 门禁卡记录集信息 | ||
| 208 | + */ | ||
| 209 | + private static final NET_RECORDSET_ACCESS_CTL_CARD insertCardInfo = new NET_RECORDSET_ACCESS_CTL_CARD(); | ||
| 210 | + /** | ||
| 211 | + * 记录集操作 | ||
| 212 | + */ | ||
| 213 | + private static final NET_CTRL_RECORDSET_INSERT_PARAM insert = new NET_CTRL_RECORDSET_INSERT_PARAM(); | ||
| 205 | 214 | ||
| 206 | public static synchronized int insertCard(String cardNo, String userId, String cardName, String cardPwd, | 215 | public static synchronized int insertCard(String cardNo, String userId, String cardName, String cardPwd, |
| 207 | int cardStatus, int cardType, int useTimes, int isFirstEnter, | 216 | int cardStatus, int cardType, int useTimes, int isFirstEnter, |
| 208 | int isValid, String startValidTime, String endValidTime, LLong lLong, | 217 | int isValid, String startValidTime, String endValidTime, LLong lLong, |
| 209 | - String userType,int channel) { | ||
| 210 | - /** | ||
| 211 | - * 门禁卡记录集信息 | ||
| 212 | - */ | ||
| 213 | - NET_RECORDSET_ACCESS_CTL_CARD accessCardInfo = new NET_RECORDSET_ACCESS_CTL_CARD(); | ||
| 214 | - | 218 | + String userType,String channel) { |
| 215 | // 卡号 | 219 | // 卡号 |
| 216 | - System.arraycopy(cardNo.getBytes(), 0, accessCardInfo.szCardNo, 0, cardNo.getBytes().length); | 220 | + System.arraycopy(cardNo.getBytes(), 0, insertCardInfo.szCardNo, 0, cardNo.getBytes().length); |
| 217 | 221 | ||
| 218 | // 用户ID | 222 | // 用户ID |
| 219 | - System.arraycopy(userId.getBytes(), 0, accessCardInfo.szUserID, 0, userId.getBytes().length); | 223 | + System.arraycopy(userId.getBytes(), 0, insertCardInfo.szUserID, 0, userId.getBytes().length); |
| 220 | 224 | ||
| 221 | // 卡名(设备上显示的姓名) | 225 | // 卡名(设备上显示的姓名) |
| 222 | try { | 226 | try { |
| 223 | - System.arraycopy(cardName.getBytes("GBK"), 0, accessCardInfo.szCardName, 0, cardName.getBytes("GBK").length); | 227 | + System.arraycopy(cardName.getBytes("GBK"), 0, insertCardInfo.szCardName, 0, cardName.getBytes("GBK").length); |
| 224 | } catch (UnsupportedEncodingException e) { | 228 | } catch (UnsupportedEncodingException e) { |
| 225 | e.printStackTrace(); | 229 | e.printStackTrace(); |
| 226 | } | 230 | } |
| 227 | 231 | ||
| 228 | // 卡密码 | 232 | // 卡密码 |
| 229 | - System.arraycopy(cardPwd.getBytes(), 0, accessCardInfo.szPsw, 0, cardPwd.getBytes().length); | 233 | + System.arraycopy(cardPwd.getBytes(), 0, insertCardInfo.szPsw, 0, cardPwd.getBytes().length); |
| 230 | 234 | ||
| 231 | //-- 设置开门权限 | 235 | //-- 设置开门权限 |
| 232 | - accessCardInfo.nDoorNum = 2; | ||
| 233 | - accessCardInfo.sznDoors[0] = 0; | ||
| 234 | - accessCardInfo.sznDoors[1] = 1; | ||
| 235 | - accessCardInfo.nTimeSectionNum = 2; // 与门数对应 | 236 | + insertCardInfo.nDoorNum = 2; |
| 237 | + insertCardInfo.sznDoors[0] = 0; | ||
| 238 | + insertCardInfo.sznDoors[1] = 1; | ||
| 239 | + insertCardInfo.nTimeSectionNum = 2; // 与门数对应 | ||
| 236 | if (userType.equals("1")){ | 240 | if (userType.equals("1")){ |
| 237 | - accessCardInfo.sznTimeSectionNo[0] = 255; // 表示第一个门全天有效 | ||
| 238 | - accessCardInfo.sznTimeSectionNo[1] = 255; // 表示第二个门全天有效 | 241 | + insertCardInfo.sznTimeSectionNo[0] = 255; // 表示第一个门全天有效 |
| 242 | + insertCardInfo.sznTimeSectionNo[1] = 255; // 表示第二个门全天有效 | ||
| 239 | }else { | 243 | }else { |
| 240 | - accessCardInfo.sznTimeSectionNo[0] = channel; // 表示第一个门全天有效 | ||
| 241 | - accessCardInfo.sznTimeSectionNo[1] = channel; // 表示第二个门全天有效 | 244 | + //此学校不存在权限设置默认为全天有效 |
| 245 | + if(StringUtils.isEmpty(channel)){ | ||
| 246 | + accessCardInfo.sznTimeSectionNo[0] = 255; // 表示第一个门全天有效 | ||
| 247 | + accessCardInfo.sznTimeSectionNo[1] = 255; // 表示第二个门全天有效 | ||
| 248 | + }else{ | ||
| 249 | + accessCardInfo.sznTimeSectionNo[0] = Integer.parseInt(channel); // 表示第一个门全天有效 | ||
| 250 | + accessCardInfo.sznTimeSectionNo[1] = Integer.parseInt(channel); // 表示第二个门全天有效 | ||
| 251 | + } | ||
| 242 | } | 252 | } |
| 243 | 253 | ||
| 244 | // 卡状态 | 254 | // 卡状态 |
| 245 | - accessCardInfo.emStatus = cardStatus; | 255 | + insertCardInfo.emStatus = cardStatus; |
| 246 | 256 | ||
| 247 | // 卡类型 | 257 | // 卡类型 |
| 248 | - accessCardInfo.emType = cardType; | 258 | + insertCardInfo.emType = cardType; |
| 249 | 259 | ||
| 250 | // 使用次数 | 260 | // 使用次数 |
| 251 | - accessCardInfo.nUserTime = useTimes; | 261 | + insertCardInfo.nUserTime = useTimes; |
| 252 | 262 | ||
| 253 | // 是否首卡 | 263 | // 是否首卡 |
| 254 | - accessCardInfo.bFirstEnter = isFirstEnter; | 264 | + insertCardInfo.bFirstEnter = isFirstEnter; |
| 255 | 265 | ||
| 256 | // 是否有效 | 266 | // 是否有效 |
| 257 | - accessCardInfo.bIsValid = isValid; | 267 | + insertCardInfo.bIsValid = isValid; |
| 258 | 268 | ||
| 259 | // 有效开始时间 | 269 | // 有效开始时间 |
| 260 | String[] startTimes = startValidTime.split(" "); | 270 | String[] startTimes = startValidTime.split(" "); |
| 261 | - accessCardInfo.stuValidStartTime.dwYear = Integer.parseInt(startTimes[0].split("-")[0]); | ||
| 262 | - accessCardInfo.stuValidStartTime.dwMonth = Integer.parseInt(startTimes[0].split("-")[1]); | ||
| 263 | - accessCardInfo.stuValidStartTime.dwDay = Integer.parseInt(startTimes[0].split("-")[2]); | ||
| 264 | - accessCardInfo.stuValidStartTime.dwHour = Integer.parseInt(startTimes[1].split(":")[0]); | ||
| 265 | - accessCardInfo.stuValidStartTime.dwMinute = Integer.parseInt(startTimes[1].split(":")[1]); | ||
| 266 | - accessCardInfo.stuValidStartTime.dwSecond = Integer.parseInt(startTimes[01].split(":")[2]); | 271 | + insertCardInfo.stuValidStartTime.dwYear = Integer.parseInt(startTimes[0].split("-")[0]); |
| 272 | + insertCardInfo.stuValidStartTime.dwMonth = Integer.parseInt(startTimes[0].split("-")[1]); | ||
| 273 | + insertCardInfo.stuValidStartTime.dwDay = Integer.parseInt(startTimes[0].split("-")[2]); | ||
| 274 | + insertCardInfo.stuValidStartTime.dwHour = Integer.parseInt(startTimes[1].split(":")[0]); | ||
| 275 | + insertCardInfo.stuValidStartTime.dwMinute = Integer.parseInt(startTimes[1].split(":")[1]); | ||
| 276 | + insertCardInfo.stuValidStartTime.dwSecond = Integer.parseInt(startTimes[01].split(":")[2]); | ||
| 267 | 277 | ||
| 268 | // 有效结束时间 | 278 | // 有效结束时间 |
| 269 | String[] endTimes = endValidTime.split(" "); | 279 | String[] endTimes = endValidTime.split(" "); |
| 270 | - accessCardInfo.stuValidEndTime.dwYear = Integer.parseInt(endTimes[0].split("-")[0]); | ||
| 271 | - accessCardInfo.stuValidEndTime.dwMonth = Integer.parseInt(endTimes[0].split("-")[1]); | ||
| 272 | - accessCardInfo.stuValidEndTime.dwDay = Integer.parseInt(endTimes[0].split("-")[2]); | ||
| 273 | - accessCardInfo.stuValidEndTime.dwHour = Integer.parseInt(endTimes[1].split(":")[0]); | ||
| 274 | - accessCardInfo.stuValidEndTime.dwMinute = Integer.parseInt(endTimes[1].split(":")[1]); | ||
| 275 | - accessCardInfo.stuValidEndTime.dwSecond = Integer.parseInt(endTimes[1].split(":")[2]); | 280 | + insertCardInfo.stuValidEndTime.dwYear = Integer.parseInt(endTimes[0].split("-")[0]); |
| 281 | + insertCardInfo.stuValidEndTime.dwMonth = Integer.parseInt(endTimes[0].split("-")[1]); | ||
| 282 | + insertCardInfo.stuValidEndTime.dwDay = Integer.parseInt(endTimes[0].split("-")[2]); | ||
| 283 | + insertCardInfo.stuValidEndTime.dwHour = Integer.parseInt(endTimes[1].split(":")[0]); | ||
| 284 | + insertCardInfo.stuValidEndTime.dwMinute = Integer.parseInt(endTimes[1].split(":")[1]); | ||
| 285 | + insertCardInfo.stuValidEndTime.dwSecond = Integer.parseInt(endTimes[1].split(":")[2]); | ||
| 286 | + | ||
| 276 | 287 | ||
| 277 | - /** | ||
| 278 | - * 记录集操作 | ||
| 279 | - */ | ||
| 280 | - NET_CTRL_RECORDSET_INSERT_PARAM insert = new NET_CTRL_RECORDSET_INSERT_PARAM(); | ||
| 281 | insert.stuCtrlRecordSetInfo.emType = EM_NET_RECORD_TYPE.NET_RECORD_ACCESSCTLCARD; // 记录集类型 | 288 | insert.stuCtrlRecordSetInfo.emType = EM_NET_RECORD_TYPE.NET_RECORD_ACCESSCTLCARD; // 记录集类型 |
| 282 | - insert.stuCtrlRecordSetInfo.pBuf = accessCardInfo.getPointer(); | 289 | + insert.stuCtrlRecordSetInfo.pBuf = insertCardInfo.getPointer(); |
| 283 | 290 | ||
| 284 | - accessCardInfo.write(); | 291 | + insertCardInfo.write(); |
| 285 | insert.write(); | 292 | insert.write(); |
| 286 | boolean bRet = LoginModule.netsdk.CLIENT_ControlDevice(lLong, | 293 | boolean bRet = LoginModule.netsdk.CLIENT_ControlDevice(lLong, |
| 287 | CtrlType.CTRLTYPE_CTRL_RECORDSET_INSERT, insert.getPointer(), 5000); | 294 | CtrlType.CTRLTYPE_CTRL_RECORDSET_INSERT, insert.getPointer(), 5000); |
| 288 | insert.read(); | 295 | insert.read(); |
| 289 | - accessCardInfo.read(); | 296 | + insertCardInfo.read(); |
| 290 | 297 | ||
| 291 | if(!bRet) { | 298 | if(!bRet) { |
| 292 | String ret=ToolKits.getErrorCodePrint(); | 299 | String ret=ToolKits.getErrorCodePrint(); |
| @@ -307,8 +314,6 @@ public class GateModule { | @@ -307,8 +314,6 @@ public class GateModule { | ||
| 307 | log.info("添加卡信息成功,卡信息记录集编号 : "+ insert.stuCtrlRecordSetResult.nRecNo); | 314 | log.info("添加卡信息成功,卡信息记录集编号 : "+ insert.stuCtrlRecordSetResult.nRecNo); |
| 308 | return insert.stuCtrlRecordSetResult.nRecNo; | 315 | return insert.stuCtrlRecordSetResult.nRecNo; |
| 309 | } | 316 | } |
| 310 | - | ||
| 311 | -// return true; | ||
| 312 | } | 317 | } |
| 313 | 318 | ||
| 314 | public static void main(String[] args) { | 319 | public static void main(String[] args) { |
| @@ -709,7 +714,7 @@ public class GateModule { | @@ -709,7 +714,7 @@ public class GateModule { | ||
| 709 | public static int modifyCard(int recordNo, String cardNo, String userId, String cardName, String cardPwd, | 714 | public static int modifyCard(int recordNo, String cardNo, String userId, String cardName, String cardPwd, |
| 710 | int cardStatus, int cardType, int useTimes, int isFirstEnter, | 715 | int cardStatus, int cardType, int useTimes, int isFirstEnter, |
| 711 | int isValid, String startValidTime, String endValidTime, LLong lLong, | 716 | int isValid, String startValidTime, String endValidTime, LLong lLong, |
| 712 | - String userType,int channel) { | 717 | + String userType,String channel) { |
| 713 | /** | 718 | /** |
| 714 | * 门禁卡记录集信息 | 719 | * 门禁卡记录集信息 |
| 715 | */ | 720 | */ |
| @@ -743,8 +748,14 @@ public class GateModule { | @@ -743,8 +748,14 @@ public class GateModule { | ||
| 743 | accessCardInfo.sznTimeSectionNo[0] = 255; // 表示第一个门全天有效 | 748 | accessCardInfo.sznTimeSectionNo[0] = 255; // 表示第一个门全天有效 |
| 744 | accessCardInfo.sznTimeSectionNo[1] = 255; // 表示第二个门全天有效 | 749 | accessCardInfo.sznTimeSectionNo[1] = 255; // 表示第二个门全天有效 |
| 745 | }else { | 750 | }else { |
| 746 | - accessCardInfo.sznTimeSectionNo[0] = channel; // 表示第一个门全天有效 | ||
| 747 | - accessCardInfo.sznTimeSectionNo[1] = channel; // 表示第二个门全天有效 | 751 | + //此学校不存在权限设置默认为全天有效 |
| 752 | + if(StringUtils.isEmpty(channel)){ | ||
| 753 | + accessCardInfo.sznTimeSectionNo[0] = 255; // 表示第一个门全天有效 | ||
| 754 | + accessCardInfo.sznTimeSectionNo[1] = 255; // 表示第二个门全天有效 | ||
| 755 | + }else{ | ||
| 756 | + accessCardInfo.sznTimeSectionNo[0] = Integer.parseInt(channel); // 表示第一个门全天有效 | ||
| 757 | + accessCardInfo.sznTimeSectionNo[1] = Integer.parseInt(channel); // 表示第二个门全天有效 | ||
| 758 | + } | ||
| 748 | } | 759 | } |
| 749 | 760 | ||
| 750 | // 卡状态 | 761 | // 卡状态 |
| @@ -1160,6 +1171,9 @@ public class GateModule { | @@ -1160,6 +1171,9 @@ public class GateModule { | ||
| 1160 | return true; | 1171 | return true; |
| 1161 | } | 1172 | } |
| 1162 | 1173 | ||
| 1174 | + private static final NET_IN_ADD_FACE_INFO stIn = new NET_IN_ADD_FACE_INFO(); | ||
| 1175 | + private static final NET_OUT_ADD_FACE_INFO stOut = new NET_OUT_ADD_FACE_INFO(); | ||
| 1176 | + | ||
| 1163 | public static synchronized int addFaceInfo(String userId, Memory memory, LLong lLong) { | 1177 | public static synchronized int addFaceInfo(String userId, Memory memory, LLong lLong) { |
| 1164 | int emType = EM_FACEINFO_OPREATE_TYPE.EM_FACEINFO_OPREATE_ADD; // 添加 | 1178 | int emType = EM_FACEINFO_OPREATE_TYPE.EM_FACEINFO_OPREATE_ADD; // 添加 |
| 1165 | 1179 | ||
| @@ -1195,7 +1209,7 @@ public class GateModule { | @@ -1195,7 +1209,7 @@ public class GateModule { | ||
| 1195 | } else { | 1209 | } else { |
| 1196 | String ret=ToolKits.getErrorCodePrint(); | 1210 | String ret=ToolKits.getErrorCodePrint(); |
| 1197 | String number = ret.substring(ret.indexOf("|") + 1, ret.indexOf(")")); | 1211 | String number = ret.substring(ret.indexOf("|") + 1, ret.indexOf(")")); |
| 1198 | - log.error("添加信息失败,错误信息:{} ,错误码:{} ",ret,number); | 1212 | + log.error("添加人脸失败,错误信息:{} ,错误码:{} ",ret,number); |
| 1199 | //照片已存在 | 1213 | //照片已存在 |
| 1200 | if(number.equals(EnumSendFaceErrorType.EXIST_IMG_1031.code)){ | 1214 | if(number.equals(EnumSendFaceErrorType.EXIST_IMG_1031.code)){ |
| 1201 | return modifyFaceInfo(userId, memory, lLong); | 1215 | return modifyFaceInfo(userId, memory, lLong); |
| @@ -1259,6 +1273,8 @@ public class GateModule { | @@ -1259,6 +1273,8 @@ public class GateModule { | ||
| 1259 | return true; | 1273 | return true; |
| 1260 | } | 1274 | } |
| 1261 | 1275 | ||
| 1276 | + private static final NET_IN_UPDATE_FACE_INFO stInEdit = new NET_IN_UPDATE_FACE_INFO(); | ||
| 1277 | + private static final NET_OUT_UPDATE_FACE_INFO stOutEdit = new NET_OUT_UPDATE_FACE_INFO(); | ||
| 1262 | 1278 | ||
| 1263 | public static int modifyFaceInfo(String userId, Memory memory, LLong lLong) { | 1279 | public static int modifyFaceInfo(String userId, Memory memory, LLong lLong) { |
| 1264 | int emType = EM_FACEINFO_OPREATE_TYPE.EM_FACEINFO_OPREATE_UPDATE; // 修改 | 1280 | int emType = EM_FACEINFO_OPREATE_TYPE.EM_FACEINFO_OPREATE_UPDATE; // 修改 |
| @@ -1266,30 +1282,30 @@ public class GateModule { | @@ -1266,30 +1282,30 @@ public class GateModule { | ||
| 1266 | /** | 1282 | /** |
| 1267 | * 入参 | 1283 | * 入参 |
| 1268 | */ | 1284 | */ |
| 1269 | - NET_IN_UPDATE_FACE_INFO stIn = new NET_IN_UPDATE_FACE_INFO(); | 1285 | +// NET_IN_UPDATE_FACE_INFO stInEdit = new NET_IN_UPDATE_FACE_INFO(); |
| 1270 | 1286 | ||
| 1271 | // 用户ID | 1287 | // 用户ID |
| 1272 | - System.arraycopy(userId.getBytes(), 0, stIn.szUserID, 0, userId.getBytes().length); | 1288 | + System.arraycopy(userId.getBytes(), 0, stInEdit.szUserID, 0, userId.getBytes().length); |
| 1273 | 1289 | ||
| 1274 | // 人脸照片个数 | 1290 | // 人脸照片个数 |
| 1275 | - stIn.stuFaceInfo.nFacePhoto = 1; | 1291 | + stInEdit.stuFaceInfo.nFacePhoto = 1; |
| 1276 | 1292 | ||
| 1277 | // 每张图片的大小 | 1293 | // 每张图片的大小 |
| 1278 | - stIn.stuFaceInfo.nFacePhotoLen[0] = (int) memory.size(); | 1294 | + stInEdit.stuFaceInfo.nFacePhotoLen[0] = (int) memory.size(); |
| 1279 | 1295 | ||
| 1280 | // 人脸照片数据,大小不超过100K, 图片格式为jpg | 1296 | // 人脸照片数据,大小不超过100K, 图片格式为jpg |
| 1281 | - stIn.stuFaceInfo.pszFacePhotoArr[0].pszFacePhoto = memory; | 1297 | + stInEdit.stuFaceInfo.pszFacePhotoArr[0].pszFacePhoto = memory; |
| 1282 | 1298 | ||
| 1283 | /** | 1299 | /** |
| 1284 | * 出参 | 1300 | * 出参 |
| 1285 | */ | 1301 | */ |
| 1286 | - NET_OUT_UPDATE_FACE_INFO stOut = new NET_OUT_UPDATE_FACE_INFO(); | 1302 | +// NET_OUT_UPDATE_FACE_INFO stOut = new NET_OUT_UPDATE_FACE_INFO(); |
| 1287 | 1303 | ||
| 1288 | - stIn.write(); | ||
| 1289 | - stOut.write(); | ||
| 1290 | - boolean bRet = LoginModule.netsdk.CLIENT_FaceInfoOpreate(lLong, emType, stIn.getPointer(), stOut.getPointer(), 5000); | ||
| 1291 | - stIn.read(); | ||
| 1292 | - stOut.read(); | 1304 | + stInEdit.write(); |
| 1305 | + stOutEdit.write(); | ||
| 1306 | + boolean bRet = LoginModule.netsdk.CLIENT_FaceInfoOpreate(lLong, emType, stInEdit.getPointer(), stOutEdit.getPointer(), 5000); | ||
| 1307 | + stInEdit.read(); | ||
| 1308 | + stOutEdit.read(); | ||
| 1293 | Map<String,String> map = new HashMap(); | 1309 | Map<String,String> map = new HashMap(); |
| 1294 | if (bRet) { | 1310 | if (bRet) { |
| 1295 | log.info("修改人脸成功!"); | 1311 | log.info("修改人脸成功!"); |