fix(ifc): correção no motor de extração de OF, Fase e Marca

This commit is contained in:
2026-09-20 23:10:41 +00:00
parent cc79a925a3
commit 39e60f7d2f
+14 -5
View File
@@ -455,6 +455,7 @@ export async function loadAndAuditIFC(
section: string; section: string;
description: string; description: string;
phase: string; phase: string;
ofNumber: string;
} { } {
const props = elementPropertiesMap.get(expressID) || {}; const props = elementPropertiesMap.get(expressID) || {};
@@ -563,6 +564,7 @@ export async function loadAndAuditIFC(
// Extração inteligente de Fase // Extração inteligente de Fase
let chosenPhase = extractPhaseFromMark(assemblyMark || finalMark); let chosenPhase = extractPhaseFromMark(assemblyMark || finalMark);
let chosenOF = extractOFFromMark(assemblyMark || finalMark);
if (!chosenPhase) { if (!chosenPhase) {
const phaseCandidates = [ const phaseCandidates = [
@@ -614,7 +616,8 @@ export async function loadAndAuditIFC(
cleanAssemblyMark: cleanAssemblyMark || clean || '', cleanAssemblyMark: cleanAssemblyMark || clean || '',
section, section,
description: rawDesc, description: rawDesc,
phase: chosenPhase phase: chosenPhase,
ofNumber: chosenOF
}; };
} }
@@ -647,8 +650,8 @@ export async function loadAndAuditIFC(
childrenIDs: children, childrenIDs: children,
connectedMeshIDs: children, connectedMeshIDs: children,
section: markInfo.section, section: markInfo.section,
phase: markInfo.phase || extractPhaseFromMark(markInfo.mark), phase: markInfo.phase,
ofNumber: extractOFFromMark(markInfo.mark) ofNumber: markInfo.ofNumber
}; };
if (markInfo.mark !== 'indefinido') { if (markInfo.mark !== 'indefinido') {
@@ -769,8 +772,11 @@ export async function loadAndAuditIFC(
type: 'ELEMENT', type: 'ELEMENT',
pieceMark: markInfo.mark, pieceMark: markInfo.mark,
cleanMark: markInfo.cleanMark, cleanMark: markInfo.cleanMark,
assemblyMark: markInfo.assemblyMark,
cleanAssemblyMark: markInfo.cleanAssemblyMark,
section: markInfo.section, section: markInfo.section,
phase: markInfo.phase, phase: markInfo.phase,
ofNumber: markInfo.ofNumber,
material: materialName, material: materialName,
connectedMeshIDs: connectedGroup, connectedMeshIDs: connectedGroup,
mesh: mesh3 mesh: mesh3
@@ -868,8 +874,11 @@ export function extractPhaseFromMark(mark: string): string {
return ''; return '';
} }
function extractOFFromMark(mark: string): string { export function extractOFFromMark(mark: string): string {
if (!mark || mark === 'indefinido') return '';
const parts = mark.split('-'); const parts = mark.split('-');
if (parts.length >= 1) return parts[0]; if (parts.length > 1) {
return parts[0].trim();
}
return ''; return '';
} }