Шаблон отчета дежурного врача

This commit is contained in:
brusnitsyn
2026-07-06 15:27:43 +09:00
parent d322317d06
commit 2b0221ed36
5 changed files with 98 additions and 2 deletions

View File

@@ -2,6 +2,7 @@
namespace App\Http\Controllers\Web;
use App\Exports\DutyReportExport;
use App\Http\Controllers\Controller;
use App\Http\Resources\MedicalHistoryResource;
use App\Models\Department;
@@ -15,11 +16,13 @@ use App\Services\DutyReportService;
use App\Services\MedicalHistoryService;
use App\Services\NurseMedicalHistoryService;
use App\Services\NurseReportService;
use App\Services\StatisticsService;
use App\Services\UnifiedMedicalHistoryService;
use Illuminate\Http\Request;
use Illuminate\Support\Carbon;
use Illuminate\Support\Facades\Auth;
use Inertia\Inertia;
use Maatwebsite\Excel\Facades\Excel;
class DutyReportController extends Controller
{
@@ -28,7 +31,8 @@ class DutyReportController extends Controller
protected MedicalHistoryService $medicalHistoryService,
protected DutyMedicalHistoryService $dutyMedicalHistoryService,
protected DutyReportService $dutyReportService,
protected NurseMedicalHistoryService $nurseMedicalHistoryService
protected NurseMedicalHistoryService $nurseMedicalHistoryService,
protected StatisticsService $statisticsService
)
{}
@@ -356,4 +360,24 @@ class DutyReportController extends Controller
'out_reason' => 'Закрыто пользователем'
]);
}
/**
* Формирование отчета дежурного в Excel
*/
public function generateReport(Request $request)
{
$user = $request->user();
$queryStartDate = $request->query('startAt');
$queryEndDate = $request->query('endAt');
$queryDepartmentId = $request->query('departmentId', $user->department->department_id);
[$startDate, $endDate] = $this->dateRangeService->getStatisticsDateRange($user, $queryStartDate, $queryEndDate);
$isRangeOneDay = $this->dateRangeService->isRangeOneDay($startDate, $endDate);
$department = Department::find($queryDepartmentId);
$finalData = $this->statisticsService->getStatisticsData($user, $startDate, $endDate, $isRangeOneDay, $department->department_id);
return Excel::download(new DutyReportExport($finalData['data'], [$startDate, $endDate], $user, $department), 'statistics.xlsx');
}
}