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