r1687 - in trunk/tutti-service/src: main/java/fr/ifremer/tutti/service main/java/fr/ifremer/tutti/service/export/generic test/java/fr/ifremer/tutti/service/export/generic
Author: tchemit Date: 2014-04-15 10:09:17 +0200 (Tue, 15 Apr 2014) New Revision: 1687 Url: http://forge.codelutin.com/projects/tutti/repository/revisions/1687 Log: fixes #4923 Modified: trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/TuttiCsvUtil.java trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/export/generic/CatchExportModel.java trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/export/generic/OperationExportModel.java trunk/tutti-service/src/test/java/fr/ifremer/tutti/service/export/generic/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 2014-04-09 08:18:56 UTC (rev 1686) +++ trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/TuttiCsvUtil.java 2014-04-15 08:09:17 UTC (rev 1687) @@ -75,6 +75,33 @@ */ public class TuttiCsvUtil extends Common { + /** + * To parse / format possible nullable weight. + * + * @since 3.3.2 + */ + public static final ValueParserFormatter<Float> WEIGHT_NULL_TO_9 = + new FloatParserFormatter(-9f, true) { + @Override + public String format(Float value) { + if (value == null) { + // if value is null then use the default value + value = defaultValue; + } + return TuttiEntities.getWeightStringValue(value); + } + + @Override + protected Float parseNoneEmptyValue(String value) { + Float aFloat = super.parseNoneEmptyValue(value); + if (defaultValue.equals(aFloat)) { + // if having -9, then value is null + aFloat = null; + } + return aFloat; + } + }; + public static final ValueParserFormatter<Float> FLOAT_NULL_TO_9 = new FloatParserFormatter(-9f, true) { @Override @@ -129,7 +156,7 @@ public static final ValueFormatter<Number> NUMBER_OR_NA = new ValueFormatter<Number>() { @Override public String format(Number s) { - return s==null?"NA": s.toString(); + return s == null ? "NA" : s.toString(); } }; Modified: trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/export/generic/CatchExportModel.java =================================================================== --- trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/export/generic/CatchExportModel.java 2014-04-09 08:18:56 UTC (rev 1686) +++ trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/export/generic/CatchExportModel.java 2014-04-15 08:09:17 UTC (rev 1687) @@ -316,6 +316,15 @@ number, benthosBatch.getRankOrder()); + if (currentRow.getSampleCategory().size() == 1) { + + //FIXME Remove this when improve export for import + // See https://forge.codelutin.com/issues/4923 + ExportSampleCategory exportSampleCategory = currentRow.getSampleCategory().get(0); + Integer rankOrder = exportSampleCategory.getRankOrder(); + exportSampleCategory.setRankOrder(100 + rankOrder); + } + if (benthosBatch.isChildBatchsEmpty()) { // on a leaf, get frequencies Modified: trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/export/generic/OperationExportModel.java =================================================================== --- trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/export/generic/OperationExportModel.java 2014-04-09 08:18:56 UTC (rev 1686) +++ trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/export/generic/OperationExportModel.java 2014-04-15 08:09:17 UTC (rev 1687) @@ -72,61 +72,61 @@ newColumnForExport("Navire_Associe", FishingOperation.PROPERTY_SECONDARY_VESSEL, TuttiCsvUtil.newListVesselFormatter(vesselDecorator)); newColumnForExport("Commentaire", FishingOperation.PROPERTY_COMMENT, TuttiCsvUtil.COMMENT_FORMATTER); - newNullableColumnForExport("Poids_Total", OperationExportRow.PROPERTY_CATCH_TOTAL_WEIGHT, TuttiCsvUtil.FLOAT_NULL_TO_9); + newNullableColumnForExport("Poids_Total", OperationExportRow.PROPERTY_CATCH_TOTAL_WEIGHT, TuttiCsvUtil.WEIGHT_NULL_TO_9); newNullableColumnForExport("Poids_Total_Calcule", OperationExportRow.PROPERTY_CATCH_TOTAL_WEIGHT_COMPUTED, TuttiCsvUtil.BOOLEAN); - newNullableColumnForExport("Poids_Total_Vrac", OperationExportRow.PROPERTY_CATCH_TOTAL_SORTED_WEIGHT, TuttiCsvUtil.FLOAT_NULL_TO_9); + newNullableColumnForExport("Poids_Total_Vrac", OperationExportRow.PROPERTY_CATCH_TOTAL_SORTED_WEIGHT, TuttiCsvUtil.WEIGHT_NULL_TO_9); newNullableColumnForExport("Poids_Total_Vrac_Calcule", OperationExportRow.PROPERTY_CATCH_TOTAL_SORTED_WEIGHT_COMPUTED, TuttiCsvUtil.BOOLEAN); - newNullableColumnForExport("Poids_Total_HorsVrac", OperationExportRow.PROPERTY_CATCH_TOTAL_UNSORTED_WEIGHT, TuttiCsvUtil.FLOAT_NULL_TO_9); + newNullableColumnForExport("Poids_Total_HorsVrac", OperationExportRow.PROPERTY_CATCH_TOTAL_UNSORTED_WEIGHT, TuttiCsvUtil.WEIGHT_NULL_TO_9); newNullableColumnForExport("Poids_Total_HorsVrac_Calcule", OperationExportRow.PROPERTY_CATCH_TOTAL_UNSORTED_WEIGHT_COMPUTED, TuttiCsvUtil.BOOLEAN); - newNullableColumnForExport("Poids_Total_Non_Trie", OperationExportRow.PROPERTY_CATCH_TOTAL_REJECTED_WEIGHT, TuttiCsvUtil.FLOAT_NULL_TO_9); + newNullableColumnForExport("Poids_Total_Non_Trie", OperationExportRow.PROPERTY_CATCH_TOTAL_REJECTED_WEIGHT, TuttiCsvUtil.WEIGHT_NULL_TO_9); newNullableColumnForExport("Poids_Total_Non_Trie_Calcule", OperationExportRow.PROPERTY_CATCH_TOTAL_REJECTED_WEIGHT_COMPUTED, TuttiCsvUtil.BOOLEAN); - newNullableColumnForExport("Poids_Total_Tremis", OperationExportRow.PROPERTY_CATCH_TOTAL_SORTED_TREMIS_WEIGHT, TuttiCsvUtil.FLOAT_NULL_TO_9); + newNullableColumnForExport("Poids_Total_Tremis", OperationExportRow.PROPERTY_CATCH_TOTAL_SORTED_TREMIS_WEIGHT, TuttiCsvUtil.WEIGHT_NULL_TO_9); newNullableColumnForExport("Poids_Total_Tremis_Calcule", OperationExportRow.PROPERTY_CATCH_TOTAL_SORTED_TREMIS_WEIGHT_COMPUTED, TuttiCsvUtil.BOOLEAN); - newNullableColumnForExport("Poids_Total_Carroussel", OperationExportRow.PROPERTY_CATCH_TOTAL_SORTED_CAROUSSEL_WEIGHT, TuttiCsvUtil.FLOAT_NULL_TO_9); + newNullableColumnForExport("Poids_Total_Carroussel", OperationExportRow.PROPERTY_CATCH_TOTAL_SORTED_CAROUSSEL_WEIGHT, TuttiCsvUtil.WEIGHT_NULL_TO_9); newNullableColumnForExport("Poids_Total_Carroussel_Calcule", OperationExportRow.PROPERTY_CATCH_TOTAL_SORTED_CAROUSSEL_WEIGHT_COMPUTED, TuttiCsvUtil.BOOLEAN); - newNullableColumnForExport("Poids_Total_Espece", OperationExportRow.PROPERTY_SPECIES_TOTAL_WEIGHT, TuttiCsvUtil.FLOAT_NULL_TO_9); + newNullableColumnForExport("Poids_Total_Espece", OperationExportRow.PROPERTY_SPECIES_TOTAL_WEIGHT, TuttiCsvUtil.WEIGHT_NULL_TO_9); newNullableColumnForExport("Poids_Total_Espece_Calcule", OperationExportRow.PROPERTY_SPECIES_TOTAL_WEIGHT_COMPUTED, TuttiCsvUtil.BOOLEAN); - newNullableColumnForExport("Poids_Total_Espece_Vrac", OperationExportRow.PROPERTY_SPECIES_TOTAL_SORTED_WEIGHT, TuttiCsvUtil.FLOAT_NULL_TO_9); + newNullableColumnForExport("Poids_Total_Espece_Vrac", OperationExportRow.PROPERTY_SPECIES_TOTAL_SORTED_WEIGHT, TuttiCsvUtil.WEIGHT_NULL_TO_9); newNullableColumnForExport("Poids_Total_Espece_Vrac_Calcule", OperationExportRow.PROPERTY_SPECIES_TOTAL_SORTED_WEIGHT_COMPUTED, TuttiCsvUtil.BOOLEAN); - newNullableColumnForExport("Poids_Total_Espece_Vrac_Trie", OperationExportRow.PROPERTY_SPECIES_TOTAL_SAMPLE_SORTED_WEIGHT, TuttiCsvUtil.FLOAT_NULL_TO_9); + newNullableColumnForExport("Poids_Total_Espece_Vrac_Trie", OperationExportRow.PROPERTY_SPECIES_TOTAL_SAMPLE_SORTED_WEIGHT, TuttiCsvUtil.WEIGHT_NULL_TO_9); newNullableColumnForExport("Poids_Total_Espece_Vrac_Trie_Calcule", OperationExportRow.PROPERTY_SPECIES_TOTAL_SAMPLE_SORTED_WEIGHT_COMPUTED, TuttiCsvUtil.BOOLEAN); - newNullableColumnForExport("Poids_Total_Espece_HorsVrac", OperationExportRow.PROPERTY_SPECIES_TOTAL_UNSORTED_WEIGHT, TuttiCsvUtil.FLOAT_NULL_TO_9); + newNullableColumnForExport("Poids_Total_Espece_HorsVrac", OperationExportRow.PROPERTY_SPECIES_TOTAL_UNSORTED_WEIGHT, TuttiCsvUtil.WEIGHT_NULL_TO_9); newNullableColumnForExport("Poids_Total_Espece_HorsVrac_Calcule", OperationExportRow.PROPERTY_SPECIES_TOTAL_UNSORTED_WEIGHT_COMPUTED, TuttiCsvUtil.BOOLEAN); - newNullableColumnForExport("Poids_Total_Espece_Inerte_Trie", OperationExportRow.PROPERTY_SPECIES_TOTAL_INERT_WEIGHT, TuttiCsvUtil.FLOAT_NULL_TO_9); + newNullableColumnForExport("Poids_Total_Espece_Inerte_Trie", OperationExportRow.PROPERTY_SPECIES_TOTAL_INERT_WEIGHT, TuttiCsvUtil.WEIGHT_NULL_TO_9); newNullableColumnForExport("Poids_Total_Espece_Inerte_Trie_Calcule", OperationExportRow.PROPERTY_SPECIES_TOTAL_INERT_WEIGHT_COMPUTED, TuttiCsvUtil.BOOLEAN); - newNullableColumnForExport("Poids_Total_Espece_Vivant_non_detaille_trie", OperationExportRow.PROPERTY_SPECIES_TOTAL_LIVING_NOT_ITEMIZED_WEIGHT, TuttiCsvUtil.FLOAT_NULL_TO_9); + newNullableColumnForExport("Poids_Total_Espece_Vivant_non_detaille_trie", OperationExportRow.PROPERTY_SPECIES_TOTAL_LIVING_NOT_ITEMIZED_WEIGHT, TuttiCsvUtil.WEIGHT_NULL_TO_9); newNullableColumnForExport("Poids_Total_Espece_Vivant_non_detaille_trie_Calcule", OperationExportRow.PROPERTY_SPECIES_TOTAL_LIVING_NOT_ITEMIZED_WEIGHT_COMPUTED, TuttiCsvUtil.BOOLEAN); - newNullableColumnForExport("Poids_Total_Benthos", OperationExportRow.PROPERTY_BENTHOS_TOTAL_WEIGHT, TuttiCsvUtil.FLOAT_NULL_TO_9); + newNullableColumnForExport("Poids_Total_Benthos", OperationExportRow.PROPERTY_BENTHOS_TOTAL_WEIGHT, TuttiCsvUtil.WEIGHT_NULL_TO_9); newNullableColumnForExport("Poids_Total_Benthos_Calcule", OperationExportRow.PROPERTY_BENTHOS_TOTAL_WEIGHT_COMPUTED, TuttiCsvUtil.BOOLEAN); - newNullableColumnForExport("Poids_Total_Benthos_Vrac", OperationExportRow.PROPERTY_BENTHOS_TOTAL_SORTED_WEIGHT, TuttiCsvUtil.FLOAT_NULL_TO_9); + newNullableColumnForExport("Poids_Total_Benthos_Vrac", OperationExportRow.PROPERTY_BENTHOS_TOTAL_SORTED_WEIGHT, TuttiCsvUtil.WEIGHT_NULL_TO_9); newNullableColumnForExport("Poids_Total_Benthos_Vrac_Calcule", OperationExportRow.PROPERTY_BENTHOS_TOTAL_SORTED_WEIGHT_COMPUTED, TuttiCsvUtil.BOOLEAN); - newNullableColumnForExport("Poids_Total_Benthos_Vrac_Trie", OperationExportRow.PROPERTY_BENTHOS_TOTAL_SAMPLE_SORTED_WEIGHT, TuttiCsvUtil.FLOAT_NULL_TO_9); + newNullableColumnForExport("Poids_Total_Benthos_Vrac_Trie", OperationExportRow.PROPERTY_BENTHOS_TOTAL_SAMPLE_SORTED_WEIGHT, TuttiCsvUtil.WEIGHT_NULL_TO_9); newNullableColumnForExport("Poids_Total_Benthos_Vrac_Trie_Calcule", OperationExportRow.PROPERTY_BENTHOS_TOTAL_SAMPLE_SORTED_WEIGHT_COMPUTED, TuttiCsvUtil.BOOLEAN); - newNullableColumnForExport("Poids_Total_Benthos_HorsVrac", OperationExportRow.PROPERTY_BENTHOS_TOTAL_UNSORTED_WEIGHT, TuttiCsvUtil.FLOAT_NULL_TO_9); + newNullableColumnForExport("Poids_Total_Benthos_HorsVrac", OperationExportRow.PROPERTY_BENTHOS_TOTAL_UNSORTED_WEIGHT, TuttiCsvUtil.WEIGHT_NULL_TO_9); newNullableColumnForExport("Poids_Total_Benthos_HorsVrac_Calcule", OperationExportRow.PROPERTY_BENTHOS_TOTAL_UNSORTED_WEIGHT_COMPUTED, TuttiCsvUtil.BOOLEAN); - newNullableColumnForExport("Poids_Total_Benthos_Inerte_Trie", OperationExportRow.PROPERTY_BENTHOS_TOTAL_INERT_WEIGHT, TuttiCsvUtil.FLOAT_NULL_TO_9); + newNullableColumnForExport("Poids_Total_Benthos_Inerte_Trie", OperationExportRow.PROPERTY_BENTHOS_TOTAL_INERT_WEIGHT, TuttiCsvUtil.WEIGHT_NULL_TO_9); newNullableColumnForExport("Poids_Total_Benthos_Inerte_Trie_Calcule", OperationExportRow.PROPERTY_BENTHOS_TOTAL_INERT_WEIGHT_COMPUTED, TuttiCsvUtil.BOOLEAN); - newNullableColumnForExport("Poids_Total_Benthos_Vivant_non_detaille_trie", OperationExportRow.PROPERTY_BENTHOS_TOTAL_LIVING_NOT_ITEMIZED_WEIGHT, TuttiCsvUtil.FLOAT_NULL_TO_9); + newNullableColumnForExport("Poids_Total_Benthos_Vivant_non_detaille_trie", OperationExportRow.PROPERTY_BENTHOS_TOTAL_LIVING_NOT_ITEMIZED_WEIGHT, TuttiCsvUtil.WEIGHT_NULL_TO_9); newNullableColumnForExport("Poids_Total_Benthos_Vivant_non_detaille_trie_Calcule", OperationExportRow.PROPERTY_BENTHOS_TOTAL_LIVING_NOT_ITEMIZED_WEIGHT_COMPUTED, TuttiCsvUtil.BOOLEAN); - newNullableColumnForExport("Poids_Total_Macro_Dechet", OperationExportRow.PROPERTY_MARINE_LITTER_TOTAL_WEIGHT, TuttiCsvUtil.FLOAT_NULL_TO_9); + newNullableColumnForExport("Poids_Total_Macro_Dechet", OperationExportRow.PROPERTY_MARINE_LITTER_TOTAL_WEIGHT, TuttiCsvUtil.WEIGHT_NULL_TO_9); newNullableColumnForExport("Poids_Total_Macro_Dechet_Calcule", OperationExportRow.PROPERTY_MARINE_LITTER_TOTAL_WEIGHT_COMPUTED, TuttiCsvUtil.BOOLEAN); } Modified: trunk/tutti-service/src/test/java/fr/ifremer/tutti/service/export/generic/TuttiExportServiceTest.java =================================================================== --- trunk/tutti-service/src/test/java/fr/ifremer/tutti/service/export/generic/TuttiExportServiceTest.java 2014-04-09 08:18:56 UTC (rev 1686) +++ trunk/tutti-service/src/test/java/fr/ifremer/tutti/service/export/generic/TuttiExportServiceTest.java 2014-04-15 08:09:17 UTC (rev 1687) @@ -104,10 +104,10 @@ "2013;Campagne CGFS;;GOV 19.7/25.9;A;1;1;11242;;Aaptos;|||;Vrac;1;100.0;;Poids;kg;G - Gros;1;80.0;;Poids;kg;Mâle;1;30.0;;Poids;kg;1 - Stade 1;1;10.0;5.0;Poids;kg;NA;;;;;kg;307;Longueur totale (LT) - individu - totale - Mesure au 1/2 cm par un observateur;10.5;2;;cm;0.5;2;5.0;20.0;2.0\n" + "2013;Campagne CGFS;;GOV 19.7/25.9;A;1;1;11242;;Aaptos;|||;Vrac;1;100.0;;Poids;kg;G - Gros;1;80.0;;Poids;kg;Mâle;1;30.0;;Poids;kg;1 - Stade 1;1;10.0;5.0;Poids;kg;NA;;;;;kg;307;Longueur totale (LT) - individu - totale - Mesure au 1/2 cm par un observateur;11.0;3;;cm;0.5;1;5.0;20.0;2.0\n" + "2013;Campagne CGFS;;GOV 19.7/25.9;A;1;1;11242;;Aaptos;|||;Vrac;1;100.0;;Poids;kg;G - Gros;1;80.0;;Poids;kg;Mâle;1;30.0;;Poids;kg;3 - Stade 3;3;10.0;;Poids;kg;NA;;;;;kg;307;Longueur totale (LT) - individu - totale - Mesure au 1/2 cm par un observateur;11.0;1;;cm;0.5;5;10.0;10.0;1.0\n" + - "2013;Campagne CGFS;;GOV 19.7/25.9;A;1;1;11242;;Aaptos;||;Vrac;1;100.0;;Poids;kg;G - Gros;1;80.0;;Poids;kg;Femelle;2;50.0;30.0;Poids;kg;3 - Stade 3;3;10.0;;Poids;kg;NA;;;;;kg;1425;Longueur totale (LT) - individu - queue - Mesure au cm par un observateur;10.0;1;;cm;;5;30.0;3.3333333;1.6666666\n" + - "2013;Campagne CGFS;;GOV 19.7/25.9;A;1;1;11242;;Aaptos;||;Vrac;1;100.0;;Poids;kg;G - Gros;1;80.0;;Poids;kg;Femelle;2;50.0;30.0;Poids;kg;3 - Stade 3;3;10.0;;Poids;kg;NA;;;;;kg;1425;Longueur totale (LT) - individu - queue - Mesure au cm par un observateur;11.0;2;;cm;;6;30.0;3.3333333;1.6666666\n" + - "2013;Campagne CGFS;;GOV 19.7/25.9;A;1;1;11242;;Aaptos;||;Vrac;1;100.0;;Poids;kg;G - Gros;1;80.0;;Poids;kg;Femelle;2;50.0;30.0;Poids;kg;3 - Stade 3;3;10.0;;Poids;kg;NA;;;;;kg;1425;Longueur totale (LT) - individu - queue - Mesure au cm par un observateur;12.0;3;;cm;;7;30.0;3.3333333;1.6666666\n" + - "2013;Campagne CGFS;;GOV 19.7/25.9;A;1;1;11242;;Aaptos;|;Vrac;1;100.0;;Poids;kg;M - Moyen;2;20.0;;Poids;kg;Femelle;2;50.0;30.0;Poids;kg;3 - Stade 3;3;10.0;;Poids;kg;NA;;;;;kg;;;;;;;;;20.0;5.0;1.6666666\n" + + "2013;Campagne CGFS;;GOV 19.7/25.9;A;1;1;11242;;Aaptos;||;Vrac;1;100.0;;Poids;kg;G - Gros;1;80.0;;Poids;kg;Femelle;2;50.0;30.0;Poids;kg;NA;;;;;kg;NA;;;;;kg;1425;Longueur totale (LT) - individu - queue - Mesure au cm par un observateur;10.0;1;;cm;;5;30.0;3.3333333;1.6666666\n" + + "2013;Campagne CGFS;;GOV 19.7/25.9;A;1;1;11242;;Aaptos;||;Vrac;1;100.0;;Poids;kg;G - Gros;1;80.0;;Poids;kg;Femelle;2;50.0;30.0;Poids;kg;NA;;;;;kg;NA;;;;;kg;1425;Longueur totale (LT) - individu - queue - Mesure au cm par un observateur;11.0;2;;cm;;6;30.0;3.3333333;1.6666666\n" + + "2013;Campagne CGFS;;GOV 19.7/25.9;A;1;1;11242;;Aaptos;||;Vrac;1;100.0;;Poids;kg;G - Gros;1;80.0;;Poids;kg;Femelle;2;50.0;30.0;Poids;kg;NA;;;;;kg;NA;;;;;kg;1425;Longueur totale (LT) - individu - queue - Mesure au cm par un observateur;12.0;3;;cm;;7;30.0;3.3333333;1.6666666\n" + + "2013;Campagne CGFS;;GOV 19.7/25.9;A;1;1;11242;;Aaptos;|;Vrac;1;100.0;;Poids;kg;M - Moyen;2;20.0;;Poids;kg;NA;;;;;kg;NA;;;;;kg;NA;;;;;kg;;;;;;;;;20.0;5.0;1.0\n" + "2013;Campagne CGFS;;GOV 19.7/25.9;A;1;1;11242;;Aaptos;;Hors Vrac;1;20.0;;Poids;kg;NA;;;;;kg;NA;;;;;kg;NA;;;;;kg;NA;;;;;kg;;;;;;;;2;20.0;1.0;1.0"; public static final String CATCH_CONTENT_2 =
participants (1)
-
tchemit@users.forge.codelutin.com