| | |
| | | // System.out.println("【车辆锁主题】:"+topic+"【车辆锁信息】:"+new String(message.getPayload(), StandardCharsets.UTF_8)); |
| | | //出来回调数据 |
| | | List<ArdSyCarLock> ardSyCarLocks = carLockService.data(new String(message.getPayload(), StandardCharsets.UTF_8)); |
| | | //存入集合 |
| | | Map<String,List<ArdSyCarLock>> map = PositionContainer.getTopicSubscribe(); |
| | | if(map==null){ |
| | | Map<String,List<ArdSyCarLock>> newMap = new HashMap<>(); |
| | | newMap.put("topic",ardSyCarLocks); |
| | | PositionContainer.setTopicSubscribe(newMap); |
| | | }else { |
| | | for(Map.Entry entry : map.entrySet()){ |
| | | String mapTopic = (String) entry.getKey(); |
| | | if(topic.equals(mapTopic)){ |
| | | map.remove(entry.getKey()); |
| | | //根据topic查询RTUID |
| | | ArdSyCarRtu ardSyCarRtu = carRtuService.subscribeByCarId(topic); |
| | | String RTU = ardSyCarRtu.getId(); |
| | | //根据RTUID查询锁 |
| | | List<ArdSyCarLock> ardSyCarLockList = carLockService.carLock(RTU); |
| | | for (int i = 0; i < ardSyCarLocks.size(); i++) { |
| | | ArdSyCarLock ardSyCarLockData = ardSyCarLocks.get(i); |
| | | String relay = ardSyCarLockData.getRelay(); |
| | | String relayInfo = ardSyCarLockData.getRelayInfo(); |
| | | String current = ardSyCarLockData.getCurrents(); |
| | | String currentInfo = ardSyCarLockData.getCurrentInfo(); |
| | | for (int j = 0; j < ardSyCarLockList.size(); j++) { |
| | | ArdSyCarLock lock = ardSyCarLockList.get(j); |
| | | String relay1 = lock.getRelay(); |
| | | String current1 = lock.getCurrents(); |
| | | String relayInfo1 = lock.getRelayInfo(); |
| | | String currentInfo1 = lock.getCurrentInfo(); |
| | | Boolean upd = false; |
| | | if(relay.equals(relay1)){ |
| | | if(!relayInfo.equals(relayInfo1)){ |
| | | lock.setRelayInfo(relayInfo); |
| | | upd = true; |
| | | } |
| | | } |
| | | Map<String,List<ArdSyCarLock>> newMap = new HashMap<>(); |
| | | newMap.put("topic",ardSyCarLocks); |
| | | PositionContainer.setTopicSubscribe(newMap); |
| | | if(current.equals(current1)){ |
| | | if(!currentInfo.equals(currentInfo1)){ |
| | | lock.setCurrentInfo(currentInfo); |
| | | upd = true; |
| | | } |
| | | } |
| | | if(upd){ |
| | | int num = carLockService.updLock(lock); |
| | | // log.debug("修改"+num+"数据"); |
| | | } |
| | | } |
| | | } |
| | | log.debug(String.valueOf(map)); |
| | | // //存入集合 |
| | | // Map<String,List<ArdSyCarLock>> map = PositionContainer.getTopicSubscribe(); |
| | | // if(map==null){ |
| | | // Map<String,List<ArdSyCarLock>> newMap = new HashMap<>(); |
| | | // newMap.put("topic",ardSyCarLocks); |
| | | // PositionContainer.setTopicSubscribe(newMap); |
| | | // }else { |
| | | // for(Map.Entry entry : map.entrySet()){ |
| | | // String mapTopic = (String) entry.getKey(); |
| | | // if(topic.equals(mapTopic)){ |
| | | // map.remove(entry.getKey()); |
| | | // } |
| | | // Map<String,List<ArdSyCarLock>> newMap = new HashMap<>(); |
| | | // newMap.put("topic",ardSyCarLocks); |
| | | // PositionContainer.setTopicSubscribe(newMap); |
| | | // } |
| | | // } |
| | | // log.debug(String.valueOf(map)); |
| | | } catch (Exception e) { |
| | | log.debug("车辆电磁锁处理mqtt消息异常:" + e); |
| | | } |