From c1d388bdd237aa3418d072a68234259e35ea93e5 Mon Sep 17 00:00:00 2001 From: aijinhui <aijinhui> Date: 星期六, 16 十二月 2023 14:58:57 +0800 Subject: [PATCH] mq --- ard-work/src/main/java/com/ruoyi/sy/gps31/PushClientImplPosition.java | 188 ++++++++++++++++++++++++---------------------- 1 files changed, 99 insertions(+), 89 deletions(-) diff --git a/ard-work/src/main/java/com/ruoyi/sy/gps31/PushClientImplPosition.java b/ard-work/src/main/java/com/ruoyi/sy/gps31/PushClientImplPosition.java index 41e9316..b53d824 100644 --- a/ard-work/src/main/java/com/ruoyi/sy/gps31/PushClientImplPosition.java +++ b/ard-work/src/main/java/com/ruoyi/sy/gps31/PushClientImplPosition.java @@ -78,7 +78,7 @@ /*String carName = MapUtil.getStrVal(gpsMap, "carName","");//鑾峰彇杞︾墝鍙� SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); System.out.println(sdf.format(new Date()));*/ - log.info(String.format(" ---->鏀跺埌瀹氫綅鏁版嵁:%s",JSON.toJSONString(gpsMap))); +// log.info(String.format(" ---->鏀跺埌瀹氫綅鏁版嵁:%s",JSON.toJSONString(gpsMap))); String carId = (String)gpsMap.get("carId"); ((ArdSyCarDayServiceImpl)SpringUtils.getBean("ardSyCarDayServiceImpl")).insertArdSyCarDay(carId);//鏂板杞﹁締涓婃姤鏃堕棿 @@ -95,7 +95,7 @@ String carModel = (String) result.get("carModel");//鑾峰彇杞﹁締妯″瀷 Integer drct = (Integer) gpsMap.get("drct");//鑾峰彇杞﹁締妯″瀷 Integer speed = (Integer) gpsMap.get("speed"); - log.info("carId:"+carId+"lng:"+lng+"lat:"+lat); + log.debug("瀹氫綅鏁版嵁锛歝arId:"+carId+"lng:"+lng+"lat:"+lat); //瀹氫箟2缁寸┖闂� Point2D.Double point = new Point2D.Double(Double.parseDouble(lng), Double.parseDouble(lat)); List<Point2D.Double> pts = new ArrayList<Point2D.Double>(); @@ -115,14 +115,6 @@ List<ArdOilWall> ardOilWalls = ardOilWallService.accessAll(); //鏃ユ湡鏍煎紡 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); - //杞﹂�熸爣璁� - Boolean stop = true; - //鍒ゆ柇杞﹂�� - if(speed>5){ - //mqtt鍙戦�佹棦瀹歊tu鐘舵�� - feng(carId,"鏂藉皝",carRtuService,lockService); - stop = false; - } //濡傛灉娌℃湁璇存槑杞﹁締鏈繘鍏ヨ娌圭偣锛岄渶瑕佸尮閰嶆墍鏈夎娌圭偣鍥存爮 if(ardAccessFence==null){ //杞﹁締鏈繘鍏ヨ娌圭偣 @@ -146,20 +138,26 @@ ardAccessFence1.setLng(lng); ardAccessFence1.setLat(lat); ardAccessFence1.setLastTime(time); - ardAccessFence1.setNowWallName(ardOilWall.getName()); + ardAccessFence1.setNowWallName("杩涘叆瑁呮补鐐癸細"+ardOilWall.getName()); ardAccessFence1.setCarModel(carModel); ardAccessFence1.setIsWarning(0); ardAccessFence1.setDrct(drct); ardAccessFence1.setIsAlarm(0); ardAccessFenceService.access(ardAccessFence1); - if(stop){ - //mqtt鍙戦�佹棦瀹歊tu鐘舵�� - feng(carId,"瑁呮补鐐�",carRtuService,lockService); - } + //mqtt鍙戦�佹棦瀹歊tu鐘舵�� + feng(carId,"瑁呮补鐐�",carRtuService,lockService); break; } } }else { + //杞﹂�熸爣璁� + Boolean stop = true; + //鍒ゆ柇杞﹂�� + if(speed>5){ + //mqtt鍙戦�佹棦瀹歊tu鐘舵�� + feng(carId,"鏂藉皝",carRtuService,lockService); + stop = false; + } //甯﹂攣杞﹁締鏈夊�间紭鍏堝垽鏂槸鍚︿负鎵嬪姩娣诲姞杞﹁締 if(ardAccessFence.getIsAlarm()==1){ //1涓烘墜鍔ㄦ坊鍔犺溅杈嗘棤闇�鎶ヨ淇℃伅锛屾洿鏂颁綅缃嵆鍙� @@ -210,7 +208,7 @@ //杩涘叆瑁呮补鐐瑰叆搴� ardAccessFence.setIntoShipmentId(ardOilWall.getId()); ardAccessFence.setIntoShipmentTime(time); - ardAccessFence.setNowWallName(ardOilWall.getName()); + ardAccessFence.setNowWallName("杩涘叆瑁呮补鐐癸細"+ardOilWall.getName()); ardAccessFence.setLastTime(time); if(stop){ //mqtt鍙戦�佹棦瀹歊tu鐘舵�� @@ -237,7 +235,7 @@ //杞﹁締寮�鍑鸿娌圭偣 ardAccessFence.setOutShipmentId(into); ardAccessFence.setOutShipmentTime(time); - ardAccessFence.setNowWallName(ardOilWall.getName()); + ardAccessFence.setNowWallName("寮�鍑鸿娌圭偣锛�"+ardOilWall.getName()); ardAccessFence.setLastTime(time); ardAccessFence.setLng(lng); ardAccessFence.setLat(lat); @@ -268,7 +266,7 @@ ardAccessFence.setIntoUnloadTime(time); ardAccessFence.setLng(lng); ardAccessFence.setLat(lat); - ardAccessFence.setNowWallName(ardOilWall.getName()); + ardAccessFence.setNowWallName("杩涘叆鍗告补鐐癸細"+ardOilWall.getName()); ardAccessFence.setLastTime(time); ardAccessFenceService.updAccess(ardAccessFence); //宸茬粡杩涘叆鍗告补鐐癸紝涓嶅湪璺笂涓嶉渶瑕佸仠杞︽姤璀� @@ -283,22 +281,27 @@ //涓嶅湪鍗告补鐐瑰氨鏄湪璺笂 if(isRoad){ //鎵�鍦ㄥ洿鏍忓悕绉拌祴null - ardAccessFence.setNowWallName(null); + ardAccessFence.setNowWallName("鍦ㄨ矾涓�"); //濡傛灉鍦ㄨ矾涓婂垽鏂潗鏍囨槸鍚︿笌涓婃涓�鏍� if(ardAccessFence.getLng().equals(lng) && ardAccessFence.getLat().equals(lat)){ - //濡傛灉鍧愭爣涓�鏍风浉鍑� - Date nowTime = sdf.parse(time); - Date lastTime = sdf.parse(ardAccessFence.getLastTime()); - Long diff = (nowTime.getTime() - lastTime.getTime())/1000; - ArdAccessNum list = accessNumService.queryNum(); - if(list==null){ - int alarm = list.getAlarm(); - if(diff>=alarm){ - ardAccessFence.setIsWarning(1); - ardAccessFence.setAlarmLat(lat); - ardAccessFence.setAlarmLng(lng); - ardAccessFenceService.updAccess(ardAccessFence); + if(ardAccessFence.getLastTime()!=null){ + //濡傛灉鍧愭爣涓�鏍风浉鍑� + Date nowTime = sdf.parse(time); + Date lastTime = sdf.parse(ardAccessFence.getLastTime()); + Long diff = (nowTime.getTime() - lastTime.getTime())/1000; + ArdAccessNum list = accessNumService.queryNum(); + if(list==null){ + int alarm = list.getAlarm(); + if(diff>=alarm){ + ardAccessFence.setIsWarning(1); + ardAccessFence.setAlarmLat(lat); + ardAccessFence.setAlarmLng(lng); + ardAccessFenceService.updAccess(ardAccessFence); + } } + }else { + ardAccessFence.setLastTime(time); + ardAccessFenceService.updAccess(ardAccessFence); } }else { //濡傛灉涓嶄竴鏍锋洿鏂板潗鏍� @@ -453,71 +456,78 @@ //1瑙e皝 if(fengType==1){ //濡傛灉涓嶆槸瑙e皝灏佺姸鎬侊紝鍒欏彂閫佹柦灏佸懡浠� - if(ardSyCarLocks.get(0).getRelayInfo()!=null){ - if(ardSyCarLocks.get(0).getRelayInfo()==0){ - Map<String,Object> map = new HashMap<>(); - map.put("A01", 110000);//瀵奸�氱涓�璺户鐢靛櫒 - map.put("A02", 110000);//瀵奸�氱浜岃矾缁х數鍣� - map.put("res", String.valueOf(System.currentTimeMillis())); - String mapString = com.alibaba.fastjson.JSON.toJSONString(map); - EmqClient emqClient = new EmqClient(carId+"mqttPublish"+UUID.randomUUID()); - emqClient.connect(); - emqClient.publish(ardSyCarRtu.getTopicPublish(),mapString, QosEnum.QoS2,false); - log.info("杞﹁締"+carId+"瑙e皝鍛戒护鍙戦�佹垚鍔燂紒"); - // mqttOnce.publishCar(carId,ardSyCarRtu.getTopicPublish(),String.valueOf(new JSONObject(map)),"瑙e皝"); - } + if(ardSyCarLocks.get(0).getRelayInfo()==0 || ardSyCarLocks.get(0).getRelayInfo()==null){ +// Map<String,Object> map = new HashMap<>(); +// map.put("A01", 110000);//瀵奸�氱涓�璺户鐢靛櫒 +// map.put("A02", 110000);//瀵奸�氱浜岃矾缁х數鍣� +// map.put("res", String.valueOf(System.currentTimeMillis())); +// String mapString = com.alibaba.fastjson.JSON.toJSONString(map); + String mapString = "{\"A01\":110000,\"A02\":110000,\"res\":\""+String.valueOf(System.currentTimeMillis())+"\"}"; + log.debug("鑷姩瑙e皝锛�"+mapString); + EmqClient emqClient = new EmqClient(carId+"mqttPublish"+UUID.randomUUID()); + emqClient.connect(); + emqClient.publish(ardSyCarRtu.getTopicPublish(),mapString, QosEnum.QoS2,false); + log.debug("杞﹁締"+carId+"瑙e皝鍛戒护鍙戦�佹垚鍔燂紒"); + // mqttOnce.publishCar(carId,ardSyCarRtu.getTopicPublish(),String.valueOf(new JSONObject(map)),"瑙e皝"); } } + //0鏂藉皝 if(fengType==0){ - //閿佸紑鍏崇姸鎬� - int lockCloseNum = 0; - //濡傛灉涓嶆槸鏂藉皝鐘舵�侊紝鍒欏彂閫佹柦灏佸懡浠� - if(ardSyCarLocks.get(0).getRelayInfo()!=null){ - if(ardSyCarLocks.get(0).getRelayInfo()==1){ - for (int j = 0; j < ardSyCarLocks.size(); j++) { - ArdSyCarLock ardSyCarLock = ardSyCarLocks.get(j); - String currents = ardSyCarLock.getCurrents(); - Double currentInfo = ardSyCarLock.getCurrentInfo(); - //鐢垫祦鍊间负4.0鏄叧閿佺姸鎬� - if(currentInfo.equals(4.00) || currentInfo.equals(4)){ - lockCloseNum += 1; - }else { - String key = ""; - if(currents.equals("C01")){ - key = "D03"; - }else if(currents.equals("C02")){ - key = "D04"; - } - Map<String,Object> map = new HashMap(); - map.put(key, 0.01); - map.put("res", String.valueOf(System.currentTimeMillis())); - String mapString = com.alibaba.fastjson.JSON.toJSONString(map); - EmqClient emqClient = new EmqClient(carId+"mqttPublish"+UUID.randomUUID()); - emqClient.connect(); - emqClient.publish(ardSyCarRtu.getTopicPublish(),mapString, QosEnum.QoS2,false); - // mqttOnce.publishCar("carId",ardSyCarRtu.getTopicPublish(),String.valueOf(new JSONObject(map)),"寮�閿侊細"+currents); - while(true){ - ArdSyCarLock ardSyCarLock1 = lockService.getCurrentInfo(ardSyCarRtu.getId(),currents); - Double currentInfo1 = ardSyCarLock1.getCurrentInfo(); - if(currentInfo1.equals(4.00) || currentInfo1.equals(4)){ - lockCloseNum +=1; - break; + if(ardSyCarLocks.get(0).getRelayInfo()==1 || ardSyCarLocks.get(0).getRelayInfo()==null){ + //閿佸紑鍏崇姸鎬� + int lockCloseNum = 0; + String mapString1 = "{\"A01\":100000,\"A02\":100000,\"res\":\""+String.valueOf(System.currentTimeMillis())+"\"}"; + System.out.println("鑷姩鏂藉皝锛�"+mapString1); + EmqClient emqClient1 = new EmqClient(carId+"mqttPublish"+UUID.randomUUID()); + emqClient1.connect(); + emqClient1.publish(ardSyCarRtu.getTopicPublish(),mapString1, QosEnum.QoS2,false); + //濡傛灉涓嶆槸鏂藉皝鐘舵�侊紝鍒欏彂閫佹柦灏佸懡浠� + if(ardSyCarLocks.get(0).getRelayInfo()!=null){ + if(ardSyCarLocks.get(0).getRelayInfo()==1){ + for (int j = 0; j < ardSyCarLocks.size(); j++) { + ArdSyCarLock ardSyCarLock = ardSyCarLocks.get(j); + String currents = ardSyCarLock.getCurrents(); + Double currentInfo = ardSyCarLock.getCurrentInfo(); + //鐢垫祦鍊间负4.0鏄叧閿佺姸鎬� + if(currentInfo.equals(4.00) || currentInfo.equals(4)){ + lockCloseNum += 1; + }else { + String key = ""; + if(currents.equals("C01")){ + key = "D03"; + }else if(currents.equals("C02")){ + key = "D04"; + } +// Map<String,Object> map = new HashMap(); +// map.put(key, 0.01); +// map.put("res", String.valueOf(System.currentTimeMillis())); +// String mapString = com.alibaba.fastjson.JSON.toJSONString(map); + String mapString = "{\""+key+"\":0.01,\"res\":\""+String.valueOf(System.currentTimeMillis())+"\"}"; + log.debug("鑷姩鍏抽攣锛�"+mapString); + EmqClient emqClient = new EmqClient(carId+"mqttPublish"+UUID.randomUUID()); + emqClient.connect(); + emqClient.publish(ardSyCarRtu.getTopicPublish(),mapString, QosEnum.QoS2,false); + // mqttOnce.publishCar("carId",ardSyCarRtu.getTopicPublish(),String.valueOf(new JSONObject(map)),"寮�閿侊細"+currents); + while(true){ + ArdSyCarLock ardSyCarLock1 = lockService.getCurrentInfo(ardSyCarRtu.getId(),currents); + Double currentInfo1 = ardSyCarLock1.getCurrentInfo(); + if(currentInfo1.equals(4.00) || currentInfo1.equals(4)){ + lockCloseNum +=1; + break; + } } } } - } - if(lockCloseNum == 2){ - Map<String,Object> map = new HashMap<>(); - map.put("A01", 100000);//鏂紑绗竴璺户鐢靛櫒 - map.put("A02", 100000);//鏂紑绗簩璺户鐢靛櫒 - map.put("res", String.valueOf(System.currentTimeMillis())); - String mapString = com.alibaba.fastjson.JSON.toJSONString(map); - EmqClient emqClient = new EmqClient(carId+"mqttPublish"+UUID.randomUUID()); - emqClient.connect(); - emqClient.publish(ardSyCarRtu.getTopicPublish(),mapString, QosEnum.QoS2,false); - log.info("杞﹁締"+carId+"鏂藉皝鍛戒护鍙戦�佹垚鍔燂紒"); - // mqttOnce.publishCar(carId,ardSyCarRtu.getTopicPublish(),String.valueOf(new JSONObject(map)),"鏂藉皝"); + if(lockCloseNum == 2){ +// Map<String,Object> map = new HashMap<>(); +// map.put("A01", 100000);//鏂紑绗竴璺户鐢靛櫒 +// map.put("A02", 100000);//鏂紑绗簩璺户鐢靛櫒 +// map.put("res", String.valueOf(System.currentTimeMillis())); +// String mapString = com.alibaba.fastjson.JSON.toJSONString(map); + log.debug("杞﹁締"+carId+"鏂藉皝鍛戒护鍙戦�佹垚鍔燂紒"); + // mqttOnce.publishCar(carId,ardSyCarRtu.getTopicPublish(),String.valueOf(new JSONObject(map)),"鏂藉皝"); + } } } } -- Gitblit v1.9.3