issueTypeService->firstOrCreate(['name' => '破损']); $orderQuery = Order::query()->select('id')->where('code',$nos); $workOrder = WorkOrder::query()->select('id')->whereIn('order_id',$orderQuery)->first(); if (!$workOrder) return false; return WorkOrderDetail::query() ->where('order_issue_type_id',$issueType['id']) ->where('work_order_id',$workOrder['id'])->exists(); } /* * 破损工单处理流程 * 1:创建工单 * 2:快递处理 * 3: 宝时终审 */ public function store($params) { $issueType = $this->issueTypeService->firstOrCreate(['name' => '破损']); $order = $this->syncOrder($params['order_no']); $workOrder = $this->createAndNotification($order, $issueType, $params['remark'] ?? ''); $process_progress = '商家创建'; $workOrder->update([ 'status'=> WorkOrder::$LOGISTIC_HANDLER_STATUS, 'process_progress' => $process_progress, 'last_status' => WorkOrder::$DEFAULT_STATUS, 'logistic_tag' => WorkOrder::$NEW_TAG, 'owner_tag' => WorkOrder::$DEFAULT_TAG, 'bao_shi_tag' => WorkOrder::$DEFAULT_TAG, 'last_handler_id' => Auth::id(), ]); $detail = $this->detailService->createWorkOrderDetail($workOrder, $params); $detail->update([ 'status'=> WorkOrder::$LOGISTIC_HANDLER_STATUS, 'process_progress' => $process_progress, 'last_status' => WorkOrder::$DEFAULT_STATUS, 'work_order_status' => 0, 'logistic_handle_tag' =>0, ]); $detail->processLogs()->create([ 'work_order_id' => $detail->work_order_id, 'work_order_detail_id' => $detail->id, 'user_id' => Auth::id(), 'content' => $process_progress.'-破损', 'status' => '未同步', 'type' => '创建', ]); $this->logService->createLog($detail, '创建', '创建工单'); $this->sendSWNSMessage($workOrder); } /** * 货主编辑以创建工单 * @param WorkOrderDetail $detail * @param $params */ public function ownerEdit(WorkOrderDetail $detail,$params) { $this->detailService->updateDetail($detail, $params); $process_progress = '商家创建'; $detail->update([ 'status'=> WorkOrder::$LOGISTIC_HANDLER_STATUS, 'process_progress' => $process_progress, 'last_status' => WorkOrder::$DEFAULT_STATUS, 'logistic_handle_tag' =>0, ]); $detail->workOrder()->update([ 'status'=> WorkOrder::$LOGISTIC_HANDLER_STATUS, 'process_progress' => $process_progress, 'last_status' => WorkOrder::$DEFAULT_STATUS, 'work_order_status' => 0, 'last_handler_id' => Auth::id(), ]); $detail->processLogs()->create([ 'work_order_id' => $detail->work_order_id, 'work_order_detail_id' => $detail->id, 'user_id' => Auth::id(), 'content' => '商家重编辑', 'status' => '未同步', 'type' => '处理', ]); $this->logService->createLog($detail, '处理', '货主编辑'); } /** * 承运商处理 和 编辑 * @param WorkOrderDetail $detail * @param $params */ public function logisticHandle(WorkOrderDetail $detail, $params) { $this->detailService->updateDetail($detail, $params); $process_progress = $params['process_progress']; $detail->update([ 'status' => WorkOrder::$BAO_SHI_REVIEW_STATUS, 'process_progress' => $process_progress, 'last_status' => WorkOrder::$LOGISTIC_HANDLER_STATUS, 'logistic_handle_tag' =>0, ]); $detail->workOrder()->update([ 'status' => WorkOrder::$BAO_SHI_REVIEW_STATUS, 'process_progress' => $process_progress, 'last_status' => WorkOrder::$LOGISTIC_HANDLER_STATUS, 'bao_shi_tag' => WorkOrder::$STRAND_TAG, 'logistic_tag' => WorkOrder::$DEFAULT_TAG, 'owner_tag' => WorkOrder::$DEFAULT_TAG, 'work_order_status' => 0, 'last_handler_id' => Auth::id(), ]); $detail->processLogs()->create([ 'work_order_id' => $detail->work_order_id, 'work_order_detail_id' => $detail->id, 'user_id' => Auth::id(), 'content' => $process_progress, 'status' => '未同步', 'type' => '处理', ]); $this->logService->createLog($detail, '处理', $process_progress.'-承运商处理'); } /** * 宝时终审 * @param WorkOrderDetail $detail * @param $params */ public function baoShiReview(WorkOrderDetail $detail, $params) { $this->detailService->updateDetail($detail, $params); $process_progress = $params['process_progress']; $detail->update([ 'status' => WorkOrder::$TO_BO_OWNER_END_STATUS, 'process_progress' => $process_progress, 'last_status' => WorkOrder::$BAO_SHI_REVIEW_STATUS, 'logistic_handle_tag' =>0, ]); $detail->workOrder()->update([ 'status' => WorkOrder::$TO_BO_OWNER_END_STATUS, 'process_progress' => $process_progress, 'last_status' => WorkOrder::$BAO_SHI_REVIEW_STATUS, 'owner_tag' => WorkOrder::$STRAND_TAG, 'logistic_tag' => WorkOrder::$DEFAULT_TAG, 'bao_shi_tag' => WorkOrder::$DEFAULT_TAG, 'work_order_status' => 0, 'last_handler_id' => Auth::id(), ]); $detail->processLogs()->create([ 'work_order_id' => $detail->work_order_id, 'work_order_detail_id' => $detail->id, 'user_id' => Auth::id(), 'content' => $process_progress.'-完结', 'status' => '未同步', 'type' => '完结', ]); $this->endOrderIssueAndSyncProcessLogs($detail); $this->logService->createLog($detail, '终审', $process_progress.'-宝时终审'); } }