filter($filters)->with(['type', 'childType', 'creator','order'=>function($query){ /** @var $query Builder */ $query->with('packages','issue'); },'order.issue', 'reviewer'])->orderByDesc('created_at', 'grad', 'status')->paginate($request['paginate'] ?? 50); return view('order.workOrder.index', compact('workOrders')); } 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->createWordOrder($request->all()); $workOrderTypes = WorkOrderType::query()->with('childTypes')->get(); $grads = WorkOrder::$enums['grad']; array_shift($grads); return view('order.workOrder.create', compact('workOrderTypes', 'result', 'grads')); } // 创建 public function storeApi(Request $request): array { if (!Gate::allows('订单管理-订单-生成工单')) return ['success' => false, 'message' => '没有对应的创建权限']; $order_nos = $request['order_nos']; app(OrderService::class)->syncOrderInfoByWmsOrderNos($order_nos); $orders = Order::query()->whereIn('code', $order_nos)->get(); $work_orders = WorkOrder::query()->with('order')->where('outer_table_name', 'orders')->whereIn('outer_table_id', $orders->map(function ($item) { return $item['id']; }))->get(); $exists_nos = $work_orders->map(function ($item) { return $item->order->code; }); if (count($exists_nos) > 0) return ['success' => false, 'message' => join(',', $exists_nos->toArray()) . ' 已有对应的工单']; $inner_params = []; $creator_id = Auth::user()['id']; $work_order_type = WorkOrderType::query()->firstOrCreate(['name' => '订单']); $work_order_child_type = WorkOrderChildType::query()->firstOrCreate(['name' => '拦截', 'work_order_type_id' => $work_order_type['id'], 'table_name' => 'orders']); $datetime = Carbon::now(); foreach ($orders as $order) { $inner_params[] = [ 'work_order_type_id' => $work_order_type['id'], 'work_order_child_type_id' => $work_order_child_type['id'], 'outer_table_name' => $work_order_child_type['table_name'], 'outer_table_id' => $order['id'], 'remark' => "拦截订单:{$order['code']}", 'creator_id' => $creator_id, 'grad' => $request['grad'] ?? 1, 'status' => 1, 'updated_at' => $datetime, 'created_at' => $datetime, ]; } WorkOrder::query()->insert($inner_params); return ['success' => true]; } // 审核 public function reviewApi(Request $request, WorkOrderService $service): array { if (!Gate::allows('订单管理-工单处理-审核')) return ['success' => false, 'message' => '没有对应的编辑权限']; $workOrder = WorkOrder::query()->find($request['id']); return $service->reviewWordOrder($workOrder); } /** * 生成对应问题件 */ 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->orderIssueByWorkOrder($work_orders); } public function show(WorkOrder $workOrder) { // } public function edit(WorkOrder $workOrder) { // } public function update(Request $request, WorkOrder $workOrder) { // } public function destroy(WorkOrder $workOrder) { // } }