Browse Source

Cambio de estilo a los botones y se quito el boton de enviar encuesta por cada mantenimiento, ahora se agrego uno general que enviara todos los correos al mismo tiempo

main
mramirezg 1 month ago
parent
commit
5104833d39
7 changed files with 86 additions and 30 deletions
  1. BIN
      src/main/bundles/dev.bundle
  2. BIN
      src/main/bundles/prod.bundle
  3. +23
    -0
      src/main/frontend/themes/sistema-mantenimiento/styles.css
  4. +12
    -1
      src/main/java/mx/gob/jumapacelaya/models/PlanAnual.java
  5. +32
    -24
      src/main/java/mx/gob/jumapacelaya/services/DatabaseService.java
  6. +1
    -1
      src/main/java/mx/gob/jumapacelaya/ui/DetallesMantView.java
  7. +18
    -4
      src/main/java/mx/gob/jumapacelaya/ui/PlanAnualView.java

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


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


+ 23
- 0
src/main/frontend/themes/sistema-mantenimiento/styles.css View File

@ -115,6 +115,29 @@ vaadin-month-calendar::part(date) {
color: #691b31; /* Color para los dias del calendario */
}
vaadin-button {
border-radius: 10px;
overflow: hidden;
box-shadow: 0 4px 8px rgba(105, 27, 49, 0.28), 0 2px 8px rgba(0, 0, 0, 0.13);
transition: box-shadow 0.2s, border 0.2s;
}
vaadin-button::after {
content: "";
position: absolute;
inset: 0;
background: rgba(240,223,223,0.2);
opacity: 0;
transition: opacity 0.2s;
pointer-events: none;
}
vaadin-button:hover::after {
box-shadow: 0 16px 36px rgba(105,27,49,0.35), 0 4px 16px rgba(0,0,0,0.18);
border-color: #BC955B;
opacity: 1;
}
vaadin-month-calendar::part(date):hover /* Estilos para cuando se posiciona el puntero sobre el dia */{
background-color: #a02142;
opacity: 50%;


+ 12
- 1
src/main/java/mx/gob/jumapacelaya/models/PlanAnual.java View File

@ -21,13 +21,15 @@ public class PlanAnual {
private String smt;
private String estado;
private String situacion;
private String encuesta;
// Constructor
public PlanAnual(int numero, String nomEquipo, String departamento, boolean monitor,
boolean teclado, boolean mouse, boolean regulador,
boolean cpu, boolean impresora, boolean miniPrint,
boolean laptop, boolean escaner, LocalDate fechaProgramada,
LocalDate fechaMantenimiento, String mesplaneado, String smt, String estado, String situacion) {
LocalDate fechaMantenimiento, String mesplaneado, String smt, String estado, String situacion,
String encuesta) {
this.numero = numero;
this.nomEquipo = nomEquipo;
@ -47,6 +49,7 @@ public class PlanAnual {
this.smt = smt;
this.estado = estado;
this.situacion = situacion;
this.encuesta = encuesta;
}
// Getters
@ -142,4 +145,12 @@ public class PlanAnual {
public void setSituacion(String situacion) {
this.situacion = situacion;
}
public String getEncuesta() {
return encuesta;
}
public void setEncuesta(String encuesta) {
this.encuesta = encuesta;
}
}

+ 32
- 24
src/main/java/mx/gob/jumapacelaya/services/DatabaseService.java View File

@ -162,17 +162,20 @@ public class DatabaseService {
/* ----------------Obtener el Plan Anual de Mantenimiento ---------------- */
public List<PlanAnual> getPlanAnual() {
List<PlanAnual> planAnualList = new ArrayList<>();
String query = "SELECT p.plananualid, p.nomEquipo, p.area,\n" +
" p.monitor, p.teclado, p.mouse, p.regulador,\n" +
" p.cpu, p.impresora, p.miniPrint, p.laptop, p.escaner,\n" +
" p.fechaprog, m.fecha AS fechaMantenimiento,\n" +
" me.NOMBRE AS MESPLANEADO, p.tecnicosmt, p.estado,\n" +
" COALESCE(v.SITUACION, 'NO REALIZADO') AS SITUACION\n" +
" FROM PLANANUAL p\n" +
" LEFT JOIN MANTENIMIENTOS m ON p.plananualid = m.plananualid\n" +
" LEFT JOIN MESES me ON p.MESID = me.MESID\n" +
" LEFT JOIN VW_SITUACION_MANTENIMIENTO v ON v.PLANANUALID = p.PLANANUALID\n" +
" ORDER BY p.FECHAPROG ASC";
String query = """
SELECT p.plananualid, p.nomEquipo, p.area,
p.monitor, p.teclado, p.mouse, p.regulador,
p.cpu, p.impresora, p.miniPrint, p.laptop, p.escaner,
p.fechaprog, m.fecha AS fechaMantenimiento,
me.NOMBRE AS MESPLANEADO, p.tecnicosmt, p.estado,
COALESCE(v.SITUACION, 'NO REALIZADO') AS SITUACION,
m.ENCUESTA\s
FROM PLANANUAL p
LEFT JOIN MANTENIMIENTOS m ON p.plananualid = m.plananualid
LEFT JOIN MESES me ON p.MESID = me.MESID
LEFT JOIN VW_SITUACION_MANTENIMIENTO v ON v.PLANANUALID = p.PLANANUALID
ORDER BY p.FECHAPROG ASC
""";
try (Connection connection = getMysqlConnection();
Statement statement = connection.createStatement();
@ -197,7 +200,8 @@ public class DatabaseService {
resultSet.getString("mesplaneado"),
resultSet.getString("tecnicosmt"),
resultSet.getString("estado"),
resultSet.getString("SITUACION")
resultSet.getString("SITUACION"),
resultSet.getString("ENCUESTA") == null ? "N/A" : resultSet.getString("ENCUESTA")
);
planAnualList.add(planAnual);
}
@ -211,17 +215,20 @@ public class DatabaseService {
/* ----------------Obtener el Plan Anual de Mantenimiento por ID ---------------- */
public PlanAnual getPlanAnualPorId(int id) {
String query = "SELECT p.plananualid, p.nomEquipo, p.area,\n" +
" p.monitor, p.teclado, p.mouse, p.regulador,\n" +
" p.cpu, p.impresora, p.miniPrint, p.laptop, p.escaner,\n" +
" p.fechaprog, m.fecha AS fechaMantenimiento,\n" +
" me.NOMBRE AS MESPLANEADO, p.tecnicosmt, p.estado,\n" +
" COALESCE(v.SITUACION, 'NO REALIZADO') AS SITUACION\n" +
" FROM PLANANUAL p\n" +
" LEFT JOIN MANTENIMIENTOS m ON p.plananualid = m.plananualid\n" +
" LEFT JOIN MESES me ON p.MESID = me.MESID\n" +
" LEFT JOIN VW_SITUACION_MANTENIMIENTO v ON v.PLANANUALID = p.PLANANUALID\n" +
" where p.plananualid = ?";
String query = """
SELECT p.plananualid, p.nomEquipo, p.area,
p.monitor, p.teclado, p.mouse, p.regulador,
p.cpu, p.impresora, p.miniPrint, p.laptop, p.escaner,
p.fechaprog, m.fecha AS fechaMantenimiento,
me.NOMBRE AS MESPLANEADO, p.tecnicosmt, p.estado,
COALESCE(v.SITUACION, 'NO REALIZADO') AS SITUACION,
m.ENCUESTA
FROM PLANANUAL p
LEFT JOIN MANTENIMIENTOS m ON p.plananualid = m.plananualid
LEFT JOIN MESES me ON p.MESID = me.MESID
LEFT JOIN VW_SITUACION_MANTENIMIENTO v ON v.PLANANUALID = p.PLANANUALID
WHERE p.plananualid = ?
""";
try (Connection connection = getMysqlConnection();
PreparedStatement statement = connection.prepareStatement(query)) {
@ -246,7 +253,8 @@ public class DatabaseService {
resultSet.getString("mesplaneado"),
resultSet.getString("tecnicosmt"),
resultSet.getString("estado"),
resultSet.getString("SITUACION")
resultSet.getString("SITUACION"),
resultSet.getString("encuesta")
);
}
}


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

@ -201,7 +201,7 @@ public class DetallesMantView extends VerticalLayout implements BeforeEnterObser
HorizontalLayout botonesHeaderLyt = new HorizontalLayout();
botonesHeaderLyt.setWidthFull();
botonesHeaderLyt.add(btnImprimirRepo,btnEnviarEncuesta);
botonesHeaderLyt.add(btnImprimirRepo);
HorizontalLayout botonesLayout = new HorizontalLayout();
botonesLayout.setWidthFull();


+ 18
- 4
src/main/java/mx/gob/jumapacelaya/ui/PlanAnualView.java View File

@ -82,6 +82,7 @@ public class PlanAnualView extends VerticalLayout {
Button btnColumns;
Button btnImprimirRpt;
Button btnAddEquipo;
Button btnEnviarEncuestas;
HorizontalLayout btnImprimirLayout;
private Popover reportePopover;
@ -218,7 +219,8 @@ public class PlanAnualView extends VerticalLayout {
this.setMargin(false);
this.setSpacing(false);
this.setSizeFull();
add(filtrosLayout, gridLayout, uploadLayout);
add(filtrosLayout, uploadLayout);
add(gridLayout);
}
private void setupHeader() {
@ -318,6 +320,9 @@ public class PlanAnualView extends VerticalLayout {
planAnualGrid.addColumn((ValueProvider<PlanAnual, String>) PlanAnual::getSituacion)
.setHeader("Situación").setAutoWidth(true).setKey("situacion");
planAnualGrid.addColumn((ValueProvider<PlanAnual, String>) PlanAnual::getEncuesta)
.setHeader("Encuesta").setAutoWidth(true).setKey("encuesta");
/*planAnualGrid.addColumn((ValueProvider<PlanAnual, String>) PlanAnual::getSmt)
.setHeader("S.M.T").setKey("smtColumnKey");*/
@ -349,8 +354,17 @@ public class PlanAnualView extends VerticalLayout {
btnAddEquipo.addClickListener(event -> addNuevoEquipo());
btnAddEquipo.setTooltipText("Agregar nuevo equipo");
btnImprimirLayout = new HorizontalLayout(btnColumns, btnImprimirRpt, btnAddEquipo);
btnEnviarEncuestas = new Button(VaadinIcon.ENVELOPE.create());
ConfirmDialog enviarEncConfirm = new ConfirmDialog();
enviarEncConfirm.setHeader("Enviar encuestas");
enviarEncConfirm.setText("¿Deseas enviar las encuestas de satisfacción?, Esto enviara la encuesta solo a los mantenimientos realizados");
enviarEncConfirm.setCancelable(true);
enviarEncConfirm.addCancelListener(e -> enviarEncConfirm.close());
enviarEncConfirm.setConfirmText("Enviar");
enviarEncConfirm.addConfirmListener(e -> {});
btnEnviarEncuestas.addClickListener(e -> enviarEncConfirm.open());
btnImprimirLayout = new HorizontalLayout(btnColumns, btnImprimirRpt, btnAddEquipo, btnEnviarEncuestas);
HorizontalLayout columnSelectorLayout = new HorizontalLayout();
columnSelectorLayout.setAlignItems(Alignment.END);
@ -388,7 +402,7 @@ public class PlanAnualView extends VerticalLayout {
});
Set<String> defaultColumns = Set.of("equipo", "departamento", "mesplaneado",
"fechaProgramada", "fechaMantenimiento", "estado", "situacion");
"fechaProgramada", "fechaMantenimiento", "estado", "situacion", "encuesta");
chkColumns.setValue(defaultColumns);
popover.add(heading, chkColumns);


Loading…
Cancel
Save