From e489f2ada9f339296478f216af22136d0b582983 Mon Sep 17 00:00:00 2001 From: Sofía Benítez Date: Thu, 30 Mar 2023 11:25:41 -0400 Subject: [PATCH] Incorporación de feriados --- curriculumsearch/src/main/java/com/roshka/service/Scheduler.java | 111 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++------ 1 file changed, 105 insertions(+), 6 deletions(-) diff --git a/curriculumsearch/src/main/java/com/roshka/service/Scheduler.java b/curriculumsearch/src/main/java/com/roshka/service/Scheduler.java index a87fb11..364aa8f 100644 --- a/curriculumsearch/src/main/java/com/roshka/service/Scheduler.java +++ b/curriculumsearch/src/main/java/com/roshka/service/Scheduler.java @@ -23,6 +23,8 @@ import javax.persistence.EntityManager; import javax.persistence.PersistenceContext; import javax.persistence.Query; import java.io.IOException; +import java.text.SimpleDateFormat; +import java.util.ArrayList; import java.util.Date; import java.util.List; import java.util.Optional; @@ -33,19 +35,110 @@ public class Scheduler { @Autowired BirthdayRepository birthdayRepository; @Autowired + FeriadoRepository feriadoRepository; + @Autowired BeneficioRepository beneficioRepository; @PersistenceContext private EntityManager entityManager; - @Scheduled(cron = "0 0 8 * * MON-FRI") -// @Scheduled(cron = "0 * * * * *") + // @Scheduled(cron = "0 0 8 * * MON-FRI") + @Scheduled(cron = "0 * * * * *") public void cumples() { String url = "https://hooks.slack.com/services/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"; - // todo verificar que no sea feriado - // mandar los cumpleaños que fueron sabado y domingo - // si hoy es lunes buscar si hubo cumpleaños sabado y domingo + // verificar que no sea feriado + Feriado esFeriado = feriadoRepository.findByFecha(new Date()); + if (esFeriado != null){ + return; + } + + int contador = 1; + Date hoy = new Date(); + Date fechaAyer = new Date(hoy.getTime() - ((1000 * 60 * 60 * 24) * contador) ); + SimpleDateFormat sdf = new SimpleDateFormat("dd-MM-yyyy"); + SimpleDateFormat f = new SimpleDateFormat("EEEE"); + String diaAyer = f.format(fechaAyer); + + Boolean diaNoHabil = false; + + if ((diaAyer.equals("sábado")) || (diaAyer.equals("domingo"))){ + diaNoHabil = true; + } + + Feriado fechaNoHabil = feriadoRepository.findByFecha(fechaAyer); + if (fechaNoHabil != null) { + diaNoHabil = true; + } + + List cumplesDiaNoHabiles = null; + while(diaNoHabil) { + List cumplesAyer = birthdayRepository.findAllByFecha(fechaAyer); + + if (cumplesDiaNoHabiles == null) { + cumplesDiaNoHabiles = new ArrayList<>(cumplesAyer); + } else { + cumplesDiaNoHabiles.addAll(cumplesAyer); + } + contador++; + diaNoHabil = false; + hoy = new Date(); + fechaAyer = new Date(hoy.getTime() - ((1000 * 60 * 60 * 24) * contador) ); + + f = new SimpleDateFormat("EEEE"); + diaAyer = f.format(fechaAyer); + if ((diaAyer.equals("sábado")) || (diaAyer.equals("domingo"))){ + diaNoHabil = true; + } + + fechaNoHabil = feriadoRepository.findByFecha(fechaAyer); + if (fechaNoHabil != null) { + diaNoHabil = true; + } + } + for (Birthday cumple : cumplesDiaNoHabiles){ + String json = "{\n" + + "\"blocks\": [\n" + + "{\n" + + "\"type\": \"section\",\n" + + "\"text\": {\n" + + "\"type\": \"mrkdwn\",\n" + + "\"text\": \"Buenos días \n En la fecha " + cumple.getFecha() + " estuvo de cumpleaños *" + cumple.getNombreCompleto() + "* <@" + cumple.getIdSlack() + ">. 🥳 ¡Que los cumplas muy feliz te desea Roshka! Que en la vida siempre encuentres razones para sonreír 🥳\",\n" + + "}" + + "}," + + "{" + + "\"type\": \"divider\"" + + "}," + + "{\n" + + "\"type\": \"image\",\n" + + "\"title\": {\n" + + "\"type\": \"plain_text\",\n" + + "\"text\": \"" + cumple.getNombreCompleto() + "\"\n" + + "},\n" + + "\"block_id\": \"image4\",\n" + + "\"image_url\": \"http://placekitten.com/500/500\",\n" + + "\"alt_text\": \"An incredibly cute kitten.\"\n" + + "}\n" + + "]\n" + + "}" + + ""; + String result = null; + HttpPost httpPost = new HttpPost(url); + httpPost.setEntity(new StringEntity(json, ContentType.APPLICATION_JSON)); + + try (CloseableHttpClient httpclient = HttpClients.createDefault()) { + try (CloseableHttpResponse response = httpclient.execute(httpPost)) { + result = EntityUtils.toString(response.getEntity()); + } + + } catch (IOException | ParseException e) { + e.printStackTrace(); + } + + System.out.println("FIN"); + + } // Verificar el cumpleaños de quien es List cumples = birthdayRepository.findAllByFecha(new Date()); + System.out.println("PRUEBA"); for (Birthday cumple : cumples) { String json = "{\n" + "\"blocks\": [\n" + @@ -53,7 +146,7 @@ public class Scheduler { "\"type\": \"section\",\n" + "\"text\": {\n" + "\"type\": \"mrkdwn\",\n" + - "\"text\": \"Buenos días \n Hoy está de cumpleaños *" + cumple.getNombreCompleto() + "* <@" + cumple.getIdSlack() + ">. 🥳 ¡Que los cumplas muy feliz te desea la Roshka! Que en la vida siempre encuentres razones para sonreír 🥳\",\n" + + "\"text\": \"Buenos días \n Hoy está de cumpleaños *" + cumple.getNombreCompleto() + "* <@" + cumple.getIdSlack() + ">. 🥳 ¡Que los cumplas muy feliz te desea Roshka! Que en la vida siempre encuentres razones para sonreír 🥳\",\n" + "}" + "}," + "{" + @@ -80,12 +173,18 @@ public class Scheduler { try (CloseableHttpResponse response = httpclient.execute(httpPost)) { result = EntityUtils.toString(response.getEntity()); } + } catch (IOException | ParseException e) { e.printStackTrace(); } + + System.out.println("FIN"); } } + + + @Scheduled(cron = "0 0 8 * * MON-FRI") // @Scheduled(cron = "0 * * * * *") public void feriados(){ -- libgit2 0.26.0