Browse Source

Merge branch 'zengjun' of ssh://was.baoshi56.com:10022/var/git/bswas

LD 5 năm trước cách đây
mục cha
commit
22d40c99e0

+ 6 - 9
app/Http/Controllers/DischargeTaskController.php

@@ -10,7 +10,7 @@ use App\Http\Requests\DischargeTask\DischargeTaskRequest;
 use App\Services\common\ExportService;
 use App\Services\OwnerService;
 use Illuminate\Http\Request;
-use Illuminate\Support\Facades\Auth;
+use Illuminate\Http\Response;
 use Illuminate\Support\Facades\Gate;
 
 class DischargeTaskController extends Controller
@@ -125,11 +125,9 @@ class DischargeTaskController extends Controller
     }
 
     // 卸货任务下载
-    public function export(Request $request, DischargeTaskFilters $filters): string
+    public function export(Request $request, DischargeTaskFilters $filters)
     {
-        if (!Gate::allows('运输管理-卸货-查询')) {
-            return '没有权限';
-        }
+        $this->gate('运输管理-卸货-查询');
         $dischargeTasks = DischargeTask::query()->with(['Facilitator', 'owner'])->filter($filters)->orderByDesc('id')->get();
         $row = ['日期', '客户名称', '作业名称', '入库单号', '数量', '单位', '单价', '收费', '状态', '备注'];
         $json = app('DischargeTaskService')->getJson($dischargeTasks);
@@ -137,11 +135,10 @@ class DischargeTaskController extends Controller
     }
 
     // 结算报表下载
-    public function exportStatements(Request $request, DischargeTaskFilters $filters): string
+    public function exportStatements(Request $request, DischargeTaskFilters $filters)
     {
-        if (!Gate::allows('运输管理-卸货-结算报表-查询')) {
-            return '没有权限';
-        }
+        $this->gate('运输管理-卸货-结算报表-查询');
+
         $dischargeTasks = DischargeTask::query()->with(['facilitator', 'owner'])->filter($filters)->orderByDesc('id')->get();
         $row = ['日期', '客户名称', '作业名称', '入库单号', '数量', '单位', '收入单价', '收入合计', '服务商', '数量', '单位', '支出单价', '支出合计', '状态', '收入备注', '支出备注'];
         $json = app('DischargeTaskService')->getStatementsJson($dischargeTasks);

+ 15 - 15
app/Http/Controllers/FacilitatorController.php

@@ -8,6 +8,7 @@ use App\DischargeTask;
 use App\Filters\DischargeTaskFilters;
 use App\Http\Requests\DischargeTask\FacilitatorRequest;
 use App\Services\common\ExportService;
+use Illuminate\Database\Eloquent\Collection;
 use Illuminate\Http\Request;
 use Illuminate\Support\Facades\Gate;
 
@@ -31,22 +32,23 @@ class FacilitatorController extends Controller
         if (!Gate::allows('服务商-对账单-查询')) {
             return redirect(url('/'));
         }
-        $facilitatorStatements = DischargeTask::query()->with('facilitator')
-            ->whereNotNull('facilitator_id')
+        $facilitatorStatements = DischargeTask::query()
+            ->filter($filters)
+            ->with('facilitator')
             ->select(['id', 'facilitator_id', 'expenditure_amount', 'expenditure_unit', 'expenditure_unit_price', 'expenditure_total_cost', 'expenditure_remark', 'created_at'])
-            ->filter($filters)->orderByDesc('id')->paginate($request['paginate'] ?? 50);
+            ->whereNotNull('facilitator_id')
+            ->where('facilitator_id','!=','0')
+            ->orderByDesc('id')->paginate($request['paginate'] ?? 50);
         $facilitators = Facilitator::query()->get();
         return view('transport.discharge.facilitator.index', compact('facilitatorStatements', 'facilitators'));
     }
 
     public function create()
     {
-        //
     }
 
     public function store(Request $request)
     {
-        //
     }
 
     public function storeApi(FacilitatorRequest $request)
@@ -58,17 +60,14 @@ class FacilitatorController extends Controller
 
     public function show(Facilitator $facilitator)
     {
-        //
     }
 
     public function edit(Facilitator $facilitator)
     {
-        //
     }
 
     public function update(Request $request, Facilitator $facilitator)
     {
-        //
     }
 
     public function updateApi(FacilitatorRequest $request)
@@ -81,8 +80,6 @@ class FacilitatorController extends Controller
 
     public function destroy(Facilitator $facilitator)
     {
-        //
-
     }
 
     public function destroyApi(FacilitatorRequest $request)
@@ -96,14 +93,17 @@ class FacilitatorController extends Controller
     // 对账单导出
     public function exportStatement(Request $request, DischargeTaskFilters $filters)
     {
-        // 权限 ***
         $this->gate('服务商-对账单-查询');
-        $dischargeTasks = DischargeTask::query()->with('facilitator')
-            ->whereNotNull('facilitator_id')
+        /** @var Collection $facilitatorStatements */
+        $facilitatorStatements = DischargeTask::query()
+            ->filter($filters)
+            ->with('facilitator')
             ->select(['id', 'facilitator_id', 'expenditure_amount', 'expenditure_unit', 'expenditure_unit_price', 'expenditure_total_cost', 'expenditure_remark', 'created_at'])
-            ->filter($filters)->orderByDesc('id')->get();
+            ->whereNotNull('facilitator_id')
+            ->where('facilitator_id','!=','0')
+            ->orderByDesc('id')->get();
         $row = ['日期', '服务商', '数量', '单位', '单价', '总金额合计'];
-        $json = app('DischargeTaskService')->getStatementsJson($dischargeTasks);
+        $json = app('DischargeTaskService')->getFacilitatorStatementsJson($facilitatorStatements);
         return app(ExportService::class)->json($row, $json, "服务商对账单报表");
     }
 

+ 3 - 1
app/Providers/AppServiceProvider.php

@@ -16,6 +16,7 @@ use App\Services\CustomerLogStatusService;
 use App\Services\CustomerService;
 use App\Services\DepositoryService;
 use App\Services\FacilitatorService;
+use App\Services\DischargeTaskDossierService;
 use App\Services\FeatureService;
 use App\Services\ForeignHaiRoboticsService;
 use App\Services\InventoryAccountMissionService;
@@ -168,8 +169,9 @@ class AppServiceProvider extends ServiceProvider
         app()->singleton('DeliveryAppointment',DeliveryAppointment::class);
         app()->singleton('DeliveryAppointmentService',DeliveryAppointmentService::class);
         app()->singleton('DepositoryService',DepositoryService::class);
-        app()->singleton('FacilitatorService',Facilitator::class);
+        app()->singleton('DischargeTaskDossierService',DischargeTaskDossierService::class);
         app()->singleton('DischargeTaskService',DischargeTaskService::class);
+        app()->singleton('FacilitatorService',FacilitatorService::class);
         app()->singleton('FeatureService',FeatureService::class);
         app()->singleton('ForeignHaiRoboticsService',ForeignHaiRoboticsService::class);
         app()->singleton('InventoryAccountMissionService',InventoryAccountMissionService::class);

+ 39 - 30
app/Services/DischargeTaskService.php

@@ -5,6 +5,7 @@ namespace App\Services;
 use App\Facilitator;
 use App\Traits\ServiceAppAop;
 use App\DischargeTask;
+use Carbon\Carbon;
 use Illuminate\Database\Eloquent\Collection;
 
 class DischargeTaskService
@@ -19,6 +20,7 @@ class DischargeTaskService
         if ($dischargeTask->status == 3) return ['success' => false, 'message' => '已完成的卸货任务不可进行编辑'];
         if(!empty($param['status']) && $param['status'] > 0 && $dischargeTask->facilitator_id == 0)
             return ['success' => false, 'message' => '未指定服务商的卸货任务,不可进行当前编辑'];
+        // 归档入口
         $bool = $dischargeTask->update($param);
         if ($bool){
             $dischargeTask->refresh();
@@ -46,7 +48,7 @@ class DischargeTaskService
         unset($param['owner'],$param['income_at']);
         if ($param['id']) unset($param['id']);
         if ($dischargeTask->status >= 1) return ['success' => false, 'message' => '当前任务状态不可修改'];
-        if (empty($param['expenditure_total_cost'])) $param['expenditure_total_cost'] = $param['expenditure_unit_price'] * $param['expenditure_amount'];
+        $param['expenditure_total_cost'] = $param['expenditure_unit_price'] * $param['expenditure_amount'];
         if (empty($param['expenditure_at'])) $param['expenditure_at'] = now();
         if (empty($param['status'])) $param['status'] = 1;
         $bool = $dischargeTask->update($param);
@@ -74,16 +76,19 @@ class DischargeTaskService
         $json = [];
         foreach ($dischargeTasks as $dischargeTask) {
             /** @var DischargeTask $dischargeTask */
+            /** @var Carbon $date */
+            $date = $dischargeTask['created_at'];
             $json[] = [
-                $dischargeTask->created_at,
+                $date->toDateTimeString(),
                 $dischargeTask->owner->name ?? '',
-                DischargeTask::types[$dischargeTask->type] ?? '',
-                $dischargeTask->numbers,
-                $dischargeTask->income_amount,
-                DischargeTask::units[$dischargeTask->unit] ?? '',
-                $dischargeTask->income_unit_price,
-                $dischargeTask->income_total_cost,
-                $dischargeTask->income_remark,
+                DischargeTask::types[$dischargeTask['type']] ?? '',
+                $dischargeTask->numbers ?? '',
+                ($dischargeTask['income_amount']).'',
+                DischargeTask::units[$dischargeTask['income_unit']] ?? '',
+                $dischargeTask->income_unit_price ?? '',
+                $dischargeTask->income_total_cost ?? '',
+                DischargeTask::status[$dischargeTask['status']] ?? '',
+                $dischargeTask->income_remark  ?? ' ',
             ];
         }
         return $json;
@@ -95,43 +100,47 @@ class DischargeTaskService
         $json = [];
         foreach ($dischargeTasks as $dischargeTask) {
             /** @var DischargeTask $dischargeTask */
+            /** @var Carbon $date */
+            $date = $dischargeTask['created_at'];
             $json[] = [
-                $dischargeTask->created_at,                         //日期
+                $date->toDateTimeString(),                          //日期
                 $dischargeTask->owner->name ?? '',                  // 客户名称
-                DischargeTask::types[$dischargeTask->type] ?? '',   // 作业名称
-                $dischargeTask->numbers,                            // 入库单号
+                DischargeTask::types[$dischargeTask['type']] ?? '',   // 作业名称
+                $dischargeTask['numbers'],                            // 入库单号
                 // --- 收入信息
-                $dischargeTask->income_amount,                                  // 数量
-                DischargeTask::units[$dischargeTask->income_unit] ?? '',        // 单位
-                $dischargeTask->income_unit_price,                              // 收入单价
-                $dischargeTask->income_total_cost,                              // 收入合计
+                ($dischargeTask['income_amount']).'',                                  // 数量
+                DischargeTask::units[$dischargeTask['income_unit']] ?? '',        // 单位
+                $dischargeTask['income_unit_price'],                              // 收入单价
+                $dischargeTask['income_total_cost'],                              // 收入合计
                 // --- 支出信息
                 $dischargeTask->facilitator->name ?? '',                  // 服务商
-                $dischargeTask->expenditure_amount,                             // 数量
-                DischargeTask::units[$dischargeTask->expenditure_unit] ?? '',   // 单位
-                $dischargeTask->expenditure_unit_price,                         // 支出单价
-                $dischargeTask->expenditure_total_cost,                         // 支出合计
+                ($dischargeTask['expenditure_amount']).'',                             // 数量
+                DischargeTask::units[$dischargeTask['expenditure_unit']] ?? '',   // 单位
+                $dischargeTask['expenditure_unit_price'],                         // 支出单价
+                $dischargeTask['expenditure_total_cost'],                         // 支出合计
                 // --- 其他信息
-                DischargeTask::status[$dischargeTask->status] ?? '',    // 状态
-                $dischargeTask->income_remark,                          // 收入备注
-                $dischargeTask->expenditure_remark,                     // 支出备注
+                DischargeTask::status[$dischargeTask['status']] ?? '',    // 状态
+                $dischargeTask->income_remark ?? '',                          // 收入备注
+                $dischargeTask->expenditure_remark ?? '',                     // 支出备注
             ];
         }
         return $json;
     }
 
     // 服务商对账单
-    public function getProviderStatementsJons(Collection $dischargeTasks): array
+    public function getFacilitatorStatementsJson(Collection $dischargeTasks): array
     {
         $json = [];
         foreach ($dischargeTasks as $dischargeTask) {
+            /** @var Carbon $date */
+            $date = $dischargeTask->created_at;
             $json[] = [
-                $dischargeTask->created_at,                         // 日期
-                $dischargeTask->dischargeProvider->name ?? '',      // 服务商
-                $dischargeTask->expenditure_amount,                             // 数量
-                DischargeTask::units[$dischargeTask->expenditure_unit] ?? '',   // 单位
-                $dischargeTask->expenditure_unit_price,                         // 支出单价
-                $dischargeTask->expenditure_total_cost,                         // 支出合计
+                $date->toDateTimeString(),                           // 日期
+                $dischargeTask->facilitator->name ?? '',      // 服务商
+                $dischargeTask['expenditure_amount'],                             // 数量
+                DischargeTask::units[$dischargeTask['expenditure_unit']] ?? '',   // 单位
+                $dischargeTask['expenditure_unit_price'],                         // 支出单价
+                $dischargeTask['expenditure_total_cost'],                         // 支出合计
             ];
         }
         return $json;

+ 1 - 1
database/migrations/2021_03_18_162505_create_discharge_tasks_table.php

@@ -17,7 +17,7 @@ class CreateDischargeTasksTable extends Migration
 
             $table->bigIncrements('id');
             $table->bigInteger('owner_id')->comment('货主id');
-            $table->bigInteger('facilitator_id')->comment('服务商');
+            $table->bigInteger('facilitator_id')->default(null)->comment('服务商');
 
             $table->tinyInteger('type')->comment('作业名称');
             $table->string('numbers')->comment('入库单号');

+ 7 - 2
resources/views/transport/discharge/facilitator/index.blade.php

@@ -17,8 +17,8 @@
                         data-toggle="dropdown" title="导出所有页将会以搜索条件得到的筛选结果,将其全部记录(每一页)导出">导出Excel
                 </button>
                 <div class="dropdown-menu">
-                    <a class="dropdown-item" @click="providerExport(false)" href="javascript:">导出勾选内容</a>
-                    <a class="dropdown-item" @click="providerExport(true)" href="javascript:">导出所有页</a>
+                    <a class="dropdown-item" @click="Export(false)" href="javascript:">导出勾选内容</a>
+                    <a class="dropdown-item" @click="Export(true)" href="javascript:">导出所有页</a>
                 </div>
             </span>
             @include('transport.discharge.facilitator._table')
@@ -93,6 +93,11 @@
                         });
                     }
                 },
+                Export(isExportAll) {
+                    let url = '{{url('transport/discharge/facilitator/export')}}';
+                    let token = '{{ csrf_token() }}';
+                    excelExport(isExportAll, this.checkData, url, this.sum, token);
+                },
             }
         })
     </script>

+ 1 - 1
resources/views/transport/discharge/statement/index.blade.php

@@ -99,7 +99,7 @@
                     }
                 },
                 StatementsExport(isExportAll) {
-                    let url = '{{url('transport/discharge/facilitator/export')}}';
+                    let url = '{{url('transport/discharge/statement/export')}}';
                     let token = '{{ csrf_token() }}';
                     excelExport(isExportAll, this.checkData, url, this.sum, token);
                 }

+ 3 - 2
routes/web.php

@@ -297,16 +297,17 @@ Route::group(['prefix'=>'transport'],function(){
         /** 卸货任务 */
         Route::group(['prefix'=>'task'],function(){
             Route::get('index','DischargeTaskController@index');
+            Route::any('export','DischargeTaskController@export');
         });
         /** 结算报表 */
         Route::group(['prefix'=>'statement'],function(){
             Route::get('index','DischargeTaskController@statementIndex');
-            Route::get('export','DischargeTaskController@exportStatement');
+            Route::any('export','DischargeTaskController@exportStatements');
         });
         /** 服务商  对账单*/
         Route::group(['prefix'=>'facilitator'],function(){
             Route::get('index','FacilitatorController@statementIndex');
-            Route::get('export','FacilitatorController@exportStatement');
+            Route::any('export','FacilitatorController@exportStatement');
         });
     });
 });