결재선 설정과 단계별 처리
기능 마스터 · 신청과 문서 결재 · 팀과 권한 · 알림
결재선은 신청을 누구에게 어떤 순서로 확인받을지 정한 목록입니다. 결재선 저장, 실제 신청 제출, 단계 승인, 근태·급여 반영은 서로 다른 작업입니다.
사용 대상·시작 위치
| 사용 대상 | 시작 위치 | 조건 |
|---|---|---|
| 직원 본인 | 직원 앱 → 결재 → 신청·결재 → 나의 결재선 | 병원과 팀에서 직원의 직접 지정을 허용한 신청 종류 |
| 신청하는 직원 | 휴가·연장근무·외근·인센티브·치료 세션 신청서의 결재자 줄 | 신청 종류별 결재선 사용이 켜져 있고 결재 가능한 후보가 있어야 직접 선택 가능 |
| 병원 기본 설정 담당 | 관리자 → 인사 관리 → 결재선 → 병원 기본 결재선 | 조직 설정을 관리할 권한. 병원 기본 후보는 조직 전체 범위 승인자 |
| 팀 설정 담당 | 같은 메뉴 → 팀별 결재선 | 시스템 관리자·총괄 팀장·해당 팀 관리가 허용된 팀장. 공동 팀장 포함 |
| 현재 차례 결재자 | 결재할 문서 또는 관리자·팀장 앱의 해당 신청 목록 | 대상 신청의 승인 권한과 현재 결재 순서 |
나의 결재선 만들기·수정·취소
- 나의 결재선 → 새 결재선을 누릅니다. 이름은 30자 이내로 알아보기 쉽게 쓰고 신청 종류를 고릅니다. 같은 이름의 결재선을 중복 저장할 수 없습니다.
- 결재자 지정을 엽니다. 이름·팀으로 후보를 검색하고 1~5명을 선택합니다. 후보는 해당 종류를 결재할 수 있는 사람이며 신청자 본인은 제외됩니다.
- 선택한 순서가 결재 순서입니다. 위·아래 버튼으로 순서를 바꾸거나 빼기로 제외합니다. 검색 중에는 선택 목록이 한 줄로 접히므로 검색어를 지우면 전체 순서를 다시 볼 수 있습니다.
- N명 저장을 눌러 편집 화면으로 돌아갑니다. 여기까지는 편집 중인 선택입니다. 결재자 지정 화면의 뒤로가기는 이번 선택을 버립니다.
- 기본으로 쓰기를 켜면 같은 종류의 다음 신청서에 자동으로 들어갑니다. 처음 만드는 결재선은 기본으로 지정됩니다. 이름·종류·결재자를 확인하고 편집 화면의 저장을 눌러 목록에 추가합니다.
- 목록의 카드를 눌러 다시 편집합니다. 저장한 결재선의 종류는 바꾸지 않습니다. 수정 후 저장해야 반영되고 취소는 저장 전 변경을 버립니다. 실제 예제 촬영에서는 이름을 바꾼 뒤 취소하고 기존 이름이 유지되는 것까지 확인했습니다.
- 더 이상 쓰지 않으면 편집의 삭제를 사용합니다. 이미 제출한 신청의 결재 순서는 바뀌지 않습니다. 삭제·기본 대체와 다중 결재자의 예외는 이번 영상의 확인 범위에 포함하지 않았습니다.
후보가 없으면 다른 이름을 임의로 입력해 대신할 수 없습니다. 일부 결재 불가 표시가 있으면 퇴사·권한 변경 등을 확인하고 결재자를 다시 고릅니다. 병원이나 팀이 직접 지정을 끄면 저장된 개인 결재선은 지워지지 않지만 사용·편집이 제한됩니다.
신청서에서 확인·제출
- 신청 내용과 **결재자(받는 사람)**를 확인합니다. 바꾸기가 보이면 이번 신청의 결재자를 고릅니다. 고정 안내가 보이면 병원·팀 설정을 따릅니다.
- 신청을 누르면 보내기 전에 확인해요에서 신청 내용과 적용될 결재선을 다시 확인합니다. 출처 표시는 직접 고름·내 결재선·팀 기본·병원 기본·자동을 구별합니다.
- 입력 도중 기본 결재선이 바뀌었다는 안내가 있으면 새 결재자를 확인합니다. 이대로 보내기를 눌러야 실제 접수됩니다. 확인 단계에서 돌아가면 제출하지 않습니다.
- 내 신청·결재 현황에서 해당 신청을 열어 단계·현재 확인자·승인·반려 상태를 확인합니다. 문서를 열었는지의 표시와 실제 승인은 다릅니다.
결정 순서는 이번에 고른 사람, 허용된 나의 기본 결재선, 주 소속 팀부터 상위 팀의 기본 결재선, 병원 기본 결재선, 자동 기본입니다. 자동 기본은 결재할 수 있는 주 소속 팀장 한 명을 우선하고 없으면 전체 범위 승인자 한 명을 찾으며 인사 관리자 역할을 우선합니다. 끝까지 후보가 없으면 결재 단계 없는 기존 처리 방식으로 접수합니다. 제출 뒤 기본 설정을 바꿔도 이미 제출한 건의 결재선은 그대로 유지됩니다.
병원·팀 기본 설정
| 조작 | 입력·저장 | 결과·취소·관련 화면 |
|---|---|---|
| 직원 직접 선택 허용 | 병원 기본 결재선의 직접 선택 스위치 | 끌 때 확인 후 적용. 나의 결재선은 보존되며 이후 신청에서 사용하지 않음 |
| 결재자로 고를 역할 제한 | 역할 설정에서 허용 역할 선택 | 직원이 직접 고르는 후보에 적용. 병원·팀 기본·자동 기본과는 구분 |
| 신청 종류별 사용 | 휴가·연장·외근·인센티브·치료 세션·출퇴근 정정의 스위치 | 끄면 저장된 기본값을 지우지 않고 결재 단계 없이 처리. 출퇴근 정정은 초기 꺼짐 |
| 병원 기본 지정 | 종류 행을 눌러 1~5명을 순서대로 선택. 같은 결재선을 적용할 다른 종류도 선택 가능 | 확인하여 저장. 닫기·Esc는 선택 중 창을 닫음. 지우면 팀 기본·자동 기본 적용 여부를 다시 확인 |
| 팀 기본 지정 | 팀별 표에서 팀과 종류를 선택하고 순서 지정 | 주 소속 팀부터 상위 팀 설정을 찾음. 다른 팀·종류에 함께 적용할 대상을 확인하고 저장 |
| 확인하지 않은 결재 다시 알림 | 시간 수 입력, 기본 24시간, 0은 사용 안 함 | 상세를 열지 않은 현재 결재자에게 한 번 더 알림. 알림 재전송은 승인과 다름 |
| 변경 이력 | 병원·팀 설정의 변경 이력 열기 | 누가 언제 바꿨는지 조회. 이력 조회 자체는 되돌리기 아님 |
권한이나 대상자가 바뀌어 저장할 수 없으면 안내를 읽고 후보를 다시 선택합니다. 저장 후 해당 신청 종류의 확인 화면에서 실제 결재선이 무엇으로 정해졌는지 재확인합니다.
승인·반려·담당자 변경
- 현재 차례인 사람만 일반 승인·반려를 처리합니다. 승인하면 다음 차례로 넘어가고 마지막 승인에서 신청이 최종 승인됩니다. 반려는 사유를 입력하며 뒤 단계는 진행하지 않습니다. 본인 신청은 본인이 결재하지 않습니다.
- 조직 전체 범위 담당자의 대신 승인과 일반 결재는 구분됩니다. 여러 건을 고를 때에도 각 건의 상태와 처리 가능 여부를 확인합니다.
- 미처리 결재자가 부재·퇴사했다면 전체 범위 담당자가 상세에서 그 단계의 바꾸기를 엽니다. 후보와 확인 문구를 확인하여 변경합니다. 처리된 단계는 바꿀 수 없고 팀 범위 담당자에게는 이 버튼이 없습니다.
- 새 결재자에게 결재 알림이 가고 변경자·시각·이전 결재자가 이력에 남습니다. 화면을 다시 열어 현재 담당자를 확인합니다. 알림 발송·열람·승인은 별도 상태입니다.
- 승인된 휴가의 취소 신청은 원래 신청을 삭제하는 동작과 다릅니다. 직원 가이드의 신청 현황에서 취소 가능 범위·사유·철회·반려를 확인합니다.
구현·검증·연결 기록
| 정본 | 유지보수 시 함께 확인할 것 |
|---|---|
packages/api/src/services/approval-flow.service.ts | 후보 권한·출처 우선순위·접수 시 고정된 단계·대신 처리·알림 |
packages/api/src/services/approval-line.service.ts | 개인·팀 기본값, 변경 이력, 팀장 관리 범위 |
apps/employee-app/src/components/approval/my-lines.ts 및 approver-depth.ts | 편집 취소와 선택 저장의 구분, 이름/순서/기본값 |
apps/employee-app/src/views/sections/approval-my-lines.html | 사용자에게 노출하는 이름·종류·결재자·저장 버튼 |
apps/admin/src/views/tabs/settings.html | 병원·팀 기본값과 종류별 사용·역할 제한·다시 알림 |
근거 PR은 #1122입니다. 사용자 절차는 직원 가이드와 관리자 가이드에 연결합니다. 실제 로컬 영상은 개인 휴가 결재선 한 명 선택·저장·재열람·편집 취소만 확인했습니다. 여러 단계의 실제 신청·결재, 병원/팀 고정, 대체 승인자, 미열람 재알림·급여 후속 반영은 주간 원장에 남깁니다. 고객 배포·영상 업로드는 확인하지 않았으므로 변경 이력은 공개 전 상태로 둡니다.
결재 문서 열람 범위
관리 권한이 있는 담당자가 결재선 → 병원 기본 결재선 → 결재 문서 열람 범위에서 선택합니다. 별도 저장 버튼 없이 선택 변경을 저장하므로 적용 후 다시 열어 값을 확인합니다. 설정 변경이 실패하면 오류와 실제 저장값을 확인하고 재시도합니다.
| 선택 | 누가 볼 수 있는가 |
|---|---|
| 결재선에 든 결재자만 | 결재선이 있는 문서는 신청자·해당 결재선 참여자가 조회. 이미 처리한 참여자도 포함 |
| 승인 권한 범위 전체(팀 · 하위 팀) | 담당자의 승인 권한 범위 안에 있는 신청 조회 |
| 전체 범위 담당자 | 위 팀 범위 제한과 별개로 전체 범위 권한으로 조회 |
열람 가능과 지금 승인할 차례는 다릅니다. 현재 단계에 대한 승인·알림 규칙은 유지되며 이 설정으로 모든 팀장이 동시에 승인자가 되지는 않습니다. 결재선이 없는 기존 문서는 기존 범위 규칙을 사용합니다. 대표 팀장 외 추가 팀장도 관리 팀과 하위 팀을 조회하되 실제 역할 권한을 함께 적용합니다. #1138, 결재선 참여자와 권한 범위를 대조하는 조회 필터를 근거로 하며 다중 계정의 노출 차이는 미촬영입니다.
직원 앱 목록에서 바로 결재하기
| 항목 | 안내 |
|---|---|
| 사용자 | 해당 신청에서 결재할 차례인 담당자 |
| 시작 위치 | 직원 앱 > 결재 > 결재할 문서 |
| 관련 화면 | 신청 상세의 결재선, 결재한 문서, 신청자의 내 신청 |
- 행의 신청자·기간·내용과 내 차례를 확인합니다. 행을 누르면 상세 내용을 볼 수 있습니다.
- 행의 승인을 누르면 다음 결재자에게 넘어가는지 최종 승인인지 확인창에서 알려 줍니다. 취소하면 처리하지 않고 목록으로 돌아갑니다. 확인을 마쳐야 승인됩니다.
- 반려는 사유를 입력해야 합니다. 사유 입력을 취소하면 반려하지 않습니다. 신청자에게 전달할 이유를 구체적으로 적습니다.
- 처리 후 목록에서 빠진 신청은 결재한 문서에서 확인합니다. 기간은 결재한 날짜를 기준으로 1주일·이번 달·지정 기간 중 고릅니다.
- 이미 다른 사람이 처리했거나 내 차례가 아니면 안내를 확인하고 목록을 다시 확인합니다. 목록 조회만으로 처리했다고 판단하지 않습니다.
PR #1186·#1215를 대조했습니다. 승인과 취소 신청 결재는 서로 다른 처리이며, 승인된 휴가를 취소하는 요청은 별도 배지·버튼으로 구분합니다.