processLogs()->create([ 'work_order_detail_id' => $detail->id, 'work_order_id' => $detail->work_order_id, 'content' => $params['content'], 'user_id' => Auth::id(), ]); /** @var WorkOrder $work_order */ $work_order = $detail->workOrder; if (in_array($work_order->status,['宝时处理','宝时终审']) && $work_order->bao_shi_tag != 1){ $detail->workOrder()->whereIn('status',[1,4])->update(['bao_shi_tag' => 1]); } else if (in_array($work_order->status,['承运商处理']) && $work_order->logistic_tag != 1){ $detail->workOrder()->where('status',3)->update(['logistic_tag' => 1]); } else if (in_array($work_order->status,['货主处理','待货主完结']) && $work_order->owner_tag != 1){ $detail->workOrder()->whereIn('status',[2,6])->update(['owner_tag' => 1]); } $process_log->setAttribute('user',$user); return $process_log; } /** * 批量创建处理日志 * @param $workOrders * @param $params * @return array */ public function batchCreateProcessLog($workOrders,$params): array { $user = Auth::user(); $process_logs = []; foreach ($workOrders as $workOrder){ $detail = $workOrders->toBeProcessDetail(); $process_logs[] = $this->createProcessLog($detail,$params,$user); } return $process_logs; } /** * 将工单的处理结果同步到问题件的处理结果 * @param OrderIssue $orderIssue * @param WorkOrderDetail $detail */ public function syncOrderIssue(OrderIssue $orderIssue,WorkOrderDetail $detail) { $logs = $detail->processLogs()->where('status', '未同步')->get(); $orderIssue->logs()->insert($logs->map(function($log)use($orderIssue){ return [ 'order_issue_id' => $orderIssue->id, 'context' => $log->context, 'user_id' => $log->user_id, 'create_at' => $log->created_at, ]; })->toArray()); } }