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 | ... | ... |