Commit 3b1634ff2a2849e27a899c3f7736b7d9bb25ddf7

Authored by 徐泉
1 parent c3235b53
Exists in master

大华一体机考勤,添加发送数据看板

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);