Форматирование

This commit is contained in:
brusnitsyn
2026-04-24 16:46:10 +09:00
parent fd0e6ee817
commit 63daa62888
87 changed files with 1380 additions and 791 deletions

View File

@@ -40,10 +40,10 @@ class MetrikaFormController extends Controller
'fields' => $formData,
'validation' => $validationSchema['schema'],
'defaults' => $validationSchema['defaults'],
'sections' => $this->groupFieldsBySection($formData)
'sections' => $this->groupFieldsBySection($formData),
],
'existing_data' => $existingReport,
'created_at' => now()->format('Y-m-d')
'created_at' => now()->format('Y-m-d'),
]);
}
@@ -62,7 +62,7 @@ class MetrikaFormController extends Controller
return response()->json([
'success' => false,
'errors' => $validator->errors(),
'message' => 'Пожалуйста, исправьте ошибки в форме'
'message' => 'Пожалуйста, исправьте ошибки в форме',
], 422);
}
@@ -75,7 +75,7 @@ class MetrikaFormController extends Controller
'sent_at' => $periodEnd,
'period_start' => $periodStart,
'period_end' => $periodEnd,
'rf_department_id' => $user->department->departmentid
'rf_department_id' => $user->department->departmentid,
]
);
@@ -107,7 +107,7 @@ class MetrikaFormController extends Controller
'success' => true,
'message' => 'Данные успешно сохранены',
'report_id' => $report->report_id,
'result_id' => $metricResult->metrika_result_id
'result_id' => $metricResult->metrika_result_id,
]);
}
@@ -133,8 +133,8 @@ class MetrikaFormController extends Controller
'form' => [
'fields' => $formData,
'values' => $formValues,
'comment' => $metricResult->comment
]
'comment' => $metricResult->comment,
],
]);
}
@@ -145,10 +145,10 @@ class MetrikaFormController extends Controller
{
$user = Auth::user();
if (!$user) {
if (! $user) {
return response()->json([
'success' => false,
'message' => 'Пользователь не авторизован'
'message' => 'Пользователь не авторизован',
], 401);
}
@@ -158,11 +158,11 @@ class MetrikaFormController extends Controller
->orderBy('created_at', 'desc')
->first();
if (!$report) {
if (! $report) {
return response()->json([
'success' => true,
'existing_data' => null,
'message' => 'Нет сохраненных данных за сегодня'
'message' => 'Нет сохраненных данных за сегодня',
]);
}
@@ -172,11 +172,11 @@ class MetrikaFormController extends Controller
->with(['values.item'])
->first();
if (!$metricResult) {
if (! $metricResult) {
return response()->json([
'success' => true,
'existing_data' => null,
'message' => 'Нет данных для этой группы метрик'
'message' => 'Нет данных для этой группы метрик',
]);
}
@@ -199,7 +199,7 @@ class MetrikaFormController extends Controller
$comments[$fieldName] = [
'item_id' => $value->rf_metrika_item_id,
'item_name' => $value->item->name ?? 'Неизвестно',
'updated_at' => $value->updated_at ? $value->updated_at->format('H:i') : null
'updated_at' => $value->updated_at ? $value->updated_at->format('H:i') : null,
];
}
@@ -214,12 +214,12 @@ class MetrikaFormController extends Controller
'comments' => $comments,
'submitted_at' => $metricResult->created_at ? $metricResult->created_at->format('Y-m-d H:i:s') : null,
'last_updated' => $metricResult->updated_at ? $metricResult->updated_at->format('Y-m-d H:i:s') : null,
'status' => $metricResult->status ?? 'submitted'
'status' => $metricResult->status ?? 'submitted',
],
'report_info' => [
'created_at' => $report->created_at,
'report_status' => $report->status,
]
],
]);
}
@@ -231,13 +231,13 @@ class MetrikaFormController extends Controller
$user = Auth::user();
$validator = Validator::make($request->all(), [
'sent_at' => 'required|string'
'sent_at' => 'required|string',
]);
if ($validator->fails()) {
return response()->json([
'success' => false,
'errors' => $validator->errors()
'errors' => $validator->errors(),
], 422);
}
@@ -250,12 +250,12 @@ class MetrikaFormController extends Controller
if ($daysDiff > 365) {
return response()->json([
'success' => false,
'message' => 'Период не может превышать 1 год'
'message' => 'Период не может превышать 1 год',
], 400);
}
$dateStart = date('Y-m-d', $startAt) . ' 00:00:00';
$dateEnd = date('Y-m-d', $endAt) . ' 23:59:59';
$dateStart = date('Y-m-d', $startAt).' 00:00:00';
$dateEnd = date('Y-m-d', $endAt).' 23:59:59';
$dateEndExclusive = Carbon::parse($dateEnd, 'Asia/Yakutsk')->addSecond()->format('Y-m-d H:i:s');
$group = MetrikaGroup::findOrFail($groupId);
@@ -267,14 +267,14 @@ class MetrikaFormController extends Controller
->where('mr.rf_metrika_group_id', $groupId)
->where('r.period_start', '>=', $dateStart)
->where('r.period_end', '<', $dateEndExclusive)
->when(!$user->isAdmin() && !$user->isHeadOfDepartment(), function ($query) use ($user) {
->when(! $user->isAdmin() && ! $user->isHeadOfDepartment(), function ($query) use ($user) {
return $query->where('r.rf_user_id', $user->id);
})
->select([
'mv.rf_metrika_item_id',
DB::raw('SUM(CAST(mv.value AS DECIMAL(10,2))) as total_sum'),
DB::raw('COUNT(DISTINCT r.report_id) as reports_count'),
DB::raw('AVG(CAST(mv.value AS DECIMAL(10,2))) as avg_value')
DB::raw('AVG(CAST(mv.value AS DECIMAL(10,2))) as avg_value'),
])
->groupBy('mv.rf_metrika_item_id')
->get()
@@ -283,7 +283,7 @@ class MetrikaFormController extends Controller
if ($aggregatedData->isEmpty()) {
return response()->json([
'success' => false,
'message' => 'Данные за указанный период не найдены'
'message' => 'Данные за указанный период не найдены',
], 404);
}
@@ -299,7 +299,7 @@ class MetrikaFormController extends Controller
'sum' => (float) $data->total_sum,
'average' => (float) $data->avg_value,
'reports_count' => $data->reports_count,
'item_name' => $items[$itemId] ?? 'Неизвестный показатель'
'item_name' => $items[$itemId] ?? 'Неизвестный показатель',
];
}
@@ -312,7 +312,7 @@ class MetrikaFormController extends Controller
'period' => [
'start' => $dateStart,
'end' => $dateEnd,
'days' => $daysDiff + 1
'days' => $daysDiff + 1,
],
'group' => [
'id' => $group->metrika_group_id,
@@ -323,12 +323,12 @@ class MetrikaFormController extends Controller
'total_items' => count($formValues),
'total_reports' => $aggregatedData->first()->reports_count ?? 0,
'values' => $formValues,
'aggregation' => 'sum_and_average'
'aggregation' => 'sum_and_average',
],
'form' => [
'fields' => $formData,
'sections' => $this->groupFieldsBySection($formData)
]
'sections' => $this->groupFieldsBySection($formData),
],
]);
}
@@ -341,13 +341,13 @@ class MetrikaFormController extends Controller
$validator = Validator::make($request->all(), [
'year' => 'nullable|integer|min:2023|max:2030',
'month' => 'nullable|integer|min:1|max:12'
'month' => 'nullable|integer|min:1|max:12',
]);
if ($validator->fails()) {
return response()->json([
'success' => false,
'errors' => $validator->errors()
'errors' => $validator->errors(),
], 422);
}
@@ -374,11 +374,11 @@ class MetrikaFormController extends Controller
'month' => $month,
'month_name' => $this->getMonthName($month),
'start_date' => $startDate,
'end_date' => $endDate
'end_date' => $endDate,
],
'statistics' => [
'total_reports' => $reports->count()
]
'total_reports' => $reports->count(),
],
]);
}
@@ -395,20 +395,20 @@ class MetrikaFormController extends Controller
'year' => $year,
'month' => $month,
'month_name' => $this->getMonthName($month),
'days' => []
'days' => [],
];
// Пустые дни в начале месяца
for ($i = 1; $i < $firstWeekday; $i++) {
$calendar['days'][] = [
'day' => null,
'empty' => true
'empty' => true,
];
}
// Дни месяца
for ($day = 1; $day <= $daysInMonth; $day++) {
$date = date("{$year}-{$month}-" . sprintf('%02d', $day));
$date = date("{$year}-{$month}-".sprintf('%02d', $day));
$report = $reports->first(fn (Report $item) => $item->period_end && $item->period_end->toDateString() === $date);
$timestamp = strtotime($date) * 1000; // В миллисекундах
@@ -421,9 +421,9 @@ class MetrikaFormController extends Controller
'day_name' => $this->getDayName(date('N', strtotime($date))),
'is_today' => $date === now()->toDateString(),
'is_weekend' => date('N', strtotime($date)) >= 6,
'has_report' => !is_null($report),
'has_report' => ! is_null($report),
'report_status' => $report ? $report->status : null,
'sent_at' => $report && $report->period_end ? $report->period_end->getTimestamp() * 1000 : $timestamp
'sent_at' => $report && $report->period_end ? $report->period_end->getTimestamp() * 1000 : $timestamp,
];
$calendar['days'][] = $dayData;
@@ -434,7 +434,7 @@ class MetrikaFormController extends Controller
while (count($calendar['days']) < $totalCells) {
$calendar['days'][] = [
'day' => null,
'empty' => true
'empty' => true,
];
}
@@ -449,7 +449,7 @@ class MetrikaFormController extends Controller
$months = [
1 => 'Январь', 2 => 'Февраль', 3 => 'Март', 4 => 'Апрель',
5 => 'Май', 6 => 'Июнь', 7 => 'Июль', 8 => 'Август',
9 => 'Сентябрь', 10 => 'Октябрь', 11 => 'Ноябрь', 12 => 'Декабрь'
9 => 'Сентябрь', 10 => 'Октябрь', 11 => 'Ноябрь', 12 => 'Декабрь',
];
return $months[$month] ?? '';
@@ -462,7 +462,7 @@ class MetrikaFormController extends Controller
{
$days = [
1 => 'Пн', 2 => 'Вт', 3 => 'Ср', 4 => 'Чт',
5 => 'Пт', 6 => 'Сб', 7 => 'Вс'
5 => 'Пт', 6 => 'Сб', 7 => 'Вс',
];
return $days[$dayOfWeek] ?? '';
@@ -477,12 +477,12 @@ class MetrikaFormController extends Controller
$months = [
1 => 'января', 2 => 'февраля', 3 => 'марта', 4 => 'апреля',
5 => 'мая', 6 => 'июня', 7 => 'июля', 8 => 'августа',
9 => 'сентября', 10 => 'октября', 11 => 'ноября', 12 => 'декабря'
9 => 'сентября', 10 => 'октября', 11 => 'ноября', 12 => 'декабря',
];
$days = [
1 => 'понедельник', 2 => 'вторник', 3 => 'среда',
4 => 'четверг', 5 => 'пятница', 6 => 'суббота', 7 => 'воскресенье'
4 => 'четверг', 5 => 'пятница', 6 => 'суббота', 7 => 'воскресенье',
];
$dayOfWeek = date('N', $timestamp);
@@ -491,10 +491,10 @@ class MetrikaFormController extends Controller
$year = date('Y', $timestamp);
return [
'formatted' => $days[$dayOfWeek] . ', ' . $day . ' ' . $months[$month] . ' ' . $year . ' г.',
'formatted' => $days[$dayOfWeek].', '.$day.' '.$months[$month].' '.$year.' г.',
'day_of_week' => $days[$dayOfWeek],
'is_weekend' => $dayOfWeek >= 6,
'is_today' => $date === now()->toDateString()
'is_today' => $date === now()->toDateString(),
];
}
@@ -509,10 +509,10 @@ class MetrikaFormController extends Controller
switch ($dataType) {
case 'integer':
return (int)$value;
return (int) $value;
case 'float':
case 'decimal':
return (float)$value;
return (float) $value;
case 'boolean':
return filter_var($value, FILTER_VALIDATE_BOOLEAN);
case 'array':
@@ -523,7 +523,7 @@ class MetrikaFormController extends Controller
case 'datetime':
return date('Y-m-d\TH:i', strtotime($value));
default:
return (string)$value;
return (string) $value;
}
}
@@ -537,10 +537,10 @@ class MetrikaFormController extends Controller
foreach ($fields as $field) {
$section = $field['section'] ?? 'general';
if (!isset($sections[$section])) {
if (! isset($sections[$section])) {
$sections[$section] = [
'name' => $this->getSectionName($section),
'fields' => []
'fields' => [],
];
}
@@ -556,7 +556,7 @@ class MetrikaFormController extends Controller
'general' => 'Основные показатели',
'admissions' => 'Поступления',
'discharges' => 'Выписки',
'additional' => 'Дополнительная информация'
'additional' => 'Дополнительная информация',
];
return $names[$section] ?? ucfirst($section);
@@ -570,7 +570,7 @@ class MetrikaFormController extends Controller
->exactPeriod(...$this->getTodayPeriodBounds())
->first();
if (!$report) {
if (! $report) {
return null;
}
@@ -579,7 +579,7 @@ class MetrikaFormController extends Controller
->with('values')
->first();
if (!$result) {
if (! $result) {
return null;
}
@@ -592,7 +592,7 @@ class MetrikaFormController extends Controller
'result_id' => $result->metrika_result_id,
'comment' => $result->comment,
'data' => $data,
'submitted_at' => $result->created_at
'submitted_at' => $result->created_at,
];
}
@@ -605,5 +605,4 @@ class MetrikaFormController extends Controller
$now->copy()->setTime(7, 0)->format('Y-m-d H:i:s'),
];
}
}