Commit c95dfc74d3585a8625f35bad4c276e34e30454ac
1 parent
59207196
Exists in
master
发送看板修改
Showing
4 changed files
with
73 additions
and
38 deletions
Show diff stats
cloud/dahua/src/main/java/com/example/dahua/MyTask.java
... | ... | @@ -78,30 +78,27 @@ public class MyTask implements ApplicationRunner { |
78 | 78 | |
79 | 79 | @Override |
80 | 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 | 97 | AutoRegisterModule.startServer(new Utils().getHostAddress(), 9500, servicCallback); |
102 | 98 | |
103 | 99 | } |
104 | 100 | |
101 | + | |
105 | 102 | // 设备断线回调: 通过 CLIENT_Init 设置该回调函数,当设备出现断线时,SDK会调用该函数 |
106 | 103 | private class DisConnect implements NetSDKLib.fDisConnect { |
107 | 104 | public void invoke(NetSDKLib.LLong m_hLoginHandle, String pchDVRIP, int nDVRPort, Pointer dwUser) { |
... | ... | @@ -450,12 +447,8 @@ public class MyTask implements ApplicationRunner { |
450 | 447 | //考勤成功 |
451 | 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 | 454 | FileUtils.getInstance().writeLogs(content, FileUtils.qiandaoSuccess); |
... | ... | @@ -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 | 204 | // System.out.println("indexLineNum:"+indexLineNum+" ----------readLineNum:"+readLineNum); |
205 | 205 | if (indexLineNum >= readLineNum) { |
206 | 206 | readLineNum++; |
207 | - sendMQMess(content,""); | |
207 | + sendMQMess(content); | |
208 | 208 | } |
209 | 209 | |
210 | 210 | } |
... | ... | @@ -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 | 239 | String cardNum = content.substring(content.indexOf("卡号") + 3, content.indexOf("卡号") + 11); |
240 | 240 | |
241 | 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 | 245 | //获取寝室关联的场景id |
252 | 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 | 10 | import com.example.dahua.lib.NetSDKLib.*; |
11 | 11 | import com.example.dahua.lib.ToolKits; |
12 | 12 | import com.sun.jna.Memory; |
13 | +import com.sun.jna.Pointer; | |
13 | 14 | import com.sun.jna.ptr.IntByReference; |
14 | 15 | import lombok.extern.slf4j.Slf4j; |
15 | 16 | |
... | ... | @@ -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 | 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 | 63 | // 设备ID |
65 | 64 | System.arraycopy(devcieId.getBytes(), 0, deviceInfo.sSerialNumber, 0, devcieId.getBytes().length); |
66 | 65 | |
... | ... | @@ -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 | 713 | /** |
715 | 714 | * 门禁卡记录集信息 |
716 | 715 | */ |
717 | - accessCardInfo = new NET_RECORDSET_ACCESS_CTL_CARD(); | |
716 | +// accessCardInfo = new NET_RECORDSET_ACCESS_CTL_CARD(); | |
718 | 717 | // 记录集编号, 修改、删除卡信息必须填写 |
719 | 718 | accessCardInfo.nRecNo = recordNo; |
720 | 719 | |
... | ... | @@ -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 | 788 | update.emType = EM_NET_RECORD_TYPE.NET_RECORD_ACCESSCTLCARD; // 记录集信息类型 |
790 | 789 | update.pBuf = accessCardInfo.getPointer(); | ... | ... |
cloud/dahua/src/test/java/com/example/dahua/mapper/SearchMapperTest.java
1 | 1 | package com.example.dahua.mapper; |
2 | 2 | |
3 | 3 | import com.alibaba.fastjson.JSON; |
4 | +import com.example.dahua.MyTask; | |
4 | 5 | import com.example.dahua.Tester; |
5 | 6 | import com.example.dahua.async.MyScheduledTask; |
6 | 7 | import com.example.dahua.bean.CheckIn; |
... | ... | @@ -99,7 +100,7 @@ public class SearchMapperTest extends Tester { |
99 | 100 | private MqttManager mqttManager; |
100 | 101 | |
101 | 102 | @Autowired |
102 | - private MyScheduledTask myScheduledTask; | |
103 | + private MyTask myTask; | |
103 | 104 | |
104 | 105 | @Test |
105 | 106 | public void test5(){ |
... | ... | @@ -113,7 +114,7 @@ public class SearchMapperTest extends Tester { |
113 | 114 | String cardNo =""; |
114 | 115 | String content = "考勤成功!,设备:" + deviceId + "卡号:" + cardNo + "方向:进门" + "______" + eventTime; |
115 | 116 | |
116 | - myScheduledTask.sendMQMess(content,deviceId); | |
117 | + myTask.sendMQMess(deviceId,cardNo,1); | |
117 | 118 | System.out.println("发送成功"); |
118 | 119 | } |
119 | 120 | ... | ... |