Ver código fonte

修改展示方式

ajun 5 anos atrás
pai
commit
e43f8eec43

+ 15 - 10
app/Filters/DischargeTaskFilters.php

@@ -11,7 +11,7 @@ class DischargeTaskFilters
     protected $request;
     protected $queryBuilder;
     protected $filters = [
-        'owner_id', 'created_at_start', 'created_at_end', 'numbers', 'status', 'type', 'income_remark','facilitator_id'
+        'owner_id', 'created_at_start', 'created_at_end', 'numbers', 'status', 'type', 'income_remark','facilitator_id','created_range'
     ];
     protected $array_filter;
     protected $params = [];
@@ -62,46 +62,51 @@ class DischargeTaskFilters
 
     public function owner_id($owner_id)
     {
-        $this->queryBuilder->where('owner_id',$owner_id);
+        $this->queryBuilder->where('discharge_tasks.owner_id',$owner_id);
     }
 
     public function created_at_start($created_at_start)
     {
-        $this->queryBuilder->where('created_at','>=',$created_at_start);
+        $this->queryBuilder->where('discharge_tasks.created_at','>=',$created_at_start);
     }
     public function created_at_end($created_at_end)
     {
-        $this->queryBuilder->where('created_at','<=',$created_at_end);
+        $this->queryBuilder->where('discharge_tasks.created_at','<=',$created_at_end);
     }
 
     public function numbers($numbers)
     {
-        $this->searchWay($this->queryBuilder,$numbers,'numbers');
+        $this->searchWay($this->queryBuilder,$numbers,'discharge_tasks.numbers');
     }
 
     public function status($status)
     {
-        $this->queryBuilder->where('status',$status);
+        $this->queryBuilder->where('discharge_tasks.status',$status);
     }
 
     public function type($type)
     {
-        $this->queryBuilder->where('type',$type);
+        $this->queryBuilder->where('discharge_tasks.type',$type);
     }
 
     public function income_remark($income_remark)
     {
-        $this->queryBuilder->where('income_remark','like',$income_remark."%");
+        $this->queryBuilder->where('discharge_tasks.income_remark','like',$income_remark."%");
     }
 
     public function id($ids)
     {
-        $this->queryBuilder->whereIn('id',$ids);
+        $this->queryBuilder->whereIn('discharge_tasks.id',$ids);
     }
 
     public function facilitator_id($facilitator_id)
     {
-        $this->searchWay($this->queryBuilder,$facilitator_id,'facilitator_id');
+        $this->searchWay($this->queryBuilder,$facilitator_id,'discharge_tasks.facilitator_id');
+    }
+
+    public function created_range($created_range)
+    {
+        $this->queryBuilder->where('discharge_tasks.created_at','like',$created_range.'%');
     }
 
 }

+ 22 - 7
app/Http/Controllers/FacilitatorController.php

@@ -26,23 +26,35 @@ class FacilitatorController extends Controller
         return view('maintenance.facilitator.index', compact('facilitators'));
     }
 
-    // 服务商对账单
+    // 装卸队对账单
     public function statementIndex(Request $request, DischargeTaskFilters $filters)
     {
         if (!Gate::allows('装卸队-对账单-查询')) {
             return redirect(url('/'));
         }
+
         $facilitatorStatements = DischargeTask::query()
+            ->selectRaw('sum( discharge_tasks.expenditure_total_cost ) total_cost,' . ' count( 1 ) sum , ' . ' facilitators.name facilitators_name,' . ' facilitators.id id,' . " DATE_FORMAT( discharge_tasks.created_at, '%Y-%m' ) months ")
+            ->leftJoin('facilitators', 'discharge_tasks.facilitator_id', '=', 'facilitators.id')
             ->filter($filters)
-            ->with('facilitator')
-            ->select(['id', 'facilitator_id', 'expenditure_amount', 'expenditure_unit', 'expenditure_unit_price', 'expenditure_total_cost', 'expenditure_remark', 'created_at'])
-            ->whereNotNull('facilitator_id')
-            ->where('facilitator_id','!=','0')
-            ->orderByDesc('id')->paginate($request['paginate'] ?? 50);
+            ->groupBy('months', 'facilitator_id')
+            ->orderByDesc('months')
+            ->paginate($request['paginate'] ?? 50);
+
         $facilitators = Facilitator::query()->get();
         return view('personnel.discharge.facilitator.index', compact('facilitatorStatements', 'facilitators'));
     }
 
+    public function gainStatementApi(Request $request,DischargeTaskFilters $filters)
+    {
+        $this->gate('装卸队-对账单-查询');
+        $facilitatorStatements = DischargeTask::query()
+            ->with('facilitator')
+            ->filter($filters)
+            ->get();
+        $this->success($facilitatorStatements);
+    }
+
     public function create()
     {
     }
@@ -101,11 +113,14 @@ class FacilitatorController extends Controller
             ->with('facilitator')
             ->select(['id', 'facilitator_id', 'expenditure_amount', 'expenditure_unit', 'expenditure_unit_price', 'expenditure_total_cost', 'expenditure_remark', 'created_at'])
             ->whereNotNull('facilitator_id')
-            ->where('facilitator_id','!=','0')
+            ->where('facilitator_id', '!=', '0')
             ->orderByDesc('id')->get();
+
+
         $row = ['日期', '装卸队', '数量', '单位', '单价', '总金额合计'];
         $json = app('DischargeTaskService')->getFacilitatorStatementsJson($facilitatorStatements);
         return app(ExportService::class)->json($row, $json, "装卸队对账单报表");
     }
 
+
 }

+ 4 - 2
database/factories/DischargeTaskFactory.php

@@ -8,7 +8,7 @@ use Illuminate\Database\Eloquent\Factory;
 
 $factory->define(DischargeTask::class, function (Faker $faker) {
     return [
-         'owner_id' => $faker->numberBetween(0, 10),
+         'owner_id' => $faker->numberBetween(1, 10),
         'type' => $faker->numberBetween(0, 1),
         'numbers' => $faker->name(11),
         'status' => $faker->numberBetween(0, 3),
@@ -17,11 +17,13 @@ $factory->define(DischargeTask::class, function (Faker $faker) {
         'income_unit_price' => $faker->numberBetween(0, 10),
         'income_total_cost' => $faker->numberBetween(0, 100),
         'income_remark' => $faker->title(),
-        'discharge_provider_id' => $faker->numberBetween(0, 10),
+        'facilitator_id' => $faker->numberBetween(1, 2),
         'expenditure_amount' => $faker->numberBetween(0, 20),
         'expenditure_unit' => $faker->numberBetween(0, 2),
         'expenditure_unit_price' => $faker->numberBetween(0, 10),
         'expenditure_total_cost' => $faker->numberBetween(0, 100),
         'expenditure_remark' => $faker->title(),
+        'created_at' => $faker->dateTime(),
+        'updated_at' => $faker->dateTime(),
     ];
 });

+ 1 - 1
database/seeds/DischargeTaskSeeder.php

@@ -12,7 +12,7 @@ class DischargeTaskSeeder extends Seeder
      */
     public function run()
     {
-        $params = factory(DischargeTask::class)->times(50)->make()->toArray();
+        $params = factory(DischargeTask::class)->times(100)->make()->toArray();
         DischargeTask::query()->insert($params);
     }
 }

+ 2 - 1
routes/apiLocal.php

@@ -155,9 +155,10 @@ Route::group(['prefix' => 'configuration'], function () {
     Route::delete('{id}', 'ConfigurationController@destroyApi');
 });
 
-/** 服务商 */
+/** 装卸队 */
 Route::group(['prefix' => 'facilitator'], function () {
     Route::post('store', 'FacilitatorController@storeApi')->name('facilitator.storeApi');
     Route::put('update', 'FacilitatorController@updateApi')->name('facilitator.updateApi');
     Route::delete('destroy', 'FacilitatorController@destroyApi')->name('facilitator.destroyApi');
+    Route::post('gainStatement', 'FacilitatorController@gainStatementApi')->name('facilitator.gainStatementApi');
 });