feat(WEB): 공정 단계 설정(검사여부/연결정보/완료정보) → WorkerScreen 연동

- WorkStepData 타입에 stepProgressId, needsInspection, connectionType, connectionTarget, completionType 추가
- getWorkOrderDetail step 변환에서 needs_inspection, connection_type, completion_type 추출
- PROCESS_STEPS 폴백 시 processListCache 단계 설정 매칭하여 enrichStep 헬퍼로 주입
- handleStepClick에 connectionType='팝업' + connectionTarget='중간검사' 분기 추가
- handleInspectionComplete에서 completionType='검사완료 시 완료' 단계 toggleStepProgress API 호출
- TemplateInspectionContent: reference_attribute → workItem 치수 연동
- InspectionInputModal: workItemDimensions prop으로 실제 치수 기반 설계값 표시
This commit is contained in:
2026-02-11 14:30:46 +09:00
parent 8a993bc0c3
commit 5104a8b012
13 changed files with 831 additions and 409 deletions

View File

@@ -320,6 +320,8 @@ export default function ProcessListClient({ initialData = [], initialStats }: Pr
{ key: 'processName', label: '공정명', className: 'min-w-[200px]' },
{ key: 'department', label: '담당부서', className: 'w-[120px]' },
{ key: 'items', label: '품목', className: 'w-[80px] text-center' },
{ key: 'inspection', label: '중간검사', className: 'w-[90px] text-center' },
{ key: 'workLog', label: '작업일지', className: 'w-[90px] text-center' },
{ key: 'status', label: '상태', className: 'w-[80px] text-center' },
],
@@ -338,6 +340,8 @@ export default function ProcessListClient({ initialData = [], initialStats }: Pr
<TableHead className="min-w-[200px]"></TableHead>
<TableHead className="w-[120px]"></TableHead>
<TableHead className="w-[80px] text-center"></TableHead>
<TableHead className="w-[90px] text-center"></TableHead>
<TableHead className="w-[90px] text-center"></TableHead>
<TableHead className="w-[80px] text-center"></TableHead>
</>
),
@@ -450,6 +454,16 @@ export default function ProcessListClient({ initialData = [], initialStats }: Pr
<TableCell>{process.processName}</TableCell>
<TableCell>{process.department}</TableCell>
<TableCell className="text-center">{itemCount > 0 ? itemCount : '-'}</TableCell>
<TableCell className="text-center">
<Badge variant={process.needsInspection ? 'default' : 'secondary'}>
{process.needsInspection ? '사용' : '미사용'}
</Badge>
</TableCell>
<TableCell className="text-center">
<Badge variant={process.needsWorkLog ? 'default' : 'secondary'}>
{process.needsWorkLog ? '사용' : '미사용'}
</Badge>
</TableCell>
<TableCell className="text-center" onClick={(e) => e.stopPropagation()}>
<Badge
variant={process.status === '사용중' ? 'default' : 'secondary'}
@@ -503,6 +517,8 @@ export default function ProcessListClient({ initialData = [], initialStats }: Pr
<div className="grid grid-cols-2 gap-x-4 gap-y-3">
<InfoField label="담당부서" value={process.department} />
<InfoField label="품목" value={itemCount > 0 ? `${itemCount}` : '-'} />
<InfoField label="중간검사" value={process.needsInspection ? '사용' : '미사용'} />
<InfoField label="작업일지" value={process.needsWorkLog ? '사용' : '미사용'} />
</div>
}
/>