feat: 생산지시 생성 시 공정 자동 분류 및 아이템 연결
- OrderService: 생산지시 생성 로직 개선 - order_items.item_id → process_items 테이블에서 공정 자동 조회 - 공정별로 아이템 그룹화 (미지정 아이템은 별도 그룹) - 각 공정별 작업지시 생성 - work_order_items에 해당 공정의 아이템들 자동 추가 - WorkOrderService: 목록 조회 시 관계 추가 - items 관계 추가 (틀수 계산용) - process.department 필드 추가 (부서 표시용) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -49,7 +49,8 @@ public function index(array $params)
|
||||
'team:id,name',
|
||||
'salesOrder:id,order_no,client_id,client_name',
|
||||
'salesOrder.client:id,name',
|
||||
'process:id,process_name,process_code',
|
||||
'process:id,process_name,process_code,department',
|
||||
'items:id,work_order_id,item_name,quantity',
|
||||
]);
|
||||
|
||||
// 검색어
|
||||
@@ -66,8 +67,14 @@ public function index(array $params)
|
||||
}
|
||||
|
||||
// 공정 필터 (process_id)
|
||||
// - 'none' 또는 '0': 공정 미지정 (process_id IS NULL)
|
||||
// - 숫자: 해당 공정 ID로 필터
|
||||
if ($processId !== null) {
|
||||
$query->where('process_id', $processId);
|
||||
if ($processId === 'none' || $processId === '0' || $processId === 0) {
|
||||
$query->whereNull('process_id');
|
||||
} else {
|
||||
$query->where('process_id', $processId);
|
||||
}
|
||||
}
|
||||
|
||||
// 공정 코드 필터 (process_code) - 대시보드용
|
||||
@@ -143,9 +150,10 @@ public function show(int $id)
|
||||
'assignee:id,name',
|
||||
'assignees.user:id,name',
|
||||
'team:id,name',
|
||||
'salesOrder:id,order_no,site_name,client_id',
|
||||
'salesOrder:id,order_no,site_name,client_id,client_contact,received_at,writer_id,created_at,quantity',
|
||||
'salesOrder.client:id,name',
|
||||
'process:id,process_name,process_code,work_steps',
|
||||
'salesOrder.writer:id,name',
|
||||
'process:id,process_name,process_code,work_steps,department',
|
||||
'items',
|
||||
'bendingDetail',
|
||||
'issues' => fn ($q) => $q->orderByDesc('created_at'),
|
||||
|
||||
Reference in New Issue
Block a user