Zhouzhendong 5 роки тому
батько
коміт
ff8b16fc82

+ 1 - 0
app/Http/Controllers/OrderController.php

@@ -8,6 +8,7 @@ use App\OracleDOCOrderHeader;
 use App\OracleDOCWaveDetails;
 use Illuminate\Database\Eloquent\Collection;
 use Illuminate\Http\Request;
+use Illuminate\Support\Facades\Auth;
 use Illuminate\Support\Facades\DB;
 use Illuminate\Support\Facades\Gate;
 use Maatwebsite\Excel\Facades\Excel;

+ 1 - 0
app/Http/Controllers/TestController.php

@@ -292,6 +292,7 @@ class TestController extends Controller
     /*1*/
     function test(Request $request)
     {/**/
+        dd(City::select('id','name')->first());
     }
 
 }

+ 12 - 35
app/Http/Controllers/WaybillsController.php

@@ -4,7 +4,10 @@ namespace App\Http\Controllers;
 
 
 use App\Services\CarrierService;
+use App\Services\CarTypeService;
+use App\Services\CityService;
 use App\Services\OwnerService;
+use App\Services\UnitService;
 use App\Services\WaybillService;
 use App\UploadFile;
 use App\WaybillAuditLog;
@@ -70,50 +73,24 @@ class WaybillsController extends Controller
         if(!Gate::allows('运输管理-录入')){ return redirect(url('/'));  }
         $id=false;
         $this->validatorWaybill($request,$id)->validate();
-        $data=$request->input();
-
-        $waybill=new Waybill([
-            'type'=>$data['type'],
-            'status'=>'未审核',
-            'waybill_number'=>Uuid::uuid1(),
-            'owner_id'=>$data['owner_id'],
-            'wms_bill_number'=>$data['wms_bill_number'],
-            'origination'=>$data['origination'],
-            'destination'=>$data['destination'],
-            'recipient'=>$data['recipient'],
-            'recipient_mobile'=>$data['recipient_mobile'],
-            'charge'=>$data['charge'],
-            'ordering_remark'=>$data['ordering_remark']
-        ]);
-        if (isset($data['collect_fee'])&&$data['collect_fee']>0)$waybill->collect_fee=$data['collect_fee'];
-        $waybill->save();
-        $number_id=$waybill->id;
-        if ($data['type']=='直发车'){
-            $waybill_number='BSZF'.date ("ymd").str_pad($number_id>99999?$number_id%99999:$number_id,4,"0",STR_PAD_LEFT);
-            $waybill->waybill_number=$waybill_number;
-            $waybill->update();
-        }else{
-            $waybill_number='BSZX'.date ("ymd").str_pad($number_id>99999?$number_id%99999:$number_id,4,"0",STR_PAD_LEFT);
-            $waybill->waybill_number=$waybill_number;
-            $waybill->update();
-        }
+        $waybill=app('waybillService')->store($request);
         $this->log(__METHOD__,__FUNCTION__,json_encode($request->toArray()),Auth::user()['id']);
-        return redirect('waybill/index')->with('successTip','新运单“'.$waybill_number.'”录入成功');
+        return redirect('waybill/index')->with('successTip','新运单“'.$waybill->waybill_number.'”录入成功');
     }
 
-    public function edit($id)
+    public function edit($id,CarrierService $carrierService,CarTypeService $carTypeService,
+                         CityService $cityService,UnitService $unitService)
     {
         if(!Gate::allows('运输管理-编辑')){ return redirect(url('/'));  }
-        $waybill=Waybill::find($id);
+        $waybill = app('waybillService')->find($id);
         if ($waybill->deliver_at){
             $waybill->deliver_at_date=Carbon::parse($waybill->deliver_at)->format('Y-m-d');
             $waybill->deliver_at_time=Carbon::parse($waybill->deliver_at)->format('H:i:s');
         }
-        $carriers=Carrier::get();
-        $cities=City::get();
-        $units=Unit::get();
-        $carTypes=CarType::get();
-        return view('waybill/edit',['waybill'=>$waybill,'carriers'=>$carriers,'cities'=>$cities,'units'=>$units,'carTypes'=>$carTypes]);
+        $cities=$cityService->selectGet();
+        $units=$unitService->selectGet();
+        $carTypes=$carTypeService->selectGet();
+        return view('waybill/edit',['waybill'=>$waybill,'carriers'=>$carrierService->selectGet(),'cities'=>$cities,'units'=>$units,'carTypes'=>$carTypes]);
     }
 
     public function update(Request $request, $id)

+ 20 - 0
app/Services/CarTypeService.php

@@ -0,0 +1,20 @@
+<?php 
+
+namespace App\Services; 
+
+use App\CarType;
+
+Class CarTypeService
+{
+    /*
+     * array | string $column
+     * 默认一些select字段,可传递string 或 array来指定select字段
+     */
+    public function selectGet($column = ['id','name']){
+        if (!is_array($column)) {
+            $column = [$column];
+        }
+        return CarType::query()->select($column)->get();
+    }
+
+}

+ 20 - 0
app/Services/CityService.php

@@ -0,0 +1,20 @@
+<?php 
+
+namespace App\Services; 
+
+use App\City;
+
+Class CityService
+{
+    /*
+     * array | string $column
+     * 默认一些select字段,可传递string 或 array来指定select字段
+     */
+    public function selectGet($column = ['id','name']){
+        if (!is_array($column)) {
+            $column = [$column];
+        }
+        return City::query()->select($column)->get();
+    }
+
+}

+ 7 - 3
app/Services/OwnerService.php

@@ -5,9 +5,13 @@ namespace App\Services;
 use App\Owner;
 
 Class OwnerService
-{ 
-    public function selectGet(){
-        return Owner::filterAuthorities()->select('id','name')->get();
+{
+    /*
+     * array | string $column
+     * 默认一些select字段,可传递string 或 array来指定select字段
+     */
+    public function selectGet($column = ['id','name']){
+        return Owner::filterAuthorities()->select($column)->get();
     }
 
 }

+ 20 - 0
app/Services/UnitService.php

@@ -0,0 +1,20 @@
+<?php 
+
+namespace App\Services; 
+
+use App\Unit;
+
+Class UnitService
+{
+    /*
+     * array | string $column
+     * 默认一些select字段,可传递string 或 array来指定select字段
+     * */
+    public function selectGet($column = ['id','name']){
+        if (!is_array($column)) {
+            $column = [$column];
+        }
+        return Unit::query()->select($column)->get();
+    }
+
+}

+ 32 - 0
app/Services/WaybillService.php

@@ -5,6 +5,8 @@ namespace App\Services;
 use App\Services\common\QueryService;
 use App\Waybill;
 use Illuminate\Http\Request;
+use Illuminate\Support\Facades\DB;
+use Ramsey\Uuid\Uuid;
 
 Class WaybillService
 {
@@ -50,4 +52,34 @@ Class WaybillService
             ->whereIn('id',explode(',',$request->data))
             ->get();
     }
+
+    public function store(Request $request){
+        return DB::transaction(function ()use($request){
+            $waybill=new Waybill([
+                'type'=>$request->type,
+                'status'=>'未审核',
+                'waybill_number'=>Uuid::uuid1(),
+                'owner_id'=>$request->owner_id,
+                'wms_bill_number'=>$request->wms_bill_number,
+                'origination'=>$request->origination,
+                'destination'=>$request->destination,
+                'recipient'=>$request->recipient,
+                'recipient_mobile'=>$request->recipient_mobile,
+                'charge'=>$request->charge,
+                'ordering_remark'=>$request->ordering_remark
+            ]);
+            if ($request->collect_fee)$waybill->collect_fee=$request->collect_fee;
+            $waybill->save();
+            $number_id=$waybill->id;
+            if ($request->type=='直发车') $waybill_number='BSZF';
+            else $waybill_number='BSZX';
+            $waybill_number .= date ("ymd").str_pad($number_id>99999?$number_id%99999:$number_id,4,"0",STR_PAD_LEFT);
+            $waybill->update(['waybill_number' => $waybill_number ]);
+            return $waybill;
+        });
+    }
+
+    public function find($id){
+        return Waybill::query()->find($id);
+    }
 }