| | |
| | | /*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);//新增车辆上报时间 |
| | |
| | | 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.info("定位数据:carId:"+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>(); |
| | |
| | | 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); |
| | |
| | | //进入装油点入库 |
| | | ardAccessFence.setIntoShipmentId(ardOilWall.getId()); |
| | | ardAccessFence.setIntoShipmentTime(time); |
| | | ardAccessFence.setNowWallName(ardOilWall.getName()); |
| | | ardAccessFence.setNowWallName("进入装油点:"+ardOilWall.getName()); |
| | | ardAccessFence.setLastTime(time); |
| | | if(stop){ |
| | | //mqtt发送既定Rtu状态 |
| | |
| | | //车辆开出装油点 |
| | | ardAccessFence.setOutShipmentId(into); |
| | | ardAccessFence.setOutShipmentTime(time); |
| | | ardAccessFence.setNowWallName(ardOilWall.getName()); |
| | | ardAccessFence.setNowWallName("开出装油点:"+ardOilWall.getName()); |
| | | ardAccessFence.setLastTime(time); |
| | | ardAccessFence.setLng(lng); |
| | | ardAccessFence.setLat(lat); |
| | |
| | | ardAccessFence.setIntoUnloadTime(time); |
| | | ardAccessFence.setLng(lng); |
| | | ardAccessFence.setLat(lat); |
| | | ardAccessFence.setNowWallName(ardOilWall.getName()); |
| | | ardAccessFence.setNowWallName("进入卸油点:"+ardOilWall.getName()); |
| | | ardAccessFence.setLastTime(time); |
| | | ardAccessFenceService.updAccess(ardAccessFence); |
| | | //已经进入卸油点,不在路上不需要停车报警 |
| | |
| | | //不在卸油点就是在路上 |
| | | 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 { |
| | | //如果不一样更新坐标 |
| | |
| | | //如果不是解封封状态,则发送施封命令 |
| | | 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); |
| | | // 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("自动解封:"+mapString); |
| | | EmqClient emqClient = new EmqClient(carId+"mqttPublish"+UUID.randomUUID()); |
| | | emqClient.connect(); |
| | | emqClient.publish(ardSyCarRtu.getTopicPublish(),mapString, QosEnum.QoS2,false); |
| | | log.info("车辆"+carId+"解封命令发送成功!"); |
| | | log.debug("车辆"+carId+"解封命令发送成功!"); |
| | | // mqttOnce.publishCar(carId,ardSyCarRtu.getTopicPublish(),String.valueOf(new JSONObject(map)),"解封"); |
| | | } |
| | | } |
| | |
| | | }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); |
| | | // 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); |
| | |
| | | } |
| | | } |
| | | 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); |
| | | // 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); |
| | | String mapString = "{\"A01\":100000,\"A02\":100000,\"res\":\""+String.valueOf(System.currentTimeMillis())+"\"}"; |
| | | System.out.println("自动施封:"+mapString); |
| | | EmqClient emqClient = new EmqClient(carId+"mqttPublish"+UUID.randomUUID()); |
| | | emqClient.connect(); |
| | | emqClient.publish(ardSyCarRtu.getTopicPublish(),mapString, QosEnum.QoS2,false); |
| | | log.info("车辆"+carId+"施封命令发送成功!"); |
| | | log.debug("车辆"+carId+"施封命令发送成功!"); |
| | | // mqttOnce.publishCar(carId,ardSyCarRtu.getTopicPublish(),String.valueOf(new JSONObject(map)),"施封"); |
| | | } |
| | | } |