feat: [pmis] PMIS 자료실/안전관리/품질관리 기능 추가 및 개선

- 자료실 하위 3개 메뉴: 자료보관함, 매뉴얼, 공지사항
- 자료보관함: 폴더 트리 + 파일 업로드/다운로드/삭제
- 매뉴얼/공지사항: 게시판형 CRUD + 첨부파일
- 안전관리: 안전보건교육, TBM현황, 위험성평가, 재해예방조치
- 품질관리: 시정조치 UI 페이지
- 대시보드: 슈퍼관리자 전용 레거시 사이트 참고 카드
- 작업일보/출면일보 오류 수정 및 기능 개선
- 설비 사진 업로드, 근로계약서 종료일 수정
This commit is contained in:
김보곤
2026-03-12 21:11:21 +09:00
parent 31911ddf25
commit 267255bbe6
33 changed files with 5503 additions and 233 deletions

View File

@@ -113,6 +113,80 @@ public function pmisDailyReport(Request $request): View|Response
return view('juil.pmis-daily-report');
}
public function pmisCorrectiveAction(Request $request): View|Response
{
if ($request->header('HX-Request')) {
return response('', 200)->header('HX-Redirect', route('juil.construction-pmis.corrective-action'));
}
return view('juil.pmis-corrective-action');
}
// ── 안전관리 ──
public function pmisSafetyEducation(Request $request): View|Response
{
if ($request->header('HX-Request')) {
return response('', 200)->header('HX-Redirect', route('juil.construction-pmis.safety-education'));
}
return view('juil.pmis-safety-education');
}
public function pmisTbm(Request $request): View|Response
{
if ($request->header('HX-Request')) {
return response('', 200)->header('HX-Redirect', route('juil.construction-pmis.tbm'));
}
return view('juil.pmis-tbm');
}
public function pmisRiskAssessment(Request $request): View|Response
{
if ($request->header('HX-Request')) {
return response('', 200)->header('HX-Redirect', route('juil.construction-pmis.risk-assessment'));
}
return view('juil.pmis-risk-assessment');
}
public function pmisDisasterPrevention(Request $request): View|Response
{
if ($request->header('HX-Request')) {
return response('', 200)->header('HX-Redirect', route('juil.construction-pmis.disaster-prevention'));
}
return view('juil.pmis-disaster-prevention');
}
public function pmisArchiveFiles(Request $request): View|Response
{
if ($request->header('HX-Request')) {
return response('', 200)->header('HX-Redirect', route('juil.construction-pmis.archive-files'));
}
return view('juil.pmis-archive-files');
}
public function pmisArchiveManual(Request $request): View|Response
{
if ($request->header('HX-Request')) {
return response('', 200)->header('HX-Redirect', route('juil.construction-pmis.archive-manual'));
}
return view('juil.pmis-archive-manual');
}
public function pmisArchiveNotice(Request $request): View|Response
{
if ($request->header('HX-Request')) {
return response('', 200)->header('HX-Redirect', route('juil.construction-pmis.archive-notice'));
}
return view('juil.pmis-archive-notice');
}
public function pmisWeather(WeatherService $weatherService): JsonResponse
{
$forecasts = $weatherService->getWeeklyForecast();
@@ -142,6 +216,8 @@ public function pmisProfile(): JsonResponse
'created_at' => $worker->created_at?->format('Y-m-d'),
'last_login_at' => $worker->last_login_at?->format('Y-m-d H:i')
?? $user->last_login_at?->format('Y-m-d H:i'),
'is_admin' => $user->isAdmin(),
'is_super_admin' => $user->isSuperAdmin(),
],
]);
}