diff --git a/backend/database/__pycache__/schemas.cpython-311.pyc b/backend/database/__pycache__/schemas.cpython-311.pyc index 7010336..0470dc2 100644 Binary files a/backend/database/__pycache__/schemas.cpython-311.pyc and b/backend/database/__pycache__/schemas.cpython-311.pyc differ diff --git a/backend/database/schemas.py b/backend/database/schemas.py index 5ed5f6d..711143f 100644 --- a/backend/database/schemas.py +++ b/backend/database/schemas.py @@ -181,6 +181,7 @@ class ManagementUpdateRequest(BaseModel): cause_department: Optional[DepartmentType] = None # 원인부서 management_comment: Optional[str] = None # ISSUE에 대한 의견 completion_photo: Optional[str] = None # 완료 사진 (Base64) + final_description: Optional[str] = None # 최종 내용 (부적합명 + 상세 내용) class AdditionalInfoUpdateRequest(BaseModel): """추가 정보 업데이트 요청 (관리함 진행중에서 사용)""" diff --git a/backend/routers/__pycache__/management.cpython-311.pyc b/backend/routers/__pycache__/management.cpython-311.pyc index 18b93b2..783d4e6 100644 Binary files a/backend/routers/__pycache__/management.cpython-311.pyc and b/backend/routers/__pycache__/management.cpython-311.pyc differ diff --git a/backend/routers/management.py b/backend/routers/management.py index 4ed9f44..a8f9eaa 100644 --- a/backend/routers/management.py +++ b/backend/routers/management.py @@ -32,6 +32,47 @@ async def get_management_issues( return issues +@router.put("/{issue_id}") +async def update_issue( + issue_id: int, + update_request: ManagementUpdateRequest, + current_user: User = Depends(get_current_user), + db: Session = Depends(get_db) +): + """ + 관리함에서 이슈 정보 업데이트 + """ + # 관리함 페이지 권한 확인 + if not check_page_access(current_user.id, 'issues_management', db): + raise HTTPException(status_code=403, detail="관리함 접근 권한이 없습니다.") + + # 이슈 조회 + issue = db.query(Issue).filter(Issue.id == issue_id).first() + if not issue: + raise HTTPException(status_code=404, detail="부적합을 찾을 수 없습니다.") + + # 진행 중 상태인지 확인 + if issue.review_status != ReviewStatus.in_progress: + raise HTTPException(status_code=400, detail="진행 중 상태의 부적합만 수정할 수 있습니다.") + + # 업데이트할 데이터 처리 + update_data = update_request.dict(exclude_unset=True) + + for field, value in update_data.items(): + if field == 'completion_photo': + # 완료 사진은 별도 처리 (필요시) + continue + setattr(issue, field, value) + + db.commit() + db.refresh(issue) + + return { + "message": "이슈가 성공적으로 업데이트되었습니다.", + "issue_id": issue.id, + "updated_at": datetime.now() + } + @router.put("/{issue_id}/additional-info") async def update_additional_info( issue_id: int, diff --git a/frontend/issues-management.html b/frontend/issues-management.html index b36877d..b2f0631 100644 --- a/frontend/issues-management.html +++ b/frontend/issues-management.html @@ -739,15 +739,34 @@