Commit a949f8e829108ff717b085f428143fc96bbcf917

Authored by 邱一成
2 parents e867924f 3b1634ff
Exists in master

Merge branch 'master' of http://git.shunzhi.net/taohd/mycloud

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
@@ -318,7 +323,8 @@ public class MyTask implements ApplicationRunner { @@ -318,7 +323,8 @@ public class MyTask implements ApplicationRunner {
318 ImageIO.write(gateBufferedImage, "png", new File(snapPicPath)); 323 ImageIO.write(gateBufferedImage, "png", new File(snapPicPath));
319 } 324 }
320 log.info("设备ID: {},卡号: {},抓拍照片存储地址:{}" ,szSn,card,snapPicPath); 325 log.info("设备ID: {},卡号: {},抓拍照片存储地址:{}" ,szSn,card,snapPicPath);
321 - if(isMatch(REGEX_POSITIVE_Symbol, szSn)){//验证设备id是否存在特殊字符 326 + //验证设备id是否存在特殊字符
  327 + if(isMatch(REGEX_POSITIVE_Symbol, szSn)){
322 log.info("—设备ID异常: {},卡号: {}",szSn,card); 328 log.info("—设备ID异常: {},卡号: {}",szSn,card);
323 return 0; 329 return 0;
324 } 330 }
@@ -327,12 +333,13 @@ public class MyTask implements ApplicationRunner { @@ -327,12 +333,13 @@ public class MyTask implements ApplicationRunner {
327 if(org.apache.commons.lang.StringUtils.isNotBlank(schoolIdStr)){ 333 if(org.apache.commons.lang.StringUtils.isNotBlank(schoolIdStr)){
328 schoolId=Integer.parseInt(schoolIdStr); 334 schoolId=Integer.parseInt(schoolIdStr);
329 } 335 }
330 - //卡号取反(大写)  
331 - //if(!szSn.startsWith("ytj")||(szSn.startsWith("ytj")&&schoolId==126&&schoolId==393)){ 336 + /**
  337 + * 卡号取反(大写)
  338 + * 注:若设备为一体机、且非"126上虞城东小学、393上虞实验中学"学校,卡则取反
  339 + */
332 if(szSn.startsWith("ytj")&&schoolId!=126&&schoolId!=393){ 340 if(szSn.startsWith("ytj")&&schoolId!=126&&schoolId!=393){
333 card = card; 341 card = card;
334 - }  
335 - else{ 342 + } else{
336 card = cardNo(card); 343 card = cardNo(card);
337 } 344 }
338 //根据卡号获取卡身份信息 345 //根据卡号获取卡身份信息
@@ -353,10 +360,10 @@ public class MyTask implements ApplicationRunner { @@ -353,10 +360,10 @@ public class MyTask implements ApplicationRunner {
353 } 360 }
354 361
355 if(szSn.startsWith("ytj")) { 362 if(szSn.startsWith("ytj")) {
356 -  
357 // TODO 考勤记录 363 // TODO 考勤记录
358 //刷卡结果,1表示成功, 0表示失败 364 //刷卡结果,1表示成功, 0表示失败
359 int status = msg.bStatus; 365 int status = msg.bStatus;
  366 +
360 //门禁事件类型:1进2出 367 //门禁事件类型:1进2出
361 int eventType = msg.emEventType; 368 int eventType = msg.emEventType;
362 //刷卡时间 369 //刷卡时间
@@ -418,6 +425,7 @@ public class MyTask implements ApplicationRunner { @@ -418,6 +425,7 @@ public class MyTask implements ApplicationRunner {
418 return isNum.matches(); 425 return isNum.matches();
419 } 426 }
420 427
  428 + private static MqttManager mqttManager;
421 /** 429 /**
422 * 大华设备考勤记录 430 * 大华设备考勤记录
423 * @param status 431 * @param status
@@ -440,6 +448,14 @@ public class MyTask implements ApplicationRunner { @@ -440,6 +448,14 @@ public class MyTask implements ApplicationRunner {
440 if (checkIn.getIsSuccess() == 1) { 448 if (checkIn.getIsSuccess() == 1) {
441 //考勤成功 449 //考勤成功
442 String content = "考勤成功!,设备:" + deviceId + "卡号:" + cardNo + "方向:" + (eventType == 1 ? "进门" : "出门") + "______" + eventTime; 450 String content = "考勤成功!,设备:" + deviceId + "卡号:" + cardNo + "方向:" + (eventType == 1 ? "进门" : "出门") + "______" + eventTime;
  451 +
  452 + //一体机设备,抓拍到人脸,将人脸发送数据看板
  453 + if(null == mqttManager){
  454 + mqttManager = new MqttManager();
  455 + mqttManager.init();
  456 + }
  457 + myScheduledTask.sendMQMess(content);
  458 +
443 //记录学生考勤签到记录 459 //记录学生考勤签到记录
444 FileUtils.getInstance().writeLogs(content, FileUtils.qiandaoSuccess); 460 FileUtils.getInstance().writeLogs(content, FileUtils.qiandaoSuccess);
445 } else { 461 } else {
@@ -473,7 +489,7 @@ public class MyTask implements ApplicationRunner { @@ -473,7 +489,7 @@ public class MyTask implements ApplicationRunner {
473 //若即不成功,也不是请假,则按刷卡异常处理 489 //若即不成功,也不是请假,则按刷卡异常处理
474 List<User> users = userDao.selectUserByCardNum(cardNo); 490 List<User> users = userDao.selectUserByCardNum(cardNo);
475 if(users.size()<1){ 491 if(users.size()<1){
476 - log.warn("考勤记录:卡号: {}没找到对应学生或老师,考勤时间: {}",cardNo,DateUtils.date2String(new Date(), DateUtils.format2)); 492 + log.warn("考勤记录:卡号: {}没找到对应学生或老师,考勤时间: {}",cardNo,DateUtils.date2String(new Date(), DateUtils.format2));
477 return; 493 return;
478 } 494 }
479 User user = users.get(0); 495 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);