Commit e489f2ad by Sofía Benitez

Incorporación de feriados

parent 55652002
...@@ -23,6 +23,8 @@ import javax.persistence.EntityManager; ...@@ -23,6 +23,8 @@ import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext; import javax.persistence.PersistenceContext;
import javax.persistence.Query; import javax.persistence.Query;
import java.io.IOException; import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
import java.util.Optional; import java.util.Optional;
...@@ -33,19 +35,110 @@ public class Scheduler { ...@@ -33,19 +35,110 @@ public class Scheduler {
@Autowired @Autowired
BirthdayRepository birthdayRepository; BirthdayRepository birthdayRepository;
@Autowired @Autowired
FeriadoRepository feriadoRepository;
@Autowired
BeneficioRepository beneficioRepository; BeneficioRepository beneficioRepository;
@PersistenceContext @PersistenceContext
private EntityManager entityManager; private EntityManager entityManager;
@Scheduled(cron = "0 0 8 * * MON-FRI") // @Scheduled(cron = "0 0 8 * * MON-FRI")
// @Scheduled(cron = "0 * * * * *") @Scheduled(cron = "0 * * * * *")
public void cumples() { public void cumples() {
String url = "https://hooks.slack.com/services/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"; String url = "https://hooks.slack.com/services/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";
// todo verificar que no sea feriado // verificar que no sea feriado
// mandar los cumpleaños que fueron sabado y domingo Feriado esFeriado = feriadoRepository.findByFecha(new Date());
// si hoy es lunes buscar si hubo cumpleaños sabado y domingo 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<Birthday> cumplesDiaNoHabiles = null;
while(diaNoHabil) {
List<Birthday> 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 <!channel> \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 // Verificar el cumpleaños de quien es
List<Birthday> cumples = birthdayRepository.findAllByFecha(new Date()); List<Birthday> cumples = birthdayRepository.findAllByFecha(new Date());
System.out.println("PRUEBA");
for (Birthday cumple : cumples) { for (Birthday cumple : cumples) {
String json = "{\n" + String json = "{\n" +
"\"blocks\": [\n" + "\"blocks\": [\n" +
...@@ -53,7 +146,7 @@ public class Scheduler { ...@@ -53,7 +146,7 @@ public class Scheduler {
"\"type\": \"section\",\n" + "\"type\": \"section\",\n" +
"\"text\": {\n" + "\"text\": {\n" +
"\"type\": \"mrkdwn\",\n" + "\"type\": \"mrkdwn\",\n" +
"\"text\": \"Buenos días <!channel> \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 <!channel> \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 { ...@@ -80,12 +173,18 @@ public class Scheduler {
try (CloseableHttpResponse response = httpclient.execute(httpPost)) { try (CloseableHttpResponse response = httpclient.execute(httpPost)) {
result = EntityUtils.toString(response.getEntity()); result = EntityUtils.toString(response.getEntity());
} }
} catch (IOException | ParseException e) { } catch (IOException | ParseException e) {
e.printStackTrace(); e.printStackTrace();
} }
System.out.println("FIN");
} }
} }
@Scheduled(cron = "0 0 8 * * MON-FRI") @Scheduled(cron = "0 0 8 * * MON-FRI")
// @Scheduled(cron = "0 * * * * *") // @Scheduled(cron = "0 * * * * *")
public void feriados(){ public void feriados(){
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment