Files
sam-docs/plans/sub/order-management-plan.md
kent 7b18ee1b10 docs: 개발 계획 및 변경 이력 문서 추가
- 작업지시 계획 문서 업데이트
- MES 통합 분석, 서버 컴포넌트 감사 계획 추가
- 수주관리, 인수인계서 API 연동 변경 이력 추가
- sub/ 하위 계획 문서들 추가 (카테고리, 계약, 품목, 단가 등)

Co-Authored-By: Claude <noreply@anthropic.com>
2026-01-15 08:54:31 +09:00

3.6 KiB

발주관리 (Order Management) API 연동 계획

작성일: 2026-01-08 상위 문서: construction-api-integration-plan.md 상태: 대기


1. 컴포넌트 분석

1.1 파일 위치

react/src/
├── app/[locale]/(protected)/construction/order/order-management/
│   └── page.tsx
└── components/business/construction/order-management/
    ├── OrderManagementClient.tsx
    ├── actions.ts
    └── types.ts

1.2 현재 Mock 데이터

actions.ts 내 generateMockOrders:

function generateMockOrders(count: number): Order[] {
  // 50개의 Mock 발주 데이터 생성
  // 결정론적 Mock 데이터 (index 기반 선택)
  const partners = ['삼성물산', '현대건설', '대우건설', ...];
  const sites = ['강남 오피스텔', '송파 주상복합', ...];
  const statuses = ['pending', 'approved', 'in_progress', 'completed', 'cancelled'];
}

1.3 현재 함수 목록

함수명 용도 Mock 상태
getOrderList 발주 목록 조회 Mock
getOrderStats 발주 통계 조회 Mock
deleteOrder 발주 삭제 Mock
deleteOrders 발주 일괄 삭제 Mock
updateOrderStatus 발주 상태 변경 Mock

2. API 설계

2.1 엔드포인트

Method Endpoint 용도
GET /api/construction/orders 목록 조회
GET /api/construction/orders/stats 통계 조회
GET /api/construction/orders/{id} 상세 조회
POST /api/construction/orders 등록
PUT /api/construction/orders/{id} 수정
PATCH /api/construction/orders/{id}/status 상태 변경
DELETE /api/construction/orders/{id} 삭제
DELETE /api/construction/orders/bulk 일괄 삭제

2.2 요청/응답 스키마

목록 조회 Request:

interface GetOrderListParams {
  page?: number;
  size?: number;
  startDate?: string;
  endDate?: string;
  siteId?: string;
  partnerId?: string;
  status?: OrderStatus;
  search?: string;
}

3. 작업 항목

3.1 Backend (API)

# 작업 상태 비고
1 OrderController 생성
2 OrderService 생성
3 OrderFormRequest 생성
4 Order 모델 생성
5 routes/api.php 등록
6 Swagger 문서 작성

3.2 Frontend (React)

# 작업 상태 비고
1 actions.ts Mock → API 변환
2 API 클라이언트 연동
3 에러 핸들링 추가
4 types.ts 정합성 확인

4. 타입 정의

4.1 Order 타입

interface Order {
  id: string;
  orderNumber: string;
  siteId: string;
  siteName: string;
  partnerId: string;
  partnerName: string;
  title: string;
  description?: string;
  totalAmount: number;
  status: OrderStatus;
  orderDate: string;
  deliveryDate?: string;
  createdAt: string;
  updatedAt: string;
}

type OrderStatus = 'pending' | 'approved' | 'in_progress' | 'completed' | 'cancelled';

4.2 OrderStats 타입

interface OrderStats {
  total: number;
  pending: number;
  approved: number;
  inProgress: number;
  completed: number;
  cancelled: number;
  totalAmount: number;
}

5. 변경 이력

날짜 작업 상태
2026-01-08 문서 초안 작성

상위 문서: construction-api-integration-plan.md