diff --git a/app/Http/Controllers/Admin/OtherController.php b/app/Http/Controllers/Admin/OtherController.php index 41237bc..b73a9a7 100755 --- a/app/Http/Controllers/Admin/OtherController.php +++ b/app/Http/Controllers/Admin/OtherController.php @@ -1483,6 +1483,9 @@ class OtherController extends CommonController $users = CourseSign::companyJoin($start_date, $end_date, $course_ids, true, true); // 加载关联关系 $users->load('company'); + + // 当前学员数据 + $currentData = []; foreach ($users as $user) { // 获取该学员的课程报名记录 // 使用与 companyJoin 方法完全相同的 getStudentList 逻辑,确保数据一致 @@ -1504,7 +1507,7 @@ class OtherController extends CommonController // 报名课程数 $courseCount = $userCourseSigns->count(); - $data[] = [ + $currentData[] = [ 'user_name' => $user->name ?? '', 'mobile' => $user->mobile ?? '', 'company_name' => $user->company->company_name ?? $user->company_name, @@ -1519,7 +1522,7 @@ class OtherController extends CommonController 'course_count' => $courseCount, ]; } - $fields = [ + $currentFields = [ 'user_name' => '学员姓名', 'mobile' => '手机号', 'company_name' => '企业名称', @@ -1533,7 +1536,47 @@ class OtherController extends CommonController 'course_types' => '课程体系', 'course_count' => '报名课程数', ]; + + // 自定义数据(EmployeeParticipation type=1 员工参与数) + $customData = []; + $employeeParticipations = EmployeeParticipation::where(function ($query) use ($start_date, $end_date) { + // 开始结束日期的筛选。or查询 + if ($start_date && $end_date) { + $query->whereBetween('start_date', [$start_date, $end_date]) + ->orWhereBetween('end_date', [$start_date, $end_date]); + } + })->where('type', 1)->with('courseType')->get(); + + foreach ($employeeParticipations as $participation) { + $customData[] = [ + 'course_type' => $participation->courseType->name ?? '', + 'course_name' => $participation->course_name ?? '', + 'start_date' => $participation->start_date ?? '', + 'end_date' => $participation->end_date ?? '', + 'total' => $participation->total ?? 0, + ]; + } + $customFields = [ + 'course_type' => '课程体系', + 'course_name' => '课程名称', + 'start_date' => '开始日期', + 'end_date' => '结束日期', + 'total' => '参与数量', + ]; + + // 创建多 sheet 导出 + $sheets = [ + new SheetExport($currentData, $currentFields, '学员数据'), + new SheetExport($customData, $customFields, '自定义数据'), + ]; + $filename = '元和员工参与企业明细'; + + // 直接返回多 sheet 导出 + return Excel::download( + new MultiSheetExport($sheets), + $filename . '_' . date('YmdHis') . '.xlsx' + ); break; case 'company_ganbu_total':