- system/overview.md: 전체 아키텍처 개요 - system/api-structure.md: API 구조 (220 모델, 1027 엔드포인트, 18 라우트 도메인) - system/react-structure.md: React 구조 (249 페이지, 612 컴포넌트) - system/mng-structure.md: MNG 구조 (171 컨트롤러, 436 Blade 뷰) - system/docker-setup.md: Docker 7 컨테이너 구성 - system/database/README.md + 9개 도메인 스키마 (270+ 테이블) - core, hr, sales, production, finance, boards, files, system, erp-analysis Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
4.1 KiB
4.1 KiB
GPS 출퇴근 (슬라이드 23-27)
1. 개요
GPS 기반 모바일 출퇴근 관리 시스템으로, 위치 정보를 활용하여 출근/퇴근을 기록합니다.
2. 마이페이지 팝업 > 출퇴근하기 (슬라이드 24)
2.1 출퇴근 버튼
- GPS 출퇴근 사용 시에만 표시
- 모바일일 경우에만 버튼 활성화
- 클릭: 출퇴근하기 화면으로 이동
2.2 출퇴근 허용 반경
- 기준 화표로부터의 출퇴근 허용 반경을 m 형으로 표시 (기준정보 > 출퇴근관리에서 설정)
2.3 현재 위치 버튼
- 클릭: (3-1) 해당 현재 위치를 지도 중심으로 표시
2.4 [+] 버튼
- 클릭: 지도 영역 확대
2.5 확대/축소 슬라이드바
- 드래그&드랍 또는 클릭: 지도 영역 확대/축소
2.6 [-] 버튼
- 클릭: 지도 영역 축소
2.7 개인 정보 영역
- 항목: 프로필 이미지, 이름, 부서명, 직급명
2.8 현재 시:분:초 표시
- HH:MM:SS
2.9 출근하기 버튼
- 클릭:
- 출근 위치 미설정 상태일 경우: "출근 위치를 설정해주세요." 알림 Alert 표시
- 출근 위치 설정 상태일 경우:
- (1) 출근 위치가 기준 설정 반경 초과일 경우: "출근 가능 위치가 아닙니다. 출근 위치를 확인해주세요." 알림 Alert 표시
- [2] GPS 출근 위치 기준 설정 반경 이내: 출근하기 화면으로 이동 (출근 기록 저장)
3. 출근하기 (슬라이드 25)
3.1 퇴근하기 버튼
- 클릭:
- 퇴근 위치 미설정 상태일 경우: "퇴근 위치를 설정해주세요." 알림 Alert 표시
- 퇴근 위치 설정 상태일 경우:
- (1) 퇴근 위치가 기준 설정 반경 초과일 경우: "퇴근 가능 위치가 아닙니다. 퇴근 위치를 확인해주세요." 알림 Alert 표시
- [2] GPS 퇴근 위치 기준 설정 반경 이내: 퇴근하기 화면으로 이동 (퇴근 기록 저장)
3.2 출근 완료 아이콘 이미지 표시
3.3 출근 완료 정보
- 항목: 출근 완료 문구, 시:분:초, 일자(요일)
3.4 출근 화표의 본사/현장명 표시
3.5 확인 버튼
- 클릭: 대시보드로 이동
4. 퇴근하기 (슬라이드 26)
4.1 퇴근 완료 아이콘 이미지 표시
4.2 퇴근 완료 정보
- 항목: 퇴근 완료 문구, 시:분:초, 일자(요일)
4.3 퇴근 화표의 본사/현장명 표시
4.4 확인 버튼
- 클릭: 대시보드로 이동
5. 현장 등록 (슬라이드 27)
5.1 위치 정보 설정
- 각 현장의 GPS 중심값으로 설정
5.2 입력 필드
| 필드명 | 필수 | 설명 |
|---|---|---|
| 주소 | Y | 우편번호 찾기 + 상세주소 |
| 경도 | Y | |
| 위도 | Y | |
| 첨부파일 | N |
데이터 모델
Attendance (출퇴근 기록)
- id: bigint
- user_id: bigint (FK)
- tenant_id: bigint (FK)
- type: enum('check_in', 'check_out')
- check_time: datetime
- latitude: decimal(10,8)
- longitude: decimal(11,8)
- location_id: bigint (FK, nullable) # 본사/현장
- location_name: string
- is_valid: boolean # 유효 위치 여부
- created_at: timestamp
Location (본사/현장)
- id: bigint
- tenant_id: bigint (FK)
- name: string
- address: string
- detail_address: string
- latitude: decimal(10,8)
- longitude: decimal(11,8)
- allowed_radius: int # 허용 반경 (m)
- is_active: boolean
- created_at: timestamp
API 도출
GPS 출퇴근 API
POST /api/attendance/check-in # 출근 기록
POST /api/attendance/check-out # 퇴근 기록
GET /api/attendance/today # 오늘 출퇴근 현황
GET /api/attendance/status # 현재 출퇴근 상태
GET /api/attendance/location/validate # 위치 유효성 검증
현장 관리 API
GET /api/locations # 현장 목록
POST /api/locations # 현장 등록
PUT /api/locations/{id} # 현장 수정
DELETE /api/locations/{id} # 현장 삭제
출퇴근 설정 API
GET /api/settings/attendance # 출퇴근 설정 조회
PUT /api/settings/attendance # 출퇴근 설정 수정