# 작업지시 화면 구현 가이드 > **화면명**: 작업지시 > **파일**: 작업지시.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 작업지시 목록 ```typescript 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 자재투입 탭 ```typescript 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. 상태 탭 ```typescript 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 필요) ```typescript groupByOptions: [ { id: 'work_date', label: '작업일자' }, { id: 'process_name', label: '공정' }, { id: 'item_type', label: '품목구분' } ] ``` --- ## 7. 현재 구현 가능 범위 ### ✅ 가능 - 검색 영역 - 상태 탭 전환 - 분할 패널 - 상세 탭 - 자재투입/공정현황/실적현황 테이블 ### ⚠️ 부분 가능 - 작업지시 목록: 그룹화 없이 일반 테이블 ### ❌ 불가능 - 동적 그룹화 --- ## 8. 구현 JSON ```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 개발 시 재활용 가능**