Commit Graph

92 Commits

Author SHA1 Message Date
hyungi
c16fc53f3b feat: 프로젝트 관리 및 비밀번호 변경 기능 개선
주요 변경사항:
- 비활성화된 프로젝트 관리 기능 추가
  * 프로젝트 관리 페이지에 접을 수 있는 비활성 프로젝트 섹션 추가
  * 비활성화된 프로젝트 복구 기능 제공
  * 업로드 시에는 활성 프로젝트만 표시되도록 API 호출 분리

- 헤더 비밀번호 변경 기능 완전 구현
  * CommonHeader.js에 완전한 비밀번호 변경 모달 구현
  * ESC 키 지원, 실시간 유효성 검사, 토스트 메시지 추가
  * 중복 코드 제거 및 통일된 함수 호출 구조

- 수신함 수정 내용 표시 문제 해결
  * description 우선 표시로 최신 수정 내용 반영
  * 관리함에서 final_description/final_category 업데이트 로직 추가

- 현황판 날짜 그룹화 개선
  * 업로드일 기준에서 관리함 진입일(reviewed_at) 기준으로 변경
  * Invalid Date 오류 해결

- 프로젝트 관리 페이지 JavaScript 오류 수정
  * 중복 변수 선언 및 함수 참조 오류 해결
  * 페이지 초기화 로직 개선

기술적 개선:
- API 호출 최적화 (active_only 매개변수 명시적 전달)
- 프론트엔드 표시 우선순위 통일 (description || final_description)
- 백엔드 final_* 필드 업데이트 로직 추가
2025-10-26 15:28:23 +09:00
Hyungi Ahn
fd0579805c feat: 관리함 완료됨 탭 UI 개선 - 카드 형식으로 변경
 새로운 기능:
- 완료됨 탭을 테이블에서 카드 형식으로 완전 변경
- 완료 시 입력한 모든 정보를 포괄적으로 표시
- 3단 구조로 정보 체계화 (기본정보 | 관리정보 | 완료정보)

🎨 UI/UX 개선:
- 진행 중 탭과 일관된 카드 디자인 적용
- 녹색 테마로 완료 상태 시각화
- 반응형 3단 그리드 레이아웃
- HEIC 완료 사진 다운로드 지원

📋 포함된 완료 정보:
- 완료 사진 (HEIC 지원)
- 완료 코멘트
- 완료 신청일
- 해결방안, 담당부서/담당자
- 원인부서, 관리 코멘트
- 원본 업로드 사진

🔧 기술적 개선:
- getDepartmentText() 함수 추가 (부서 코드 한글 변환)
- 레거시 테이블 헤더 함수 정리
- 카드 기반 통합 렌더링 시스템
2025-10-26 14:23:28 +09:00
Hyungi Ahn
e7b51f80a0 feat: 완료 사진 HEIC 지원 및 관리함 수정 기능 개선
 새로운 기능:
- iPhone HEIC 사진 업로드 지원 (pillow-heif 라이브러리 추가)
- 완료 사진 업로드/교체 기능
- 완료 코멘트 수정 기능
- 통합 이슈 수정 모달 (진행 중/완료 대기 공통)

🔧 기술적 개선:
- HEIC 파일 자동 감지 및 원본 저장
- Base64 이미지 처리 로직 강화
- 상세한 디버깅 로그 추가
- 프론트엔드 파일 정보 로깅

📝 문서화:
- 배포 가이드 (DEPLOYMENT_GUIDE_20251026.md) 추가
- DB 변경사항 로그 업데이트
- 마이그레이션 스크립트 (020_add_management_completion_fields.sql)

🐛 버그 수정:
- loadManagementData -> initializeManagement 함수명 통일
- 모달 저장 후 즉시 닫히는 문제 해결
- 422 Unprocessable Entity 오류 해결
2025-10-26 14:18:30 +09:00
Hyungi Ahn
20965f8a42 fix: JavaScript 템플릿 리터럴 이스케이프 문제 수정
🐛 해결된 문제:
- SyntaxError: Invalid escape in identifier 오류 수정
- 백슬래시 이스케이프 문제 해결

🔧 수정 내용:
- '\n' → '\n' (개행 문자 올바른 이스케이프)
- `/api/management/${issueId}` →  (템플릿 리터럴 수정)
- `Bearer ${localStorage...` →  (템플릿 리터럴 수정)
- `저장 실패: ${error.detail...` →  (템플릿 리터럴 수정)

💡 원인:
- HTML 내 JavaScript에서 백슬래시가 이중 이스케이프되어 발생
- 템플릿 리터럴 백틱이 백슬래시로 이스케이프되어 문법 오류

Expected Result:
 JavaScript 문법 오류 해결
 모달에서 이슈 저장 기능 정상 작동
 템플릿 리터럴 올바른 사용
2025-10-26 13:13:37 +09:00
Hyungi Ahn
c680453227 feat: 관리함 통합 수정 모달 및 히스토리 추적 방안 구현
🔧 통합 수정 모달:
- 모든 진행 중 상태에서 '확인' 버튼으로 모달 열기
- 완료 대기 상태에서도 '수정' 버튼으로 동일 모달 사용
- 6열 와이드 모달로 모든 정보 한눈에 표시

📝 모달 구성:
- 왼쪽: 기본 정보 (프로젝트, 부적합명, 상세내용, 원인분류, 업로드 사진)
- 오른쪽: 관리 정보 (해결방안, 담당부서/자, 조치예상일) + 완료 신청 정보

🎯 버튼 시스템 개선:
- 일반 진행 중: 저장 | 확인 | 완료처리
- 완료 대기: 반려 | 수정 | 최종확인
- 모달에서 통합 수정 가능

✏️ 수정 기능:
- 부적합명, 상세내용 직접 수정
- 해결방안, 담당부서/자, 조치예상일 수정
- 모달에서 저장 시 실시간 반영

📋 히스토리 추적 방안 문서화:
- 단일 히스토리 테이블 vs 페이지별 테이블 비교
- 변경 이력 기록 서비스 클래스 설계
- 프론트엔드 히스토리 조회 모달 구현 방안
- 감사 추적, 데이터 복구, 보안 고려사항 포함

🔍 구현 우선순위:
- Phase 1: 기본 히스토리 테이블 + 관리함 이력
- Phase 2: 수신함 이력 + 히스토리 UI
- Phase 3: 데이터 복구 + 감사 보고서

💡 추가 아이디어:
- 변경 승인 워크플로우
- 자동 백업 시스템
- 변경 영향도 분석

Expected Result:
 모든 진행 중 상태에서 통합 수정 모달 사용
 완료 대기 상태 정보 포함 표시
 체계적인 히스토리 추적 방안 수립
 투명하고 추적 가능한 이슈 관리 기반 마련
2025-10-26 13:11:26 +09:00
Hyungi Ahn
f5136b5801 feat: 관리함 진행 중 페이지 통계에 완료 대기 카드 추가
📊 통계 카드 확장:
- 기존 3개 → 4개 카드로 확장
- 새로운 '완료 대기' 카드 추가

🟣 완료 대기 카드:
- 보라색 테마 (bg-purple-50)
- 모래시계 아이콘 (fas fa-hourglass-half)
- completion_requested_at 필드 기준 카운트

🔢 통계 계산 로직:
- 총 부적합: 전체 이슈 수
- 진행 중: review_status='in_progress' && !completion_requested_at
- 완료 대기: review_status='in_progress' && completion_requested_at
- 완료됨: review_status='completed'

🎨 UI 개선:
- 4열 그리드 레이아웃 (md:grid-cols-4)
- 일관된 색상 체계 유지
- 각 카드별 고유 아이콘과 색상

💡 사용자 경험:
- 완료 대기 상태를 한눈에 파악 가능
- 프로젝트 필터링 시 실시간 업데이트
- 관리자가 승인 대기 건수 즉시 확인

Expected Result:
 총 부적합 | 진행 중 | 완료 대기 | 완료됨
 완료 대기 건수 실시간 표시
 프로젝트별 필터링 지원
 시각적으로 구분되는 보라색 테마
2025-10-26 13:08:19 +09:00
Hyungi Ahn
63bdf4e689 feat: 관리함 진행 중 페이지 완료 대기 상태 관리 시스템 구현
🎯 상태별 UI 개선:
- 진행 중: 파란색 (일반 상태)
- 긴급: 주황색 (마감 3일 이내)
- 지연됨: 빨간색 (마감일 초과)
- 완료 대기: 보라색 (완료 신청 후)

🔒 완료 대기 상태 제한:
- 모든 입력 필드 비활성화 (readonly/disabled)
- 상세 내용 수정 버튼 → '완료 대기 중' 표시
- 저장 버튼 제거
- 회색 배경으로 비활성화 표시

📋 완료 대기 상태 정보 표시:
- 완료 신청 정보 섹션 추가
- 완료 사진, 코멘트, 신청일시 표시
- 보라색 테마로 구분

🔧 3단계 버튼 시스템:
1. 수정: 완료 대기 상태 해제 → 수정 모드 전환
2. 반려: 완료 신청 반려 + 사유 입력
3. 확인: 모든 정보 확인 모달 → 최종 완료 처리

📊 완료 확인 모달:
- 기본 정보 (프로젝트, 부적합명, 상세내용, 원인분류)
- 관리 정보 (해결방안, 담당부서/자, 조치예상일)
- 완료 신청 정보 (완료 사진, 코멘트, 신청일시)
- 업로드 사진 (원본 사진 1, 2)
- 최종 확인 버튼

🔄 API 엔드포인트 (구현 예정):
- POST /api/issues/{id}/reset-completion (수정 모드 전환)
- POST /api/issues/{id}/reject-completion (반려 처리)
- POST /api/issues/{id}/final-completion (최종 완료)

💡 사용자 경험:
- 상태별 색상 코딩으로 직관적 구분
- 완료 대기 시 수정 불가 명확 표시
- 모든 정보 한눈에 확인 가능한 모달
- 단계별 승인 프로세스

Expected Result:
 완료 대기 상태 시각적 구분
 수정 기능 적절한 제한
 체계적인 완료 승인 프로세스
 관리자 친화적 인터페이스
2025-10-26 13:06:13 +09:00
Hyungi Ahn
919bc82ca1 feat: 현황판 통계 카드 개선 및 상태별 분류
📊 통계 카드 재구성:
- 전체 진행 중: 모든 진행 중인 이슈 수
- 오늘 신규: 오늘 수신함에서 진행중으로 넘어온 이슈
- 완료 대기: 완료 신청된 이슈 (completion_requested_at 존재)
- 지연 중: 마감일이 지난 이슈

🎨 UI 개선:
- 완료 대기: 보라색 배경 + 모래시계 아이콘
- 지연 중: 빨간색 배경 + 시계 아이콘
- 각 카드별 애니메이션 점 효과 유지

🔧 로직 개선:
- reviewed_at 기준으로 오늘 신규 계산
- completion_requested_at 필드로 완료 대기 상태 판별
- expected_completion_date 기준으로 지연 상태 판별
- 실시간 통계 업데이트

💡 사용자 경험:
- 한눈에 파악 가능한 상태별 분류
- 색상 코딩으로 우선순위 구분
- 직관적인 아이콘 사용

Expected Result:
 전체 진행 중 | 오늘 신규 | 완료 대기 | 지연 중
 실시간 상태별 통계 표시
 시각적으로 구분되는 색상 체계
 관리자가 우선순위를 쉽게 파악
2025-10-26 13:02:24 +09:00
Hyungi Ahn
6e240f2296 feat: 완료 신청 API 엔드포인트 구현
🔧 백엔드 API 추가:
- POST /api/issues/{issue_id}/completion-request
- 완료 사진 Base64 업로드 및 저장
- 완료 코멘트 저장
- 완료 신청 시간 및 신청자 기록

📊 데이터 모델 확장:
- completion_requested_at: 완료 신청 시간
- completion_requested_by_id: 완료 신청자 ID
- completion_photo_path: 완료 사진 경로
- completion_comment: 완료 코멘트

🛡️ 검증 로직:
- 진행 중 상태만 완료 신청 가능
- 중복 완료 신청 방지
- 파일 업로드 오류 시 롤백 처리

🔄 프론트엔드 연동:
- refreshDashboard() 함수 추가
- 완료 신청 후 현황판 자동 새로고침
- 오류 처리 및 사용자 피드백

Expected Result:
 완료 신청 API 정상 작동
 완료 사진 업로드 및 저장
 완료 대기 상태로 변경
 404 오류 해결
2025-10-26 12:55:45 +09:00
Hyungi Ahn
b836b010b9 feat: 현황판 진행 상태 세분화 및 완료 신청 기능 구현
🎯 진행 상태 4단계 세분화:
- 진행 중 (파란색): 일반적인 진행 상태
- 긴급 (주황색): 마감 3일 이내
- 지연됨 (빨간색): 마감시간 초과
- 완료 대기 (보라색): 완료 신청 후 승인 대기

🔧 상태 판별 로직:
- 마감시간 기준 자동 상태 변경
- completion_requested_at 필드로 완료 대기 상태 판별
- 각 상태별 고유 색상, 아이콘, 텍스트

📱 완료 신청 기능:
- 마감시간 카드 우하단에 '완료신청' 버튼
- 완료 사진 업로드 (필수, 5MB 제한)
- 완료 코멘트 입력 (선택사항)
- 실시간 이미지 미리보기

🗄️ DB 구조 확장:
- completion_requested_at: 완료 신청 시간
- completion_requested_by_id: 신청자 ID
- completion_photo_path: 완료 사진 경로
- completion_comment: 완료 코멘트

🎨 UI/UX 개선:
- 상태별 그라데이션 배경색
- 애니메이션 아이콘 (톱니바퀴, 경고, 시계 등)
- 드래그 앤 드롭 사진 업로드
- 모달 기반 완료 신청 폼

💡 워크플로우:
1. 담당자가 작업 완료 후 '완료신청' 클릭
2. 완료 사진과 코멘트 업로드
3. 상태가 '완료 대기'로 변경
4. 관리자 승인 후 '완료됨'으로 최종 처리

🔐 보안 및 검증:
- 이미지 파일 타입 검증
- 파일 크기 제한 (5MB)
- Base64 인코딩으로 안전한 전송
- 사용자 인증 및 권한 확인

Expected Result:
 진행 상황을 한눈에 파악 가능한 색상 코딩
 마감 관리 자동화 (긴급/지연 상태)
 완료 신청 프로세스로 품질 관리 강화
 직관적인 UI로 사용자 경험 향상
2025-10-26 12:50:33 +09:00
Hyungi Ahn
b090ff8f29 fix: 관리함 상세 내용 편집 기능 JavaScript 오류 수정
🐛 해결된 오류들:

1️⃣ ReferenceError: allIssues 변수 참조 오류:
- allIssues → issues로 변수명 수정
- 관리함 페이지에서 사용하는 올바른 변수명 적용
- cancelDetailEdit(), saveDetailEdit() 함수에서 수정

2️⃣ TypeError: additionalInfoForm 요소 참조 오류:
- document.getElementById() 결과 null 체크 추가
- 요소가 존재할 때만 이벤트 리스너 등록
- 안전한 DOM 요소 접근으로 개선

🔧 코드 안정성 개선:
- DOM 요소 존재 여부 확인 후 접근
- 변수 스코프 일관성 유지
- 오류 방지를 위한 방어적 프로그래밍

💡 수정 사항:
- issues.find() 사용으로 올바른 데이터 접근
- if (additionalInfoForm) 조건부 이벤트 리스너 등록
- 중괄호 누락 문제 해결

Expected Result:
 상세 내용 편집 기능 정상 작동
 JavaScript 오류 없는 안정적인 실행
 DOM 요소 안전 접근
 일관된 변수 참조
2025-10-26 12:44:21 +09:00
Hyungi Ahn
7caf36c856 feat: 관리함 진행중 페이지 상세 내용 편집 기능 구현
📝 상세 내용 인라인 편집 시스템:

🎨 프론트엔드 UI 개선:
- 상세 내용 섹션에 '수정' 버튼 추가
- 읽기 모드 ↔ 편집 모드 토글 기능
- 편집 시 텍스트 영역으로 전환
- 취소/저장 버튼으로 편집 제어
- 실시간 UI 업데이트

🔧 백엔드 API 확장:
- PUT /api/management/{issue_id} 엔드포인트 추가
- ManagementUpdateRequest에 final_description 필드 추가
- 진행중 상태 이슈만 수정 가능하도록 제한
- 권한 검증 및 오류 처리

💡 핵심 기능:
- 부적합명은 유지하고 상세 내용만 수정
- 수신함에서 입력한 상세 부분을 관리함에서 보완 가능
- 원본 데이터와 수정 데이터 자동 결합
- 실시간 저장 및 화면 반영

🔐 보안 및 제한사항:
- 관리함 페이지 권한 필요
- 진행중 상태 이슈만 편집 가능
- 완료된 이슈는 편집 불가
- 사용자 인증 및 권한 검증

🎯 사용 시나리오:
1. 관리함 진행중 탭에서 '수정' 버튼 클릭
2. 텍스트 영역에서 상세 내용 편집
3. 저장 시 부적합명과 자동 결합
4. 실시간으로 화면에 반영

Expected Result:
 수신함 검토 후 관리함에서 상세 내용 보완 가능
 직관적인 인라인 편집 인터페이스
 데이터 일관성 유지 (부적합명 + 상세 내용)
 안전한 권한 기반 편집 제어
2025-10-26 12:36:35 +09:00
Hyungi Ahn
151d1cc875 feat: 현황판 정렬 기준 필터 제거 - UI 단순화
🗑️ 정렬 기준 필터 완전 제거:
- 정렬 기준 드롭다운 UI 삭제
- sortIssues() 함수 제거
- 관련 함수 호출 제거

💡 UI 단순화 효과:
- 필터 영역이 더 깔끔해짐
- 프로젝트 선택에 집중
- 사용자 인터페이스 복잡도 감소

🎯 기본 정렬 유지:
- 날짜별 그룹화는 그대로 유지
- 최신순 정렬 (newest first) 기본 적용
- 핵심 기능은 보존하면서 불필요한 옵션만 제거

Expected Result:
 더 간단하고 직관적인 필터 인터페이스
 프로젝트 선택 + 새로고침 버튼만 유지
 사용자 혼란 요소 제거
 핵심 기능에 집중
2025-10-26 12:34:08 +09:00
Hyungi Ahn
01fa39c75b feat: 현황판 카드 최종 UI 완성 - 시각적 임팩트 극대화
🖼️ 이미지 크기 최대 확장:
- 이미지 크기: 20x20 → 24x24 (20% 추가 증가)
- 아이콘 크기: text-lg → text-xl (더 선명한 표시)
- 카드 영역을 최대한 활용하여 시각적 정보 전달력 극대화

🎯 진행중 태그 프리미엄 디자인:
- 배경: 연한 파란색 → 진한 파란색 그라데이션 (blue-500 to blue-600)
- 텍스트: 그라데이션 → 흰색 볼드체 (더 강한 대비)
- 패딩: px-3 py-1 → px-4 py-1.5 (더 풍성한 느낌)
- 그림자: shadow-sm → shadow-md (입체감 강화)
- 아이콘: 정적 시계 → 회전하는 톱니바퀴 (fa-cog fa-spin)
- 상태 점: 파란색 → 흰색 (더 명확한 대비)

📅 발생날짜 독립 디자인:
- 회색 배경 캡슐로 분리하여 정보 구분 명확화
- 진행중 태그와 시각적으로 분리되어 가독성 향상

👥 일정 & 담당 순서 변경:
- 담당자 → 마감시간 순으로 재배치
- 사람 중심의 정보 우선 표시
- 패딩 증가 (p-2 → p-3)로 더 여유로운 느낌

🎨 전체적인 시각적 개선:
- 더 강한 색상 대비로 정보 구분 명확화
- 애니메이션 효과로 생동감 추가
- 공간 활용도 최적화로 정보 밀도 향상

Expected Result:
 이미지 가시성 44% 향상 (16→24px)
 진행중 상태의 강력한 시각적 임팩트
 담당자 우선 표시로 책임 소재 명확화
 전체적으로 더 프로페셔널한 느낌
2025-10-26 12:32:12 +09:00
Hyungi Ahn
cbfa4170c7 feat: 현황판 카드 레이아웃 미세 조정 - 공간 효율성 개선
🎨 헤더 레이아웃 최적화:
- 진행중 태그와 발생날짜를 한 줄로 배치
- '발생 날짜' → '발생:' 으로 간소화하여 공간 절약
- 우측 상단 공간 효율성 향상

📏 부적합명 크기 조정:
- 텍스트 크기: text-lg → text-base (18px → 16px)
- 패딩: py-2 → py-1.5 (8px → 6px)
- 전체적으로 더 컴팩트한 느낌

🖼️ 이미지 크기 확대:
- 이미지 크기: 16x16 → 20x20 (25% 증가)
- 간격: space-x-2 → space-x-3 (8px → 12px)
- 상태 표시 점: 2x2 → 3x3 (더 명확한 시각적 피드백)
- 아이콘 크기: text-sm → text-lg (더 선명한 표시)

💡 공간 배치 개선:
- 상단 영역 압축으로 하단 콘텐츠 영역 확보
- 이미지 가시성 향상으로 시각적 정보 전달력 증대
- 전체적인 정보 밀도 최적화

Expected Result:
 헤더 영역 공간 효율성 향상
 이미지 가시성 25% 증가
 진행중/발생날짜 한눈에 파악 가능
 전체적으로 더 균형잡힌 레이아웃
2025-10-26 11:58:14 +09:00
Hyungi Ahn
ae45b6f051 feat: 현황판 카드 레이아웃 대폭 개선 - 정보 배치 최적화
🎨 헤더 레이아웃 재구성:
- 원인 태그를 오른쪽으로 이동하여 균형감 향상
- 발생 날짜를 오른쪽 상단에 배치하여 시간 정보 강조
- 카테고리 한글 표시 (자재 누락, 설계 오류, 반입 불량, 검사 누락, 기타)

📊 콘텐츠 영역 2x2 그리드 재구성:
- 상세 내용 | 해결 방안 (상단 나란히 배치)
- 이미지 | 일정 & 담당 (하단 배치)

🎯 해결 방안 섹션 강화:
- 녹색 테마로 해결책 강조 (bg-green-50, border-green-200)
- 전구 아이콘으로 아이디어 시각화
- 상세 내용과 동등한 비중으로 배치

💼 일정 & 담당 UI 개선:
- 마감시간: 오렌지 테마 카드 (긴급성 표현)
- 담당자: 보라색 테마 카드 (책임감 표현)
- 각각 아이콘과 색상으로 구분
- 컴팩트한 카드 형태로 가독성 향상

🖼️ 이미지 섹션 최적화:
- 크기를 16x16으로 조정하여 공간 효율성 증대
- 상태 표시 점 크기 축소로 깔끔함 유지

🏷️ 카테고리 태그 개선:
- 영어 → 한글 표시로 직관성 향상
- 오른쪽 배치로 시각적 균형 개선

Expected Result:
 정보 우선순위에 따른 배치 최적화
 상세 내용과 해결 방안의 동등한 비중
 색상 코딩으로 정보 구분 명확화
 컴팩트하면서도 가독성 높은 레이아웃
2025-10-26 11:55:20 +09:00
Hyungi Ahn
81699a0270 feat: 부적합명과 상세 내용 UI 차별화로 가독성 향상
🎨 부적합명 강조 디자인:
- 파란색 배경 박스 (bg-blue-50)
- 왼쪽 파란색 보더 (border-l-4 border-blue-400)
- 진한 파란색 텍스트 (text-blue-900)
- 볼드 폰트로 중요도 강조

📝 상세 내용 보조 디자인:
- 회색 배경 (bg-gray-50)
- 얇은 회색 테두리 (border border-gray-200)
- 회색 이탤릭 텍스트 (text-gray-600 italic)
- 아이콘과 라벨로 구분 명확화

💡 시각적 계층 구조:
1️⃣ 부적합명: 눈에 띄는 파란색 강조 박스
2️⃣ 상세 내용: 차분한 회색 보조 정보

🔧 적용 범위:
- 현황판 카드 레이아웃
- 관리함 진행중 카드 레이아웃
- 일관된 디자인 언어 적용

Expected Result:
 부적합명이 즉시 눈에 들어옴
 상세 내용과 명확한 구분
 정보 우선순위가 시각적으로 명확
 전체적인 가독성 향상
2025-10-26 11:50:54 +09:00
Hyungi Ahn
6654cf62bd feat: 부적합명과 상세 내용 분리 시스템 구현
🎯 부적합 정보 구조화 개선:

📝 수신함 검토 모달 개선:
- '설명' → '부적합명' + '상세 내용'으로 분리
- 부적합명: 간단한 제목 (필수 입력)
- 상세 내용: 자세한 설명 (선택 입력)
- 저장 시 첫 번째 줄에 제목, 나머지는 상세 내용으로 결합

🏢 관리함 진행중 페이지 개선:
- No. 옆에 프로젝트명 표시 (작은 글씨)
- 부적합명을 카드 헤더에 큰 제목으로 표시
- '부적합 내용' → '상세 내용'으로 변경
- getIssueTitle(), getIssueDetail() 헬퍼 함수 추가

📊 현황판 페이지 개선:
- No. 옆에 프로젝트명과 카테고리 태그 표시
- 부적합명을 카드 헤더에 제목으로 표시
- '부적합 내용' → '상세 내용'으로 변경
- 동일한 헬퍼 함수로 일관성 유지

💡 핵심 개선사항:
- 정보 계층 구조 명확화 (제목 vs 상세)
- 시각적 가독성 향상 (헤더에 중요 정보 집중)
- 일관된 표시 방식 (수신함 → 관리함 → 현황판)
- 기존 데이터 호환성 유지

🔧 기술적 구현:
- 첫 번째 줄을 제목으로 추출
- 두 번째 줄부터를 상세 내용으로 분리
- 기존 description 필드 활용 (DB 변경 없음)
- 폴백 처리로 안정성 확보

Expected Result:
 부적합 정보의 체계적 관리
 한눈에 파악 가능한 제목 표시
 상세 내용과 요약 정보 분리
 전체 워크플로우 일관성 향상
2025-10-26 11:48:47 +09:00
Hyungi Ahn
61f5720af3 feat: 관리함 진행중 페이지에 추가 정보 입력 기능 구현
🎯 관리함 진행중 페이지 추가 정보 입력 시스템:

📊 DB 구조 확장:
- responsible_person_detail: 해당자 상세 정보 (VARCHAR 200)
- cause_detail: 원인 상세 정보 (TEXT)
- additional_info_updated_at: 추가 정보 입력 시간
- additional_info_updated_by_id: 추가 정보 입력자 ID
- 018_add_additional_info_fields.sql 마이그레이션 실행 완료

🔧 백엔드 API:
- /api/management/{issue_id}/additional-info (PUT): 추가 정보 업데이트
- /api/management/{issue_id}/additional-info (GET): 추가 정보 조회
- AdditionalInfoUpdateRequest 스키마 추가
- management.py 라우터 생성 및 등록

🎨 프론트엔드 UI:
- 진행중 탭 상단에 '추가 정보 입력' 버튼 추가
- 완료됨 탭에서는 버튼 자동 숨김
- 세련된 모달 디자인 (오렌지 테마)
- 원인부서 드롭다운 (생산/품질/구매/설계/영업)
- 해당자 상세 입력 필드
- 원인 상세 텍스트 영역

💡 핵심 특징:
- 모든 필드 선택사항 (NULL 허용)
- 기록용 정보로 외부 노출 없음
- 기존 데이터 자동 로드 및 수정 가능
- 입력 시간/입력자 자동 추적
- 진행중 상태 이슈만 대상

🔐 권한 관리:
- issues_management 페이지 권한 필요
- 진행중 상태 이슈만 수정 가능
- 사용자별 입력 이력 추적

🎯 사용 시나리오:
1. 관리함 > 진행중 탭 접근
2. '추가 정보 입력' 버튼 클릭
3. 원인부서, 해당자, 원인상세 입력
4. 저장 후 내부 기록으로 보관

Expected Result:
 관리함에서 상세한 원인 정보 기록 가능
 체계적인 이슈 추적 및 분석 기반 마련
 선택적 정보 입력으로 유연한 운영
 깔끔한 UI로 사용자 경험 향상
2025-10-26 11:39:30 +09:00
Hyungi Ahn
b45cfd96bc feat: 현황판 카드 레이아웃 대폭 개선 - 실용성과 미관 향상
🎨 현황판 카드 레이아웃 개선사항:

1️⃣ 헤더 레이아웃 재구성:
-  단순한 좌우 배치 →  좌측: No. + 원인분류 태그, 우측: 긴급 + 진행중 상태
- 원인분류를 No. 옆으로 이동하여 한눈에 파악 가능
- 진행중 상태를 우측 상단으로 이동하여 시각적 균형 개선

2️⃣ 이미지 미리보기 기능 추가:
-  아이콘만 표시 →  실제 이미지 미리보기
- 크기 확대: 16x16px → 20x20px (25% 증가)
- 실제 이미지 로드 실패시 fallback 아이콘 표시
- object-cover로 이미지 비율 유지하며 완전 채움

3️⃣ 레이아웃 최적화:
- 불필요한 '원인 분류' 섹션 삭제 (헤더로 이동)
- 하단 '진행 중' 상태 표시 제거 (헤더로 이동)
- 해결방안을 col-span-2로 확장하여 공간 효율성 증대
- 전체적으로 더 깔끔하고 정보 밀도 높은 레이아웃

4️⃣ 시각적 개선:
- 이미지 hover 효과: 그림자 + 확대 애니메이션
- 상태 표시 아이콘 추가 (시계 아이콘)
- 그라데이션과 그림자 효과로 현대적 느낌
- 정보 계층 구조 명확화

🎯 사용성 개선 효과:
- 이미지 내용을 바로 확인 가능 (클릭 전 미리보기)
- 중요 정보(No., 원인분류, 상태)가 상단에 집중
- 공간 활용도 증가로 더 많은 정보 표시
- 시각적 노이즈 감소로 가독성 향상

🔧 기술적 개선:
- img 태그 onerror 핸들링으로 안정성 확보
- CSS object-cover로 이미지 왜곡 방지
- 반응형 레이아웃 유지
- 접근성 개선 (alt 텍스트 추가)

Expected Result:
 실제 이미지 미리보기로 내용 파악 용이
 정보 배치 최적화로 스캔 효율성 증대
 깔끔하고 현대적인 카드 디자인
 공간 효율성과 정보 밀도 향상
2025-10-26 11:25:08 +09:00
Hyungi Ahn
e059d3feec feat: 관리함 페이지 No. 표시 UI 대폭 개선
🎨 관리함 UI 개선사항:

1️⃣ 진행중 카드 헤더:
-  단순한 파란색 배지 →  그라데이션 텍스트 + 애니메이션 점
- 현황판과 동일한 세련된 스타일 적용

2️⃣ 완료됨 테이블 No. 셀:
-  단순한 텍스트 →  녹색 그라데이션 + 상태 점
- 완료 상태를 시각적으로 강조

3️⃣ 테이블 헤더 개선:
- 진행중: 파란색 그라데이션 + 애니메이션 점
- 완료됨: 녹색 그라데이션 + 상태 점
- 각 탭의 성격에 맞는 색상 구분

4️⃣ 모달 제목 개선:
-  단순한 텍스트 →  그라데이션 No. + 상태 점
- '부적합 No.1 상세 정보' 형태로 시각적 강조

🎯 시각적 개선 효과:
- 프로젝트별 순번이 더욱 눈에 띄게 표시
- 진행중(파란색) vs 완료됨(녹색) 상태 구분
- 현황판과 일관된 디자인 언어
- 애니메이션 효과로 생동감 추가

Expected Result:
 관리함에서 No.1, No.2... 가 세련되게 표시
 상태별 색상 구분으로 직관적 인식
 전체적으로 통일된 브랜드 경험
2025-10-26 11:21:15 +09:00
Hyungi Ahn
54032f6685 feat: 프로젝트별 순번 자동 할당 시스템 구현
🎯 핵심 개선사항:
- 수신함에서 진행중/완료로 상태 변경시 project_sequence_no 자동 할당
- 프로젝트별로 1부터 시작하는 깔끔한 순번 체계

🔧 백엔드 수정:
- inbox.py: update_issue_status에 자동 할당 로직 추가
- generate_project_sequence_no() DB 함수 활용
- 진행중/완료 상태 변경시에만 실행

📁 DB 마이그레이션:
- 017_fix_project_sequence_no.sql 생성
- 기존 데이터 보정 (누락된 순번 0개 확인)
- migration_log 테이블 구조에 맞게 로그 기록

📋 문서화:
- DB_CHANGES_LOG.md 생성 및 업데이트
- 배포 가이드, 검증 방법, 주의사항 명시
- Docker 환경 기준 실행 방법 제공

 실행 완료 상태:
- 마이그레이션 성공 (2025-10-26 11:15:44+09:00)
- 백엔드 서비스 재시작 완료
- 모든 검증 항목 통과

Expected Result:
🎯 현황판에서 프로젝트별 No.1, No.2, No.3... 표시
🎯 6개월 후에도 각 프로젝트 내에서 작은 번호 유지
🎯 전체 통합 번호 대신 프로젝트별 깔끔한 순번 체계
2025-10-26 11:17:06 +09:00
Hyungi Ahn
2662b1138e feat: 현황판 카드 정보 표시 방식 개선
📋 Information Display Improvements:

1️⃣ 마감시간/담당자 섹션 개선:
-  '마감시간 | 담당부서 담당자' (복잡한 한 줄 표시)
-  마감시간: / 담당자: (깔끔한 분리 표시)
- 담당부서 제거 (불필요한 정보)
- 각각 별도 라인으로 구분하여 가독성 향상

2️⃣ 부적합 내용 섹션 개선:
-  단순한 텍스트 표시
-  제목과 본문 구분 표시
- 첫 번째 단어를 제목으로 강조 (font-semibold)
- 나머지 내용을 본문으로 표시 (작은 글씨)
- 회색 배경 + 파란색 좌측 테두리로 시각적 구분

🎨 Visual Enhancements:
- 마감시간/담당자: 라벨(text-xs) + 값(font-medium) 구조
- 부적합 내용: 배경 박스 + 좌측 강조 테두리
- 제목: font-semibold + 약간 큰 글씨
- 본문: 작은 글씨 + 줄간격 조정 (leading-relaxed)

📱 Better Readability:
- 정보 계층 구조 명확화
- 시각적 구분으로 스캔 가능성 향상
- 공간 효율성과 가독성 균형

Expected Result:
 더 깔끔한 정보 표시
 제목-본문 구분으로 내용 파악 용이
 마감시간/담당자 정보 명확화
 시각적 계층 구조 개선
2025-10-26 11:06:33 +09:00
Hyungi Ahn
f373a16086 feat: 현황판 카드 디자인을 세련된 모던 스타일로 대폭 개선
🎨 Modern Card Design:
-  촌스러운 작은 이미지 →  세련된 큰 이미지 (16x16px)
- 그라데이션 배경과 테두리로 고급스러운 느낌
- 이미지 있을 때 초록색 상태 점 표시

🖼️ Enhanced Image Display:
- 크기: 8x8px → 16x16px (2배 확대)
- 그라데이션 배경 (파란색 계열)
- hover 효과: 그림자 + 확대 애니메이션
- 상태 표시: 우상단 초록색 점으로 이미지 존재 표시

🎯 Visual Improvements:
- No. 텍스트: 그라데이션 텍스트 효과
- 긴급 배지: 🔥 이모지 + 그라데이션 배경
- 원인 분류: 태그 아이콘 + 노란-주황 그라데이션
- 해결방안: 회색 배경 박스로 구분
- 진행 중 상태: 파란색 그라데이션 배경 + 테두리

🚀 Advanced Hover Effects:
- 카드 전체: 위로 이동 + 살짝 확대
- 고급 그림자 효과 (3단계 레이어)
- 파란색 글로우 효과
- 부드러운 cubic-bezier 애니메이션

🎨 Color Scheme:
- 배경: 미묘한 그라데이션 (흰색 → 연한 회색)
- 이미지: 파란색 계열 그라데이션
- 원인분류: 노란-주황 그라데이션
- 상태: 파란-인디고 그라데이션

Expected Result:
 훨씬 세련되고 모던한 디자인
 이미지 가독성 대폭 향상
 고급스러운 hover 애니메이션
 직관적인 시각적 피드백
2025-10-26 11:03:20 +09:00
Hyungi Ahn
b94c6dff1a feat: 현황판 카드를 간결한 읽기 전용 2x3 그리드로 변경
🎯 Simplified Card Layout:
-  긴 편집 가능한 카드 →  간결한 읽기 전용 카드
- 2x3 그리드 형식으로 정보 압축
- 카드 높이 대폭 단축

📋 Grid Structure (2 columns x 3 rows):
Row 1: 부적합 내용 | 발생 날짜
Row 2: 이미지 | 마감시간 + 담당부서/담당자
Row 3: 원인 분류 | 해결 방안
Bottom: 상태 (진행 중)

🎨 Visual Improvements:
- 작은 이미지 아이콘 (8x8px)
- 원인 분류: 노란색 배지
- 마감시간과 담당 정보 결합
- 중앙 정렬된 상태 표시

📱 Compact Design:
- 패딩 축소 (p-6 → p-4)
- 텍스트 크기 최적화 (text-sm)
- 불필요한 여백 제거
- 한눈에 들어오는 정보 배치

🔧 Read-Only Features:
- 모든 필드 읽기 전용
- 편집 버튼 제거
- 사진 클릭 시 모달 확대만 가능
- 깔끔한 정보 표시

Expected Result:
 훨씬 간결한 카드 디자인
 한눈에 들어오는 정보 배치
 읽기 전용 모드
 모바일 친화적 크기
2025-10-26 10:58:16 +09:00
Hyungi Ahn
2a5455b221 feat: 현황판을 관리함 스타일로 완전 변경 (날짜 그룹화 + 편집 가능)
🔄 Complete Layout Change:
-  단순 카드 그리드 →  관리함 스타일 날짜별 그룹화
- 날짜별 접기/펼치기 기능 추가
- 업로드일 기준으로 그룹화 및 최신순 정렬

📋 Card Layout (Management Style):
- 헤더: No., 긴급 표시 + 저장/완료처리 버튼
- 업로드 사진: 맨 위로 이동 (2개 슬롯, 없으면 '사진 없음')
- 부적합 내용: 읽기 전용 텍스트
- 원인 분류: 노란색 배지로 표시
- 관리 정보: 편집 가능한 입력 필드들

🎯 Interactive Features:
- 해결방안: textarea (편집 가능)
- 담당부서: select dropdown (편집 가능)
- 담당자: text input (편집 가능)
- 조치 예상일: date input (편집 가능)
- 원인부서: 읽기 전용

📅 Date Grouping:
- 업로드일(report_date) 기준 그룹화
- 날짜 헤더: 클릭으로 접기/펼치기
- 각 그룹별 건수 표시
- '업로드일' 배지로 기준 명시

🎨 Visual Improvements:
- 이모지 아이콘으로 필드 구분 (💡🏢👤📅)
- 진행 중 상태 애니메이션 유지
- 부드러운 hover 효과
- 일관된 색상 체계

🔧 Functionality:
- toggleDateGroup() 함수로 그룹 접기/펼치기
- 사진 모달 확대 기능 유지
- 긴급 표시 (3일 이내 마감)
- 저장/완료처리 버튼 (UI만, 기능은 추후)

Expected Result:
 관리함과 완전히 동일한 UI/UX
 날짜별 체계적 정리
 편집 가능한 관리 인터페이스
 직관적인 정보 표시
2025-10-26 10:52:12 +09:00
Hyungi Ahn
b4fb461a32 feat: 현황판을 관리함 진행 중 카드 형식으로 완전 변경
🎨 UI Format Change:
-  가로 테이블 형식 (정보 압축, 가독성 저하)
-  관리함 진행 중 카드 형식 (직관적, 모바일 친화적)

📋 Card Layout Features:
- 헤더: No., 긴급 표시, 등록일
- 기본 정보: 프로젝트, 부적합 내용, 원인 분류
- 관리 정보: 해결방안, 담당부서, 담당자, 조치 예상일, 원인부서
- 업로드 사진: 클릭 시 모달 확대
- 진행 중 표시: 애니메이션 점 + 상태 표시

🎯 UX Improvements:
- 3컬럼 반응형 그리드 (데스크톱/태블릿/모바일)
- 카드 hover 효과: 위로 이동 + 그림자 + 좌측 파란 테두리
- 긴급 표시: 예상완료일 3일 이내 시 빨간 배지
- 부드러운 애니메이션: 0.3초 transition
- 사진 hover 효과: 확대 + 색상 변경

📱 Mobile Optimization:
- 1컬럼 레이아웃으로 모바일 최적화
- 터치 친화적 카드 인터페이스
- 스크롤 가능한 세로 배치
- 적절한 패딩과 간격

🎨 Visual Enhancements:
- 진행 중 상태 애니메이션 (pulse 효과)
- 일관된 색상 체계 (파란색 강조)
- 깔끔한 카드 디자인
- 정보 계층 구조 명확화

🔧 Code Structure:
- createIssueRow → createIssueCard 함수 변경
- 테이블 HTML → 카드 그리드 HTML
- 테이블 CSS → 카드 CSS 스타일
- 반응형 그리드 시스템 적용

Expected Result:
 관리함과 일관된 UI/UX
 대폭 향상된 가독성
 모바일 최적화
 직관적인 정보 표시
2025-10-26 10:47:42 +09:00
Hyungi Ahn
1907eddcf0 feat: 부적합 조회 페이지 UI/UX 대폭 개선
🔄 Major Changes:
-  복잡한 모바일 캘린더 →  간단한 시작/끝 날짜 입력
-  전체 부적합 조회 →  자신이 올린 내용만 조회

📅 Date Filter Improvements:
- 시작날짜/끝날짜 직접 입력 방식
- 빠른 선택 버튼: 오늘, 이번 주, 이번 달, 전체
- 날짜 기준: report_date (등록일) 기준으로 필터링
- 기본값: 이번 주 (일요일~오늘)

🔒 Privacy Enhancement:
- 자신이 올린 부적합 사항만 표시 (reporter_id 기준)
- 전체 항목은 현황판에서 확인 가능
- 개인 데이터 보호 강화

🎯 UX Improvements:
- 모바일 캘린더 CSS/JS 제거로 페이지 로딩 속도 향상
- 직관적인 날짜 입력 인터페이스
- 날짜 유효성 검증 (시작날짜 ≤ 끝날짜)
- 명확한 에러 메시지

📱 Mobile Friendly:
- 네이티브 date picker 사용
- 터치 친화적 인터페이스
- 반응형 레이아웃 유지

🔧 Code Cleanup:
- 모바일 캘린더 관련 코드 완전 제거
- 불필요한 CSS/JS 의존성 제거
- 함수 간소화 및 최적화

Expected Result:
 더 빠르고 직관적인 날짜 선택
 개인 데이터 보호
 모바일 최적화
 코드 복잡성 감소
2025-10-26 10:43:42 +09:00
Hyungi Ahn
d9cdaf622e feat: 현황판 UI를 가로 테이블 형식으로 완전 개선
🔄 Major UI Redesign:
-  세로 카드 레이아웃 (가독성 저하)
-  가로 테이블 레이아웃 (한눈에 정보 확인)

📊 Table Structure:
- 11개 컬럼: No., 프로젝트, 부적합내용, 카테고리, 해결방안, 담당부서, 담당자, 예상완료일, 원인부서, 사진, 등록일
- 가로 스크롤 지원으로 모든 정보 표시
- 각 컬럼별 최적화된 너비 설정

🎯 UX Improvements:
- 긴급 표시: 예상완료일 3일 이내 시 빨간 배지
- 텍스트 truncate: 긴 내용은 말줄임표로 처리 (hover시 전체 내용 표시)
- 사진 아이콘: 클릭 시 모달로 확대
- 행 hover 효과: 마우스 오버 시 배경색 변경

📱 Responsive Features:
- 가로 스크롤로 모바일에서도 모든 정보 확인 가능
- Sticky 헤더: 스크롤 시 헤더 고정
- 최소 너비 보장으로 정보 압축 방지

🎨 Visual Enhancements:
- 깔끔한 테이블 디자인
- 적절한 패딩과 간격
- 일관된 색상 체계
- 부드러운 hover 애니메이션

Expected Result:
 대폭 향상된 가독성
 한 화면에서 모든 정보 확인
 효율적인 공간 활용
 관리함과 일관된 UX
2025-10-26 10:36:58 +09:00
Hyungi Ahn
591f3307a9 feat: 현황판 UI를 관리함 진행 중 스타일로 개선
🎨 UI Redesign:
- 기존 프로젝트별 그룹 카드 → 개별 이슈 카드로 변경
- 관리함 진행 중 페이지와 동일한 카드 형식 적용
- 읽기 전용으로 구현 (수정 기능 없음)

📋 Card Content:
- 헤더: No., 긴급 표시, 등록일
- 기본 정보: 프로젝트, 부적합 내용, 카테고리
- 관리 정보: 해결방안, 담당부서, 담당자, 예상완료일, 원인부서
- 사진 정보: 업로드 사진 미리보기 (클릭 시 확대)

🔧 Features:
- 내용이 없는 부분은 '-'로 표시
- 사진 모달 확대 기능 (ESC 키 지원)
- 긴급도 표시 (예상완료일 3일 이내)
- 반응형 그리드 레이아웃 (1/2/3 컬럼)

🎯 Layout:
- 데스크톱: 3컬럼 그리드
- 태블릿: 2컬럼 그리드
- 모바일: 1컬럼 그리드

Expected Result:
 관리함과 일관된 UI/UX
 상세 정보 한눈에 확인 가능
 사진 확대 기능으로 편의성 향상
 읽기 전용으로 안전한 조회
2025-10-26 10:33:45 +09:00
Hyungi Ahn
f7fa20605c fix: 현황판 페이지 권한 시스템 초기화 오류 수정
🔧 Permission System Fix:
- loadPermissions() → setUser() + loadPagePermissions() 수정
- PagePermissionManager 중복 생성 제거 (전역 인스턴스 사용)
- issues_dashboard 페이지를 permissions.js에 추가 (defaultAccess: true)

🐛 Fixed Error:
-  TypeError: window.pagePermissionManager.loadPermissions is not a function
-  올바른 메서드 호출: setUser() + loadPagePermissions()

📋 Permission Structure:
- issues_dashboard: { title: '현황판', defaultAccess: true }
- 모든 사용자가 기본적으로 현황판 접근 가능

Expected Result:
 현황판 페이지 권한 시스템 정상 초기화
 페이지 접근 권한 확인 정상 동작
 공통 헤더 및 메뉴 정상 표시
2025-10-26 10:28:53 +09:00
Hyungi Ahn
0a45c5dcbb fix: 현황판 페이지 모든 JavaScript 파일 경로 완전 수정
🔧 Complete Script Path Fix:
- permissions.js: /static/js/core/permissions.js
- page-manager.js: /static/js/core/page-manager.js
- auth-manager.js: /static/js/core/auth-manager.js
- common-header.js: /static/js/components/common-header.js (이미 수정됨)

📁 Correct File Structure:
/static/js/
├── core/
│   ├── permissions.js
│   ├── page-manager.js
│   └── auth-manager.js
└── components/
    └── common-header.js

Expected Result:
 모든 404 오류 해결
 현황판 페이지 정상 로드
 권한 시스템 정상 동작
 공통 헤더 정상 표시
2025-10-26 10:25:58 +09:00
Hyungi Ahn
eab44811ba fix: 현황판 페이지 JavaScript 파일 경로 수정
🐛 Script Path Fix:
- common-header.js 경로 수정: /static/js/components/common-header.js
- page-manager.js 경로 수정: /static/js/components/page-manager.js
- 다른 페이지들과 동일한 경로 구조로 통일

🔧 Fixed Paths:
-  /static/js/common-header.js
-  /static/js/components/common-header.js
-  /static/js/page-manager.js
-  /static/js/components/page-manager.js

Expected Result:
 현황판 페이지 정상 로드
 404 오류 해결
 무한 로딩 문제 해결
 공통 헤더 및 권한 시스템 정상 동작
2025-10-26 10:24:08 +09:00
Hyungi Ahn
5da829d3c1 fix: 현황판을 목록관리 옆 별도 메인 메뉴로 이동
📍 Menu Structure Change:
- 현황판을 목록관리 서브메뉴에서 제거
- 목록관리 옆에 독립적인 메인 메뉴로 배치
- 보고서 앞에 위치하도록 순서 조정

🎯 New Menu Layout:
작업보고서 | 일일 공수 | 부적합 등록 | 부적합 조회 | 목록관리 | 현황판 | 보고서 | 프로젝트 관리 | 사용자 관리

🎨 Menu Properties:
- 아이콘: fas fa-chart-line
- 색상: 보라색 (text-purple-600)
- 배경: bg-purple-50 hover:bg-purple-100
- URL: /issues-dashboard.html

Expected Result:
 현황판이 목록관리 옆에 독립 메뉴로 표시
 서브메뉴 없는 직접 접근 가능한 메뉴
 목록관리와 보고서 사이에 위치
2025-10-26 10:22:56 +09:00
Hyungi Ahn
fbe106e013 fix: 현황판 메뉴 추가 및 기본 접근 권한 설정
🔧 Menu Integration:
- 공통 헤더의 목록관리 서브메뉴에 현황판 추가
- 아이콘: fas fa-chart-line (보라색)
- URL: /issues-dashboard.html

🔓 Permission Update:
- 현황판 기본 접근 권한을 True로 변경
- 모든 사용자가 기본적으로 현황판 접근 가능
- 사용자 관리에서 권한 설정 가능

📍 Navigation Path:
목록관리 → 현황판 (4번째 서브메뉴)
- 수신함
- 관리함
- 폐기함
- 현황판 ← NEW

Expected Result:
 헤더 메뉴에서 현황판 접근 가능
 모든 사용자 기본 접근 권한 보유
 사용자 관리에서 권한 설정 표시
2025-10-26 10:18:57 +09:00
Hyungi Ahn
190cdd8a02 feat: 부적합 현황판 페이지 신규 추가 - 프로젝트별 진행 현황 대시보드
📊 Dashboard Overview Page:
- 진행 중인 부적합들을 프로젝트별로 한눈에 볼 수 있는 현황판
- 실시간 통계 및 시각적 대시보드 구현
- 프로젝트 선택 및 다양한 정렬 옵션 제공

🎯 Key Features:
- 전체 통계 카드 (전체 진행 중, 오늘 신규, 지연 위험, 활성 프로젝트)
- 프로젝트별 그룹화된 이슈 카드 표시
- 긴급도 기반 우선순위 표시 (마감일 3일 이내)
- 프로젝트 필터링 및 정렬 기능

🎨 Visual Design:
- 그라데이션 통계 카드 with 호버 애니메이션
- 프로젝트 카드 with 좌측 테두리 호버 효과
- 이슈 미니 카드 with 긴급도 색상 구분
- 반응형 그리드 레이아웃

📋 Dashboard Components:
- 4개 통계 카드: 진행 중, 신규, 지연 위험, 활성 프로젝트
- 프로젝트 선택 드롭다운
- 정렬 옵션: 우선순위, 신고일순, 마감일순
- 프로젝트별 이슈 그룹화 표시

🔧 Technical Implementation:
- issues_dashboard 페이지 권한 추가
- 진행 중 상태(in_progress) 이슈만 필터링
- 긴급도 계산 로직 (마감일 기준)
- 프로젝트별 그룹화 및 통계 계산
- 공통 헤더 및 권한 시스템 적용

🚀 Interactive Features:
- 이슈 카드 클릭 → 관리함 상세보기 이동
- 실시간 새로고침 기능
- 프로젝트별 필터링
- 우선순위/날짜/마감일 기준 정렬

💡 User Experience:
- 로딩 애니메이션 및 페이드인 효과
- 빈 상태 메시지
- 긴급 이슈 시각적 강조
- 직관적인 네비게이션

Expected Result:
 진행 중인 부적합 현황을 한눈에 파악
 프로젝트별 작업 우선순위 확인
 지연 위험 이슈 조기 발견
 효율적인 부적합 관리 워크플로우
2025-10-26 10:16:34 +09:00
Hyungi Ahn
642685a7c7 feat: 진행 중 탭 카드 형식으로 개편 - 입력 편의성 대폭 향상
🎯 Card-Based Interface for In-Progress Issues:
- 테이블 형태에서 카드 형태로 완전 변경
- 입력하기 편한 사용자 친화적 인터페이스 구현
- 진행 중/완료됨 탭별 다른 레이아웃 적용

📋 Enhanced Card Layout:
- 2컬럼 그리드 레이아웃 (기본정보 vs 편집정보)
- 카드 헤더: No. + 프로젝트명 + 액션 버튼들
- 왼쪽: 읽기전용 정보 (내용, 원인, 업로드사진)
- 오른쪽: 편집가능 정보 (해결방안, 담당부서/담당자, 예상일)

🎨 Visual Improvements:
- 아이콘과 색상으로 필드 구분
- 호버 효과 (카드 상승, 입력 필드 확대)
- 상태 배지 및 진행 상황 표시
- 사진 썸네일 개선 (테두리, 호버 효과)

✏️ Input Field Enhancements:
- 해결방안: 3줄 textarea with placeholder
- 담당부서: 아이콘이 있는 select 드롭다운
- 담당자: placeholder가 있는 text input
- 조치예상일: date picker with 아이콘
- 모든 필드에 focus 효과 적용

🔄 Tab-Specific Rendering:
- 진행 중: 카드 형식 (space-y-4 컨테이너)
- 완료됨: 테이블 형식 (기존 유지)
- displayIssues()에서 currentTab에 따른 조건부 렌더링

🎯 User Experience Focus:
- 입력하기 편한 넓은 필드들
- 시각적으로 구분되는 정보 영역
- 직관적인 아이콘과 라벨링
- 부드러운 애니메이션 효과

🔧 Technical Implementation:
- createInProgressRow(): 카드 HTML 생성
- CSS 애니메이션 및 호버 효과
- 반응형 그리드 레이아웃 (lg:grid-cols-2)
- 아이콘 정렬 및 스타일링

Expected Result:
 진행 중 이슈 입력이 훨씬 편리해짐
 시각적으로 구분되는 정보 영역
 카드별 독립적인 작업 공간 제공
 완료됨은 기존 테이블 형태 유지
2025-10-26 10:11:36 +09:00
Hyungi Ahn
05cf494da8 debug: 관리함 저장 오류 디버깅 - 상세 로그 추가
🐛 Debug Enhancement:
- 프론트엔드: 요청/응답 상세 로그 추가
- 백엔드: 각 단계별 디버그 로그 추가
- 에러 메시지 개선 (JSON 파싱 포함)

🔍 Frontend Debugging:
- console.log로 전송 데이터 확인
- response.text()로 원본 에러 메시지 확인
- JSON 파싱 실패 시 원본 텍스트 표시

🔧 Backend Debugging:
- 요청 데이터 로그 출력
- 각 필드 처리 과정 로그
- 데이터베이스 커밋 과정 로그
- 상세한 에러 메시지 제공

Expected Result:
 422 오류의 정확한 원인 파악 가능
 프론트엔드에서 전송하는 데이터 확인
 백엔드에서 처리 과정 추적
 구체적인 에러 메시지로 빠른 문제 해결
2025-10-25 16:08:07 +09:00
Hyungi Ahn
11b03348f9 feat: 관리함 탭별 차별화 및 완료된 이슈 상세보기 모달 구현
🎯 Tab-Specific Interface Design:
- 진행 중 탭: 편집 가능한 테이블 형태 (11개 컬럼)
- 완료됨 탭: 입력 여부 표시 + 클릭으로 상세보기 (13개 컬럼)
- 탭별 다른 헤더 구조로 최적화된 정보 표시

 완료됨 탭 - 입력 여부 표시:
-  입력됨 (초록색 체크)
-  미입력 (회색 X)
- 사진:  2장 형태로 개수 표시
- 클릭 시 상세보기 모달 팝업

🔧 진행 중 탭 최적화:
- 완료 처리 버튼 한 줄로 표시 (white-space: nowrap)
- 불필요한 컬럼 제거 (완료확인일, 확인자, 원인부서, 의견, 조치결과, 완료사진)
- 핵심 편집 필드만 표시로 깔끔한 인터페이스

📋 완료된 이슈 상세보기 모달:
- 2컬럼 레이아웃 (읽기전용 vs 편집가능)
- 읽기전용: 프로젝트, 내용, 원인, 확인자, 업로드사진
- 편집가능: 해결방안, 담당부서, 담당자, 조치예상일, 원인부서, 의견, 완료사진
- 완료 사진 업로드 기능 포함

🎨 Enhanced UX Features:
- 완료됨 행 호버 효과 (hover:bg-blue-50)
- 모달 내 사진 클릭으로 확대보기
- 파일 업로드 → Base64 변환 → API 전송
- 저장 후 자동 목록 새로고침

🔄 Dynamic Header Generation:
- createTableHeader() 함수로 탭별 헤더 동적 생성
- 진행 중: 11개 컬럼 (편집 중심)
- 완료됨: 13개 컬럼 (검토 중심)

📊 Status Icon System:
- getStatusIcon(): 입력 여부를 시각적으로 표시
- getPhotoStatusIcon(): 사진 개수와 함께 상태 표시
- 일관된 / 아이콘으로 직관적 인식

🚀 Technical Implementation:
- openIssueDetailModal(): 완료된 이슈 상세보기
- createModalContent(): 동적 모달 내용 생성
- saveModalChanges(): 편집된 내용 저장
- fileToBase64(): 파일 업로드 처리

Expected Result:
 진행 중: 편집 중심의 간소화된 테이블
 완료됨: 입력 여부 확인 + 상세 편집 모달
 완료 처리 버튼 한 줄로 깔끔한 표시
 권한별 필드 구분으로 명확한 워크플로우
2025-10-25 16:01:10 +09:00
Hyungi Ahn
95be1f6c6e feat: 관리함 완전 개편 - 편집 가능한 테이블 및 완료 처리 기능
🎯 Major Management Page Overhaul:
- 테이블 최소 너비 2000px로 확장 (좌우 스크롤 최적화)
- 컬럼별 개별 너비 설정으로 내용에 맞는 크기 조정
- 편집 가능한 필드들 (해결방안, 담당부서, 담당자, 조치예상일, 원인부서, 의견)
- 진행 중 → 완료됨 처리 버튼 추가

📊 Enhanced Table Structure:
- 업로드 사진 2장 표시 (photo_path, photo_path2)
- 완료 사진 별도 컬럼으로 표시
- 작업 컬럼 추가 (저장 버튼)
- 완료 확인 컬럼 (진행 중: 완료 처리 버튼, 완료됨: 완료일)

✏️ Editable Fields Implementation:
- createEditableField() 함수로 동적 입력 필드 생성
- textarea, select, date, text 타입 지원
- 부서 선택 드롭다운 (생산, 품질, 구매, 설계, 영업)
- 실시간 편집 및 저장 기능

🔧 Backend API Enhancement:
- PUT /api/issues/{issue_id}/management 엔드포인트 추가
- ManagementUpdateRequest 스키마 활용
- 관리함 페이지 권한 검증
- 완료 사진 업로드 지원

📈 Smart Sequencing System:
- 수신함에서 넘어온 순서대로 No. 할당 (reviewed_at 기준)
- 프로젝트별 그룹화 후 순번 재할당
- 진행 중 A → 진행 중 B → 완료됨 C → 진행 중 D = 1, 2, 3, 4

🎨 UI/UX Improvements:
- 컬럼별 CSS 클래스로 일관된 스타일링
- 편집 가능한 필드 포커스 효과
- 사진 컨테이너로 2장 사진 깔끔한 배치
- 버튼 크기 최적화 (btn-sm 클래스)

🚀 Functional Features:
- completeIssue(): 진행 중 → 완료됨 처리
- saveIssueChanges(): 편집된 필드들 일괄 저장
- 실시간 목록 새로고침
- 확인 다이얼로그로 안전한 작업 처리

Expected Result:
 좌우 스크롤로 모든 정보 편리하게 확인
 관리함에서 필요한 정보 직접 입력/수정
 진행 중에서 완료 처리 원클릭
 수신함 순서 기반 체계적인 No. 관리
 업로드 사진 2장 + 완료 사진 명확한 구분
2025-10-25 15:48:53 +09:00
Hyungi Ahn
28fcc6a72e fix: 관리함 페이지 오류 수정 - 중복 함수 및 불필요한 코드 제거
🐛 Error Fix:
- 제거된 DOM 요소를 참조하는 기존 updateStatistics() 함수 제거
- needActionCount, processingCount 등 존재하지 않는 요소 참조 오류 해결
- TypeError: null is not an object 오류 완전 해결

🧹 Code Cleanup:
- 중복된 updateStatistics 함수 제거 (올바른 버전만 유지)
- selectedIssues 관련 불필요한 코드 제거
- toggleIssueSelection, toggleSelectAll 함수 제거
- selectedIssues 변수 선언 제거

🔧 Technical Details:
- 기존 통계 함수가 제거된 DOM 요소 참조로 인한 런타임 오류
- 새로운 통계 시스템과 충돌하는 레거시 코드 정리
- 선택 기능 미사용으로 인한 불필요한 코드 제거

 Result:
- 관리함 페이지 정상 로드
- 통계 기능 올바른 동작
- 깔끔한 코드베이스 유지
- 런타임 오류 완전 해결

Expected Behavior:
 페이지 로드 시 오류 없음
 프로젝트별 통계 정상 표시
 탭 전환 시 통계 업데이트 정상 동작
2025-10-25 14:50:47 +09:00
Hyungi Ahn
045614dc5b refactor: 관리함 통계 섹션 개선 및 불필요한 기능 제거
📊 Statistics Section Redesign:
- 기존 5개 통계 카드에서 3개로 단순화
- 총 부적합 | 진행 중 | 완료됨 구조로 변경
- 프로젝트 선택 아래로 통계 섹션 이동
- 프로젝트별 필터링에 따른 동적 통계 업데이트

🗑️ Unnecessary Features Removal:
- 일괄 처리 버튼 제거 (다른 페이지에서 구현 예정)
- 엑셀 내보내기 버튼 제거 (다른 페이지에서 구현 예정)
- bulkAction, exportData 함수 제거

🎯 Enhanced User Experience:
- 프로젝트 선택 시 해당 프로젝트의 통계만 표시
- 탭 전환 시에도 통계 자동 업데이트
- 선택된 프로젝트 기준으로 정확한 카운트 제공

🔧 Technical Implementation:
- updateStatistics() 함수 추가
- filterIssues()에 통계 업데이트 로직 통합
- 프로젝트 필터와 탭 상태에 따른 조건부 카운팅
- 실시간 통계 반영으로 사용자 편의성 향상

💡 Logical Flow:
1. 프로젝트 선택 → 해당 프로젝트 통계 표시
2. 상태 탭 전환 → 선택된 프로젝트 내에서 상태별 필터링
3. 통계는 항상 선택된 프로젝트 기준으로 계산

Expected Result:
 프로젝트별 정확한 통계 표시
 총 부적합, 진행 중, 완료됨 3개 카드로 단순화
 불필요한 버튼 제거로 깔끔한 UI
 실시간 통계 업데이트로 향상된 UX
2025-10-25 14:48:31 +09:00
Hyungi Ahn
85ae1ef9e4 fix: 관리함 날짜 그룹화 기준 개선 - 상태별 다른 날짜 기준 적용
📅 Date Grouping Logic Improvement:
- 진행 중 탭: 업로드한 날짜(report_date) 기준으로 그룹화
- 완료됨 탭: 완료된 날짜(actual_completion_date) 기준으로 그룹화
- 완료일이 없는 경우 업로드일로 폴백

🎨 Visual Indicator Enhancement:
- 날짜 헤더에 기준 표시 추가
- 진행 중: '업로드일' 파란색 배지
- 완료됨: '완료일' 초록색 배지
- 사용자가 어떤 기준으로 그룹화되었는지 명확히 인지 가능

🔧 Technical Implementation:
- currentTab 상태에 따른 조건부 날짜 선택
- 동적 배지 색상 및 텍스트 적용
- 완료일 없는 경우 안전한 폴백 처리

💡 User Experience:
- 진행 중: 언제 업로드되었는지 시간순 확인
- 완료됨: 언제 완료되었는지 완료순 확인
- 각 탭의 목적에 맞는 날짜 기준으로 체계적 관리

Expected Result:
 진행 중 탭에서는 업로드일 기준 그룹화
 완료됨 탭에서는 완료일 기준 그룹화
 날짜 헤더에 기준 표시로 명확한 구분
 상태별 목적에 맞는 시간순 관리
2025-10-25 14:42:27 +09:00
Hyungi Ahn
20ebf530f9 feat: 관리함 이슈 표시 방식 완전 개편 - 테이블 형태 및 날짜별 그룹화
📊 Complete Issue Display Redesign:
- 기존 카드 형태에서 테이블 형태로 완전 변경
- No.부터 완료 사진까지 모든 정보를 일렬로 표시
- 좌우 스크롤 가능한 테이블 구조 (min-width: 1200px)

📅 Date-based Grouping:
- 날짜별로 이슈들을 그룹화하여 표시
- 각 날짜 그룹마다 접기/펼치기 기능 구현
- 날짜 헤더 클릭으로 해당 그룹 토글 가능
- 부드러운 애니메이션 효과 적용

🗂️ Comprehensive Data Display:
- No. (프로젝트별 순번)
- 프로젝트명
- 내용 (final_description 우선, 없으면 description)
- 원인 (카테고리)
- 해결방안 (solution)
- 담당부서 (responsible_department)
- 담당자 (responsible_person)
- 조치예상일 (expected_completion_date)
- 완료확인일 (actual_completion_date)
- 확인자 (신고자 + 중복 신고자들)
- 원인부서 (cause_department)
- 의견 (management_comment)
- 조치결과 (진행 중/완료됨)
- 업로드 사진 (photo_path, photo_path2)
- 완료 사진 (completion_photo_path)

🎨 Enhanced UI/UX:
- 좌우 스크롤로 모든 정보 확인 가능
- 사진 클릭 시 확대 모달 표시
- 텍스트 오버플로우 시 툴팁으로 전체 내용 표시
- 상태별 색상 구분 (진행 중: 파란색, 완료됨: 초록색)
- 호버 효과로 행 강조

🔧 Technical Implementation:
- CSS 그리드 및 테이블 스타일링
- 반응형 스크롤 컨테이너
- 날짜 그룹 토글 애니메이션
- 사진 모달 팝업 기능
- 유틸리티 함수로 데이터 변환

🚀 User Experience:
- 한 화면에서 모든 정보 확인 가능
- 날짜별 정리로 체계적인 관리
- 접기/펼치기로 필요한 정보만 표시
- 직관적인 테이블 형태로 데이터 비교 용이

Expected Result:
 No.부터 사진까지 모든 정보가 테이블 형태로 표시
 좌우 스크롤로 긴 데이터도 편리하게 확인
 날짜별 그룹화로 체계적인 관리
 접기/펼치기로 필요한 정보만 선택적 표시
 사진 클릭으로 확대 보기 가능
2025-10-25 14:40:20 +09:00
Hyungi Ahn
d450ff3cbc feat: 관리함 개선 - 데이터 필터링 및 탭 구조 개선
📊 Data Filtering Improvements:
- 관리함에서 수신함에서 처리된 항목만 표시 (in_progress, completed)
- 수신함의 pending_review, disposed 상태 제외
- 올바른 워크플로우 데이터만 관리함에서 처리

🎨 UI Simplification:
- 복잡한 필터 제거 (상태, 우선순위, 담당자, 검색)
- 프로젝트 필터만 유지하여 핵심 기능에 집중
- 더 깔끔하고 직관적인 인터페이스

📋 Status Tabs Implementation:
- 프로젝트 선택 아래에 진행 중/완료됨 탭 추가
- 탭 클릭으로 상태별 이슈 분리 표시
- 진행 중(파란색), 완료됨(초록색) 시각적 구분
- 부드러운 전환 애니메이션 적용

🔧 JavaScript Logic Updates:
- currentTab 변수로 현재 선택된 탭 상태 관리
- switchTab() 함수로 탭 전환 및 스타일 업데이트
- filterIssues() 함수에서 review_status 기반 필터링
- 불필요한 필터링 로직 제거로 성능 개선

🚀 User Experience:
- 프로젝트 선택 → 상태 탭 선택으로 단순한 워크플로우
- 진행 중과 완료됨 항목을 명확히 분리
- 관리함 본연의 목적에 맞는 기능 집중

Expected Result:
 수신함에서 처리된 항목만 관리함에 표시
 프로젝트별 진행 중/완료됨 탭으로 분리
 불필요한 필터 제거로 단순화된 UI
 직관적인 탭 기반 상태 관리
2025-10-25 14:37:10 +09:00
Hyungi Ahn
f7bdbf522f refactor: 수신함 상태 결정 모달에서 불필요한 처리 메모 필드 제거
🗑️ Remove Unnecessary Field:
- 처리 메모 (statusNotes) 필드 제거
- 완료됨 선택 시 해결방안 필드가 있어 중복 불필요
- 진행 중 선택 시 별도 메모 불필요

🎨 UI Simplification:
- 모달 UI에서 처리 메모 텍스트 영역 제거
- 더 깔끔하고 집중된 사용자 인터페이스
- 필수 정보에만 집중할 수 있도록 개선

🔧 Backend Cleanup:
- IssueStatusUpdateRequest에서 notes 필드 제거
- API 엔드포인트에서 notes 처리 로직 제거
- 불필요한 detail_notes 업데이트 로직 제거

💡 User Experience:
- 더 간단하고 직관적인 상태 변경 프로세스
- 완료 시에는 해결방안으로 충분한 정보 제공
- 진행 중 시에는 바로 처리 가능

Expected Result:
 처리 메모 필드 완전 제거
 더 간결한 상태 결정 모달
 중복 기능 제거로 사용자 혼란 방지
 핵심 기능에 집중된 워크플로우
2025-10-25 14:29:17 +09:00
Hyungi Ahn
b4a0bc19d3 feat: 수신함 상태 결정 모달 개선 - 완료 시 추가 정보 입력 기능
🔄 Status Modal Improvements:
- 진행 중 / 완료됨 2개 옵션으로 단순화
- 진행 중 선택 시 바로 관리함으로 이동
- 완료됨 선택 시 추가 정보 입력 섹션 표시

📝 Completion Information Fields:
- 완료 사진 업로드 (1장, 선택사항)
- 해결방안 입력 (어떻게 해결했는지)
- 해결한 부서 선택 (담당부서)
- 해결한 사람 입력 (담당자)
- 모든 필드는 선택사항으로 관리함에서 나중에 입력 가능

🎨 Frontend Implementation:
- completionSection으로 통합된 완료 관련 UI
- 상태 선택에 따른 동적 섹션 표시/숨김
- 부서 선택 드롭다운 (생산, 품질, 구매, 설계, 영업)
- 직관적인 아이콘과 색상으로 필드 구분
- 사용자 안내 메시지로 UX 개선

🔧 Backend API Updates:
- IssueStatusUpdateRequest에 solution, responsible_department, responsible_person 필드 추가
- update_issue_status API에서 완료 상태 시 추가 필드 처리
- 해결방안, 담당부서, 담당자 정보 자동 저장

🚀 User Experience:
- 진행 중: 클릭 한 번으로 바로 관리함 이동
- 완료됨: 필요한 정보를 한 번에 입력하고 완료 처리
- 선택사항 필드로 유연한 워크플로우 지원
- 관리함에서 나중에 추가/수정 가능한 구조

💡 Workflow Optimization:
- 수신함에서 완료 처리 시 필요한 정보를 미리 입력
- 관리함 작업량 감소 및 효율성 향상
- 완료 확인일 자동 기록으로 추적 개선

Expected Result:
 진행 중 선택 시 바로 관리함 이동
 완료됨 선택 시 해결방안, 담당부서, 담당자 입력 가능
 완료 사진과 함께 종합적인 완료 정보 수집
 선택사항 필드로 유연한 사용 가능
 관리함에서 추가 편집 가능한 구조
2025-10-25 14:27:36 +09:00
Hyungi Ahn
d77a71493a feat: 수신함 완료 사진 업로드 및 최종 부적합 사항 DB 구조 구현
📸 Completion Photo Upload:
- 수신함에서 '완료됨' 상태 선택 시 완료 사진 업로드 기능 추가 (1장 제한)
- Base64 인코딩으로 사진 업로드 및 미리보기 기능
- 완료 상태 변경 시 actual_completion_date 자동 설정

🗄️ Final Issue DB Structure:
- 최종 부적합 사항을 위한 포괄적인 DB 스키마 설계 및 구현
- 프로젝트별 순번 (project_sequence_no) 자동 생성 시스템

📋 New Database Fields:
- completion_photo_path: 완료 사진 경로
- solution: 해결방안 (관리함에서 입력)
- responsible_department: 담당부서 (department_type ENUM)
- responsible_person: 담당자 (VARCHAR 100)
- expected_completion_date: 조치 예상일 (DATE)
- actual_completion_date: 완료 확인일 (DATE, 자동 설정)
- cause_department: 원인부서 (department_type ENUM)
- management_comment: ISSUE에 대한 의견 (TEXT)
- final_description: 최종 내용 (수정본 또는 원본)
- final_category: 최종 카테고리 (수정본 또는 원본)

🔧 Backend Implementation:
- Issue 모델에 11개 새 필드 추가
- IssueStatusUpdateRequest에 completion_photo 필드 추가
- ManagementUpdateRequest 스키마 신규 생성
- update_issue_status API에 완료 사진 처리 로직 추가
- generate_project_sequence_no() 함수로 프로젝트별 순번 자동 생성

🎨 Frontend Implementation:
- 상태 결정 모달에 완료 사진 업로드 섹션 추가
- 완료 상태 선택 시에만 사진 업로드 UI 표시
- 파일 크기 제한 (5MB), 이미지 파일 검증
- 사진 미리보기 및 Base64 변환 처리
- 완료 사진 없이 완료 처리 시 확인 다이얼로그

🚀 User Experience:
- 직관적인 완료 사진 업로드 워크플로우
- 실시간 사진 미리보기로 업로드 확인 가능
- 완료 처리 시 자동으로 완료 확인일 기록
- 프로젝트별 순번으로 체계적인 이슈 관리

🔍 Database Migration:
- 016_add_management_fields.sql 마이그레이션 성공적으로 실행
- 멱등성 보장 및 기존 데이터 보존
- 인덱스 최적화 (project_sequence, responsible_department, expected_completion)
- 기존 이슈들의 final_description/final_category 자동 초기화

Expected Result:
 수신함에서 완료 상태 선택 시 완료 사진 업로드 가능
 완료 처리 시 완료 확인일 자동 기록
 프로젝트별 순번으로 체계적인 이슈 번호 관리
 관리함에서 사용할 모든 필드 준비 완료
 최종 부적합 사항 리포트 생성을 위한 DB 구조 완성
2025-10-25 14:18:24 +09:00
Hyungi Ahn
8996f5b432 feat: 모든 페이지에서 최신순 정렬 적용
📅 Sorting Order Improvements:
- 모든 이슈 목록에서 최신 항목이 위로 오도록 정렬 순서 통일
- report_date 기준 내림차순(DESC) 정렬로 일관성 확보

🔧 Backend API Updates:
- GET /api/issues/: order_by(Issue.report_date.desc()) 추가
- GET /api/issues/admin/all: order_by(Issue.report_date.desc()) 추가
- GET /api/reports/issues: order_by(Issue.report_date.desc()) 변경

🎨 Frontend Sorting Updates:
- issues-inbox.html: created_at → report_date 기준 정렬
- issues-management.html: created_at → report_date 기준 정렬
- issues-archive.html: updated_at/created_at → report_date 기준 정렬
- 폐기함 'completed' 정렬: disposed_at 우선, 없으면 report_date 사용

📋 Consistency Improvements:
- 수신함, 관리함, 폐기함 모든 페이지에서 동일한 정렬 기준 적용
- 백엔드 API와 프론트엔드 정렬 로직 일치
- 사용자 경험 향상: 최신 이슈를 먼저 확인 가능

🚀 User Experience:
- 최신 부적합 사항을 즉시 확인 가능
- 시간순 정렬로 업무 우선순위 파악 용이
- 일관된 정렬 순서로 사용자 혼란 방지

Expected Result:
 모든 이슈 목록에서 최신 항목이 맨 위에 표시
 백엔드 API와 프론트엔드 정렬 로직 일치
 수신함/관리함/폐기함 정렬 순서 통일
 사용자가 최신 이슈를 우선적으로 확인 가능
2025-10-25 14:01:44 +09:00
Hyungi Ahn
492c31c248 fix: 권한 시스템 일관성 개선 - 이슈 관리 권한 통일
🔐 Permission System Consistency:
- 수신함/관리함/폐기함 권한이 있는 사용자는 모든 이슈 조회/처리 가능
- 기존: 조회는 관리자만, 처리는 권한 사용자 → 일관성 부족
- 개선: 조회와 처리 모두 동일한 권한 체계 적용

📋 Issues API Updates:
- GET /api/issues/admin/all: get_current_admin → get_current_user + 권한 체크
- 이슈 관리 관련 페이지 권한 확인 (issues_manage, issues_inbox, issues_management, issues_archive)
- 관리자이거나 해당 권한이 있는 사용자만 접근 가능

🔄 Inbox API Updates:
- 모든 수신함 워크플로우 API: get_current_admin → get_current_user + 페이지 권한 체크
- dispose_issue: 수신함 권한 확인 추가
- review_issue: 수신함 권한 확인 추가
- update_issue_status: 수신함 권한 확인 추가

🎯 Permission Logic:
- 사용자 관리 (auth.py): 관리자 전용 유지 (보안상 중요)
- 이슈 관리: 권한 부여된 사용자 모두 접근 가능
- 수신함 워크플로우: 권한 부여된 사용자 모두 접근 가능

🔧 Technical Implementation:
- check_page_access() 함수로 페이지별 권한 체크
- 관리자는 자동으로 모든 권한 보유
- 일반 사용자는 개별 페이지 권한 확인

🚀 User Experience:
- 권한이 있는 일반 사용자도 수신함에서 이슈 처리 가능
- 일관된 권한 체계로 사용자 혼란 방지
- 관리자와 권한 사용자 동일한 기능 제공

Expected Result:
 수신함 권한이 있는 일반 사용자도 이슈 폐기/검토/상태변경 가능
 이슈 관리 권한이 있는 사용자도 모든 이슈 조회 가능
 권한 시스템 전체적으로 일관성 있게 통일
 사용자 관리만 관리자 전용으로 보안 유지
2025-10-25 13:56:39 +09:00