filter($filters)->with('type', 'childType', 'creator', 'order.packages','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 show(WorkOrder $workOrder) { // } public function edit(WorkOrder $workOrder) { // } public function update(Request $request, WorkOrder $workOrder) { // } public function destroy(WorkOrder $workOrder) { // } }