nothing
This commit is contained in:
@@ -37,8 +37,9 @@ class AutoReportService
|
||||
$period = CarbonPeriod::create($startDate, $endDate);
|
||||
|
||||
foreach ($period as $date) {
|
||||
$dateRange = $this->dateRangeService->getNormalizedDateRange($user, $date, $date);
|
||||
try {
|
||||
$reportCreated = $this->createReportForDate($user, $date, $departmentId, $force);
|
||||
$reportCreated = $this->createReportForDate($user, $dateRange, $departmentId, $force);
|
||||
|
||||
if ($reportCreated) {
|
||||
$createdCount++;
|
||||
@@ -55,13 +56,13 @@ class AutoReportService
|
||||
/**
|
||||
* Создать отчет для конкретной даты
|
||||
*/
|
||||
public function createReportForDate(User $user, Carbon $date, $departmentId, bool $force = false): bool
|
||||
public function createReportForDate(User $user, DateRange $dateRange, $departmentId, bool $force = false): bool
|
||||
{
|
||||
$user->rf_department_id = $departmentId;
|
||||
// Проверяем, существует ли уже отчет на эту дату
|
||||
$existingReport = Report::where('rf_department_id', $departmentId)
|
||||
->whereDate('created_at', $date)
|
||||
->whereDate('sent_at', $date)
|
||||
->whereDate('created_at', $dateRange->endSql())
|
||||
->whereDate('sent_at', $dateRange->endSql())
|
||||
->first();
|
||||
|
||||
if ($existingReport && !$force) {
|
||||
@@ -75,18 +76,11 @@ class AutoReportService
|
||||
$existingReport->delete();
|
||||
}
|
||||
|
||||
// Создаем DateRange для этой даты
|
||||
// Приводим к Illuminate\Carbon если нужно
|
||||
if (!$date instanceof \Illuminate\Support\Carbon) {
|
||||
$date = \Illuminate\Support\Carbon::instance($date);
|
||||
}
|
||||
$dateRange = $this->dateRangeService->createDateRangeForDate($date, $user);
|
||||
|
||||
// Получаем данные для отчета
|
||||
$reportData = $this->prepareReportData($user, $dateRange, $date, $departmentId);
|
||||
$reportData = $this->prepareReportData($user, $dateRange, $departmentId);
|
||||
|
||||
// Создаем отчет
|
||||
DB::transaction(function () use ($user, $reportData, $date) {
|
||||
DB::transaction(function () use ($user, $reportData) {
|
||||
$this->reportService->storeReport($reportData, $user);
|
||||
});
|
||||
|
||||
@@ -96,7 +90,7 @@ class AutoReportService
|
||||
/**
|
||||
* Подготовить данные для отчета
|
||||
*/
|
||||
private function prepareReportData(User $user, DateRange $dateRange, Carbon $date, $departmentId): array
|
||||
private function prepareReportData(User $user, DateRange $dateRange, $departmentId): array
|
||||
{
|
||||
$department = Department::where('department_id', $departmentId)->first();
|
||||
$branchId = $this->getBranchId($department->rf_mis_department_id);
|
||||
@@ -121,10 +115,10 @@ class AutoReportService
|
||||
$dateRange->startTimestamp(),
|
||||
$dateRange->endTimestamp()
|
||||
],
|
||||
'sent_at' => $this->dateRangeService->toSqlFormat($date),
|
||||
'created_at' => $this->dateRangeService->toSqlFormat($date),
|
||||
'sent_at' => $dateRange->endSql(),
|
||||
'created_at' => $dateRange->endSql(),
|
||||
'metrics' => $this->formatMetrics($metrics),
|
||||
'observationPatients' => $this->getObservationPatients($departmentId, $date),
|
||||
'observationPatients' => $this->getObservationPatients($departmentId, $dateRange),
|
||||
'unwantedEvents' => [],
|
||||
];
|
||||
}
|
||||
@@ -247,7 +241,7 @@ class AutoReportService
|
||||
/**
|
||||
* Получить пациентов под наблюдением на дату
|
||||
*/
|
||||
private function getObservationPatients(int $departmentId, Carbon $date): array
|
||||
private function getObservationPatients(int $departmentId, DateRange $dateRange): array
|
||||
{
|
||||
// Здесь нужно реализовать логику получения пациентов под наблюдением
|
||||
// на конкретную дату. Возможно, из снапшотов или истории.
|
||||
|
||||
Reference in New Issue
Block a user