filter($filters)->with(['type', 'creator', 'order' => function ($query) { /** @var $query Builder */ $query->with('packages', 'issue', 'logistic'); }, 'reviewer'])->orderByDesc('created_at', 'grad', 'status')->paginate($request['paginate'] ?? 50); $logistics = Logistic::all(); return view('order.workOrder.index', compact('workOrders', 'logistics')); } public function create() { if (!Gate::allows('订单管理-工单处理-创建')) return redirect('/'); $workOrderTypes = WorkOrderType::query()->with('childTypes')->get(); $grads = WorkOrder::$enums['grad']; array_shift($grads); return view('order.workOrder.create', compact('workOrderTypes', 'grads')); } public function store(Request $request, WorkOrderService $service) { if (!Gate::allows('订单管理-工单处理-创建')) return redirect('/'); $result = $service->create($request->all()); $workOrderTypes = WorkOrderType::query()->with('childTypes')->get(); $grads = WorkOrder::$enums['grad']; array_shift($grads); return view('order.workOrder.create', compact('workOrderTypes', 'result', 'grads')); } /** * 生成订单拦截工单 * @param Request $request * @param WorkOrderService $service * @return array */ public function interceptOrderApi(Request $request, WorkOrderService $service): array { if (!Gate::allows('订单管理-订单-生成工单')) return ['success' => false, 'message' => '没有对应的创建权限']; $uniquely_tags = $request['order_nos']; $work_order_type = app(WorkOrderTypeService::class)->findOrCreate('订单拦截', 'orders', '订单', '订单拦截'); $result = $service->exists($work_order_type['id'], $uniquely_tags); // 检查订单号和工单类型是否有对应的工单 if ($result['success']) return ['success' => false, 'message' => join(",", array($result['data'])) . "已有对应的订单拦截工单"]; return $service->interceptOrder($work_order_type, $uniquely_tags, $request['grad']); } /** * 生成订单修改工单 * @param Request $request * @param WorkOrderService $service * @return array */ public function editOrderReceiveInfoApi(Request $request,WorkOrderService $service): array { if (!Gate::allows('订单管理-订单-生成工单')) return ['success' => false, 'message' => '没有对应的创建权限']; if (is_array($request['order_nos'])) return ['success' => false,'message' => '参数错误']; $uniquely_tag = $request['order_nos']; $work_order_type = app(WorkOrderTypeService::class)->findOrCreate('订单收件信息修改', 'orders', '订单', '订单收件信息修改'); $result = $service->exists($work_order_type['id'], $uniquely_tag); // 检查订单号和工单类型是否有对应的工单 if($result['success']) return ['success' => false,'message' => join(",", array($result['data'])) . "已有对应的订单信息修改工单"]; return $service->editOrder($work_order_type,$uniquely_tag,$request['remake']); } /** * 工单审核 * @param Request $request * @param WorkOrderService $service * @return array */ public function reviewApi(Request $request, WorkOrderService $service): array { if (!Gate::allows('订单管理-工单处理-审核')) return ['success' => false, 'message' => '没有对应的编辑权限']; $workOrder = WorkOrder::query()->find($request['id']); return $service->review($workOrder); } /** * 生成问题件 * @param Request $request * @param WorkOrderService $service * @return array */ public function createOrderIssueApi(Request $request, WorkOrderService $service): array { if (!Gate::allows('订单管理-订单问题件生成')) return ['success' => false, 'message' => '没有对应权限']; $work_orders = WorkOrder::query()->whereIn('id', $request['ids'])->get(); if (count($work_orders) == 0) return ['success' => false, 'message' => '刷新当前页面重试']; return $service->createOrderIssue($work_orders); } public function show(WorkOrder $workOrder) { // } public function edit(WorkOrder $workOrder) { // } public function update(Request $request, WorkOrder $workOrder) { // } public function destroy(WorkOrder $workOrder) { // } }