git před 1 rokem
rodič
revize
95056f0810

+ 37 - 25
Home/Lib/Action/CronAction.class.php

@@ -140,31 +140,43 @@ class CronAction extends Action {
 		
 		for($i=0;$i<=$total;$i++){
 		
-		       $start=$i;
-		       $end=$i+1;
-		       echo '---start---'.$start.PHP_EOL;
-				  $sql = 'SELECT * FROM ( SELECT o.ID,o.PLATE_NO,o.CAR_TYPE,o.CAR_BRAND,s.ID,s.RFID_SN,s.INSTALLER,ROWNUM RN FROM DSSC3.W_DW_NON_MOTOR o,DSSC3.W_DW_RFID_TAGS s WHERE ROWNUM <= '.$end.'  AND o.rfid_id = s.id  ) WHERE RN >'.$start;
-				  $stid = oci_parse($conn, $sql);
-				  $r = oci_execute($stid);
-				      
-				  while($row = oci_fetch_array($stid, OCI_ASSOC+OCI_RETURN_NULLS)) {
-				       // var_dump($row);
-						//查询与车辆相同车牌信息
-						$sql = 'SELECT * FROM ( SELECT o.ID,o.PLATE_NO,o.CAR_TYPE,o.CAR_BRAND,s.ID,s.RFID_SN,s.INSTALLER,ROWNUM RN FROM DSSC3.W_DW_NON_MOTOR o,DSSC3.W_DW_RFID_TAGS s WHERE ROWNUM <=100 AND o.PLATE_NO= \''.$row['PLATE_NO'].'\'  AND o.rfid_id = s.id  ORDER BY s.INSTALLER DESC ) WHERE RN >0';
-						$stid = oci_parse($conn, $sql);
-						$r = oci_execute($stid);
-						$rows=[];
-						while($row = oci_fetch_array($stid, OCI_ASSOC+OCI_RETURN_NULLS)) {
-							$rows[]=$row;
-						}
-						foreach($rows as $key=>$vitem){
-							//保留第一个不删除 
-							$sql2='DELETE FROM DSSC3.W_DW_NON_MOTOR WHERE ID in ('.$vitem['ID'].')';
-							$stid = oci_parse($conn, $sql2);
-							$r = oci_execute($stid);
-						}
-				  }
-				  oci_free_statement($stid);
+		       			$start=$i;
+				       $end=$i+1;
+				       // echo '---start---'.$start.PHP_EOL;
+						  $sql = 'SELECT * FROM ( SELECT o.ID AS O_ID,o.PLATE_NO,o.CAR_TYPE,o.CAR_BRAND,s.ID,s.RFID_SN,s.INSTALLER,ROWNUM RN FROM DSSC3.W_DW_NON_MOTOR o,DSSC3.W_DW_RFID_TAGS s WHERE ROWNUM <= '.$end.'  AND o.rfid_id = s.id Order by O_ID desc ) WHERE RN >'.$start;
+		
+						  $stid = oci_parse($conn, $sql);
+						  $r = oci_execute($stid);
+						    
+						  while($row = oci_fetch_array($stid, OCI_ASSOC+OCI_RETURN_NULLS)) {
+						     
+								//查询与车辆相同车牌信息
+								$sql = 'SELECT * FROM ( SELECT o.ID AS O_ID,o.PLATE_NO,o.CAR_TYPE,o.CAR_BRAND,s.ID,s.RFID_SN,to_char(s.INSTA_DATE,\'yyyy-mm-dd hh24:mi:ss\') INSTA_DATE,ROWNUM RN FROM DSSC3.W_DW_NON_MOTOR o,DSSC3.W_DW_RFID_TAGS s WHERE ROWNUM <=100 AND o.PLATE_NO= \''.$row['PLATE_NO'].'\'  AND o.rfid_id = s.id  ORDER BY INSTA_DATE DESC ) WHERE RN >0';
+								$stid = oci_parse($conn, $sql);
+								$r = oci_execute($stid);
+								$rows=[];
+								while($row = oci_fetch_array($stid, OCI_ASSOC+OCI_RETURN_NULLS)) {
+									$rows[]=$row;
+								}
+								// var_dump($rows);
+								if(count($rows)>1){
+									var_dump($rows);
+									foreach($rows as $key=>$vitem){
+										echo $vitem['PLATE_NO'].' '.$key.' '.$vitem['RFID_SN'].PHP_EOL;
+										$this->debug_log($vitem['PLATE_NO'].' '.$vitem['RFID_SN'].PHP_EOL,'repeatPlate');
+										if($key==0){
+											continue;
+										}
+										echo 'delete key'.$key.PHP_EOL;
+										//保留第一个不删除 
+										// $sql2='DELETE FROM DSSC3.W_DW_NON_MOTOR WHERE ID in ('.$vitem['O_ID'].')';
+										// $stid = oci_parse($conn, $sql2);
+										// $r = oci_execute($stid);
+									}
+								}
+								
+						  }
+						  oci_free_statement($stid);
 		
 				       
 		}

+ 3 - 3
Home/Lib/Action/RouteRfidKafkaAction.class.php

@@ -52,14 +52,14 @@ class RouteRfidKafkaAction extends Action {
 		
 		
 		foreach($data['labels'] as $val){
-			if( ($val['time']<(time()-3600*24*10) ) || ($val['time']>(time()+3600*24*10) ) ){
+			if( $val['time']<(time()-3600*24*10)  ){
 				$val['mac']=$RF_ID;
 				$this->debug_log( 'abnormal_labels', $val );
 				continue;
 			}
-			if( $data['time']>time() ){
+			if( $val['time']>time() ){
 				$this->debug_log( 'time_abnormal_station', $RF_ID );
-				$data['time']=time();
+				$val['time']=time();
 			}
 			$RF_STAT=0;
 			$plate_no='';