@Override protected Integer doInBackground() { setMessage("Procensado usuarios..."); int cont = 0; PreparedStatement st = null; ResultSet res = null; int asoc = 0; try { st = (PreparedStatement) MaimonidesApp.getConexion() .prepareStatement( "SELECT p.cod FROM profesores AS p JOIN usuarios_profesores AS up ON up.profesor_id=p.id AND p.ano=up.ano WHERE p.ano<>? AND up.usuario_id=? ORDER BY p.ano DESC LIMIT 0,1"); st.setInt(1, MaimonidesApp.getApplication().getAnoEscolar().getId()); for (Usuario u : modelo.getDatos()) { cont++; setProgress(cont, 0, modelo.getRowCount()); setMessage("Verificando " + u + "..."); if (u.getProfesor() == null) { // Vemos la id del profesor del año anterior st.setInt(2, u.getId()); res = st.executeQuery(); if (res.next()) { Profesor p = Profesor.getProfesorPorCodigo( res.getInt(1), MaimonidesApp.getApplication().getAnoEscolar()); if (p != null) { u.setProfesor(p); if (u.guardar()) { asoc++; } } } } } } catch (SQLException ex) { Logger.getLogger(PanelUsuarios.class.getName()).log(Level.SEVERE, null, ex); } return asoc; }
@Override protected ArrayList<Usuario> doInBackground() { ArrayList<Usuario> usuarios = new ArrayList<Usuario>(); setMessage("Cargando profesores..."); ArrayList<Profesor> profesores = Profesor.getProfesores(); int i = 0; for (Profesor p : profesores) { i++; setProgress(i, 0, profesores.size()); setMessage("Procesando " + p + "..."); // Ahora vemos si ya existe un usuario con ese profesor asignado boolean existe = false; for (Usuario usr : modelo.getDatos()) { if (p.equals(usr.getProfesor())) { existe = true; break; } } if (existe) { setMessage("Ya existe usuario para el profesor..."); } else { setMessage("Creando usuario para el profesor..."); Usuario u = new Usuario(); u.setRoles(Rol.ROL_PROFESOR); u.setClave(""); u.setFechaAlta(new GregorianCalendar()); u.setProfesor(p); String nombre = (p.getNombre().substring(0, 1) + p.getApellido1().substring(0, 1) + p.getApellido2()) .toLowerCase() .replaceAll("á", "a") .replaceAll("é", "e") .replaceAll("í", "i") .replaceAll("ó", "o") .replaceAll("ú", "u"); u.setNombre(nombre); // Vemos si existe el nombre existe = true; int cont = 0; while (existe) { cont++; existe = false; // Revisamos en los usuarios de la tabla for (Usuario usr : modelo.getDatos()) { if (usr.getNombre().equals(u.getNombre())) { existe = true; break; } } // Si no existe revisamos en los usuarios que estamos creando if (!existe) { for (Usuario usr : usuarios) { if (usr.getNombre().equals(u.getNombre())) { existe = true; break; } } } if (existe) { u.setNombre(nombre + cont); } } if (u.guardar()) { usuarios.add(u); } } } return usuarios; }