feat: defasagem configuravel entre corte e solda no cronograma e dashboard de producao

This commit is contained in:
2026-09-09 18:04:27 +00:00
parent bd429856a6
commit aa457ffa0c
4 changed files with 64 additions and 0 deletions
@@ -215,6 +215,7 @@ export const useDashboardProducaoOtimizado = (ofNumber: string) => {
.from('cronogramas_of')
.select(`
id,
defasagem_solda,
processos_cronograma:processos_cronograma(
nome_processo,
data_inicio,
@@ -287,6 +288,27 @@ export const useDashboardProducaoOtimizado = (ofNumber: string) => {
console.log(`Processo ${nomeProcesso}: ${diasDecorridos}/${diasTotais} dias = ${percentualEsperado.toFixed(2)}%`);
}
// Se for o processo de Solda, aplicar o fator de defasagem configurado em relação ao Corte
if (nomeProcesso.toLowerCase().includes('solda')) {
const defasagem = cronogramaOf?.defasagem_solda !== undefined && cronogramaOf?.defasagem_solda !== null
? Number(cronogramaOf.defasagem_solda)
: 10;
if (percentualEsperado <= defasagem) {
console.log(`Processo Solda: Fabricação esperada (${percentualEsperado.toFixed(2)}%) <= defasagem (${defasagem}%) -> Progresso esperado Solda: 0%`);
return 0;
}
if (hoje > dataFim) {
return 100;
}
// Escalonamento suave proporcional: de defasagem% até 100%
const progressoSolda = ((percentualEsperado - defasagem) / (100 - defasagem)) * 100;
console.log(`Processo Solda: Fabricação (${percentualEsperado.toFixed(2)}%) com defasagem (${defasagem}%) -> Solda esperada: ${progressoSolda.toFixed(2)}%`);
return Math.min(100, Math.max(0, progressoSolda));
}
return Math.min(100, Math.max(0, percentualEsperado));
};