|
@@ -365,16 +365,32 @@ class Vehicle extends CatchController
|
|
|
$brand_type_id = Db::table("sys_dict_type")->where('code', 'CAR_BRAND_OPTION')->value('id');
|
|
|
$car_type_id = Db::table("sys_dict_type")->where('code', 'CAR_TYPE_OPTION')->value('id');
|
|
|
|
|
|
- // return $this->where('type_id', $type_id)
|
|
|
- // ->where('code', $value)
|
|
|
- // ->cache(true, 60)
|
|
|
- // ->value('remark');
|
|
|
|
|
|
- // $r=$this->execSaveVehicle($param);
|
|
|
$total += $highestRow - 1;
|
|
|
+ $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_OWNER("ID", "NAME","ID_CARD_NUMBER","MOBILE_NUMBER") VALUES (DSSC3.SEQ_W_DW_NON_MOTOR_OWNER.nextval,:col4,:col5,:col6) 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,:col7,:col8,:col9,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){
|
|
|
+ $fail++;
|
|
|
+ debug_log('importVehicleError','车牌格式不正确,车牌号为:'.$arr['PLATE_NO']);
|
|
|
+ continue;
|
|
|
+ }
|
|
|
$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';
|
|
@@ -383,30 +399,59 @@ class Vehicle extends CatchController
|
|
|
$car_type=Db::table("sys_dict_data")->where('type_id', $car_type_id)->whereLike('value','%'.$type.'%')->cache(60)->value('code');
|
|
|
$arr['CAR_TYPE']=$car_type?$car_type:'4';
|
|
|
$arr['RFID_SN'] = trim($sheet->getCell("D" . $j)->getFormattedValue());
|
|
|
+ if(empty($arr['RFID_SN']) || strlen($arr['RFID_SN'])!=8){
|
|
|
+ $fail++;
|
|
|
+ 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['NAME'] = trim($sheet->getCell("G" . $j)->getFormattedValue());
|
|
|
$arr['ID_CARD_NUMBER'] = trim($sheet->getCell("H" . $j)->getFormattedValue());
|
|
|
$arr['MOBILE_NUMBER'] = trim($sheet->getCell("I" . $j)->getFormattedValue());
|
|
|
// var_dump($arr);
|
|
|
- $r=$this->execSaveVehicle($arr);
|
|
|
- if($r){
|
|
|
- $arr['DATA_TYPE']='vehicle_save';
|
|
|
- pushDataToRedisList($arr);
|
|
|
- $success++;
|
|
|
- }else{
|
|
|
- $fail++;
|
|
|
- }
|
|
|
+ //变量绑定
|
|
|
+ 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['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, ':col6', $arr['PLATE_NO']);
|
|
|
+ oci_bind_by_name($stmt, ':col6', $arr['CAR_BRAND']);
|
|
|
+ oci_bind_by_name($stmt, ':col6', $arr['CAR_TYPE']);
|
|
|
+
|
|
|
+ // 添加到批处理
|
|
|
+ oci_execute($stmt, OCI_DEFAULT);
|
|
|
+
|
|
|
+ $arr['DATA_TYPE']='vehicle_save';
|
|
|
+ pushDataToRedisList($arr);
|
|
|
+ $success++;
|
|
|
+ if( ($j%1000 == 0) || $j==$highestRow){
|
|
|
+ // 提交事务
|
|
|
+ $res=oci_commit($conn);
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ // $r=$this->execSaveVehicle($arr);
|
|
|
+ // if($r){
|
|
|
+ // $arr['DATA_TYPE']='vehicle_save';
|
|
|
+ // pushDataToRedisList($arr);
|
|
|
+ // $success++;
|
|
|
+ // }else{
|
|
|
+ // $fail++;
|
|
|
+ // }
|
|
|
// var_dump($arr);
|
|
|
// array_push($data,$arr);
|
|
|
}
|
|
|
+ oci_free_statement($stmt);
|
|
|
}
|
|
|
// array_unique($data, SORT_REGULAR);
|
|
|
// // var_dump($data);return CatchResponse::success();
|
|
|
// $count = $this->deviceModel->limit(100)->insertAll($data);
|
|
|
// if ($success = $count) {
|
|
|
-
|
|
|
- return CatchResponse::success('共' . $total . '条数据,成功' . $success . '条,失败' . $fail . '条');
|
|
|
+ oci_close($conn);
|
|
|
+ return CatchResponse::success('共' . $total . '条数据,成功' . $success . '条,失败' . $fail . '条');
|
|
|
|
|
|
// }
|
|
|
// return CatchResponse::success(['error' => true, 'msg' => '导入失败']);
|