git 1 year ago
parent
commit
ffaba2e017

+ 45 - 0
Home/Lib/Action/CronAction.class.php

@@ -125,5 +125,50 @@ class CronAction extends Action {
 		
 	}
 	
+ 
+	public  function deleteVehicle(  ){
+		$config = C('ORACLE_CONFIG');
+		$host= $config['host'];
+		$port=  $config['port'];
+		$instance_name= $config['instance_name'];
+		$username= $config['username'];
+		$password=  $config['password'];
+				
+		$conn = oci_connect($username, $password, $host.':'.$port.'/'. $instance_name,'AL32UTF8');
+		$total=9000000;
+		$count=0;
+		
+		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);
+		
+				       
+		}
+	}
+	
 
 }

+ 53 - 17
Home/Lib/Action/NingboFangdaoSyncDataAction.class.php

@@ -133,17 +133,49 @@ class NingboFangdaoSyncDataAction extends Action {
 				 	if(!isset($data['MOBILE_NUMBER'])){
 						$data['MOBILE_NUMBER']='18888888888';
 					}
-				   $sql='declare
-		            tagId number;
-						 ownId number;
-		        	begin
-		            INSERT INTO DSSC3.W_DW_RFID_TAGS("ID", "RFID_SN","INSTALLER","INSTA_DATE") VALUES (DSSC3.SEQ_W_DW_RFID_TAGS.nextval, \''.$data['RFID_SN'].'\',\''.$data['INSTALLER'].'\', TO_DATE(\''.$data['INSTA_DATE'].'\', \'SYYYY-MM-DD HH24:MI:SS\'))  returning ID into tagId;
-						 INSERT INTO DSSC3.W_DW_NON_MOTOR_OWNER("ID", "NAME","ID_CARD_NUMBER","MOBILE_NUMBER") VALUES (DSSC3.SEQ_W_DW_NON_MOTOR_OWNER.nextval,\''.$data['NAME'].'\',\''.$data['ID_CARD_NUMBER'].'\',\''.$data['MOBILE_NUMBER'].'\') returning ID into ownId;
-						 INSERT INTO DSSC3.W_DW_NON_MOTOR("ID", "RFID_ID","PLATE_NO","CAR_BRAND","CAR_TYPE","OWNER_ID") VALUES (DSSC3.SEQ_W_DW_RFID_TAGS.nextval, tagId,\''.$data['PLATE_NO'].'\',\''.$data['CAR_BRAND'].'\',\''.$data['CAR_TYPE'].'\',ownId);
-		        	end;';
-		        $stid = oci_parse($conn, $sql);
-		        $r = oci_execute($stid);
-		        oci_free_statement($stid);
+				 	if(!isset($data['HOME_ADDRESS'])){
+						$data['HOME_ADDRESS']='宁波';
+					}
+				 	$vehicle_sql='SELECT o.RFID_ID FROM DSSC3.W_DW_NON_MOTOR o WHERE o.PLATE_NO =\''.$data['OLD_NO'].'\' ';
+				   $rfid_id='';
+				   $stid = oci_parse($conn, $vehicle_sql);
+				   oci_define_by_name($stid, 'RFID_ID', $rfid_id);
+				   oci_execute($stid);
+				   oci_fetch($stid);
+				 	if($rfid_id){
+						//如果存在则更新
+						if(isset($data['RFID_SN']) && $data['RFID_SN']!='00000000' ){
+							 $sql='UPDATE DSSC3.W_DW_RFID_TAGS  SET RFID_SN = \''.$data['RFID_SN'].'\' WHERE   ID = '.$rfid_id;
+						   $stid = oci_parse($conn, $sql);
+						   $r = oci_execute($stid);
+						}
+					   $sql='UPDATE DSSC3.W_DW_NON_MOTOR  SET CAR_BRAND=\''.$data['CAR_BRAND'].'\',CAR_TYPE=\''.$data['CAR_TYPE'].'\',CAR_VIN=\''.$data['CAR_VIN'].'\' WHERE PLATE_NO = \''.$data['PLATE_NO'].'\' ';
+					   $stid2 = oci_parse($conn, $sql);
+					   $r2 = oci_execute($stid2);
+						//查车主ID
+					   $vehicle_sql='SELECT o.OWNER_ID FROM DSSC3.W_DW_NON_MOTOR o WHERE o.PLATE_NO =\''.$data['PLATE_NO'].'\' ';
+					   $owner_id='';
+					   $stid = oci_parse($conn, $vehicle_sql);
+					   oci_define_by_name($stid, 'OWNER_ID', $owner_id);
+					   oci_execute($stid);
+					   oci_fetch($stid);
+					   $sql='UPDATE DSSC3.W_DW_NON_MOTOR_OWNER SET MOBILE_NUMBER=\''.$data['MOBILE_NUMBER'].'\',NAME=\''.$data['NAME'].'\',ID_CARD_NUMBER=\''.$data['ID_CARD_NUMBER'].'\',HOME_ADDRESS=\''.$data['HOME_ADDRESS'].'\' WHERE ID = \''.$owner_id.'\' ';
+					   $stid3 = oci_parse($conn, $sql);
+					   $r3 = oci_execute($stid3);
+					}else{
+						$sql='declare
+									tagId number;
+										 ownId number;
+									begin
+									INSERT INTO DSSC3.W_DW_RFID_TAGS("ID", "RFID_SN","INSTALLER","INSTA_DATE") VALUES (DSSC3.SEQ_W_DW_RFID_TAGS.nextval, \''.$data['RFID_SN'].'\',\''.$data['INSTALLER'].'\', TO_DATE(\''.$data['INSTA_DATE'].'\', \'SYYYY-MM-DD HH24:MI:SS\'))  returning ID into tagId;
+										 INSERT INTO DSSC3.W_DW_NON_MOTOR_OWNER("ID", "NAME","ID_CARD_NUMBER","MOBILE_NUMBER","HOME_ADDRESS") VALUES (DSSC3.SEQ_W_DW_NON_MOTOR_OWNER.nextval,\''.$data['NAME'].'\',\''.$data['ID_CARD_NUMBER'].'\',\''.$data['MOBILE_NUMBER'].'\',\''.$data['HOME_ADDRESS'].'\') returning ID into ownId;
+										 INSERT INTO DSSC3.W_DW_NON_MOTOR("ID", "RFID_ID","PLATE_NO","CAR_BRAND","CAR_TYPE","CAR_VIN","OWNER_ID") VALUES (DSSC3.SEQ_W_DW_NON_MOTOR.nextval, tagId,\''.$data['PLATE_NO'].'\',\''.$data['CAR_BRAND'].'\',\''.$data['CAR_TYPE'].'\',\''.$data['CAR_VIN'].'\',ownId);
+									end;';
+						$stid = oci_parse($conn, $sql);
+						$r = oci_execute($stid);
+						oci_free_statement($stid);
+					}
+				   
 		        break;        
 		      case 'update':
 				 	if(!isset($data['NAME'])){
@@ -155,6 +187,9 @@ class NingboFangdaoSyncDataAction extends Action {
 				 	if(!isset($data['MOBILE_NUMBER'])){
 						$data['MOBILE_NUMBER']='18888888888';
 					}
+				 	if(!isset($data['HOME_ADDRESS'])){
+						$data['HOME_ADDRESS']='宁波';
+					}
 					$vehicle_sql='SELECT o.RFID_ID FROM DSSC3.W_DW_NON_MOTOR o WHERE o.PLATE_NO =\''.$data['OLD_NO'].'\' ';
 				   $rfid_id='';
 				   $stid = oci_parse($conn, $vehicle_sql);
@@ -162,11 +197,12 @@ class NingboFangdaoSyncDataAction extends Action {
 				   oci_execute($stid);
 				   oci_fetch($stid);
 					//更新
-				        // $sql='UPDATE DSSC3.W_DW_NON_MOTOR o,DSSC3.W_DW_RFID_TAGS s SET s.RFID_SN = \''.$data['RFID_SN'].'\' WHERE o.PLATE_NO =\''.$data['OLD_NO'].'\'  AND o.rfid_id = s.id  ';
-				   $sql='UPDATE DSSC3.W_DW_RFID_TAGS  SET RFID_SN = \''.$data['RFID_SN'].'\' WHERE   ID = '.$rfid_id;
-				   $stid = oci_parse($conn, $sql);
-				   $r = oci_execute($stid);
-				   $sql='UPDATE DSSC3.W_DW_NON_MOTOR  SET PLATE_NO = \''.$data['PLATE_NO'].'\',CAR_BRAND=\''.$data['CAR_BRAND'].'\',CAR_TYPE=\''.$data['CAR_TYPE'].'\' WHERE PLATE_NO = \''.$data['OLD_NO'].'\' ';
+					if(isset($data['RFID_SN']) && $data['RFID_SN']!='00000000' ){
+						 $sql='UPDATE DSSC3.W_DW_RFID_TAGS  SET RFID_SN = \''.$data['RFID_SN'].'\' WHERE   ID = '.$rfid_id;
+					   $stid = oci_parse($conn, $sql);
+					   $r = oci_execute($stid);
+					}
+				   $sql='UPDATE DSSC3.W_DW_NON_MOTOR  SET PLATE_NO = \''.$data['PLATE_NO'].'\',CAR_BRAND=\''.$data['CAR_BRAND'].'\',CAR_TYPE=\''.$data['CAR_TYPE'].'\',CAR_VIN=\''.$data['CAR_VIN'].'\' WHERE PLATE_NO = \''.$data['OLD_NO'].'\' ';
 				   $stid2 = oci_parse($conn, $sql);
 				   $r2 = oci_execute($stid2);
 					//查车主ID
@@ -176,7 +212,7 @@ class NingboFangdaoSyncDataAction extends Action {
 				   oci_define_by_name($stid, 'OWNER_ID', $owner_id);
 				   oci_execute($stid);
 				   oci_fetch($stid);
-				   $sql='UPDATE DSSC3.W_DW_NON_MOTOR_OWNER SET MOBILE_NUMBER=\''.$data['MOBILE_NUMBER'].'\',NAME=\''.$data['NAME'].'\',ID_CARD_NUMBER=\''.$data['ID_CARD_NUMBER'].'\' WHERE ID = \''.$owner_id.'\' ';
+				   $sql='UPDATE DSSC3.W_DW_NON_MOTOR_OWNER SET MOBILE_NUMBER=\''.$data['MOBILE_NUMBER'].'\',NAME=\''.$data['NAME'].'\',ID_CARD_NUMBER=\''.$data['ID_CARD_NUMBER'].'\',HOME_ADDRESS=\''.$data['HOME_ADDRESS'].'\' WHERE ID = \''.$owner_id.'\' ';
 				   $stid3 = oci_parse($conn, $sql);
 				   $r3 = oci_execute($stid3);
 		      	 break;

+ 4 - 0
Home/Lib/Action/RouteRfidKafkaAction.class.php

@@ -57,6 +57,10 @@ class RouteRfidKafkaAction extends Action {
 				$this->debug_log( 'abnormal_labels', $val );
 				continue;
 			}
+			if( $data['time']>time() ){
+				$this->debug_log( 'time_abnormal_station', $RF_ID );
+				$data['time']=time();
+			}
 			$RF_STAT=0;
 			$plate_no='';
 			if($val['event']['entry']==1){