6.9 KiB
6.9 KiB
작업지시 화면 구현 가이드
화면명: 작업지시 파일: 작업지시.html 분류: 생산관리 구현 가능: ⚠️ 부분 (그룹화 테이블 필요)
1. 화면 개요
생산계획을 기반으로 작업지시를 생성하고 관리하는 화면입니다.
핵심 기능
- 작업지시 목록 조회 (탭별 구분)
- 그룹화 기능 (작업일자, 공정별)
- 작업지시 생성/수정/삭제
- 작업지시서 인쇄
- 실적 연계
2. 화면 레이아웃
┌─────────────────────────────────────────────────────────────────┐
│ [기간] [품목] [공정] [작업상태▼] [초기화][조회] [사용자옵션][엑셀] │
├─────────────────────────────────────────────────────────────────┤
│ [전체] [대기] [진행중] [완료] [지연] │
├───────────────────────┬─────────────────────────────────────────┤
│ 📋 작업지시 목록 │ 📄 작업지시 상세 │
│ ─────────────── │ [인쇄] [시작] [완료] [수정] [삭제] │
│ Group by: [작업일자▼] │ ───────────────────────── │
│ ┌──────────────────┐ │ 지시번호: WO-2026-0001 │
│ │▼ 2026-01-30 (5) │ │ 품목명: 제품A │
│ │ WO-001|제품A|대기│ │ 지시수량: 100 EA │
│ │ WO-002|제품B|진행│ ├─────────────────────────────────────────┤
│ │▼ 2026-01-31 (3) │ │ [자재투입] [공정현황] [실적현황] │
│ │ WO-003|제품C|대기│ │ ─────────────────────────── │
│ └──────────────────┘ │ [투입자재 테이블] │
└───────────────────────┴─────────────────────────────────────────┘
3. V2 컴포넌트 매핑
| HTML 영역 | V2 컴포넌트 | 상태 |
|---|---|---|
| 검색 섹션 | v2-table-search-widget |
✅ 가능 |
| 상태 탭 | v2-tabs-widget |
✅ 가능 |
| 작업지시 목록 (그룹화) | v2-table-list |
⚠️ 그룹화 미지원 |
| 분할 패널 | v2-split-panel-layout |
✅ 가능 |
| 상세 탭 | v2-tabs-widget |
✅ 가능 |
4. 테이블 정의
4.1 작업지시 목록
columns: [
{ id: 'checkbox', type: 'checkbox', width: 50 },
{ id: 'work_order_no', label: '지시번호', width: 120 },
{ id: 'work_date', label: '작업일', width: 100 },
{ id: 'item_code', label: '품목코드', width: 100 },
{ id: 'item_name', label: '품목명', width: 200 },
{ id: 'order_qty', label: '지시수량', width: 100, align: 'right' },
{ id: 'prod_qty', label: '생산수량', width: 100, align: 'right' },
{ id: 'process_name', label: '공정', width: 100 },
{ id: 'status', label: '상태', width: 80 },
{ id: 'worker', label: '작업자', width: 100 }
]
4.2 자재투입 탭
materialColumns: [
{ id: 'item_code', label: '품목코드', width: 100 },
{ id: 'item_name', label: '품목명', width: 200 },
{ id: 'required_qty', label: '소요량', width: 100, align: 'right' },
{ id: 'issued_qty', label: '투입량', width: 100, align: 'right' },
{ id: 'unit', label: '단위', width: 60 },
{ id: 'warehouse', label: '출고창고', width: 100 }
]
5. 상태 탭
statusTabs: [
{ id: 'all', label: '전체', count: 25 },
{ id: 'waiting', label: '대기', count: 10 },
{ id: 'progress', label: '진행중', count: 8 },
{ id: 'completed', label: '완료', count: 5 },
{ id: 'delayed', label: '지연', count: 2 }
]
6. 그룹화 기능 (v2-grouped-table 필요)
groupByOptions: [
{ id: 'work_date', label: '작업일자' },
{ id: 'process_name', label: '공정' },
{ id: 'item_type', label: '품목구분' }
]
7. 현재 구현 가능 범위
✅ 가능
- 검색 영역
- 상태 탭 전환
- 분할 패널
- 상세 탭
- 자재투입/공정현황/실적현황 테이블
⚠️ 부분 가능
- 작업지시 목록: 그룹화 없이 일반 테이블
❌ 불가능
- 동적 그룹화
8. 구현 JSON
{
"screen_code": "WORK_ORDER_MAIN",
"screen_name": "작업지시",
"components": [
{
"type": "v2-table-search-widget",
"position": { "x": 0, "y": 0, "w": 12, "h": 1 },
"config": {
"searchFields": [
{ "type": "date", "id": "date_range", "placeholder": "기간", "dateRange": true },
{ "type": "input", "id": "item_name", "placeholder": "품목명" },
{ "type": "select", "id": "process", "placeholder": "공정" },
{ "type": "select", "id": "status", "placeholder": "상태" }
]
}
},
{
"type": "v2-tabs-widget",
"position": { "x": 0, "y": 1, "w": 12, "h": 11 },
"config": {
"tabs": [
{ "id": "all", "label": "전체" },
{ "id": "waiting", "label": "대기" },
{ "id": "progress", "label": "진행중" },
{ "id": "completed", "label": "완료" },
{ "id": "delayed", "label": "지연" }
],
"tabContent": {
"type": "v2-split-panel-layout",
"config": {
"masterPanel": {
"title": "작업지시 목록",
"entityId": "work_order",
"columns": [
{ "id": "work_order_no", "label": "지시번호" },
{ "id": "work_date", "label": "작업일" },
{ "id": "item_name", "label": "품목명" },
{ "id": "order_qty", "label": "지시수량" },
{ "id": "status", "label": "상태" }
]
},
"detailPanel": {
"tabs": [
{ "id": "material", "label": "자재투입", "entityId": "work_order_material" },
{ "id": "process", "label": "공정현황", "entityId": "work_order_process" },
{ "id": "result", "label": "실적현황", "entityId": "work_order_result" }
]
}
}
}
}
}
]
}
v2-grouped-table 개발 시 재활용 가능