Commit c95dfc74d3585a8625f35bad4c276e34e30454ac

Authored by 徐泉
1 parent 59207196
Exists in master

发送看板修改

cloud/dahua/src/main/java/com/example/dahua/MyTask.java
@@ -78,30 +78,27 @@ public class MyTask implements ApplicationRunner { @@ -78,30 +78,27 @@ public class MyTask implements ApplicationRunner {
78 78
79 @Override 79 @Override
80 public void run(ApplicationArguments args) throws Exception { 80 public void run(ApplicationArguments args) throws Exception {
81 -// 121.40.109.21  
82 - // 打开工程,初始化  
83 - LoginModule.init(disConnect, haveReConnect);  
84 - //自注册  
85 - autoRegister();  
86 -  
87 -// System.out.println(" sendRecordDao:"+sendRecordDao.getSenSuccess()); 81 + /**
  82 + * 设备初始化、自注册
  83 + */
  84 + new MyTask();
88 } 85 }
89 86
90 -  
91 - /**  
92 - * 设备自注册  
93 - */  
94 - private void autoRegister() { 87 + private MyTask() {
  88 + /**
  89 + * 打开工程,初始化
  90 + */
  91 + LoginModule.init(disConnect, haveReConnect);
95 92
96 /** 93 /**
97 * 开启监听服务 94 * 开启监听服务
98 */ 95 */
99 -  
100 - System.out.println("new Utils().getHostAddress():"+new Utils().getHostAddress()); 96 + log.info("new Utils().getHostAddress(): " + new Utils().getHostAddress());
101 AutoRegisterModule.startServer(new Utils().getHostAddress(), 9500, servicCallback); 97 AutoRegisterModule.startServer(new Utils().getHostAddress(), 9500, servicCallback);
102 98
103 } 99 }
104 100
  101 +
105 // 设备断线回调: 通过 CLIENT_Init 设置该回调函数,当设备出现断线时,SDK会调用该函数 102 // 设备断线回调: 通过 CLIENT_Init 设置该回调函数,当设备出现断线时,SDK会调用该函数
106 private class DisConnect implements NetSDKLib.fDisConnect { 103 private class DisConnect implements NetSDKLib.fDisConnect {
107 public void invoke(NetSDKLib.LLong m_hLoginHandle, String pchDVRIP, int nDVRPort, Pointer dwUser) { 104 public void invoke(NetSDKLib.LLong m_hLoginHandle, String pchDVRIP, int nDVRPort, Pointer dwUser) {
@@ -450,12 +447,8 @@ public class MyTask implements ApplicationRunner { @@ -450,12 +447,8 @@ public class MyTask implements ApplicationRunner {
450 //考勤成功 447 //考勤成功
451 String content = "考勤成功!,设备:" + deviceId + "卡号:" + cardNo + "方向:" + (eventType == 1 ? "进门" : "出门") + "______" + eventTime; 448 String content = "考勤成功!,设备:" + deviceId + "卡号:" + cardNo + "方向:" + (eventType == 1 ? "进门" : "出门") + "______" + eventTime;
452 449
453 - //一体机设备,抓拍到人脸,将人脸发送数据看板  
454 - if(null == mqttManager){  
455 - mqttManager = new MqttManager();  
456 - mqttManager.init();  
457 - }  
458 - myScheduledTask.sendMQMess(content,deviceId); 450 + //开始推送看板
  451 + sendMQMess(content,deviceId,eventType);
459 452
460 //记录学生考勤签到记录 453 //记录学生考勤签到记录
461 FileUtils.getInstance().writeLogs(content, FileUtils.qiandaoSuccess); 454 FileUtils.getInstance().writeLogs(content, FileUtils.qiandaoSuccess);
@@ -521,4 +514,52 @@ public class MyTask implements ApplicationRunner { @@ -521,4 +514,52 @@ public class MyTask implements ApplicationRunner {
521 } 514 }
522 } 515 }
523 } 516 }
  517 +
  518 +
  519 + /**
  520 + * 消息发送
  521 + * @param deviceId
  522 + * @param cardNum
  523 + * @param eventType
  524 + */
  525 + public void sendMQMess(String deviceId,String cardNum,int eventType) {
  526 +
  527 + //一体机设备,抓拍到人脸,将人脸发送数据看板
  528 + if(null == mqttManager){
  529 + mqttManager = new MqttManager();
  530 + mqttManager.init();
  531 + }
  532 +
  533 + String inOrOut = eventType == 1 ? "0" : "1";
  534 + //获取寝室关联的场景id
  535 + String placeId = userDao.getPlaceIdWithKaoqinDevid(deviceId);
  536 +
  537 + if (null != placeId) {
  538 + //关联的显示看板设备
  539 + List<String> kanbanIds = userDao.getKanBanIdWithPlaceId(placeId);
  540 +
  541 + for (int i = 0; i < kanbanIds.size(); i++) {
  542 + String kanbanId = kanbanIds.get(i);
  543 + String data = "{\"cmd\":\"" + 34 + "\",\"clientId\":\"" + kanbanId + "\",\"data\":{\"cardNum\":\"" + cardNum + "\",\"inOrOut\":\"" + inOrOut + "\"}}";
  544 + log.info("====== 开始推送看板======, kanbanId = {}, cardNum = {},content ={}",kanbanId,cardNum,data);
  545 + mqttManager.sendMqQD(kanbanId, data);
  546 + }
  547 +
  548 + } else {
  549 +
  550 + String schoolId = userDao.getSchoolIdWidthCardNum(cardNum);
  551 + if(StringUtils.isEmpty(schoolId)||Integer.parseInt(schoolId) <=0)return;
  552 + List<String> clintIds = userDao.getClintIds(schoolId);
  553 + for (int i = 0; i < clintIds.size(); i++) {
  554 + String clintId = clintIds.get(i);
  555 + String data = "{\"cmd\":\"" + 34 + "\",\"clientId\":\"" + clintId + "\",\"data\":{\"cardNum\":\"" + cardNum + "\",\"inOrOut\":\"" + inOrOut + "\"}}";
  556 + log.info("====== 开始推送看板======, deviceId = {}, cardNum = {},content ={}",clintId,cardNum,data);
  557 + mqttManager.sendMqQD(clintId, data);
  558 + }
  559 + }
  560 +
  561 + }
524 } 562 }
  563 +
  564 +
  565 +
cloud/dahua/src/main/java/com/example/dahua/async/MyScheduledTask.java
@@ -204,7 +204,7 @@ public class MyScheduledTask { @@ -204,7 +204,7 @@ public class MyScheduledTask {
204 // System.out.println("indexLineNum:"+indexLineNum+" ----------readLineNum:"+readLineNum); 204 // System.out.println("indexLineNum:"+indexLineNum+" ----------readLineNum:"+readLineNum);
205 if (indexLineNum >= readLineNum) { 205 if (indexLineNum >= readLineNum) {
206 readLineNum++; 206 readLineNum++;
207 - sendMQMess(content,""); 207 + sendMQMess(content);
208 } 208 }
209 209
210 } 210 }
@@ -235,18 +235,12 @@ public class MyScheduledTask { @@ -235,18 +235,12 @@ public class MyScheduledTask {
235 235
236 } 236 }
237 237
238 - public void sendMQMess(String content,String deviceId) { 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 String inOrOut = content.substring(content.indexOf("方向:") + 3, content.indexOf("方向:") + 5).endsWith("进门") ? "0" : "1"; 241 String inOrOut = content.substring(content.indexOf("方向:") + 3, content.indexOf("方向:") + 5).endsWith("进门") ? "0" : "1";
242 242
243 - //判断是否一体机,发送消息看板  
244 - String qiandaoDevId="";  
245 - if(StringUtils.isEmpty(deviceId)){  
246 - qiandaoDevId = content.substring(content.indexOf("设备") + 3, content.indexOf("设备") + 12);  
247 - }else{  
248 - qiandaoDevId =deviceId;  
249 - } 243 + String qiandaoDevId = content.substring(content.indexOf("设备") + 3, content.indexOf("设备") + 12);
250 244
251 //获取寝室关联的场景id 245 //获取寝室关联的场景id
252 String placeId = userDao.getPlaceIdWithKaoqinDevid(qiandaoDevId); 246 String placeId = userDao.getPlaceIdWithKaoqinDevid(qiandaoDevId);
cloud/dahua/src/main/java/com/example/dahua/module/GateModule.java
@@ -10,6 +10,7 @@ import com.example.dahua.lib.NetSDKLib; @@ -10,6 +10,7 @@ import com.example.dahua.lib.NetSDKLib;
10 import com.example.dahua.lib.NetSDKLib.*; 10 import com.example.dahua.lib.NetSDKLib.*;
11 import com.example.dahua.lib.ToolKits; 11 import com.example.dahua.lib.ToolKits;
12 import com.sun.jna.Memory; 12 import com.sun.jna.Memory;
  13 +import com.sun.jna.Pointer;
13 import com.sun.jna.ptr.IntByReference; 14 import com.sun.jna.ptr.IntByReference;
14 import lombok.extern.slf4j.Slf4j; 15 import lombok.extern.slf4j.Slf4j;
15 16
@@ -55,12 +56,10 @@ public class GateModule { @@ -55,12 +56,10 @@ public class GateModule {
55 } 56 }
56 57
57 58
58 - private static NetSDKLib.NET_DEVICEINFO_Ex deviceInfo; 59 + private static NetSDKLib.NET_DEVICEINFO_Ex deviceInfo = new NET_DEVICEINFO_Ex();
59 60
60 public static LLong realLoadPic2(int ChannelId, NetSDKLib.fAnalyzerDataCallBack m_AnalyzerDataCB, LLong lLong,String devcieId) { 61 public static LLong realLoadPic2(int ChannelId, NetSDKLib.fAnalyzerDataCallBack m_AnalyzerDataCB, LLong lLong,String devcieId) {
61 62
62 -// final NetSDKLib.NET_DEVICEINFO_Ex deviceInfo = new NetSDKLib.NET_DEVICEINFO_Ex();  
63 -  
64 // 设备ID 63 // 设备ID
65 System.arraycopy(devcieId.getBytes(), 0, deviceInfo.sSerialNumber, 0, devcieId.getBytes().length); 64 System.arraycopy(devcieId.getBytes(), 0, deviceInfo.sSerialNumber, 0, devcieId.getBytes().length);
66 65
@@ -682,12 +681,12 @@ public class GateModule { @@ -682,12 +681,12 @@ public class GateModule {
682 /** 681 /**
683 * 门禁卡记录集信息 682 * 门禁卡记录集信息
684 */ 683 */
685 - private static NET_RECORDSET_ACCESS_CTL_CARD accessCardInfo; 684 + private static NET_RECORDSET_ACCESS_CTL_CARD accessCardInfo = new NET_RECORDSET_ACCESS_CTL_CARD();
686 685
687 /** 686 /**
688 * 记录集操作 687 * 记录集操作
689 */ 688 */
690 - private static NET_CTRL_RECORDSET_PARAM update; 689 + private static NET_CTRL_RECORDSET_PARAM update = new NET_CTRL_RECORDSET_PARAM();
691 690
692 /** 691 /**
693 * 修改设备卡信息 692 * 修改设备卡信息
@@ -714,7 +713,7 @@ public class GateModule { @@ -714,7 +713,7 @@ public class GateModule {
714 /** 713 /**
715 * 门禁卡记录集信息 714 * 门禁卡记录集信息
716 */ 715 */
717 - accessCardInfo = new NET_RECORDSET_ACCESS_CTL_CARD(); 716 +// accessCardInfo = new NET_RECORDSET_ACCESS_CTL_CARD();
718 // 记录集编号, 修改、删除卡信息必须填写 717 // 记录集编号, 修改、删除卡信息必须填写
719 accessCardInfo.nRecNo = recordNo; 718 accessCardInfo.nRecNo = recordNo;
720 719
@@ -784,7 +783,7 @@ public class GateModule { @@ -784,7 +783,7 @@ public class GateModule {
784 /** 783 /**
785 * 记录集操作 784 * 记录集操作
786 */ 785 */
787 - update = new NET_CTRL_RECORDSET_PARAM(); 786 +// update = new NET_CTRL_RECORDSET_PARAM();
788 787
789 update.emType = EM_NET_RECORD_TYPE.NET_RECORD_ACCESSCTLCARD; // 记录集信息类型 788 update.emType = EM_NET_RECORD_TYPE.NET_RECORD_ACCESSCTLCARD; // 记录集信息类型
790 update.pBuf = accessCardInfo.getPointer(); 789 update.pBuf = accessCardInfo.getPointer();
cloud/dahua/src/test/java/com/example/dahua/mapper/SearchMapperTest.java
1 package com.example.dahua.mapper; 1 package com.example.dahua.mapper;
2 2
3 import com.alibaba.fastjson.JSON; 3 import com.alibaba.fastjson.JSON;
  4 +import com.example.dahua.MyTask;
4 import com.example.dahua.Tester; 5 import com.example.dahua.Tester;
5 import com.example.dahua.async.MyScheduledTask; 6 import com.example.dahua.async.MyScheduledTask;
6 import com.example.dahua.bean.CheckIn; 7 import com.example.dahua.bean.CheckIn;
@@ -99,7 +100,7 @@ public class SearchMapperTest extends Tester { @@ -99,7 +100,7 @@ public class SearchMapperTest extends Tester {
99 private MqttManager mqttManager; 100 private MqttManager mqttManager;
100 101
101 @Autowired 102 @Autowired
102 - private MyScheduledTask myScheduledTask; 103 + private MyTask myTask;
103 104
104 @Test 105 @Test
105 public void test5(){ 106 public void test5(){
@@ -113,7 +114,7 @@ public class SearchMapperTest extends Tester { @@ -113,7 +114,7 @@ public class SearchMapperTest extends Tester {
113 String cardNo =""; 114 String cardNo ="";
114 String content = "考勤成功!,设备:" + deviceId + "卡号:" + cardNo + "方向:进门" + "______" + eventTime; 115 String content = "考勤成功!,设备:" + deviceId + "卡号:" + cardNo + "方向:进门" + "______" + eventTime;
115 116
116 - myScheduledTask.sendMQMess(content,deviceId); 117 + myTask.sendMQMess(deviceId,cardNo,1);
117 System.out.println("发送成功"); 118 System.out.println("发送成功");
118 } 119 }
119 120