480206912b42285a0171919833f40d8136788ebf
## 주요 기능 추가 ### 1. 작업 인계 시스템 (반차/조퇴 시) - **인계 모달** (`handoverModal`) - 인계 사유 선택 (반차/조퇴/긴급/기타) - 인수자 (다른 팀장) 선택 - 인계 날짜/시간 입력 - 인계할 팀원 선택 (체크박스) - 인계 내용 메모 - **API 연동** - POST /api/tbm/handovers (인계 요청 생성) - 세션 정보와 팀 구성 자동 조회 - from_leader_id 자동 설정 - **UI 개선** - TBM 카드에 "📤 인계" 버튼 추가 - 인계할 팀원 목록 자동 로드 - 현재 팀장 제외한 리더만 표시 ### 2. TBM 상세보기 모달 - **상세 정보 표시** (`detailModal`) - 기본 정보 (팀장, 날짜, 프로젝트, 작업 장소, 작업 내용) - 안전 특이사항 (노란색 강조) - 팀 구성 (그리드 레이아웃) - 안전 체크리스트 (카테고리별 그룹화) - **안전 체크 시각화** - ✅/❌ 아이콘으로 체크 상태 표시 - 체크됨: 초록색 배경 - 미체크: 빨간색 배경 - 카테고리별 구분 (PPE/EQUIPMENT/ENVIRONMENT/EMERGENCY) - **병렬 API 호출** - Promise.all로 세션/팀/안전체크 동시 조회 - 로딩 성능 최적화 ### 3. 작업 보고서와 TBM 연동 - **TBM 팀 구성 자동 불러오기** - `loadTbmTeamForDate()` 함수 추가 - 선택한 날짜의 TBM 세션 자동 조회 - 진행중(draft) 세션 우선 선택 - 팀 구성 정보 자동 로드 - **작업자 자동 선택** - TBM에서 구성한 팀원 자동 선택 - 선택된 작업자 시각적 표시 (.selected 클래스) - 다음 단계 버튼 자동 활성화 - **안내 메시지** - "🛠️ TBM 팀 구성 자동 적용" 알림 - 자동 선택된 팀원 수 표시 - 파란색 강조 스타일 ### 4. UI/UX 개선 - TBM 카드 버튼 레이아웃 개선 (flex-wrap) - 인계 버튼 오렌지색 (#f59e0b) - 모달 스크롤 가능 (max-height: 70vh) - 반응형 그리드 (auto-fill, minmax) ## 기술 구현 ### 함수 추가 - `viewTbmSession()`: 상세보기 (병렬 API 호출) - `openHandoverModal()`: 인계 모달 (팀 구성 자동 로드) - `saveHandover()`: 인계 저장 (worker_ids JSON array) - `loadTbmTeamForDate()`: TBM 팀 구성 조회 - `closeDetailModal()`, `closeHandoverModal()`: 모달 닫기 ### 수정 함수 - `populateWorkerGrid()`: TBM 연동 추가 (async/await) - `displayTbmSessions()`: 인계 버튼 추가 ## 파일 변경사항 - web-ui/pages/work/tbm.html (모달 2개 추가, 약 110줄) - web-ui/js/tbm.js (함수 추가, 약 250줄 증가) - web-ui/js/daily-work-report.js (TBM 연동, 약 60줄 추가) ## 사용 시나리오 ### 시나리오 1: TBM → 작업보고서 1. 아침 TBM에서 팀 구성 (예: 5명 선택) 2. 작업 보고서 작성 시 날짜 선택 3. **자동으로 5명 선택됨** ✨ 4. 바로 작업 내역 입력 가능 ### 시나리오 2: 조퇴 시 인계 1. TBM 카드에서 "📤 인계" 클릭 2. 사유 선택 (조퇴), 인수자 선택 3. 인계할 팀원 선택 (기본 전체 선택) 4. 인계 요청 → DB 저장 ### 시나리오 3: TBM 상세 확인 1. TBM 카드 클릭 2. 기본 정보, 팀 구성, 안전 체크 한눈에 확인 3. 안전 체크 완료 여부 시각적 확인 ## 데이터 흐름 ``` TBM 시작 ↓ 팀 구성 저장 (tbm_team_assignments) ↓ 작업 보고서 작성 시 ↓ GET /api/tbm/sessions/date/:date ↓ GET /api/tbm/sessions/:id/team ↓ 팀원 자동 선택 ``` 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
TK-FB-Project 개발 문서
📚 문서 구조
이 디렉토리는 TK-FB-Project의 개발 및 유지보수를 위한 종합 문서 저장소입니다.
디렉토리 구조
docs/
├── README.md # 이 파일 - 문서 인덱스
├── architecture/ # 아키텍처 관련 문서
│ ├── OVERVIEW.md # 시스템 아키텍처 개요
│ ├── DATABASE.md # 데이터베이스 스키마 및 설계
│ └── API_DESIGN.md # API 설계 원칙
├── refactoring/ # 리팩토링 관련 문서
│ ├── PLAN.md # 리팩토링 계획 및 로드맵
│ ├── LOG.md # 리팩토링 작업 로그
│ └── ANALYSIS.md # 코드 분석 리포트
├── guides/ # 개발 가이드
│ ├── SETUP.md # 개발 환경 설정
│ ├── CODING_STYLE.md # 코딩 스타일 가이드
│ ├── GIT_WORKFLOW.md # Git 워크플로우
│ ├── SECURITY.md # 보안 가이드라인
│ └── TROUBLESHOOTING.md # 문제 해결 가이드
└── api/ # API 문서
├── ENDPOINTS.md # API 엔드포인트 목록
├── AUTHENTICATION.md # 인증 및 권한
└── EXAMPLES.md # API 사용 예제
📖 주요 문서
시작하기
- 개발 환경 설정 - 프로젝트 설정 및 실행 방법
- 시스템 아키텍처 - 전체 시스템 구조 이해
- 코딩 스타일 가이드 - 코드 작성 규칙
개발
- API 문서 - REST API 엔드포인트 레퍼런스
- 데이터베이스 스키마 - DB 구조 및 관계
- 문제 해결 - 자주 발생하는 문제 해결법
리팩토링
🔄 문서 업데이트 규칙
- 리팩토링 시: 변경 사항을
refactoring/LOG.md에 기록 - API 변경 시:
api/ENDPOINTS.md업데이트 - 아키텍처 변경 시: 관련 다이어그램 및 문서 갱신
- 새로운 기능 추가 시: 해당 가이드 문서 작성
📝 문서 작성 가이드
문서 작성 원칙
- 명확성: 기술 용어는 쉽게 설명
- 최신성: 코드 변경 시 즉시 업데이트
- 완결성: 독립적으로 이해 가능하도록 작성
- 예제 포함: 코드 예제와 스크린샷 활용
마크다운 스타일
# H1: 문서 제목 (한 문서에 한 개만)
## H2: 주요 섹션
### H3: 하위 섹션
- 리스트 사용
- 코드 블록 활용
- 테이블로 정보 정리
🔗 외부 리소스
📅 문서 이력
| 날짜 | 버전 | 변경 내용 | 작성자 |
|---|---|---|---|
| 2025-12-11 | 1.0 | 문서 구조 초기 생성 | Claude Code |
📧 문의
문서 관련 질문이나 개선 제안은 프로젝트 관리자에게 문의하세요.
Description
Languages
Python
81.2%
JavaScript
8.5%
HTML
7.1%
CSS
1.6%
Cython
0.8%
Other
0.7%