escenas a utilizar:
En el desarrollo, existe la necesidad de verificar los datos de importación del usuario. Es necesario verificar si la fase en servicio de una persona se completó incorrectamente
Requisitos de verificación
Verificación del formulario de personal: El contenido completado en la etapa de servicio debe definirse de antemano en la etapa de servicio.
Verificación de otras tablas: 1. De acuerdo con la asociación del número de trabajo, debe ser consistente con la etapa en servicio de la tabla de personal.
2. Si hay una fecha de promoción en la tabla de empleados, y hay datos detallados diarios en la tabla de importación, los datos posteriores a la fecha de promoción deben ser consistentes con la siguiente etapa de la etapa en servicio definida en la tabla de empleados. .
Etapa en servicio: período de formación, período práctico, pasantía 1, pasantía 2, formal
Lógica de procesamiento:
1. Definir la clase de enumeración en servicio
public enum Phase { PXQ ("período de formación"), SCQ ("período práctico"), SX1 ("pasantía 1"), SX2 ("pasantía 2"), ZSQ ("formal"); fase estática privada [] vals = values (); / ** * Obtiene la fase previa en servicio * @return * / public Phase previous () { return vals [(this.ordinal () - 1)% vals.length]; } / ** * Get la siguiente Una fase en servicio * @return * / public Phase next () { if (this.ordinal () == vals.length-1) { return vals [this.ordinal ()]; } return vals [(this .ordinal () + 1)% vals.length]; } private String desc; // descripción china if (fase. toString () .equals (v_phase)) { fase de retorno; } / ** * Estructura privada para evitar llamadas externas * @param desc * / private Phase (String desc) { this.desc = desc; } / ** * Override * @return * / @Override public String toString () { return desc ; } / ** * Obtener la fase en servicio * @param v_phase * @return * / public static Phase getPhase (String v_phase) { for (Phase phase: vals) { } return null; } }
2. Uso de verificación de datos
2.1 Verificación de la mesa de personal
if (sheetName.equals ( "personal data-HR" )) { // la tabla de personal data-HR solo verifica la fase en servicio
// obtiene la fase en servicio y verifica si (titleMap.get ( "fase en servicio " )! = null ) { Cell cell = row.getCell (titleMap.get ( " Fase en servicio " ), Row . MissingCellPolicy . RETURN_BLANK_AS_NULL ); if ( cell ! = null ) { String v_phase = cell .getStringCellValue (). trim (); if (v_phase.equals ( "Período oficial" )) { // Compatible con período oficial y formal v_phase = "Oficial" ;
}
Phase fase = Phase . GetPhase (v_phase);
si ( fase == null ) {
messageInfoList.add (sheetName + "La primera de la tabla" + j + "La columna [etapa en el trabajo] es incorrecta, por favor complete en la etapa correcta en el trabajo " );
}
}
}
}
2.2 Otra verificación de la tabla
Aquí la parte adhesiva del código, la lógica es que si el campo de fecha probablemente va a hablar con la promoción del oficial, está presente la tabla de alineación, la fecha es menor que la vida útil de la etapa de comparación directa del servicio, es mayor que la promoción por fecha. Relación de fase .next () para la siguiente etapa.
si ( peopleCheckVO .getV_regular_date () =! nula && titleMap.get ( "日期" ) =! nula ) {
celular = row.getCell (titleMap.get ( "日期" ), Fila . MissingCellPolicy . RETURN_BLANK_AS_NULL );
if (celda! = nulo ) { tiempo
largo final = celda.getDateCellValue (). getTime (); si ( tiempo > = peopleCheckVO .getV_regular_date ()) { fase Fase = Fase . getPhase ( peopleCheckVO
.getV_phase ());
if ( fase ! = null ) {
String v_phase_rel = fase .next (). toString ();
if (! v_phase.equals ( v_phase_rel )) {
messageInfoList.add (sheetName + "El primero de la hoja" + j + "Hay un problema en la fila [en servicio Fase] columna porque entra en conflicto con los datos de la tabla de datos del personal de recursos humanos favor modificarlo" );
}
}
} demás {
si (v_phase.equals (! peopleCheckVO .getV_phase ())) {
messageInfoList.add (sheetName + "La fila " + j + "de la tabla tiene un problema con la columna [Etapa en servicio] porque entra en conflicto con los datos de la tabla de recursos humanos de datos de personal, modifique eso " );
}
}
}
} Demás {
si (! V_phase.equals ( peopleCheckVO .getV_phase ())) {
messageInfoList.add (SHEETNAME + "El primer" + j + "fila de la tabla [En el puesto de trabajo escenario] columna tiene un problema porque está relacionado con la tabla de recursos humanos de datos de personal Conflictos de datos, modifique " );
}
}
para resumir:
El uso de la clase de enumeración facilita enormemente nuestro mantenimiento de la lista de cadenas, haciendo que nuestro código sea más robusto y más propicio para la expansión.