- 모든 관리 화면(회사, 장비, 입고지, 유지보수)의 페이지네이션 로직 통일 - Controller에서 전체 데이터 로드, View에서만 페이지네이션 처리 - 각 화면에 상세한 터미널 로그 추가로 데이터 로드 상태 추적 가능 - 회사 DTO에 지점 정보 포함 기능 추가 - 전체 79개 회사 중 14개만 표시되던 문제 해결
3.0 KiB
3.0 KiB
Superport API 개선 사항
1. ✅ [해결됨] 회사 목록 API에 company_types 필드 누락 및 제거 대응
최종 해결 내역 (2025-01-09)
-
백엔드 변경사항:
- company_types 필드 제거 예정
- is_partner, is_customer 필드로 대체
-
프론트엔드 대응 (완료):
- CompanyListDto, CompanyResponse, CompanyBranchFlatDto에 is_partner, is_customer 필드 추가 (@Default(false))
- CompanyService 변환 로직 수정 (하위 호환성 유지):
- company_types가 있으면 우선 사용
- company_types가 없으면 is_partner/is_customer 사용
- 둘 다 없으면 빈 리스트 반환
- 사이드 이펙트 없음 확인 (테스트 완료)
현재 상황
-
문제 엔드포인트:
GET /companiesGET /companies/branches
-
현재 응답: company_types 필드 없음
{
"id": 95,
"name": "한국물류창고(주)",
"address": "경기도 용인시",
"contact_name": "박물류",
"contact_phone": "010-89208920",
"contact_email": "contact@naver.com",
"is_active": true,
"created_at": "2025-08-08T09:31:04.661079Z"
}
- 상세 API 응답 (
GET /companies/{id}): company_types 포함
{
"id": 86,
"name": "아이스 맨",
"company_types": ["customer", "partner"],
...
}
필요한 개선
/companies엔드포인트에 company_types 필드 추가/companies/branches엔드포인트에 company_types 필드 추가
영향
- 회사 목록 화면에서 유형(고객사/파트너사) 표시 불가
- 수정 후에도 목록에 반영되지 않음
- N+1 쿼리 문제 발생 (각 회사마다 상세 API 호출 필요)
임시 해결책
현재 프론트엔드에서 아래와 같이 처리 중:
- 회사 목록에서는 유형을 표시하지 않거나 기본값(고객사)으로 표시
- 수정/상세 화면에서만 정확한 유형 표시
제안하는 API 응답 형식
{
"id": 95,
"name": "한국물류창고(주)",
"address": "경기도 용인시",
"contact_name": "박물류",
"contact_phone": "010-89208920",
"contact_email": "contact@naver.com",
"company_types": ["customer", "partner"], // 추가 필요
"is_active": true,
"created_at": "2025-08-08T09:31:04.661079Z"
}
2. 장비 상태 관련 데이터베이스 오류
현재 상황
-
문제 엔드포인트:
GET /overview/statsGET /overview/equipment-status
-
오류 메시지:
{
"success": false,
"error": {
"code": "DATABASE_ERROR",
"message": "Database error: Query Error: error returned from database: operator does not exist: character varying = equipment_status"
}
}
원인 추정
- equipment_status 타입과 character varying 타입 간 비교 연산자 문제
- PostgreSQL에서 enum 타입 처리 오류
필요한 개선
- 데이터베이스 쿼리 수정 또는 타입 캐스팅 추가
작성일: 2025-01-09 작성자: Claude Code 우선순위: 높음 (회사 유형 표시는 핵심 기능)