feat: 리워크 SPLIT에 is_rework 전달 + 진행중 리워크 배지 표시
- 리워크 카드 접수 시 SPLIT에 is_rework='Y', rework_source_id 복사 - 진행중/완료 탭에서 리워크 SPLIT에 리워크 배지 표시 - 리워크 마스터만 숨기고 리워크 SPLIT은 표시
This commit is contained in:
@@ -1828,22 +1828,34 @@ export const acceptProcess = async (req: AuthenticatedRequest, res: Response) =>
|
||||
const batchId = req.body.batch_id || `BATCH-${Date.now()}-${Math.random().toString(36).slice(2, 6)}`;
|
||||
const hasBatchCol = _batchMigrationDone;
|
||||
|
||||
// 분할 행 INSERT (batch_id는 컬럼 존재 시에만)
|
||||
// 리워크 카드에서 접수 시 is_rework, rework_source_id 전달
|
||||
const parentReworkInfo = isRework ? await client.query(
|
||||
`SELECT is_rework, rework_source_id FROM work_order_process WHERE id = $1`, [work_order_process_id]
|
||||
) : null;
|
||||
const splitIsRework = parentReworkInfo?.rows[0]?.is_rework || null;
|
||||
const splitReworkSourceId = parentReworkInfo?.rows[0]?.rework_source_id || null;
|
||||
|
||||
// 분할 행 INSERT (batch_id는 컬럼 존재 시에만, 리워크 정보 포함)
|
||||
const reworkCols = splitIsRework ? ", is_rework, rework_source_id" : "";
|
||||
const reworkVals = splitIsRework ? `, $${hasBatchCol ? 15 : 14}, $${hasBatchCol ? 16 : 15}` : "";
|
||||
const reworkParams = splitIsRework ? [splitIsRework, splitReworkSourceId] : [];
|
||||
|
||||
const insertCols = `id, wo_id, seq_no, process_code, process_name, is_required, is_fixed_order,
|
||||
standard_time, equipment_code, routing_detail_id,
|
||||
status, input_qty, good_qty, defect_qty, total_production_qty,
|
||||
result_status, accepted_by, accepted_at, started_at,
|
||||
parent_process_id, company_code, writer${hasBatchCol ? ", batch_id" : ""}`;
|
||||
parent_process_id, company_code, writer${hasBatchCol ? ", batch_id" : ""}${reworkCols}`;
|
||||
const insertVals = `gen_random_uuid()::text, $1, $2, $3, $4, $5, $6, $7, $8, $9,
|
||||
'in_progress', $10, '0', '0', '0',
|
||||
'draft', $11, NOW()::text, NOW()::text,
|
||||
$12, $13, $11${hasBatchCol ? ", $14" : ""}`;
|
||||
$12, $13, $11${hasBatchCol ? ", $14" : ""}${reworkVals}`;
|
||||
const insertParams = [
|
||||
row.wo_id, row.seq_no, row.process_code, row.process_name,
|
||||
row.is_required, row.is_fixed_order, row.standard_time,
|
||||
row.equipment_code, row.routing_detail_id,
|
||||
String(qty), userId, masterId, companyCode,
|
||||
...(hasBatchCol ? [batchId] : []),
|
||||
...reworkParams,
|
||||
];
|
||||
|
||||
const result = await client.query(
|
||||
|
||||
@@ -920,8 +920,8 @@ export function WorkOrderList() {
|
||||
const isMaster = !proc.parent_process_id;
|
||||
// 완료/진행중 탭에서는 SPLIT만 표시 (마스터 제외)
|
||||
if (isMaster && !isRework && (activeTab === "completed" || activeTab === "in_progress")) return false;
|
||||
// 리워크 카드가 in_progress/completed면 SPLIT이 생성된 것 → 리워크 카드 자체 숨김 (SPLIT만 표시)
|
||||
if (isRework && (proc.status === "in_progress" || proc.status === "completed")) return false;
|
||||
// 리워크 마스터가 in_progress/completed면 SPLIT이 생성된 것 → 리워크 마스터 숨김 (SPLIT은 표시)
|
||||
if (isRework && !proc.parent_process_id && (proc.status === "in_progress" || proc.status === "completed")) return false;
|
||||
// 재작업 카드는 공정 필터 무시 (모든 공정에서 표시)
|
||||
if (!isRework && proc.process_code !== selectedProcess) return false;
|
||||
if (selectedEquipment !== "__all__") {
|
||||
@@ -961,8 +961,8 @@ export function WorkOrderList() {
|
||||
for (const proc of preFiltered) {
|
||||
const isMaster = !proc.parent_process_id;
|
||||
const isRw = proc.is_rework === "Y" || proc.is_rework === "true" || proc.is_rework === "1";
|
||||
// 리워크 카드가 in_progress/completed면 SPLIT이 있으므로 카운트 제외
|
||||
if (isRw && (proc.status === "in_progress" || proc.status === "completed")) continue;
|
||||
// 리워크 마스터가 in_progress/completed면 SPLIT이 있으므로 카운트 제외
|
||||
if (isRw && !proc.parent_process_id && (proc.status === "in_progress" || proc.status === "completed")) continue;
|
||||
if (proc.status === "acceptable") counts.acceptable++;
|
||||
else if (proc.status === "in_progress" && (!isMaster || isRw)) counts.in_progress++;
|
||||
else if (proc.status === "completed" && (!isMaster || isRw)) counts.completed++;
|
||||
|
||||
Reference in New Issue
Block a user