| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990 | 
							- <?php
 
- namespace App\Imports;
 
- use App\Exceptions\ImportError;
 
- use App\Models\DeviceName;
 
- use App\Models\InnerDevice;
 
- use App\Models\Option;
 
- use App\Models\Project;
 
- use App\Models\ProjectZone;
 
- use App\Models\Road;
 
- use App\Models\Spec;
 
- use App\Models\WorkPoint;
 
- use App\Models\Zone;
 
- use Illuminate\Support\Collection;
 
- use Illuminate\Support\Facades\Auth;
 
- use Illuminate\Support\Facades\Log;
 
- use Maatwebsite\Excel\Concerns\ToCollection;
 
- use PhpOffice\PhpSpreadsheet\Shared\Date;
 
- class InnerDeviceImport implements ToCollection
 
- {
 
-     protected $model;
 
-     protected $zone;
 
-     protected $road;
 
-     protected $project_zone;
 
-     public function __construct()
 
-     {
 
-         $this->model = new InnerDevice();
 
-     }
 
-     public function formatDate($date)
 
-     {
 
-         if(empty($date)) return '';
 
-         return Date::excelToDateTimeObject($date)->format('Y-m-d');
 
-     }
 
-     public function collection(Collection $rows)
 
-     {
 
-         if(count($rows) <= 1) {
 
-             /** @noinspection PhpUnhandledExceptionInspection */
 
- //            throw new ImportError('表格为空');
 
-             return false;
 
-         };
 
-         foreach ($rows as $key => $row) {
 
-             if($key == 0) continue;
 
-             if(!isset($row[0])) break;
 
-             $device_name = DeviceName::firstOrCreate([
 
-                 'name' => $row[1]
 
-             ]);
 
-             $spec = Spec::firstOrCreate([
 
-                 'device_name_id' => $device_name->id,
 
-                 'name' => $row[2]
 
-             ]);
 
-             $work_point = WorkPoint::firstOrCreate([
 
-                 'name' => $row[8]
 
-             ])->first();
 
-             $status = Option::where([
 
-                 ['table', '=', 'inner_devices'],
 
-                 ['column', '=', 'status'],
 
-                 ['name', '=', $row[9]]
 
-             ])->first();
 
-             $data = [
 
-                 'number' => $row[0],
 
-                 'device_name_id' => $device_name ? $device_name->id : '',
 
-                 'spec_id' => $spec ? $spec->id : '',
 
-                 'produce_date' => $this->formatDate($row[3]),
 
-                 'buy_origin' => $row[4],
 
-                 'manufacturer' => $row[5],
 
-                 'shape' => $row[6],
 
-                 'work_point_id' => $work_point ? $work_point->id : '',
 
-                 'status' => $status ? $status->id : '',
 
-                 'quantity' => (int)$row[7]
 
-             ];
 
-             $this->model->create($data);
 
- //            $num = (int)$row[7];
 
- //            for($i = 0; $i < $num; ++$i) {
 
- //                $this->model->create($data);
 
- //            }
 
-         }
 
-         return true;
 
-     }
 
- }
 
 
  |