use of com.tomasio.projects.trainning.dto.AreaEnsinoDTO in project trainning by fernandotomasio.
the class ImportAreasConhecimentoFromCSV method execute.
@Override
public void execute() {
BufferedReader br = null;
String line;
String cvsSplitBy = "\\|";
Map<String, GrupoAreaConhecimentoDTO> gruposMap = new HashMap<String, GrupoAreaConhecimentoDTO>();
try {
br = new BufferedReader(new FileReader(new ClassPathResource("areas_conhecimento_cnpq.csv").getFile()));
while ((line = br.readLine()) != null) {
// use comma as separator
String[] data = line.split(cvsSplitBy);
String numero = data[0];
String nome = data[1];
String grupo = data[2];
AreaEnsinoDTO area = new AreaEnsinoDTO();
area.setNome(nome);
area.setNumero(numero);
GrupoAreaConhecimentoDTO grupoAreaConhecimento = gruposMap.get(grupo);
if (grupoAreaConhecimento == null) {
GrupoAreaConhecimentoDTO g = new GrupoAreaConhecimentoDTO();
g.setDescricao(grupo);
Long groupId = service.createGrupoAreaConhecimento(g);
g = service.findGrupoAreaConhecimento(groupId);
gruposMap.put(grupo, g);
area.setGrupoAreaConhecimento(g);
} else {
area.setGrupoAreaConhecimento(grupoAreaConhecimento);
}
service.createAreaConhecimento(area);
System.out.println(numero + nome + grupo);
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
if (br != null) {
try {
br.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
System.out.println("Done");
}
Aggregations