Problemas con validaciones en Java

Hola buenos dias, necesito que me ayuden en un problema que tengo, lo que pasa es que estoy desarrollando una aplicación web, y necesito validar los registros de entrada de empleados, y todo eso se almacena en una tabla de registros, y los campos son: idRegistro, idEmpleado, idTipoMovimiento, fechaMovimiento, lo que sucede es que en el "idTipoMovimiento", me repite el mismo movimiento que es "1", y cada movimiento es: 1.Entrada, 2. Salida a comer, 3, Regreso de comer, 4.Salida, estos movimientos los que quiero sacar de otra tabla llamada "Movimientos", lo que quiero que esos movimientos se vallan insertanto en la tabla registro,

-Tengo este codigo en una clase controller:

public String registroEntradasYSalidasEmpleados(HttpServletRequest request, ModelMap modelMap,
@ModelAttribute CheckRegistroTO checkRegistroIN, @ModelAttribute CheckEmpleadoTO checkEmpleadoIN) {
String mensaje = "";

try {
CheckFacade checkFacade;
checkFacade = CheckFacade.getInstance();

CheckEmpleadoTO empleado = checkFacade.busquedaDeEmpleados(checkEmpleadoIN);

if (empleado == null) {
mensaje = "el empleado no se encuentra";
//modelMap.addAttribute("mensaje", mensaje);
return "resultado/empleado";
}

CheckRegistroTO checkRegistroTO = checkFacade.busquedaUltimoRegistroEmpleados(checkRegistroIN);
//System.out.println("Hola"+ checkRegistroIN); //"Este codigo se usa para comprobar si llegan al metodo deseado"

if (checkRegistroTO.getIdTipoMovimiento() == 0)
{

// No existe movimiento del dia,entonces registramos la entrada

boolean insertoMovimientoEntrada = checkFacade.altaRegistro(checkRegistroIN, 1 );// aqui es el error era "1" y se cambio a "2" y se insertan numeros repetidos
if(insertoMovimientoEntrada) {
mensaje = "Se inserto satisfactoriamente el registro de entrada a trabajar del dia.";

}else

{

// Si existe movimiento del dia
if (checkRegistroTO.getIdTipoMovimiento() == 1) {
checkFacade.altaRegistro(checkRegistroIN, 2);
mensaje = "Hora de la comida";

} else if (checkRegistroTO.getIdTipoMovimiento() == 2) {
checkFacade.altaRegistro(checkRegistroIN, 3);
mensaje = "Hora de la comida";

} else if (checkRegistroTO.getIdTipoMovimiento() == 3) {
checkFacade.altaRegistro(checkRegistroIN, 4);
mensaje = "Hora de la comida";

} else if (checkRegistroTO.getIdTipoMovimiento() == 4) {
//checkFacade.altaRegistro(checkRegistroIN, 4);
mensaje = "No puedes meter otro movimiento, tienes todos tus registros";

}
modelMap.addAttribute("mensaje", mensaje);
}
}
} catch (MakeitException e) {
e.printStackTrace();

} finally {
modelMap.addAttribute("mensaje", mensaje);
}

return "Empleados/empleado";
}

}

Y estos son mis DAO'S

public boolean altaRegistro(CheckRegistroTO checkRegistroIN, int idTipoMovimiento) throws MakeitException{

Connection conexion = null;
PreparedStatement prepStat = null;
ResultSet resultSet = null;

StringBuilder query = new StringBuilder();

int cont = 1;
boolean accion= false;

try{
conexion = ServiceLocator.getInstance().getConnection(ServiceLocator.jdbcCHECK);
query.append("INSERT INTO ").append(Constantes.SCHEMA).append("TBL_REGISTRO ");
query.append(" (idEmpleado, idTipoMovimiento, fechaMovimiento) " );
query.append("VALUES (?, ?, ? )");

prepStat = conexion.prepareStatement(query.toString());
//prepStat = conexion.prepareStatement(query.toString(),Statement.RETURN_GENERATED_KEYS);

long fechaActual = System.currentTimeMillis();

prepStat.setInt(cont++, checkRegistroIN.getIdEmpleado());
prepStat.setInt(cont++, idTipoMovimiento);
prepStat.setTimestamp(cont++, new Timestamp(fechaActual));

// prepStat.setInt(idTipoMovimiento, 1);
// prepStat.setInt(idTipoMovimiento, 2);
// prepStat.setInt(idTipoMovimiento, 3);
// prepStat.setInt(idTipoMovimiento, 4);

prepStat.executeUpdate();//aqui ya vienen cargados los datos

accion= true;

}catch (SQLException e){
throw new MakeitException(MakeitException.ID_ERROR, "[CheckDAO.altaRegistro]:" + e.toString());

}catch(Exception e){
throw new MakeitException(MakeitException.ID_ERROR, "[CheckDAO.altaRegistro]:"+ e.toString());

} finally {
if (prepStat != null) { try {prepStat.close();prepStat = null;} catch (Exception e){}}
if (resultSet != null) {try {resultSet.close(); resultSet = null;} catch (Exception e){}}
if (conexion != null) { try {conexion.close();conexion = null;} catch (Exception e) {}}
}

return accion;
}

//Metodo para realizar busqueda de Empleados

public CheckEmpleadoTO busquedaDeEmpleado(CheckEmpleadoTO checkEmpleadoIN) throws MakeitException{

Connection conn =null;
PreparedStatement stmt =null;
ResultSet resultSet =null;
CheckEmpleadoTO checkEmpleadoTO =null;

try{

StringBuilder query = new StringBuilder("SELECT idEmpleado ");
query.append("FROM ").append(" TBL_EMPLEADOS ");
query.append("WHERE idEmpleado = ?");

conn= ServiceLocator.getInstance().getConnection(ServiceLocator.jdbcCHECK);
stmt= conn.prepareStatement(query.toString());

stmt.setInt(1, checkEmpleadoIN.getIdEmpleado());

resultSet = stmt.executeQuery();

while(resultSet.next()){
checkEmpleadoTO = new CheckEmpleadoTO();
checkEmpleadoTO.setIdEmpleado(resultSet.getInt("idEmpleado"));

}

}catch(Exception e){
throw new MakeitException(MakeitException.ID_ERROR, "[CheckEmpleadoTO.busquedaDeEmpleado]:"+ e.toString());

}finally {
if(resultSet!=null){try{resultSet.close(); resultSet= null;} catch(Exception e){}}
if(stmt!=null){try{stmt.close(); stmt= null;} catch(Exception e){}}
if(conn!=null){try{conn.close(); conn= null;}catch(Exception e){}}
}

return checkEmpleadoTO;

}

//Metodo para realizar busquedas de los registros de los empleados

public CheckRegistroTO busquedaUltimoRegistroEmpleado(CheckRegistroTO checkRegistroIN) throws MakeitException{

Connection conn = null;
PreparedStatement stmt = null;
ResultSet resultSet = null;
CheckRegistroTO checkRegistroTO = null;

try{

StringBuilder query= new StringBuilder("SELECT MAX(idTipoMovimiento) AS REGISTRO_MOVIMIENTOS " );//estaba mal por que no tenia el alias "AS" REGISTRO_MOVIMIENTOS Y ERROR ERA QUE NO ENCOENTRABA LA COLUMN idTipoMovimiento
query.append("FROM ").append(Constantes.SCHEMA).append("TBL_REGISTRO ");
query.append("WHERE idEmpleado = ? ");
query.append("AND fechaMovimiento = ? ");

conn = ServiceLocator.getInstance().getConnection(ServiceLocator.jdbcCHECK);
stmt = conn.prepareStatement(query.toString());

stmt.setInt(1, checkRegistroIN.getIdEmpleado());

long fechaActual = System.currentTimeMillis();
stmt.setDate(2, new Date(fechaActual));

resultSet = stmt.executeQuery();

while(resultSet.next()){
checkRegistroTO = new CheckRegistroTO();
checkRegistroTO.setIdTipoMovimiento(resultSet.getInt("REGISTRO_MOVIMIENTOS"));
//checkRegistroTO.setFechaMovimiento(resultSet.getString("fechaMovimiento"));
}

}catch(Exception e){
throw new MakeitException(MakeitException.ID_ERROR, "[CheckRegistroTO.busquedaUltimoRegistroEmpleado]:"+ e.toString());
}finally {
if(resultSet!=null){try{resultSet.close(); resultSet= null;}catch(Exception e){}}
if(stmt!=null){try{stmt.close(); stmt= null;}catch (Exception e){}}
if(conn!=null){try{conn.close(); conn= null;}catch(Exception e){}}
}

return checkRegistroTO;

}

}

Espero y puedan ayudarme se los agradeceria, de antemano les mando un cordial saludo, si hay otra cosa que me falto me dicen!
Ya que soy nuevo en este mundo de la programación

Saludos cordiales...