/SimpleHR project
SimpleHR project

데이터 이관 작업 스펙 (HNT)

conceptedited by Cairni · 방금 · AIv1

개요

대상 회사는 (주) 에이치앤티아웃소싱시스템 (사업자번호 166-81-63798)이며, 6월 16일 기준으로 레거시 데이터의 이관 현황을 정리한 문서다. Simple HR 프로젝트 플랫폼에 최초 테넌트 데이터를 적재하는 방식으로 진행된다. 원본 이관 현황 파일을 기반으로 작성되었다. hnt-migration-status.md


이관 완료 항목

항목현황상태
부서6개, 직원 29/29명 배정
직위10개, 22/29명 배정 (7명 레거시 미지정)
근로정책7개, 17/29명 직접 배정 (12명 미지정)
근무지7개, 인식 반경 100m 통일, GPS 좌표 3건
계약서 양식29/29명 배정 (근로계약서)
휴가 잔여일연차 21명 / 총 296일, 사용 4일
출퇴근 기록5,432건 (2025-12 ~ 2026-06)
회사 설정대표자(김수일), 주소, 급여일(25일), 로고
양식22건 (CONTRACT 3 + OPTIONAL 17 + REQUIRED 2)
공지사항9건
근로계약서 변수빌트인 16개 + 서명 1개 + 수동입력 17개
관리자 유형4종 자동 생성 (최고/조직/중간/일반관리자) — startup backfill

hnt-migration-status.md


계정 구조

구분이메일이름역할비밀번호비고
관리자france8@hntos.co.kr이상재ROLE_COMP_ADMIN직접 전달최고관리자 유형 자동 배정
부관리자yunbini23@hntos.co.kr임윤빈ROLE_COMP_ADMIN이메일로 설정비밀번호 설정 이메일 발송 대상
직원 27명각 개인 이메일ROLE_COMP_USER이메일로 설정비밀번호 설정 이메일 발송 대상
  • 이메일 발송 대상: 이상재 제외 28명 (임윤빈 + 직원 27명)
  • 토큰 유효시간: 48시간
  • 비밀번호 설정 후 access_token 즉시 발급 → 자동 로그인
  • 이메일 링크 형식: {APP_BASE_URL}/set-password/{token}
  • 초기 비밀번호: 직원 28명 Test1234!@ (이메일로 재설정), 관리자 이상재 Sklee123!@# (직접 전달)

hnt-migration-status.md

관리자 등급 및 권한 관리 스펙도 함께 참조할 것.


미연결 항목 (배포 후 관리자 설정 필요)

배포 후 미연결 항목AI · 출처 클릭
높음3
근무지 배정 — 0/29명, GPS 출퇴근 불가
hnt-migration-status.md
급여 기초 설정 — 0/29명, 급여명세서 생성 불가
hnt-migration-status.md
회사 직인 미등록 — 계약서 직인란 빈칸
hnt-migration-status.md
중간1
부서-근로정책 배정 0건 — 미지정 12명 스케줄 없음
hnt-migration-status.md
낮음2
직무/직책 마스터 0건, 배정 0명 (레거시에 없음)
hnt-migration-status.md
직무상세 0/29명 — 계약서 job_duty에 직위명 fallback 표시
hnt-migration-status.md
  • GPS 출퇴근 기능은 근무지 배정 완료 전까지 사용 불가.
  • 회사 직인 미등록 시 계약서 직인란이 빈칸으로 출력됨.
  • 직무 관리 항목(직무/직책)은 레거시에 원본 데이터가 없어 마스터 0건 상태.

배포 후 관리자 작업 순서

hnt-migration-status.md


프론트엔드 기능별 준비도

기능준비도비고
직원 목록/상세 조회직무/직책/직무상세는 빈칸
출퇴근 기록 조회이력 5,432건
출퇴근 GPS 체크인근무지 미배정
휴가 신청/조회21명 연차 잔여일 연결
계약서 작성/발송부분직인 미등록, 급여항목 수동입력
급여명세서EmployeePayBase 0건 (레거시에 급여 데이터 없음)
양식 관리/서류 신청22개 양식 (레거시 HTML→markdown 변환)
공지사항9건
부서정책 일괄 설정근로정책/근무지 일괄 배정 가능

hnt-migration-status.md


근무지 GPS 좌표 현황

근무지위도경도인식 반경좌표 출처
G마켓 사무실37.5064466127.059502100m레거시 추출
G마켓 재택 (정지영)37.5374082126.9673112100m레거시 추출
G마켓 재택 (방지혜)37.2517031126.9800508100m레거시 추출
킴스분당점미등록미등록100m레거시에도 없음
강남지사미등록미등록100m레거시에도 없음
프롬바이오미등록미등록100m레거시에도 없음
킴스강서점미등록미등록100m레거시에도 없음
  • 좌표 미등록 4곳은 배포 후 관리자가 근무지 설정에서 직접 등록 가능. hnt-migration-status.md

기술 구현 세부사항

멱등성 및 배포 방식

  • 테넌트 존재 여부는 business_number='166-81-63798'로 체크, 이미 존재하면 skip.
  • main.py lifespan에서 자동 실행 — 첫 배포 시 1회 적재.
  • 2차 배포 시: 데이터 적재 확인 후 main.py의 HNT seed 블록(226~239줄) 제거.

양식 보호

  • "custom": true 플래그로 contract_template_refresh 덮어쓰기 방지. 폼 빌더 스펙 참조.

Startup Backfill

hnt-migration-status.md


테스트 코드

파일종류검증 대상
tests/unit/test_contract_template_custom_flag.py단위 (9케이스)_should_update() custom 플래그 보호
tests/integration/test_week_schedule_attendance.py통합 (2케이스)근무일정 API 출퇴근 필드 반환

hnt-migration-status.md


관련 페이지

Made with CairniExplore public wikis →