branch develop updated (6f42ce0 -> d4d4bac)
This is an automated email from the git hooks/post-receive script. New change to branch develop in repository tutti. See http://git.codelutin.com/tutti.git from 6f42ce0 fixes #6877: [IMPORT GENERIQUE] Après une erreur (visualisation du rapport d'import), l'application est bloquée new 4c5f70a fix build new 9dc3d00 introduce export action API new 9390469 amélioration de l'API d'export new 04ac0f0 fixes #6876: [EXPORT GENERIQUE] L'export n'est plus produit si une erreur d'élévation se produit Merge branch 'feature/6876' into develop new d4d4bac fixes #6882: [IMPORT GENERIQUE] On ne peut pas ouvrir les rapports d'import The 5 revisions listed above as "new" are entirely new to this repository and will be described in separate emails. The revisions listed as "adds" were already present in the repository and have only been added to this reference. Detailed log of new commits: commit d4d4bac01caac6fdc4a0fa944352e164edf47830 Author: Tony CHEMIT <chemit@codelutin.com> Date: Sat Mar 28 16:19:13 2015 +0100 fixes #6882: [IMPORT GENERIQUE] On ne peut pas ouvrir les rapports d'import commit 04ac0f0343d5fd98bc2b49ea539df05058b08917 Merge: 6f42ce0 9390469 Author: Tony CHEMIT <chemit@codelutin.com> Date: Sat Mar 28 16:18:30 2015 +0100 fixes #6876: [EXPORT GENERIQUE] L'export n'est plus produit si une erreur d'élévation se produit Merge branch 'feature/6876' into develop commit 93904698a3752f095797c83bc145a75eda2eff59 Author: Tony CHEMIT <chemit@codelutin.com> Date: Sat Mar 28 16:15:43 2015 +0100 amélioration de l'API d'export commit 9dc3d00a2c44bae6c9193f09b08f3855856fec9e Author: Tony CHEMIT <chemit@codelutin.com> Date: Sat Mar 28 14:15:42 2015 +0100 introduce export action API commit 4c5f70a6d334cfdfceeed82d4ab28a0e1260da48 Author: Tony CHEMIT <chemit@codelutin.com> Date: Sat Mar 28 14:15:27 2015 +0100 fix build Summary of changes: .../GenericFormatExportActionEngine.java | 162 +++++++++ .../genericformat/GenericFormatExportContext.java | 202 +++-------- .../GenericFormatExportOperationContext.java | 30 +- .../genericformat/GenericFormatExportService.java | 376 ++------------------- .../CreateAccidentalCatchRowsAction.java | 61 ++++ .../exportactions/CreateCatchBatchRowsAction.java | 174 ++++++++++ .../CreateIndividualObservationRowsAction.java | 60 ++++ .../CreateMarineLitterRowsAction.java | 61 ++++ .../exportactions/CreateOperationRowsAction.java | 69 ++++ .../exportactions/CreateParameterRowsAction.java | 29 ++ .../exportactions/ExportCruiseActionSupport.java | 23 ++ .../ExportFishingOperationActionSupport.java | 16 + .../ExportGearCaracteristicAction.java | 60 ++++ .../exportactions/ExportProtocolAction.java | 41 +++ .../exportactions/ExportReferentialGearAction.java | 46 +++ .../ExportReferentialPersonAction.java | 46 +++ .../ExportReferentialSpeciesAction.java | 46 +++ .../ExportReferentialVesselAction.java | 47 +++ .../ExportSampleCategoryModelAction.java | 39 +++ .../exportactions/ExportSpeciesUsedAction.java | 36 ++ .../exportactions/ExportSurveyAction.java | 65 ++++ .../ExportTechnicalActionSupport.java | 15 + .../exportactions/FinalizeExportAction.java | 49 +++ .../exportactions/FlushOperationAction.java | 38 +++ .../producer/CsvProducerForAttachment.java | 81 +---- .../producer/CsvProducerForCatch.java | 6 +- .../resources/i18n/tutti-service_fr_FR.properties | 2 +- .../actions/GenericFormatImportAction.java | 2 +- .../actions/GenericFormatValidateAction.java | 2 +- 29 files changed, 1284 insertions(+), 600 deletions(-) create mode 100644 tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/GenericFormatExportActionEngine.java create mode 100644 tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/exportactions/CreateAccidentalCatchRowsAction.java create mode 100644 tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/exportactions/CreateCatchBatchRowsAction.java create mode 100644 tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/exportactions/CreateIndividualObservationRowsAction.java create mode 100644 tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/exportactions/CreateMarineLitterRowsAction.java create mode 100644 tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/exportactions/CreateOperationRowsAction.java create mode 100644 tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/exportactions/CreateParameterRowsAction.java create mode 100644 tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/exportactions/ExportCruiseActionSupport.java create mode 100644 tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/exportactions/ExportFishingOperationActionSupport.java create mode 100644 tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/exportactions/ExportGearCaracteristicAction.java create mode 100644 tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/exportactions/ExportProtocolAction.java create mode 100644 tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/exportactions/ExportReferentialGearAction.java create mode 100644 tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/exportactions/ExportReferentialPersonAction.java create mode 100644 tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/exportactions/ExportReferentialSpeciesAction.java create mode 100644 tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/exportactions/ExportReferentialVesselAction.java create mode 100644 tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/exportactions/ExportSampleCategoryModelAction.java create mode 100644 tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/exportactions/ExportSpeciesUsedAction.java create mode 100644 tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/exportactions/ExportSurveyAction.java create mode 100644 tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/exportactions/ExportTechnicalActionSupport.java create mode 100644 tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/exportactions/FinalizeExportAction.java create mode 100644 tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/exportactions/FlushOperationAction.java -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch develop in repository tutti. See http://git.codelutin.com/tutti.git commit 4c5f70a6d334cfdfceeed82d4ab28a0e1260da48 Author: Tony CHEMIT <chemit@codelutin.com> Date: Sat Mar 28 14:15:27 2015 +0100 fix build --- .../tutti/service/genericformat/producer/CsvProducerForCatch.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/producer/CsvProducerForCatch.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/producer/CsvProducerForCatch.java index 5d8be44..54389b6 100644 --- a/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/producer/CsvProducerForCatch.java +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/producer/CsvProducerForCatch.java @@ -189,7 +189,7 @@ public class CsvProducerForCatch extends CsvProducer<CatchRow, CatchModel> { addBatchSampleCategory(operationExportContext.getSampleCategoryModel(), currentRow, - speciesBatch.getId(), + speciesBatch.getIdAsInt(), speciesBatch.getSampleCategoryId(), speciesBatch.getSampleCategoryValue(), speciesBatch.getSampleCategoryWeight(), @@ -315,7 +315,7 @@ public class CsvProducerForCatch extends CsvProducer<CatchRow, CatchModel> { addBatchSampleCategory(operationExportContext.getSampleCategoryModel(), currentRow, - benthosBatch.getId(), + benthosBatch.getIdAsInt(), benthosBatch.getSampleCategoryId(), benthosBatch.getSampleCategoryValue(), benthosBatch.getSampleCategoryWeight(), @@ -466,7 +466,7 @@ public class CsvProducerForCatch extends CsvProducer<CatchRow, CatchModel> { protected void addBatchSampleCategory(SampleCategoryModel sampleCategoryModel, CatchRow currentRow, - String batchId, + Integer batchId, Integer sampleCategoryId, Serializable sampleCategoryValue, Float sampleCategoryWeight, -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch develop in repository tutti. See http://git.codelutin.com/tutti.git commit 9dc3d00a2c44bae6c9193f09b08f3855856fec9e Author: Tony CHEMIT <chemit@codelutin.com> Date: Sat Mar 28 14:15:42 2015 +0100 introduce export action API --- .../GenericFormatExportActionEngine.java | 146 ++++++++ .../genericformat/GenericFormatExportContext.java | 16 +- .../genericformat/GenericFormatExportService.java | 373 ++------------------- .../CreateAccidentalCatchRowsAction.java | 34 ++ .../exportactions/CreateAttachmentRowsAction.java | 29 ++ .../exportactions/CreateCatchBatchRowsAction.java | 108 ++++++ .../CreateIndividualObservationRowsAction.java | 34 ++ .../CreateMarineLitterRowsAction.java | 34 ++ .../exportactions/CreateOperationRowsAction.java | 34 ++ .../exportactions/CreateParameterRowsAction.java | 35 ++ .../exportactions/ExportCruiseActionSupport.java | 23 ++ .../ExportFishingOperationActionSupport.java | 23 ++ .../ExportGearCaracteristicAction.java | 60 ++++ .../exportactions/ExportProtocolAction.java | 41 +++ .../exportactions/ExportReferentialGearAction.java | 46 +++ .../ExportReferentialPersonAction.java | 46 +++ .../ExportReferentialSpeciesAction.java | 46 +++ .../ExportReferentialVesselAction.java | 47 +++ .../ExportSampleCategoryModelAction.java | 39 +++ .../exportactions/ExportSpeciesUsedAction.java | 36 ++ .../exportactions/ExportSurveyAction.java | 59 ++++ .../ExportTechnicalActionSupport.java | 15 + .../exportactions/FlushOperationAction.java | 25 ++ 23 files changed, 1003 insertions(+), 346 deletions(-) diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/GenericFormatExportActionEngine.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/GenericFormatExportActionEngine.java new file mode 100644 index 0000000..6865cdb --- /dev/null +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/GenericFormatExportActionEngine.java @@ -0,0 +1,146 @@ +package fr.ifremer.tutti.service.genericformat; + +import fr.ifremer.tutti.persistence.entities.data.Cruise; +import fr.ifremer.tutti.service.PersistenceService; +import fr.ifremer.tutti.service.TuttiServiceContext; +import fr.ifremer.tutti.service.genericformat.exportactions.CreateAccidentalCatchRowsAction; +import fr.ifremer.tutti.service.genericformat.exportactions.CreateAttachmentRowsAction; +import fr.ifremer.tutti.service.genericformat.exportactions.CreateCatchBatchRowsAction; +import fr.ifremer.tutti.service.genericformat.exportactions.CreateIndividualObservationRowsAction; +import fr.ifremer.tutti.service.genericformat.exportactions.CreateMarineLitterRowsAction; +import fr.ifremer.tutti.service.genericformat.exportactions.CreateOperationRowsAction; +import fr.ifremer.tutti.service.genericformat.exportactions.CreateParameterRowsAction; +import fr.ifremer.tutti.service.genericformat.exportactions.ExportCruiseActionSupport; +import fr.ifremer.tutti.service.genericformat.exportactions.ExportFishingOperationActionSupport; +import fr.ifremer.tutti.service.genericformat.exportactions.ExportGearCaracteristicAction; +import fr.ifremer.tutti.service.genericformat.exportactions.ExportProtocolAction; +import fr.ifremer.tutti.service.genericformat.exportactions.ExportReferentialGearAction; +import fr.ifremer.tutti.service.genericformat.exportactions.ExportReferentialPersonAction; +import fr.ifremer.tutti.service.genericformat.exportactions.ExportReferentialSpeciesAction; +import fr.ifremer.tutti.service.genericformat.exportactions.ExportReferentialVesselAction; +import fr.ifremer.tutti.service.genericformat.exportactions.ExportSampleCategoryModelAction; +import fr.ifremer.tutti.service.genericformat.exportactions.ExportSpeciesUsedAction; +import fr.ifremer.tutti.service.genericformat.exportactions.ExportSurveyAction; +import fr.ifremer.tutti.service.genericformat.exportactions.ExportTechnicalActionSupport; +import fr.ifremer.tutti.service.genericformat.exportactions.FlushOperationAction; +import fr.ifremer.tutti.service.protocol.ProtocolImportExportService; +import fr.ifremer.tutti.service.referential.ReferentialTemporaryGearService; +import fr.ifremer.tutti.service.referential.ReferentialTemporaryPersonService; +import fr.ifremer.tutti.service.referential.ReferentialTemporarySpeciesService; +import fr.ifremer.tutti.service.referential.ReferentialTemporaryVesselService; + +import java.util.ArrayList; +import java.util.List; + +/** + * Created on 3/28/15. + * + * @author Tony Chemit - chemit@codelutin.com + * @since 3.14.3 + */ +public class GenericFormatExportActionEngine { + + private final List<ExportTechnicalActionSupport> technicalActions; + + private final List<ExportCruiseActionSupport> cruiseActions; + + private final List<ExportFishingOperationActionSupport> fishingOperationsActions; + + public GenericFormatExportActionEngine(TuttiServiceContext serviceContext) { + + this.technicalActions = createTechnicalActions(serviceContext); + this.cruiseActions = createCruiseActions(serviceContext); + this.fishingOperationsActions = createFishingOperationActions(serviceContext); + + } + + public void executeCruiseActions(GenericFormatExportContext exportContext, Cruise cruise) { + + exportContext.setCruiseExported(true); + + for (ExportCruiseActionSupport action : cruiseActions) { + + action.execute(exportContext, cruise); + + } + + } + + public void executeOperationActions(GenericFormatExportContext exportContext, GenericFormatExportOperationContext operationContext) { + + exportContext.setOperationExported(true); + + for (ExportFishingOperationActionSupport action : fishingOperationsActions) { + + action.execute(exportContext, operationContext); + + } + + } + + public void executeTechnicalActions(GenericFormatExportContext exportContext) { + + for (ExportTechnicalActionSupport action : technicalActions) { + + action.execute(exportContext); + + } + + } + + public void executeSampleCategoryModelAction(GenericFormatExportContext exportContext) { + + ExportSampleCategoryModelAction action = new ExportSampleCategoryModelAction(); + action.execute(exportContext); + + } + + private List<ExportCruiseActionSupport> createCruiseActions(TuttiServiceContext serviceContext) { + + PersistenceService persistenceService = serviceContext.getService(PersistenceService.class); + String countryId = serviceContext.getConfig().getExportCountryId(); + + List<ExportCruiseActionSupport> actions = new ArrayList<>(); + + actions.add(new ExportSurveyAction(persistenceService, countryId)); + actions.add(new ExportGearCaracteristicAction(persistenceService)); + + return actions; + + } + + private List<ExportTechnicalActionSupport> createTechnicalActions(TuttiServiceContext serviceContext) { + + List<ExportTechnicalActionSupport> actions = new ArrayList<>(); + + actions.add(new ExportProtocolAction(serviceContext.getService(ProtocolImportExportService.class))); + actions.add(new ExportSampleCategoryModelAction()); + actions.add(new ExportSpeciesUsedAction()); + actions.add(new ExportReferentialGearAction(serviceContext.getService(ReferentialTemporaryGearService.class))); + actions.add(new ExportReferentialPersonAction(serviceContext.getService(ReferentialTemporaryPersonService.class))); + actions.add(new ExportReferentialSpeciesAction(serviceContext.getService(ReferentialTemporarySpeciesService.class))); + actions.add(new ExportReferentialVesselAction(serviceContext.getService(ReferentialTemporaryVesselService.class))); + + return actions; + } + + private List<ExportFishingOperationActionSupport> createFishingOperationActions(TuttiServiceContext serviceContext) { + + PersistenceService persistenceService = serviceContext.getService(PersistenceService.class); + + List<ExportFishingOperationActionSupport> actions = new ArrayList<>(); + + actions.add(new CreateOperationRowsAction(persistenceService)); + actions.add(new CreateParameterRowsAction(persistenceService)); + actions.add(new CreateAttachmentRowsAction(persistenceService)); + actions.add(new CreateCatchBatchRowsAction(persistenceService)); + actions.add(new CreateMarineLitterRowsAction(persistenceService)); + actions.add(new CreateIndividualObservationRowsAction(persistenceService)); + actions.add(new CreateAccidentalCatchRowsAction(persistenceService)); + actions.add(new FlushOperationAction(persistenceService)); + + return actions; + + } + +} diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/GenericFormatExportContext.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/GenericFormatExportContext.java index 25461b3..e4e7286 100644 --- a/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/GenericFormatExportContext.java +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/GenericFormatExportContext.java @@ -38,6 +38,7 @@ import fr.ifremer.tutti.persistence.entities.data.IndividualObservationBatch; import fr.ifremer.tutti.persistence.entities.data.MarineLitterBatch; import fr.ifremer.tutti.persistence.entities.data.SampleCategoryModel; import fr.ifremer.tutti.persistence.entities.data.SpeciesBatch; +import fr.ifremer.tutti.persistence.entities.protocol.TuttiProtocol; import fr.ifremer.tutti.persistence.entities.referential.Caracteristic; import fr.ifremer.tutti.persistence.entities.referential.Species; import fr.ifremer.tutti.persistence.entities.referential.Speciess; @@ -90,6 +91,8 @@ import static org.nuiton.i18n.I18n.t; public class GenericFormatExportContext implements Closeable { private final SampleCategoryModel sampleCategoryModel; + private final TuttiProtocol tuttiProtocol; + private final String countryId; protected Map<String, GenericFormatExportOperationContext> operationContexts = Maps.newTreeMap(); @@ -154,6 +157,8 @@ public class GenericFormatExportContext implements Closeable { WeightComputingService weightComputingService, Decorator<FishingOperation> fishingOperationDecorator, SampleCategoryModel sampleCategoryModel, + TuttiProtocol tuttiProtocol, + String countryId, Path attachmentSourcePath) { Preconditions.checkNotNull(progressionModel); @@ -166,7 +171,8 @@ public class GenericFormatExportContext implements Closeable { this.fishingOperationDecorator = fishingOperationDecorator; this.sampleCategoryModel = sampleCategoryModel; - + this.tuttiProtocol=tuttiProtocol; + this.countryId=countryId; this.weightMeasuredCaracteristic = persistenceService.getWeightMeasuredCaracteristic(); this.pmfmIdCaracteristic = persistenceService.getPmfmIdCaracteristic(); this.deadOrAliveCaracteristic = persistenceService.getDeadOrAliveCaracteristic(); @@ -194,6 +200,14 @@ public class GenericFormatExportContext implements Closeable { } + public TuttiProtocol getTuttiProtocol() { + return tuttiProtocol; + } + + public String getCountryId() { + return countryId; + } + public GenericFormatExportOperationContext newOperationContext(Cruise cruise, FishingOperation operation) { String operationLabel = fishingOperationDecorator.toString(operation); diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/GenericFormatExportService.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/GenericFormatExportService.java index bb0b0de..189d829 100644 --- a/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/GenericFormatExportService.java +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/GenericFormatExportService.java @@ -26,49 +26,11 @@ import com.google.common.base.Joiner; import com.google.common.base.Preconditions; import com.google.common.collect.Lists; import fr.ifremer.tutti.persistence.ProgressionModel; -import fr.ifremer.tutti.persistence.entities.CaracteristicMap; -import fr.ifremer.tutti.persistence.entities.TuttiEntities; -import fr.ifremer.tutti.persistence.entities.data.BatchContainer; -import fr.ifremer.tutti.persistence.entities.data.BenthosBatch; -import fr.ifremer.tutti.persistence.entities.data.CatchBatch; import fr.ifremer.tutti.persistence.entities.data.Cruise; import fr.ifremer.tutti.persistence.entities.data.FishingOperation; import fr.ifremer.tutti.persistence.entities.data.Program; -import fr.ifremer.tutti.persistence.entities.data.SampleCategoryModel; -import fr.ifremer.tutti.persistence.entities.data.SpeciesBatch; import fr.ifremer.tutti.persistence.entities.protocol.TuttiProtocol; -import fr.ifremer.tutti.persistence.entities.referential.Gear; -import fr.ifremer.tutti.persistence.entities.referential.Gears; -import fr.ifremer.tutti.persistence.entities.referential.Person; -import fr.ifremer.tutti.persistence.entities.referential.Species; -import fr.ifremer.tutti.persistence.entities.referential.TuttiLocation; -import fr.ifremer.tutti.persistence.entities.referential.Vessel; -import fr.ifremer.tutti.service.genericformat.csv.AccidentalCatchRow; -import fr.ifremer.tutti.service.genericformat.csv.AttachmentRow; -import fr.ifremer.tutti.service.genericformat.csv.CatchRow; -import fr.ifremer.tutti.service.genericformat.csv.GearCaracteristicRow; -import fr.ifremer.tutti.service.genericformat.csv.IndividualObservationRow; -import fr.ifremer.tutti.service.genericformat.csv.MarineLitterRow; -import fr.ifremer.tutti.service.genericformat.csv.OperationRow; -import fr.ifremer.tutti.service.genericformat.csv.ParameterRow; -import fr.ifremer.tutti.service.genericformat.csv.SampleCategoryRow; -import fr.ifremer.tutti.service.genericformat.csv.SpeciesExportRow; -import fr.ifremer.tutti.service.genericformat.csv.SurveyRow; -import fr.ifremer.tutti.service.genericformat.producer.CsvProducerForAttachment; -import fr.ifremer.tutti.service.genericformat.producer.CsvProducerForCatch; -import fr.ifremer.tutti.service.genericformat.producer.CsvProducerForGearCaracteristics; -import fr.ifremer.tutti.service.genericformat.producer.CsvProducerForSampleCategory; -import fr.ifremer.tutti.service.genericformat.producer.CsvProducerForSpecies; -import fr.ifremer.tutti.service.genericformat.producer.CsvProducerForSurvey; -import fr.ifremer.tutti.service.referential.csv.GearRow; -import fr.ifremer.tutti.service.referential.csv.PersonRow; -import fr.ifremer.tutti.service.referential.csv.SpeciesRow; -import fr.ifremer.tutti.service.referential.csv.VesselRow; -import fr.ifremer.tutti.service.referential.producer.CsvProducerForTemporaryGear; -import fr.ifremer.tutti.service.referential.producer.CsvProducerForTemporaryPerson; -import fr.ifremer.tutti.service.referential.producer.CsvProducerForTemporarySpecies; -import fr.ifremer.tutti.service.referential.producer.CsvProducerForTemporaryVessel; -import fr.ifremer.tutti.util.Numbers; +import fr.ifremer.tutti.service.TuttiServiceContext; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.nuiton.jaxx.application.ApplicationBusinessException; @@ -100,6 +62,17 @@ public class GenericFormatExportService extends GenericFormatServiceSupport { private static final Log log = LogFactory.getLog(GenericFormatExportService.class); + private GenericFormatExportActionEngine actionEngine; + + @Override + public void setServiceContext(TuttiServiceContext context) { + + super.setServiceContext(context); + + this.actionEngine = new GenericFormatExportActionEngine(context); + + } + public int getExportProgramNbSteps(String programId) { // nbCruise * (check cruise / export cruise / gear caracteristics / operation / parameter / catches / individual observation / accidental catches / marine litters) + @@ -157,11 +130,14 @@ public class GenericFormatExportService extends GenericFormatServiceSupport { // load full cruise cruise = persistenceService.getCruise(cruise.getId()); - exportCruise(exportContext, cruise); + + List<FishingOperation> operations = persistenceService.getAllFishingOperation(cruise.getId()); + + exportCruise(exportContext, cruise,operations); } - terminatesExport(exportContext); + actionEngine.executeTechnicalActions(exportContext); } catch (IOException e) { throw new ApplicationTechnicalException("Could not create program export", e); @@ -208,9 +184,10 @@ public class GenericFormatExportService extends GenericFormatServiceSupport { GenericFormatArchive genericFormatArchive = GenericFormatArchive.forExport(exportFile, context.getConfig().getTmpDirectory()); try (GenericFormatExportContext exportContext = createExportContext(progressionModel, genericFormatArchive)) { - exportCruise(exportContext, cruise); + List<FishingOperation> operations = persistenceService.getAllFishingOperation(cruise.getId()); + exportCruise(exportContext, cruise, operations); - terminatesExport(exportContext); + actionEngine.executeTechnicalActions(exportContext); } catch (IOException e) { throw new ApplicationTechnicalException("Could not create cruise export", e); @@ -271,7 +248,7 @@ public class GenericFormatExportService extends GenericFormatServiceSupport { exportCruise(exportContext, cruise, Lists.newArrayList(fishingOperation)); - terminatesExport(exportContext); + actionEngine.executeTechnicalActions(exportContext); } catch (IOException e) { throw new ApplicationTechnicalException("Could not create cruise export", e); @@ -301,8 +278,7 @@ public class GenericFormatExportService extends GenericFormatServiceSupport { try (GenericFormatExportContext exportContext = createExportContext(progressionModel, genericFormatArchive)) { - SampleCategoryModel sampleCategoryModel = exportContext.getSampleCategoryModel(); - exportSampleCategoryModel(exportContext, sampleCategoryModel); + actionEngine.executeSampleCategoryModelAction(exportContext); } catch (IOException e) { throw new ApplicationTechnicalException("Could not export sample category model", e); @@ -320,6 +296,8 @@ public class GenericFormatExportService extends GenericFormatServiceSupport { Path attachmentsSourcePath = context.getConfig().getDbAttachmentDirectory().toPath(); + TuttiProtocol tuttiProtocol = context.getDataContext().getProtocol(); + return new GenericFormatExportContext(progressionModel, genericFormatArchive, ';', @@ -327,6 +305,8 @@ public class GenericFormatExportService extends GenericFormatServiceSupport { weightComputingService, fishingOperationDecorator, context.getSampleCategoryModel(), + tuttiProtocol, + context.getConfig().getExportCountryId(), attachmentsSourcePath); } @@ -362,143 +342,9 @@ public class GenericFormatExportService extends GenericFormatServiceSupport { } - protected void terminatesExport(GenericFormatExportContext exportContext) { - - SampleCategoryModel sampleCategoryModel = exportContext.getSampleCategoryModel(); - exportSampleCategoryModel(exportContext, sampleCategoryModel); - - exportProtocol(exportContext); - - List<Gear> temporaryGears = referentialTemporaryGearService.getTemporaryGears(); - exportTemporaryGears(exportContext, temporaryGears); - - List<Person> temporaryPersons = referentialTemporaryPersonService.getTemporaryPersons(); - exportTemporaryPersons(exportContext, temporaryPersons); - - List<Species> temporarySpeciess = referentialTemporarySpeciesService.getTemporarySpeciess(); - exportTemporarySpeciess(exportContext, temporarySpeciess); - - List<Vessel> temporaryVessels = referentialTemporaryVesselService.getTemporaryVessels(); - exportTemporaryVessels(exportContext, temporaryVessels); - - exportSpecies(exportContext); - - } - - protected void exportTemporaryGears(GenericFormatExportContext exportContext, List<Gear> temporaryGears) { - - exportContext.increments(t("tutti.service.genericFormat.export.exportTemporaryGear", temporaryGears.size())); - - try { - - CsvProducerForTemporaryGear producerForTemporarySpecies = exportContext.getProducerForTemporaryGear(); - - List<GearRow> dataToExport = producerForTemporarySpecies.getDataToExport(temporaryGears); - producerForTemporarySpecies.write(dataToExport); - - } catch (Exception e) { - throw new ApplicationTechnicalException("Could not export temporary gear", e); - } - - } - - protected void exportTemporaryPersons(GenericFormatExportContext exportContext, List<Person> temporaryPersons) { - - exportContext.increments(t("tutti.service.genericFormat.export.exportTemporaryPerson", temporaryPersons.size())); - - try { - - CsvProducerForTemporaryPerson producerForTemporarySpecies = exportContext.getProducerForTemporaryPerson(); - - List<PersonRow> dataToExport = producerForTemporarySpecies.getDataToExport(temporaryPersons); - producerForTemporarySpecies.write(dataToExport); - - } catch (Exception e) { - throw new ApplicationTechnicalException("Could not export temporary person", e); - } - - } - - protected void exportTemporarySpeciess(GenericFormatExportContext exportContext, List<Species> temporarySpeciess) { - - exportContext.increments(t("tutti.service.genericFormat.export.exportTemporarySpecies", temporarySpeciess.size())); - - try { - - CsvProducerForTemporarySpecies producerForTemporarySpecies = exportContext.getProducerForTemporarySpecies(); - - List<SpeciesRow> dataToExport = producerForTemporarySpecies.getDataToExport(temporarySpeciess); - producerForTemporarySpecies.write(dataToExport); - - } catch (Exception e) { - throw new ApplicationTechnicalException("Could not export temporary species", e); - } - - } - - protected void exportTemporaryVessels(GenericFormatExportContext exportContext, List<Vessel> temporaryVessels) { - - exportContext.increments(t("tutti.service.genericFormat.export.exportTemporaryVessel", temporaryVessels.size())); - - try { - - CsvProducerForTemporaryVessel producerForTemporaryVessel = exportContext.getProducerForTemporaryVessel(); - - List<VesselRow> dataToExport = producerForTemporaryVessel.getDataToExport(temporaryVessels); - producerForTemporaryVessel.write(dataToExport); - - } catch (Exception e) { - throw new ApplicationTechnicalException("Could not export temporary vessels", e); - } - - } - - protected void exportSampleCategoryModel(GenericFormatExportContext exportContext, SampleCategoryModel sampleCategoryModel) { - - exportContext.increments(t("tutti.service.genericFormat.export.exportSampleCategoyModel", sampleCategoryModel.getNbSampling())); - - try { - - CsvProducerForSampleCategory producerForSampleCategory = exportContext.getProducerForSampleCategory(); - - List<SampleCategoryRow> dataToExport = producerForSampleCategory.getDataToExport(sampleCategoryModel); - producerForSampleCategory.write(dataToExport); - - } catch (Exception e) { - throw new ApplicationTechnicalException("Could not export sample categories gear", e); - } - - } - - protected void exportProtocol(GenericFormatExportContext exportContext) { - - boolean protocolFilled = context.getDataContext().isProtocolFilled(); - if (protocolFilled) { - - TuttiProtocol protocol = persistenceService.getProtocol(); - exportContext.increments(t("tutti.service.genericFormat.export.exportProtocol", protocol.getName())); - protocolImportExportService.exportProtocol(protocol, exportContext.getProtocolFile()); - - } else { - exportContext.increments(t("tutti.service.genericFormat.export.skipProtocolExport")); - } - - } - - protected void exportCruise(GenericFormatExportContext exportContext, Cruise cruise) { - - List<FishingOperation> operations = persistenceService.getAllFishingOperation(cruise.getId()); - exportCruise(exportContext, cruise, operations); - - } - protected void exportCruise(GenericFormatExportContext exportContext, Cruise cruise, List<FishingOperation> operations) { - exportContext.setCruiseExported(true); - - exportSurvey(exportContext, cruise); - - exportGearCaracteristics(exportContext, cruise); + actionEngine.executeCruiseActions(exportContext, cruise); for (FishingOperation operation : operations) { @@ -510,176 +356,13 @@ public class GenericFormatExportService extends GenericFormatServiceSupport { } - private void exportSurvey(GenericFormatExportContext exportContext, Cruise cruise) { - - exportContext.increments(t("tutti.service.genericFormat.exportCruise.exportSurvey", cruise.getName())); - - List<TuttiLocation> allCountry = persistenceService.getAllCountry(); - String countryId = context.getConfig().getExportCountryId(); - TuttiLocation country = TuttiEntities.splitById(allCountry).get(countryId); - - try { - - CsvProducerForSurvey producerForSurvey = exportContext.getProducerForSurvey(); - - SurveyRow surveyRow = producerForSurvey.getDataToExport(cruise, country); - producerForSurvey.write(surveyRow); - - CsvProducerForAttachment producerForAttachment = exportContext.getProducerForAttachment(); - List<AttachmentRow> attachmentRows = producerForAttachment.getDataToExport(exportContext, cruise); - producerForAttachment.write(attachmentRows); - - } catch (Exception e) { - throw new ApplicationTechnicalException(t("tutti.service.genericFormat.export.survey.error"), e); - } - } - - protected void exportGearCaracteristics(GenericFormatExportContext exportContext, Cruise cruise) { - - exportContext.increments(t("tutti.service.genericFormat.exportCruise.exportGearCaracteristics", cruise.getName())); - - try { - - CsvProducerForGearCaracteristics producerForGearCaracteristics = exportContext.getProducerForGearCaracteristics(); - - List<GearCaracteristicRow> rows = Lists.newArrayList(); - - for (Gear gear : cruise.getGear()) { - - CaracteristicMap caracteristics = persistenceService.getGearCaracteristics(cruise.getId(), gear.getId(), gear.getRankOrder()); - Gear gearWithCaracteristics = Gears.newGear(gear); - gearWithCaracteristics.setCaracteristics(caracteristics); - - List<GearCaracteristicRow> dataToExport = producerForGearCaracteristics.getDataToExport(cruise, gearWithCaracteristics); - rows.addAll(dataToExport); - - } - - producerForGearCaracteristics.write(rows); - - } catch (Exception e) { - throw new ApplicationTechnicalException(t("tutti.service.genericFormat.export.gearCaracteristics.error"), e); - } - } - protected void exportOperation(GenericFormatExportContext exportContext, Cruise cruise, FishingOperation operation) { - exportContext.setOperationExported(true); - GenericFormatExportOperationContext operationContext = exportContext.newOperationContext(cruise, operation); exportContext.increments(t("tutti.service.genericFormat.exportCruise.exportOperation", cruise.getName(), operationContext.getOperationLabel())); - CatchBatch catchBatch = operationContext.getCatchBatch(); - - OperationRow operationRow = exportContext.getProducerForOperation().getDataToExport(cruise, operation, catchBatch); - operationContext.setOperationRow(operationRow); - - List<ParameterRow> parameterRows = exportContext.getProducerForParameter().getDataToExport(cruise, operation); - operationContext.setParameterRows(parameterRows); - - List<AttachmentRow> attachmentRows = exportContext.getProducerForAttachment().getDataToExport(exportContext, operationContext); - operationContext.setAttachmentRows(attachmentRows); - - boolean withCatchBatch = operationContext.isWithCatchBatch(); + actionEngine.executeOperationActions(exportContext, operationContext); - if (withCatchBatch) { - - List<MarineLitterRow> marineLitterRows = exportContext.getProducerForMarineLitter().getDataToExport(operationContext); - operationContext.setMarineLitterRows(marineLitterRows); - - List<IndividualObservationRow> individualObservationRows = exportContext.getProducerForIndividualObservation().getDataToExport(operationContext); - operationContext.setIndividualObservationRows(individualObservationRows); - exportContext.getProducerForSpecies().prepareIndividualRows(individualObservationRows); - - List<AccidentalCatchRow> accidentalCatchRows = exportContext.getProducerForAccidentalCatch().getDataToExport(operationContext); - operationContext.setAccidentalCatchRows(accidentalCatchRows); - exportContext.getProducerForSpecies().prepareAccidentalRows(accidentalCatchRows); - - List<CatchRow> catchRows = exportCatch(exportContext, operationContext); - operationContext.setCatchRows(catchRows); - - } - - exportContext.write(operationContext); - - } - - protected List<CatchRow> exportCatch(GenericFormatExportContext exportContext, GenericFormatExportOperationContext operationContext) { - - CatchBatch catchBatch = operationContext.getCatchBatch(); - - BatchContainer<SpeciesBatch> rootSpeciesBatch = operationContext.getRootSpeciesBatch(); - - BatchContainer<BenthosBatch> rootBenthosBatch = operationContext.getRootBenthosBatch(); - - CsvProducerForSpecies producerForSpecies = exportContext.getProducerForSpecies(); - - // Warning! This will also add the survey code to batch species - producerForSpecies.prepareSpeciesBatchRows(rootSpeciesBatch); - producerForSpecies.prepareBenthosBatchRows(rootBenthosBatch); - - Float totalWeight = Numbers.getValueOrComputedValue( - catchBatch.getCatchTotalWeight(), - catchBatch.getCatchTotalComputedWeight()); - - Float totalUnsortedWeight = catchBatch.getCatchTotalUnsortedComputedWeight(); - - Float totalSortedSpeciesWeight = Numbers.getValueOrComputedValue( - catchBatch.getSpeciesTotalSortedWeight(), - catchBatch.getSpeciesTotalSortedComputedWeight()); - - Float totalSampleSortedSpeciesWeight = catchBatch.getSpeciesTotalSampleSortedComputedWeight(); - - Float totalSortedBenthosWeight = Numbers.getValueOrComputedValue( - catchBatch.getBenthosTotalSortedWeight(), - catchBatch.getBenthosTotalSortedComputedWeight()); - - Float totalSampleSortedBenthosWeight = catchBatch.getBenthosTotalSampleSortedComputedWeight(); - - Float totalSortedWeight = catchBatch.getCatchTotalSortedComputedWeight(); - - //FIXME tchemit 2013-07-12 J'utilise en fait la formule (Poids de la capture totale - poids du HV dans la capture totale) / (poids total capture triée) - // (Poids de la capture totale - poids du HV dans la capture totale) / (poids total capture triée - poids du HV dans la capture totale) - - Float catchRaisingFactor = totalWeight == null || totalUnsortedWeight == null || totalSortedWeight == null ? 1 : (totalWeight - totalUnsortedWeight) / totalSortedWeight; - - Float speciesCatchRaisingFactor = totalSampleSortedSpeciesWeight == null || totalSortedSpeciesWeight == null ? 1 : (totalSampleSortedSpeciesWeight == 0 ? 0 : (totalSortedSpeciesWeight / totalSampleSortedSpeciesWeight) * catchRaisingFactor); - Float benthosCatchRaisingFactor = totalSampleSortedBenthosWeight == null || totalSortedBenthosWeight == null ? 1 : (totalSampleSortedBenthosWeight == 0 ? 0 : (totalSortedBenthosWeight / totalSampleSortedBenthosWeight) * catchRaisingFactor); - - if (log.isDebugEnabled()) { - String message = "\ncatchTotalWeight : " + totalWeight + - "\ncatchTotalUnsortedWeight : " + totalUnsortedWeight + - "\ntotalSampleSortedSpeciesWeight : " + totalSampleSortedSpeciesWeight + - "\ntotalSampleSortedBenthosWeight : " + totalSampleSortedBenthosWeight + - "\ntotalSortedWeight : " + totalSortedWeight + - "\ncatchRaisingFactor : " + catchRaisingFactor + - "\nspeciesCatchRaisingFactor : " + speciesCatchRaisingFactor + - "\nbenthosCatchRaisingFactor : " + benthosCatchRaisingFactor; - - log.debug(message); - } - - CsvProducerForCatch producerForCatch = exportContext.getProducerForCatch(); - List<CatchRow> rows = producerForCatch.getDataToExport(operationContext, - speciesCatchRaisingFactor, - benthosCatchRaisingFactor); - return rows; - - } - - protected void exportSpecies(GenericFormatExportContext exportContext) { - - exportContext.increments(t("tutti.service.genericFormat.export.exportSpecies")); - - try { - - CsvProducerForSpecies producerForSpecies = exportContext.getProducerForSpecies(); - List<SpeciesExportRow> rows = producerForSpecies.getDataToExport(); - producerForSpecies.write(rows); - - } catch (Exception e) { - throw new ApplicationTechnicalException(t("tutti.service.genericFormat.export.species.error"), e); - } } protected int getCruiseNbStep(String cruiseId) { diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/exportactions/CreateAccidentalCatchRowsAction.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/exportactions/CreateAccidentalCatchRowsAction.java new file mode 100644 index 0000000..d4efcf1 --- /dev/null +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/exportactions/CreateAccidentalCatchRowsAction.java @@ -0,0 +1,34 @@ +package fr.ifremer.tutti.service.genericformat.exportactions; + +import fr.ifremer.tutti.service.PersistenceService; +import fr.ifremer.tutti.service.genericformat.GenericFormatExportContext; +import fr.ifremer.tutti.service.genericformat.GenericFormatExportOperationContext; +import fr.ifremer.tutti.service.genericformat.csv.AccidentalCatchRow; + +import java.util.List; + +/** + * Created on 3/28/15. + * + * @author Tony Chemit - chemit@codelutin.com + * @since 3.14.3 + */ +public class CreateAccidentalCatchRowsAction extends ExportFishingOperationActionSupport { + + public CreateAccidentalCatchRowsAction(PersistenceService persistenceService) { + super(persistenceService); + } + + @Override + public void execute(GenericFormatExportContext exportContext, GenericFormatExportOperationContext operationContext) { + + if (operationContext.isWithCatchBatch()) { + + List<AccidentalCatchRow> accidentalCatchRows = exportContext.getProducerForAccidentalCatch().getDataToExport(operationContext); + operationContext.setAccidentalCatchRows(accidentalCatchRows); + exportContext.getProducerForSpecies().prepareAccidentalRows(accidentalCatchRows); + + } + + } +} diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/exportactions/CreateAttachmentRowsAction.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/exportactions/CreateAttachmentRowsAction.java new file mode 100644 index 0000000..8d4a930 --- /dev/null +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/exportactions/CreateAttachmentRowsAction.java @@ -0,0 +1,29 @@ +package fr.ifremer.tutti.service.genericformat.exportactions; + +import fr.ifremer.tutti.service.PersistenceService; +import fr.ifremer.tutti.service.genericformat.GenericFormatExportContext; +import fr.ifremer.tutti.service.genericformat.GenericFormatExportOperationContext; +import fr.ifremer.tutti.service.genericformat.csv.AttachmentRow; + +import java.util.List; + +/** + * Created on 3/28/15. + * + * @author Tony Chemit - chemit@codelutin.com + * @since 3.14.3 + */ +public class CreateAttachmentRowsAction extends ExportFishingOperationActionSupport { + + public CreateAttachmentRowsAction(PersistenceService persistenceService) { + super(persistenceService); + } + + @Override + public void execute(GenericFormatExportContext exportContext, GenericFormatExportOperationContext operationContext) { + + List<AttachmentRow> attachmentRows = exportContext.getProducerForAttachment().getDataToExport(exportContext, operationContext); + operationContext.setAttachmentRows(attachmentRows); + + } +} diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/exportactions/CreateCatchBatchRowsAction.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/exportactions/CreateCatchBatchRowsAction.java new file mode 100644 index 0000000..2c34e83 --- /dev/null +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/exportactions/CreateCatchBatchRowsAction.java @@ -0,0 +1,108 @@ +package fr.ifremer.tutti.service.genericformat.exportactions; + +import fr.ifremer.tutti.persistence.entities.data.BatchContainer; +import fr.ifremer.tutti.persistence.entities.data.BenthosBatch; +import fr.ifremer.tutti.persistence.entities.data.CatchBatch; +import fr.ifremer.tutti.persistence.entities.data.SpeciesBatch; +import fr.ifremer.tutti.service.PersistenceService; +import fr.ifremer.tutti.service.genericformat.GenericFormatExportContext; +import fr.ifremer.tutti.service.genericformat.GenericFormatExportOperationContext; +import fr.ifremer.tutti.service.genericformat.csv.CatchRow; +import fr.ifremer.tutti.service.genericformat.producer.CsvProducerForCatch; +import fr.ifremer.tutti.service.genericformat.producer.CsvProducerForSpecies; +import fr.ifremer.tutti.util.Numbers; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; + +import java.util.List; + +/** + * Created on 3/28/15. + * + * @author Tony Chemit - chemit@codelutin.com + * @since 3.14.3 + */ +public class CreateCatchBatchRowsAction extends ExportFishingOperationActionSupport { + + /** Logger. */ + private static final Log log = LogFactory.getLog(CreateCatchBatchRowsAction.class); + + public CreateCatchBatchRowsAction(PersistenceService persistenceService) { + super(persistenceService); + } + + @Override + public void execute(GenericFormatExportContext exportContext, GenericFormatExportOperationContext operationContext) { + + if (operationContext.isWithCatchBatch()) { + + List<CatchRow> catchRows = exportCatch(exportContext, operationContext); + operationContext.setCatchRows(catchRows); + + } + + } + + protected List<CatchRow> exportCatch(GenericFormatExportContext exportContext, GenericFormatExportOperationContext operationContext) { + + CatchBatch catchBatch = operationContext.getCatchBatch(); + + BatchContainer<SpeciesBatch> rootSpeciesBatch = operationContext.getRootSpeciesBatch(); + + BatchContainer<BenthosBatch> rootBenthosBatch = operationContext.getRootBenthosBatch(); + + CsvProducerForSpecies producerForSpecies = exportContext.getProducerForSpecies(); + + // Warning! This will also add the survey code to batch species + producerForSpecies.prepareSpeciesBatchRows(rootSpeciesBatch); + producerForSpecies.prepareBenthosBatchRows(rootBenthosBatch); + + Float totalWeight = Numbers.getValueOrComputedValue( + catchBatch.getCatchTotalWeight(), + catchBatch.getCatchTotalComputedWeight()); + + Float totalUnsortedWeight = catchBatch.getCatchTotalUnsortedComputedWeight(); + + Float totalSortedSpeciesWeight = Numbers.getValueOrComputedValue( + catchBatch.getSpeciesTotalSortedWeight(), + catchBatch.getSpeciesTotalSortedComputedWeight()); + + Float totalSampleSortedSpeciesWeight = catchBatch.getSpeciesTotalSampleSortedComputedWeight(); + + Float totalSortedBenthosWeight = Numbers.getValueOrComputedValue( + catchBatch.getBenthosTotalSortedWeight(), + catchBatch.getBenthosTotalSortedComputedWeight()); + + Float totalSampleSortedBenthosWeight = catchBatch.getBenthosTotalSampleSortedComputedWeight(); + + Float totalSortedWeight = catchBatch.getCatchTotalSortedComputedWeight(); + + //FIXME tchemit 2013-07-12 J'utilise en fait la formule (Poids de la capture totale - poids du HV dans la capture totale) / (poids total capture triée) + // (Poids de la capture totale - poids du HV dans la capture totale) / (poids total capture triée - poids du HV dans la capture totale) + + Float catchRaisingFactor = totalWeight == null || totalUnsortedWeight == null || totalSortedWeight == null ? 1 : (totalWeight - totalUnsortedWeight) / totalSortedWeight; + + Float speciesCatchRaisingFactor = totalSampleSortedSpeciesWeight == null || totalSortedSpeciesWeight == null ? 1 : (totalSampleSortedSpeciesWeight == 0 ? 0 : (totalSortedSpeciesWeight / totalSampleSortedSpeciesWeight) * catchRaisingFactor); + Float benthosCatchRaisingFactor = totalSampleSortedBenthosWeight == null || totalSortedBenthosWeight == null ? 1 : (totalSampleSortedBenthosWeight == 0 ? 0 : (totalSortedBenthosWeight / totalSampleSortedBenthosWeight) * catchRaisingFactor); + + if (log.isDebugEnabled()) { + String message = "\ncatchTotalWeight : " + totalWeight + + "\ncatchTotalUnsortedWeight : " + totalUnsortedWeight + + "\ntotalSampleSortedSpeciesWeight : " + totalSampleSortedSpeciesWeight + + "\ntotalSampleSortedBenthosWeight : " + totalSampleSortedBenthosWeight + + "\ntotalSortedWeight : " + totalSortedWeight + + "\ncatchRaisingFactor : " + catchRaisingFactor + + "\nspeciesCatchRaisingFactor : " + speciesCatchRaisingFactor + + "\nbenthosCatchRaisingFactor : " + benthosCatchRaisingFactor; + + log.debug(message); + } + + CsvProducerForCatch producerForCatch = exportContext.getProducerForCatch(); + List<CatchRow> rows = producerForCatch.getDataToExport(operationContext, + speciesCatchRaisingFactor, + benthosCatchRaisingFactor); + return rows; + + } +} diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/exportactions/CreateIndividualObservationRowsAction.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/exportactions/CreateIndividualObservationRowsAction.java new file mode 100644 index 0000000..aadc3e3 --- /dev/null +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/exportactions/CreateIndividualObservationRowsAction.java @@ -0,0 +1,34 @@ +package fr.ifremer.tutti.service.genericformat.exportactions; + +import fr.ifremer.tutti.service.PersistenceService; +import fr.ifremer.tutti.service.genericformat.GenericFormatExportContext; +import fr.ifremer.tutti.service.genericformat.GenericFormatExportOperationContext; +import fr.ifremer.tutti.service.genericformat.csv.IndividualObservationRow; + +import java.util.List; + +/** + * Created on 3/28/15. + * + * @author Tony Chemit - chemit@codelutin.com + * @since 3.14.3 + */ +public class CreateIndividualObservationRowsAction extends ExportFishingOperationActionSupport { + + public CreateIndividualObservationRowsAction(PersistenceService persistenceService) { + super(persistenceService); + } + + @Override + public void execute(GenericFormatExportContext exportContext, GenericFormatExportOperationContext operationContext) { + + if (operationContext.isWithCatchBatch()) { + + List<IndividualObservationRow> individualObservationRows = exportContext.getProducerForIndividualObservation().getDataToExport(operationContext); + operationContext.setIndividualObservationRows(individualObservationRows); + exportContext.getProducerForSpecies().prepareIndividualRows(individualObservationRows); + + } + + } +} diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/exportactions/CreateMarineLitterRowsAction.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/exportactions/CreateMarineLitterRowsAction.java new file mode 100644 index 0000000..d057dbf --- /dev/null +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/exportactions/CreateMarineLitterRowsAction.java @@ -0,0 +1,34 @@ +package fr.ifremer.tutti.service.genericformat.exportactions; + +import fr.ifremer.tutti.service.PersistenceService; +import fr.ifremer.tutti.service.genericformat.GenericFormatExportContext; +import fr.ifremer.tutti.service.genericformat.GenericFormatExportOperationContext; +import fr.ifremer.tutti.service.genericformat.csv.MarineLitterRow; + +import java.util.List; + +/** + * Created on 3/28/15. + * + * @author Tony Chemit - chemit@codelutin.com + * @since 3.14.3 + */ +public class CreateMarineLitterRowsAction extends ExportFishingOperationActionSupport { + + public CreateMarineLitterRowsAction(PersistenceService persistenceService) { + super(persistenceService); + } + + @Override + public void execute(GenericFormatExportContext exportContext, GenericFormatExportOperationContext operationContext) { + + if (operationContext.isWithCatchBatch()) { + + List<MarineLitterRow> marineLitterRows = exportContext.getProducerForMarineLitter().getDataToExport(operationContext); + operationContext.setMarineLitterRows(marineLitterRows); + + } + + } + +} diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/exportactions/CreateOperationRowsAction.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/exportactions/CreateOperationRowsAction.java new file mode 100644 index 0000000..fed6709 --- /dev/null +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/exportactions/CreateOperationRowsAction.java @@ -0,0 +1,34 @@ +package fr.ifremer.tutti.service.genericformat.exportactions; + +import fr.ifremer.tutti.persistence.entities.data.CatchBatch; +import fr.ifremer.tutti.persistence.entities.data.Cruise; +import fr.ifremer.tutti.persistence.entities.data.FishingOperation; +import fr.ifremer.tutti.service.PersistenceService; +import fr.ifremer.tutti.service.genericformat.GenericFormatExportContext; +import fr.ifremer.tutti.service.genericformat.GenericFormatExportOperationContext; +import fr.ifremer.tutti.service.genericformat.csv.OperationRow; + +/** + * Created on 3/28/15. + * + * @author Tony Chemit - chemit@codelutin.com + * @since 3.14.3 + */ +public class CreateOperationRowsAction extends ExportFishingOperationActionSupport { + + public CreateOperationRowsAction(PersistenceService persistenceService) { + super(persistenceService); + } + + @Override + public void execute(GenericFormatExportContext exportContext, GenericFormatExportOperationContext operationContext) { + + FishingOperation operation = operationContext.getOperation(); + Cruise cruise = operationContext.getCruise(); + CatchBatch catchBatch = operationContext.getCatchBatch(); + + OperationRow operationRow = exportContext.getProducerForOperation().getDataToExport(cruise, operation, catchBatch); + operationContext.setOperationRow(operationRow); + + } +} diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/exportactions/CreateParameterRowsAction.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/exportactions/CreateParameterRowsAction.java new file mode 100644 index 0000000..eddf76b --- /dev/null +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/exportactions/CreateParameterRowsAction.java @@ -0,0 +1,35 @@ +package fr.ifremer.tutti.service.genericformat.exportactions; + +import fr.ifremer.tutti.persistence.entities.data.Cruise; +import fr.ifremer.tutti.persistence.entities.data.FishingOperation; +import fr.ifremer.tutti.service.PersistenceService; +import fr.ifremer.tutti.service.genericformat.GenericFormatExportContext; +import fr.ifremer.tutti.service.genericformat.GenericFormatExportOperationContext; +import fr.ifremer.tutti.service.genericformat.csv.ParameterRow; + +import java.util.List; + +/** + * Created on 3/28/15. + * + * @author Tony Chemit - chemit@codelutin.com + * @since 3.14.3 + */ +public class CreateParameterRowsAction extends ExportFishingOperationActionSupport { + + public CreateParameterRowsAction(PersistenceService persistenceService) { + super(persistenceService); + } + + @Override + public void execute(GenericFormatExportContext exportContext, GenericFormatExportOperationContext operationContext) { + + FishingOperation operation = operationContext.getOperation(); + Cruise cruise = operationContext.getCruise(); + + List<ParameterRow> parameterRows = exportContext.getProducerForParameter().getDataToExport(cruise, operation); + operationContext.setParameterRows(parameterRows); + + + } +} diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/exportactions/ExportCruiseActionSupport.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/exportactions/ExportCruiseActionSupport.java new file mode 100644 index 0000000..687cb8d --- /dev/null +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/exportactions/ExportCruiseActionSupport.java @@ -0,0 +1,23 @@ +package fr.ifremer.tutti.service.genericformat.exportactions; + +import fr.ifremer.tutti.persistence.entities.data.Cruise; +import fr.ifremer.tutti.service.PersistenceService; +import fr.ifremer.tutti.service.genericformat.GenericFormatExportContext; + +/** + * Created on 3/28/15. + * + * @author Tony Chemit - chemit@codelutin.com + * @since 3.14.3 + */ +public abstract class ExportCruiseActionSupport { + + protected final PersistenceService persistenceService; + + public abstract void execute(GenericFormatExportContext exportContext, Cruise cruise); + + protected ExportCruiseActionSupport(PersistenceService persistenceService) { + this.persistenceService = persistenceService; + } + +} \ No newline at end of file diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/exportactions/ExportFishingOperationActionSupport.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/exportactions/ExportFishingOperationActionSupport.java new file mode 100644 index 0000000..667ff19 --- /dev/null +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/exportactions/ExportFishingOperationActionSupport.java @@ -0,0 +1,23 @@ +package fr.ifremer.tutti.service.genericformat.exportactions; + +import fr.ifremer.tutti.service.PersistenceService; +import fr.ifremer.tutti.service.genericformat.GenericFormatExportContext; +import fr.ifremer.tutti.service.genericformat.GenericFormatExportOperationContext; + +/** + * Created on 3/28/15. + * + * @author Tony Chemit - chemit@codelutin.com + * @since 3.14.3 + */ +public abstract class ExportFishingOperationActionSupport { + + protected final PersistenceService persistenceService; + + public abstract void execute(GenericFormatExportContext exportContext, GenericFormatExportOperationContext operationContext); + + protected ExportFishingOperationActionSupport(PersistenceService persistenceService) { + this.persistenceService = persistenceService; + } + +} \ No newline at end of file diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/exportactions/ExportGearCaracteristicAction.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/exportactions/ExportGearCaracteristicAction.java new file mode 100644 index 0000000..781ce39 --- /dev/null +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/exportactions/ExportGearCaracteristicAction.java @@ -0,0 +1,60 @@ +package fr.ifremer.tutti.service.genericformat.exportactions; + +import com.google.common.collect.Lists; +import fr.ifremer.tutti.persistence.entities.CaracteristicMap; +import fr.ifremer.tutti.persistence.entities.data.Cruise; +import fr.ifremer.tutti.persistence.entities.referential.Gear; +import fr.ifremer.tutti.persistence.entities.referential.Gears; +import fr.ifremer.tutti.service.PersistenceService; +import fr.ifremer.tutti.service.genericformat.GenericFormatExportContext; +import fr.ifremer.tutti.service.genericformat.csv.GearCaracteristicRow; +import fr.ifremer.tutti.service.genericformat.producer.CsvProducerForGearCaracteristics; +import org.nuiton.jaxx.application.ApplicationTechnicalException; + +import java.util.List; + +import static org.nuiton.i18n.I18n.t; + +/** + * Created on 3/28/15. + * + * @author Tony Chemit - chemit@codelutin.com + * @since 3.14.3 + */ +public class ExportGearCaracteristicAction extends ExportCruiseActionSupport { + + public ExportGearCaracteristicAction(PersistenceService persistenceService) { + super(persistenceService); + } + + @Override + public void execute(GenericFormatExportContext exportContext, Cruise cruise) { + + exportContext.increments(t("tutti.service.genericFormat.exportCruise.exportGearCaracteristics", cruise.getName())); + + try { + + CsvProducerForGearCaracteristics producerForGearCaracteristics = exportContext.getProducerForGearCaracteristics(); + + List<GearCaracteristicRow> rows = Lists.newArrayList(); + + for (Gear gear : cruise.getGear()) { + + CaracteristicMap caracteristics = persistenceService.getGearCaracteristics(cruise.getId(), gear.getId(), gear.getRankOrder()); + Gear gearWithCaracteristics = Gears.newGear(gear); + gearWithCaracteristics.setCaracteristics(caracteristics); + + List<GearCaracteristicRow> dataToExport = producerForGearCaracteristics.getDataToExport(cruise, gearWithCaracteristics); + rows.addAll(dataToExport); + + } + + producerForGearCaracteristics.write(rows); + + } catch (Exception e) { + throw new ApplicationTechnicalException(t("tutti.service.genericFormat.export.gearCaracteristics.error"), e); + } + + } + +} \ No newline at end of file diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/exportactions/ExportProtocolAction.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/exportactions/ExportProtocolAction.java new file mode 100644 index 0000000..1eb9ec5 --- /dev/null +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/exportactions/ExportProtocolAction.java @@ -0,0 +1,41 @@ +package fr.ifremer.tutti.service.genericformat.exportactions; + +import fr.ifremer.tutti.persistence.entities.protocol.TuttiProtocol; +import fr.ifremer.tutti.service.genericformat.GenericFormatExportContext; +import fr.ifremer.tutti.service.protocol.ProtocolImportExportService; + +import static org.nuiton.i18n.I18n.t; + +/** + * Created on 3/28/15. + * + * @author Tony Chemit - chemit@codelutin.com + * @since 3.14.3 + */ +public class ExportProtocolAction extends ExportTechnicalActionSupport { + + private final ProtocolImportExportService protocolImportExportService; + + public ExportProtocolAction(ProtocolImportExportService protocolImportExportService) { + super(); + this.protocolImportExportService = protocolImportExportService; + } + + @Override + public void execute(GenericFormatExportContext exportContext) { + + TuttiProtocol protocol = exportContext.getTuttiProtocol(); + + if (protocol != null) { + + exportContext.increments(t("tutti.service.genericFormat.export.exportProtocol", protocol.getName())); + protocolImportExportService.exportProtocol(protocol, exportContext.getProtocolFile()); + + } else { + + exportContext.increments(t("tutti.service.genericFormat.export.skipProtocolExport")); + + } + + } +} diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/exportactions/ExportReferentialGearAction.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/exportactions/ExportReferentialGearAction.java new file mode 100644 index 0000000..7fdd0e4 --- /dev/null +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/exportactions/ExportReferentialGearAction.java @@ -0,0 +1,46 @@ +package fr.ifremer.tutti.service.genericformat.exportactions; + +import fr.ifremer.tutti.persistence.entities.referential.Gear; +import fr.ifremer.tutti.service.genericformat.GenericFormatExportContext; +import fr.ifremer.tutti.service.referential.ReferentialTemporaryGearService; +import fr.ifremer.tutti.service.referential.csv.GearRow; +import fr.ifremer.tutti.service.referential.producer.CsvProducerForTemporaryGear; +import org.nuiton.jaxx.application.ApplicationTechnicalException; + +import java.util.List; + +import static org.nuiton.i18n.I18n.t; + +/** + * Created on 3/28/15. + * + * @author Tony Chemit - chemit@codelutin.com + * @since 3.14.3 + */ +public class ExportReferentialGearAction extends ExportTechnicalActionSupport { + + private final ReferentialTemporaryGearService referentialTemporaryGearService; + + public ExportReferentialGearAction(ReferentialTemporaryGearService referentialTemporaryGearService) { + this.referentialTemporaryGearService = referentialTemporaryGearService; + } + + @Override + public void execute(GenericFormatExportContext exportContext) { + + List<Gear> temporaryGears = referentialTemporaryGearService.getTemporaryGears(); + exportContext.increments(t("tutti.service.genericFormat.export.exportTemporaryGear", temporaryGears.size())); + + try { + + CsvProducerForTemporaryGear producerForTemporarySpecies = exportContext.getProducerForTemporaryGear(); + + List<GearRow> dataToExport = producerForTemporarySpecies.getDataToExport(temporaryGears); + producerForTemporarySpecies.write(dataToExport); + + } catch (Exception e) { + throw new ApplicationTechnicalException("Could not export temporary gear", e); + } + + } +} diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/exportactions/ExportReferentialPersonAction.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/exportactions/ExportReferentialPersonAction.java new file mode 100644 index 0000000..cd46025 --- /dev/null +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/exportactions/ExportReferentialPersonAction.java @@ -0,0 +1,46 @@ +package fr.ifremer.tutti.service.genericformat.exportactions; + +import fr.ifremer.tutti.persistence.entities.referential.Person; +import fr.ifremer.tutti.service.genericformat.GenericFormatExportContext; +import fr.ifremer.tutti.service.referential.ReferentialTemporaryPersonService; +import fr.ifremer.tutti.service.referential.csv.PersonRow; +import fr.ifremer.tutti.service.referential.producer.CsvProducerForTemporaryPerson; +import org.nuiton.jaxx.application.ApplicationTechnicalException; + +import java.util.List; + +import static org.nuiton.i18n.I18n.t; + +/** + * Created on 3/28/15. + * + * @author Tony Chemit - chemit@codelutin.com + * @since 3.14.3 + */ +public class ExportReferentialPersonAction extends ExportTechnicalActionSupport { + + private final ReferentialTemporaryPersonService referentialTemporaryPersonService; + + public ExportReferentialPersonAction(ReferentialTemporaryPersonService referentialTemporaryPersonService) { + this.referentialTemporaryPersonService = referentialTemporaryPersonService; + } + + @Override + public void execute(GenericFormatExportContext exportContext) { + + List<Person> temporaryPersons = referentialTemporaryPersonService.getTemporaryPersons(); + exportContext.increments(t("tutti.service.genericFormat.export.exportTemporaryPerson", temporaryPersons.size())); + + try { + + CsvProducerForTemporaryPerson producerForTemporarySpecies = exportContext.getProducerForTemporaryPerson(); + + List<PersonRow> dataToExport = producerForTemporarySpecies.getDataToExport(temporaryPersons); + producerForTemporarySpecies.write(dataToExport); + + } catch (Exception e) { + throw new ApplicationTechnicalException("Could not export temporary person", e); + } + + } +} diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/exportactions/ExportReferentialSpeciesAction.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/exportactions/ExportReferentialSpeciesAction.java new file mode 100644 index 0000000..1589175 --- /dev/null +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/exportactions/ExportReferentialSpeciesAction.java @@ -0,0 +1,46 @@ +package fr.ifremer.tutti.service.genericformat.exportactions; + +import fr.ifremer.tutti.persistence.entities.referential.Species; +import fr.ifremer.tutti.service.genericformat.GenericFormatExportContext; +import fr.ifremer.tutti.service.referential.ReferentialTemporarySpeciesService; +import fr.ifremer.tutti.service.referential.csv.SpeciesRow; +import fr.ifremer.tutti.service.referential.producer.CsvProducerForTemporarySpecies; +import org.nuiton.jaxx.application.ApplicationTechnicalException; + +import java.util.List; + +import static org.nuiton.i18n.I18n.t; + +/** + * Created on 3/28/15. + * + * @author Tony Chemit - chemit@codelutin.com + * @since 3.14.3 + */ +public class ExportReferentialSpeciesAction extends ExportTechnicalActionSupport { + + private final ReferentialTemporarySpeciesService referentialTemporarySpeciesService; + + public ExportReferentialSpeciesAction(ReferentialTemporarySpeciesService referentialTemporarySpeciesService) { + this.referentialTemporarySpeciesService = referentialTemporarySpeciesService; + } + + @Override + public void execute(GenericFormatExportContext exportContext) { + + List<Species> temporarySpeciess = referentialTemporarySpeciesService.getTemporarySpeciess(); + exportContext.increments(t("tutti.service.genericFormat.export.exportTemporarySpecies", temporarySpeciess.size())); + + try { + + CsvProducerForTemporarySpecies producerForTemporarySpecies = exportContext.getProducerForTemporarySpecies(); + + List<SpeciesRow> dataToExport = producerForTemporarySpecies.getDataToExport(temporarySpeciess); + producerForTemporarySpecies.write(dataToExport); + + } catch (Exception e) { + throw new ApplicationTechnicalException("Could not export temporary species", e); + } + + } +} diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/exportactions/ExportReferentialVesselAction.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/exportactions/ExportReferentialVesselAction.java new file mode 100644 index 0000000..b4a28fb --- /dev/null +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/exportactions/ExportReferentialVesselAction.java @@ -0,0 +1,47 @@ +package fr.ifremer.tutti.service.genericformat.exportactions; + +import fr.ifremer.tutti.persistence.entities.referential.Vessel; +import fr.ifremer.tutti.service.genericformat.GenericFormatExportContext; +import fr.ifremer.tutti.service.referential.ReferentialTemporaryVesselService; +import fr.ifremer.tutti.service.referential.csv.VesselRow; +import fr.ifremer.tutti.service.referential.producer.CsvProducerForTemporaryVessel; +import org.nuiton.jaxx.application.ApplicationTechnicalException; + +import java.util.List; + +import static org.nuiton.i18n.I18n.t; + +/** + * Created on 3/28/15. + * + * @author Tony Chemit - chemit@codelutin.com + * @since 3.14.3 + */ +public class ExportReferentialVesselAction extends ExportTechnicalActionSupport { + + private final ReferentialTemporaryVesselService referentialTemporaryVesselService; + + public ExportReferentialVesselAction(ReferentialTemporaryVesselService referentialTemporaryVesselService) { + this.referentialTemporaryVesselService = referentialTemporaryVesselService; + } + + @Override + public void execute(GenericFormatExportContext exportContext) { + + List<Vessel> temporaryVessels = referentialTemporaryVesselService.getTemporaryVessels(); + + exportContext.increments(t("tutti.service.genericFormat.export.exportTemporaryVessel", temporaryVessels.size())); + + try { + + CsvProducerForTemporaryVessel producerForTemporaryVessel = exportContext.getProducerForTemporaryVessel(); + + List<VesselRow> dataToExport = producerForTemporaryVessel.getDataToExport(temporaryVessels); + producerForTemporaryVessel.write(dataToExport); + + } catch (Exception e) { + throw new ApplicationTechnicalException("Could not export temporary vessels", e); + } + + } +} diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/exportactions/ExportSampleCategoryModelAction.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/exportactions/ExportSampleCategoryModelAction.java new file mode 100644 index 0000000..08a865b --- /dev/null +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/exportactions/ExportSampleCategoryModelAction.java @@ -0,0 +1,39 @@ +package fr.ifremer.tutti.service.genericformat.exportactions; + +import fr.ifremer.tutti.persistence.entities.data.SampleCategoryModel; +import fr.ifremer.tutti.service.genericformat.GenericFormatExportContext; +import fr.ifremer.tutti.service.genericformat.csv.SampleCategoryRow; +import fr.ifremer.tutti.service.genericformat.producer.CsvProducerForSampleCategory; +import org.nuiton.jaxx.application.ApplicationTechnicalException; + +import java.util.List; + +import static org.nuiton.i18n.I18n.t; + +/** + * Created on 3/28/15. + * + * @author Tony Chemit - chemit@codelutin.com + * @since 3.14.3 + */ +public class ExportSampleCategoryModelAction extends ExportTechnicalActionSupport { + + @Override + public void execute(GenericFormatExportContext exportContext) { + + SampleCategoryModel sampleCategoryModel = exportContext.getSampleCategoryModel(); + exportContext.increments(t("tutti.service.genericFormat.export.exportSampleCategoyModel", sampleCategoryModel.getNbSampling())); + + try { + + CsvProducerForSampleCategory producerForSampleCategory = exportContext.getProducerForSampleCategory(); + + List<SampleCategoryRow> dataToExport = producerForSampleCategory.getDataToExport(sampleCategoryModel); + producerForSampleCategory.write(dataToExport); + + } catch (Exception e) { + throw new ApplicationTechnicalException("Could not export sample categories gear", e); + } + + } +} diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/exportactions/ExportSpeciesUsedAction.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/exportactions/ExportSpeciesUsedAction.java new file mode 100644 index 0000000..02c96b3 --- /dev/null +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/exportactions/ExportSpeciesUsedAction.java @@ -0,0 +1,36 @@ +package fr.ifremer.tutti.service.genericformat.exportactions; + +import fr.ifremer.tutti.service.genericformat.GenericFormatExportContext; +import fr.ifremer.tutti.service.genericformat.csv.SpeciesExportRow; +import fr.ifremer.tutti.service.genericformat.producer.CsvProducerForSpecies; +import org.nuiton.jaxx.application.ApplicationTechnicalException; + +import java.util.List; + +import static org.nuiton.i18n.I18n.t; + +/** + * Created on 3/28/15. + * + * @author Tony Chemit - chemit@codelutin.com + * @since 3.14.3 + */ +public class ExportSpeciesUsedAction extends ExportTechnicalActionSupport { + + @Override + public void execute(GenericFormatExportContext exportContext) { + + exportContext.increments(t("tutti.service.genericFormat.export.exportSpecies")); + + try { + + CsvProducerForSpecies producerForSpecies = exportContext.getProducerForSpecies(); + List<SpeciesExportRow> rows = producerForSpecies.getDataToExport(); + producerForSpecies.write(rows); + + } catch (Exception e) { + throw new ApplicationTechnicalException(t("tutti.service.genericFormat.export.species.error"), e); + } + + } +} diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/exportactions/ExportSurveyAction.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/exportactions/ExportSurveyAction.java new file mode 100644 index 0000000..05a1408 --- /dev/null +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/exportactions/ExportSurveyAction.java @@ -0,0 +1,59 @@ +package fr.ifremer.tutti.service.genericformat.exportactions; + +import fr.ifremer.tutti.persistence.entities.TuttiEntities; +import fr.ifremer.tutti.persistence.entities.data.Cruise; +import fr.ifremer.tutti.persistence.entities.referential.TuttiLocation; +import fr.ifremer.tutti.service.PersistenceService; +import fr.ifremer.tutti.service.genericformat.GenericFormatExportContext; +import fr.ifremer.tutti.service.genericformat.csv.AttachmentRow; +import fr.ifremer.tutti.service.genericformat.csv.SurveyRow; +import fr.ifremer.tutti.service.genericformat.producer.CsvProducerForAttachment; +import fr.ifremer.tutti.service.genericformat.producer.CsvProducerForSurvey; +import org.nuiton.jaxx.application.ApplicationTechnicalException; + +import java.util.List; + +import static org.nuiton.i18n.I18n.t; + +/** + * Created on 3/28/15. + * + * @author Tony Chemit - chemit@codelutin.com + * @since 3.14.3 + */ +public class ExportSurveyAction extends ExportCruiseActionSupport { + + private final String countryId; + + public ExportSurveyAction(PersistenceService persistenceService, String countryId) { + super(persistenceService); + this.countryId = countryId; + } + + @Override + public void execute(GenericFormatExportContext exportContext, Cruise cruise) { + + exportContext.increments(t("tutti.service.genericFormat.exportCruise.exportSurvey", cruise.getName())); + + List<TuttiLocation> allCountry = persistenceService.getAllCountry(); + + TuttiLocation country = TuttiEntities.splitById(allCountry).get(countryId); + + try { + + CsvProducerForSurvey producerForSurvey = exportContext.getProducerForSurvey(); + + SurveyRow surveyRow = producerForSurvey.getDataToExport(cruise, country); + producerForSurvey.write(surveyRow); + + CsvProducerForAttachment producerForAttachment = exportContext.getProducerForAttachment(); + List<AttachmentRow> attachmentRows = producerForAttachment.getDataToExport(exportContext, cruise); + producerForAttachment.write(attachmentRows); + + } catch (Exception e) { + throw new ApplicationTechnicalException(t("tutti.service.genericFormat.export.survey.error"), e); + } + + } + +} \ No newline at end of file diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/exportactions/ExportTechnicalActionSupport.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/exportactions/ExportTechnicalActionSupport.java new file mode 100644 index 0000000..dc1f413 --- /dev/null +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/exportactions/ExportTechnicalActionSupport.java @@ -0,0 +1,15 @@ +package fr.ifremer.tutti.service.genericformat.exportactions; + +import fr.ifremer.tutti.service.genericformat.GenericFormatExportContext; + +/** + * Created on 3/28/15. + * + * @author Tony Chemit - chemit@codelutin.com + * @since 3.14.3 + */ +public abstract class ExportTechnicalActionSupport { + + public abstract void execute(GenericFormatExportContext exportContext); + +} \ No newline at end of file diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/exportactions/FlushOperationAction.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/exportactions/FlushOperationAction.java new file mode 100644 index 0000000..0c4c827 --- /dev/null +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/exportactions/FlushOperationAction.java @@ -0,0 +1,25 @@ +package fr.ifremer.tutti.service.genericformat.exportactions; + +import fr.ifremer.tutti.service.PersistenceService; +import fr.ifremer.tutti.service.genericformat.GenericFormatExportContext; +import fr.ifremer.tutti.service.genericformat.GenericFormatExportOperationContext; + +/** + * Created on 3/28/15. + * + * @author Tony Chemit - chemit@codelutin.com + * @since 3.14.3 + */ +public class FlushOperationAction extends ExportFishingOperationActionSupport { + + public FlushOperationAction(PersistenceService persistenceService) { + super(persistenceService); + } + + @Override + public void execute(GenericFormatExportContext exportContext, GenericFormatExportOperationContext operationContext) { + + exportContext.write(operationContext); + + } +} -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch develop in repository tutti. See http://git.codelutin.com/tutti.git commit 93904698a3752f095797c83bc145a75eda2eff59 Author: Tony CHEMIT <chemit@codelutin.com> Date: Sat Mar 28 16:15:43 2015 +0100 amélioration de l'API d'export --- .../GenericFormatExportActionEngine.java | 58 ++++--- .../genericformat/GenericFormatExportContext.java | 192 +++------------------ .../GenericFormatExportOperationContext.java | 30 +++- .../genericformat/GenericFormatExportService.java | 3 +- .../CreateAccidentalCatchRowsAction.java | 29 +++- .../exportactions/CreateAttachmentRowsAction.java | 29 ---- .../exportactions/CreateCatchBatchRowsAction.java | 136 +++++++++++---- .../CreateIndividualObservationRowsAction.java | 28 ++- .../CreateMarineLitterRowsAction.java | 29 +++- .../exportactions/CreateOperationRowsAction.java | 37 +++- .../exportactions/CreateParameterRowsAction.java | 6 - .../ExportFishingOperationActionSupport.java | 7 - .../exportactions/ExportSurveyAction.java | 8 +- .../exportactions/FinalizeExportAction.java | 49 ++++++ .../exportactions/FlushOperationAction.java | 25 ++- .../producer/CsvProducerForAttachment.java | 81 +-------- .../resources/i18n/tutti-service_fr_FR.properties | 2 +- 17 files changed, 388 insertions(+), 361 deletions(-) diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/GenericFormatExportActionEngine.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/GenericFormatExportActionEngine.java index 6865cdb..ac3799e 100644 --- a/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/GenericFormatExportActionEngine.java +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/GenericFormatExportActionEngine.java @@ -4,7 +4,6 @@ import fr.ifremer.tutti.persistence.entities.data.Cruise; import fr.ifremer.tutti.service.PersistenceService; import fr.ifremer.tutti.service.TuttiServiceContext; import fr.ifremer.tutti.service.genericformat.exportactions.CreateAccidentalCatchRowsAction; -import fr.ifremer.tutti.service.genericformat.exportactions.CreateAttachmentRowsAction; import fr.ifremer.tutti.service.genericformat.exportactions.CreateCatchBatchRowsAction; import fr.ifremer.tutti.service.genericformat.exportactions.CreateIndividualObservationRowsAction; import fr.ifremer.tutti.service.genericformat.exportactions.CreateMarineLitterRowsAction; @@ -22,12 +21,15 @@ import fr.ifremer.tutti.service.genericformat.exportactions.ExportSampleCategory import fr.ifremer.tutti.service.genericformat.exportactions.ExportSpeciesUsedAction; import fr.ifremer.tutti.service.genericformat.exportactions.ExportSurveyAction; import fr.ifremer.tutti.service.genericformat.exportactions.ExportTechnicalActionSupport; +import fr.ifremer.tutti.service.genericformat.exportactions.FinalizeExportAction; import fr.ifremer.tutti.service.genericformat.exportactions.FlushOperationAction; import fr.ifremer.tutti.service.protocol.ProtocolImportExportService; import fr.ifremer.tutti.service.referential.ReferentialTemporaryGearService; import fr.ifremer.tutti.service.referential.ReferentialTemporaryPersonService; import fr.ifremer.tutti.service.referential.ReferentialTemporarySpeciesService; import fr.ifremer.tutti.service.referential.ReferentialTemporaryVesselService; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; import java.util.ArrayList; import java.util.List; @@ -40,17 +42,20 @@ import java.util.List; */ public class GenericFormatExportActionEngine { - private final List<ExportTechnicalActionSupport> technicalActions; + /** Logger. */ + private static final Log log = LogFactory.getLog(GenericFormatExportActionEngine.class); private final List<ExportCruiseActionSupport> cruiseActions; private final List<ExportFishingOperationActionSupport> fishingOperationsActions; + private final List<ExportTechnicalActionSupport> technicalActions; + public GenericFormatExportActionEngine(TuttiServiceContext serviceContext) { - this.technicalActions = createTechnicalActions(serviceContext); this.cruiseActions = createCruiseActions(serviceContext); this.fishingOperationsActions = createFishingOperationActions(serviceContext); + this.technicalActions = createTechnicalActions(serviceContext); } @@ -60,6 +65,9 @@ public class GenericFormatExportActionEngine { for (ExportCruiseActionSupport action : cruiseActions) { + if (log.isInfoEnabled()) { + log.info("Execute " + action.getClass().getSimpleName() + " on cruise " + cruise.getId()); + } action.execute(exportContext, cruise); } @@ -72,6 +80,9 @@ public class GenericFormatExportActionEngine { for (ExportFishingOperationActionSupport action : fishingOperationsActions) { + if (log.isInfoEnabled()) { + log.info("Execute " + action.getClass().getSimpleName() + " on operation " + operationContext.getOperation().getId()); + } action.execute(exportContext, operationContext); } @@ -82,6 +93,10 @@ public class GenericFormatExportActionEngine { for (ExportTechnicalActionSupport action : technicalActions) { + if (log.isInfoEnabled()) { + log.info("Execute " + action.getClass().getSimpleName()); + } + action.execute(exportContext); } @@ -109,21 +124,6 @@ public class GenericFormatExportActionEngine { } - private List<ExportTechnicalActionSupport> createTechnicalActions(TuttiServiceContext serviceContext) { - - List<ExportTechnicalActionSupport> actions = new ArrayList<>(); - - actions.add(new ExportProtocolAction(serviceContext.getService(ProtocolImportExportService.class))); - actions.add(new ExportSampleCategoryModelAction()); - actions.add(new ExportSpeciesUsedAction()); - actions.add(new ExportReferentialGearAction(serviceContext.getService(ReferentialTemporaryGearService.class))); - actions.add(new ExportReferentialPersonAction(serviceContext.getService(ReferentialTemporaryPersonService.class))); - actions.add(new ExportReferentialSpeciesAction(serviceContext.getService(ReferentialTemporarySpeciesService.class))); - actions.add(new ExportReferentialVesselAction(serviceContext.getService(ReferentialTemporaryVesselService.class))); - - return actions; - } - private List<ExportFishingOperationActionSupport> createFishingOperationActions(TuttiServiceContext serviceContext) { PersistenceService persistenceService = serviceContext.getService(PersistenceService.class); @@ -131,13 +131,29 @@ public class GenericFormatExportActionEngine { List<ExportFishingOperationActionSupport> actions = new ArrayList<>(); actions.add(new CreateOperationRowsAction(persistenceService)); - actions.add(new CreateParameterRowsAction(persistenceService)); - actions.add(new CreateAttachmentRowsAction(persistenceService)); + actions.add(new CreateParameterRowsAction()); actions.add(new CreateCatchBatchRowsAction(persistenceService)); actions.add(new CreateMarineLitterRowsAction(persistenceService)); actions.add(new CreateIndividualObservationRowsAction(persistenceService)); actions.add(new CreateAccidentalCatchRowsAction(persistenceService)); - actions.add(new FlushOperationAction(persistenceService)); + actions.add(new FlushOperationAction()); + + return actions; + + } + + private List<ExportTechnicalActionSupport> createTechnicalActions(TuttiServiceContext serviceContext) { + + List<ExportTechnicalActionSupport> actions = new ArrayList<>(); + + actions.add(new ExportProtocolAction(serviceContext.getService(ProtocolImportExportService.class))); + actions.add(new ExportSampleCategoryModelAction()); + actions.add(new ExportSpeciesUsedAction()); + actions.add(new ExportReferentialGearAction(serviceContext.getService(ReferentialTemporaryGearService.class))); + actions.add(new ExportReferentialPersonAction(serviceContext.getService(ReferentialTemporaryPersonService.class))); + actions.add(new ExportReferentialSpeciesAction(serviceContext.getService(ReferentialTemporarySpeciesService.class))); + actions.add(new ExportReferentialVesselAction(serviceContext.getService(ReferentialTemporaryVesselService.class))); + actions.add(new FinalizeExportAction()); return actions; diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/GenericFormatExportContext.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/GenericFormatExportContext.java index e4e7286..9f8bcee 100644 --- a/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/GenericFormatExportContext.java +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/GenericFormatExportContext.java @@ -25,19 +25,10 @@ package fr.ifremer.tutti.service.genericformat; */ import com.google.common.base.Preconditions; -import com.google.common.collect.Maps; -import fr.ifremer.adagio.core.dao.referential.ObjectTypeCode; import fr.ifremer.tutti.persistence.ProgressionModel; -import fr.ifremer.tutti.persistence.entities.data.AccidentalBatch; -import fr.ifremer.tutti.persistence.entities.data.Attachment; -import fr.ifremer.tutti.persistence.entities.data.BenthosBatch; -import fr.ifremer.tutti.persistence.entities.data.CatchBatch; import fr.ifremer.tutti.persistence.entities.data.Cruise; import fr.ifremer.tutti.persistence.entities.data.FishingOperation; -import fr.ifremer.tutti.persistence.entities.data.IndividualObservationBatch; -import fr.ifremer.tutti.persistence.entities.data.MarineLitterBatch; import fr.ifremer.tutti.persistence.entities.data.SampleCategoryModel; -import fr.ifremer.tutti.persistence.entities.data.SpeciesBatch; import fr.ifremer.tutti.persistence.entities.protocol.TuttiProtocol; import fr.ifremer.tutti.persistence.entities.referential.Caracteristic; import fr.ifremer.tutti.persistence.entities.referential.Species; @@ -71,7 +62,6 @@ import fr.ifremer.tutti.service.referential.producer.CsvProducerForTemporarySpec import fr.ifremer.tutti.service.referential.producer.CsvProducerForTemporaryVessel; import org.apache.commons.io.IOUtils; import org.nuiton.decorator.Decorator; -import org.nuiton.jaxx.application.ApplicationTechnicalException; import java.io.Closeable; import java.io.File; @@ -80,8 +70,6 @@ import java.nio.file.Path; import java.util.List; import java.util.Map; -import static org.nuiton.i18n.I18n.t; - /** * Created on 2/5/15. * @@ -91,26 +79,22 @@ import static org.nuiton.i18n.I18n.t; public class GenericFormatExportContext implements Closeable { private final SampleCategoryModel sampleCategoryModel; + private final TuttiProtocol tuttiProtocol; - private final String countryId; - protected Map<String, GenericFormatExportOperationContext> operationContexts = Maps.newTreeMap(); + private final String countryId; private final GenericFormatArchive archive; private final Decorator<FishingOperation> fishingOperationDecorator; - protected final PersistenceService persistenceService; - - protected final WeightComputingService weightComputingService; - - protected final Caracteristic deadOrAliveCaracteristic; + private final Caracteristic deadOrAliveCaracteristic; - protected final Caracteristic genderCaracteristic; + private final Caracteristic genderCaracteristic; - protected final Caracteristic weightMeasuredCaracteristic; + private final Caracteristic weightMeasuredCaracteristic; - protected final Caracteristic pmfmIdCaracteristic; + private final Caracteristic pmfmIdCaracteristic; private final CsvProducerForSurvey producerForSurvey; @@ -142,9 +126,7 @@ public class GenericFormatExportContext implements Closeable { private final CsvProducerForAttachment producerForAttachment; - protected final ProgressionModel progressionModel; - - protected String checkError; + private final ProgressionModel progressionModel; private boolean cruiseExported; @@ -154,7 +136,6 @@ public class GenericFormatExportContext implements Closeable { GenericFormatArchive archive, char csvSeparator, PersistenceService persistenceService, - WeightComputingService weightComputingService, Decorator<FishingOperation> fishingOperationDecorator, SampleCategoryModel sampleCategoryModel, TuttiProtocol tuttiProtocol, @@ -165,14 +146,11 @@ public class GenericFormatExportContext implements Closeable { this.progressionModel = progressionModel; this.archive = archive; - this.persistenceService = persistenceService; - this.weightComputingService = weightComputingService; - this.fishingOperationDecorator = fishingOperationDecorator; this.sampleCategoryModel = sampleCategoryModel; - this.tuttiProtocol=tuttiProtocol; - this.countryId=countryId; + this.tuttiProtocol = tuttiProtocol; + this.countryId = countryId; this.weightMeasuredCaracteristic = persistenceService.getWeightMeasuredCaracteristic(); this.pmfmIdCaracteristic = persistenceService.getPmfmIdCaracteristic(); this.deadOrAliveCaracteristic = persistenceService.getDeadOrAliveCaracteristic(); @@ -208,7 +186,9 @@ public class GenericFormatExportContext implements Closeable { return countryId; } - public GenericFormatExportOperationContext newOperationContext(Cruise cruise, FishingOperation operation) { + public GenericFormatExportOperationContext newOperationContext(PersistenceService persistenceService, + WeightComputingService weightComputingService, + Cruise cruise, FishingOperation operation) { String operationLabel = fishingOperationDecorator.toString(operation); GenericFormatExportOperationContext operationExportContext = new GenericFormatExportOperationContext(cruise, @@ -225,90 +205,25 @@ public class GenericFormatExportContext implements Closeable { } - public GenericFormatExportOperationContext getOperationContext(Cruise cruise, FishingOperation operation) { - - String operationId = operation.getId(); - - GenericFormatExportOperationContext operationExportContext = operationContexts.get(operationId); - if (operationExportContext == null) { - - String operationLabel = fishingOperationDecorator.toString(operation); - operationExportContext = new GenericFormatExportOperationContext(cruise, - operation, - operationLabel, - persistenceService, - weightComputingService, - sampleCategoryModel, - weightMeasuredCaracteristic, - pmfmIdCaracteristic, - deadOrAliveCaracteristic, - genderCaracteristic); - operationContexts.put(operationId, operationExportContext); - - } - return operationExportContext; - - } - @Override public void close() throws IOException { - try { - if (!isCruiseExported()) { - - try { - producerForSurvey.writeEmpty(); - producerForGearCaracteristics.writeEmpty(); - } catch (Exception e) { - throw new ApplicationTechnicalException(t("tutti.service.genericFormat.export.survey.error"), e); - } - - } - - if (!isOperationExported()) { - - try { - producerForOperation.writeEmpty(); - producerForParameter.writeEmpty(); - producerForAccidentalCatch.writeEmpty(); - producerForIndividualObservation.writeEmpty(); - producerForCatch.writeEmpty(); - producerForMarineLitter.writeEmpty(); - producerForAttachment.writeEmpty(); - - } catch (Exception e) { - throw new ApplicationTechnicalException(t("tutti.service.genericFormat.export.operations.error"), e); - } - - } - } finally { - - IOUtils.closeQuietly(producerForSurvey); - IOUtils.closeQuietly(producerForSpecies); - IOUtils.closeQuietly(producerForGearCaracteristics); - IOUtils.closeQuietly(producerForOperation); - IOUtils.closeQuietly(producerForParameter); - IOUtils.closeQuietly(producerForAccidentalCatch); - IOUtils.closeQuietly(producerForIndividualObservation); - IOUtils.closeQuietly(producerForCatch); - IOUtils.closeQuietly(producerForMarineLitter); - IOUtils.closeQuietly(producerForTemporaryGear); - IOUtils.closeQuietly(producerForTemporaryPerson); - IOUtils.closeQuietly(producerForTemporarySpecies); - IOUtils.closeQuietly(producerForTemporaryVessel); - IOUtils.closeQuietly(producerForSampleCategory); - IOUtils.closeQuietly(producerForAttachment); - - } - - } + IOUtils.closeQuietly(producerForSurvey); + IOUtils.closeQuietly(producerForSpecies); + IOUtils.closeQuietly(producerForGearCaracteristics); + IOUtils.closeQuietly(producerForOperation); + IOUtils.closeQuietly(producerForParameter); + IOUtils.closeQuietly(producerForAccidentalCatch); + IOUtils.closeQuietly(producerForIndividualObservation); + IOUtils.closeQuietly(producerForCatch); + IOUtils.closeQuietly(producerForMarineLitter); + IOUtils.closeQuietly(producerForTemporaryGear); + IOUtils.closeQuietly(producerForTemporaryPerson); + IOUtils.closeQuietly(producerForTemporarySpecies); + IOUtils.closeQuietly(producerForTemporaryVessel); + IOUtils.closeQuietly(producerForSampleCategory); + IOUtils.closeQuietly(producerForAttachment); - public String getCheckError() { - return checkError; - } - - public void setCheckError(String checkError) { - this.checkError = checkError; } public CsvProducerForSurvey getProducerForSurvey() { @@ -399,57 +314,4 @@ public class GenericFormatExportContext implements Closeable { return operationExported; } - public List<Attachment> getAttachements(Cruise cruise) { - return persistenceService.getAllAttachments(ObjectTypeCode.SCIENTIFIC_CRUISE, cruise.getIdAsInt()); - } - - public List<Attachment> getAttachements(FishingOperation fishingOperation) { - return persistenceService.getAllAttachments(ObjectTypeCode.OPERATION, fishingOperation.getIdAsInt()); - } - - public List<Attachment> getAttachements(CatchBatch catchBatch) { - return persistenceService.getAllAttachments(ObjectTypeCode.CATCH_BATCH, catchBatch.getIdAsInt()); - } - - public List<Attachment> getAttachements(MarineLitterBatch marineLitterBatch) { - return persistenceService.getAllAttachments(ObjectTypeCode.BATCH, marineLitterBatch.getIdAsInt()); - } - - public List<Attachment> getAttachements(SpeciesBatch speciesBatch) { - return persistenceService.getAllAttachments(ObjectTypeCode.BATCH, speciesBatch.getIdAsInt()); - } - - public List<Attachment> getAttachements(BenthosBatch benthosBatch) { - return persistenceService.getAllAttachments(ObjectTypeCode.BATCH, benthosBatch.getIdAsInt()); - } - - public List<Attachment> getAttachements(IndividualObservationBatch individualObservations) { - return persistenceService.getAllAttachments(ObjectTypeCode.SAMPLE, individualObservations.getIdAsInt()); - } - - public List<Attachment> getAttachements(AccidentalBatch accidentalBatch) { - return persistenceService.getAllAttachments(ObjectTypeCode.SAMPLE, accidentalBatch.getIdAsInt()); - } - - public void write(GenericFormatExportOperationContext operationContext) { - - try { - - getProducerForOperation().write(operationContext.getOperationRow()); - getProducerForParameter().write(operationContext.getParameterRows()); - getProducerForMarineLitter().write(operationContext.getMarineLitterRows()); - getProducerForIndividualObservation().write(operationContext.getIndividualObservationRows()); - getProducerForAccidentalCatch().write(operationContext.getAccidentalCatchRows()); - getProducerForCatch().write(operationContext.getCatchRows()); - getProducerForAttachment().write(operationContext.getAttachmentRows()); - - - } catch (Exception e) { - - throw new ApplicationTechnicalException(t("tutti.service.genericFormat.export.operation.error", operationContext.getOperationLabel(), operationContext.getCruise().getName()), e); - - } - - - } } diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/GenericFormatExportOperationContext.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/GenericFormatExportOperationContext.java index 97b74bd..d14b120 100644 --- a/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/GenericFormatExportOperationContext.java +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/GenericFormatExportOperationContext.java @@ -47,9 +47,11 @@ import fr.ifremer.tutti.service.genericformat.csv.IndividualObservationRow; import fr.ifremer.tutti.service.genericformat.csv.MarineLitterRow; import fr.ifremer.tutti.service.genericformat.csv.OperationRow; import fr.ifremer.tutti.service.genericformat.csv.ParameterRow; +import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import java.util.ArrayList; import java.util.List; /** @@ -107,7 +109,7 @@ public class GenericFormatExportOperationContext { private List<CatchRow> catchRows; - private List<AttachmentRow> attachmentRows; + private final List<AttachmentRow> attachmentRows; public GenericFormatExportOperationContext(Cruise cruise, FishingOperation operation, @@ -128,6 +130,7 @@ public class GenericFormatExportOperationContext { this.pmfmIdCaracteristic = pmfmIdCaracteristic; this.deadOrAliveCaracteristic = deadOrAliveCaracteristic; this.genderCaracteristic = genderCaracteristic; + this.attachmentRows = new ArrayList<>(); String operationId = operation.getId(); @@ -147,6 +150,9 @@ public class GenericFormatExportOperationContext { try { rootSpeciesBatch = weightComputingService.getComputedSpeciesBatches(operationId); } catch (Exception e) { + if (log.isWarnEnabled()) { + log.warn("Could not getComputedSpeciesBatches", e); + } withError = true; rootSpeciesBatch = persistenceService.getRootSpeciesBatch(operationId, false); } @@ -154,6 +160,9 @@ public class GenericFormatExportOperationContext { try { rootBenthosBatch = weightComputingService.getComputedBenthosBatches(operationId); } catch (Exception e) { + if (log.isWarnEnabled()) { + log.warn("Could not getComputedBenthosBatches", e); + } withError = true; rootBenthosBatch = persistenceService.getRootBenthosBatch(operationId, false); } @@ -161,6 +170,9 @@ public class GenericFormatExportOperationContext { try { rootMarineLitterBatch = weightComputingService.getComputedMarineLitterBatches(operationId, catchBatch.getMarineLitterTotalWeight()); } catch (Exception e) { + if (log.isWarnEnabled()) { + log.warn("Could not getComputedMarineLitterBatches", e); + } withError = true; rootMarineLitterBatch = persistenceService.getRootMarineLitterBatch(operationId); } @@ -168,7 +180,13 @@ public class GenericFormatExportOperationContext { // apply compute weights if (!withError) { - weightComputingService.computeCatchBatchWeights(catchBatch, rootSpeciesBatch, rootBenthosBatch, rootMarineLitterBatch); + try { + weightComputingService.computeCatchBatchWeights(catchBatch, rootSpeciesBatch, rootBenthosBatch, rootMarineLitterBatch); + } catch (Exception e) { + if (log.isWarnEnabled()) { + log.warn("Could not computeCatchBatchWeights", e); + } + } } individualObservations = persistenceService.getAllIndividualObservationBatch(operation.getId()); @@ -309,7 +327,11 @@ public class GenericFormatExportOperationContext { return attachmentRows; } - public void setAttachmentRows(List<AttachmentRow> attachmentRows) { - this.attachmentRows = attachmentRows; + public void addAttachmentRows(List<AttachmentRow> attachmentRows) { + + if (CollectionUtils.isNotEmpty(attachmentRows)) { + this.attachmentRows.addAll(attachmentRows); + } + } } diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/GenericFormatExportService.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/GenericFormatExportService.java index 189d829..4d086f0 100644 --- a/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/GenericFormatExportService.java +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/GenericFormatExportService.java @@ -302,7 +302,6 @@ public class GenericFormatExportService extends GenericFormatServiceSupport { genericFormatArchive, ';', persistenceService, - weightComputingService, fishingOperationDecorator, context.getSampleCategoryModel(), tuttiProtocol, @@ -358,7 +357,7 @@ public class GenericFormatExportService extends GenericFormatServiceSupport { protected void exportOperation(GenericFormatExportContext exportContext, Cruise cruise, FishingOperation operation) { - GenericFormatExportOperationContext operationContext = exportContext.newOperationContext(cruise, operation); + GenericFormatExportOperationContext operationContext = exportContext.newOperationContext(persistenceService, weightComputingService, cruise, operation); exportContext.increments(t("tutti.service.genericFormat.exportCruise.exportOperation", cruise.getName(), operationContext.getOperationLabel())); actionEngine.executeOperationActions(exportContext, operationContext); diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/exportactions/CreateAccidentalCatchRowsAction.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/exportactions/CreateAccidentalCatchRowsAction.java index d4efcf1..17fbc37 100644 --- a/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/exportactions/CreateAccidentalCatchRowsAction.java +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/exportactions/CreateAccidentalCatchRowsAction.java @@ -1,10 +1,16 @@ package fr.ifremer.tutti.service.genericformat.exportactions; +import fr.ifremer.adagio.core.dao.referential.ObjectTypeCode; +import fr.ifremer.tutti.persistence.entities.data.AccidentalBatch; +import fr.ifremer.tutti.persistence.entities.data.Attachment; import fr.ifremer.tutti.service.PersistenceService; import fr.ifremer.tutti.service.genericformat.GenericFormatExportContext; import fr.ifremer.tutti.service.genericformat.GenericFormatExportOperationContext; import fr.ifremer.tutti.service.genericformat.csv.AccidentalCatchRow; +import fr.ifremer.tutti.service.genericformat.csv.AttachmentRow; +import fr.ifremer.tutti.service.genericformat.producer.CsvProducerForAttachment; +import java.util.ArrayList; import java.util.List; /** @@ -15,8 +21,10 @@ import java.util.List; */ public class CreateAccidentalCatchRowsAction extends ExportFishingOperationActionSupport { + private final PersistenceService persistenceService; + public CreateAccidentalCatchRowsAction(PersistenceService persistenceService) { - super(persistenceService); + this.persistenceService = persistenceService; } @Override @@ -28,7 +36,26 @@ public class CreateAccidentalCatchRowsAction extends ExportFishingOperationActio operationContext.setAccidentalCatchRows(accidentalCatchRows); exportContext.getProducerForSpecies().prepareAccidentalRows(accidentalCatchRows); + List<AttachmentRow> attachmentRows = getAttachmentRows(exportContext, operationContext.getAccidentalBatches()); + operationContext.addAttachmentRows(attachmentRows); + } } + + protected List<AttachmentRow> getAttachmentRows(GenericFormatExportContext exportContext, List<AccidentalBatch> accidentalBatches) { + + CsvProducerForAttachment producerForAttachment = exportContext.getProducerForAttachment(); + + List<AttachmentRow> attachmentRows = new ArrayList<>(); + + for (AccidentalBatch accidentalBatch : accidentalBatches) { + List<Attachment> attachments = persistenceService.getAllAttachments(ObjectTypeCode.SAMPLE, accidentalBatch.getIdAsInt()); + producerForAttachment.addAttachments(attachments, attachmentRows); + } + + return attachmentRows; + + } + } diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/exportactions/CreateAttachmentRowsAction.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/exportactions/CreateAttachmentRowsAction.java deleted file mode 100644 index 8d4a930..0000000 --- a/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/exportactions/CreateAttachmentRowsAction.java +++ /dev/null @@ -1,29 +0,0 @@ -package fr.ifremer.tutti.service.genericformat.exportactions; - -import fr.ifremer.tutti.service.PersistenceService; -import fr.ifremer.tutti.service.genericformat.GenericFormatExportContext; -import fr.ifremer.tutti.service.genericformat.GenericFormatExportOperationContext; -import fr.ifremer.tutti.service.genericformat.csv.AttachmentRow; - -import java.util.List; - -/** - * Created on 3/28/15. - * - * @author Tony Chemit - chemit@codelutin.com - * @since 3.14.3 - */ -public class CreateAttachmentRowsAction extends ExportFishingOperationActionSupport { - - public CreateAttachmentRowsAction(PersistenceService persistenceService) { - super(persistenceService); - } - - @Override - public void execute(GenericFormatExportContext exportContext, GenericFormatExportOperationContext operationContext) { - - List<AttachmentRow> attachmentRows = exportContext.getProducerForAttachment().getDataToExport(exportContext, operationContext); - operationContext.setAttachmentRows(attachmentRows); - - } -} diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/exportactions/CreateCatchBatchRowsAction.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/exportactions/CreateCatchBatchRowsAction.java index 2c34e83..11b881b 100644 --- a/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/exportactions/CreateCatchBatchRowsAction.java +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/exportactions/CreateCatchBatchRowsAction.java @@ -1,5 +1,7 @@ package fr.ifremer.tutti.service.genericformat.exportactions; +import fr.ifremer.adagio.core.dao.referential.ObjectTypeCode; +import fr.ifremer.tutti.persistence.entities.data.Attachment; import fr.ifremer.tutti.persistence.entities.data.BatchContainer; import fr.ifremer.tutti.persistence.entities.data.BenthosBatch; import fr.ifremer.tutti.persistence.entities.data.CatchBatch; @@ -7,13 +9,16 @@ import fr.ifremer.tutti.persistence.entities.data.SpeciesBatch; import fr.ifremer.tutti.service.PersistenceService; import fr.ifremer.tutti.service.genericformat.GenericFormatExportContext; import fr.ifremer.tutti.service.genericformat.GenericFormatExportOperationContext; +import fr.ifremer.tutti.service.genericformat.csv.AttachmentRow; import fr.ifremer.tutti.service.genericformat.csv.CatchRow; +import fr.ifremer.tutti.service.genericformat.producer.CsvProducerForAttachment; import fr.ifremer.tutti.service.genericformat.producer.CsvProducerForCatch; import fr.ifremer.tutti.service.genericformat.producer.CsvProducerForSpecies; import fr.ifremer.tutti.util.Numbers; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import java.util.ArrayList; import java.util.List; /** @@ -27,8 +32,10 @@ public class CreateCatchBatchRowsAction extends ExportFishingOperationActionSupp /** Logger. */ private static final Log log = LogFactory.getLog(CreateCatchBatchRowsAction.class); + private final PersistenceService persistenceService; + public CreateCatchBatchRowsAction(PersistenceService persistenceService) { - super(persistenceService); + this.persistenceService = persistenceService; } @Override @@ -36,32 +43,70 @@ public class CreateCatchBatchRowsAction extends ExportFishingOperationActionSupp if (operationContext.isWithCatchBatch()) { - List<CatchRow> catchRows = exportCatch(exportContext, operationContext); + prepareSpeciesBatches(exportContext, operationContext); + + prepareBenthosBatches(exportContext, operationContext); + + CatchBatch catchBatch = operationContext.getCatchBatch(); + + Float catchRaisingfactor = computeCatchRaisingfactor(catchBatch); + Float speciesCatchRaisingFactor = computeSpeciesRaisingFactor(catchBatch, catchRaisingfactor); + Float benthosCatchRaisingFactor = computeBenthosRaisingFactor(catchBatch, catchRaisingfactor); + + if (log.isInfoEnabled()) { + log.info(String.format("Operation %s [catchRF: %s / speciesRF: %s / benthosRF: %s ]", operationContext.getOperation().getId(), catchRaisingfactor, speciesCatchRaisingFactor, benthosCatchRaisingFactor)); + } + + CsvProducerForCatch producerForCatch = exportContext.getProducerForCatch(); + List<CatchRow> catchRows = producerForCatch.getDataToExport(operationContext, speciesCatchRaisingFactor, benthosCatchRaisingFactor); operationContext.setCatchRows(catchRows); } } - protected List<CatchRow> exportCatch(GenericFormatExportContext exportContext, GenericFormatExportOperationContext operationContext) { - - CatchBatch catchBatch = operationContext.getCatchBatch(); + private void prepareSpeciesBatches(GenericFormatExportContext exportContext, GenericFormatExportOperationContext operationContext) { BatchContainer<SpeciesBatch> rootSpeciesBatch = operationContext.getRootSpeciesBatch(); - BatchContainer<BenthosBatch> rootBenthosBatch = operationContext.getRootBenthosBatch(); - + // Warning! This will also add the survey code to batch species CsvProducerForSpecies producerForSpecies = exportContext.getProducerForSpecies(); + producerForSpecies.prepareSpeciesBatchRows(rootSpeciesBatch); + + CsvProducerForAttachment producerForAttachment = exportContext.getProducerForAttachment(); + + List<AttachmentRow> attachmentRows = new ArrayList<>(); + + for (SpeciesBatch speciesBatch : rootSpeciesBatch.getChildren()) { + List<Attachment> attachments = persistenceService.getAllAttachments(ObjectTypeCode.BATCH, speciesBatch.getIdAsInt()); + producerForAttachment.addAttachments(attachments, attachmentRows); + } + + operationContext.addAttachmentRows(attachmentRows); + + } + + private void prepareBenthosBatches(GenericFormatExportContext exportContext, GenericFormatExportOperationContext operationContext) { + + BatchContainer<BenthosBatch> rootSpeciesBatch = operationContext.getRootBenthosBatch(); // Warning! This will also add the survey code to batch species - producerForSpecies.prepareSpeciesBatchRows(rootSpeciesBatch); - producerForSpecies.prepareBenthosBatchRows(rootBenthosBatch); + CsvProducerForSpecies producerForSpecies = exportContext.getProducerForSpecies(); + producerForSpecies.prepareBenthosBatchRows(rootSpeciesBatch); - Float totalWeight = Numbers.getValueOrComputedValue( - catchBatch.getCatchTotalWeight(), - catchBatch.getCatchTotalComputedWeight()); + CsvProducerForAttachment producerForAttachment = exportContext.getProducerForAttachment(); - Float totalUnsortedWeight = catchBatch.getCatchTotalUnsortedComputedWeight(); + List<AttachmentRow> attachmentRows = new ArrayList<>(); + + for (BenthosBatch benthosBatch : rootSpeciesBatch.getChildren()) { + List<Attachment> attachments = persistenceService.getAllAttachments(ObjectTypeCode.BATCH, benthosBatch.getIdAsInt()); + producerForAttachment.addAttachments(attachments, attachmentRows); + } + operationContext.addAttachmentRows(attachmentRows); + + } + + private Float computeSpeciesRaisingFactor(CatchBatch catchBatch, Float catchRaisingFactor) { Float totalSortedSpeciesWeight = Numbers.getValueOrComputedValue( catchBatch.getSpeciesTotalSortedWeight(), @@ -69,11 +114,51 @@ public class CreateCatchBatchRowsAction extends ExportFishingOperationActionSupp Float totalSampleSortedSpeciesWeight = catchBatch.getSpeciesTotalSampleSortedComputedWeight(); + Float speciesCatchRaisingFactor; + if (totalSampleSortedSpeciesWeight == null || totalSortedSpeciesWeight == null) { + speciesCatchRaisingFactor = 1f; + } else { + if (totalSampleSortedSpeciesWeight == 0) { + speciesCatchRaisingFactor = 0f; + } else { + speciesCatchRaisingFactor = (totalSortedSpeciesWeight / totalSampleSortedSpeciesWeight) * catchRaisingFactor; + } + } + return speciesCatchRaisingFactor; + + } + + private Float computeBenthosRaisingFactor(CatchBatch catchBatch, Float catchRaisingFactor) { + + Float totalSampleSortedBenthosWeight = catchBatch.getBenthosTotalSampleSortedComputedWeight(); + Float totalSortedBenthosWeight = Numbers.getValueOrComputedValue( catchBatch.getBenthosTotalSortedWeight(), catchBatch.getBenthosTotalSortedComputedWeight()); - Float totalSampleSortedBenthosWeight = catchBatch.getBenthosTotalSampleSortedComputedWeight(); + Float benthosCatchRaisingFactor; + + if (totalSampleSortedBenthosWeight == null || totalSortedBenthosWeight == null) { + benthosCatchRaisingFactor = 1f; + } else { + if (totalSampleSortedBenthosWeight == 0) { + benthosCatchRaisingFactor = 0f; + } else { + benthosCatchRaisingFactor = (totalSortedBenthosWeight / totalSampleSortedBenthosWeight) * catchRaisingFactor; + } + } + + return benthosCatchRaisingFactor; + + } + + private Float computeCatchRaisingfactor(CatchBatch catchBatch) { + + Float totalWeight = Numbers.getValueOrComputedValue( + catchBatch.getCatchTotalWeight(), + catchBatch.getCatchTotalComputedWeight()); + + Float totalUnsortedWeight = catchBatch.getCatchTotalUnsortedComputedWeight(); Float totalSortedWeight = catchBatch.getCatchTotalSortedComputedWeight(); @@ -82,27 +167,8 @@ public class CreateCatchBatchRowsAction extends ExportFishingOperationActionSupp Float catchRaisingFactor = totalWeight == null || totalUnsortedWeight == null || totalSortedWeight == null ? 1 : (totalWeight - totalUnsortedWeight) / totalSortedWeight; - Float speciesCatchRaisingFactor = totalSampleSortedSpeciesWeight == null || totalSortedSpeciesWeight == null ? 1 : (totalSampleSortedSpeciesWeight == 0 ? 0 : (totalSortedSpeciesWeight / totalSampleSortedSpeciesWeight) * catchRaisingFactor); - Float benthosCatchRaisingFactor = totalSampleSortedBenthosWeight == null || totalSortedBenthosWeight == null ? 1 : (totalSampleSortedBenthosWeight == 0 ? 0 : (totalSortedBenthosWeight / totalSampleSortedBenthosWeight) * catchRaisingFactor); - - if (log.isDebugEnabled()) { - String message = "\ncatchTotalWeight : " + totalWeight + - "\ncatchTotalUnsortedWeight : " + totalUnsortedWeight + - "\ntotalSampleSortedSpeciesWeight : " + totalSampleSortedSpeciesWeight + - "\ntotalSampleSortedBenthosWeight : " + totalSampleSortedBenthosWeight + - "\ntotalSortedWeight : " + totalSortedWeight + - "\ncatchRaisingFactor : " + catchRaisingFactor + - "\nspeciesCatchRaisingFactor : " + speciesCatchRaisingFactor + - "\nbenthosCatchRaisingFactor : " + benthosCatchRaisingFactor; - - log.debug(message); - } - - CsvProducerForCatch producerForCatch = exportContext.getProducerForCatch(); - List<CatchRow> rows = producerForCatch.getDataToExport(operationContext, - speciesCatchRaisingFactor, - benthosCatchRaisingFactor); - return rows; + return catchRaisingFactor; } + } diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/exportactions/CreateIndividualObservationRowsAction.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/exportactions/CreateIndividualObservationRowsAction.java index aadc3e3..5a1f35f 100644 --- a/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/exportactions/CreateIndividualObservationRowsAction.java +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/exportactions/CreateIndividualObservationRowsAction.java @@ -1,10 +1,16 @@ package fr.ifremer.tutti.service.genericformat.exportactions; +import fr.ifremer.adagio.core.dao.referential.ObjectTypeCode; +import fr.ifremer.tutti.persistence.entities.data.Attachment; +import fr.ifremer.tutti.persistence.entities.data.IndividualObservationBatch; import fr.ifremer.tutti.service.PersistenceService; import fr.ifremer.tutti.service.genericformat.GenericFormatExportContext; import fr.ifremer.tutti.service.genericformat.GenericFormatExportOperationContext; +import fr.ifremer.tutti.service.genericformat.csv.AttachmentRow; import fr.ifremer.tutti.service.genericformat.csv.IndividualObservationRow; +import fr.ifremer.tutti.service.genericformat.producer.CsvProducerForAttachment; +import java.util.ArrayList; import java.util.List; /** @@ -15,8 +21,10 @@ import java.util.List; */ public class CreateIndividualObservationRowsAction extends ExportFishingOperationActionSupport { + private final PersistenceService persistenceService; + public CreateIndividualObservationRowsAction(PersistenceService persistenceService) { - super(persistenceService); + this.persistenceService = persistenceService; } @Override @@ -28,7 +36,25 @@ public class CreateIndividualObservationRowsAction extends ExportFishingOperatio operationContext.setIndividualObservationRows(individualObservationRows); exportContext.getProducerForSpecies().prepareIndividualRows(individualObservationRows); + List<AttachmentRow> attachmentRows = getAttachmentRows(exportContext, operationContext.getIndividualObservations()); + operationContext.addAttachmentRows(attachmentRows); + + } + + } + + public List<AttachmentRow> getAttachmentRows(GenericFormatExportContext exportContext, List<IndividualObservationBatch> individualObservationBatches) { + + CsvProducerForAttachment producerForAttachment = exportContext.getProducerForAttachment(); + + List<AttachmentRow> attachmentRows = new ArrayList<>(); + + for (IndividualObservationBatch individualObservationBatch : individualObservationBatches) { + List<Attachment> attachments = persistenceService.getAllAttachments(ObjectTypeCode.SAMPLE, individualObservationBatch.getIdAsInt()); + producerForAttachment. addAttachments(attachments, attachmentRows); } + return attachmentRows; + } } diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/exportactions/CreateMarineLitterRowsAction.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/exportactions/CreateMarineLitterRowsAction.java index d057dbf..9d49530 100644 --- a/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/exportactions/CreateMarineLitterRowsAction.java +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/exportactions/CreateMarineLitterRowsAction.java @@ -1,10 +1,17 @@ package fr.ifremer.tutti.service.genericformat.exportactions; +import fr.ifremer.adagio.core.dao.referential.ObjectTypeCode; +import fr.ifremer.tutti.persistence.entities.data.Attachment; +import fr.ifremer.tutti.persistence.entities.data.BatchContainer; +import fr.ifremer.tutti.persistence.entities.data.MarineLitterBatch; import fr.ifremer.tutti.service.PersistenceService; import fr.ifremer.tutti.service.genericformat.GenericFormatExportContext; import fr.ifremer.tutti.service.genericformat.GenericFormatExportOperationContext; +import fr.ifremer.tutti.service.genericformat.csv.AttachmentRow; import fr.ifremer.tutti.service.genericformat.csv.MarineLitterRow; +import fr.ifremer.tutti.service.genericformat.producer.CsvProducerForAttachment; +import java.util.ArrayList; import java.util.List; /** @@ -15,8 +22,10 @@ import java.util.List; */ public class CreateMarineLitterRowsAction extends ExportFishingOperationActionSupport { + private final PersistenceService persistenceService; + public CreateMarineLitterRowsAction(PersistenceService persistenceService) { - super(persistenceService); + this.persistenceService = persistenceService; } @Override @@ -27,8 +36,26 @@ public class CreateMarineLitterRowsAction extends ExportFishingOperationActionSu List<MarineLitterRow> marineLitterRows = exportContext.getProducerForMarineLitter().getDataToExport(operationContext); operationContext.setMarineLitterRows(marineLitterRows); + List<AttachmentRow> attachmentRows = getAttachmentRows(exportContext, operationContext.getRootMarineLitterBatch()); + operationContext.addAttachmentRows(attachmentRows); + + } + + } + + public List<AttachmentRow> getAttachmentRows(GenericFormatExportContext exportContext, BatchContainer<MarineLitterBatch> marineLitterBatches) { + + CsvProducerForAttachment producerForAttachment = exportContext.getProducerForAttachment(); + + List<AttachmentRow> attachmentRows = new ArrayList<>(); + + for (MarineLitterBatch marineLitterBatch : marineLitterBatches.getChildren()) { + List<Attachment> attachments =persistenceService.getAllAttachments(ObjectTypeCode.BATCH, marineLitterBatch.getIdAsInt()); + producerForAttachment.addAttachments(attachments, attachmentRows); } + return attachmentRows; + } } diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/exportactions/CreateOperationRowsAction.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/exportactions/CreateOperationRowsAction.java index fed6709..132d4bc 100644 --- a/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/exportactions/CreateOperationRowsAction.java +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/exportactions/CreateOperationRowsAction.java @@ -1,12 +1,19 @@ package fr.ifremer.tutti.service.genericformat.exportactions; +import fr.ifremer.adagio.core.dao.referential.ObjectTypeCode; +import fr.ifremer.tutti.persistence.entities.data.Attachment; import fr.ifremer.tutti.persistence.entities.data.CatchBatch; import fr.ifremer.tutti.persistence.entities.data.Cruise; import fr.ifremer.tutti.persistence.entities.data.FishingOperation; import fr.ifremer.tutti.service.PersistenceService; import fr.ifremer.tutti.service.genericformat.GenericFormatExportContext; import fr.ifremer.tutti.service.genericformat.GenericFormatExportOperationContext; +import fr.ifremer.tutti.service.genericformat.csv.AttachmentRow; import fr.ifremer.tutti.service.genericformat.csv.OperationRow; +import fr.ifremer.tutti.service.genericformat.producer.CsvProducerForAttachment; + +import java.util.ArrayList; +import java.util.List; /** * Created on 3/28/15. @@ -16,8 +23,10 @@ import fr.ifremer.tutti.service.genericformat.csv.OperationRow; */ public class CreateOperationRowsAction extends ExportFishingOperationActionSupport { + private final PersistenceService persistenceService; + public CreateOperationRowsAction(PersistenceService persistenceService) { - super(persistenceService); + this.persistenceService = persistenceService; } @Override @@ -30,5 +39,31 @@ public class CreateOperationRowsAction extends ExportFishingOperationActionSuppo OperationRow operationRow = exportContext.getProducerForOperation().getDataToExport(cruise, operation, catchBatch); operationContext.setOperationRow(operationRow); + List<AttachmentRow> attachmentRows = getAttachmentRows(exportContext, operation, catchBatch); + operationContext.addAttachmentRows(attachmentRows); + + } + + protected List<AttachmentRow> getAttachmentRows(GenericFormatExportContext exportContext, FishingOperation operation, CatchBatch catchBatch) { + + List<AttachmentRow> attachmentRows = new ArrayList<>(); + + CsvProducerForAttachment producerForAttachment = exportContext.getProducerForAttachment(); + { + + List<Attachment> attachments = persistenceService.getAllAttachments(ObjectTypeCode.OPERATION, operation.getIdAsInt()); + producerForAttachment.addAttachments(attachments, attachmentRows); + + } + + if (catchBatch != null) { + + List<Attachment> attachments = persistenceService.getAllAttachments(ObjectTypeCode.CATCH_BATCH, catchBatch.getIdAsInt()); + producerForAttachment.addAttachments(attachments, attachmentRows); + + } + + return attachmentRows; + } } diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/exportactions/CreateParameterRowsAction.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/exportactions/CreateParameterRowsAction.java index eddf76b..2013771 100644 --- a/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/exportactions/CreateParameterRowsAction.java +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/exportactions/CreateParameterRowsAction.java @@ -2,7 +2,6 @@ package fr.ifremer.tutti.service.genericformat.exportactions; import fr.ifremer.tutti.persistence.entities.data.Cruise; import fr.ifremer.tutti.persistence.entities.data.FishingOperation; -import fr.ifremer.tutti.service.PersistenceService; import fr.ifremer.tutti.service.genericformat.GenericFormatExportContext; import fr.ifremer.tutti.service.genericformat.GenericFormatExportOperationContext; import fr.ifremer.tutti.service.genericformat.csv.ParameterRow; @@ -17,10 +16,6 @@ import java.util.List; */ public class CreateParameterRowsAction extends ExportFishingOperationActionSupport { - public CreateParameterRowsAction(PersistenceService persistenceService) { - super(persistenceService); - } - @Override public void execute(GenericFormatExportContext exportContext, GenericFormatExportOperationContext operationContext) { @@ -30,6 +25,5 @@ public class CreateParameterRowsAction extends ExportFishingOperationActionSuppo List<ParameterRow> parameterRows = exportContext.getProducerForParameter().getDataToExport(cruise, operation); operationContext.setParameterRows(parameterRows); - } } diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/exportactions/ExportFishingOperationActionSupport.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/exportactions/ExportFishingOperationActionSupport.java index 667ff19..8ce71d8 100644 --- a/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/exportactions/ExportFishingOperationActionSupport.java +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/exportactions/ExportFishingOperationActionSupport.java @@ -1,6 +1,5 @@ package fr.ifremer.tutti.service.genericformat.exportactions; -import fr.ifremer.tutti.service.PersistenceService; import fr.ifremer.tutti.service.genericformat.GenericFormatExportContext; import fr.ifremer.tutti.service.genericformat.GenericFormatExportOperationContext; @@ -12,12 +11,6 @@ import fr.ifremer.tutti.service.genericformat.GenericFormatExportOperationContex */ public abstract class ExportFishingOperationActionSupport { - protected final PersistenceService persistenceService; - public abstract void execute(GenericFormatExportContext exportContext, GenericFormatExportOperationContext operationContext); - protected ExportFishingOperationActionSupport(PersistenceService persistenceService) { - this.persistenceService = persistenceService; - } - } \ No newline at end of file diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/exportactions/ExportSurveyAction.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/exportactions/ExportSurveyAction.java index 05a1408..37566eb 100644 --- a/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/exportactions/ExportSurveyAction.java +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/exportactions/ExportSurveyAction.java @@ -1,6 +1,8 @@ package fr.ifremer.tutti.service.genericformat.exportactions; +import fr.ifremer.adagio.core.dao.referential.ObjectTypeCode; import fr.ifremer.tutti.persistence.entities.TuttiEntities; +import fr.ifremer.tutti.persistence.entities.data.Attachment; import fr.ifremer.tutti.persistence.entities.data.Cruise; import fr.ifremer.tutti.persistence.entities.referential.TuttiLocation; import fr.ifremer.tutti.service.PersistenceService; @@ -11,6 +13,7 @@ import fr.ifremer.tutti.service.genericformat.producer.CsvProducerForAttachment; import fr.ifremer.tutti.service.genericformat.producer.CsvProducerForSurvey; import org.nuiton.jaxx.application.ApplicationTechnicalException; +import java.util.ArrayList; import java.util.List; import static org.nuiton.i18n.I18n.t; @@ -46,8 +49,11 @@ public class ExportSurveyAction extends ExportCruiseActionSupport { SurveyRow surveyRow = producerForSurvey.getDataToExport(cruise, country); producerForSurvey.write(surveyRow); + List<Attachment> attachments = persistenceService.getAllAttachments(ObjectTypeCode.SCIENTIFIC_CRUISE, cruise.getIdAsInt()); + CsvProducerForAttachment producerForAttachment = exportContext.getProducerForAttachment(); - List<AttachmentRow> attachmentRows = producerForAttachment.getDataToExport(exportContext, cruise); + List<AttachmentRow> attachmentRows = new ArrayList<>(); + producerForAttachment.addAttachments(attachments, attachmentRows); producerForAttachment.write(attachmentRows); } catch (Exception e) { diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/exportactions/FinalizeExportAction.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/exportactions/FinalizeExportAction.java new file mode 100644 index 0000000..35b9cb9 --- /dev/null +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/exportactions/FinalizeExportAction.java @@ -0,0 +1,49 @@ +package fr.ifremer.tutti.service.genericformat.exportactions; + +import fr.ifremer.tutti.service.genericformat.GenericFormatExportContext; +import org.nuiton.jaxx.application.ApplicationTechnicalException; + +import static org.nuiton.i18n.I18n.t; + +/** + * Created on 3/28/15. + * + * @author Tony Chemit - chemit@codelutin.com + * @since 3.14.3 + */ +public class FinalizeExportAction extends ExportTechnicalActionSupport { + + @Override + public void execute(GenericFormatExportContext exportContext) { + + if (!exportContext.isCruiseExported()) { + + try { + exportContext.getProducerForSurvey().writeEmpty(); + exportContext.getProducerForGearCaracteristics().writeEmpty(); + } catch (Exception e) { + throw new ApplicationTechnicalException(t("tutti.service.genericFormat.export.survey.error"), e); + } + + } + + if (!exportContext.isOperationExported()) { + + try { + exportContext.getProducerForOperation().writeEmpty(); + exportContext.getProducerForParameter().writeEmpty(); + exportContext.getProducerForAccidentalCatch().writeEmpty(); + exportContext.getProducerForIndividualObservation().writeEmpty(); + exportContext.getProducerForCatch().writeEmpty(); + exportContext.getProducerForMarineLitter().writeEmpty(); + exportContext.getProducerForAttachment().writeEmpty(); + + } catch (Exception e) { + throw new ApplicationTechnicalException(t("tutti.service.genericFormat.export.operations.error"), e); + } + + } + + } + +} diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/exportactions/FlushOperationAction.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/exportactions/FlushOperationAction.java index 0c4c827..fbbb8cd 100644 --- a/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/exportactions/FlushOperationAction.java +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/exportactions/FlushOperationAction.java @@ -1,8 +1,10 @@ package fr.ifremer.tutti.service.genericformat.exportactions; -import fr.ifremer.tutti.service.PersistenceService; import fr.ifremer.tutti.service.genericformat.GenericFormatExportContext; import fr.ifremer.tutti.service.genericformat.GenericFormatExportOperationContext; +import org.nuiton.jaxx.application.ApplicationTechnicalException; + +import static org.nuiton.i18n.I18n.t; /** * Created on 3/28/15. @@ -12,14 +14,25 @@ import fr.ifremer.tutti.service.genericformat.GenericFormatExportOperationContex */ public class FlushOperationAction extends ExportFishingOperationActionSupport { - public FlushOperationAction(PersistenceService persistenceService) { - super(persistenceService); - } - @Override public void execute(GenericFormatExportContext exportContext, GenericFormatExportOperationContext operationContext) { - exportContext.write(operationContext); + try { + + exportContext.getProducerForOperation().write(operationContext.getOperationRow()); + exportContext.getProducerForParameter().write(operationContext.getParameterRows()); + exportContext.getProducerForMarineLitter().write(operationContext.getMarineLitterRows()); + exportContext.getProducerForIndividualObservation().write(operationContext.getIndividualObservationRows()); + exportContext.getProducerForAccidentalCatch().write(operationContext.getAccidentalCatchRows()); + exportContext.getProducerForCatch().write(operationContext.getCatchRows()); + exportContext.getProducerForAttachment().write(operationContext.getAttachmentRows()); + + } catch (Exception e) { + + throw new ApplicationTechnicalException(t("tutti.service.genericFormat.export.operation.error", operationContext.getOperationLabel(), operationContext.getCruise().getName()), e); + + } } + } diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/producer/CsvProducerForAttachment.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/producer/CsvProducerForAttachment.java index da6f72f..11292e4 100644 --- a/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/producer/CsvProducerForAttachment.java +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/producer/CsvProducerForAttachment.java @@ -1,21 +1,12 @@ package fr.ifremer.tutti.service.genericformat.producer; -import fr.ifremer.tutti.persistence.entities.data.AccidentalBatch; import fr.ifremer.tutti.persistence.entities.data.Attachment; -import fr.ifremer.tutti.persistence.entities.data.BenthosBatch; -import fr.ifremer.tutti.persistence.entities.data.Cruise; -import fr.ifremer.tutti.persistence.entities.data.IndividualObservationBatch; -import fr.ifremer.tutti.persistence.entities.data.MarineLitterBatch; -import fr.ifremer.tutti.persistence.entities.data.SpeciesBatch; import fr.ifremer.tutti.service.csv.CsvProducer; -import fr.ifremer.tutti.service.genericformat.GenericFormatExportContext; -import fr.ifremer.tutti.service.genericformat.GenericFormatExportOperationContext; import fr.ifremer.tutti.service.genericformat.csv.AttachmentModel; import fr.ifremer.tutti.service.genericformat.csv.AttachmentRow; import java.nio.file.Files; import java.nio.file.Path; -import java.util.ArrayList; import java.util.List; /** @@ -38,76 +29,6 @@ public class CsvProducerForAttachment extends CsvProducer<AttachmentRow, Attachm this.targetPath = targetPath; } - public List<AttachmentRow> getDataToExport(GenericFormatExportContext exportContext, Cruise cruise) { - - List<AttachmentRow> rows = new ArrayList<>(); - - List<Attachment> attachments = exportContext.getAttachements(cruise); - addAttachments(attachments, rows); - - return rows; - - } - - public List<AttachmentRow> getDataToExport(GenericFormatExportContext exportContext, GenericFormatExportOperationContext operationContext) { - - List<AttachmentRow> rows = new ArrayList<>(); - - { - List<Attachment> attachments = exportContext.getAttachements(operationContext.getOperation()); - addAttachments(attachments, rows); - } - - if (operationContext.isWithCatchBatch()) { - - { - List<Attachment> attachments = exportContext.getAttachements(operationContext.getCatchBatch()); - addAttachments(attachments, rows); - } - - { - for (IndividualObservationBatch individualObservationBatch : operationContext.getIndividualObservations()) { - List<Attachment> attachments = exportContext.getAttachements(individualObservationBatch); - addAttachments(attachments, rows); - } - } - - { - for (AccidentalBatch accidentalBatch : operationContext.getAccidentalBatches()) { - List<Attachment> attachments = exportContext.getAttachements(accidentalBatch); - addAttachments(attachments, rows); - } - } - - { - for (BenthosBatch benthosBatch : operationContext.getRootBenthosBatch().getChildren()) { - List<Attachment> attachments = exportContext.getAttachements(benthosBatch); - addAttachments(attachments, rows); - } - - } - - { - for (SpeciesBatch speciesBatch : operationContext.getRootSpeciesBatch().getChildren()) { - List<Attachment> attachments = exportContext.getAttachements(speciesBatch); - addAttachments(attachments, rows); - } - } - - { - for (MarineLitterBatch marineLitterBatch : operationContext.getRootMarineLitterBatch().getChildren()) { - List<Attachment> attachments = exportContext.getAttachements(marineLitterBatch); - addAttachments(attachments, rows); - } - } - - } - - return rows; - - } - - @Override public void write(List<AttachmentRow> rows) throws Exception { super.write(rows); @@ -123,7 +44,7 @@ public class CsvProducerForAttachment extends CsvProducer<AttachmentRow, Attachm } } - protected void addAttachments(List<Attachment> attachments, List<AttachmentRow> rows) { + public void addAttachments(List<Attachment> attachments, List<AttachmentRow> rows) { for (Attachment attachment : attachments) { diff --git a/tutti-service/src/main/resources/i18n/tutti-service_fr_FR.properties b/tutti-service/src/main/resources/i18n/tutti-service_fr_FR.properties index 81aea77..88950e6 100644 --- a/tutti-service/src/main/resources/i18n/tutti-service_fr_FR.properties +++ b/tutti-service/src/main/resources/i18n/tutti-service_fr_FR.properties @@ -166,7 +166,7 @@ tutti.service.genericFormat.import.temporaryVessels=Import des références temp tutti.service.genericFormat.importError.archiveNotSane=L'archive ne respecte pas le format de l'import générique \:\n%s tutti.service.genericFormat.importError.missArchiveFile=Il manque le fichier %s dans l'archive tutti.service.genericFormat.invalid.cruise=Erreur d'élévation de poids sur les traits de la campagne %s \:<ul>%s</ul> -tutti.service.genericFormat.invalid.fishingOperation=<li>L'élévation des poids ne peut pas être réalisée sur le trait %s, pour la raison suivante \:<ul><li>%s</li></ul></li> +tutti.service.genericFormat.invalid.fishingOperation=L'élévation des poids ne peut pas être réalisée sur le trait %s, pour la raison suivante \:<ul>%s</ul> tutti.service.genericFormat.load.attachments= tutti.service.genericFormat.load.protocol=Import du protocol tutti.service.genericFormat.persist.cruise=Sauvegarde de la campagne <strong>%s</strong> -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch develop in repository tutti. See http://git.codelutin.com/tutti.git commit 04ac0f0343d5fd98bc2b49ea539df05058b08917 Merge: 6f42ce0 9390469 Author: Tony CHEMIT <chemit@codelutin.com> Date: Sat Mar 28 16:18:30 2015 +0100 fixes #6876: [EXPORT GENERIQUE] L'export n'est plus produit si une erreur d'élévation se produit Merge branch 'feature/6876' into develop .../GenericFormatExportActionEngine.java | 162 +++++++++ .../genericformat/GenericFormatExportContext.java | 202 +++-------- .../GenericFormatExportOperationContext.java | 30 +- .../genericformat/GenericFormatExportService.java | 376 ++------------------- .../CreateAccidentalCatchRowsAction.java | 61 ++++ .../exportactions/CreateCatchBatchRowsAction.java | 174 ++++++++++ .../CreateIndividualObservationRowsAction.java | 60 ++++ .../CreateMarineLitterRowsAction.java | 61 ++++ .../exportactions/CreateOperationRowsAction.java | 69 ++++ .../exportactions/CreateParameterRowsAction.java | 29 ++ .../exportactions/ExportCruiseActionSupport.java | 23 ++ .../ExportFishingOperationActionSupport.java | 16 + .../ExportGearCaracteristicAction.java | 60 ++++ .../exportactions/ExportProtocolAction.java | 41 +++ .../exportactions/ExportReferentialGearAction.java | 46 +++ .../ExportReferentialPersonAction.java | 46 +++ .../ExportReferentialSpeciesAction.java | 46 +++ .../ExportReferentialVesselAction.java | 47 +++ .../ExportSampleCategoryModelAction.java | 39 +++ .../exportactions/ExportSpeciesUsedAction.java | 36 ++ .../exportactions/ExportSurveyAction.java | 65 ++++ .../ExportTechnicalActionSupport.java | 15 + .../exportactions/FinalizeExportAction.java | 49 +++ .../exportactions/FlushOperationAction.java | 38 +++ .../producer/CsvProducerForAttachment.java | 81 +---- .../producer/CsvProducerForCatch.java | 6 +- .../resources/i18n/tutti-service_fr_FR.properties | 2 +- 27 files changed, 1282 insertions(+), 598 deletions(-) -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch develop in repository tutti. See http://git.codelutin.com/tutti.git commit d4d4bac01caac6fdc4a0fa944352e164edf47830 Author: Tony CHEMIT <chemit@codelutin.com> Date: Sat Mar 28 16:19:13 2015 +0100 fixes #6882: [IMPORT GENERIQUE] On ne peut pas ouvrir les rapports d'import --- .../swing/content/genericformat/actions/GenericFormatImportAction.java | 2 +- .../content/genericformat/actions/GenericFormatValidateAction.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/genericformat/actions/GenericFormatImportAction.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/genericformat/actions/GenericFormatImportAction.java index cc33f98..1886e91 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/genericformat/actions/GenericFormatImportAction.java +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/genericformat/actions/GenericFormatImportAction.java @@ -126,7 +126,7 @@ public class GenericFormatImportAction extends LongActionSupport<GenericFormatIm @Override public void doAction() throws Exception { - getModel().setImportReportFile(getConfig().newTempFile("genericFormatImportReport", "pdf")); + getModel().setImportReportFile(getConfig().newTempFile("genericFormatImportReport", ".pdf")); GenericFormatImportConfiguration configuration = getModel().toImportConfiguration(); diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/genericformat/actions/GenericFormatValidateAction.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/genericformat/actions/GenericFormatValidateAction.java index f7a1276..3639ba7 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/genericformat/actions/GenericFormatValidateAction.java +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/genericformat/actions/GenericFormatValidateAction.java @@ -83,7 +83,7 @@ public class GenericFormatValidateAction extends LongActionSupport<GenericFormat @Override public void doAction() throws Exception { - getModel().setValidateReportFile(getConfig().newTempFile("genericFormatValidateReport", "pdf")); + getModel().setValidateReportFile(getConfig().newTempFile("genericFormatValidateReport", ".pdf")); GenericFormatImportConfiguration configuration = getModel().toValidateImportFileConfiguration(); -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
participants (1)
-
codelutin.com scm