From 4c7e2078a1439ad6fb42f8854f5f8ac1e6859cbc Mon Sep 17 00:00:00 2001 From: aijinhui <aijinhui> Date: 星期一, 18 十二月 2023 15:19:58 +0800 Subject: [PATCH] fly --- ard-work/src/main/java/com/ruoyi/sy/gps31/PushClientImplPosition.java | 131 +++++++++++++++++++++++++++---------------- 1 files changed, 82 insertions(+), 49 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 b53d824..6b28819 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 @@ -20,6 +20,7 @@ import com.ruoyi.utils.qymqtt.newM.EmqClient; import com.ruoyi.utils.qymqtt.newM.QosEnum; import com.ruoyi.utils.qymqtt.oldM.MqttCustomerClient; +import lombok.extern.slf4j.Slf4j; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.eclipse.paho.client.mqttv3.MqttException; @@ -35,9 +36,10 @@ * @author chencq * @version 1.0 */ +@Slf4j(topic = "mqttCar") public class PushClientImplPosition extends PushClient implements Runnable { - private static final Log log = LogFactory.getLog(PushClientImplPosition.class); +// private static final Log log = LogFactory.getLog(PushClientImplPosition.class); private String ip; @@ -78,9 +80,8 @@ /*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.debug(String.format(" ---->鏀跺埌瀹氫綅鏁版嵁:%s",JSON.toJSONString(gpsMap))); String carId = (String)gpsMap.get("carId"); - ((ArdSyCarDayServiceImpl)SpringUtils.getBean("ardSyCarDayServiceImpl")).insertArdSyCarDay(carId);//鏂板杞﹁締涓婃姤鏃堕棿 Map<String,Object> result = ((ArdSyCarServiceImpl)SpringUtils.getBean("ardSyCarServiceImpl")).getArdSyCarAndDeptByCarId(carId);//鏌ヨ杞﹁締鍙婇儴闂� if(result != null){ @@ -89,13 +90,25 @@ String lng = (String) gpsMap.get("lng").toString();//鑾峰彇缁忓害 String lat = (String) gpsMap.get("lat").toString();//鑾峰彇绾害 String carName = (String) gpsMap.get("carName");//鑾峰彇杞︾墝鍙� - String time = (String) gpsMap.get("result");//瀹氫綅鏃堕棿 + String time = (String) gpsMap.get("time");//瀹氫綅鏃堕棿 + //鏃堕棿鐘舵�� + Boolean timeType = true; + if(time==null || time == ""){ + timeType = false; + } String deptNum = (String) result.get("deptId").toString();//鑾峰彇閮ㄩ棬ID String deptName = (String) result.get("deptName");//鑾峰彇閮ㄩ棬鍚嶇О String carModel = (String) result.get("carModel");//鑾峰彇杞﹁締妯″瀷 Integer drct = (Integer) gpsMap.get("drct");//鑾峰彇杞﹁締妯″瀷 - Integer speed = (Integer) gpsMap.get("speed"); - log.debug("瀹氫綅鏁版嵁锛歝arId:"+carId+"lng:"+lng+"lat:"+lat); + Integer speed = (Integer) gpsMap.get("speed");//杞﹂�� + String reserved = (String) result.get("reserved_1");//rtu鍏宠仈 + //rtu鏍囪瘑 + boolean rtuType = true; + if(reserved==null || reserved==""){ + //鏃犻攣 + rtuType = false; + } + 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>(); @@ -114,7 +127,7 @@ //鏌ヨ鎵�鏈夎娌圭偣鍥存爮 List<ArdOilWall> ardOilWalls = ardOilWallService.accessAll(); //鏃ユ湡鏍煎紡 - SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss"); //濡傛灉娌℃湁璇存槑杞﹁締鏈繘鍏ヨ娌圭偣锛岄渶瑕佸尮閰嶆墍鏈夎娌圭偣鍥存爮 if(ardAccessFence==null){ //杞﹁締鏈繘鍏ヨ娌圭偣 @@ -144,21 +157,25 @@ ardAccessFence1.setDrct(drct); ardAccessFence1.setIsAlarm(0); ardAccessFenceService.access(ardAccessFence1); - //mqtt鍙戦�佹棦瀹歊tu鐘舵�� - feng(carId,"瑁呮补鐐�",carRtuService,lockService); - break; + if(rtuType){ + //mqtt鍙戦�佹棦瀹歊tu鐘舵�� + feng(carId,"瑁呮补鐐�",carRtuService,lockService); + break; + } } } }else { //杞﹂�熸爣璁� Boolean stop = true; //鍒ゆ柇杞﹂�� - if(speed>5){ - //mqtt鍙戦�佹棦瀹歊tu鐘舵�� - feng(carId,"鏂藉皝",carRtuService,lockService); - stop = false; + if(rtuType){ + if(speed>5){ + //mqtt鍙戦�佹棦瀹歊tu鐘舵�� + feng(carId,"鏂藉皝",carRtuService,lockService); + stop = false; + } } - //甯﹂攣杞﹁締鏈夊�间紭鍏堝垽鏂槸鍚︿负鎵嬪姩娣诲姞杞﹁締 + //杞﹁締鏈夊�间紭鍏堝垽鏂槸鍚︿负鎵嬪姩娣诲姞杞﹁締 if(ardAccessFence.getIsAlarm()==1){ //1涓烘墜鍔ㄦ坊鍔犺溅杈嗘棤闇�鎶ヨ淇℃伅锛屾洿鏂颁綅缃嵆鍙� ardAccessFence.setLng(lng); @@ -169,19 +186,23 @@ ardAccessFence.setNowWallName(null); //濡傛灉鍦ㄨ矾涓婂垽鏂潗鏍囨槸鍚︿笌涓婃涓�鏍� 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){ - //鎶ヨ瀛楁涓�1鎻愮ず鎶ヨ - ardAccessFence.setIsWarning(1); - ardAccessFence.setAlarmLat(lat); - ardAccessFence.setAlarmLng(lng); - ardAccessFenceService.updAccess(ardAccessFence); + if(timeType){ + 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){ + //鎶ヨ瀛楁涓�1鎻愮ず鎶ヨ + ardAccessFence.setIsWarning(1); + ardAccessFence.setAlarmLat(lat); + ardAccessFence.setAlarmLng(lng); + ardAccessFenceService.updAccess(ardAccessFence); + } } + }else { + log.debug(carId+"鍙疯溅瀹氫綅鏃堕棿涓虹┖"); } }else { //濡傛灉涓嶄竴鏍锋洿鏂板潗鏍� @@ -210,9 +231,11 @@ ardAccessFence.setIntoShipmentTime(time); ardAccessFence.setNowWallName("杩涘叆瑁呮补鐐癸細"+ardOilWall.getName()); ardAccessFence.setLastTime(time); - if(stop){ - //mqtt鍙戦�佹棦瀹歊tu鐘舵�� - feng(carId,"瑁呮补鐐�",carRtuService,lockService); + if(rtuType){ + if(stop){ + //mqtt鍙戦�佹棦瀹歊tu鐘舵�� + feng(carId,"瑁呮补鐐�",carRtuService,lockService); + } } break; } @@ -240,8 +263,10 @@ ardAccessFence.setLng(lng); ardAccessFence.setLat(lat); ardAccessFenceService.updAccess(ardAccessFence); - //寮�鍑鸿娌圭偣鍥存爮锛屽彂閫佷笂閿佸強鏂藉皝鍛戒护 - feng(carId,"鏂藉皝",carRtuService,lockService); + if(rtuType){ + //寮�鍑鸿娌圭偣鍥存爮锛屽彂閫佷笂閿佸強鏂藉皝鍛戒护 + feng(carId,"鏂藉皝",carRtuService,lockService); + } } }else { //杞﹁締宸茬粡寮�鍑鸿娌圭偣锛屾煡鐪嬫槸鍚︽湁鍗告补鐐笽D @@ -271,9 +296,11 @@ ardAccessFenceService.updAccess(ardAccessFence); //宸茬粡杩涘叆鍗告补鐐癸紝涓嶅湪璺笂涓嶉渶瑕佸仠杞︽姤璀� isRoad = false; - if(stop){ - //mqtt鍙戦�佹棦瀹歊tu鐘舵�� - feng(carId,"鍗告补鐐�",carRtuService,lockService); + if(rtuType){ + if(stop){ + //mqtt鍙戦�佹棦瀹歊tu鐘舵�� + feng(carId,"鍗告补鐐�",carRtuService,lockService); + } } break; } @@ -285,19 +312,23 @@ //濡傛灉鍦ㄨ矾涓婂垽鏂潗鏍囨槸鍚︿笌涓婃涓�鏍� if(ardAccessFence.getLng().equals(lng) && ardAccessFence.getLat().equals(lat)){ 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); + if(timeType){ + //濡傛灉鍧愭爣涓�鏍风浉鍑� + 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 { + log.debug(carId+"鍙疯溅瀹氫綅鏃堕棿涓虹┖"); } }else { ardAccessFence.setLastTime(time); @@ -320,8 +351,10 @@ pts.add(new Point2D.Double(Double.parseDouble(coord[j]), Double.parseDouble(coord[j + 1]))); } if (!GeoTools.IsPtInPoly(point, pts)) { - //寮�鍑轰簡鍗告补鐐瑰洿鏍忥紝鍙戦�佷笂閿佸強鏂借В灏佹寚浠� - feng(carId,"鏂藉皝",carRtuService,lockService); + if(rtuType){ + //寮�鍑轰簡鍗告补鐐瑰洿鏍忥紝鍙戦�佷笂閿佸強鏂借В灏佹寚浠� + feng(carId,"鏂藉皝",carRtuService,lockService); + } //鍒犻櫎璇ユ潯杞﹁締鏁版嵁 ardAccessFenceService.delAccess(carId); }else { -- Gitblit v1.9.3