fix: [bending] STOCK 작업지시 단일부품 필터링 지원

- buildStockBendingInfoFromLot()에 isStockProduction 플래그 추가
- fillStockBendingInfo()에서 work_order_items 부품명 파싱하여 stockPartFilter 저장
- parseStockPartKey()로 품목명에서 부품키 추출 (본체/C형/D형/마감재 등)
- 기존 작업지시 194~196 stockPartFilter 백필 완료
This commit is contained in:
김보곤
2026-03-21 17:51:09 +09:00
parent 89dd347ff4
commit 68c0494673
2 changed files with 57 additions and 0 deletions

View File

@@ -216,6 +216,17 @@ private function fillStockBendingInfo(WorkOrder $workOrder): void
);
if ($stockBendingInfo) {
// work_order_items에서 부품명 추출하여 필터 정보 추가
$items = $workOrder->items ?? collect();
if ($items->isNotEmpty()) {
$stockBendingInfo['stockPartFilter'] = $items->map(function ($item) {
return [
'itemName' => $item->item_name,
'partKey' => self::parseStockPartKey($item->item_name),
];
})->values()->toArray();
}
$opts = $workOrder->options ?? [];
$opts['bending_info'] = $stockBendingInfo;
$workOrder->options = $opts;
@@ -223,6 +234,44 @@ private function fillStockBendingInfo(WorkOrder $workOrder): void
}
}
/**
* STOCK 품목명에서 부품 키 추출
*
* "가이드레일(측면) 본체(철재) 2438mm" → "본체"
* "가이드레일(측면) C형 1219mm" → "C형"
*/
public static function parseStockPartKeyStatic(string $itemName): string
{
return self::parseStockPartKey($itemName);
}
private static function parseStockPartKey(string $itemName): string
{
// "본체", "C형", "D형", "마감재", "별도마감", "BASE" 등 추출
$patterns = [
'/본체/' => '본체',
'/C형/' => 'C형',
'/D형/' => 'D형',
'/별도마감/' => '별도마감',
'/마감재/' => '마감재',
'/BASE/i' => 'BASE',
'/하단마감/' => '하단마감재',
'/전면판/' => '전면판',
'/밑면판/' => '밑면판',
'/점검구/' => '점검구',
'/연기차단/' => '연기차단재',
'/케이스/' => '케이스',
];
foreach ($patterns as $pattern => $key) {
if (preg_match($pattern, $itemName)) {
return $key;
}
}
return $itemName;
}
/**
* 목록 결과에서 STOCK 작업지시의 누락된 bending_info를 보충 후 DB 영구 저장
*/