Files
sam-react-prod/claudedocs/sales/[IMPL-2025-12-22] order-management-sales.md
byeongcheolryu f0e8e51d06 feat: 생산/품질/자재/출고/주문 관리 페이지 구현
- 생산관리: 대시보드, 작업지시, 작업실적, 작업자화면
- 품질관리: 검사관리 (리스트/등록/상세)
- 자재관리: 입고관리, 재고현황
- 출고관리: 출하관리 (리스트/등록/상세/수정)
- 주문관리: 수주관리, 생산의뢰
- 기존 컴포넌트 개선: CardTransactionInquiry, VendorDetail, QuoteRegistration
- IntegratedListTemplateV2 개선
- 공통 컴포넌트 분석 문서 추가

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-23 21:13:07 +09:00

23 KiB
Raw Blame History

수주관리 (Order Management Sales) 구현 계획서

기본 정보

항목 내용
경로 /sales/order-management-sales
상위 메뉴 판매관리
작성일 2025-12-22
상태 Phase 2 완료

1. 페이지 구조

/sales/order-management-sales
├── page.tsx (리스트)
├── new/page.tsx (등록)
├── [id]/page.tsx (상세)
├── [id]/edit/page.tsx (수정)
├── [id]/production-order/page.tsx (생산지시 생성) ← TODO
└── production-orders/                    ← 생산지시 조회 (하위 경로)
    ├── page.tsx (생산지시 목록)
    └── [id]/page.tsx (생산지시 상세)

2. 리스트 화면

2.1 상단 통계 카드 (4개)

카드 아이콘 값 형식
이번 달 수주 $ 금액 (예: 724,250,000원)
분할 대기 건수 (예: 2건)
생산지시 대기 📋 건수 (예: 0건)
출하 대기 🚚 건수 (예: 14건)

2.2 검색/필터

  • 검색창: 로트번호, 견적번호, 발주처, 현장명 검색...
  • 필터 탭: 전체, 수주등록, 수주확정, 생산지시완료, 미수

2.3 테이블 컬럼

컬럼 설명
체크박스 row 선택
번호 순번 (1부터)
로트번호 KD-TS-XXXXXX-XX
견적번호 KD-PR-XXXXXX-XX
발주처 거래처명
현장명 프로젝트/현장명
상태 수주확정, 생산중, 출하완료 등 배지
출고예정일 YYYY-MM-DD
배송방식 직접배차, 상차 등

2.4 버튼

  • 우측 상단: + 수주 등록 버튼

3. 등록 화면

3.1 견적 불러오기 섹션

  • 안내 문구: "확정된 견적을 선택하면 정보가 자동으로 채워집니다"
  • 견적 선택 버튼
  • 선택된 견적 표시: 견적번호 + 등급 + 발주처/현장명/금액 + 해제 버튼

3.2 기본 정보

필드 타입 필수
발주처 Select (드롭다운) *
현장명 Text *
담당자 Text
연락처 Phone

3.3 수주/배송 정보

필드 타입 필수
출고예정일 DatePicker + 미정 체크박스
납품요청일 DatePicker + 미정 체크박스 *
배송방식 Select
운임비용 Select
수신(반장/업체) Text *
수신처 연락처 Phone *

3.4 수신처 주소

  • 우편번호 + 우편번호 찾기 버튼
  • 기본 주소 (자동 입력)
  • 상세 주소 입력

3.5 비고

  • 특이사항 텍스트 영역

3.6 품목 내역

컬럼 설명
순번 1, 2, 3...
품목코드 PRD-X
품명 제품명
B1, B2 등
부호 C-01, C-02 등
규격 4000×3000 등
수량 숫자
단위 EA
단가 금액
금액 단가 × 수량
  • + 품목 추가 버튼
  • 하단 합계: 소계, 할인율(%), 총금액

3.7 버튼

  • 취소 / 저장

4. 팝업

4.1 견적 선택 팝업

┌─────────────────────────────────────────┐
│ 견적 선택                            ✕  │
├─────────────────────────────────────────┤
│ 🔍 견적번호, 거래처, 현장명 검색...      │
├─────────────────────────────────────────┤
│ 전환 가능한 견적 X건 (최종확정 상태)     │
│                                         │
│ KD-PR-XXXXXX-XX  A (우량)               │
│ 발주처명                                │
│ [현장명] 현장 이름              금액원  │
│                               X개 품목  │
│ ─────────────────────────────────────── │
│ KD-PR-XXXXXX-XX  B (관리)               │
│ ...                                     │
└─────────────────────────────────────────┘

4.2 품목 추가 팝업

필드 타입 필수 설명
Text * 몇 층 (예: 4층)
도면부호 Text * 예: FSS1
품목명 Text 예: 국민방화스크린세터
오픈사이즈 (고객 제공 치수)
가로 (mm) Number * 예: 7260
세로 (mm) Number * 예: 2600
가이드레일 타입 Select 예: 백면형 (120-70)
마감 Select 예: SUS마감
단가 (원) Number 예: 8000000
  • 취소 / 추가 버튼

4.3 수주 취소 팝업

┌─────────────────────────────────────────┐
│ ⊗ 수주 취소                             │
├─────────────────────────────────────────┤
│ ┌─────────────────────────────────────┐ │
│ │ 수주번호    KD-TS-251217-09        │ │
│ │ 발주처      태영건설(주)            │ │
│ │ 현장명      데시앙 동탄 파크뷰      │ │
│ │ 현재 상태   [재작업중]              │ │
│ └─────────────────────────────────────┘ │
│                                         │
│ 취소 사유 *                             │
│ [취소 사유를 선택하세요          ▼]     │
│                                         │
│ 상세 사유                               │
│ ┌─────────────────────────────────────┐ │
│ │ 취소 사유에 대한 상세 내용을        │ │
│ │ 입력하세요                          │ │
│ └─────────────────────────────────────┘ │
│                                         │
│ ┌─────────────────────────────────────┐ │
│ │ 취소 시 유의사항                    │ │
│ │ • 취소된 수주는 목록에서 '취소'     │ │
│ │   상태로 표시됩니다                 │ │
│ │ • 취소 후에는 수정이 불가능합니다   │ │
│ │ • 관련된 생산지시가 있는 경우 먼저  │ │
│ │   생산지시를 취소해야 합니다        │ │
│ └─────────────────────────────────────┘ │
│                                         │
│                   [닫기] [⊗ 취소 확정]  │
└─────────────────────────────────────────┘
필드 타입 필수 설명
수주번호 Text (읽기전용) 취소할 수주번호
발주처 Text (읽기전용) 발주처명
현장명 Text (읽기전용) 현장명
현재 상태 Badge (읽기전용) 현재 수주 상태
취소 사유 Select * 드롭다운 선택
상세 사유 Textarea 상세 내용 입력

버튼: 닫기 / ⊗ 취소 확정

취소 시 유의사항:

  • 취소된 수주는 목록에서 '취소' 상태로 표시됩니다
  • 취소 후에는 수정이 불가능합니다
  • 관련된 생산지시가 있는 경우 먼저 생산지시를 취소해야 합니다

5. 상세 화면

5.1 공통 구조

  • 좌측 상단 버튼: 계약서, 거래명세서, 발주서 (클릭 시 모달 오픈)
  • 기본 정보: 발주처, 현장명, 담당자, 연락처
  • 수주/배송 정보: 수주일자, 출고예정일, 납품요청일, 배송방식, 운임비용, 수신, 수신처 연락처, 수신처 주소
  • 비고: 특이사항
  • 제품 내역: 테이블 (순번, 품목코드, 품명, 종, 부호, 규격, 수량, 단위, 단가, 금액)
  • 하단 합계: 소계, 할인율, 총금액

5.2 상태별 버튼 차이

상태 우측 상단 버튼
출하완료 목록
재작업중 목록, 수정, 생산지시 생성 (파란), 취소
생산중 목록, 수정, 생산지시 생성 (파란), 취소
수주확정 목록, 수정, 생산지시 생성 (파란), 취소
생산지시완료 목록, 수정, 생산지시 생성 (파란)
작업완료 목록, 수정, 생산지시 생성 (파란), 취소

6. 문서 팝업 (계약서/거래명세서/발주서)

6.1 공통 헤더

  • PDF 다운로드, 이메일, 팩스, 인쇄, 닫기 버튼

6.2 계약서

┌─────────────────────────────────────────┐
│ 계약서                               ✕  │
│ [PDF] [이메일] [팩스] [■■] [인쇄] [닫기] │
├─────────────────────────────────────────┤
│              계   약   서               │
│    수주번호: KD-TS-XXXXXX-XX            │
│    계약일자: YYYY-MM-DD                 │
│                                         │
│ ┌─────────────────────────────────────┐ │
│ │            제품명                   │ │
│ │         스크린 세터 (표준형)        │ │
│ └─────────────────────────────────────┘ │
│                                         │
│ ┌─────────────────────────────────────┐ │
│ │      수주물목 (개소별 사이즈)       │ │
│ │ 품목코드 │ 품명 │ 규격 │ 수량 │ 단위 │ │
│ └─────────────────────────────────────┘ │
│                                         │
│ ┌──────────────┐ ┌──────────────┐       │
│ │  발주처정보  │ │   당사정보   │       │
│ │ 업체명       │ │ 업체명       │       │
│ │ 대표자       │ │ 대표자       │       │
│ │ 사업자번호   │ │ 사업자번호   │       │
│ │ 연락처       │ │ 연락처       │       │
│ │ 주소         │ │ 주소         │       │
│ └──────────────┘ └──────────────┘       │
│                                         │
│ ┌─────────────────────────────────────┐ │
│ │         총 계약 금액                │ │
│ │       ₩ 38,800,000                  │ │
│ │          (부가세 포함)              │ │
│ └─────────────────────────────────────┘ │
│                                         │
│ 공급가액: XX,XXX,XXX원   할인율: X%     │
│ 할인액: -X,XXX,XXX원                    │
│ 할인 후 공급가액: XX,XXX,XXX원          │
│ 부가세(10%): X,XXX,XXX원                │
│ 합계: XX,XXX,XXX원                      │
│                                         │
│ ┌─────────────────────────────────────┐ │
│ │            특이사항                 │ │
│ │ [내용]                              │ │
│ └─────────────────────────────────────┘ │
└─────────────────────────────────────────┘

6.3 거래명세서

  • 공급자/공급받는자 정보 (상호, 대표자, 사업자번호, 연락처, 주소)
  • 품목내역 테이블 (순번, 품목코드, 품명, 규격, 수량, 단위, 단가, 공급가액)
  • 금액 계산 (공급가액, 할인율, 할인액, 할인 후 공급가액, 부가세, 합계 금액)
  • "위 금액을 거래하였음을 증명합니다."
  • 날짜 + 인

6.4 발주서

  • 로트번호 + 결재란 (작성/검토/승인/생산)
  • 신청업체 정보 (발주처, 담당자, FAX, 현장명)
  • 신청내용 (납기요청일, 출고일, 배송방법, 납품주소)
  • 부자재 테이블 (구분, 품명, 규격, 길이(mm), 수량, 비고)
  • 특이사항
  • 유의사항 (발주서 승인 후 작업 진행, 납기 엄수, 기타 문의사항)
  • 문의 연락처

7. 수정 화면

7.1 상단 정보

  • 제목: 수주 수정 + 수주번호 + 상태 배지

7.2 기본 정보 (읽기전용)

필드 비고
로트번호 읽기전용
견적번호 읽기전용
담당자 읽기전용
발주처 읽기전용
현장명 읽기전용
연락처 읽기전용

7.3 수주/배송 정보 (편집 가능)

필드 타입
출고예정일 DatePicker + 미정 체크박스
납품요청일 DatePicker
배송방식 Select
운임비용 Select
수신(반장/업체) Text
수신처 연락처 Phone
수신처 주소 Text (전체 주소)
상세주소 Text

7.4 비고

  • 편집 가능 텍스트 영역

7.5 품목 내역

  • 안내 문구: 생산 시작 후 수정 불가
  • 테이블 (No, 품목코드, 품명, 종, 부호, 규격(mm), 수량, 단위, 단가, 금액)
  • 하단 합계

7.6 버튼

  • 취소 / 저장

8. 생산지시 생성 화면

8.1 페이지 제목

  • 생산지시 생성 + 2개 작업지시 생성 예정

8.2 수주 정보

필드
수주번호 KD-TS-XXXXXX-XX
품목 수 X EA
총 수량 X 개(품)
납기일 YYYY-MM-DD
진행상태 배지 (예: 재작업중)

8.3 생산지시 옵션

필드 타입 옵션
우선순위 (필수) Radio 긴급 / 일반 / 분할 / VIP
비고 Textarea
납품요청일 DatePicker
생산라인 Select
생산지시 (필수) Select 작업지시 기본값 (공정)
+ 작업지시 일괄생성 Button

8.4 메모

  • 생산지시 관련 메모 영역

8.5 생성될 작업지시 (X건)

컬럼 설명
고정번호 KD-PL-XXXXXX-XX
공정 BCI
품목 수 X EA
총 수량 X EA
공정 수 X
BOM 자재(수량) 1 BOM, 2 모재, X 자재소요, 6 BOM
시작일/완료일 X 일

8.6 자재 소요량 및 재고 현황

컬럼 설명
자재코드 SCR-MAT-XXX
자재명 예: 스크린 원단
단위 M² / EA
소요량 숫자
현재고 숫자
상태 충분 (녹색)

8.7 스크린 물류 내역 (X건)

컬럼 설명
No 순번
품목코드 품목 ID
품명 제품명
가로/세로 mm
가공수량 숫자
재단면적
자투리(%) 퍼센트
자재코드 자재 ID
판재규격 규격
숫자
수량 숫자

8.8 모터/전장품 사양

컬럼 설명
사이즈 (380V) 예: KD-150K
모터 사양 예: 380-180 [3-4"]
허브 사양 예: 3"H

8.9 필요한 BOM

컬럼 설명
품목 품목명
규격 예: 100-70
조도 예: KSDEL/NAKED
단위 예: 3000
수량 숫자

8.10 봉/카바

컬럼 설명
카바(스테인리스커버) - 하단 조작 500-330
품목 품목명
수량 숫자
봉/샤
품목 품목명
수량 숫자
마/더
품목 품목명
수량 숫자

8.11 박스/마감재

컬럼 설명
품목 품목명
규격 규격
단위 단위
수량 숫자

8.12 모터 브라켓

컬럼 설명
품목 품목명
수량 숫자

8.13 하단 버튼

  • 수주상세보기 / 생산지시 확정 (X건) (파란 버튼)

9. 생산지시 확정 후 플로우

9.1 생산지시 확정 팝업

┌─────────────────────────────────────────┐
│ ✅ 생산지시가 생성되었습니다.            │
│                                         │
│ 생산지시번호: PO-KD-TS-XXXXXX-XX        │
│                                         │
│ 생산관리 > 생산지시 관리에서             │
│ 작업지시서를 생성하세요.                 │
│                                         │
│                          [확인]         │
└─────────────────────────────────────────┘

9.2 생산지시 상세 화면 (확정 후)

  • 페이지 제목: 생산지시 상세 + 생산지시번호 + 상태 배지 (생산대기)
  • 우측 상단: 목록, 작업지시 생성 버튼

공정 진행 현황

  • 진행 상태 바 또는 카드

기본 정보

필드
생산지시번호 PO-KD-TS-XXXXXX-XX
수주번호 KD-TS-XXXXXX-XX
생산지시일 YYYY-MM-DD
납기일 YYYY-MM-DD
수량 X 개

거래처/현장 정보

필드
거래처 거래처명
현장명 현장명
제품유형 (선택)

BOM 품목별 공정 분류

  • 공정별 분류 표시

작업지시서 목록

컬럼 설명
작업지시번호 KD-WO-XXXXXX-XX
공정 공정명
수량 X 개
상태 배지 (예: 재작업중)
담당자 -

9.3 작업지시 자동 생성 팝업

┌─────────────────────────────────────────┐
│ ▷ 작업지시서 자동 생성                   │
├─────────────────────────────────────────┤
│                                         │
│ 다음 공정에 대한 작업지시서가            │
│ 생성됩니다:                             │
│                                         │
│ 생성된 작업지시서는 생산팀에서 확인하고  │
│ 작업을 진행할 수 있습니다.              │
│                                         │
│                  [취소] [작업지시 생성]  │
└─────────────────────────────────────────┘

9.4 작업지시 생성 완료 팝업

┌─────────────────────────────────────────┐
│ ✅ X개의 작업지시서가 공정별로           │
│    자동 생성되었습니다.                  │
│                                         │
│ 생성된 작업지시서:                       │
│                                         │
│ 작업지시 관리 페이지로 이동합니다.       │
│                                         │
│                          [확인]         │
└─────────────────────────────────────────┘
  • 확인 클릭 시: 생산관리 > 작업지시 관리 리스트 페이지로 이동
    • (해당 페이지는 추후 구현 시 연결)

10. 컴포넌트 재사용

10.1 기존 컴포넌트 활용

컴포넌트 용도
IntegratedListTemplateV2 리스트 페이지
PageLayout 페이지 레이아웃
DocumentPreviewDialog 문서 팝업 (기안함에서 사용 중)
DaumPostcodeDialog 우편번호 검색
AlertDialog 확인 팝업
Dialog 일반 팝업

10.2 신규 컴포넌트

컴포넌트 용도
QuotationSelectDialog 견적 선택 팝업
ItemAddDialog 품목 추가 팝업
ContractDocument 계약서 문서
TransactionDocument 거래명세서 문서
PurchaseOrderDocument 발주서 문서
ProductionOrderForm 생산지시 생성 폼
WorkOrderConfirmDialog 작업지시 생성 확인 팝업

11. API 엔드포인트 (예상)

Method Endpoint 설명
GET /api/v1/order-management 수주 목록 조회
GET /api/v1/order-management/:id 수주 상세 조회
POST /api/v1/order-management 수주 등록
PUT /api/v1/order-management/:id 수주 수정
DELETE /api/v1/order-management/:id 수주 삭제
GET /api/v1/quotations/confirmed 확정 견적 목록
POST /api/v1/production-order 생산지시 생성
POST /api/v1/work-order 작업지시 생성

12. 구현 순서

Phase 1: 기본 CRUD 완료 (2025-12-22)

  • 1.1 리스트 페이지 구현
  • 1.2 등록 페이지 구현
  • 1.3 견적 선택 팝업
  • 1.4 품목 추가 팝업
  • 1.5 상세 페이지 구현
  • 1.6 수정 페이지 구현

Phase 2: 문서 팝업 & 생산지시 조회 완료 (2025-12-22)

  • 2.1 계약서 문서 컴포넌트 (ContractDocument.tsx)
  • 2.2 거래명세서 문서 컴포넌트 (TransactionDocument.tsx)
  • 2.3 발주서 문서 컴포넌트 (PurchaseOrderDocument.tsx)
  • 2.4 OrderDocumentModal 연동 (기안함 패턴 적용)
  • 2.5 수주 상세 페이지 수정 (탭 → 버튼+모달)
  • 2.6 생산지시 목록 페이지 (production-orders/page.tsx)
  • 2.7 생산지시 상세 페이지 (production-orders/[id]/page.tsx)
  • 2.8 생산지시완료 상태 버튼 변경 ("생산지시 생성" → "생산지시 보기")

Phase 3: 생산지시 생성 연동 ← 현재

  • 3.1 생산지시 생성 페이지 ([id]/production-order/page.tsx)
  • 3.2 생산지시 확정 플로우 (확정 팝업)
  • 3.3 작업지시 생성 팝업
  • 3.4 페이지 이동 로직 (작업지시 관리로)

13. 참고 사항

13.1 상태 값 (6개)

상태 배지 색상 설명
수주확정 회색 초기 상태
생산지시완료 파랑 생산지시 생성됨
생산중 초록 생산 진행 중
재작업중 주황 재작업 진행 중
작업완료 파랑/완료 작업 완료
출하완료 회색/완료 출하 완료

13.2 번호 체계

유형 형식 예시
로트번호 KD-TS-YYMMDD-XX KD-TS-251217-09
견적번호 KD-PR-YYMMDD-XX KD-PR-251217-09
생산지시번호 PO-KD-TS-YYMMDD-XX PO-KD-TS-251217-09
작업지시번호 KD-WO-YYMMDD-XX KD-WO-251217-11