/*
|
* Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
|
* Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template
|
*/
|
package com.megatim.fdxgenerator.service;
|
|
import com.megatim.fdxgenerator.utilities.DataToImport;
|
import com.megatim.fdxgenerator.utilities.ImportData;
|
import com.megatim.fdxgenerator.model.StructureLigne;
|
import com.megatim.fdxgenerator.model.TypeFichier;
|
import com.megatim.fdxgenerator.model.ValidateurFichier;
|
import com.megatim.fdxgenerator.model.ImportFile;
|
import com.megatimfx.common.service.GenericCrudService;
|
import com.megatim.fdxgenerator.model.dao.AbstractDAO;
|
import com.megatim.fdxgenerator.model.dao.TypeFichierDAO;
|
import com.megatim.fdxgenerator.utilities.PaginationElts;
|
import java.io.File;
|
import java.util.ArrayList;
|
import java.util.List;
|
import java.util.Optional;
|
|
/**
|
* structLigne : id, code,format_date, position, taille, type_donnee,
|
* validateur_fichier_id ValidateurFichier : id, nombre_position,
|
* type_fichier_code
|
*
|
* @author STEPHANIE
|
*/
|
public class ImportFileService implements GenericCrudService<ImportFile> {
|
|
private static ImportFileService importFileService;
|
private PaginationElts<TypeFichier> pagination;
|
|
private ImportFileService() {
|
|
}
|
|
public static synchronized ImportFileService getInstance() {
|
if (importFileService == null) {
|
importFileService = new ImportFileService();
|
}
|
return importFileService;
|
}
|
|
@Override
|
public ImportFile add(ImportFile t) throws Exception {
|
importDataFromFile(t);
|
return t;
|
}
|
|
@Override
|
public ImportFile edit(ImportFile t) throws Exception {
|
throw new UnsupportedOperationException("Not supported yet.");
|
}
|
|
@Override
|
public List<ImportFile> getAll() throws Exception {
|
throw new UnsupportedOperationException("Not supported yet.");
|
}
|
|
@Override
|
public void delete(ImportFile t) throws Exception {
|
throw new UnsupportedOperationException("Not supported yet.");
|
}
|
|
private void importDataFromFile(ImportFile im) {
|
List<String> fields = new ArrayList<>();
|
StructureLigne s = new StructureLigne();
|
ValidateurFichier v = new ValidateurFichier();
|
|
if (im != null && im.getType() != null) {
|
if (im.getType().equals(TypeFichier.class)) {
|
fields.add("code");
|
fields.add("libelle");
|
fields.add("codeParticipant");
|
}
|
}
|
DataToImport datIm = new DataToImport(new File(im.getFilePath()), im.getDelimiteurLigne().getCode(), im.getDelimiteurColonne().getCode(), im.getType(), fields);
|
List<Object> datas = ImportData.importDataFromCsvFile(datIm);
|
if (im.getType().equals(TypeFichier.class)) {
|
AbstractDAO<TypeFichier> dao = new AbstractDAO<>(TypeFichier.class);
|
datas.forEach(d -> {
|
TypeFichier t = (TypeFichier) d;
|
Optional<TypeFichier> opt = TypeFichierDAO.findByCode(t);
|
if(!opt.isPresent())
|
dao.add(t);
|
});
|
}
|
}
|
}
|