git 2 роки тому
батько
коміт
c3c017718f
1 змінених файлів з 32 додано та 15 видалено
  1. 32 15
      Home/Lib/Action/RouteRfidKafkaAction.class.php

+ 32 - 15
Home/Lib/Action/RouteRfidKafkaAction.class.php

@@ -10,15 +10,29 @@ class RouteRfidKafkaAction extends Action {
 	private  function addRfidDataToNingbo( $data ){
 		//{"methond":"track","mac":"ffc10063","gps":{"locationState":"A","lat":0,"latType":"N","lng":0,"lngType":"E"},"labels":[{"id":"01000423","event":{"dec":8,"lowBattery":0,"entry":0,"leave":1,"in":0},"time":"160621112931"},{"id":"01000424","event":{"dec":8,"lowBattery":0,"entry":0,"leave":1,"in":0},"time":"160621113202"},{"id":"01000422","event":{"dec":20,"lowBattery":0,"entry":1,"leave":0,"in":1},"time":"160621113303"}]}
 		//var_dump($data);
+		if($data['methond']=='login'){
+			return array('success'=>false,'message'=>'addRfidDataToNingbo failed,methond  login!');
+		}
+		
+		$RF_ID=strtoupper($data['mac']);
+		//$station_sql='SELECT DEVICE_NAME FROM DSSC2.ADM_DEV WHERE LOGIN_NAME=\''.$RF_ID.'\'';
+		$station_cond=array('mac'=>$RF_ID);
+		$device_name=M('station')->where($station_cond)->getField('name');
+		$save_data=array(
+				'online_time'=>date('Y-m-d H:i:s',$data['time'])
+		);
+		M('stations')->createSave($station_cond,$save_data);
 		if($data['methond']!='track'){
 			return array('success'=>false,'message'=>'addRfidDataToNingbo failed,methond not track!');
 		}
-		
 		if(!$data['labels']){
 			return array('success'=>false,'message'=>'addRfidDataToNingbo failed,labels not existed!');
 		}
 		
 		
+		
+		
+		
 		$host= '61.175.203.188';
 		$port=   '6521';
 		$instance_name= 'DSSC';
@@ -29,13 +43,11 @@ class RouteRfidKafkaAction extends Action {
 		   $e = oci_error();
 		   trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
 		}
-		$RF_ID=strtoupper($data['mac']);
-		$station_sql='SELECT DEVICE_NAME FROM DSSC2.ADM_DEV WHERE LOGIN_NAME=\''.$RF_ID.'\'';
 		
-		$stid = oci_parse($conn, $station_sql);
-		oci_define_by_name($stid, 'DEVICE_NAME', $device_name);
-		oci_execute($stid);
-		oci_fetch($stid);
+		//stid = oci_parse($conn, $station_sql);
+		//oci_define_by_name($stid, 'DEVICE_NAME', $device_name);
+		//oci_execute($stid);
+		//oci_fetch($stid);
 		
 		if(!$device_name){
 			return array('success'=>false,'message'=>'addRfidDataToNingbo failed,station not existed!');
@@ -76,9 +88,12 @@ class RouteRfidKafkaAction extends Action {
 			//违规行驶检测  超速逆行检测
 			$this->checkIllegalDriving($handle_data,$conn);
 			$sql = 'INSERT INTO "DSSC2"."W_DW_RF_RECORD"("ID", "RF_ID", "RF_FLAGID", "RF_DATE", "RF_STAT") VALUES (DSSC2.SEQ_W_DW_RF_RECORD.nextval, \''.$RF_ID.'\', \''.$RF_FLAGID.'\', TO_DATE(\''.$RF_DATE.'\', \'SYYYY-MM-DD HH24:MI:SS\'), \''.$RF_STAT.'\')';
+			
 		 	//var_dump($sql); 
 			//插入数据到oracle轨迹表
 		 	//$res = $conn -> query($sql);
+			//保存基站信息
+		
 		
 		}
 		
@@ -240,7 +255,10 @@ class RouteRfidKafkaAction extends Action {
  
 	private  function checkControlAlarm( $data ){
 		//先检测标签是否布控
-			$cond=array('control_obj'=>array('in',[$data['RF_FLAGID'],$data['plate_no']])  );
+			$cond=array(
+				'control_obj'=>array('in',[$data['RF_FLAGID'],$data['plate_no']]),
+				'state'=>1
+			);
 			$ve_con=M('control_manage')->where($cond)->find();
 		
 			//存在布控标签 并在时间内
@@ -250,7 +268,10 @@ class RouteRfidKafkaAction extends Action {
 			}
 		
 			//检测区域布控
-			$cond2=array('control_obj'=>array("LIKE", '%'.$data['RF_ID'].'%'));
+			$cond2=array(
+				'control_obj'=>array("LIKE", '%'.$data['RF_ID'].'%'),
+				'state'=>1
+			);
 			$sta_con=M('control_manage')->where($cond2)->find();
 			//存在布控基站
 			if($sta_con && ($data['time']>$sta_con['start_time']) && ($data['time']<$sta_con['end_time'])){
@@ -317,6 +338,7 @@ class RouteRfidKafkaAction extends Action {
 			//存在逆行进入卡点时间  且启用超速检测
 			if($passInfo && ($passInfo['section']=='pos') && ($pre_section['retrograde_stat']=='1')){
 				$data['alarm_type']='retrograde';
+				$data['remark']=$pre_section['name'].'逆行';
 				$this->addControlAlarm($data);
 			}
 			$redisData = array(
@@ -340,17 +362,12 @@ class RouteRfidKafkaAction extends Action {
 		
 			//存在进入卡点时间  且启用超速检测
 			if($passInfo && ($passInfo['section']=='pre') && ($pos_section['over_speed_stat']=='1')){
-				var_dump($data['time']);
-				var_dump($passInfo['time']);
 				$hour= ($data['time']-$passInfo['time'])/3600;
-				var_dump($hour);
 				$speed=($pos_section['distance']/1000)/$hour;
-				var_dump($speed);
-				var_dump($pos_section['max_speed']);
 				if($speed>$pos_section['max_speed']){
 					//超速行驶
 					$data['alarm_type']='over_speed';
-					$data['remark']='速度:'. round($speed,2);
+					$data['remark']=$pos_section['name'].'超速,速度:'. round($speed,2);
 					$this->addControlAlarm($data);
 				}
 			}