[High][데이터] 철야근무시 정상근무가 초과근무로 처리 #73
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
제보 정보
발생 환경
에러 증상 / 화면 문구
자정을 넘겨 다음날 정상 출근일까지 철야, 초과근무를 한 경우 09:00 ~ 18:00의 정상 근무까지 초과근무로 집계된다.
🤖 Cutshion 베타 에러 리포트 (Tally → n8n → Gitea)
초과근무 계산
근무 구간을 날짜별로 분해해 각 날의 정규/초과를 따로 산정하도록 변경했습니다.
자정을 넘긴 근무에서 정규 시간이 한 번만 차감돼 초과근무가 부풀려지던 문제가 해결됩니다. (33시간 근무 시 초과 24시간 → 15시간)
공휴일 결근 자동 생성
결근 자동 판정이 토·일만 검사해 공휴일에 전 직원 결근이 생성되던 문제를 수정했습니다. 기존 공휴일 판정 기준으로 통일했습니다.
근무 중인 날짜에 결근 발생
철야 예외 조건이 퇴근 기록이 있는 경우만 검사해, 아직 퇴근하지 않은 진행 중인 근무가 예외 처리에서 걸러지지 않았습니다. 퇴근 미기록 상태도 예외에 포함하되 최대 3일까지 유예하도록 변경했습니다. 3일이 지나면 결근이 정상 생성되어 관리자가 미마감 기록을 확인할 수 있습니다.
퇴근 시각 입력 범위 통일
관리자 수정은 +1일까지, 본인 보정은 제한이 없어 경로마다 규칙이 달랐습니다. 관리자 본인 보정 모두 출근일 +3 일로 통일했습니다.
유연근무 미반영 문제 수정
미퇴근 보정 팝업의 기본 퇴근 시각이 18:00으로 고정돼, 8시 30분 출근자가 그대로 확인하면 초과근무 30분이 잘못 기록됐습니다. 기본값을 출근 시각 + 9시간으로 변경했습니다.
관리자 수정 시 다일 근무 축소
수정 모달에 퇴근 날짜 입력이 없어, 며칠에 걸친 근무를 열었다 저장만 해도 하루짜리로 축소됐습니다. 퇴근 날짜 필드를 추가했습니다.
다일 근무 표시
며칠에 걸친 근무가 출근일 하루로만 표시되고 중간·종료 날짜는 빈 칸이거나 결근으로 나왔습니다. 해당 날짜를 정상 근무로 표시하고 근무일수에 반영하도록 변경했습니다.
식사 공제 입력 범위
하한 검증이 없어 음수 입력 시 초과근무가 증가했습니다. 0~240분으로 제한하고 화면 입력 상한도 통일했습니다.
출결 인원별 필터 및 열람 범위 제한
팀원 출결과 전사 출결 관리에서 특정 인원의 기록만 조회할 수 있도록 필터를 추가했습니다. 팀원 출결에는 상태 필터도 함께 추가했습니다.
팀 출결 조회 시 본인과 같거나 아래 직급만 열람하도록 제한했습니다.
팀장은 프로·팀장까지, 실장은 프로·팀장·실장까지 조회됩니다. 전사 출결 관리 권한은 제한을 받지 않습니다.
초과근무 기안서 석식 항목
시작~종료 시각 형식이라 구조적으로 1회만 입력 가능했습니다. 여러 번 식사하는 경우가 있어 분 단위 합계 입력으로 변경했습니다. 실 근무 시간·초과근무 자동 계산은 기존과 동일합니다.
휴가 취소 결재 중 결근 생성
휴가 취소를 상신한 상태에서 해당 날짜가 지나면 결근이 생성됐습니다. 결근 판정의 휴가 인정 기준을 조회 경로와 동일하게 맞췄습니다.
휴가 현황 집계
전사 휴가 현황과 대시보드 위젯에서 승인 완료 건만 집계돼, 결재 대기 중인 인원이 빠졌습니다. 결재 대기도 포함하도록 변경했습니다. (오늘 휴가자 / 향후 7일 휴가 예정 / 이번 달 사용)
오류 메시지 표시
입력값 검증 실패 시 [object Object]로 표시되던 문제를 수정했습니다.