package com.megatim.fdxconsultation.core.impl.dataproduction;
|
|
import com.megatim.fdxcommons.model.dtos.dataproduction.DataProductionDto;
|
import com.megatim.fdxcommons.model.enumeration.OrderByType;
|
import com.megatim.fdxcommons.model.enumeration.StatutDataProduction;
|
import com.megatim.fdxcommons.model.pojo.CriteriaEntityFromView;
|
import com.megatim.fdxcommons.model.pojo.CriteriaFormRequest;
|
import com.megatim.fdxcommons.model.pojo.OrderByDefinition;
|
import com.megatim.fdxcommons.tools.exceptions.CommonApplicationServerException;
|
import com.megatim.fdxconsultation.dao.ifaces.dataproduction.DataProductionDAO;
|
import com.megatim.fdxconsultation.core.ifaces.dataproduction.DataProductionManager;
|
import com.megatim.fdxconsultation.model.administration.User;
|
import com.megatim.fdxconsultation.model.dataproduction.DataProduction;
|
import com.megatim.fdxconsultation.model.mappers.MapStructMapper;
|
import com.megatim.fdxconsultation.tools.CommonTools;
|
import com.megatim.reporting.adhoc.dto.ReportConfiguration;
|
import java.io.File;
|
import java.util.Arrays;
|
import java.util.HashMap;
|
import java.util.List;
|
import java.util.Map;
|
import java.util.logging.Level;
|
import java.util.logging.Logger;
|
import java.util.stream.Collectors;
|
import javax.ejb.EJB;
|
import javax.enterprise.context.Dependent;
|
import javax.inject.Inject;
|
|
/**
|
*
|
* @author ASUS
|
*/
|
@Dependent
|
public class DataProductionManagerImpl implements DataProductionManager {
|
|
@EJB
|
private DataProductionDAO dao;
|
|
@Inject
|
MapStructMapper mapper;
|
|
@Override
|
public DataProductionDAO getDao() {
|
return dao;
|
}
|
|
@Override
|
public String getEntityIdName() {
|
return "id";
|
}
|
|
@Override
|
public List<DataProduction> findAll(CriteriaFormRequest criteriaFormRequest, List<String> fetchEagerFields) {
|
try {
|
List<String> fieldsNotFound = CommonTools.checkIfEntityField(DataProduction.class, fetchEagerFields);
|
if (!fieldsNotFound.isEmpty()) {
|
throw new Exception("Les champs suivants n'appartiennent pas à l'entité DataProduction : "
|
+ fieldsNotFound.stream().collect(Collectors.joining(",", "{", "}")));
|
}
|
|
return getDao().findAll(criteriaFormRequest.getCriteria(), fetchEagerFields, Arrays.asList(new OrderByDefinition("dateProduction", OrderByType.DESC)));
|
|
} catch (Exception ex) {
|
Logger.getLogger(DataProductionManagerImpl.class.getName()).log(Level.SEVERE, ex.getMessage(), ex);
|
throw new CommonApplicationServerException();
|
}
|
}
|
|
@Override
|
public List<DataProduction> findWithPagination(CriteriaFormRequest criteriaFormRequest, List<String> fetchEagerFields, int pageNumber, int pageSize) {
|
try {
|
List<String> fieldsNotFound = CommonTools.checkIfEntityField(DataProduction.class, fetchEagerFields);
|
if (!fieldsNotFound.isEmpty()) {
|
throw new Exception("Les champs suivants n'appartiennent pas à l'entité DataProduction : "
|
+ fieldsNotFound.stream().collect(Collectors.joining(",", "{", "}")));
|
}
|
return getDao().findWithPagination(criteriaFormRequest.getCriteria(), fetchEagerFields, Arrays.asList(new OrderByDefinition("dateProduction", OrderByType.DESC)), pageNumber, pageSize);
|
|
} catch (Exception ex) {
|
Logger.getLogger(DataProductionManagerImpl.class.getName()).log(Level.SEVERE, ex.getMessage(), ex);
|
throw new CommonApplicationServerException();
|
}
|
}
|
|
@Override
|
public Class<DataProductionDto> getClazz() {
|
return DataProductionDto.class;
|
}
|
|
@Override
|
public List<DataProductionDto> getDatas(CriteriaEntityFromView searchEntity) throws Exception {
|
return mapper.dataProductionListToDataProductionDtoList(findAll(searchEntity, Arrays.asList(), Arrays.asList()));
|
}
|
|
@Override
|
public Map<String, Object> getParameters() {
|
return new HashMap<>();
|
}
|
|
@Override
|
public File printAll(ReportConfiguration<CriteriaFormRequest> reportConfiguration, User userConnected) throws Exception {
|
return generatePdf(finalReportConfiguration(reportConfiguration), userConnected, false);
|
}
|
|
@Override
|
public File printOne(ReportConfiguration<CriteriaFormRequest> reportConfiguration, User userConnected) throws Exception {
|
return generatePdf(finalReportConfiguration(reportConfiguration), userConnected, true);
|
}
|
|
@Override
|
public File exportExcelAll(ReportConfiguration<CriteriaFormRequest> reportConfiguration, User userConnected) throws Exception {
|
return exportExcel(finalReportConfiguration(reportConfiguration), userConnected, false);
|
}
|
|
@Override
|
public File exportExcelOne(ReportConfiguration<CriteriaFormRequest> reportConfiguration, User userConnected) throws Exception {
|
return exportExcel(finalReportConfiguration(reportConfiguration), userConnected, true);
|
}
|
|
@Override
|
public List<DataProduction> findByStatutDataProduction(StatutDataProduction statut) {
|
return dao.findByStatutDataProduction(statut);
|
}
|
}
|