Commit 3b1634ff2a2849e27a899c3f7736b7d9bb25ddf7
1 parent
c3235b53
Exists in
master
大华一体机考勤,添加发送数据看板
Showing
2 changed files
with
24 additions
and
8 deletions
Show diff stats
cloud/dahua/src/main/java/com/example/dahua/MyTask.java
1 | package com.example.dahua; | 1 | package com.example.dahua; |
2 | 2 | ||
3 | +import com.example.dahua.async.MyScheduledTask; | ||
3 | import com.example.dahua.bean.*; | 4 | import com.example.dahua.bean.*; |
4 | import com.example.dahua.dao.UserDao; | 5 | import com.example.dahua.dao.UserDao; |
5 | import com.example.dahua.enums.EnumSendFaceType; | 6 | import com.example.dahua.enums.EnumSendFaceType; |
@@ -10,6 +11,7 @@ import com.example.dahua.lib.Utils; | @@ -10,6 +11,7 @@ import com.example.dahua.lib.Utils; | ||
10 | import com.example.dahua.module.AutoRegisterModule; | 11 | import com.example.dahua.module.AutoRegisterModule; |
11 | import com.example.dahua.module.GateModule; | 12 | import com.example.dahua.module.GateModule; |
12 | import com.example.dahua.module.LoginModule; | 13 | import com.example.dahua.module.LoginModule; |
14 | +import com.example.dahua.mqtt.MqttManager; | ||
13 | import com.example.dahua.service.AttendanceService; | 15 | import com.example.dahua.service.AttendanceService; |
14 | import com.example.dahua.utils.DateUtils; | 16 | import com.example.dahua.utils.DateUtils; |
15 | import com.example.dahua.utils.FileUtils; | 17 | import com.example.dahua.utils.FileUtils; |
@@ -71,6 +73,9 @@ public class MyTask implements ApplicationRunner { | @@ -71,6 +73,9 @@ public class MyTask implements ApplicationRunner { | ||
71 | 73 | ||
72 | public boolean isHasNewDevice = false;//判断是否有新设备上线 | 74 | public boolean isHasNewDevice = false;//判断是否有新设备上线 |
73 | 75 | ||
76 | + @Autowired | ||
77 | + private MyScheduledTask myScheduledTask; | ||
78 | + | ||
74 | @Override | 79 | @Override |
75 | public void run(ApplicationArguments args) throws Exception { | 80 | public void run(ApplicationArguments args) throws Exception { |
76 | // 121.40.109.21 | 81 | // 121.40.109.21 |
@@ -307,7 +312,8 @@ public class MyTask implements ApplicationRunner { | @@ -307,7 +312,8 @@ public class MyTask implements ApplicationRunner { | ||
307 | ImageIO.write(gateBufferedImage, "png", new File(snapPicPath)); | 312 | ImageIO.write(gateBufferedImage, "png", new File(snapPicPath)); |
308 | } | 313 | } |
309 | log.info("设备ID: {},卡号: {},抓拍照片存储地址:{}" ,szSn,card,snapPicPath); | 314 | log.info("设备ID: {},卡号: {},抓拍照片存储地址:{}" ,szSn,card,snapPicPath); |
310 | - if(isMatch(REGEX_POSITIVE_Symbol, szSn)){//验证设备id是否存在特殊字符 | 315 | + //验证设备id是否存在特殊字符 |
316 | + if(isMatch(REGEX_POSITIVE_Symbol, szSn)){ | ||
311 | log.info("—设备ID异常: {},卡号: {}",szSn,card); | 317 | log.info("—设备ID异常: {},卡号: {}",szSn,card); |
312 | return 0; | 318 | return 0; |
313 | } | 319 | } |
@@ -316,12 +322,13 @@ public class MyTask implements ApplicationRunner { | @@ -316,12 +322,13 @@ public class MyTask implements ApplicationRunner { | ||
316 | if(org.apache.commons.lang.StringUtils.isNotBlank(schoolIdStr)){ | 322 | if(org.apache.commons.lang.StringUtils.isNotBlank(schoolIdStr)){ |
317 | schoolId=Integer.parseInt(schoolIdStr); | 323 | schoolId=Integer.parseInt(schoolIdStr); |
318 | } | 324 | } |
319 | - //卡号取反(大写) | ||
320 | - //if(!szSn.startsWith("ytj")||(szSn.startsWith("ytj")&&schoolId==126&&schoolId==393)){ | 325 | + /** |
326 | + * 卡号取反(大写) | ||
327 | + * 注:若设备为一体机、且非"126上虞城东小学、393上虞实验中学"学校,卡则取反 | ||
328 | + */ | ||
321 | if(szSn.startsWith("ytj")&&schoolId!=126&&schoolId!=393){ | 329 | if(szSn.startsWith("ytj")&&schoolId!=126&&schoolId!=393){ |
322 | card = card; | 330 | card = card; |
323 | - } | ||
324 | - else{ | 331 | + } else{ |
325 | card = cardNo(card); | 332 | card = cardNo(card); |
326 | } | 333 | } |
327 | //根据卡号获取卡身份信息 | 334 | //根据卡号获取卡身份信息 |
@@ -342,10 +349,10 @@ public class MyTask implements ApplicationRunner { | @@ -342,10 +349,10 @@ public class MyTask implements ApplicationRunner { | ||
342 | } | 349 | } |
343 | 350 | ||
344 | if(szSn.startsWith("ytj")) { | 351 | if(szSn.startsWith("ytj")) { |
345 | - | ||
346 | // TODO 考勤记录 | 352 | // TODO 考勤记录 |
347 | //刷卡结果,1表示成功, 0表示失败 | 353 | //刷卡结果,1表示成功, 0表示失败 |
348 | int status = msg.bStatus; | 354 | int status = msg.bStatus; |
355 | + | ||
349 | //门禁事件类型:1进2出 | 356 | //门禁事件类型:1进2出 |
350 | int eventType = msg.emEventType; | 357 | int eventType = msg.emEventType; |
351 | //刷卡时间 | 358 | //刷卡时间 |
@@ -407,6 +414,7 @@ public class MyTask implements ApplicationRunner { | @@ -407,6 +414,7 @@ public class MyTask implements ApplicationRunner { | ||
407 | return isNum.matches(); | 414 | return isNum.matches(); |
408 | } | 415 | } |
409 | 416 | ||
417 | + private static MqttManager mqttManager; | ||
410 | /** | 418 | /** |
411 | * 大华设备考勤记录 | 419 | * 大华设备考勤记录 |
412 | * @param status | 420 | * @param status |
@@ -429,6 +437,14 @@ public class MyTask implements ApplicationRunner { | @@ -429,6 +437,14 @@ public class MyTask implements ApplicationRunner { | ||
429 | if (checkIn.getIsSuccess() == 1) { | 437 | if (checkIn.getIsSuccess() == 1) { |
430 | //考勤成功 | 438 | //考勤成功 |
431 | String content = "考勤成功!,设备:" + deviceId + "卡号:" + cardNo + "方向:" + (eventType == 1 ? "进门" : "出门") + "______" + eventTime; | 439 | String content = "考勤成功!,设备:" + deviceId + "卡号:" + cardNo + "方向:" + (eventType == 1 ? "进门" : "出门") + "______" + eventTime; |
440 | + | ||
441 | + //一体机设备,抓拍到人脸,将人脸发送数据看板 | ||
442 | + if(null == mqttManager){ | ||
443 | + mqttManager = new MqttManager(); | ||
444 | + mqttManager.init(); | ||
445 | + } | ||
446 | + myScheduledTask.sendMQMess(content); | ||
447 | + | ||
432 | //记录学生考勤签到记录 | 448 | //记录学生考勤签到记录 |
433 | FileUtils.getInstance().writeLogs(content, FileUtils.qiandaoSuccess); | 449 | FileUtils.getInstance().writeLogs(content, FileUtils.qiandaoSuccess); |
434 | } else { | 450 | } else { |
@@ -462,7 +478,7 @@ public class MyTask implements ApplicationRunner { | @@ -462,7 +478,7 @@ public class MyTask implements ApplicationRunner { | ||
462 | //若即不成功,也不是请假,则按刷卡异常处理 | 478 | //若即不成功,也不是请假,则按刷卡异常处理 |
463 | List<User> users = userDao.selectUserByCardNum(cardNo); | 479 | List<User> users = userDao.selectUserByCardNum(cardNo); |
464 | if(users.size()<1){ | 480 | if(users.size()<1){ |
465 | - log.warn("考勤记录:卡号: {}没找到对应学生或老师,考勤时间: {}",cardNo,DateUtils.date2String(new Date(), DateUtils.format2)); | 481 | + log.warn("考勤记录:卡号: {},没找到对应学生或老师,考勤时间: {}",cardNo,DateUtils.date2String(new Date(), DateUtils.format2)); |
466 | return; | 482 | return; |
467 | } | 483 | } |
468 | User user = users.get(0); | 484 | User user = users.get(0); |
cloud/dahua/src/main/java/com/example/dahua/async/MyScheduledTask.java
@@ -235,7 +235,7 @@ public class MyScheduledTask { | @@ -235,7 +235,7 @@ public class MyScheduledTask { | ||
235 | 235 | ||
236 | } | 236 | } |
237 | 237 | ||
238 | - private void sendMQMess(String content) { | 238 | + public void sendMQMess(String content) { |
239 | String cardNum = content.substring(content.indexOf("卡号") + 3, content.indexOf("卡号") + 11); | 239 | String cardNum = content.substring(content.indexOf("卡号") + 3, content.indexOf("卡号") + 11); |
240 | 240 | ||
241 | // System.out.println("cardNum:" + cardNum); | 241 | // System.out.println("cardNum:" + cardNum); |