# 생산관리 분석 결과

> 분석 일시: 2024-12-18
> 분석 대상: design/mes기획서_리액트 (디자인팀 기획 사이트)

## 분석 목적

디자인팀에서 제작한 기획 사이트의 생산관리 기능을 분석하여 API 개발에 필요한 스펙을 추출합니다.

---

## 메뉴 구조

```
생산관리
├── 품목관리           - 제품/부품/원자재 등록 및 관리
├── 생산 현황판        - 실시간 작업 현황 모니터링
├── 작업지시 관리      - 작업지시 등록/조회/상태관리
├── 작업실적          - 생산 실적 조회 및 통계
├── 작업자 화면        - 현장 작업자용 태블릿 UI
└── UserFlow          - 업무 흐름도 (참조용)
```

---

## UI 스크린샷

### 1. 품목 목록 페이지
![품목 목록](screenshots/01-item-list.png)

**주요 요소:**

**상단 요약 카드 (4개):**
| 항목 | 값 | 설명 |
|------|-----|------|
| 전체 품목 | 70 | 등록된 총 품목 수 |
| 제품 | 0 | 완제품 |
| 부품 | 36 | 조립 부품 |
| 부자재 | 0 | 보조 재료 |

**탭 필터 (품목유형별):**
| 탭 | 건수 |
|-----|------|
| 전체 | 70 |
| 제품 | 0 |
| 부품 | 36 |
| 부자재 | 0 |
| 원자재 | 15 |
| 소모품 | 0 |

**테이블 컬럼:**
| 컬럼 | 설명 |
|------|------|
| 번호 | 순번 |
| 품목코드 | 품목 식별 코드 |
| 품목유형 | 제품, 부품, 원자재, 서비스 등 |
| 품목명 | 품목 이름 |
| 규격 | 규격 정보 |
| 단위 | EA, SET, KG, M 등 |
| 품목 상태 | 사용중/미사용 |

---

### 2. 품목 등록 폼
![품목 등록](screenshots/02-item-create.png)

**입력 섹션:**

**기본 정보:**
| 필드명 | 타입 | 필수 | 비고 |
|--------|------|------|------|
| 품목유형 | select | ✅ | 제품, 부품, 원자재 등 |
| 부품 유형 | select | | 품목유형=부품 시 표시 |
| 품목코드 | text | ✅ | 자동 생성 또는 수동 입력 |
| 품목명 | text | ✅ | |
| 규격 | text | | |
| 단위 | select | | EA, SET, KG 등 |

**측면 규격 및 길이:**
| 필드명 | 타입 | 비고 |
|--------|------|------|
| 측면 규격 | number | mm 단위 |
| 길이 | number | mm 단위 |

**조립품 전개도 (바라시):**
- BOM 정보 입력
- 구성 부품 목록

---

### 3. 생산 현황판
![생산 현황판](screenshots/03-dashboard.png)

**주요 요소:**

**상단 버튼:**
- 작업자 화면
- 작업지시 목록

**공장 필터 탭:**
| 탭 | 설명 |
|-----|------|
| 전체 | 모든 공장 |
| 스크린공장 | 스크린 생산 라인 |
| 슬랫공장 | 슬랫 생산 라인 |
| 절곡공장 | 절곡 생산 라인 |

**요약 카드 (6개):**
| 항목 | 값 | 설명 |
|------|-----|------|
| 전체 작업 | 34건 | 총 작업지시 수 |
| 작업대기 | 4건 | 대기 상태 |
| 작업중 | 7건 | 진행 중 |
| 작업완료 | 19건 | 완료 |
| 긴급 | 12건 | 긴급 작업 |
| 지연 | 4건 | 납기 지연 |

**대시보드 섹션:**
- 🔴 긴급 작업: 작업번호, 상태, 거래처/현장, 납기
- ⚠️ 지연 작업: 작업번호, 지연 일수, 거래처, 담당자
- 👷 작업자별 현황: 작업자명, 배정 건수, 작업중/완료 건수

---

### 4. 작업지시 목록 페이지
![작업지시 목록](screenshots/04-work-order-list.png)

**주요 요소:**

**상단 요약 카드 (4개):**
| 항목 | 값 | 설명 |
|------|-----|------|
| 전체 | 34건 | 총 작업지시 수 |
| 작업대기 | 4건 | 대기 상태 |
| 작업중 | 7건 | 진행 중 |
| 작업완료 | 19건 | 완료 |

**탭 필터:**
| 탭 | 건수 | 설명 |
|-----|------|------|
| 전체 | 34 | 모든 작업지시 |
| 미배정 | 3 | 작업자 미배정 |
| 승인대기 | 3 | 승인 대기 중 |
| 작업대기 | 1 | 작업 시작 대기 |
| 작업중 | 7 | 진행 중 |
| 작업완료 | 19 | 완료 |

**테이블 컬럼:**
| 컬럼 | 설명 |
|------|------|
| 번호 | 순번 |
| 작업지시번호 | KD-WO-YYMMDD-## |
| 공정 | 스크린, 슬랫, 절곡 |
| 로트번호 | 추적 번호 |
| 지시일 | 작업지시 생성일 |
| 배정 | Y/- (작업자 배정 여부) |
| 투입 | Y/- (자재 투입 여부) |
| 시작 | Y/- (작업 시작 여부) |
| 작업상태 | 작업대기, 작업중, 작업완료, 재작업중, 출하완료 |
| 우선순위 | 숫자 (1이 가장 높음) |
| 현장명 | 설치 현장명 |
| 출고예정일 | 출하 예정 날짜 |

---

### 5. 작업지시 상세 페이지
![작업지시 상세](screenshots/05-work-order-detail.png)

**주요 섹션:**

**기본 정보:**
| 필드 | 설명 |
|------|------|
| 작업지시번호 | KD-WO-YYMMDD-## |
| 로트번호 | KD-TS-YYMMDD-## |
| 공정구분 | 스크린, 슬랫, 절곡 |
| 작업상태 | 출하완료, 재작업중 등 |
| 발주처 | 거래처명 |
| 현장명 | 설치 현장명 |
| 납기일 | 납품 기한 |
| 작업자 | 담당 작업자명 |

**공정 진행 (5단계 - 스크린 기준):**
| 단계 | 공정명 |
|------|--------|
| 1 | 원단절단 |
| 2 | 미싱 |
| 3 | 앤드락작업 |
| 4 | 중간검사 |
| 5 | 포장 |

**작업 품목:**
| 컬럼 | 설명 |
|------|------|
| No | 순번 |
| 상태 | 대기, 진행중, 완료 |
| 품목명 | 제품명 |
| 층/부호 | 설치 위치 |
| 규격 | 가로×세로 |
| 수량 | 제작 수량 |

**헤더 버튼:**
- 작업일지
- 목록

---

### 6. 작업지시 등록 폼
![작업지시 등록](screenshots/06-work-order-create.png)

**입력 섹션:**

**등록 방식:**
| 옵션 | 설명 |
|------|------|
| 수주 연동 등록 | 회계확인 완료된 수주에서 불러오기 (기본값) |
| 수동 등록 | 수주 없이 직접 입력 |

**수주 정보:**
- 수주 선택 버튼: 수주 선택 시 정보 자동 입력

**기본 정보:**
| 필드명 | 타입 | 필수 | 비고 |
|--------|------|------|------|
| 발주처 | text | ✅ | 수주 선택 시 자동 입력 |
| 현장명 | text | ✅ | 수주 선택 시 자동 입력 |
| 수주번호 | text | | 수주 선택 시 자동 입력 |
| 품목수 | number | | 수주 선택 시 자동 입력 |

**작업지시 정보:**
| 필드명 | 타입 | 필수 | 비고 |
|--------|------|------|------|
| 공정구분 | select | ✅ | 스크린, 절곡, 슬랫, 재고(포밍) |
| 납기일 | date | ✅ | |
| 우선순위 | select | | 긴급, 일반, 낮음 |
| 담당자 | multi-select | | 다중 선택 가능 |
| 비고 | textarea | | 특이사항, 메모 |

**공정코드/작업일지 자동 매핑:**
| 공정 | 공정코드 | 작업일지 템플릿 |
|------|----------|----------------|
| 스크린 | P-001 | WL-SCR |
| 슬랫 | P-002 | WL-SLAT |
| 절곡 | P-003 | WL-BEND |
| 재고(포밍) | P-004 | WL-STK |

---

### 7. 작업실적 조회 페이지
![작업실적](screenshots/07-work-result.png)

**주요 요소:**

**상단 요약 카드 (4개):**
| 항목 | 값 | 설명 |
|------|-----|------|
| 총 생산수량 | 3개 | 생산된 총 수량 |
| 양품수량 | 2개 | 정상 제품 수 |
| 불량수량 | 1개 | 불량 제품 수 |
| 불량률 | 33.3% | 불량/생산 * 100 |

**테이블 컬럼:**
| 컬럼 | 설명 |
|------|------|
| 로트번호 | 추적 번호 |
| 작업일 | 작업 수행일 |
| 작업지시번호 | 연결된 작업지시 |
| 공정 | 스크린, 슬랫, 절곡 |
| 품목명 | 제품명 |
| 규격 | 가로×세로 |
| 생산 | 생산 수량 |
| 양품 | 양품 수량 |
| 불량 | 불량 수량 |
| 불량률 | 불량/생산 * 100 |
| 검사 | 검사 완료 여부 (체크 아이콘) |
| 포장 | 포장 완료 여부 (체크 아이콘) |
| 작업자 | 작업자명 |

**기능:**
- 엑셀 다운로드 버튼
- 일괄 내보내기 (체크박스)

---

### 8. 작업자 화면
![작업자 화면](screenshots/08-worker-screen.png)

**주요 요소:**

**상단 요약 카드 (4개):**
| 항목 | 값 | 설명 |
|------|-----|------|
| 할일 | 15건 | 대기 중인 작업 |
| 작업중 | 7건 | 현재 진행 중 |
| 완료 | 0건 | 완료된 작업 |
| 긴급 | 5건 | 긴급 표시 작업 |

**정렬 옵션:**
- 우선순위순 (기본)
- 납기일순
- 최신등록순

**작업 카드 정보:**
| 항목 | 설명 |
|------|------|
| 품목명 | 제품명 |
| 수량 | 제작 수량 (EA) |
| 우선순위 | N순위 표시 |
| 상태 | 긴급, 작업중 등 |
| 납기 | 납기일 |
| 공정 | 스크린, 슬랫, 절곡 |
| 작업지시번호 | KD-WO-YYMMDD-## |
| 거래처·현장명 | 발주처 및 현장 |
| 담당자 | 작업자 목록 |
| 지시 메모 | 특이사항 |

**작업 버튼:**
| 버튼 | 설명 |
|------|------|
| 전량완료 | 작업 완료 처리 |
| 공정상세 | 공정별 진행 상황 확인 |
| 자재투입 | 자재 투입 처리 |
| 작업일지 | 작업일지 작성 |
| 이슈보고 | 문제 발생 시 보고 |

---

### 9. 공정상세 화면
![공정상세](screenshots/09-process-detail.png)

**주요 요소:**

**자재 투입 알림:**
- "자재 투입 필요" 메시지
- "자재 투입하기" 버튼

**공정 단계 (8단계 - 스크린 기준):**
| 단계 | 공정명 | 유형 | 설명 |
|------|--------|------|------|
| 1 | 자재투입 | 일반 | 자재 투입 |
| 2 | 절단매수확인 | 일반 | 절단할 수량 확인 |
| 3 | 원단 절단 | 일반 | 원단 절단 |
| 4 | 절단 Check | 검사 | 절단 품질 검사 |
| 5 | 미싱 | 일반 | 봉제 작업 |
| 6 | 앤드락 작업 | 일반 | 앤드락 부착 |
| 7 | 중간검사 | 검사 | 품질 검사 |
| 8 | 포장 | 일반 | 최종 포장 |

**품목별 진행 정보:**
| 항목 | 설명 |
|------|------|
| #번호 | 품목 순번 |
| 위치 | 층/부호 (예: 1층 1호-A) |
| 메모 | 선행 생산 등 |
| 규격 | W가로 × H세로 |
| 자재 | 투입 자재명 |
| LOT | 로트번호 |

**버튼:**
- 검사 요청: 검사 공정에서 품질팀 요청

---

## 데이터 스키마

### Item (품목)
```
items
├── id (PK)
├── tenant_id (FK)
├── item_code (UNIQUE) - 품목코드
├── item_type - 품목유형 (제품, 부품, 원자재, 부자재, 소모품, 서비스)
├── sub_type - 부품 유형 (조립 부품, 가공 부품 등)
├── name - 품목명
├── specification - 규격
├── unit - 단위 (EA, SET, KG, M 등)
├── side_spec - 측면 규격
├── length - 길이
├── status - 상태 (사용중/미사용)
├── bom_data - BOM 정보 (JSON)
├── created_at
├── updated_at
└── deleted_at
```

### WorkOrder (작업지시)
```
work_orders
├── id (PK)
├── tenant_id (FK)
├── work_order_no (UNIQUE) - 자동 채번
├── order_id (FK) - 연결된 수주
├── lot_no - 로트번호
├── process_type - 공정구분 (스크린, 슬랫, 절곡, 재고)
├── process_code - 공정코드 (P-001 등)
├── customer_id (FK) - 거래처
├── customer_name - 거래처명 (스냅샷)
├── site_name - 현장명
├── due_date - 납기일
├── status - 작업상태
├── priority - 우선순위
├── assigned - 배정 여부 (Y/N)
├── material_input - 자재 투입 여부 (Y/N)
├── started - 작업 시작 여부 (Y/N)
├── note - 비고
├── created_by
├── created_at
├── updated_at
└── deleted_at
```

### WorkOrderItem (작업지시 품목)
```
work_order_items
├── id (PK)
├── work_order_id (FK)
├── seq - 순번
├── product_name - 품목명
├── floor_location - 층/부호
├── specification - 규격 (가로×세로)
├── qty - 수량
├── status - 상태 (대기, 진행중, 완료)
├── material_name - 자재명
├── lot_no - 자재 로트번호
├── created_at
└── updated_at
```

### WorkResult (작업실적)
```
work_results
├── id (PK)
├── tenant_id (FK)
├── lot_no - 로트번호
├── work_date - 작업일
├── work_order_id (FK) - 작업지시
├── work_order_no - 작업지시번호
├── process_type - 공정
├── product_name - 품목명
├── specification - 규격
├── production_qty - 생산 수량
├── good_qty - 양품 수량
├── defect_qty - 불량 수량
├── defect_rate - 불량률 (%)
├── inspected - 검사 완료 여부
├── packed - 포장 완료 여부
├── worker_id (FK) - 작업자
├── worker_name - 작업자명
├── created_at
└── updated_at
```

### WorkOrderAssignment (작업자 배정)
```
work_order_assignments
├── id (PK)
├── work_order_id (FK)
├── worker_id (FK)
├── assigned_at - 배정일
└── created_at
```

### ProcessStep (공정 단계)
```
process_steps
├── id (PK)
├── process_type - 공정구분 (스크린, 슬랫, 절곡)
├── step_no - 단계 번호
├── step_name - 단계명
├── step_type - 유형 (일반, 검사)
├── sort_order - 정렬 순서
├── is_active - 활성 여부
└── created_at
```

### WorkOrderProgress (작업 진행)
```
work_order_progresses
├── id (PK)
├── work_order_id (FK)
├── work_order_item_id (FK)
├── process_step_id (FK)
├── status - 상태 (대기, 진행중, 완료)
├── completed_at - 완료일시
├── worker_id (FK)
└── created_at
```

---

## 상태 흐름

### 작업지시 상태
```
미배정 → 승인대기 → 작업대기 → 작업중 → 작업완료 → 출하완료
                               ↓
                           재작업중 → 작업완료
```

| 상태 | 설명 |
|------|------|
| 미배정 | 작업자 미배정 상태 |
| 승인대기 | 작업지시 승인 대기 |
| 작업대기 | 승인 완료, 작업 시작 대기 |
| 작업중 | 작업 진행 중 |
| 작업완료 | 작업 완료 |
| 재작업중 | 불량으로 인한 재작업 |
| 출하완료 | 출하 완료 |

### 공정별 단계 (스크린)
```
자재투입 → 절단매수확인 → 원단 절단 → 절단 Check(검사) → 미싱 → 앤드락 작업 → 중간검사 → 포장
```

### 공정별 단계 (슬랫)
```
자재투입 → 코일절단 → 절단 Check(검사) → 슬랫 성형 → 조립 → 중간검사 → 포장
```

### 공정별 단계 (절곡)
```
자재투입 → 판/코일절단 → 절단 Check(검사) → 절곡 → 용접 → 검사 → 포장
```

---

## API 스펙

### 품목 CRUD

```
GET    /api/items                     - 품목 목록
GET    /api/items/{id}                - 품목 상세
POST   /api/items                     - 품목 등록
PUT    /api/items/{id}                - 품목 수정
DELETE /api/items/{id}                - 품목 삭제
DELETE /api/items                     - 품목 일괄 삭제
```

### 작업지시 CRUD

```
GET    /api/work-orders               - 작업지시 목록
GET    /api/work-orders/{id}          - 작업지시 상세
POST   /api/work-orders               - 작업지시 등록
PUT    /api/work-orders/{id}          - 작업지시 수정
DELETE /api/work-orders/{id}          - 작업지시 삭제
```

### 작업지시 상태/작업자

```
POST   /api/work-orders/{id}/status   - 상태 변경
POST   /api/work-orders/{id}/assign   - 작업자 배정
POST   /api/work-orders/{id}/start    - 작업 시작
POST   /api/work-orders/{id}/complete - 작업 완료
POST   /api/work-orders/{id}/rework   - 재작업 처리
```

### 공정 진행

```
GET    /api/work-orders/{id}/progress       - 공정 진행 조회
POST   /api/work-orders/{id}/progress/{step} - 공정 단계 완료
POST   /api/work-orders/{id}/material-input  - 자재 투입
POST   /api/work-orders/{id}/inspection      - 검사 요청
```

### 작업실적

```
GET    /api/work-results              - 작업실적 목록
GET    /api/work-results/{id}         - 작업실적 상세
POST   /api/work-results              - 작업실적 등록
GET    /api/work-results/export       - 엑셀 다운로드
```

### 작업자 화면 (모바일/태블릿)

```
GET    /api/worker/tasks              - 내 작업 목록
GET    /api/worker/tasks/{id}         - 작업 상세
POST   /api/worker/tasks/{id}/complete - 작업 완료
POST   /api/worker/tasks/{id}/issue    - 이슈 보고
```

### 생산 현황판

```
GET    /api/dashboard/production      - 생산 현황 요약
GET    /api/dashboard/urgent          - 긴급 작업 목록
GET    /api/dashboard/delayed         - 지연 작업 목록
GET    /api/dashboard/workers         - 작업자별 현황
```

### 목록 조회 Query Parameters

**작업지시 목록:**
| 파라미터 | 타입 | 설명 |
|----------|------|------|
| process_type | string | 공정구분 필터 (스크린, 슬랫, 절곡) |
| status | string | 작업상태 필터 |
| search | string | 검색어 (작업지시번호, 발주처, 현장명) |
| page | number | 페이지 번호 |
| per_page | number | 페이지당 개수 |

**작업실적 목록:**
| 파라미터 | 타입 | 설명 |
|----------|------|------|
| process_type | string | 공정구분 필터 |
| from_date | date | 시작일 |
| to_date | date | 종료일 |
| worker_id | number | 작업자 필터 |
| search | string | 검색어 (로트번호, 작업지시번호, 품목명) |

---

## 채번 규칙

| 문서 | 형식 | 예시 |
|------|------|------|
| 작업지시번호 | KD-WO-YYMMDD-## | KD-WO-251218-01 |
| 절곡 작업지시 | KD-WO-FLD-YYMMDD-## | KD-WO-FLD-251218-01 |
| 로트번호 | KD-TS-YYMMDD-## | KD-TS-251218-01 |
| 자재 로트 | LOT-{공정}-YYYY-### | LOT-스크-2025-001 |

---

## 공정별 작업일지 템플릿

| 공정 | 템플릿코드 | 설명 |
|------|------------|------|
| 스크린 | WL-SCR | 스크린 작업일지 |
| 슬랫 | WL-SLAT | 슬랫 작업일지 |
| 절곡 | WL-BEND | 절곡 작업일지 |
| 재고(포밍) | WL-STK | 재고생산 작업일지 |

---

## 통계 계산

| 항목 | 계산식 |
|------|--------|
| 불량률 | (불량수량 / 생산수량) * 100 |
| 작업 진행률 | (완료 공정 수 / 전체 공정 수) * 100 |
| 품목별 진행률 | (완료 품목 수 / 전체 품목 수) * 100 |
| 작업자 생산성 | 양품수량 / 작업시간 |

---

## 관련 문서

- [UserFlow 분석](../production-userflow/README.md) - 생산관리 업무 흐름도
- [수주관리 분석](../order-analysis/README.md) - 수주 → 작업지시 연동
- [단가관리 분석](../price-analysis/README.md) - 품목 단가 정보