|
@@ -221,9 +221,11 @@ class Vehicle extends CatchController
|
|
|
|
|
|
$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("ID", "RFID_ID","PLATE_NO","CAR_BRAND","CAR_TYPE") VALUES (DSSC3.SEQ_W_DW_RFID_TAGS.nextval, tagId,\''.$data['PLATE_NO'].'\',\''.$data['CAR_BRAND'].'\',\''.$data['CAR_TYPE'].'\');
|
|
|
+ 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_RFID_TAGS.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);
|
|
@@ -250,24 +252,43 @@ class Vehicle extends CatchController
|
|
|
oci_execute($stid);
|
|
|
oci_fetch($stid);
|
|
|
$params['OLD_NO']=$OLD_NO;
|
|
|
-
|
|
|
$params['RFID_SN']=strtoupper($params['RFID_SN']);
|
|
|
$params['PLATE_NO']=strtoupper($params['PLATE_NO']);
|
|
|
// var_dump($params);
|
|
|
-
|
|
|
// //更新
|
|
|
$sql='UPDATE DSSC3.W_DW_RFID_TAGS SET RFID_SN = \''.$params['RFID_SN'].'\' WHERE ID = \''.$id.'\' ';
|
|
|
$stid = oci_parse($conn, $sql);
|
|
|
$r = oci_execute($stid);
|
|
|
-
|
|
|
- $sql='UPDATE DSSC3.W_DW_NON_MOTOR SET PLATE_NO = \''.$params['PLATE_NO'].'\',CAR_BRAND=\''.$params['CAR_BRAND'].'\',CAR_TYPE=\''.$params['CAR_TYPE'].'\' WHERE RFID_ID = \''.$id.'\' ';
|
|
|
- // var_dump($sql);
|
|
|
+ if(!$r){
|
|
|
+ oci_rollback($conn);
|
|
|
+ return CatchResponse::fail('修改失败');
|
|
|
+ }
|
|
|
+ $sql='UPDATE DSSC3.W_DW_NON_MOTOR SET PLATE_NO = \''.$params['PLATE_NO'].'\',CAR_BRAND=\''.$params['CAR_BRAND'].'\',CAR_TYPE=\''.$params['CAR_TYPE'].'\',CAR_VIN=\''.$params['CAR_VIN'].'\' WHERE RFID_ID = \''.$id.'\' ';
|
|
|
$stid2 = oci_parse($conn, $sql);
|
|
|
$r2 = oci_execute($stid2);
|
|
|
-
|
|
|
+ if(!$r2){
|
|
|
+ oci_rollback($conn);
|
|
|
+ return CatchResponse::fail('修改失败');
|
|
|
+ }
|
|
|
+ //查车主ID
|
|
|
+ $vehicle_sql='SELECT o.OWNER_ID FROM DSSC3.W_DW_NON_MOTOR o WHERE o.RFID_ID =\''.$id.'\' ';
|
|
|
+ $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=\''.$params['MOBILE_NUMBER'].'\',NAME=\''.$params['NAME'].'\',ID_CARD_NUMBER=\''.$params['ID_CARD_NUMBER'].'\',HOME_ADDRESS=\''.$params['HOME_ADDRESS'].'\' WHERE ID = \''.$owner_id.'\' ';
|
|
|
+
|
|
|
+ $stid3 = oci_parse($conn, $sql);
|
|
|
+ $r3 = oci_execute($stid3);
|
|
|
+ if(!$r3){
|
|
|
+ oci_rollback($conn);
|
|
|
+ return CatchResponse::fail('修改失败');
|
|
|
+ }
|
|
|
+ oci_commit($conn);
|
|
|
$params['DATA_TYPE']='vehicle_update';
|
|
|
pushDataToRedisList($params);
|
|
|
-
|
|
|
return CatchResponse::success('修改成功');
|
|
|
|
|
|
}
|
|
@@ -291,18 +312,43 @@ class Vehicle extends CatchController
|
|
|
$delete_data['PLATE_NO']=$rows;
|
|
|
$delete_data['DATA_TYPE']='vehicle_delete';
|
|
|
|
|
|
-
|
|
|
+ //查车主ID
|
|
|
+ $sql='SELECT OWNER_ID FROM DSSC3.W_DW_NON_MOTOR WHERE RFID_ID in ('.$id.')';
|
|
|
+ $stid = oci_parse($conn, $sql);
|
|
|
+ $r = oci_execute($stid);
|
|
|
+ $rows=[];
|
|
|
+ while($row = oci_fetch_array($stid, OCI_ASSOC+OCI_RETURN_NULLS)) {
|
|
|
+ $rows[]=$row['OWNER_ID'];
|
|
|
+ }
|
|
|
+ $owner_ids=implode(',',$rows);
|
|
|
+ $sql='DELETE FROM DSSC3.W_DW_NON_MOTOR_OWNER WHERE ID in ('.$owner_ids.')';
|
|
|
+ $stid = oci_parse($conn, $sql);
|
|
|
+ $r = oci_execute($stid);
|
|
|
+ if(!$r){
|
|
|
+ oci_rollback($conn);
|
|
|
+ return CatchResponse::fail('删除失败');
|
|
|
+ }
|
|
|
+
|
|
|
$sql='DELETE FROM DSSC3.W_DW_RFID_TAGS WHERE ID in ('.$id.')';
|
|
|
-
|
|
|
$stid = oci_parse($conn, $sql);
|
|
|
$r = oci_execute($stid);
|
|
|
-
|
|
|
+ if(!$r){
|
|
|
+ oci_rollback($conn);
|
|
|
+ return CatchResponse::fail('删除失败');
|
|
|
+ }
|
|
|
$sql='DELETE FROM DSSC3.W_DW_NON_MOTOR WHERE RFID_ID in ('.$id.')';
|
|
|
$stid = oci_parse($conn, $sql);
|
|
|
$r = oci_execute($stid);
|
|
|
+ if(!$r){
|
|
|
+ oci_rollback($conn);
|
|
|
+ return CatchResponse::fail('删除失败');
|
|
|
+ }
|
|
|
+ oci_commit($conn);
|
|
|
|
|
|
+
|
|
|
pushDataToRedisList($delete_data);
|
|
|
- return CatchResponse::success($r);
|
|
|
+
|
|
|
+ return CatchResponse::success(true);
|
|
|
}
|
|
|
/**
|
|
|
* 导出
|
|
@@ -362,29 +408,40 @@ class Vehicle extends CatchController
|
|
|
|
|
|
|
|
|
$total += $highestRow - 1;
|
|
|
- // $sql='declare
|
|
|
- // tagId number;
|
|
|
- // begin
|
|
|
- // INSERT INTO DSSC3.W_DW_RFID_TAGS("ID", "RFID_SN","INSTALLER","INSTA_DATE") VALUES (DSSC3.SEQ_W_DW_RFID_TAGS.nextval, \''.$arr['RFID_SN'].'\',\''.$arr['INSTALLER'].'\', TO_DATE(\''.$arr['INSTA_DATE'].'\', \'SYYYY-MM-DD HH24:MI:SS\')) returning ID into tagId;
|
|
|
- // INSERT INTO DSSC3.W_DW_NON_MOTOR("ID", "RFID_ID","PLATE_NO","CAR_BRAND","CAR_TYPE") VALUES (DSSC3.SEQ_W_DW_RFID_TAGS.nextval, tagId,\''.$arr['PLATE_NO'].'\',\''.$arr['CAR_BRAND'].'\',\''.$arr['CAR_TYPE'].'\');
|
|
|
- // end;';
|
|
|
- // 预编译SQL语句
|
|
|
$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, :col1,:col2, TO_DATE(:col3, \'SYYYY-MM-DD HH24:MI:SS\')) returning ID into tagId;
|
|
|
- INSERT INTO DSSC3.W_DW_NON_MOTOR("ID", "RFID_ID","PLATE_NO","CAR_BRAND","CAR_TYPE") VALUES (DSSC3.SEQ_W_DW_RFID_TAGS.nextval, tagId,:col4,:col5,:col6);
|
|
|
+ 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,:col4,:col5,:col6,:col7) 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_RFID_TAGS.nextval, tagId,:col8,:col9,:col10,:col11,ownId);
|
|
|
end;';
|
|
|
+
|
|
|
$stmt = oci_parse($conn, $sql);
|
|
|
+
|
|
|
+
|
|
|
for ($j = 2; $j <= $highestRow; $j++) {
|
|
|
$arr = array(); //每条设备信息
|
|
|
$arr['PLATE_NO'] = strtoupper(trim($sheet->getCell("A" . $j)->getFormattedValue()));
|
|
|
- if(empty($arr['PLATE_NO']) || strlen($arr['PLATE_NO'])!=13){
|
|
|
+ if(empty($arr['PLATE_NO']) || strlen($arr['PLATE_NO'])<10){
|
|
|
+ $fail++;
|
|
|
+ debug_log('importVehicleError','车牌格式不正确,车牌号为:'.$arr['PLATE_NO']);
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ //检测车牌是否存在
|
|
|
+ $vehicle_sql='SELECT o.RFID_ID FROM DSSC3.W_DW_NON_MOTOR o WHERE o.PLATE_NO =\''.$arr['PLATE_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){
|
|
|
$fail++;
|
|
|
- debug_log('importVehicleError','车牌格式不正确,车牌号为:'.$arr['PLATE_NO']);
|
|
|
+ debug_log('importVehicleError','车牌已存在,车牌号为:'.$arr['PLATE_NO']);
|
|
|
continue;
|
|
|
}
|
|
|
- $brand = trim($sheet->getCell("B" . $j)->getFormattedValue());
|
|
|
+ $brand = trim($sheet->getCell("B" . $j)->getFormattedValue());
|
|
|
$brand_id=Db::table("sys_dict_data")->where('type_id', $brand_type_id)->whereLike('value','%'.$brand.'%')->cache(60)->value('code');
|
|
|
$arr['CAR_BRAND']=$brand_id?$brand_id:'99';
|
|
|
|
|
@@ -397,36 +454,45 @@ class Vehicle extends CatchController
|
|
|
debug_log('importVehicleError','标签格式格式不正确,标签为:'.$arr['RFID_SN']);
|
|
|
continue;
|
|
|
}
|
|
|
- $arr['INSTA_DATE'] = trim($sheet->getCell("E" . $j)->getFormattedValue());
|
|
|
- $arr['INSTALLER'] = trim($sheet->getCell("F" . $j)->getFormattedValue());
|
|
|
-
|
|
|
+ $arr['CAR_VIN'] = trim($sheet->getCell("E" . $j)->getFormattedValue());
|
|
|
+ $arr['INSTA_DATE'] = trim($sheet->getCell("F" . $j)->getFormattedValue());
|
|
|
+ $arr['INSTALLER'] = trim($sheet->getCell("G" . $j)->getFormattedValue());
|
|
|
+ $arr['NAME'] = trim($sheet->getCell("H" . $j)->getFormattedValue());
|
|
|
+ $arr['ID_CARD_NUMBER'] = trim($sheet->getCell("I" . $j)->getFormattedValue());
|
|
|
+ $arr['MOBILE_NUMBER'] = trim($sheet->getCell("J" . $j)->getFormattedValue());
|
|
|
+ $arr['HOME_ADDRESS'] = trim($sheet->getCell("K" . $j)->getFormattedValue());
|
|
|
+ // var_dump($arr);
|
|
|
//变量绑定
|
|
|
oci_bind_by_name($stmt, ':col1', $arr['RFID_SN']);
|
|
|
oci_bind_by_name($stmt, ':col2', $arr['INSTALLER']);
|
|
|
oci_bind_by_name($stmt, ':col3', $arr['INSTA_DATE']);
|
|
|
- oci_bind_by_name($stmt, ':col4', $arr['PLATE_NO']);
|
|
|
- oci_bind_by_name($stmt, ':col5', $arr['CAR_BRAND']);
|
|
|
- oci_bind_by_name($stmt, ':col6', $arr['CAR_TYPE']);
|
|
|
+ oci_bind_by_name($stmt, ':col4', $arr['NAME']);
|
|
|
+ oci_bind_by_name($stmt, ':col5', $arr['ID_CARD_NUMBER']);
|
|
|
+ oci_bind_by_name($stmt, ':col6', $arr['MOBILE_NUMBER']);
|
|
|
+ oci_bind_by_name($stmt, ':col7', $arr['HOME_ADDRESS']);
|
|
|
+ oci_bind_by_name($stmt, ':col8', $arr['PLATE_NO']);
|
|
|
+ oci_bind_by_name($stmt, ':col9', $arr['CAR_BRAND']);
|
|
|
+ oci_bind_by_name($stmt, ':col10',$arr['CAR_TYPE']);
|
|
|
+ oci_bind_by_name($stmt, ':col11',$arr['CAR_VIN']);
|
|
|
+
|
|
|
+ // 添加到批处理
|
|
|
+ oci_execute($stmt, OCI_DEFAULT);
|
|
|
|
|
|
- // 添加到批处理
|
|
|
- oci_execute($stmt, OCI_DEFAULT);
|
|
|
+ $arr['DATA_TYPE']='vehicle_save';
|
|
|
+ pushDataToRedisList($arr);
|
|
|
+ $success++;
|
|
|
+ if( ($j%1000 == 0) || $j==$highestRow){
|
|
|
+ // 提交事务
|
|
|
+ $res=oci_commit($conn);
|
|
|
+
|
|
|
+ }
|
|
|
|
|
|
- $arr['DATA_TYPE']='vehicle_save';
|
|
|
- pushDataToRedisList($arr);
|
|
|
- $success++;
|
|
|
- if( ($j%1000 == 0) || $j==$highestRow){
|
|
|
- // 提交事务
|
|
|
- $res=oci_commit($conn);
|
|
|
- }
|
|
|
-
|
|
|
}
|
|
|
- // 释放资源
|
|
|
oci_free_statement($stmt);
|
|
|
}
|
|
|
- //关闭连接
|
|
|
oci_close($conn);
|
|
|
return CatchResponse::success('共' . $total . '条数据,成功' . $success . '条,失败' . $fail . '条');
|
|
|
-
|
|
|
+
|
|
|
|
|
|
}
|
|
|
|