| | |
| | | Map<String,Object> result = ((ArdSyCarServiceImpl)SpringUtils.getBean("ardSyCarServiceImpl")).getArdSyCarAndDeptByCarId(carId);//查询车辆及部门 |
| | | if(result != null){ |
| | | //清淤开始---------- |
| | | try{ |
| | | /*try{ |
| | | String lng = (String) gpsMap.get("lng").toString();//获取经度 |
| | | String lat = (String) gpsMap.get("lat").toString();//获取纬度 |
| | | String carName = (String) gpsMap.get("carName");//获取车牌号 |
| | |
| | | //无锁 |
| | | rtuType = false; |
| | | } |
| | | // log.debug("定位数据:车辆carId:"+carId+"经度lng:"+lng+"纬度lat:"+lat); |
| | | //log.debug("定位数据:车辆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>(); |
| | |
| | | } |
| | | } |
| | | //车辆有值优先判断是否为手动添加车辆 |
| | | if(ardAccessFence.getIsAlarm()==1){ |
| | | //1为手动添加车辆无需报警信息,更新位置即可 |
| | | ardAccessFence.setLng(lng); |
| | | ardAccessFence.setLat(lat); |
| | | ardAccessFenceService.updAccess(ardAccessFence); |
| | | }else if(ardAccessFence.getIsAlarm() == 2){ |
| | | //2为手动添加报警车辆有报警,所在围栏名称赋null,排查报警信息,只需处理路上情况 |
| | | ardAccessFence.setNowWallName(null); |
| | | //如果在路上判断坐标是否与上次一样 |
| | | if(ardAccessFence.getLng().equals(lng) && ardAccessFence.getLat().equals(lat)){ |
| | | 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 { |
| | | //如果不一样更新坐标 |
| | | ardAccessFence.setLat(lat); |
| | | ardAccessFence.setLng(lng); |
| | | ardAccessFence.setLastTime(time); |
| | | ardAccessFenceService.updAccess(ardAccessFence); |
| | | } |
| | | }else if(ardAccessFence.getIsAlarm() == 0 || ardAccessFence.getIsAlarm() == null){ |
| | | if(ardAccessFence.getIsAlarm() == 0 || ardAccessFence.getIsAlarm() == null){ |
| | | //车辆非手动添加数据,判断是否有进入围栏ID |
| | | if(ardAccessFence.getIntoShipmentId()==null){ |
| | | //没有进入装油点,赋值经纬度 |
| | |
| | | } |
| | | } |
| | | } |
| | | }else |
| | | if(ardAccessFence.getIsAlarm()==1){ |
| | | //1为手动添加车辆无需报警信息,更新位置即可 |
| | | ardAccessFence.setLng(lng); |
| | | ardAccessFence.setLat(lat); |
| | | ardAccessFenceService.updAccess(ardAccessFence); |
| | | }else if(ardAccessFence.getIsAlarm() == 2){ |
| | | //2为手动添加报警车辆有报警,所在围栏名称赋null,排查报警信息,只需处理路上情况 |
| | | ardAccessFence.setNowWallName(null); |
| | | //如果在路上判断坐标是否与上次一样 |
| | | if(ardAccessFence.getLng().equals(lng) && ardAccessFence.getLat().equals(lat)){ |
| | | 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 { |
| | | //如果不一样更新坐标 |
| | | ardAccessFence.setLat(lat); |
| | | ardAccessFence.setLng(lng); |
| | | ardAccessFence.setLastTime(time); |
| | | ardAccessFenceService.updAccess(ardAccessFence); |
| | | } |
| | | } |
| | | } |
| | | //清淤结束------------ |
| | | }catch(Exception e){ |
| | | |
| | | }*/ |
| | | |
| | | if(PositionContainer.getTankCarParkingAlarmTHread().get(carId) == null){ |
| | | Thread tankCarParkingAlarmThread = new Thread(){//创建线程判断罐车异常停车报警 |
| | | @Override |
| | | public void run() { |
| | | ((ArdTankAbnormalParkAlarmServiceImpl)SpringUtils.getBean("ardTankAbnormalParkAlarmServiceImpl")).insertArdTankAbnormalParkAlarm(gpsMap); |
| | | } |
| | | }; |
| | | PositionContainer.getTankCarParkingAlarmTHread().put(carId,tankCarParkingAlarmThread); |
| | | tankCarParkingAlarmThread.start(); |
| | | } |
| | | |
| | | |
| | | /*Thread autoProcessThread = new Thread(){//自动操控线程 |
| | | @Override |
| | | public void run() { |
| | | ((ArdTankLockProcessLogServiceImpl)SpringUtils.getBean("ardTankLockProcessLogServiceImpl")).autoProcessArdTankLockByLockId(ip, userId, password, gpsMap); |
| | | } |
| | | }; |
| | | autoProcessThread.start();*/ |
| | | |
| | | gpsMap.putAll(result); |
| | | String ancestors = (String) gpsMap.get("ancestors");//获取父级部门 |
| | | String[] ancestorsArray = ancestors.split(","); |