make('Illuminate\Contracts\Console\Kernel')->bootstrap(); use App\Models\Adverse; use App\Models\Project; use App\Models\Orders; use Carbon\Carbon; echo "开始插入不良事件测试数据...\n"; // 检查是否有项目和订单数据 $projects = Project::all(); if ($projects->isEmpty()) { echo "错误:没有找到项目数据,请先创建项目\n"; exit(1); } $orders = Orders::all(); if ($orders->isEmpty()) { echo "错误:没有找到订单数据,请先创建订单\n"; exit(1); } echo "找到 " . $projects->count() . " 个项目\n"; echo "找到 " . $orders->count() . " 个订单\n"; // 不良事件类型 $types = [ 'safety' => '意外事件', 'complaint' => '沟通事件', 'other' => '其他' ]; // 状态列表 $statuses = [ 'pending' => '待处理', 'processing' => '处理中', 'solved' => '已解决', 'closed' => '已关闭' ]; // 事件描述模板 $descriptions = [ '患者反映护工服务态度不佳,存在沟通问题', '护工未按时到达,影响患者正常护理', '患者家属投诉护工专业技能不足', '护工在护理过程中出现操作失误', '患者反映护工个人卫生问题', '护工与患者家属发生言语冲突', '护工未按照医嘱执行护理操作', '患者反映护工工作态度消极', '护工在护理过程中造成患者轻微受伤', '患者家属对护工服务不满意', '护工未及时报告患者异常情况', '护工在护理过程中使用手机影响工作', '患者反映护工专业知识欠缺', '护工未按规定时间进行护理记录', '患者家属投诉护工服务态度恶劣' ]; // 解决结果模板 $solvedResults = [ '已对护工进行批评教育,要求改进服务态度', '已安排经验丰富的护工接替,确保服务质量', '已对护工进行专业技能培训,提升护理水平', '已对护工进行安全教育,避免类似事件发生', '已要求护工严格遵守个人卫生规范', '已对护工进行沟通技巧培训,改善服务态度', '已对护工进行规范化操作培训', '已对护工进行职业道德教育', '已对护工进行安全操作培训,确保患者安全', '已安排护工与患者家属沟通,化解矛盾', '已建立护工定期报告制度,及时发现问题', '已制定护工工作纪律,禁止工作时间使用手机', '已对护工进行专业知识培训', '已建立护理记录检查制度,确保及时记录', '已对护工进行服务态度培训,提升服务质量' ]; // 经办人列表 $handlers = [ '张主任', '李护士长', '王管理员', '刘主管', '陈经理' ]; // 创建30条测试数据 $count = 0; for ($i = 1; $i <= 30; $i++) { $project = $projects->random(); $order = $orders->where('project_id', $project->id)->first(); $type = array_rand($types); $status = array_rand($statuses); $description = $descriptions[array_rand($descriptions)]; $data = [ 'project_id' => $project->id, 'order_id' => $order ? $order->id : null, 'type' => $type, 'description' => $description, 'solved_status' => $status, 'solved_by' => $handlers[array_rand($handlers)], 'created_at' => Carbon::now()->subDays(rand(1, 90)), 'updated_at' => Carbon::now()->subDays(rand(1, 90)) ]; // 如果已解决,设置解决时间和结果 if (in_array($status, ['solved', 'closed'])) { $data['solved_at'] = Carbon::now()->subDays(rand(1, 30)); $data['solved_result'] = $solvedResults[array_rand($solvedResults)]; } try { Adverse::create($data); $count++; echo "已创建第 {$count} 条数据\n"; } catch (Exception $e) { echo "创建第 {$i} 条数据失败: " . $e->getMessage() . "\n"; } } echo "完成!成功创建 {$count} 条不良事件测试数据\n";