# 기준정보 (슬라이드 92-104) ## 1. 개요 기준정보 모듈은 직급, 직책, 권한, 근무, 출퇴근, 휴가, 카드, 계좌, 팝업, 게시판, 일반설정, 알림설정을 관리합니다. ## 2. 직급관리 (슬라이드 93, 95) ### 2.1 직급 인풋박스 - 직급 입력 후 추가 버튼 클릭 ### 2.2 추가 버튼 - 클릭: (2-1) 직급 목록 최하단에 표시 ### 2.3 직급 목록 - 디폴트: 사원, 대리, 과장, 차장, 부장, 이사, 상무, 전무, 부사장, 사장 ### 2.4 순서 변경 버튼 - 드래그&드랍: 해당 위치로 순서 변경 ### 2.5 수정 버튼 - 클릭: 직급 수정 팝업 표시 ### 2.6 삭제 버튼 - 클릭: 1) 해당 직급으로 사원 설정된 경우: "'직급명'을 사용하고 있는 사원이 있습니다. 다 변경 후 삭제가 가능합니다." 알림 Alert 표시 2) 해당 직급으로 사원 미설정된 경우: "정말 삭제하시겠습니까?" 확인 Alert 표시, 확인 클릭 시 "삭제가 완료되었습니다." 알림 Alert 표시 ### 2.7 직급 수정 팝업 - 직급명 인풋박스: 기존 직급명 표시, 수정 가능 ## 3. 직책관리 (슬라이드 94-95) ### 3.1 기능 - 직급관리와 동일한 구조 ### 3.2 디폴트 직책 - (없음) ### 3.3 직책 수정 팝업 - 직책명 인풋박스: 기존 직책명 표시, 수정 가능 ## 4. 권한관리 (슬라이드 96) ### 4.1 관리자 - 디폴트: 모든 메뉴 권한 설정 - 수정 불가, 삭제 불가 ### 4.2 일반 - 디폴트: 대시보드 제외 모든 메뉴 접근 불가 ### 4.3 추가 버튼 - 클릭: 권한 추가 팝업 표시 ### 4.4 삭제 버튼 - 클릭: 1) 해당 권한으로 사원 설정된 경우: "'권한명'을 사용하고 있는 사원이 있습니다. 다 변경 후 삭제가 가능합니다." 알림 Alert 표시 2) 해당 권한으로 사원 미설정된 경우: "정말 삭제하시겠습니까?" 확인 Alert 표시 ### 4.5 체크박스 - 클릭: 체크 설정/해제 토글 - 디폴트: 체크 해제 상태 ### 4.6 관리 - 읽기 및 수정 권한 ### 4.7 읽기 - 읽기만 권한 ## 5. 근무관리 (슬라이드 97) ### 5.1 근무 정보 | 필드명 | 설명 | |--------|------| | 근무 유형 | 종류: 고정형, 변형, 맞춤형 | | 기본 소정 근로 시간 | 주 00시간 | | 연장 근로 시간 | 주 00시간 | | 연장 근로 한도 | 52시간 미만 | | 근무 요일 설정 | 클릭: 설정된 체크 활성/비활성 토글, 디폴트: 월~금 활성 | ### 5.2 출근 시간 - 09:00 ### 5.3 퇴근 시간 - 18:00 ### 5.4 휴게 시간 | 필드명 | 설명 | |--------|------| | 총 휴게 시간 | 1시간 | | 휴게 시간 | 12:00 ~ 13:00 | ## 6. 출퇴근관리 (슬라이드 99) ### 6.1 출퇴근 설정 | 필드명 | 설명 | |--------|------| | GPS 출퇴근 | 토글: 기준 좌표로 정해진 거리 기준 이내에 있을 때만 출근/퇴근 등록 가능 | | 허용 반경 | 주 00m | ### 6.2 본사 위치 정보 | 필드명 | 설명 | |--------|------| | 본사 주소 | 우편번호 찾기 + 상세주소 | | 경도 | | | 위도 | | ### 6.3 현장 목록 - 추가 버튼: 현장 등록 팝업 표시 - 현장명, 주소, 삭제 버튼 ## 7. 휴가관리 (슬라이드 100) ### 7.1 기준 셀렉트 박스 - 종류: 회계연도, 입사일 - 디폴트: 회계연도 - 입사일 선택 시 (2) 영역 비활성화 - 회계연도 기준: 회사의 회계연도를 기준으로 휴가를 부여하고 조회할 수 있습니다. - 입사일 기준: 사원의 입사일 회계연도 기준으로 휴가를 부여하고 조회할 수 있습니다. ### 7.2 기준일 월/일 설정 영역 - 회계연도 기준 시에만 활성화 ### 7.3 기본 연차 설정 - 1년간 출근율 80% 이상이면 15일 - 3년 이상 근속 시 2년에 1일 추가 (최대 25일) - 1년 미만 또는 출근율 80% 이하인 경우 1일 - 입사일~회계연도 기준일 사정: 회년도 출근율로 판정 80% 이상이면 15일 - (3-1) 연차+1년+1일 시작, 이후 2년에 1일 추가 - 입사일~회계연도 기준으로 전환할 때는 취업규칙 변경, 노사 의견수렴, 전환 시 충북 연차 정산(입사일 기준 vs 회계연도 기준 비교 후 부족분 보전)을 반드시 검토 필요 ## 8. 카드관리 (슬라이드 101-102) ### 8.1 카드 목록 | 필드명 | 설명 | |--------|------| | 카드사 | | | 카드번호 | 앞4자리, 끝4자리 표시 | | 카드명 | | | 상태 | | | 사용자 | 부서명 / 이름 / 직책 | | 작업 | 상세 버튼 | ### 8.2 필터 - 종류: 전체, 사용, 정지 - 디폴트: 전체 ### 8.3 카드 상세 | 필드명 | 필수 | 설명 | |--------|------|------| | 카드사 | Y | 카드사명 선택 | | 카드번호 | Y | 1234-1234-1234-1234 | | 유효기간 | Y | MM/YY | | 카드 비밀번호 앞 2자리 | Y | 입력 시 마스킹 처리 | | 카드명 | Y | | | 상태 | Y | 종류: 사용, 정지. 정지 시 해당 카드의 자동 조회 중단 | | 사용자 | N | 부서명 / 이름 / 직책. 선택 시 해당 카드의 사용자로 설정 | ## 9. 계좌관리 (슬라이드 103-104) ### 9.1 계좌 목록 | 필드명 | 설명 | |--------|------| | 은행 | | | 계좌번호 | | | 예금주 | | | 상태 | | | 사용자 | 부서명 / 이름 / 직책 | | 작업 | 상세 버튼 | ### 9.2 필터 - 종류: 전체, 사용, 정지 - 디폴트: 전체 ### 9.3 계좌 상세 | 필드명 | 필수 | 설명 | |--------|------|------| | 은행 | Y | 은행 선택 | | 계좌번호 | Y | | | 예금주 | Y | | | 계좌명 | Y | | | 상태 | Y | 종류: 사용, 정지. 정지 시 해당 계좌의 자동 조회 중단 | | 사용자 | N | 부서명 / 이름 / 직책. 선택 시 해당 계좌의 사용자로 설정 | --- ## 데이터 모델 ### Position (직급) ``` - id: bigint - tenant_id: bigint (FK) - name: string - order: int - created_at: timestamp ``` ### JobTitle (직책) ``` - id: bigint - tenant_id: bigint (FK) - name: string - order: int - created_at: timestamp ``` ### Role (권한) ``` - id: bigint - tenant_id: bigint (FK) - name: string - is_system: boolean # 시스템 기본 권한 여부 - permissions: json # 메뉴별 권한 설정 - created_at: timestamp ``` ### WorkSetting (근무 설정) ``` - id: bigint - tenant_id: bigint (FK) - work_type: enum('fixed', 'flexible', 'custom') - standard_hours: int # 주당 소정 근로 시간 - overtime_hours: int # 주당 연장 근로 시간 - overtime_limit: int # 연장 근로 한도 - work_days: json # ['mon', 'tue', 'wed', 'thu', 'fri'] - start_time: time - end_time: time - break_hours: int - break_start: time - break_end: time ``` ### AttendanceSetting (출퇴근 설정) ``` - id: bigint - tenant_id: bigint (FK) - use_gps: boolean - allowed_radius: int # 허용 반경 (m) - headquarters_address: string - headquarters_latitude: decimal(10,8) - headquarters_longitude: decimal(11,8) ``` ### LeaveSetting (휴가 설정) ``` - id: bigint - tenant_id: bigint (FK) - base_type: enum('fiscal_year', 'hire_date') - fiscal_start_month: int - fiscal_start_day: int ``` ### Card (카드) ``` - id: bigint - tenant_id: bigint (FK) - card_company: string - card_number: string (encrypted) - expiry_date: string - card_password: string (encrypted) - card_name: string - status: enum('active', 'inactive') - user_id: bigint (FK, nullable) - created_at: timestamp ``` ### BankAccount (계좌) ``` - id: bigint - tenant_id: bigint (FK) - bank_code: string - account_number: string - account_holder: string - account_name: string - status: enum('active', 'inactive') - user_id: bigint (FK, nullable) - created_at: timestamp ``` --- ## API 도출 ### 직급/직책 API ``` GET /api/positions # 직급 목록 POST /api/positions # 직급 추가 PUT /api/positions/{id} # 직급 수정 DELETE /api/positions/{id} # 직급 삭제 PUT /api/positions/reorder # 직급 순서 변경 GET /api/job-titles # 직책 목록 POST /api/job-titles # 직책 추가 PUT /api/job-titles/{id} # 직책 수정 DELETE /api/job-titles/{id} # 직책 삭제 PUT /api/job-titles/reorder # 직책 순서 변경 ``` ### 권한 API ``` GET /api/roles # 권한 목록 POST /api/roles # 권한 추가 GET /api/roles/{id} # 권한 상세 PUT /api/roles/{id} # 권한 수정 DELETE /api/roles/{id} # 권한 삭제 GET /api/menus # 메뉴 목록 (권한 설정용) ``` ### 설정 API ``` GET /api/settings/work # 근무 설정 조회 PUT /api/settings/work # 근무 설정 수정 GET /api/settings/attendance # 출퇴근 설정 조회 PUT /api/settings/attendance # 출퇴근 설정 수정 GET /api/settings/leave # 휴가 설정 조회 PUT /api/settings/leave # 휴가 설정 수정 ``` ### 카드/계좌 API ``` GET /api/cards # 카드 목록 POST /api/cards # 카드 등록 GET /api/cards/{id} # 카드 상세 PUT /api/cards/{id} # 카드 수정 DELETE /api/cards/{id} # 카드 삭제 GET /api/bank-accounts # 계좌 목록 POST /api/bank-accounts # 계좌 등록 GET /api/bank-accounts/{id} # 계좌 상세 PUT /api/bank-accounts/{id} # 계좌 수정 DELETE /api/bank-accounts/{id} # 계좌 삭제 ```