r1099 - in trunk/tutti-service/src: main/java/fr/ifremer/tutti/service main/java/fr/ifremer/tutti/service/export test/java/fr/ifremer/tutti/service/export
Author: tchemit Date: 2013-06-11 16:39:12 +0200 (Tue, 11 Jun 2013) New Revision: 1099 Url: http://forge.codelutin.com/projects/tutti/repository/revisions/1099 Log: refs #2693: [EXPORT GENERIQUE] lot uniquement avec un nombre d'individus : la valeur du nombre n'est pas dans l'export catch.csv Modified: trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/TuttiCsvUtil.java trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/export/AccidentalCatchExportModel.java trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/export/CatchExportModel.java trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/export/IndividualObservationExportModel.java trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/export/MarineLitterExportModel.java trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/export/MarineLitterExportRow.java trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/export/OperationExportModel.java trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/export/OperationExportRow.java trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/export/ParameterExportModel.java trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/export/ParameterExportRow.java trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/export/SurveyExportModel.java trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/export/SurveyExportRow.java trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/export/TuttiExportService.java trunk/tutti-service/src/test/java/fr/ifremer/tutti/service/export/TuttiExportServiceTest.java Modified: trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/TuttiCsvUtil.java =================================================================== --- trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/TuttiCsvUtil.java 2013-06-11 13:29:41 UTC (rev 1098) +++ trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/TuttiCsvUtil.java 2013-06-11 14:39:12 UTC (rev 1099) @@ -30,6 +30,7 @@ import fr.ifremer.tutti.TuttiTechnicalException; import fr.ifremer.tutti.persistence.entities.TuttiEntity; import fr.ifremer.tutti.persistence.entities.referential.CaracteristicQualitativeValue; +import fr.ifremer.tutti.persistence.entities.referential.Gear; import fr.ifremer.tutti.persistence.entities.referential.Person; import org.apache.commons.beanutils.BeanUtilsBean; import org.apache.commons.beanutils.NestedNullException; @@ -300,6 +301,9 @@ public static final ValueFormatter<List<Person>> LIST_PERSON_FORMATTER = new ListPersonValueFormatter(); + public static final ValueFormatter<List<Gear>> LIST_GEAR_FORMATTER = + new ListGearValueFormatter(); + public static <E> BeanPropertyFormatter<E> newBeanFormatter(String propertyName, String defaultNullValue) { return new BeanPropertyFormatter<E>(propertyName, defaultNullValue); @@ -417,6 +421,20 @@ } } + protected static class ListGearValueFormatter implements ValueFormatter<List<Gear>> { + + @Override + public String format(List<Gear> value) { + List<String> decoratedValues = + Lists.transform(value, new Function<Gear, String>() { + @Override + public String apply(Gear input) { + return input.getLabel() + ' ' + input.getName(); + } + }); + return Joiner.on('|').join(decoratedValues); + } + } protected TuttiCsvUtil() { // no instance } Modified: trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/export/AccidentalCatchExportModel.java =================================================================== --- trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/export/AccidentalCatchExportModel.java 2013-06-11 13:29:41 UTC (rev 1098) +++ trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/export/AccidentalCatchExportModel.java 2013-06-11 14:39:12 UTC (rev 1099) @@ -75,9 +75,9 @@ newColumnForExport("Serie", Cruise.PROPERTY_PROGRAM, Program.PROPERTY_NAME); newColumnForExport("Serie_Partielle", Cruise.PROPERTY_SURVEY_PART); newColumnForExport("Engin", FishingOperation.PROPERTY_GEAR, Gear.PROPERTY_NAME); - newColumnForExport("Poche", FishingOperation.PROPERTY_MULTIRIG_AGGREGATION); newColumnForExport("Id_Operation", FishingOperation.PROPERTY_STATION_NUMBER); newColumnForExport("NumOrdre_Station", FishingOperation.PROPERTY_FISHING_OPERATION_NUMBER, TuttiCsvUtil.INTEGER); + newColumnForExport("Poche", FishingOperation.PROPERTY_MULTIRIG_AGGREGATION); newColumnForExport("Navire", Cruise.PROPERTY_VESSEL, Vessel.PROPERTY_NAME); newColumnForExport("BatchId", AccidentalCatchExportRow.PROPERTY_BATCH_ID, TuttiCsvUtil.PRIMITIVE_INTEGER); Modified: trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/export/CatchExportModel.java =================================================================== --- trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/export/CatchExportModel.java 2013-06-11 13:29:41 UTC (rev 1098) +++ trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/export/CatchExportModel.java 2013-06-11 14:39:12 UTC (rev 1099) @@ -66,9 +66,9 @@ newColumnForExport("Serie", Cruise.PROPERTY_PROGRAM, Program.PROPERTY_NAME); newColumnForExport("Serie_Partielle", Cruise.PROPERTY_SURVEY_PART); newColumnForExport("Engin", FishingOperation.PROPERTY_GEAR, Gear.PROPERTY_NAME); - newColumnForExport("Poche", FishingOperation.PROPERTY_MULTIRIG_AGGREGATION); newColumnForExport("Id_Operation", FishingOperation.PROPERTY_STATION_NUMBER); newColumnForExport("NumOrdre_Station", FishingOperation.PROPERTY_FISHING_OPERATION_NUMBER, TuttiCsvUtil.INTEGER); + newColumnForExport("Poche", FishingOperation.PROPERTY_MULTIRIG_AGGREGATION); newColumnForExport("Navire", Cruise.PROPERTY_VESSEL, Vessel.PROPERTY_NAME); newColumnForExport("Taxon", SpeciesBatch.PROPERTY_SPECIES + "." + Species.PROPERTY_REFERENCE_TAXON_ID, TuttiCsvUtil.INTEGER); @@ -168,7 +168,6 @@ speciesBatch.getSampleCategoryComputedWeight(), speciesBatch.getWeight(), speciesBatch.getNumber(), -// speciesBatch.getComputedNumber(), speciesBatch.getRankOrder()); if (speciesBatch.isChildBatchsEmpty()) { @@ -259,7 +258,6 @@ speciesBatch.getSampleCategoryComputedWeight(), speciesBatch.getWeight(), speciesBatch.getNumber(), -// speciesBatch.getComputedNumber(), speciesBatch.getRankOrder()); CatchExportRow row = currentRow.copy(); @@ -281,7 +279,6 @@ benthosBatch.getSampleCategoryComputedWeight(), benthosBatch.getWeight(), benthosBatch.getNumber(), -// benthosBatch.getComputedNumber(), benthosBatch.getRankOrder()); if (benthosBatch.isChildBatchsEmpty()) { @@ -372,7 +369,6 @@ benthosBatch.getSampleCategoryComputedWeight(), benthosBatch.getWeight(), benthosBatch.getNumber(), -// benthosBatch.getComputedNumber(), benthosBatch.getRankOrder()); CatchExportRow row = currentRow.copy(); @@ -396,9 +392,7 @@ Float sampleCategoryComputedWeight, Float batchWeight, Integer batchNumber, -// Integer batchComputedNumber, - Integer batchRankOrder - ) { + Integer batchRankOrder) { currentRow.setBatchNumber(batchNumber); ExportSampleCategory<Serializable> sampleCategory = @@ -411,7 +405,6 @@ sampleCategory.setSampleWeight(batchWeight); sampleCategory.setComputedWeight(sampleCategoryComputedWeight); -// sampleCategory.setComputedNumber(batchComputedNumber); sampleCategory.setWeightOrVolType(WEIGHT_OR_VOL_TYPE); sampleCategory.setRankOrder(batchRankOrder); Modified: trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/export/IndividualObservationExportModel.java =================================================================== --- trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/export/IndividualObservationExportModel.java 2013-06-11 13:29:41 UTC (rev 1098) +++ trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/export/IndividualObservationExportModel.java 2013-06-11 14:39:12 UTC (rev 1099) @@ -75,9 +75,9 @@ newColumnForExport("Serie", Cruise.PROPERTY_PROGRAM, Program.PROPERTY_NAME); newColumnForExport("Serie_Partielle", Cruise.PROPERTY_SURVEY_PART); newColumnForExport("Engin", FishingOperation.PROPERTY_GEAR, Gear.PROPERTY_NAME); - newColumnForExport("Poche", FishingOperation.PROPERTY_MULTIRIG_AGGREGATION); newColumnForExport("Id_Operation", FishingOperation.PROPERTY_STATION_NUMBER); newColumnForExport("NumOrdre_Station", FishingOperation.PROPERTY_FISHING_OPERATION_NUMBER, TuttiCsvUtil.INTEGER); + newColumnForExport("Poche", FishingOperation.PROPERTY_MULTIRIG_AGGREGATION); newColumnForExport("Navire", Cruise.PROPERTY_VESSEL, Vessel.PROPERTY_NAME); newColumnForExport("BatchId", IndividualObservationExportRow.PROPERTY_BATCH_ID, TuttiCsvUtil.PRIMITIVE_INTEGER); Modified: trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/export/MarineLitterExportModel.java =================================================================== --- trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/export/MarineLitterExportModel.java 2013-06-11 13:29:41 UTC (rev 1098) +++ trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/export/MarineLitterExportModel.java 2013-06-11 14:39:12 UTC (rev 1099) @@ -25,7 +25,6 @@ */ import fr.ifremer.tutti.persistence.entities.data.BatchContainer; -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.MarineLitterBatch; @@ -53,9 +52,9 @@ newColumnForExport("Serie", Cruise.PROPERTY_PROGRAM, Program.PROPERTY_NAME); newColumnForExport("Serie_Partielle", Cruise.PROPERTY_SURVEY_PART); newColumnForExport("Engin", FishingOperation.PROPERTY_GEAR, Gear.PROPERTY_NAME); - newColumnForExport("Poche", FishingOperation.PROPERTY_MULTIRIG_AGGREGATION); newColumnForExport("Id_Operation", FishingOperation.PROPERTY_STATION_NUMBER); newColumnForExport("NumOrdre_Station", FishingOperation.PROPERTY_FISHING_OPERATION_NUMBER, TuttiCsvUtil.INTEGER); + newColumnForExport("Poche", FishingOperation.PROPERTY_MULTIRIG_AGGREGATION); newColumnForExport("Navire", Cruise.PROPERTY_VESSEL, Vessel.PROPERTY_NAME); newColumnForExport("MarineLitterCategory", MarineLitterBatch.PROPERTY_MARINE_LITTER_CATEGORY, TuttiCsvUtil.CARACTERISTIC_VALUE_FORMATTER); @@ -63,7 +62,6 @@ newColumnForExport("Number", MarineLitterBatch.PROPERTY_NUMBER, TuttiCsvUtil.INTEGER); newColumnForExport("Weight", MarineLitterBatch.PROPERTY_WEIGHT, TuttiCsvUtil.FLOAT); newColumnForExport("Comment", MarineLitterBatch.PROPERTY_COMMENT); - newColumnForExport("TotalWeight", MarineLitterExportRow.PROPERTY_TOTAL_WEIGHT, TuttiCsvUtil.FLOAT); } public void prepareRows(PersistenceService persistenceService, @@ -71,9 +69,6 @@ Cruise cruise, FishingOperation operation) { - CatchBatch catchBatch = - persistenceService.getCatchBatchFromFishingOperation(operation.getId()); - BatchContainer<MarineLitterBatch> rootMarineLitterBatch = persistenceService.getRootMarineLitterBatch(operation.getId()); @@ -84,7 +79,6 @@ row.setCruise(cruise); row.setFishingOperation(operation); row.setBatch(child); - row.setTotalWeight(catchBatch.getMarineLitterTotalWeight()); rows.add(row); } } Modified: trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/export/MarineLitterExportRow.java =================================================================== --- trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/export/MarineLitterExportRow.java 2013-06-11 13:29:41 UTC (rev 1098) +++ trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/export/MarineLitterExportRow.java 2013-06-11 14:39:12 UTC (rev 1099) @@ -55,16 +55,6 @@ protected MarineLitterBatch batch; - protected Float totalWeight; - - public Float getTotalWeight() { - return totalWeight; - } - - public void setTotalWeight(Float totalWeight) { - this.totalWeight = totalWeight; - } - public void setCruise(Cruise cruise) { this.cruise = cruise; } Modified: trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/export/OperationExportModel.java =================================================================== --- trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/export/OperationExportModel.java 2013-06-11 13:29:41 UTC (rev 1098) +++ trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/export/OperationExportModel.java 2013-06-11 14:39:12 UTC (rev 1099) @@ -24,6 +24,7 @@ * #L% */ +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; @@ -63,6 +64,7 @@ newColumnForExport("Serie_Partielle", Cruise.PROPERTY_SURVEY_PART); newColumnForExport("Id_Operation", FishingOperation.PROPERTY_STATION_NUMBER); newColumnForExport("NumOrdre_Station", FishingOperation.PROPERTY_FISHING_OPERATION_NUMBER, TuttiCsvUtil.INTEGER); + newColumnForExport("Poche", FishingOperation.PROPERTY_MULTIRIG_AGGREGATION); newColumnForExport("Engin", FishingOperation.PROPERTY_GEAR, Gear.PROPERTY_NAME); newColumnForExport("Navire", FishingOperation.PROPERTY_VESSEL, Vessel.PROPERTY_NAME); @@ -82,22 +84,74 @@ newColumnForExport("Ouv_Verticale", OperationExportRow.PROPERTY_VERTICAL_OPENING_GEAR_USE_FEATURE, TuttiCsvUtil.CARACTERISTIC_VALUE_FORMATTER); newColumnForExport("Ouv_Horizontale_Ailes", OperationExportRow.PROPERTY_HORIZONTAL_OPENING_WING_GEAR_USE_FEATURE, TuttiCsvUtil.CARACTERISTIC_VALUE_FORMATTER); newColumnForExport("Ouv_Horizontale_Panneaux", OperationExportRow.PROPERTY_HORIZONTAL_OPENING_DOOR_GEAR_USE_FEATURE, TuttiCsvUtil.CARACTERISTIC_VALUE_FORMATTER); + newColumnForExport("Saisisseur", FishingOperation.PROPERTY_RECORDER_PERSON, TuttiCsvUtil.LIST_PERSON_FORMATTER); newColumnForExport("Commentaire", FishingOperation.PROPERTY_COMMENT); + + newColumnForExport("Poids_Total", OperationExportRow.PROPERTY_CATCH_TOTAL_WEIGHT, TuttiCsvUtil.FLOAT); + newColumnForExport("Poids_Total_Calcule", OperationExportRow.PROPERTY_CATCH_TOTAL_WEIGHT_COMPUTED, TuttiCsvUtil.BOOLEAN); + + newColumnForExport("Poids_Total_Vrac", OperationExportRow.PROPERTY_CATCH_TOTAL_SORTED_WEIGHT, TuttiCsvUtil.FLOAT); + newColumnForExport("Poids_Total_Vrac_Calcule", OperationExportRow.PROPERTY_CATCH_TOTAL_SORTED_WEIGHT_COMPUTED, TuttiCsvUtil.BOOLEAN); + + newColumnForExport("Poids_Total_HorsVrac", OperationExportRow.PROPERTY_CATCH_TOTAL_UNSORTED_WEIGHT, TuttiCsvUtil.FLOAT); + newColumnForExport("Poids_Total_HorsVrac_Calcule", OperationExportRow.PROPERTY_CATCH_TOTAL_UNSORTED_WEIGHT_COMPUTED, TuttiCsvUtil.BOOLEAN); + + newColumnForExport("Poids_Total_Non_Trie", OperationExportRow.PROPERTY_CATCH_TOTAL_REJECTED_WEIGHT, TuttiCsvUtil.FLOAT); + newColumnForExport("Poids_Total_Non_Trie_Calcule", OperationExportRow.PROPERTY_CATCH_TOTAL_REJECTED_WEIGHT_COMPUTED, TuttiCsvUtil.BOOLEAN); + + newColumnForExport("Poids_Total_Espece", OperationExportRow.PROPERTY_SPECIES_TOTAL_WEIGHT, TuttiCsvUtil.FLOAT); + newColumnForExport("Poids_Total_Espece_Calcule", OperationExportRow.PROPERTY_SPECIES_TOTAL_WEIGHT_COMPUTED, TuttiCsvUtil.BOOLEAN); + + newColumnForExport("Poids_Total_Espece_Vrac", OperationExportRow.PROPERTY_SPECIES_TOTAL_SORTED_WEIGHT, TuttiCsvUtil.FLOAT); + newColumnForExport("Poids_Total_Espece_Vrac_Calcule", OperationExportRow.PROPERTY_SPECIES_TOTAL_SORTED_WEIGHT_COMPUTED, TuttiCsvUtil.BOOLEAN); + + newColumnForExport("Poids_Total_Espece_Vrac_Trie", OperationExportRow.PROPERTY_SPECIES_TOTAL_SAMPLE_SORTED_WEIGHT, TuttiCsvUtil.FLOAT); + newColumnForExport("Poids_Total_Espece_Vrac_Trie_Calcule", OperationExportRow.PROPERTY_SPECIES_TOTAL_SAMPLE_SORTED_WEIGHT_COMPUTED, TuttiCsvUtil.BOOLEAN); + + newColumnForExport("Poids_Total_Espece_HorsVrac", OperationExportRow.PROPERTY_SPECIES_TOTAL_UNSORTED_WEIGHT, TuttiCsvUtil.FLOAT); + newColumnForExport("Poids_Total_Espece_HorsVrac_Calcule", OperationExportRow.PROPERTY_SPECIES_TOTAL_UNSORTED_WEIGHT_COMPUTED, TuttiCsvUtil.BOOLEAN); + + newColumnForExport("Poids_Total_Espece_Inerte_Trie", OperationExportRow.PROPERTY_SPECIES_TOTAL_INERT_WEIGHT, TuttiCsvUtil.FLOAT); + newColumnForExport("Poids_Total_Espece_Inerte_Trie_Calcule", OperationExportRow.PROPERTY_SPECIES_TOTAL_INERT_WEIGHT_COMPUTED, TuttiCsvUtil.BOOLEAN); + + newColumnForExport("Poids_Total_Espece_Vivant_non_detaille_trie", OperationExportRow.PROPERTY_SPECIES_TOTAL_LIVING_NOT_ITEMIZED_WEIGHT, TuttiCsvUtil.FLOAT); + newColumnForExport("Poids_Total_Espece_Vivant_non_detaille_trie_Calcule", OperationExportRow.PROPERTY_SPECIES_TOTAL_LIVING_NOT_ITEMIZED_WEIGHT_COMPUTED, TuttiCsvUtil.BOOLEAN); + + newColumnForExport("Poids_Total_Benthos", OperationExportRow.PROPERTY_BENTHOS_TOTAL_WEIGHT, TuttiCsvUtil.FLOAT); + newColumnForExport("Poids_Total_Benthos_Calcule", OperationExportRow.PROPERTY_BENTHOS_TOTAL_WEIGHT_COMPUTED, TuttiCsvUtil.BOOLEAN); + + newColumnForExport("Poids_Total_Benthos_Vrac", OperationExportRow.PROPERTY_BENTHOS_TOTAL_SORTED_WEIGHT, TuttiCsvUtil.FLOAT); + newColumnForExport("Poids_Total_Benthos_Vrac_Calcule", OperationExportRow.PROPERTY_BENTHOS_TOTAL_SORTED_WEIGHT_COMPUTED, TuttiCsvUtil.BOOLEAN); + + newColumnForExport("Poids_Total_Benthos_Vrac_Trie", OperationExportRow.PROPERTY_BENTHOS_TOTAL_SAMPLE_SORTED_WEIGHT, TuttiCsvUtil.FLOAT); + newColumnForExport("Poids_Total_Benthos_Vrac_Trie_Calcule", OperationExportRow.PROPERTY_BENTHOS_TOTAL_SAMPLE_SORTED_WEIGHT_COMPUTED, TuttiCsvUtil.BOOLEAN); + + newColumnForExport("Poids_Total_Benthos_HorsVrac", OperationExportRow.PROPERTY_BENTHOS_TOTAL_UNSORTED_WEIGHT, TuttiCsvUtil.FLOAT); + newColumnForExport("Poids_Total_Benthos_HorsVrac_Calcule", OperationExportRow.PROPERTY_BENTHOS_TOTAL_UNSORTED_WEIGHT_COMPUTED, TuttiCsvUtil.BOOLEAN); + + newColumnForExport("Poids_Total_Benthos_Inerte_Trie", OperationExportRow.PROPERTY_BENTHOS_TOTAL_INERT_WEIGHT, TuttiCsvUtil.FLOAT); + newColumnForExport("Poids_Total_Benthos_Inerte_Trie_Calcule", OperationExportRow.PROPERTY_BENTHOS_TOTAL_INERT_WEIGHT_COMPUTED, TuttiCsvUtil.BOOLEAN); + + newColumnForExport("Poids_Total_Benthos_Vivant_non_detaille_trie", OperationExportRow.PROPERTY_BENTHOS_TOTAL_LIVING_NOT_ITEMIZED_WEIGHT, TuttiCsvUtil.FLOAT); + newColumnForExport("Poids_Total_Benthos_Vivant_non_detaille_trie_Calcule", OperationExportRow.PROPERTY_BENTHOS_TOTAL_LIVING_NOT_ITEMIZED_WEIGHT_COMPUTED, TuttiCsvUtil.BOOLEAN); + + newColumnForExport("Poids_Total_Macro_Dechet", OperationExportRow.PROPERTY_MARINE_LITTER_TOTAL_WEIGHT, TuttiCsvUtil.FLOAT); + newColumnForExport("Poids_Total_Macro_Dechet_Calcule", OperationExportRow.PROPERTY_MARINE_LITTER_TOTAL_WEIGHT_COMPUTED, TuttiCsvUtil.BOOLEAN); } public void prepareRows(List<OperationExportRow> rows, Cruise cruise, - List<FishingOperation> operations) { + FishingOperation operation, + CatchBatch catchBatch) { - for (FishingOperation operation : operations) { + OperationExportRow row = new OperationExportRow( + verticalOpeningCaracteristic, + horizontalOpeningWingCaracteristic, + horizontalOpeningDoorCaracteristic); + row.setCruise(cruise); + row.setFishingOperation(operation); + row.setCatchBatch(catchBatch); + rows.add(row); - OperationExportRow row = new OperationExportRow( - verticalOpeningCaracteristic, - horizontalOpeningWingCaracteristic, - horizontalOpeningDoorCaracteristic); - row.setCruise(cruise); - row.setFishingOperation(operation); - rows.add(row); - } } } \ No newline at end of file Modified: trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/export/OperationExportRow.java =================================================================== --- trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/export/OperationExportRow.java 2013-06-11 13:29:41 UTC (rev 1098) +++ trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/export/OperationExportRow.java 2013-06-11 14:39:12 UTC (rev 1099) @@ -26,16 +26,19 @@ import fr.ifremer.tutti.persistence.entities.CaracteristicMap; import fr.ifremer.tutti.persistence.entities.TuttiEntities; +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.referential.Caracteristic; import fr.ifremer.tutti.persistence.entities.referential.Gear; +import fr.ifremer.tutti.persistence.entities.referential.Person; import fr.ifremer.tutti.persistence.entities.referential.TuttiLocation; import fr.ifremer.tutti.persistence.entities.referential.Vessel; import java.io.Serializable; import java.util.Date; +import java.util.List; /** * A row in a operation export. @@ -53,13 +56,91 @@ public static final String PROPERTY_HORIZONTAL_OPENING_DOOR_GEAR_USE_FEATURE = "horizontalOpeningDoorGearUseFeature"; + public static final String PROPERTY_CATCH_TOTAL_WEIGHT = "catchTotalWeight"; + public static final String PROPERTY_CATCH_TOTAL_WEIGHT_COMPUTED = "catchTotalWeightComputed"; + + public static final String PROPERTY_CATCH_TOTAL_SORTED_TREMIS_WEIGHT = "catchTotalSortedTremisWeight"; + + public static final String PROPERTY_CATCH_TOTAL_SORTED_TREMIS_WEIGHT_COMPUTED = "catchTotalSortedTremisWeightComputed"; + + public static final String PROPERTY_CATCH_TOTAL_SORTED_CAROUSSEL_WEIGHT = "catchTotalSortedCarousselWeight"; + + public static final String PROPERTY_CATCH_TOTAL_SORTED_CAROUSSEL_WEIGHT_COMPUTED = "catchTotalSortedCarousselWeightComputed"; + + public static final String PROPERTY_CATCH_TOTAL_SORTED_WEIGHT = "catchTotalSortedWeight"; + + public static final String PROPERTY_CATCH_TOTAL_SORTED_WEIGHT_COMPUTED = "catchTotalSortedWeightComputed"; + + public static final String PROPERTY_CATCH_TOTAL_UNSORTED_WEIGHT = "catchTotalUnsortedWeight"; + + public static final String PROPERTY_CATCH_TOTAL_UNSORTED_WEIGHT_COMPUTED = "catchTotalUnsortedWeightComputed"; + + public static final String PROPERTY_CATCH_TOTAL_REJECTED_WEIGHT = "catchTotalRejectedWeight"; + + public static final String PROPERTY_CATCH_TOTAL_REJECTED_WEIGHT_COMPUTED = "catchTotalRejectedWeightComputed"; + + + public static final String PROPERTY_SPECIES_TOTAL_WEIGHT = "speciesTotalWeight"; + + public static final String PROPERTY_SPECIES_TOTAL_WEIGHT_COMPUTED = "speciesTotalWeightComputed"; + + public static final String PROPERTY_SPECIES_TOTAL_SORTED_WEIGHT = "speciesTotalSortedWeight"; + + public static final String PROPERTY_SPECIES_TOTAL_SORTED_WEIGHT_COMPUTED = "speciesTotalSortedWeightComputed"; + + public static final String PROPERTY_SPECIES_TOTAL_UNSORTED_WEIGHT = "speciesTotalUnsortedWeight"; + + public static final String PROPERTY_SPECIES_TOTAL_UNSORTED_WEIGHT_COMPUTED = "speciesTotalUnsortedWeightComputed"; + + public static final String PROPERTY_SPECIES_TOTAL_SAMPLE_SORTED_WEIGHT = "speciesTotalSampleSortedWeight"; + + public static final String PROPERTY_SPECIES_TOTAL_SAMPLE_SORTED_WEIGHT_COMPUTED = "speciesTotalSampleSortedWeightComputed"; + + public static final String PROPERTY_SPECIES_TOTAL_INERT_WEIGHT = "speciesTotalInertWeight"; + + public static final String PROPERTY_SPECIES_TOTAL_INERT_WEIGHT_COMPUTED = "speciesTotalInertWeightComputed"; + + public static final String PROPERTY_SPECIES_TOTAL_LIVING_NOT_ITEMIZED_WEIGHT = "speciesTotalLivingNotItemizedWeight"; + + public static final String PROPERTY_SPECIES_TOTAL_LIVING_NOT_ITEMIZED_WEIGHT_COMPUTED = "speciesTotalLivingNotItemizedWeightComputed"; + + public static final String PROPERTY_BENTHOS_TOTAL_WEIGHT = "benthosTotalWeight"; + + public static final String PROPERTY_BENTHOS_TOTAL_WEIGHT_COMPUTED = "benthosTotalWeightComputed"; + + public static final String PROPERTY_BENTHOS_TOTAL_SORTED_WEIGHT = "benthosTotalSortedWeight"; + + public static final String PROPERTY_BENTHOS_TOTAL_SORTED_WEIGHT_COMPUTED = "benthosTotalSortedWeightComputed"; + + public static final String PROPERTY_BENTHOS_TOTAL_UNSORTED_WEIGHT = "benthosTotalUnsortedWeight"; + + public static final String PROPERTY_BENTHOS_TOTAL_UNSORTED_WEIGHT_COMPUTED = "benthosTotalUnsortedWeightComputed"; + + public static final String PROPERTY_BENTHOS_TOTAL_SAMPLE_SORTED_WEIGHT = "benthosTotalSampleSortedWeight"; + + public static final String PROPERTY_BENTHOS_TOTAL_SAMPLE_SORTED_WEIGHT_COMPUTED = "benthosTotalSampleSortedWeightComputed"; + + public static final String PROPERTY_BENTHOS_TOTAL_INERT_WEIGHT = "benthosTotalInertWeight"; + + public static final String PROPERTY_BENTHOS_TOTAL_INERT_WEIGHT_COMPUTED = "benthosTotalInertWeightComputed"; + + public static final String PROPERTY_BENTHOS_TOTAL_LIVING_NOT_ITEMIZED_WEIGHT = "benthosTotalLivingNotItemizedWeight"; + + public static final String PROPERTY_BENTHOS_TOTAL_LIVING_NOT_ITEMIZED_WEIGHT_COMPUTED = "benthosTotalLivingNotItemizedWeightComputed"; + + public static final String PROPERTY_MARINE_LITTER_TOTAL_WEIGHT = "marineLitterTotalWeight"; + + public static final String PROPERTY_MARINE_LITTER_TOTAL_WEIGHT_COMPUTED = "marineLitterTotalWeightComputed"; + private static final long serialVersionUID = 1L; protected Cruise cruise; protected FishingOperation fishingOperation; + protected CatchBatch catchBatch; + private Caracteristic verticalOpeningCaracteristic; private Caracteristic horizontalOpeningWingCaracteristic; @@ -83,6 +164,10 @@ this.fishingOperation = fishingOperation; } + public void setCatchBatch(CatchBatch catchBatch) { + this.catchBatch = catchBatch; + } + public Date getBeginDate() { return cruise.getBeginDate(); } @@ -103,6 +188,10 @@ return fishingOperation.getFishingOperationNumber(); } + public String getMultirigAggregation() { + return fishingOperation.getMultirigAggregation(); + } + public Gear getGear() { return fishingOperation.getGear(); } @@ -163,6 +252,10 @@ return fishingOperation.getComment(); } + public List<Person> getRecorderPerson() { + return fishingOperation.getRecorderPerson(); + } + public String getDuration() { return TuttiEntities.getDuration( getGearShootingStartDate(), @@ -185,6 +278,173 @@ return result; } + public Float getCatchTotalWeight() { + return getValueOrComputedValue(catchBatch.getCatchTotalWeight(), catchBatch.getCatchTotalComputedWeight()); + } + + public Boolean getCatchTotalWeightComputed() { + return getValueOrComputedValueComputed(catchBatch.getCatchTotalWeight(), catchBatch.getCatchTotalComputedWeight()); + } + + public Float getCatchTotalSortedTremisWeight() { + return getValueOrComputedValue(catchBatch.getCatchTotalSortedTremisWeight(), null); + } + + public Boolean getCatchTotalSortedTremisWeightComputed() { + return getValueOrComputedValueComputed(catchBatch.getCatchTotalSortedTremisWeight(), null); + } + + public Float getCatchTotalSortedCarousselWeight() { + return getValueOrComputedValue(catchBatch.getCatchTotalSortedCarousselWeight(), null); + } + + public Boolean getCatchTotalSortedCarousselWeightComputed() { + return getValueOrComputedValueComputed(catchBatch.getCatchTotalSortedCarousselWeight(), null); + } + + public Float getCatchTotalSortedWeight() { + return getValueOrComputedValue(null, catchBatch.getCatchTotalSortedComputedWeight()); + } + + public Boolean getCatchTotalSortedWeightComputed() { + return getValueOrComputedValueComputed(null, catchBatch.getCatchTotalSortedComputedWeight()); + } + + public Float getCatchTotalUnsortedWeight() { + return getValueOrComputedValue(null, catchBatch.getCatchTotalUnsortedComputedWeight()); + } + + public Boolean getCatchTotalUnsortedWeightComputed() { + return getValueOrComputedValueComputed(null, catchBatch.getCatchTotalUnsortedComputedWeight()); + } + + public Float getCatchTotalRejectedWeight() { + return getValueOrComputedValue(catchBatch.getCatchTotalRejectedWeight(), catchBatch.getCatchTotalRejectedComputedWeight()); + } + + public Boolean getCatchTotalRejectedWeightComputed() { + return getValueOrComputedValueComputed(catchBatch.getCatchTotalRejectedWeight(), catchBatch.getCatchTotalRejectedComputedWeight()); + } + + public Float getSpeciesTotalWeight() { + return getValueOrComputedValue(null, catchBatch.getSpeciesTotalComputedWeight()); + } + + public Boolean getSpeciesTotalWeightComputed() { + return getValueOrComputedValueComputed(null, catchBatch.getSpeciesTotalComputedWeight()); + } + + public Float getSpeciesTotalSortedWeight() { + return getValueOrComputedValue(catchBatch.getSpeciesTotalSortedWeight(), catchBatch.getSpeciesTotalSortedComputedWeight()); + } + + public Boolean getSpeciesTotalSortedWeightComputed() { + return getValueOrComputedValueComputed(catchBatch.getSpeciesTotalSortedWeight(), catchBatch.getSpeciesTotalSortedComputedWeight()); + } + + public Float getSpeciesTotalUnsortedWeight() { + return getValueOrComputedValue(null, catchBatch.getSpeciesTotalUnsortedComputedWeight()); + } + + public Boolean getSpeciesTotalUnsortedWeightComputed() { + return getValueOrComputedValueComputed(null, catchBatch.getSpeciesTotalUnsortedComputedWeight()); + } + + public Float getSpeciesTotalSampleSortedWeight() { + return getValueOrComputedValue(null, catchBatch.getSpeciesTotalSampleSortedComputedWeight()); + } + + public Boolean getSpeciesTotalSampleSortedWeightComputed() { + return getValueOrComputedValueComputed(null, catchBatch.getSpeciesTotalSampleSortedComputedWeight()); + } + + public Float getSpeciesTotalInertWeight() { + return getValueOrComputedValue(catchBatch.getSpeciesTotalInertWeight(), catchBatch.getSpeciesTotalInertComputedWeight()); + } + + public Boolean getSpeciesTotalInertWeightComputed() { + return getValueOrComputedValueComputed(catchBatch.getSpeciesTotalInertWeight(), catchBatch.getSpeciesTotalInertComputedWeight()); + } + + public Float getSpeciesTotalLivingNotItemizedWeight() { + return getValueOrComputedValue(catchBatch.getSpeciesTotalLivingNotItemizedWeight(), catchBatch.getSpeciesTotalLivingNotItemizedComputedWeight()); + } + + public Boolean getSpeciesTotalLivingNotItemizedWeightComputed() { + return getValueOrComputedValueComputed(catchBatch.getSpeciesTotalLivingNotItemizedWeight(), catchBatch.getSpeciesTotalLivingNotItemizedComputedWeight()); + } + + public Float getBenthosTotalWeight() { + return getValueOrComputedValue(null, catchBatch.getBenthosTotalComputedWeight()); + } + + public Boolean getBenthosTotalWeightComputed() { + return getValueOrComputedValueComputed(null, catchBatch.getBenthosTotalComputedWeight()); + } + + public Float getBenthosTotalSortedWeight() { + return getValueOrComputedValue(catchBatch.getBenthosTotalSortedWeight(), catchBatch.getBenthosTotalSortedComputedWeight()); + } + + public Boolean getBenthosTotalSortedWeightComputed() { + return getValueOrComputedValueComputed(catchBatch.getBenthosTotalSortedWeight(), catchBatch.getBenthosTotalSortedComputedWeight()); + } + + public Float getBenthosTotalUnsortedWeight() { + return getValueOrComputedValue(null, catchBatch.getBenthosTotalUnsortedComputedWeight()); + } + + public Boolean getBenthosTotalUnsortedWeightComputed() { + return getValueOrComputedValueComputed(null, catchBatch.getBenthosTotalUnsortedComputedWeight()); + } + + public Float getBenthosTotalSampleSortedWeight() { + return getValueOrComputedValue(null, catchBatch.getBenthosTotalSampleSortedComputedWeight()); + } + + public Boolean getBenthosTotalSampleSortedWeightComputed() { + return getValueOrComputedValueComputed(null, catchBatch.getBenthosTotalSampleSortedComputedWeight()); + } + + public Float getBenthosTotalInertWeight() { + return getValueOrComputedValue(catchBatch.getBenthosTotalInertWeight(), catchBatch.getBenthosTotalInertComputedWeight()); + } + + public Boolean getBenthosTotalInertWeightComputed() { + return getValueOrComputedValueComputed(catchBatch.getBenthosTotalInertWeight(), catchBatch.getBenthosTotalInertComputedWeight()); + } + + public Float getBenthosTotalLivingNotItemizedWeight() { + return getValueOrComputedValue(catchBatch.getBenthosTotalLivingNotItemizedWeight(), catchBatch.getBenthosTotalLivingNotItemizedComputedWeight()); + } + + public Boolean getBenthosTotalLivingNotItemizedWeightComputed() { + return getValueOrComputedValueComputed(catchBatch.getBenthosTotalLivingNotItemizedWeight(), catchBatch.getBenthosTotalLivingNotItemizedComputedWeight()); + } + + public Float getMarineLitterTotalWeight() { + return getValueOrComputedValue(catchBatch.getMarineLitterTotalWeight(), catchBatch.getMarineLitterTotalComputedWeight()); + } + + public Boolean getMarineLitterTotalWeightComputed() { + return getValueOrComputedValueComputed(catchBatch.getMarineLitterTotalWeight(), catchBatch.getMarineLitterTotalComputedWeight()); + } + + protected Float getValueOrComputedValue(Float value, Float computedValue) { + return value == null ? computedValue : value; + } + + protected Boolean getValueOrComputedValueComputed(Float value, Float computedValue) { + Boolean result; + if (value == null) { + + result = computedValue == null ? null : true; + } else { + result = true; + } + return result; + } + protected Serializable getGearUseFeature(Caracteristic caracteristic) { CaracteristicMap gearUseFeatures = fishingOperation.getGearUseFeatures(); Serializable serializable = gearUseFeatures == null ? null : gearUseFeatures.get(caracteristic); Modified: trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/export/ParameterExportModel.java =================================================================== --- trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/export/ParameterExportModel.java 2013-06-11 13:29:41 UTC (rev 1098) +++ trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/export/ParameterExportModel.java 2013-06-11 14:39:12 UTC (rev 1099) @@ -52,6 +52,7 @@ newColumnForExport("Serie_Partielle", Cruise.PROPERTY_SURVEY_PART); newColumnForExport("Id_Operation", FishingOperation.PROPERTY_STATION_NUMBER); newColumnForExport("NumOrdre_Station", FishingOperation.PROPERTY_FISHING_OPERATION_NUMBER, TuttiCsvUtil.INTEGER); + newColumnForExport("Poche", FishingOperation.PROPERTY_MULTIRIG_AGGREGATION); newColumnForExport("Code_PMFM", ParameterExportRow.PROPERTY_CARACTERISTIC, Caracteristic.PROPERTY_ID); newColumnForExportByDecorator("Libelle_PMFm", ParameterExportRow.PROPERTY_CARACTERISTIC, decoratorService.getDecoratorByType(Caracteristic.class)); Modified: trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/export/ParameterExportRow.java =================================================================== --- trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/export/ParameterExportRow.java 2013-06-11 13:29:41 UTC (rev 1098) +++ trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/export/ParameterExportRow.java 2013-06-11 14:39:12 UTC (rev 1099) @@ -91,6 +91,10 @@ return fishingOperation.getFishingOperationNumber(); } + public String getMultirigAggregation() { + return fishingOperation.getMultirigAggregation(); + } + public Caracteristic getCaracteristic() { return caracteristic; } Modified: trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/export/SurveyExportModel.java =================================================================== --- trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/export/SurveyExportModel.java 2013-06-11 13:29:41 UTC (rev 1098) +++ trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/export/SurveyExportModel.java 2013-06-11 14:39:12 UTC (rev 1099) @@ -50,10 +50,12 @@ newColumnForExport("Pays", SurveyExportRow.PROPERTY_COUNTRY); newColumnForExport("Zone_Etude", Program.PROPERTY_ZONE, TuttiLocation.PROPERTY_NAME); newColumnForExport("Id_Sismer", Cruise.PROPERTY_NAME); + newColumnForExport("Nombre_de_poche", Cruise.PROPERTY_MULTIRIG_NUMBER, TuttiCsvUtil.PRIMITIVE_INTEGER); newColumnForExport("Date_Deb_Campagne", Cruise.PROPERTY_BEGIN_DATE, TuttiCsvUtil.DAY_TIME_SECOND); newColumnForExport("Port_Deb_Campagne", Cruise.PROPERTY_DEPARTURE_LOCATION, TuttiLocation.PROPERTY_NAME); newColumnForExport("Date_Fin_Campagne", Cruise.PROPERTY_END_DATE, TuttiCsvUtil.DAY_TIME_SECOND); newColumnForExport("Port_Fin_Campagne", Cruise.PROPERTY_RETURN_LOCATION, TuttiLocation.PROPERTY_NAME); + newColumnForExport("Engin", Cruise.PROPERTY_GEAR, TuttiCsvUtil.LIST_GEAR_FORMATTER); newColumnForExport("Chef_Mission", Cruise.PROPERTY_HEAD_OF_MISSION, TuttiCsvUtil.LIST_PERSON_FORMATTER); newColumnForExport("Resp_Salle_Tri", Cruise.PROPERTY_HEAD_OF_SORT_ROOM, TuttiCsvUtil.LIST_PERSON_FORMATTER); newColumnForExport("Commentaire", Cruise.PROPERTY_COMMENT); Modified: trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/export/SurveyExportRow.java =================================================================== --- trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/export/SurveyExportRow.java 2013-06-11 13:29:41 UTC (rev 1098) +++ trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/export/SurveyExportRow.java 2013-06-11 14:39:12 UTC (rev 1099) @@ -26,6 +26,7 @@ import fr.ifremer.tutti.persistence.entities.data.Cruise; import fr.ifremer.tutti.persistence.entities.data.Program; +import fr.ifremer.tutti.persistence.entities.referential.Gear; import fr.ifremer.tutti.persistence.entities.referential.Person; import fr.ifremer.tutti.persistence.entities.referential.TuttiLocation; import fr.ifremer.tutti.persistence.entities.referential.Vessel; @@ -83,10 +84,13 @@ } public String getName() { - //FIXME return cruise.getName(); } + public List<Gear> getGear() { + return cruise.getGear(); + } + public TuttiLocation getDepartureLocation() { return cruise.getDepartureLocation(); } @@ -110,4 +114,8 @@ public List<Person> getHeadOfSortRoom() { return cruise.getHeadOfSortRoom(); } + + public Integer getMultirigNumber() { + return cruise.getMultirigNumber(); + } } Modified: trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/export/TuttiExportService.java =================================================================== --- trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/export/TuttiExportService.java 2013-06-11 13:29:41 UTC (rev 1098) +++ trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/export/TuttiExportService.java 2013-06-11 14:39:12 UTC (rev 1099) @@ -28,7 +28,6 @@ import com.google.common.base.Preconditions; import com.google.common.collect.Lists; import com.google.common.collect.Maps; -import com.google.common.collect.Sets; import com.google.common.io.Files; import fr.ifremer.tutti.TuttiBusinessException; import fr.ifremer.tutti.TuttiIOUtil; @@ -69,7 +68,6 @@ import java.util.Comparator; import java.util.List; import java.util.Map; -import java.util.Set; import static org.nuiton.i18n.I18n._; @@ -387,7 +385,17 @@ try { List<OperationExportRow> rows = Lists.newArrayList(); - exportContext.operationModel.prepareRows(rows, cruise, operations); + + for (FishingOperation operation : operations) { + + OperationContext operationContext = getOperationContext(operation); + CatchBatch catchBatch = operationContext.getCatchBatch(); + exportContext.operationModel.prepareRows(rows, + cruise, + operation, + catchBatch); + } + exportContext.operationExport.write(rows, exportContext.operationWriter); } catch (Exception e) { throw new TuttiTechnicalException(_("tutti.service.export.operations.error"), e); @@ -418,7 +426,9 @@ try { for (FishingOperation operation : operations) { - boolean withCatchBatch = withCatch(operation); + OperationContext operationContext = getOperationContext(operation); + + boolean withCatchBatch = operationContext.isWithCatchBatch(); if (!withCatchBatch) { continue; } @@ -439,7 +449,9 @@ try { for (FishingOperation operation : operations) { - boolean withCatchBatch = withCatch(operation); + OperationContext operationContext = getOperationContext(operation); + + boolean withCatchBatch = operationContext.isWithCatchBatch(); if (!withCatchBatch) { continue; } @@ -482,30 +494,21 @@ for (FishingOperation operation : operations) { - boolean withCatchBatch = withCatch(operation); + OperationContext operationContext = getOperationContext(operation); + + boolean withCatchBatch = operationContext.isWithCatchBatch(); if (!withCatchBatch) { continue; } - String operationId = operation.getId(); - CatchBatch catchBatch = - persistenceService.getCatchBatchFromFishingOperation( - operationId); + CatchBatch catchBatch = operationContext.getCatchBatch(); + BatchContainer<SpeciesBatch> rootSpeciesBatch = - tuttiWeightComputingService.getComputedSpeciesBatches(operation); + operationContext.getRootSpeciesBatch(); BatchContainer<BenthosBatch> rootBenthosBatch = - tuttiWeightComputingService.getComputedBenthosBatches(operation); + operationContext.getRootBenthosBatch(); - BatchContainer<MarineLitterBatch> rootMarineLitterBatch = - tuttiWeightComputingService.getComputedMarineLitterBatches(operation, catchBatch.getMarineLitterTotalWeight()); - - tuttiWeightComputingService.computeCatchBatchWeights( - catchBatch, - rootSpeciesBatch, - rootBenthosBatch, - rootMarineLitterBatch); - exportContext.speciesModel.prepareBatchRows( exportContext, rootSpeciesBatch, @@ -780,4 +783,105 @@ } } + protected static class OperationContext { + + protected final FishingOperation operation; + + private final CatchBatch catchBatch; + + private final BatchContainer<MarineLitterBatch> rootMarineLitterBatch; + + private final BatchContainer<SpeciesBatch> rootSpeciesBatch; + + private final BatchContainer<BenthosBatch> rootBenthosBatch; + + protected boolean withCatchBatch; + + public OperationContext(FishingOperation operation, + PersistenceService persistenceService, + TuttiWeightComputingService tuttiWeightComputingService) { + this.operation = operation; + + String operationId = operation.getId(); + + withCatchBatch = + persistenceService.isFishingOperationWithCatchBatch( + operationId); + + if (withCatchBatch) { + + + // load batches + + catchBatch = + persistenceService.getCatchBatchFromFishingOperation( + operationId); + + rootSpeciesBatch = + tuttiWeightComputingService.getComputedSpeciesBatches(operation); + + rootBenthosBatch = + tuttiWeightComputingService.getComputedBenthosBatches(operation); + + rootMarineLitterBatch = + tuttiWeightComputingService.getComputedMarineLitterBatches(operation, catchBatch.getMarineLitterTotalWeight()); + + // apply compute weights + + tuttiWeightComputingService.computeCatchBatchWeights( + catchBatch, + rootSpeciesBatch, + rootBenthosBatch, + rootMarineLitterBatch); + } else { + if (log.isWarnEnabled()) { + log.warn("Skip fishing operation " + operationId + + " since no catchBatch associated."); + } + catchBatch = null; + rootSpeciesBatch = null; + rootBenthosBatch = null; + rootMarineLitterBatch = null; + } + + } + + public CatchBatch getCatchBatch() { + return catchBatch; + } + + public BatchContainer<MarineLitterBatch> getRootMarineLitterBatch() { + return rootMarineLitterBatch; + } + + public BatchContainer<SpeciesBatch> getRootSpeciesBatch() { + return rootSpeciesBatch; + } + + public BatchContainer<BenthosBatch> getRootBenthosBatch() { + return rootBenthosBatch; + } + + public boolean isWithCatchBatch() { + return withCatchBatch; + } + } + + protected Map<String, OperationContext> operationContexts = Maps.newTreeMap(); + + protected OperationContext getOperationContext(FishingOperation operation) { + String operationId = operation.getId(); + + OperationContext result = operationContexts.get(operationId); + if (result == null) { + + // create it + result = new OperationContext(operation, + persistenceService, + tuttiWeightComputingService); + operationContexts.put(operationId, result); + } + return result; + + } } Modified: trunk/tutti-service/src/test/java/fr/ifremer/tutti/service/export/TuttiExportServiceTest.java =================================================================== --- trunk/tutti-service/src/test/java/fr/ifremer/tutti/service/export/TuttiExportServiceTest.java 2013-06-11 13:29:41 UTC (rev 1098) +++ trunk/tutti-service/src/test/java/fr/ifremer/tutti/service/export/TuttiExportServiceTest.java 2013-06-11 14:39:12 UTC (rev 1099) @@ -77,59 +77,59 @@ public static final String OPERATION_2_ID = "100107"; public static final String SURVEY_CONTENT = - "Annee;Serie;Serie_Partielle;Navire;Pays;Zone_Etude;Id_Sismer;Date_Deb_Campagne;Port_Deb_Campagne;Date_Fin_Campagne;Port_Fin_Campagne;Chef_Mission;Resp_Salle_Tri;Commentaire\n" + - "2013;Campagne CGFS;;GWEN DREZ;FRA;CGFS - Manche Est / Sud Mer du Nord;Campagne CGFS_2013;01/05/2013 00:00:00;La Barbotière (Gujan-Mestras);31/05/2013 00:00:00;Etang de Palo;Vincent AURECHE;;;"; + "Annee;Serie;Serie_Partielle;Navire;Pays;Zone_Etude;Id_Sismer;Nombre_de_poche;Date_Deb_Campagne;Port_Deb_Campagne;Date_Fin_Campagne;Port_Fin_Campagne;Engin;Chef_Mission;Resp_Salle_Tri;Commentaire\n" + + "2013;Campagne CGFS;;GWEN DREZ;FRA;CGFS - Manche Est / Sud Mer du Nord;Campagne CGFS_2013;1;01/05/2013 00:00:00;La Barbotière (Gujan-Mestras);31/05/2013 00:00:00;Etang de Palo;GOV1925 GOV 19.7/25.9;Vincent AURECHE;;;"; public static final String OPERATION_CONTENT = - "Annee;Serie;Serie_Partielle;Id_Operation;NumOrdre_Station;Engin;Navire;DateDeb_Op;LatDeb;LongDeb;DateFin_Op;LatFin;LongFin;Duree;Strate;Sous-Strate;Localite;Validite_OP;Rectiligne;Distance;Ouv_Verticale;Ouv_Horizontale_Ailes;Ouv_Horizontale_Panneaux;Commentaire\n" + - "2013;Campagne CGFS;;A;1;GOV 19.7/25.9;GWEN DREZ;01/05/2013 00:00:00;;;01/05/2013 00:23:00;;;23;Strate 1D;NA;Localité 1D2;?;N;;NA;NA;NA;op1;\n" + - "2013;Campagne CGFS;;A;2;GOV 19.7/25.9;GWEN DREZ;11/05/2013 08:00:00;;;11/05/2013 08:23:00;;;23;Strate 1D;NA;Localité 1D2;?;N;;NA;NA;NA;OP2;"; + "Annee;Serie;Serie_Partielle;Id_Operation;NumOrdre_Station;Poche;Engin;Navire;DateDeb_Op;LatDeb;LongDeb;DateFin_Op;LatFin;LongFin;Duree;Strate;Sous-Strate;Localite;Validite_OP;Rectiligne;Distance;Ouv_Verticale;Ouv_Horizontale_Ailes;Ouv_Horizontale_Panneaux;Saisisseur;Commentaire;Poids_Total;Poids_Total_Calcule;Poids_Total_Vrac;Poids_Total_Vrac_Calcule;Poids_Total_HorsVrac;Poids_Total_HorsVrac_Calcule;Poids_Total_Non_Trie;Poids_Total_Non_Trie_Calcule;Poids_Total_Espece;Poids_Total_Espece_Calcule;Poids_Total_Espece_Vrac;Poids_Total_Espece_Vrac_Calcule;Poids_Total_Espece_Vrac_Trie;Poids_Total_Espece_Vrac_Trie_Calcule;Poids_Total_Espece_HorsVrac;Poids_Total_Espece_HorsVrac_Calcule;Poids_Total_Espece_Inerte_Trie;Poids_Total_Espece_Inerte_Trie_Calcule;Poids_Total_Espece_Vivant_non_detaille_trie;Poids_Total_Espece_Vivant_non_detaille_trie_Calcule;Poids_Total_Benthos;Poids_Total_Benthos_Calcule;Poids_Total_Benthos_Vrac;Poids_Total_Benthos_Vrac_Calcule;Poids_Total_Benthos_Vrac_Trie;Poids_Total_Benthos_Vrac_Trie_Calcule;Poids_Total_Benthos_HorsVrac;Poids_Total_Benthos_HorsVrac_Calcule;Poids_Total_Benthos_Inerte_Trie;Poids_Total_Benthos_Inerte_Trie_Calcule;Poids_Total_Benthos_Vivant_non_detaille_trie;Poids_Total_Benthos_Vivant_non_detaille_trie_Calcule;Poids_Total_Macro_Dechet;Poids_Total_Macro_Dechet_Calcule\n" + + "2013;Campagne CGFS;;A;1;1;GOV 19.7/25.9;GWEN DREZ;01/05/2013 00:00:00;;;01/05/2013 00:23:00;;;23;Strate 1D;NA;Localité 1D2;?;N;;NA;NA;NA;Vincent AURECHE;op1;120.0;Y;100.0;Y;20.0;Y;0.0;Y;120.0;Y;100.0;Y;100.0;Y;20.0;Y;0.0;Y;0.0;Y;0.0;Y;0.0;Y;0.0;Y;0.0;Y;0.0;Y;0.0;Y;6.0;Y;\n" + + "2013;Campagne CGFS;;A;2;1;GOV 19.7/25.9;GWEN DREZ;11/05/2013 08:00:00;;;11/05/2013 08:23:00;;;23;Strate 1D;NA;Localité 1D2;?;N;;NA;NA;NA;Robert BELLAIL|Herve BARONE;OP2;0.0;Y;0.0;Y;0.0;Y;0.0;Y;0.0;Y;0.0;Y;0.0;Y;0.0;Y;0.0;Y;0.0;Y;0.0;Y;0.0;Y;0.0;Y;0.0;Y;0.0;Y;0.0;Y;0.0;Y;"; public static final String PARAMETER_CONTENT = - "Annee;Serie;Serie_Partielle;Id_Operation;NumOrdre_Station;Code_PMFM;Libelle_PMFm;Valeur\n" + - "2013;Campagne CGFS;;A;1;1164;Catégorie UE - produit/lot - totale - Diffusion par une Halle à marée;Cat UE10;\n" + - "2013;Campagne CGFS;;A;1;1302;(Gross Tonnage) : augmentation de tonnage accordée pour des raisons de sécurité - navire - totale - Déclaration d'un professionnel;10.0;\n" + - "2013;Campagne CGFS;;A;1;194;\"Etat de la mer - masse d'eau, eau brute - totale - Observation par un observateur\";\"2 - belle, vagues de 0.1 à 0.5 mètres\";\n" + - "2013;Campagne CGFS;;A;1;821;Direction vent - air - totale - Instrument de bord;0.1;\n" + - "2013;Campagne CGFS;;A;1;149;Coût de la glace - navire - totale - Déclaration d'un professionnel;10.0;\n" + - "2013;Campagne CGFS;;A;2;1062;Catégorie de fraicheur - produit/lot - totale - Diffusion par une Halle à marée;A - Catégorie A;\n" + - "2013;Campagne CGFS;;A;2;308;Nombre d'engin - engin - totale - Déclaration d'un professionnel;2.0;"; + "Annee;Serie;Serie_Partielle;Id_Operation;NumOrdre_Station;Poche;Code_PMFM;Libelle_PMFm;Valeur\n" + + "2013;Campagne CGFS;;A;1;1;1164;Catégorie UE - produit/lot - totale - Diffusion par une Halle à marée;Cat UE10;\n" + + "2013;Campagne CGFS;;A;1;1;1302;(Gross Tonnage) : augmentation de tonnage accordée pour des raisons de sécurité - navire - totale - Déclaration d'un professionnel;10.0;\n" + + "2013;Campagne CGFS;;A;1;1;194;\"Etat de la mer - masse d'eau, eau brute - totale - Observation par un observateur\";\"2 - belle, vagues de 0.1 à 0.5 mètres\";\n" + + "2013;Campagne CGFS;;A;1;1;821;Direction vent - air - totale - Instrument de bord;0.1;\n" + + "2013;Campagne CGFS;;A;1;1;149;Coût de la glace - navire - totale - Déclaration d'un professionnel;10.0;\n" + + "2013;Campagne CGFS;;A;2;1;1062;Catégorie de fraicheur - produit/lot - totale - Diffusion par une Halle à marée;A - Catégorie A;\n" + + "2013;Campagne CGFS;;A;2;1;308;Nombre d'engin - engin - totale - Déclaration d'un professionnel;2.0;"; public static final String CATCH_CONTENT = - "Annee;Serie;Serie_Partielle;Engin;Poche;Id_Operation;NumOrdre_Station;Navire;Taxon;VracHorsVrac;Num_Ordre_VracHorsVrac_H2;Tot_VracHorsVrac;Ech_VracHorsVrac;Type_Volume_Poids_VracHorsVrac;Unite_Volume_Poids_VracHorsVrac;Cat_Tri;Num_Ordre_Cat_Tri_H2;Tot_Cat_Tri;Ech_Cat_Tri;Type_Volume_Poids_Cat_Tri;Unite_Volume_Poids_Cat_Tri;Sexe;Num_Ordre_Sexe_H2;Tot_Sexe;Ech_Sexe;Type_Volume_Poids_Sexe;Unite_Volume_Poids_Sexe;Maturite;Num_Ordre_Maturite_H2;Tot_Maturite;Ech_Maturite;Type_Volume_Poids_Maturite;Unite_Volume_Poids_Maturite;Age;Num_Ordre_Age_H2;Tot_Age;Ech_Age;Type_Volume_Poids_Age;Unite_Volume_Poids_Age;Code_Longueur;Taille;NumOrdre_Taille_H2;Poids_Classe_Taille;Unite_Taille;Precision_Mesure;Nbr;Poids_Reference;Coef_Final_Elevation\n" + - "2013;Campagne CGFS;;GOV 19.7/25.9;1;A;1;GWEN DREZ;11242;Vrac;1;100.0;;Poids;;G - Gros;1;80.0;;Poids;;Mâle;1;30.0;;Poids;;1 - Stade 1;1;10.0;5.0;Poids;;NA;;;;;;307;10.0;1;;cm;0.5;5;5.0;500.0;\n" + - "2013;Campagne CGFS;;GOV 19.7/25.9;1;A;1;GWEN DREZ;11242;Vrac;1;100.0;;Poids;;G - Gros;1;80.0;;Poids;;Mâle;1;30.0;;Poids;;1 - Stade 1;1;10.0;5.0;Poids;;NA;;;;;;307;10.5;2;;cm;0.5;2;5.0;500.0;\n" + - "2013;Campagne CGFS;;GOV 19.7/25.9;1;A;1;GWEN DREZ;11242;Vrac;1;100.0;;Poids;;G - Gros;1;80.0;;Poids;;Mâle;1;30.0;;Poids;;1 - Stade 1;1;10.0;5.0;Poids;;NA;;;;;;307;11.0;3;;cm;0.5;1;5.0;500.0;\n" + - "2013;Campagne CGFS;;GOV 19.7/25.9;1;A;1;GWEN DREZ;11242;Vrac;1;100.0;;Poids;;G - Gros;1;80.0;;Poids;;Mâle;1;30.0;;Poids;;3 - Stade 3;3;10.0;;Poids;;NA;;;;;;307;11.0;1;;cm;0.5;5;10.0;1000.0;\n" + - "2013;Campagne CGFS;;GOV 19.7/25.9;1;A;1;GWEN DREZ;11242;Vrac;1;100.0;;Poids;;G - Gros;1;80.0;;Poids;;Femelle;2;50.0;30.0;Poids;;3 - Stade 3;3;10.0;;Poids;;NA;;;;;;1425;10.0;1;;cm;;5;30.0;3000.0;\n" + - "2013;Campagne CGFS;;GOV 19.7/25.9;1;A;1;GWEN DREZ;11242;Vrac;1;100.0;;Poids;;G - Gros;1;80.0;;Poids;;Femelle;2;50.0;30.0;Poids;;3 - Stade 3;3;10.0;;Poids;;NA;;;;;;1425;11.0;2;;cm;;6;30.0;3000.0;\n" + - "2013;Campagne CGFS;;GOV 19.7/25.9;1;A;1;GWEN DREZ;11242;Vrac;1;100.0;;Poids;;G - Gros;1;80.0;;Poids;;Femelle;2;50.0;30.0;Poids;;3 - Stade 3;3;10.0;;Poids;;NA;;;;;;1425;12.0;3;;cm;;7;30.0;3000.0;\n" + - "2013;Campagne CGFS;;GOV 19.7/25.9;1;A;1;GWEN DREZ;11242;Vrac;1;100.0;;Poids;;M - Moyen;2;20.0;;Poids;;Femelle;2;50.0;30.0;Poids;;3 - Stade 3;3;10.0;;Poids;;NA;;;;;;;;;;;;;20.0;2000.0;\n" + - "2013;Campagne CGFS;;GOV 19.7/25.9;1;A;1;GWEN DREZ;11242;Hors Vrac;1;20.0;;Poids;;NA;;;;;;NA;;;;;;NA;;;;;;NA;;;;;;;;;;;;2;20.0;1.0;"; + "Annee;Serie;Serie_Partielle;Engin;Id_Operation;NumOrdre_Station;Poche;Navire;Taxon;VracHorsVrac;Num_Ordre_VracHorsVrac_H2;Tot_VracHorsVrac;Ech_VracHorsVrac;Type_Volume_Poids_VracHorsVrac;Unite_Volume_Poids_VracHorsVrac;Cat_Tri;Num_Ordre_Cat_Tri_H2;Tot_Cat_Tri;Ech_Cat_Tri;Type_Volume_Poids_Cat_Tri;Unite_Volume_Poids_Cat_Tri;Sexe;Num_Ordre_Sexe_H2;Tot_Sexe;Ech_Sexe;Type_Volume_Poids_Sexe;Unite_Volume_Poids_Sexe;Maturite;Num_Ordre_Maturite_H2;Tot_Maturite;Ech_Maturite;Type_Volume_Poids_Maturite;Unite_Volume_Poids_Maturite;Age;Num_Ordre_Age_H2;Tot_Age;Ech_Age;Type_Volume_Poids_Age;Unite_Volume_Poids_Age;Code_Longueur;Taille;NumOrdre_Taille_H2;Poids_Classe_Taille;Unite_Taille;Precision_Mesure;Nbr;Poids_Reference;Coef_Final_Elevation\n" + + "2013;Campagne CGFS;;GOV 19.7/25.9;A;1;1;GWEN DREZ;11242;Vrac;1;100.0;;Poids;;G - Gros;1;80.0;;Poids;;Mâle;1;30.0;;Poids;;1 - Stade 1;1;10.0;5.0;Poids;;NA;;;;;;307;10.0;1;;cm;0.5;5;5.0;500.0;\n" + + "2013;Campagne CGFS;;GOV 19.7/25.9;A;1;1;GWEN DREZ;11242;Vrac;1;100.0;;Poids;;G - Gros;1;80.0;;Poids;;Mâle;1;30.0;;Poids;;1 - Stade 1;1;10.0;5.0;Poids;;NA;;;;;;307;10.5;2;;cm;0.5;2;5.0;500.0;\n" + + "2013;Campagne CGFS;;GOV 19.7/25.9;A;1;1;GWEN DREZ;11242;Vrac;1;100.0;;Poids;;G - Gros;1;80.0;;Poids;;Mâle;1;30.0;;Poids;;1 - Stade 1;1;10.0;5.0;Poids;;NA;;;;;;307;11.0;3;;cm;0.5;1;5.0;500.0;\n" + + "2013;Campagne CGFS;;GOV 19.7/25.9;A;1;1;GWEN DREZ;11242;Vrac;1;100.0;;Poids;;G - Gros;1;80.0;;Poids;;Mâle;1;30.0;;Poids;;3 - Stade 3;3;10.0;;Poids;;NA;;;;;;307;11.0;1;;cm;0.5;5;10.0;1000.0;\n" + + "2013;Campagne CGFS;;GOV 19.7/25.9;A;1;1;GWEN DREZ;11242;Vrac;1;100.0;;Poids;;G - Gros;1;80.0;;Poids;;Femelle;2;50.0;30.0;Poids;;3 - Stade 3;3;10.0;;Poids;;NA;;;;;;1425;10.0;1;;cm;;5;30.0;3000.0;\n" + + "2013;Campagne CGFS;;GOV 19.7/25.9;A;1;1;GWEN DREZ;11242;Vrac;1;100.0;;Poids;;G - Gros;1;80.0;;Poids;;Femelle;2;50.0;30.0;Poids;;3 - Stade 3;3;10.0;;Poids;;NA;;;;;;1425;11.0;2;;cm;;6;30.0;3000.0;\n" + + "2013;Campagne CGFS;;GOV 19.7/25.9;A;1;1;GWEN DREZ;11242;Vrac;1;100.0;;Poids;;G - Gros;1;80.0;;Poids;;Femelle;2;50.0;30.0;Poids;;3 - Stade 3;3;10.0;;Poids;;NA;;;;;;1425;12.0;3;;cm;;7;30.0;3000.0;\n" + + "2013;Campagne CGFS;;GOV 19.7/25.9;A;1;1;GWEN DREZ;11242;Vrac;1;100.0;;Poids;;M - Moyen;2;20.0;;Poids;;Femelle;2;50.0;30.0;Poids;;3 - Stade 3;3;10.0;;Poids;;NA;;;;;;;;;;;;;20.0;2000.0;\n" + + "2013;Campagne CGFS;;GOV 19.7/25.9;A;1;1;GWEN DREZ;11242;Hors Vrac;1;20.0;;Poids;;NA;;;;;;NA;;;;;;NA;;;;;;NA;;;;;;;;;;;;2;20.0;1.0;"; public static final String MARINE_LITTER_CONTENT = - "Annee;Serie;Serie_Partielle;Engin;Poche;Id_Operation;NumOrdre_Station;Navire;MarineLitterCategory;MarineLitterSizeCategory;Number;Weight;Comment;TotalWeight\n" + - "2013;Campagne CGFS;;GOV 19.7/25.9;1;A;1;GWEN DREZ;L1 PLASTIQUE;A: <5*5 cm= 25 cm2;2;5.0;S1;;\n" + - "2013;Campagne CGFS;;GOV 19.7/25.9;1;A;1;GWEN DREZ;L1a Sacs;B: <10*10 cm= 100 cm2;3;1.0;S2;;"; + "Annee;Serie;Serie_Partielle;Engin;Id_Operation;NumOrdre_Station;Poche;Navire;MarineLitterCategory;MarineLitterSizeCategory;Number;Weight;Comment\n" + + "2013;Campagne CGFS;;GOV 19.7/25.9;A;1;1;GWEN DREZ;L1 PLASTIQUE;A: <5*5 cm= 25 cm2;2;5.0;S1;\n" + + "2013;Campagne CGFS;;GOV 19.7/25.9;A;1;1;GWEN DREZ;L1a Sacs;B: <10*10 cm= 100 cm2;3;1.0;S2;"; public static final String INDIVIDUAL_OBSERVATION_CONTENT = - "Annee;Serie;Serie_Partielle;Engin;Poche;Id_Operation;NumOrdre_Station;Navire;BatchId;ReferenceTaxonId;ReferenceTaxonName;Comment;CaracteristicId;CaracteristicValue\n" + - "2013;Campagne CGFS;;GOV 19.7/25.9;1;A;1;GWEN DREZ;100000;11242;Aaptos;P1;1435;A20;\n" + - "2013;Campagne CGFS;;GOV 19.7/25.9;1;A;1;GWEN DREZ;100000;11242;Aaptos;P1;1436;10;\n" + - "2013;Campagne CGFS;;GOV 19.7/25.9;1;A;1;GWEN DREZ;100000;11242;Aaptos;P1;220;0.1;\n" + - "2013;Campagne CGFS;;GOV 19.7/25.9;1;A;1;GWEN DREZ;100000;11242;Aaptos;P1;1433;307;\n" + - "2013;Campagne CGFS;;GOV 19.7/25.9;1;A;1;GWEN DREZ;100000;11242;Aaptos;P1;307;10.0;\n" + - "2013;Campagne CGFS;;GOV 19.7/25.9;1;A;1;GWEN DREZ;100000;11242;Aaptos;P1;101;10.0;\n" + - "2013;Campagne CGFS;;GOV 19.7/25.9;1;A;1;GWEN DREZ;100000;11242;Aaptos;P1;46;0L - 0 VMS - 1 LB;\n" + - "2013;Campagne CGFS;;GOV 19.7/25.9;1;A;1;GWEN DREZ;100000;11242;Aaptos;P1;1388;5.0;"; + "Annee;Serie;Serie_Partielle;Engin;Id_Operation;NumOrdre_Station;Poche;Navire;BatchId;ReferenceTaxonId;ReferenceTaxonName;Comment;CaracteristicId;CaracteristicValue\n" + + "2013;Campagne CGFS;;GOV 19.7/25.9;A;1;1;GWEN DREZ;100000;11242;Aaptos;P1;1435;A20;\n" + + "2013;Campagne CGFS;;GOV 19.7/25.9;A;1;1;GWEN DREZ;100000;11242;Aaptos;P1;1436;10;\n" + + "2013;Campagne CGFS;;GOV 19.7/25.9;A;1;1;GWEN DREZ;100000;11242;Aaptos;P1;220;0.1;\n" + + "2013;Campagne CGFS;;GOV 19.7/25.9;A;1;1;GWEN DREZ;100000;11242;Aaptos;P1;1433;307;\n" + + "2013;Campagne CGFS;;GOV 19.7/25.9;A;1;1;GWEN DREZ;100000;11242;Aaptos;P1;307;10.0;\n" + + "2013;Campagne CGFS;;GOV 19.7/25.9;A;1;1;GWEN DREZ;100000;11242;Aaptos;P1;101;10.0;\n" + + "2013;Campagne CGFS;;GOV 19.7/25.9;A;1;1;GWEN DREZ;100000;11242;Aaptos;P1;46;0L - 0 VMS - 1 LB;\n" + + "2013;Campagne CGFS;;GOV 19.7/25.9;A;1;1;GWEN DREZ;100000;11242;Aaptos;P1;1388;5.0;"; public static final String ACCIDENTAL_CATCH_CONTENT = - "Annee;Serie;Serie_Partielle;Engin;Poche;Id_Operation;NumOrdre_Station;Navire;BatchId;ReferenceTaxonId;ReferenceTaxonName;Comment;CaracteristicId;CaracteristicValue\n" + - "2013;Campagne CGFS;;GOV 19.7/25.9;1;A;1;GWEN DREZ;100001;3835;Abalistes;;1393;Rejet mort;\n" + - "2013;Campagne CGFS;;GOV 19.7/25.9;1;A;1;GWEN DREZ;100001;3835;Abalistes;;196;Femelle;\n" + - "2013;Campagne CGFS;;GOV 19.7/25.9;1;A;1;GWEN DREZ;100001;3835;Abalistes;;220;10.0;\n" + - "2013;Campagne CGFS;;GOV 19.7/25.9;1;A;1;GWEN DREZ;100001;3835;Abalistes;;1433;1425;\n" + - "2013;Campagne CGFS;;GOV 19.7/25.9;1;A;1;GWEN DREZ;100001;3835;Abalistes;;1425;4.0;"; + "Annee;Serie;Serie_Partielle;Engin;Id_Operation;NumOrdre_Station;Poche;Navire;BatchId;ReferenceTaxonId;ReferenceTaxonName;Comment;CaracteristicId;CaracteristicValue\n" + + "2013;Campagne CGFS;;GOV 19.7/25.9;A;1;1;GWEN DREZ;100001;3835;Abalistes;;1393;Rejet mort;\n" + + "2013;Campagne CGFS;;GOV 19.7/25.9;A;1;1;GWEN DREZ;100001;3835;Abalistes;;196;Femelle;\n" + + "2013;Campagne CGFS;;GOV 19.7/25.9;A;1;1;GWEN DREZ;100001;3835;Abalistes;;220;10.0;\n" + + "2013;Campagne CGFS;;GOV 19.7/25.9;A;1;1;GWEN DREZ;100001;3835;Abalistes;;1433;1425;\n" + + "2013;Campagne CGFS;;GOV 19.7/25.9;A;1;1;GWEN DREZ;100001;3835;Abalistes;;1425;4.0;"; public static final String SPECIES_CONTENT = "Id;Code_Rubin;Nom Scientifique;Code campagne\n" +
participants (1)
-
tchemit@users.forge.codelutin.com