Browse Source

Se reforzo el envio de correos electronicos para la encuesta de satisfaccion, ahora ya solo permite enviar una encuesta por mantenimiento

delta
mramirezg 11 hours ago
parent
commit
8efea32503
5 changed files with 51 additions and 11 deletions
  1. BIN
      src/main/bundles/prod.bundle
  2. +11
    -1
      src/main/java/mx/gob/jumapacelaya/models/encuestas/MantenimientosSinEncuesta.java
  3. +11
    -7
      src/main/java/mx/gob/jumapacelaya/services/DatabaseService.java
  4. +1
    -1
      src/main/java/mx/gob/jumapacelaya/ui/MainLayout.java
  5. +28
    -2
      src/main/java/mx/gob/jumapacelaya/ui/PlanAnualView.java

BIN
src/main/bundles/prod.bundle View File


+ 11
- 1
src/main/java/mx/gob/jumapacelaya/models/encuestas/MantenimientosSinEncuesta.java View File

@ -12,10 +12,11 @@ public class MantenimientosSinEncuesta {
private String nomUsuario; private String nomUsuario;
private String email; private String email;
private String encuesta; private String encuesta;
private boolean tieneToken;
public MantenimientosSinEncuesta(int mantenimientoId, int planId, LocalDate fecha, public MantenimientosSinEncuesta(int mantenimientoId, int planId, LocalDate fecha,
String periodo, String tipomant, String departamento, String periodo, String tipomant, String departamento,
String nomUsuario, String email, String encuesta) {
String nomUsuario, String email, String encuesta, boolean tieneToken) {
this.mantenimientoId = mantenimientoId; this.mantenimientoId = mantenimientoId;
this.planId = planId; this.planId = planId;
@ -26,6 +27,7 @@ public class MantenimientosSinEncuesta {
this.nomUsuario = nomUsuario; this.nomUsuario = nomUsuario;
this.email = email; this.email = email;
this.encuesta = encuesta; this.encuesta = encuesta;
this.tieneToken = tieneToken;
} }
public int getMantenimientoId() { public int getMantenimientoId() {
@ -99,4 +101,12 @@ public class MantenimientosSinEncuesta {
public void setEncuesta(String encuesta) { public void setEncuesta(String encuesta) {
this.encuesta = encuesta; this.encuesta = encuesta;
} }
public boolean isTieneToken() {
return tieneToken;
}
public void setTieneToken(boolean tieneToken) {
this.tieneToken = tieneToken;
}
} }

+ 11
- 7
src/main/java/mx/gob/jumapacelaya/services/DatabaseService.java View File

@ -319,7 +319,7 @@ public class DatabaseService {
public List<MantenimientosSinEncuesta> getEncuestPendientes(String mes, int anio) { public List<MantenimientosSinEncuesta> getEncuestPendientes(String mes, int anio) {
List<MantenimientosSinEncuesta> lista = new ArrayList<>(); List<MantenimientosSinEncuesta> lista = new ArrayList<>();
String query = """ String query = """
SELECT
SELECT DISTINCT
m.MANTENIMIENTOID MANTID, m.MANTENIMIENTOID MANTID,
m.PLANANUALID PLANID, m.PLANANUALID PLANID,
m.FECHA, m.FECHA,
@ -328,7 +328,8 @@ public class DatabaseService {
d.DESCRIPCION DEPTO, d.DESCRIPCION DEPTO,
u.NOMBRE NOMUSUARIO, u.NOMBRE NOMUSUARIO,
u.EMAIL, u.EMAIL,
m.ENCUESTA
m.ENCUESTA,
CASE WHEN e.TOKEN IS NOT NULL THEN 1 ELSE 0 END AS TIENE_TOKEN
FROM MANTENIMIENTOS m FROM MANTENIMIENTOS m
JOIN TIPOMANT t JOIN TIPOMANT t
ON t.TIPOMANTID = m.TIPOMANTID ON t.TIPOMANTID = m.TIPOMANTID
@ -340,8 +341,10 @@ public class DatabaseService {
ON p.PLANANUALID = m.PLANANUALID ON p.PLANANUALID = m.PLANANUALID
JOIN MESES ms JOIN MESES ms
ON ms.MESID = p.MESID ON ms.MESID = p.MESID
WHERE m.ENCUESTA = 'N'
AND m.TIPOMANTID = 1
LEFT JOIN ENCUESTATOKENS e
ON e.MANTENIMIENTOID = m.MANTENIMIENTOID
WHERE
m.TIPOMANTID = 1
AND m.PLANANUALID IS NOT NULL AND m.PLANANUALID IS NOT NULL
AND UPPER(ms.NOMBRE) = UPPER(?) AND UPPER(ms.NOMBRE) = UPPER(?)
AND EXTRACT(YEAR FROM m.FECHA) = ? AND EXTRACT(YEAR FROM m.FECHA) = ?
@ -365,7 +368,8 @@ public class DatabaseService {
rs.getString("DEPTO"), rs.getString("DEPTO"),
rs.getString("NOMUSUARIO"), rs.getString("NOMUSUARIO"),
rs.getString("EMAIL"), rs.getString("EMAIL"),
rs.getString("ENCUESTA")
rs.getString("ENCUESTA"),
rs.getBoolean("TIENE_TOKEN")
)); ));
} }
} catch (SQLException e) { } catch (SQLException e) {
@ -1098,8 +1102,8 @@ public class DatabaseService {
String query = "SELECT * FROM VW_CONTEO_RESPUESTAS"; String query = "SELECT * FROM VW_CONTEO_RESPUESTAS";
try (Connection conn = getMysqlConnection(); try (Connection conn = getMysqlConnection();
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery(query)) {
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery(query)) {
while (rs.next()) { while (rs.next()) {
ConteoRespuestas conteo = new ConteoRespuestas( ConteoRespuestas conteo = new ConteoRespuestas(


+ 1
- 1
src/main/java/mx/gob/jumapacelaya/ui/MainLayout.java View File

@ -93,7 +93,7 @@ public class MainLayout extends AppLayout implements BeforeEnterObserver {
nav.addItem(new SideNavItem("Plan Anual", PlanAnualView.class, VaadinIcon.CALENDAR.create())); nav.addItem(new SideNavItem("Plan Anual", PlanAnualView.class, VaadinIcon.CALENDAR.create()));
nav.addItem(new SideNavItem("Listado de Actividades", ActDiariaView.class, VaadinIcon.EDIT.create())); nav.addItem(new SideNavItem("Listado de Actividades", ActDiariaView.class, VaadinIcon.EDIT.create()));
nav.addItem(new SideNavItem("Mantenimiento Correctivo", MantCorrectivoView.class, VaadinIcon.WRENCH.create())); nav.addItem(new SideNavItem("Mantenimiento Correctivo", MantCorrectivoView.class, VaadinIcon.WRENCH.create()));
nav.addItem(new SideNavItem("Resultados de Encuestas", ResultEncuestasView.class, VaadinIcon.CLIPBOARD_TEXT.create()));
nav.addItem(new SideNavItem("Resultados de Encuestas", ResultEncuestasView.class, VaadinIcon.BAR_CHART_H.create()));
nav.addItem(new SideNavItem("Preferencias del Sistema", ConfiguracionView.class, VaadinIcon.COG.create())); nav.addItem(new SideNavItem("Preferencias del Sistema", ConfiguracionView.class, VaadinIcon.COG.create()));
nav.getStyle().set("border-radius", "5px"); nav.getStyle().set("border-radius", "5px");


+ 28
- 2
src/main/java/mx/gob/jumapacelaya/ui/PlanAnualView.java View File

@ -1095,8 +1095,11 @@ public class PlanAnualView extends VerticalLayout {
grid.addColumn(createStatusRender()) grid.addColumn(createStatusRender())
.setHeader("Encuesta"); .setHeader("Encuesta");
grid.addColumn(MantenimientosSinEncuesta::getDepartamento)
.setHeader("Departamento");
grid.addColumn(createTokenRender())
.setHeader("Token");
/*grid.addColumn(MantenimientosSinEncuesta::getDepartamento)
.setHeader("Departamento");*/
grid.addColumn(MantenimientosSinEncuesta::getNomUsuario) grid.addColumn(MantenimientosSinEncuesta::getNomUsuario)
.setHeader("Usuario") .setHeader("Usuario")
@ -1114,6 +1117,11 @@ public class PlanAnualView extends VerticalLayout {
btnEnviar.addThemeVariants(ButtonVariant.LUMO_PRIMARY, btnEnviar.addThemeVariants(ButtonVariant.LUMO_PRIMARY,
ButtonVariant.LUMO_SUCCESS); ButtonVariant.LUMO_SUCCESS);
if (item.isTieneToken()) {
btnEnviar.setEnabled(false);
btnEnviar.setText("Enviado");
}
btnEnviar.addClickListener(e -> { btnEnviar.addClickListener(e -> {
enviarEncuestaDesdeGrid(item); enviarEncuestaDesdeGrid(item);
btnEnviar.setEnabled(false); btnEnviar.setEnabled(false);
@ -1191,4 +1199,22 @@ public class PlanAnualView extends VerticalLayout {
return span; return span;
}); });
} }
private ComponentRenderer<Span, MantenimientosSinEncuesta> createTokenRender() {
return new ComponentRenderer<>(token -> {
Span span = new Span(String.valueOf(token.isTieneToken()));
if (token.isTieneToken()) {
span.setText("S");
String theme2 = String.format("badge %s", "success");
span.getElement().setAttribute("theme", theme2);
} else {
span.setText("N");
String theme1 = String.format("badge %s", "error");
span.getElement().setAttribute("theme", theme1);
}
return span;
});
}
} }

Loading…
Cancel
Save