From e436fe17afb268deda3bd29b68caccd016a6fa8a Mon Sep 17 00:00:00 2001 From: Rafael Lopes Date: Fri, 24 Oct 2025 21:59:08 -0300 Subject: [PATCH] =?UTF-8?q?FIX:=20Corrigido=20padr=C3=A3o=20de=20data=20de?= =?UTF-8?q?=20requisi=C3=A7=C3=B5es=20para=20marca=20d'=C3=A1gua=20subir?= =?UTF-8?q?=20corretamente.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/controllers/processSyncController.js | 31 ++++++++++++++++++++---- 1 file changed, 26 insertions(+), 5 deletions(-) diff --git a/src/controllers/processSyncController.js b/src/controllers/processSyncController.js index ae41b1f..47c2a98 100644 --- a/src/controllers/processSyncController.js +++ b/src/controllers/processSyncController.js @@ -26,9 +26,6 @@ const processAndSaveTickets = async (tickets, type) => { // Para requisições, o status está diretamente em ticket.state const ticketStatus = type === 'incidente' ? ticket.state?.display_value : ticket.state; - - - console.log(ticketStatus) const dataSync = { sn_ticket_id: idTableTicketSn, last_sn_sync: new Date(), @@ -62,7 +59,8 @@ const processAndSaveTickets = async (tickets, type) => { // Se já existe, não faz nada, pois a lógica de atualização de status será em outro processo. // Guarda o timestamp mais recente do lote para usar como a próxima marca d'água - const currentUpdate = ticket.sys_updated_on?.value; + let currentUpdate = type === 'incidente' ? ticket.sys_updated_on?.value : ticket.sys_updated_on; + currentUpdate = defaultDate(currentUpdate); if (currentUpdate && currentUpdate > latestUpdateTimestamp) { latestUpdateTimestamp = currentUpdate; } @@ -96,7 +94,7 @@ const processSyncController = async () => { // 2. Determina a nova marca d'água (o timestamp mais recente entre todos os tickets processados) const newWatermark = latestIncidentUpdate > latestRequestUpdate ? latestIncidentUpdate : latestRequestUpdate; - + // 3. Se processamos algum ticket, atualiza a marca d'água para a próxima execução if (newWatermark) { // Adiciona 1 segundo para evitar reprocessar o último ticket em caso de timestamps iguais @@ -111,6 +109,29 @@ const processSyncController = async () => { } }; + +//Função auxiliar para padronizar data + +function defaultDate(dataStr) { + if (!dataStr) return null; + const [data, hora] = dataStr.split(' '); + + let ano, mes, dia; + if (data.includes('/')) { + // Ex: 31/12/2024 → 2024-12-31 + [dia, mes, ano] = data.split('/'); + } else { + // Ex: 2025-10-24 → já está no formato + [ano, mes, dia] = data.split('-'); + } + + // Garante formato consistente (YYYY-MM-DD HH:mm:ss) + return `${ano.padStart(4, '0')}-${mes.padStart(2, '0')}-${dia.padStart(2, '0')} ${hora}`; +} + + + + module.exports = { processSyncController }; \ No newline at end of file