Исправил перезапись ответственного при повторном сохранении отчета

This commit is contained in:
brusnitsyn
2026-07-15 16:58:59 +09:00
parent 01692c68d5
commit 85c48fc9b6

View File

@@ -17,6 +17,7 @@ use App\Services\Classification\PatientStatusClassifier;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Support\Carbon;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Log;
class DutyReportService
{
@@ -61,15 +62,27 @@ class DutyReportService
'rf_user_id' => $user->id,
];
$report = ReportDuty::updateOrCreate(
[
'report_date' => $data['report_date'],
'period_start' => $data['period_start'],
'period_end' => $data['period_end'],
'rf_department_id' => $data['rf_department_id'],
],
$data
);
$reportExists = ReportDuty::where('report_date', $data['report_date'])
->where('period_start', $data['period_start'])
->where('period_end', $data['period_end'])
->where('rf_department_id', $data['rf_department_id'])
->exists();
if ($reportExists) {
$data = array_diff_key($data, array_flip(['rf_lpudoctor_id', 'rf_user_id']));
$report = ReportDuty::updateOrCreate(
[
'report_date' => $data['report_date'],
'period_start' => $data['period_start'],
'period_end' => $data['period_end'],
'rf_department_id' => $data['rf_department_id'],
],
$data
);
} else {
$report = ReportDuty::create($data);
}
return $report;
}
@@ -676,7 +689,7 @@ class DutyReportService
$reanimationBatch = [];
}
}
Log::info($totalStats);
// Сохраняем остаток
if (!empty($patientBatch)) {
$batchStats = $this->upsertBatches($reportDutyId, $patientBatch, $migrationBatch, $reanimationBatch);
@@ -927,13 +940,15 @@ class DutyReportService
$byUrgency = $stats['by_urgency'] ?? [];
$admitted = $stats['admitted'] ?? [];
// dd($stats, $statsOverride, !empty($statsOverride['outcome']));
// === Базовые счётчики ===
$patientsIsRecipient = array_key_exists('recipient', $statsOverride) && !empty($statsOverride['recipient'])
? $statsOverride['recipient'] : $byStatus['recipient'] ?? 0;
$patientsInDepartment = array_key_exists('in_department', $statsOverride) && !empty($statsOverride['in_department'])
? $statsOverride['in_department'] : $byStatus['in_department'] ?? 0;
$patientsIsDischarged = array_key_exists('outcome', $statsOverride) && !empty($statsOverride['outcome'])
? $statsOverride['outcome'] : $byStatus['outcome'] ?? 0;
? $statsOverride['outcome'] : $stats['outcome'] ?? 0;
$patientsIsTransferred = $stats['transferred'] ?? 0;
$patientsIsDeceased = $byStatus['deceased'] ?? 0;