|
|
@@ -6,30 +6,38 @@ use App\Components\AsyncResponse;
|
|
|
use App\Facilitator;
|
|
|
use App\DischargeTask;
|
|
|
use App\Filters\DischargeTaskFilters;
|
|
|
+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\Support\Facades\Gate;
|
|
|
|
|
|
class DischargeTaskController extends Controller
|
|
|
{
|
|
|
use AsyncResponse;
|
|
|
- public function index(Request $request,DischargeTaskFilters $filters)
|
|
|
+
|
|
|
+ public function index(Request $request, DischargeTaskFilters $filters)
|
|
|
{
|
|
|
- // 权限 ***
|
|
|
- $dischargeTasks = DischargeTask::query()->with(['facilitator','owner'])->filter($filters)->orderByDesc('id')->paginate($request['paginate'] ?? 50);
|
|
|
+ if (!Gate::allows('运输管理-卸货-查询')) {
|
|
|
+ return redirect(url('/'));
|
|
|
+ }
|
|
|
+ $dischargeTasks = DischargeTask::query()->with(['facilitator', 'owner'])->filter($filters)->orderByDesc('id')->paginate($request['paginate'] ?? 50);
|
|
|
$owners = app(OwnerService::class)->getAuthorizedOwners();
|
|
|
- $facilitators = Facilitator::query()->select('name','id')->get();
|
|
|
- return view('transport.discharge.task.index',compact('dischargeTasks','owners','facilitators'));
|
|
|
+ $facilitators = Facilitator::query()->select('name', 'id')->get();
|
|
|
+ return view('transport.discharge.task.index', compact('dischargeTasks', 'owners', 'facilitators'));
|
|
|
}
|
|
|
|
|
|
// 结算报表
|
|
|
- public function statementIndex(Request $request,DischargeTaskFilters $filters)
|
|
|
+ public function statementIndex(Request $request, DischargeTaskFilters $filters)
|
|
|
{
|
|
|
- // 权限 ***
|
|
|
- $dischargeStatements = DischargeTask::query()->with('facilitator')->filter($filters)->orderBy('id')->paginate($request['paginate'] ?? 50);
|
|
|
+ if (!Gate::allows('运输管理-卸货-结算报表-查询')) {
|
|
|
+ return redirect(url('/'));
|
|
|
+ }
|
|
|
+ $dischargeStatements = DischargeTask::query()->with('facilitator')->filter($filters)->orderBy('id')->paginate($request['paginate'] ?? 50);
|
|
|
$owners = app(OwnerService::class)->getAuthorizedOwners();
|
|
|
- $facilitators = Facilitator::query()->select('name','id')->get();
|
|
|
- return view('transport.discharge.statement.index',compact('dischargeStatements','owners','facilitators'));
|
|
|
+ $facilitators = Facilitator::query()->select('name', 'id')->get();
|
|
|
+ return view('transport.discharge.statement.index', compact('dischargeStatements', 'owners', 'facilitators'));
|
|
|
}
|
|
|
|
|
|
|
|
|
@@ -44,11 +52,11 @@ class DischargeTaskController extends Controller
|
|
|
}
|
|
|
|
|
|
// async 创建
|
|
|
- public function storeApi(Request $request)
|
|
|
+ public function storeApi(DischargeTaskRequest $request)
|
|
|
{
|
|
|
- // 权限 ***
|
|
|
+ $this->gate('运输管理-卸货-创建');
|
|
|
$result = app('DischargeTaskService')->createTask($request->all());
|
|
|
- if($result['success'])$this->success($result['data']);
|
|
|
+ if ($result['success']) $this->success($result['data']);
|
|
|
$this->error('任务创建异常,刷新当前页面重试');
|
|
|
}
|
|
|
|
|
|
@@ -69,21 +77,24 @@ class DischargeTaskController extends Controller
|
|
|
}
|
|
|
|
|
|
// async 编辑
|
|
|
- public function updateApi(Request $request)
|
|
|
+ public function updateApi(DischargeTaskRequest $request)
|
|
|
{
|
|
|
- $dischargeTask = DischargeTask::query()->where('id',$request['id'])->first();
|
|
|
- $result = app('DischargeTaskService')->updateDischargeTask($dischargeTask,$request->all());
|
|
|
- if($result['success'])$this->success($result['data']);
|
|
|
+ $this->gate('运输管理-卸货-编辑');
|
|
|
+ $dischargeTask = DischargeTask::query()->where('id', $request['id'])->first();
|
|
|
+ $result = app('DischargeTaskService')->updateDischargeTask($dischargeTask, $request->all());
|
|
|
+ if ($result['success']) $this->success($result['data']);
|
|
|
else $this->error($request['message'] ?? '操作异常,请刷新页面重试');
|
|
|
}
|
|
|
|
|
|
// 修改任务服务商
|
|
|
- public function updateTaskProviderApi(Request $request)
|
|
|
+ public function updateTaskFacilitatorApi(DischargeTaskRequest $request)
|
|
|
{
|
|
|
- // 权限 ***
|
|
|
- $dischargeTask = DischargeTask::query()->where('id',$request['id'])->first();
|
|
|
- $result = app('DischargeTaskService')->updateTaskProvider($dischargeTask,$request->all());
|
|
|
- if($result['success'])$this->success($result['data']);
|
|
|
+ $this->gate('运输管理-卸货-编辑');
|
|
|
+ /** @var DischargeTask $dischargeTask */
|
|
|
+ $dischargeTask = DischargeTask::query()->where('id', $request['id'])->first();
|
|
|
+ if (!$dischargeTask) $this->error('没有找对应的卸货任务');
|
|
|
+ $result = app('DischargeTaskService')->updateTaskFacilitator($dischargeTask, $request->all());
|
|
|
+ if ($result['success']) $this->success($result['data']);
|
|
|
else $this->error($result['message'] ?? '操作异常,请刷新页面重试');
|
|
|
}
|
|
|
|
|
|
@@ -93,44 +104,48 @@ class DischargeTaskController extends Controller
|
|
|
}
|
|
|
|
|
|
// async 删除
|
|
|
- public function destroyApi(Request $request)
|
|
|
+ public function destroyApi(DischargeTaskRequest $request)
|
|
|
{
|
|
|
- // 权限 ***
|
|
|
+ $this->gate('运输管理-卸货-删除');
|
|
|
/** @var DischargeTask $dischargeTask */
|
|
|
- $dischargeTask = DischargeTask::query()->where('id',$request['id'])->first();
|
|
|
+ $dischargeTask = DischargeTask::query()->where('id', $request['id'])->first();
|
|
|
$result = app('DischargeTaskService')->deleteDischargeTask($dischargeTask);
|
|
|
- if($result['success'])$this->success();
|
|
|
+ if ($result['success']) $this->success();
|
|
|
else $this->error($result['message']);
|
|
|
}
|
|
|
|
|
|
-
|
|
|
-
|
|
|
// 执行任务
|
|
|
- public function executingTaskApi(Request $request)
|
|
|
+ public function executingTaskApi(DischargeTaskRequest $request)
|
|
|
{
|
|
|
- $dischargeTask = DischargeTask::query()->where('id',$request['id'])->first();
|
|
|
- $result = app('DischargeTaskService')->updateTaskProvider($dischargeTask,$request->all());
|
|
|
- if($result['success'])$this->success($result['data']);
|
|
|
+ $this->gate('运输管理-卸货-编辑');
|
|
|
+ $dischargeTask = DischargeTask::query()->where('id', $request['id'])->first();
|
|
|
+ $result = app('DischargeTaskService')->updateTaskProvider($dischargeTask, $request->all());
|
|
|
+ if ($result['success']) $this->success($result['data']);
|
|
|
$this->error($result['message'] ?? '操作异常,请刷新页面重试');
|
|
|
}
|
|
|
|
|
|
-
|
|
|
- // 卸货任务文件下载
|
|
|
- public function export(Request $request,DischargeTaskFilters $filters)
|
|
|
+ // 卸货任务下载
|
|
|
+ public function export(Request $request, DischargeTaskFilters $filters): string
|
|
|
{
|
|
|
- $dischargeTasks = DischargeTask::query()->with(['Facilitator','owner'])->filter($filters)->orderByDesc('id')->get();
|
|
|
- $row = ['日期','客户名称','作业名称','入库单号','数量','单位','单价','收费','状态','备注'];
|
|
|
- $json = app('DischargeTaskService')->getJson($dischargeTasks);
|
|
|
- return app(ExportService::class)->json($row,$json,"卸货任务");
|
|
|
+ if (!Gate::allows('运输管理-卸货-查询')) {
|
|
|
+ return '没有权限';
|
|
|
+ }
|
|
|
+ $dischargeTasks = DischargeTask::query()->with(['Facilitator', 'owner'])->filter($filters)->orderByDesc('id')->get();
|
|
|
+ $row = ['日期', '客户名称', '作业名称', '入库单号', '数量', '单位', '单价', '收费', '状态', '备注'];
|
|
|
+ $json = app('DischargeTaskService')->getJson($dischargeTasks);
|
|
|
+ return app(ExportService::class)->json($row, $json, "卸货任务");
|
|
|
}
|
|
|
|
|
|
// 结算报表下载
|
|
|
- public function exportStatements(Request $request,DischargeTaskFilters $filters)
|
|
|
+ public function exportStatements(Request $request, DischargeTaskFilters $filters): string
|
|
|
{
|
|
|
- $dischargeTasks = DischargeTask::query()->with(['facilitator','owner'])->filter($filters)->orderByDesc('id')->get();
|
|
|
- $row = ['日期','客户名称','作业名称','入库单号','数量','单位','收入单价','收入合计','服务商','数量','单位','支出单价','支出合计','状态','收入备注','支出备注'];
|
|
|
- $json = app('DischargeTaskService')->getStatementsJson($dischargeTasks);
|
|
|
- return app(ExportService::class)->json($row,$json,"卸货结算报表");
|
|
|
+ if (!Gate::allows('运输管理-卸货-结算报表-查询')) {
|
|
|
+ return '没有权限';
|
|
|
+ }
|
|
|
+ $dischargeTasks = DischargeTask::query()->with(['facilitator', 'owner'])->filter($filters)->orderByDesc('id')->get();
|
|
|
+ $row = ['日期', '客户名称', '作业名称', '入库单号', '数量', '单位', '收入单价', '收入合计', '服务商', '数量', '单位', '支出单价', '支出合计', '状态', '收入备注', '支出备注'];
|
|
|
+ $json = app('DischargeTaskService')->getStatementsJson($dischargeTasks);
|
|
|
+ return app(ExportService::class)->json($row, $json, "卸货结算报表");
|
|
|
}
|
|
|
|
|
|
}
|