Files
vexplor_dev/frontend/app
kmh 1961385ddf Restore POP batch-id separation SQL in popProductionController (B1~B10)
Re-implements the batch-id separation backend SQL that was lost during
the 2026-05-21 jskim-node merge (commit 9da6b22a). The previous re-apply
commit (15fa3e37) covered packaging/material auto-input/autoComplete
but missed the batch separation block.

Changes (B1~B10 in POP.md log):
- syncWorkInstructions: detail SELECT + generateWorkProcessesForInstruction call use detail.id instead of detail.item_number
- generateWorkProcessesForInstruction: existCheck uses batch_id = $3 OR matching item_number via subquery
- syncWorkInstructions unsynced EXISTS: matches both wid.id and wid.item_number
- getProcessList prev_good_raw: 5 inner subqueries match COALESCE(wop2.batch_id,'') = COALESCE(wop.batch_id,'') and CTE exposes wop.batch_id
- prev_good CTE: first-process fallback uses COALESCE(wid.qty, wi.qty, 0) with LEFT JOIN work_instruction_detail wid ON wid.id = pgr.batch_id
- Final SELECT: ROW_NUMBER batch_index, COUNT batch_count, wid_b.item_number batch_item_number; LEFT JOIN wid_b; ORDER BY batch keys
- getPrevProcessGoodQty: batchId param + 3 SELECTs filter COALESCE(batch_id,'') = $batchKey
- evaluatePrevProcesses: batchId param + wop_with_seq CTE adds COALESCE(wop.batch_id,'') = $4 + fetchInstructionQty prefers work_instruction_detail.qty when batchKey present
- getAvailableQty: current SELECT adds wop.batch_id and passes to evaluatePrevProcesses
- acceptProcess: master FOR UPDATE SELECT adds wop.batch_id and passes to evaluatePrevProcesses

Verification (per POP.md):
- backend npm run build PASS
- GET /api/pop/production/processes responds with batch_id/batch_index/batch_count/batch_item_number
- COMPANY_7 GUI: 25 cards, 17 with -NN (n/m) suffix; CODE-00027 shows -01..04 of 4 correctly
- No regression on single-batch (batch_id NULL) rows due to COALESCE matching pattern

Known follow-up: work-instruction edit guard (locked detail rows) — implemented in next commit

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-22 11:18:14 +09:00
..
2025-08-21 09:41:46 +09:00
2025-08-21 09:41:46 +09:00