Files
sam-docs/projects/mes/v2-analysis/production-analysis/README.md
hskwon 764a6470c6 MES 분석 문서 구조 정리: v1/v2 분리
- v1-analysis: 5130 레거시 기반 견적 분석 추가
- v2-analysis: 기존 MES 분석 문서들 이동
  - customer, master-data, order, price
  - production, production-userflow, quote, site
2025-12-19 15:37:59 +09:00

655 lines
18 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 생산관리 분석 결과
> 분석 일시: 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) - 품목 단가 정보