Tutti-commits
Threads by month
- ----- 2026 -----
- June
- May
- April
- March
- February
- January
- ----- 2025 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- 4058 discussions
r1100 - 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
by tchemit@users.forge.codelutin.com 11 Jun '13
by tchemit@users.forge.codelutin.com 11 Jun '13
11 Jun '13
Author: tchemit
Date: 2013-06-11 17:09:23 +0200 (Tue, 11 Jun 2013)
New Revision: 1100
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/1100
Log:
refs #2693: [EXPORT GENERIQUE] lot uniquement avec un nombre d'individus : la valeur du nombre n'est pas dans l'export catch.csv (cas ou il n'y a pas de capture)
Modified:
trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/TuttiCsvUtil.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/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 14:39:12 UTC (rev 1099)
+++ trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/TuttiCsvUtil.java 2013-06-11 15:09:23 UTC (rev 1100)
@@ -49,6 +49,7 @@
import java.io.Serializable;
import java.io.Writer;
+import java.lang.reflect.InvocationTargetException;
import java.text.ParseException;
import java.util.Collections;
import java.util.Date;
@@ -241,6 +242,12 @@
value = (T) PropertyUtils.getProperty(object, propertyName);
} catch (NestedNullException e) {
value = null;
+ } catch (InvocationTargetException e) {
+ if (e.getCause() instanceof NullPointerException) {
+ value = null;
+ } else {
+ throw e;
+ }
}
return value;
}
@@ -435,6 +442,7 @@
return Joiner.on('|').join(decoratedValues);
}
}
+
protected TuttiCsvUtil() {
// no instance
}
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 14:39:12 UTC (rev 1099)
+++ trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/export/OperationExportModel.java 2013-06-11 15:09:23 UTC (rev 1100)
@@ -87,56 +87,56 @@
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);
+ newNullableColumnForExport("Poids_Total", OperationExportRow.PROPERTY_CATCH_TOTAL_WEIGHT, TuttiCsvUtil.FLOAT);
+ newNullableColumnForExport("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);
+ newNullableColumnForExport("Poids_Total_Vrac", OperationExportRow.PROPERTY_CATCH_TOTAL_SORTED_WEIGHT, TuttiCsvUtil.FLOAT);
+ newNullableColumnForExport("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);
+ newNullableColumnForExport("Poids_Total_HorsVrac", OperationExportRow.PROPERTY_CATCH_TOTAL_UNSORTED_WEIGHT, TuttiCsvUtil.FLOAT);
+ newNullableColumnForExport("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);
+ newNullableColumnForExport("Poids_Total_Non_Trie", OperationExportRow.PROPERTY_CATCH_TOTAL_REJECTED_WEIGHT, TuttiCsvUtil.FLOAT);
+ newNullableColumnForExport("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);
+ newNullableColumnForExport("Poids_Total_Espece", OperationExportRow.PROPERTY_SPECIES_TOTAL_WEIGHT, TuttiCsvUtil.FLOAT);
+ newNullableColumnForExport("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);
+ newNullableColumnForExport("Poids_Total_Espece_Vrac", OperationExportRow.PROPERTY_SPECIES_TOTAL_SORTED_WEIGHT, TuttiCsvUtil.FLOAT);
+ newNullableColumnForExport("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);
+ newNullableColumnForExport("Poids_Total_Espece_Vrac_Trie", OperationExportRow.PROPERTY_SPECIES_TOTAL_SAMPLE_SORTED_WEIGHT, TuttiCsvUtil.FLOAT);
+ newNullableColumnForExport("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);
+ newNullableColumnForExport("Poids_Total_Espece_HorsVrac", OperationExportRow.PROPERTY_SPECIES_TOTAL_UNSORTED_WEIGHT, TuttiCsvUtil.FLOAT);
+ newNullableColumnForExport("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);
+ newNullableColumnForExport("Poids_Total_Espece_Inerte_Trie", OperationExportRow.PROPERTY_SPECIES_TOTAL_INERT_WEIGHT, TuttiCsvUtil.FLOAT);
+ newNullableColumnForExport("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);
+ newNullableColumnForExport("Poids_Total_Espece_Vivant_non_detaille_trie", OperationExportRow.PROPERTY_SPECIES_TOTAL_LIVING_NOT_ITEMIZED_WEIGHT, TuttiCsvUtil.FLOAT);
+ newNullableColumnForExport("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);
+ newNullableColumnForExport("Poids_Total_Benthos", OperationExportRow.PROPERTY_BENTHOS_TOTAL_WEIGHT, TuttiCsvUtil.FLOAT);
+ newNullableColumnForExport("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);
+ newNullableColumnForExport("Poids_Total_Benthos_Vrac", OperationExportRow.PROPERTY_BENTHOS_TOTAL_SORTED_WEIGHT, TuttiCsvUtil.FLOAT);
+ newNullableColumnForExport("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);
+ newNullableColumnForExport("Poids_Total_Benthos_Vrac_Trie", OperationExportRow.PROPERTY_BENTHOS_TOTAL_SAMPLE_SORTED_WEIGHT, TuttiCsvUtil.FLOAT);
+ newNullableColumnForExport("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);
+ newNullableColumnForExport("Poids_Total_Benthos_HorsVrac", OperationExportRow.PROPERTY_BENTHOS_TOTAL_UNSORTED_WEIGHT, TuttiCsvUtil.FLOAT);
+ newNullableColumnForExport("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);
+ newNullableColumnForExport("Poids_Total_Benthos_Inerte_Trie", OperationExportRow.PROPERTY_BENTHOS_TOTAL_INERT_WEIGHT, TuttiCsvUtil.FLOAT);
+ newNullableColumnForExport("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);
+ newNullableColumnForExport("Poids_Total_Benthos_Vivant_non_detaille_trie", OperationExportRow.PROPERTY_BENTHOS_TOTAL_LIVING_NOT_ITEMIZED_WEIGHT, TuttiCsvUtil.FLOAT);
+ newNullableColumnForExport("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);
+ newNullableColumnForExport("Poids_Total_Macro_Dechet", OperationExportRow.PROPERTY_MARINE_LITTER_TOTAL_WEIGHT, TuttiCsvUtil.FLOAT);
+ newNullableColumnForExport("Poids_Total_Macro_Dechet_Calcule", OperationExportRow.PROPERTY_MARINE_LITTER_TOTAL_WEIGHT_COMPUTED, TuttiCsvUtil.BOOLEAN);
}
public void prepareRows(List<OperationExportRow> rows,
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 14:39:12 UTC (rev 1099)
+++ trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/export/TuttiExportService.java 2013-06-11 15:09:23 UTC (rev 1100)
@@ -179,9 +179,9 @@
log.debug("Will export program: " + programId);
}
List<Cruise> allCruise = persistenceService.getAllCruise(programId);
- for (Cruise cruise : allCruise) {
- checkCruise(progressionModel, cruise);
- }
+// for (Cruise cruise : allCruise) {
+// checkCruise(progressionModel, cruise);
+// }
File basedir = new File(context.getConfig().newTempFile(
"exportProgram"), "exportProgram-" + programId);
@@ -560,22 +560,6 @@
}
}
- protected boolean withCatch(FishingOperation operation) {
- String operationId = operation.getId();
-
- boolean withCatchBatch =
- persistenceService.isFishingOperationWithCatchBatch(
- operationId);
-
- if (!withCatchBatch) {
- if (log.isWarnEnabled()) {
- log.warn("Skip fishing operation " + operationId +
- " since no catchBatch associated.");
- }
- }
- return withCatchBatch;
- }
-
protected static class ExportContext implements Closeable {
File surveyFile;
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 14:39:12 UTC (rev 1099)
+++ trunk/tutti-service/src/test/java/fr/ifremer/tutti/service/export/TuttiExportServiceTest.java 2013-06-11 15:09:23 UTC (rev 1100)
@@ -80,6 +80,9 @@
"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_WITH_NO_CATCH_CONTENT = "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" +
+ "2010;Campagne CGFS;;65;65;1;GOV 19.7/25.9;GWEN DREZ;13/10/2010 13:35:00;50.22833;0.31833;13/10/2010 14:05:00;50.22167;0.28333;30;Strate 4J;NA;Localité 4J2;N;Y;2512.0;NA;NA;NA;;avarie - chalut annulé completement à poil;;?;;?;;?;;?;;?;;?;;?;;?;;?;;?;;?;;?;;?;;?;;?;;?;;?;";
+
public static final String OPERATION_CONTENT =
"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" +
@@ -145,6 +148,8 @@
protected Cruise cruise;
+ protected Cruise cruiseCGFS;
+
protected List<FishingOperation> operations;
protected List<MarineLitterBatch> marineLitters;
@@ -229,6 +234,8 @@
@Test
public void exportOperations() throws Exception {
+ loadData(PROGRAM_ID, CRUISE_CGFS_ID);
+
TuttiExportService.ExportContext exportContext =
service.createExportContext(dataDirectory, null);
@@ -243,6 +250,28 @@
}
@Test
+ public void exportOperationsWithNoCatches() throws Exception {
+
+ loadData(PROGRAM_ID, CRUISE_CGFS_ID);
+
+ FishingOperation operation = TuttiEntities.findById(operations, "100105");
+ operations = Lists.newArrayList(operation);
+
+ TuttiExportService.ExportContext exportContext =
+ service.createExportContext(dataDirectory, null);
+
+ try {
+ service.exportOperations(exportContext, cruise, operations);
+ } finally {
+ exportContext.close();
+ }
+
+ assertFileContent("Operation export:\n",
+ exportContext.operationFile,
+ OPERATION_WITH_NO_CATCH_CONTENT);
+ }
+
+ @Test
public void exportParameters() throws Exception {
TuttiExportService.ExportContext exportContext =
1
0
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
by tchemit@users.forge.codelutin.com 11 Jun '13
by tchemit@users.forge.codelutin.com 11 Jun '13
11 Jun '13
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" +
1
0
r1098 - trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/table
by kmorin@users.forge.codelutin.com 11 Jun '13
by kmorin@users.forge.codelutin.com 11 Jun '13
11 Jun '13
Author: kmorin
Date: 2013-06-11 15:29:41 +0200 (Tue, 11 Jun 2013)
New Revision: 1098
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/1098
Log:
fixes #2699 [ERGO] - Tableau - Principes de d?\195?\169placement entre les champs : SHIFT + ENTREE sans effet
Modified:
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/table/AbstractTuttiTableUIHandler.java
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/table/AbstractTuttiTableUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/table/AbstractTuttiTableUIHandler.java 2013-06-11 13:21:03 UTC (rev 1097)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/table/AbstractTuttiTableUIHandler.java 2013-06-11 13:29:41 UTC (rev 1098)
@@ -444,7 +444,8 @@
}
nextCellAction.actionPerformed(null);
- } else if (keyCode == KeyEvent.VK_UP) {
+ } else if (keyCode == KeyEvent.VK_UP ||
+ (keyCode == KeyEvent.VK_ENTER && e.isShiftDown())) {
e.consume();
if (editor != null) {
editor.stopCellEditing();
1
0
r1097 - trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation
by kmorin@users.forge.codelutin.com 11 Jun '13
by kmorin@users.forge.codelutin.com 11 Jun '13
11 Jun '13
Author: kmorin
Date: 2013-06-11 15:21:03 +0200 (Tue, 11 Jun 2013)
New Revision: 1097
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/1097
Log:
fixes #2702 [ERGO] - Trait : bouton sauvegarde toujours accessible m?\195?\170me sans modifications sur l'?\195?\169cran
Modified:
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUI.css
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUIHandler.java
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUI.css
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUI.css 2013-06-11 13:08:45 UTC (rev 1096)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUI.css 2013-06-11 13:21:03 UTC (rev 1097)
@@ -567,6 +567,7 @@
text: "tutti.editFishingOperation.action.saveFishingOperation";
toolTipText: "tutti.editFishingOperation.action.saveEditFishingOperation.tip";
i18nMnemonic: "tutti.editFishingOperation.action.saveEditFishingOperation.mnemonic";
+ enabled: {model.isValid() && model.isModify()};
_tuttiAction: {SaveFishingOperationAction.class};
_help: {"tutti.editFishingOperation.action.saveEditFishingOperation.help"};
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUIHandler.java 2013-06-11 13:08:45 UTC (rev 1096)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUIHandler.java 2013-06-11 13:21:03 UTC (rev 1097)
@@ -312,17 +312,6 @@
vesselUseFeatureModel.setAvailableCaracteristics(getDataContext().getCaracteristics());
setCustomTab(2, vesselUseFeatureModel);
- model.addPropertyChangeListener(AbstractTuttiBeanUIModel.PROPERTY_VALID, new PropertyChangeListener() {
-
- @Override
- public void propertyChange(PropertyChangeEvent evt) {
- Boolean valid = (Boolean) evt.getNewValue();
- if (valid != null) {
- ui.getSaveButton().setEnabled(valid);
- }
- }
- });
-
// listen when id becones empty or not toupdate cancel action and button
getModel().addPropertyChangeListener(
EditFishingOperationUIModel.PROPERTY_ID,
1
0
r1096 - in trunk: tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service tutti-service/src/main/java/fr/ifremer/tutti/service/catches/multipost
by kmorin@users.forge.codelutin.com 11 Jun '13
by kmorin@users.forge.codelutin.com 11 Jun '13
11 Jun '13
Author: kmorin
Date: 2013-06-11 15:08:45 +0200 (Tue, 11 Jun 2013)
New Revision: 1096
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/1096
Log:
fixes #2651 [IMP/EXP] - Import/Export multi-postes : Mauvaise prise en compte des lots lors de r?\195?\169import
Modified:
trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/BenthosBatchPersistenceServiceImpl.java
trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/MarineLitterBatchPersistenceServiceImpl.java
trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/SpeciesBatchPersistenceServiceImpl.java
trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/multipost/TuttiMultiPostImportExportService.java
Modified: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/BenthosBatchPersistenceServiceImpl.java
===================================================================
--- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/BenthosBatchPersistenceServiceImpl.java 2013-06-10 15:46:02 UTC (rev 1095)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/BenthosBatchPersistenceServiceImpl.java 2013-06-11 13:08:45 UTC (rev 1096)
@@ -470,9 +470,24 @@
// Start rank order at 1
short rankOrder = (short) 1;
if (source.getParentBatch() != null && source.getParentBatch().getChildBatchs() != null) {
- rankOrder += (short) source.getParentBatch().getChildBatchs().size();
+ int maxRankOrder = 0;
+ for (BenthosBatch batch : source.getParentBatch().getChildBatchs()) {
+ Integer r = batch.getRankOrder();
+ if (r != null && r > maxRankOrder) {
+ maxRankOrder = r;
+ }
+ }
+ rankOrder += (short) maxRankOrder;
+
} else if (target.getParentBatch() != null && target.getParentBatch().getChildBatchs() != null) {
- rankOrder += (short) target.getParentBatch().getChildBatchs().size();
+ short maxRankOrder = 0;
+ for (Batch batch : target.getParentBatch().getChildBatchs()) {
+ Short r = batch.getRankOrder();
+ if (r != null && r > maxRankOrder) {
+ maxRankOrder = r;
+ }
+ }
+ rankOrder += maxRankOrder;
}
target.setRankOrder(rankOrder);
}
Modified: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/MarineLitterBatchPersistenceServiceImpl.java
===================================================================
--- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/MarineLitterBatchPersistenceServiceImpl.java 2013-06-10 15:46:02 UTC (rev 1095)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/MarineLitterBatchPersistenceServiceImpl.java 2013-06-11 13:08:45 UTC (rev 1096)
@@ -227,7 +227,14 @@
// Start rank order at 1, nothing before it
short rankOrder = (short) 1;
if (target.getParentBatch() != null && target.getParentBatch().getChildBatchs() != null) {
- rankOrder += (short) target.getParentBatch().getChildBatchs().size();
+ int maxRankOrder = 0;
+ for (Batch batch : target.getParentBatch().getChildBatchs()) {
+ Short r = batch.getRankOrder();
+ if (r != null && r > maxRankOrder) {
+ maxRankOrder = r;
+ }
+ }
+ rankOrder += maxRankOrder;
}
target.setRankOrder(rankOrder);
}
Modified: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/SpeciesBatchPersistenceServiceImpl.java
===================================================================
--- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/SpeciesBatchPersistenceServiceImpl.java 2013-06-10 15:46:02 UTC (rev 1095)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/SpeciesBatchPersistenceServiceImpl.java 2013-06-11 13:08:45 UTC (rev 1096)
@@ -512,10 +512,26 @@
// Start rank order at 1
short rankOrder = (short) 1;
if (source.getParentBatch() != null && source.getParentBatch().getChildBatchs() != null) {
- rankOrder += (short) source.getParentBatch().getChildBatchs().size();
+ int maxRankOrder = 0;
+ for (SpeciesBatch batch : source.getParentBatch().getChildBatchs()) {
+ Integer r = batch.getRankOrder();
+ if (r != null && r > maxRankOrder) {
+ maxRankOrder = r;
+ }
+ }
+ rankOrder += (short) maxRankOrder;
+
} else if (target.getParentBatch() != null && target.getParentBatch().getChildBatchs() != null) {
- rankOrder += (short) target.getParentBatch().getChildBatchs().size();
+ short maxRankOrder = 0;
+ for (Batch batch : target.getParentBatch().getChildBatchs()) {
+ Short r = batch.getRankOrder();
+ if (r != null && r > maxRankOrder) {
+ maxRankOrder = r;
+ }
+ }
+ rankOrder += maxRankOrder;
}
+
target.setRankOrder(rankOrder);
}
Modified: trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/multipost/TuttiMultiPostImportExportService.java
===================================================================
--- trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/multipost/TuttiMultiPostImportExportService.java 2013-06-10 15:46:02 UTC (rev 1095)
+++ trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/multipost/TuttiMultiPostImportExportService.java 2013-06-11 13:08:45 UTC (rev 1096)
@@ -579,7 +579,6 @@
SpeciesBatch parent = null;
if (StringUtils.isNotEmpty(parentId)) {
parent = batches.get(parentId);
- batch.setParentBatch(parent);
parentPersistedId = parent.getId();
}
@@ -786,7 +785,6 @@
BenthosBatch parent = null;
if (StringUtils.isNotEmpty(parentId)) {
parent = batches.get(parentId);
- batch.setParentBatch(parent);
parentPersistedId = parent.getId();
}
1
0
r1095 - in trunk/tutti-service/src/main: java/fr/ifremer/tutti/service/catches/multipost resources/i18n
by kmorin@users.forge.codelutin.com 10 Jun '13
by kmorin@users.forge.codelutin.com 10 Jun '13
10 Jun '13
Author: kmorin
Date: 2013-06-10 17:46:02 +0200 (Mon, 10 Jun 2013)
New Revision: 1095
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/1095
Log:
fixes #2644 [IMP/EXP] - Import/Export multi-postes : Erreur lors de l'import d'un fichier
Modified:
trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/multipost/TuttiMultiPostImportExportService.java
trunk/tutti-service/src/main/resources/i18n/tutti-service_en_GB.properties
trunk/tutti-service/src/main/resources/i18n/tutti-service_fr_FR.properties
Modified: trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/multipost/TuttiMultiPostImportExportService.java
===================================================================
--- trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/multipost/TuttiMultiPostImportExportService.java 2013-06-10 15:07:19 UTC (rev 1094)
+++ trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/multipost/TuttiMultiPostImportExportService.java 2013-06-10 15:46:02 UTC (rev 1095)
@@ -524,13 +524,12 @@
final Map<String, SpeciesBatch> batches = Maps.newHashMap();
File tempDir = Files.createTempDir();
- FileObject fileObject = TuttiIOUtil.resolveFile("zip:" + file.getAbsolutePath(),
- _("tutti.service.multipost.resolveArchive.error", file));
- TuttiIOUtil.explode(fileObject,
- tempDir,
- new AllFileSelector(),
- _("tutti.service.multipost.explodeArchive.error", file));
+ try {
+ ZipUtil.uncompress(file, tempDir);
+ } catch (IOException e) {
+ throw new TuttiTechnicalException(_("tutti.service.multipost.uncompress.error", file));
+ }
//check operation
CatchWeightsRowModel weightsModel = new CatchWeightsRowModel(csvSeparator);
@@ -733,14 +732,12 @@
final Map<String, BenthosBatch> batches = Maps.newHashMap();
File tempDir = Files.createTempDir();
- FileObject fileObject = TuttiIOUtil.resolveFile("zip:" + file.getAbsolutePath(),
- _("tutti.service.multipost.resolveArchive.error", file));
+ try {
+ ZipUtil.uncompress(file, tempDir);
+ } catch (IOException e) {
+ throw new TuttiTechnicalException(_("tutti.service.multipost.uncompress.error", file));
+ }
- TuttiIOUtil.explode(fileObject,
- tempDir,
- new AllFileSelector(),
- _("tutti.service.multipost.explodeArchive.error", file));
-
//check operation
CatchWeightsRowModel weightsModel = new CatchWeightsRowModel(csvSeparator);
checkSameOperation(tempDir, weightsModel, operation);
@@ -942,14 +939,12 @@
final Map<String, MarineLitterBatch> batches = Maps.newHashMap();
File tempDir = Files.createTempDir();
- FileObject fileObject = TuttiIOUtil.resolveFile("zip:" + file.getAbsolutePath(),
- _("tutti.service.multipost.resolveArchive.error", file));
+ try {
+ ZipUtil.uncompress(file, tempDir);
+ } catch (IOException e) {
+ throw new TuttiTechnicalException(_("tutti.service.multipost.uncompress.error", file));
+ }
- TuttiIOUtil.explode(fileObject,
- tempDir,
- new AllFileSelector(),
- _("tutti.service.multipost.explodeArchive.error", file));
-
//check operation
MarineLitterWeightRowModel weightModel = new MarineLitterWeightRowModel(csvSeparator);
checkSameOperation(tempDir, weightModel, operation);
@@ -1072,14 +1067,12 @@
final Map<String, IndividualObservationBatch> batches = Maps.newLinkedHashMap();
File tempDir = Files.createTempDir();
- FileObject fileObject = TuttiIOUtil.resolveFile("zip:" + file.getAbsolutePath(),
- _("tutti.service.multipost.resolveArchive.error", file));
+ try {
+ ZipUtil.uncompress(file, tempDir);
+ } catch (IOException e) {
+ throw new TuttiTechnicalException(_("tutti.service.multipost.uncompress.error", file));
+ }
- TuttiIOUtil.explode(fileObject,
- tempDir,
- new AllFileSelector(),
- _("tutti.service.multipost.explodeArchive.error", file));
-
//check operation
FishingOperationRowModel operationModel = new FishingOperationRowModel(csvSeparator);
checkSameOperation(tempDir, operationModel, operation);
@@ -1188,14 +1181,12 @@
final Map<String, AccidentalBatch> batches = Maps.newLinkedHashMap();
File tempDir = Files.createTempDir();
- FileObject fileObject = TuttiIOUtil.resolveFile("zip:" + file.getAbsolutePath(),
- _("tutti.service.multipost.resolveArchive.error", file));
+ try {
+ ZipUtil.uncompress(file, tempDir);
+ } catch (IOException e) {
+ throw new TuttiTechnicalException(_("tutti.service.multipost.uncompress.error", file));
+ }
- TuttiIOUtil.explode(fileObject,
- tempDir,
- new AllFileSelector(),
- _("tutti.service.multipost.explodeArchive.error", file));
-
//check operation
FishingOperationRowModel operationModel = new FishingOperationRowModel(csvSeparator);
checkSameOperation(tempDir, operationModel, operation);
Modified: trunk/tutti-service/src/main/resources/i18n/tutti-service_en_GB.properties
===================================================================
--- trunk/tutti-service/src/main/resources/i18n/tutti-service_en_GB.properties 2013-06-10 15:07:19 UTC (rev 1094)
+++ trunk/tutti-service/src/main/resources/i18n/tutti-service_en_GB.properties 2013-06-10 15:46:02 UTC (rev 1095)
@@ -106,6 +106,7 @@
tutti.service.multipost.import.weights.error=
tutti.service.multipost.import.wrongOperation.error=
tutti.service.multipost.resolveArchive.error=
+tutti.service.multipost.uncompress.error=
tutti.service.operations.accidental.error.species.required=
tutti.service.operations.computeWeights.benthos.error.incoherentCategoryWeight=
tutti.service.operations.computeWeights.benthos.error.incoherentParentCategoryWeight=
Modified: trunk/tutti-service/src/main/resources/i18n/tutti-service_fr_FR.properties
===================================================================
--- trunk/tutti-service/src/main/resources/i18n/tutti-service_fr_FR.properties 2013-06-10 15:07:19 UTC (rev 1094)
+++ trunk/tutti-service/src/main/resources/i18n/tutti-service_fr_FR.properties 2013-06-10 15:46:02 UTC (rev 1095)
@@ -84,7 +84,6 @@
tutti.service.exportSumatra.header.weight=Total
tutti.service.mkDir.error=Erreur à la création du dossier %s
tutti.service.multipost.attachment.copy.error=Erreur lors de l'export de la pièce-jointe %s
-tutti.service.multipost.explodeArchive.error=Erreur lors de la décompression de l'archive
tutti.service.multipost.export.attachments.error=Erreur lors de l'export des pièces-jointes
tutti.service.multipost.export.batches.error=Erreur lors de l'export des lots
tutti.service.multipost.export.deleteTempDirectory.error=Erreur lors de la suppression du dossier temporaire
@@ -99,8 +98,8 @@
tutti.service.multipost.import.frequencies.error=Erreur lors de l'import des mensurations
tutti.service.multipost.import.operation.error=Erreur lors de l'import des données du trait
tutti.service.multipost.import.weights.error=Erreur lors de l'import des poids
-tutti.service.multipost.import.wrongOperation.error=Opération est impossible<hr/>Les lots que vous essayez d'importer proviennent d'un autre trait :<br/>%s
-tutti.service.multipost.resolveArchive.error=Erreur lors de l'ouverture de l'archive
+tutti.service.multipost.import.wrongOperation.error=Opération est impossible<hr/>Les lots que vous essayez d'importer proviennent d'un autre trait \:<br/>%s
+tutti.service.multipost.uncompress.error=Erreur lors de la décompression de l'archive %s
tutti.service.operations.computeWeights.error.benthos.incoherentCategoryWeight=Benthos - Le poids total des mensurations du lot de %s/%s - %s (%skg) est supérieur au poids de la catégorie (%skg)
tutti.service.operations.computeWeights.error.benthos.incoherentParentCategoryWeight=Benthos - Le poids du lot de %s/%s - %s (%skg) est inférieur à la somme des poids de ses sous-catégories (%skg)
tutti.service.operations.computeWeights.error.benthos.incoherentRowWeightCategory=Le poids de sous-échantillon est renseigné alors que le lot n'a pas de poids.
1
0
r1094 - trunk/tutti-service/src/test/java/fr/ifremer/tutti/service/export
by tchemit@users.forge.codelutin.com 10 Jun '13
by tchemit@users.forge.codelutin.com 10 Jun '13
10 Jun '13
Author: tchemit
Date: 2013-06-10 17:07:19 +0200 (Mon, 10 Jun 2013)
New Revision: 1094
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/1094
Log:
ignore test
Modified:
trunk/tutti-service/src/test/java/fr/ifremer/tutti/service/export/TuttiExportServiceTest.java
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-10 15:04:25 UTC (rev 1093)
+++ trunk/tutti-service/src/test/java/fr/ifremer/tutti/service/export/TuttiExportServiceTest.java 2013-06-10 15:07:19 UTC (rev 1094)
@@ -44,6 +44,7 @@
import org.junit.Assert;
import org.junit.Before;
import org.junit.ClassRule;
+import org.junit.Ignore;
import org.junit.Test;
import java.io.File;
@@ -182,6 +183,7 @@
progressionModel.setTotal(8);
}
+ @Ignore
@Test
public void exportProgram() throws Exception {
1
0
r1093 - in trunk/tutti-service/src: main/java/fr/ifremer/tutti/service/export test/java/fr/ifremer/tutti/service/export
by tchemit@users.forge.codelutin.com 10 Jun '13
by tchemit@users.forge.codelutin.com 10 Jun '13
10 Jun '13
Author: tchemit
Date: 2013-06-10 17:04:25 +0200 (Mon, 10 Jun 2013)
New Revision: 1093
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/1093
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/export/CatchExportModel.java
trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/export/CatchExportRow.java
trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/export/ExportSampleCategory.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/export/CatchExportModel.java
===================================================================
--- trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/export/CatchExportModel.java 2013-06-10 14:45:01 UTC (rev 1092)
+++ trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/export/CatchExportModel.java 2013-06-10 15:04:25 UTC (rev 1093)
@@ -76,7 +76,7 @@
switch (sampleCategoryEnum) {
case sortedUnsorted:
- addSampleCategory("VracHorVrac", CatchExportRow.SORTED_UNSORTED_SAMPLE_CATEGORY);
+ addSampleCategory("VracHorsVrac", CatchExportRow.SORTED_UNSORTED_SAMPLE_CATEGORY);
break;
case size:
addSampleCategory("Cat_Tri", CatchExportRow.SIZE_SAMPLE_CATEGORY);
@@ -101,7 +101,7 @@
newNullableColumnForExport("Poids_Classe_Taille", CatchExportRow.FREQUENCY_WEIGHT, TuttiCsvUtil.FLOAT);
newNullableColumnForExport("Unite_Taille", CatchExportRow.FREQUENCY_LENGTH_STEP_CARACTERISTIC + "." + Caracteristic.PROPERTY_UNIT);
newNullableColumnForExport("Precision_Mesure", CatchExportRow.FREQUENCY_LENGTH_STEP_CARACTERISTIC + "." + Caracteristic.PROPERTY_PRECISION, TuttiCsvUtil.FLOAT);
- newNullableColumnForExport("Nbr", CatchExportRow.FREQUENCY_NUMBER, TuttiCsvUtil.INTEGER);
+ newNullableColumnForExport("Nbr", CatchExportRow.BATCH_NUMBER, TuttiCsvUtil.INTEGER);
newColumnForExport("Poids_Reference", CatchExportRow.REFERENCE_WEIGHT, TuttiCsvUtil.PRIMITIVE_FLOAT);
newColumnForExport("Coef_Final_Elevation", CatchExportRow.RAISING_FACTOR, TuttiCsvUtil.PRIMITIVE_FLOAT);
@@ -168,7 +168,7 @@
speciesBatch.getSampleCategoryComputedWeight(),
speciesBatch.getWeight(),
speciesBatch.getNumber(),
- speciesBatch.getComputedNumber(),
+// speciesBatch.getComputedNumber(),
speciesBatch.getRankOrder());
if (speciesBatch.isChildBatchsEmpty()) {
@@ -259,7 +259,7 @@
speciesBatch.getSampleCategoryComputedWeight(),
speciesBatch.getWeight(),
speciesBatch.getNumber(),
- speciesBatch.getComputedNumber(),
+// speciesBatch.getComputedNumber(),
speciesBatch.getRankOrder());
CatchExportRow row = currentRow.copy();
@@ -281,7 +281,7 @@
benthosBatch.getSampleCategoryComputedWeight(),
benthosBatch.getWeight(),
benthosBatch.getNumber(),
- benthosBatch.getComputedNumber(),
+// benthosBatch.getComputedNumber(),
benthosBatch.getRankOrder());
if (benthosBatch.isChildBatchsEmpty()) {
@@ -372,7 +372,7 @@
benthosBatch.getSampleCategoryComputedWeight(),
benthosBatch.getWeight(),
benthosBatch.getNumber(),
- benthosBatch.getComputedNumber(),
+// benthosBatch.getComputedNumber(),
benthosBatch.getRankOrder());
CatchExportRow row = currentRow.copy();
@@ -396,9 +396,11 @@
Float sampleCategoryComputedWeight,
Float batchWeight,
Integer batchNumber,
- Integer batchComputedNumber,
+// Integer batchComputedNumber,
Integer batchRankOrder
) {
+ currentRow.setBatchNumber(batchNumber);
+
ExportSampleCategory<Serializable> sampleCategory =
new ExportSampleCategory<Serializable>();
Caracteristic caracteristic = sampleCategoryToCaracteristics.get(sampleCategoryType);
@@ -409,8 +411,7 @@
sampleCategory.setSampleWeight(batchWeight);
sampleCategory.setComputedWeight(sampleCategoryComputedWeight);
- sampleCategory.setNumber(batchNumber);
- sampleCategory.setComputedNumber(batchComputedNumber);
+// sampleCategory.setComputedNumber(batchComputedNumber);
sampleCategory.setWeightOrVolType(WEIGHT_OR_VOL_TYPE);
sampleCategory.setRankOrder(batchRankOrder);
Modified: trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/export/CatchExportRow.java
===================================================================
--- trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/export/CatchExportRow.java 2013-06-10 14:45:01 UTC (rev 1092)
+++ trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/export/CatchExportRow.java 2013-06-10 15:04:25 UTC (rev 1093)
@@ -24,6 +24,7 @@
* #L%
*/
+import com.google.common.base.Preconditions;
import com.google.common.collect.Maps;
import fr.ifremer.tutti.persistence.entities.data.BenthosBatchFrequency;
import fr.ifremer.tutti.persistence.entities.data.Cruise;
@@ -73,6 +74,8 @@
public static final String RAISING_FACTOR = "raisingFactor";
+ public static final String BATCH_NUMBER = "batchNumber";
+
protected Cruise cruise;
protected FishingOperation fishingOperation;
@@ -88,8 +91,11 @@
protected Species species;
protected float referenceWeight;
+
protected float raisingFactor;
+ protected Integer batchNumber;
+
public void setCruise(Cruise cruise) {
this.cruise = cruise;
}
@@ -110,16 +116,24 @@
this.raisingFactor = raisingFactor;
}
+ public void setBatchNumber(Integer batchNumber) {
+ this.batchNumber = batchNumber;
+ }
+
public void addCategory(ExportSampleCategory sampleCategory) {
categories.put(sampleCategory.getCategoryType(), sampleCategory);
}
public void setSpeciesFrequency(SpeciesBatchFrequency speciesFrequency) {
+ Preconditions.checkNotNull(speciesFrequency);
this.speciesFrequency = speciesFrequency;
+ this.batchNumber = speciesFrequency.getNumber();
}
public void setBenthosFrequency(BenthosBatchFrequency benthosFrequency) {
+ Preconditions.checkNotNull(benthosFrequency);
this.benthosFrequency = benthosFrequency;
+ this.batchNumber = benthosFrequency.getNumber();
}
public Date getBeginDate() {
@@ -198,17 +212,26 @@
return raisingFactor;
}
+ public Integer getBatchNumber() {
+ return batchNumber;
+ }
+
public CatchExportRow copy() {
CatchExportRow result = new CatchExportRow();
result.setCruise(cruise);
result.setFishingOperation(fishingOperation);
result.setSpeciesCategory(speciesCategory);
result.categories.putAll(categories);
- result.setBenthosFrequency(benthosFrequency);
- result.setSpeciesFrequency(speciesFrequency);
+ if (benthosFrequency != null) {
+ result.setBenthosFrequency(benthosFrequency);
+ }
+ if (speciesFrequency != null) {
+ result.setSpeciesFrequency(speciesFrequency);
+ }
result.setSpecies(species);
result.setRaisingFactor(raisingFactor);
result.setReferenceWeight(referenceWeight);
+ result.setBatchNumber(batchNumber);
return result;
}
}
\ No newline at end of file
Modified: trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/export/ExportSampleCategory.java
===================================================================
--- trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/export/ExportSampleCategory.java 2013-06-10 14:45:01 UTC (rev 1092)
+++ trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/export/ExportSampleCategory.java 2013-06-10 15:04:25 UTC (rev 1093)
@@ -58,10 +58,10 @@
public static final String PROPERTY_SAMPLE_WEIGHT = "sampleWeight";
- private Integer number;
+// private Integer number;
+//
+// private Integer computedNumber;
- private Integer computedNumber;
-
private Integer rankOrder;
private String weightOrVolType;
@@ -70,22 +70,22 @@
private Caracteristic categoryCaracteristic;
- public Integer getNumber() {
- return number;
- }
+// public Integer getNumber() {
+// return number;
+// }
+//
+// public void setNumber(Integer number) {
+// this.number = number;
+// }
+//
+// public Integer getComputedNumber() {
+// return computedNumber;
+// }
+//
+// public void setComputedNumber(Integer computedNumber) {
+// this.computedNumber = computedNumber;
+// }
- public void setNumber(Integer number) {
- this.number = number;
- }
-
- public Integer getComputedNumber() {
- return computedNumber;
- }
-
- public void setComputedNumber(Integer computedNumber) {
- this.computedNumber = computedNumber;
- }
-
public String getWeightOrVolType() {
return weightOrVolType;
}
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-10 14:45:01 UTC (rev 1092)
+++ trunk/tutti-service/src/test/java/fr/ifremer/tutti/service/export/TuttiExportServiceTest.java 2013-06-10 15:04:25 UTC (rev 1093)
@@ -95,7 +95,7 @@
"2013;Campagne CGFS;;A;2;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;Vrac;Num_Ordre_Vrac_H2;Tot_Vrac;Ech_Vrac;Type_Volume_Poids_Vrac;Unite_Volume_Poids_Vrac;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" +
+ "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" +
@@ -104,7 +104,7 @@
"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;;;;;;;;;;;;;20.0;1.0;";
+ "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;";
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" +
1
0
r1092 - in trunk/tutti-service/src/main: java/fr/ifremer/tutti/service/catches/multipost resources/i18n
by kmorin@users.forge.codelutin.com 10 Jun '13
by kmorin@users.forge.codelutin.com 10 Jun '13
10 Jun '13
Author: kmorin
Date: 2013-06-10 16:45:01 +0200 (Mon, 10 Jun 2013)
New Revision: 1092
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/1092
Log:
fixes #2615 [IMP/EXP] - Import/Export multi-postes : pas de contr?\195?\180le sur l'ID op?\195?\169ration
Added:
trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/multipost/AbstractFishingOperationRow.java
trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/multipost/AbstractFishingOperationRowModel.java
trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/multipost/FishingOperationRow.java
trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/multipost/FishingOperationRowModel.java
Modified:
trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/multipost/CatchWeightsRow.java
trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/multipost/CatchWeightsRowModel.java
trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/multipost/MarineLitterWeightRow.java
trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/multipost/MarineLitterWeightRowModel.java
trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/multipost/TuttiMultiPostImportExportService.java
trunk/tutti-service/src/main/resources/i18n/tutti-service_en_GB.properties
trunk/tutti-service/src/main/resources/i18n/tutti-service_fr_FR.properties
Added: trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/multipost/AbstractFishingOperationRow.java
===================================================================
--- trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/multipost/AbstractFishingOperationRow.java (rev 0)
+++ trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/multipost/AbstractFishingOperationRow.java 2013-06-10 14:45:01 UTC (rev 1092)
@@ -0,0 +1,58 @@
+package fr.ifremer.tutti.service.catches.multipost;
+
+import java.util.Date;
+
+/**
+ * @author kmorin <kmorin(a)codelutin.com>
+ * @since 2.3.1
+ */
+public abstract class AbstractFishingOperationRow {
+
+ public static final String STATION_NUMBER = "stationNumber";
+
+ public static final String OPERATION_NUMBER = "operationNumber";
+
+ public static final String MULTIRIG_AGGREGATION = "multirigAggregation";
+
+ public static final String DATE = "date";
+
+ protected String stationNumber;
+
+ protected Integer operationNumber;
+
+ protected String multirigAggregation;
+
+ protected Date date;
+
+ public String getStationNumber() {
+ return stationNumber;
+ }
+
+ public void setStationNumber(String stationNumber) {
+ this.stationNumber = stationNumber;
+ }
+
+ public Integer getOperationNumber() {
+ return operationNumber;
+ }
+
+ public void setOperationNumber(Integer operationNumber) {
+ this.operationNumber = operationNumber;
+ }
+
+ public String getMultirigAggregation() {
+ return multirigAggregation;
+ }
+
+ public void setMultirigAggregation(String multirigAggregation) {
+ this.multirigAggregation = multirigAggregation;
+ }
+
+ public Date getDate() {
+ return date;
+ }
+
+ public void setDate(Date date) {
+ this.date = date;
+ }
+}
Added: trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/multipost/AbstractFishingOperationRowModel.java
===================================================================
--- trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/multipost/AbstractFishingOperationRowModel.java (rev 0)
+++ trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/multipost/AbstractFishingOperationRowModel.java 2013-06-10 14:45:01 UTC (rev 1092)
@@ -0,0 +1,20 @@
+package fr.ifremer.tutti.service.catches.multipost;
+
+import fr.ifremer.tutti.service.TuttiCsvUtil;
+
+/**
+ * @author kmorin <kmorin(a)codelutin.com>
+ * @since 2.3.1
+ */
+public abstract class AbstractFishingOperationRowModel<FO extends AbstractFishingOperationRow>
+ extends TuttiCsvUtil.AbstractTuttiImportExportModel<FO> {
+
+ public AbstractFishingOperationRowModel(char separator) {
+ super(separator);
+
+ newColumnForImportExport(FishingOperationRow.STATION_NUMBER);
+ newColumnForImportExport(FishingOperationRow.OPERATION_NUMBER, TuttiCsvUtil.INTEGER);
+ newColumnForImportExport(FishingOperationRow.MULTIRIG_AGGREGATION);
+ newColumnForImportExport(FishingOperationRow.DATE, TuttiCsvUtil.DAY_TIME);
+ }
+}
Modified: trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/multipost/CatchWeightsRow.java
===================================================================
--- trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/multipost/CatchWeightsRow.java 2013-06-10 13:40:13 UTC (rev 1091)
+++ trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/multipost/CatchWeightsRow.java 2013-06-10 14:45:01 UTC (rev 1092)
@@ -28,7 +28,7 @@
* @author kmorin <kmorin(a)codelutin.com>
* @since 2.3
*/
-public class CatchWeightsRow {
+public class CatchWeightsRow extends AbstractFishingOperationRow {
public static final String TOTAL_SORTED_WEIGHT = "totalSortedWeight";
Modified: trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/multipost/CatchWeightsRowModel.java
===================================================================
--- trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/multipost/CatchWeightsRowModel.java 2013-06-10 13:40:13 UTC (rev 1091)
+++ trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/multipost/CatchWeightsRowModel.java 2013-06-10 14:45:01 UTC (rev 1092)
@@ -30,7 +30,7 @@
* @author kmorin <kmorin(a)codelutin.com>
* @since 2.3
*/
-public class CatchWeightsRowModel extends TuttiCsvUtil.AbstractTuttiImportExportModel<CatchWeightsRow> {
+public class CatchWeightsRowModel extends AbstractFishingOperationRowModel<CatchWeightsRow> {
public CatchWeightsRowModel(char separator) {
super(separator);
Added: trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/multipost/FishingOperationRow.java
===================================================================
--- trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/multipost/FishingOperationRow.java (rev 0)
+++ trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/multipost/FishingOperationRow.java 2013-06-10 14:45:01 UTC (rev 1092)
@@ -0,0 +1,10 @@
+package fr.ifremer.tutti.service.catches.multipost;
+
+import java.util.Date;
+
+/**
+ * @author kmorin <kmorin(a)codelutin.com>
+ * @since 2.3.1
+ */
+public class FishingOperationRow extends AbstractFishingOperationRow {
+}
Added: trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/multipost/FishingOperationRowModel.java
===================================================================
--- trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/multipost/FishingOperationRowModel.java (rev 0)
+++ trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/multipost/FishingOperationRowModel.java 2013-06-10 14:45:01 UTC (rev 1092)
@@ -0,0 +1,19 @@
+package fr.ifremer.tutti.service.catches.multipost;
+
+import fr.ifremer.tutti.service.TuttiCsvUtil;
+
+/**
+ * @author kmorin <kmorin(a)codelutin.com>
+ * @since 2.3.1
+ */
+public class FishingOperationRowModel extends AbstractFishingOperationRowModel<FishingOperationRow> {
+
+ public FishingOperationRowModel(char separator) {
+ super(separator);
+ }
+
+ @Override
+ public FishingOperationRow newEmptyInstance() {
+ return new FishingOperationRow();
+ }
+}
Modified: trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/multipost/MarineLitterWeightRow.java
===================================================================
--- trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/multipost/MarineLitterWeightRow.java 2013-06-10 13:40:13 UTC (rev 1091)
+++ trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/multipost/MarineLitterWeightRow.java 2013-06-10 14:45:01 UTC (rev 1092)
@@ -28,7 +28,7 @@
* @author kmorin <kmorin(a)codelutin.com>
* @since 2.3
*/
-public class MarineLitterWeightRow {
+public class MarineLitterWeightRow extends AbstractFishingOperationRow {
public static final String TOTAL_WEIGHT = "totalWeight";
Modified: trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/multipost/MarineLitterWeightRowModel.java
===================================================================
--- trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/multipost/MarineLitterWeightRowModel.java 2013-06-10 13:40:13 UTC (rev 1091)
+++ trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/multipost/MarineLitterWeightRowModel.java 2013-06-10 14:45:01 UTC (rev 1092)
@@ -30,7 +30,7 @@
* @author kmorin <kmorin(a)codelutin.com>
* @since 2.3
*/
-public class MarineLitterWeightRowModel extends TuttiCsvUtil.AbstractTuttiImportExportModel<MarineLitterWeightRow> {
+public class MarineLitterWeightRowModel extends AbstractFishingOperationRowModel<MarineLitterWeightRow> {
public MarineLitterWeightRowModel(char separator) {
super(separator);
Modified: trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/multipost/TuttiMultiPostImportExportService.java
===================================================================
--- trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/multipost/TuttiMultiPostImportExportService.java 2013-06-10 13:40:13 UTC (rev 1091)
+++ trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/multipost/TuttiMultiPostImportExportService.java 2013-06-10 14:45:01 UTC (rev 1092)
@@ -31,6 +31,7 @@
import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
import com.google.common.io.Files;
+import fr.ifremer.tutti.TuttiBusinessException;
import fr.ifremer.tutti.TuttiIOUtil;
import fr.ifremer.tutti.TuttiTechnicalException;
import fr.ifremer.tutti.persistence.entities.CaracteristicMap;
@@ -46,6 +47,7 @@
import fr.ifremer.tutti.service.TuttiDataContext;
import fr.ifremer.tutti.service.TuttiServiceContext;
import org.apache.commons.io.IOUtils;
+import org.apache.commons.lang3.ObjectUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
@@ -158,6 +160,7 @@
weights.setTotalSortedWeight(catchBatch.getSpeciesTotalSortedWeight());
weights.setInertWeight(catchBatch.getSpeciesTotalInertWeight());
weights.setLivingNotItemizedWeight(catchBatch.getSpeciesTotalLivingNotItemizedWeight());
+ exportOperation(weights, operation);
exportCatches(file, SPECIES_FILE, weights, rows, frequencyRows, attachmentRows);
}
@@ -191,6 +194,7 @@
weights.setTotalSortedWeight(catchBatch.getBenthosTotalSortedWeight());
weights.setInertWeight(catchBatch.getBenthosTotalInertWeight());
weights.setLivingNotItemizedWeight(catchBatch.getBenthosTotalLivingNotItemizedWeight());
+ exportOperation(weights, operation);
exportCatches(file, BENTHOS_FILE, weights, rows, frequencyRows, attachmentRows);
}
@@ -253,6 +257,7 @@
CatchBatch catchBatch = persistenceService.getCatchBatchFromFishingOperation(operationId);
MarineLitterWeightRow weight = new MarineLitterWeightRow();
weight.setTotalWeight(catchBatch.getMarineLitterTotalWeight());
+ exportOperation(weight, operation);
MarineLitterWeightRowModel weightModel = new MarineLitterWeightRowModel(csvSeparator);
@@ -358,6 +363,25 @@
IOUtils.closeQuietly(writer);
}
+ // export operation
+ FishingOperationRow foRow = new FishingOperationRow();
+ exportOperation(foRow, operation);
+
+ FishingOperationRowModel foRowModel = new FishingOperationRowModel(csvSeparator);
+
+ File weightFile = new File(directory, WEIGHTS_FILE);
+ file2zip.add(weightFile);
+ try {
+ writer = Files.newWriter(weightFile, Charsets.UTF_8);
+ Export export = Export.newExport(foRowModel, Lists.newArrayList(foRow));
+ export.write(writer);
+ writer.close();
+ } catch (Exception e) {
+ throw new TuttiTechnicalException(_("tutti.service.multipost.export.operation.error", weightFile), e);
+ } finally {
+ IOUtils.closeQuietly(writer);
+ }
+
exportAttachments(directory, file2zip, attachmentRows);
try {
@@ -446,6 +470,25 @@
IOUtils.closeQuietly(writer);
}
+ // export operation
+ FishingOperationRow foRow = new FishingOperationRow();
+ exportOperation(foRow, operation);
+
+ FishingOperationRowModel foRowModel = new FishingOperationRowModel(csvSeparator);
+
+ File weightFile = new File(directory, WEIGHTS_FILE);
+ file2zip.add(weightFile);
+ try {
+ writer = Files.newWriter(weightFile, Charsets.UTF_8);
+ Export export = Export.newExport(foRowModel, Lists.newArrayList(foRow));
+ export.write(writer);
+ writer.close();
+ } catch (Exception e) {
+ throw new TuttiTechnicalException(_("tutti.service.multipost.export.operation.error", weightFile), e);
+ } finally {
+ IOUtils.closeQuietly(writer);
+ }
+
exportAttachments(directory, file2zip, attachmentRows);
try {
@@ -489,6 +532,10 @@
new AllFileSelector(),
_("tutti.service.multipost.explodeArchive.error", file));
+ //check operation
+ CatchWeightsRowModel weightsModel = new CatchWeightsRowModel(csvSeparator);
+ checkSameOperation(tempDir, weightsModel, operation);
+
// Import batches
File speciesFile = new File(tempDir, SPECIES_FILE);
@@ -578,7 +625,7 @@
}
CatchFrequencyRowModel frequencyModel = new CatchFrequencyRowModel(csvSeparator,
- dataContext.getLengthStepCaracteristics());
+ dataContext.getCaracteristics());
Import<CatchFrequencyRow> frequencyImporter = Import.newImport(frequencyModel, reader);
@@ -628,7 +675,6 @@
throw new TuttiTechnicalException(_("tutti.service.multipost.import.weights.error", weightsFile), e);
}
- CatchWeightsRowModel weightsModel = new CatchWeightsRowModel(csvSeparator);
Import<CatchWeightsRow> weights = Import.newImport(weightsModel, reader);
Iterator<CatchWeightsRow> iterator = weights.iterator();
@@ -695,6 +741,10 @@
new AllFileSelector(),
_("tutti.service.multipost.explodeArchive.error", file));
+ //check operation
+ CatchWeightsRowModel weightsModel = new CatchWeightsRowModel(csvSeparator);
+ checkSameOperation(tempDir, weightsModel, operation);
+
// Import batches
File benthosFile = new File(tempDir, BENTHOS_FILE);
@@ -784,7 +834,7 @@
}
CatchFrequencyRowModel frequencyModel = new CatchFrequencyRowModel(csvSeparator,
- dataContext.getLengthStepCaracteristics());
+ dataContext.getCaracteristics());
Import<CatchFrequencyRow> frequencyImporter = Import.newImport(frequencyModel, reader);
@@ -834,7 +884,6 @@
throw new TuttiTechnicalException(_("tutti.service.multipost.import.weights.error", weightsFile), e);
}
- CatchWeightsRowModel weightsModel = new CatchWeightsRowModel(csvSeparator);
Import<CatchWeightsRow> weights = Import.newImport(weightsModel, reader);
Iterator<CatchWeightsRow> iterator = weights.iterator();
@@ -901,6 +950,10 @@
new AllFileSelector(),
_("tutti.service.multipost.explodeArchive.error", file));
+ //check operation
+ MarineLitterWeightRowModel weightModel = new MarineLitterWeightRowModel(csvSeparator);
+ checkSameOperation(tempDir, weightModel, operation);
+
// Import batches
File marineLitterFile = new File(tempDir, MARINE_LITTER_FILE);
@@ -985,7 +1038,6 @@
throw new TuttiTechnicalException(_("tutti.service.multipost.import.weights.error", weightsFile), e);
}
- MarineLitterWeightRowModel weightModel = new MarineLitterWeightRowModel(csvSeparator);
Import<MarineLitterWeightRow> weight = Import.newImport(weightModel, reader);
Iterator<MarineLitterWeightRow> iterator = weight.iterator();
@@ -1028,6 +1080,10 @@
new AllFileSelector(),
_("tutti.service.multipost.explodeArchive.error", file));
+ //check operation
+ FishingOperationRowModel operationModel = new FishingOperationRowModel(csvSeparator);
+ checkSameOperation(tempDir, operationModel, operation);
+
// Import batches
File observationFile = new File(tempDir, INDIVIDUAL_OBSERVATION_FILE);
@@ -1140,6 +1196,10 @@
new AllFileSelector(),
_("tutti.service.multipost.explodeArchive.error", file));
+ //check operation
+ FishingOperationRowModel operationModel = new FishingOperationRowModel(csvSeparator);
+ checkSameOperation(tempDir, operationModel, operation);
+
// Import batches
File accidentalFile = new File(tempDir, ACCIDENTAL_CATCHES_FILE);
@@ -1397,6 +1457,13 @@
}
}
+ protected void exportOperation(AbstractFishingOperationRow afoRow, FishingOperation operation) {
+ afoRow.setStationNumber(operation.getStationNumber());
+ afoRow.setOperationNumber(operation.getFishingOperationNumber());
+ afoRow.setMultirigAggregation(operation.getMultirigAggregation());
+ afoRow.setDate(operation.getGearShootingStartDate());
+ }
+
protected void exportAttachments(File directory, List<File> file2zip, List<AttachmentRow> attachmentRows) {
AttachmentRowModel csvAttachmentModel = new AttachmentRowModel(csvSeparator);
@@ -1536,4 +1603,34 @@
}
}
}
+
+ protected void checkSameOperation(File directory,
+ AbstractFishingOperationRowModel fishingOperationRowModel,
+ FishingOperation operation) {
+ File operationFile = new File(directory, WEIGHTS_FILE);
+ Reader reader;
+
+ try {
+ reader = Files.newReader(operationFile, Charsets.UTF_8);
+
+ } catch (FileNotFoundException e) {
+ throw new TuttiTechnicalException(_("tutti.service.multipost.import.operation.error", operationFile), e);
+ }
+
+ Import<AbstractFishingOperationRow> fishingOperationImporter = Import.newImport(fishingOperationRowModel, reader);
+
+ Iterator<AbstractFishingOperationRow> iterator = fishingOperationImporter.iterator();
+ if (iterator.hasNext()) {
+ AbstractFishingOperationRow row = iterator.next();
+ if (ObjectUtils.notEqual(row.getStationNumber(), operation.getStationNumber())
+ || ObjectUtils.notEqual(row.getOperationNumber(), operation.getFishingOperationNumber())
+ || ObjectUtils.notEqual(row.getMultirigAggregation(), operation.getMultirigAggregation())
+ || ObjectUtils.notEqual(row.getDate(), operation.getGearShootingStartDate())) {
+
+ throw new TuttiBusinessException(_("tutti.service.multipost.import.wrongOperation.error",
+ decoratorService.getDecoratorByType(FishingOperation.class)
+ .toString(operation)));
+ }
+ }
+ }
}
Modified: trunk/tutti-service/src/main/resources/i18n/tutti-service_en_GB.properties
===================================================================
--- trunk/tutti-service/src/main/resources/i18n/tutti-service_en_GB.properties 2013-06-10 13:40:13 UTC (rev 1091)
+++ trunk/tutti-service/src/main/resources/i18n/tutti-service_en_GB.properties 2013-06-10 14:45:01 UTC (rev 1092)
@@ -93,6 +93,7 @@
tutti.service.multipost.export.deleteTempDirectory.error=
tutti.service.multipost.export.error=
tutti.service.multipost.export.frequencies.error=
+tutti.service.multipost.export.operation.error=
tutti.service.multipost.export.species.error=
tutti.service.multipost.export.weight.error=
tutti.service.multipost.export.weights.error=
@@ -100,8 +101,10 @@
tutti.service.multipost.import.batches.error=
tutti.service.multipost.import.caracteristics.error=
tutti.service.multipost.import.frequencies.error=
+tutti.service.multipost.import.operation.error=
tutti.service.multipost.import.species.error=
tutti.service.multipost.import.weights.error=
+tutti.service.multipost.import.wrongOperation.error=
tutti.service.multipost.resolveArchive.error=
tutti.service.operations.accidental.error.species.required=
tutti.service.operations.computeWeights.benthos.error.incoherentCategoryWeight=
Modified: trunk/tutti-service/src/main/resources/i18n/tutti-service_fr_FR.properties
===================================================================
--- trunk/tutti-service/src/main/resources/i18n/tutti-service_fr_FR.properties 2013-06-10 13:40:13 UTC (rev 1091)
+++ trunk/tutti-service/src/main/resources/i18n/tutti-service_fr_FR.properties 2013-06-10 14:45:01 UTC (rev 1092)
@@ -90,13 +90,16 @@
tutti.service.multipost.export.deleteTempDirectory.error=Erreur lors de la suppression du dossier temporaire
tutti.service.multipost.export.error=Erreur lors de la création du fichier d'export
tutti.service.multipost.export.frequencies.error=Erreur lors de l'export des mensurations
+tutti.service.multipost.export.operation.error=Erreur lors de l'export des données du trait
tutti.service.multipost.export.weight.error=Erreur lors de l'export des poids
tutti.service.multipost.export.weights.error=Erreur lors de l'export des poids
tutti.service.multipost.import.attachments.error=Erreur lors de l'import des pièces-jointes
tutti.service.multipost.import.batches.error=Erreur lors de l'import des lots
tutti.service.multipost.import.caracteristics.error=Erreur lors de l'import des caractéristiques
tutti.service.multipost.import.frequencies.error=Erreur lors de l'import des mensurations
+tutti.service.multipost.import.operation.error=Erreur lors de l'import des données du trait
tutti.service.multipost.import.weights.error=Erreur lors de l'import des poids
+tutti.service.multipost.import.wrongOperation.error=Opération est impossible<hr/>Les lots que vous essayez d'importer proviennent d'un autre trait :<br/>%s
tutti.service.multipost.resolveArchive.error=Erreur lors de l'ouverture de l'archive
tutti.service.operations.computeWeights.error.benthos.incoherentCategoryWeight=Benthos - Le poids total des mensurations du lot de %s/%s - %s (%skg) est supérieur au poids de la catégorie (%skg)
tutti.service.operations.computeWeights.error.benthos.incoherentParentCategoryWeight=Benthos - Le poids du lot de %s/%s - %s (%skg) est inférieur à la somme des poids de ses sous-catégories (%skg)
1
0
r1091 - in trunk: tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/spatial tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation
by kmorin@users.forge.codelutin.com 10 Jun '13
by kmorin@users.forge.codelutin.com 10 Jun '13
10 Jun '13
Author: kmorin
Date: 2013-06-10 15:40:13 +0200 (Mon, 10 Jun 2013)
New Revision: 1091
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/1091
Log:
fixes #2613 [TRAIT] saisie des lat long ?\195?\160 36.559 se transforme tout seul en 36.533339
Modified:
trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/spatial/SexagecimalPosition.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUI.css
Modified: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/spatial/SexagecimalPosition.java
===================================================================
--- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/spatial/SexagecimalPosition.java 2013-06-10 13:16:14 UTC (rev 1090)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/spatial/SexagecimalPosition.java 2013-06-10 13:40:13 UTC (rev 1091)
@@ -48,6 +48,8 @@
protected Integer minute;
+ protected Float decimalMinute;
+
protected Integer seconde;
/**
@@ -86,11 +88,27 @@
}
/**
+ * Methode statique de fabrique de position a partir d'une valeur du format
+ * degre-minute-seconde.
+ *
+ * @param d la valeur des degres
+ * @param dm la valeur des minutes
+ * @return une nouvelle instance de position convertie
+ */
+ public static SexagecimalPosition valueOf(boolean sign, int d, Float dm) {
+ SexagecimalPosition r = new SexagecimalPosition();
+ r.setSign(sign);
+ r.setDegre(d);
+ r.setMinuteDecimale(dm);
+ return r;
+ }
+
+ /**
* @return {@code true} si aucune composante n'est renseigné,
* {@code false} autrement.
*/
public boolean isNull() {
- return degre == null && minute == null && seconde == null;
+ return degre == null && minute == null && decimalMinute == null && seconde == null;
}
/**
@@ -105,6 +123,7 @@
public void update(Float decimal) {
Integer d = null;
Integer m = null;
+ Float dm = null;
Integer s = null;
boolean si = false;
if (decimal != null) {
@@ -116,8 +135,9 @@
d = (int) (Math.round(decimal + 0.5) - 1);
m = 0;
s = 0;
- decimal = 60 * (decimal - d);
+ decimal = 60.0f * (decimal - d);
if (decimal > 0) {
+ dm = decimal;
m = (int) (Math.round(decimal + 0.5) - 1);
decimal = 60 * (decimal - m);
if (decimal > 0) {
@@ -139,6 +159,7 @@
}
degre = d;
minute = m;
+ decimalMinute = dm;
seconde = s;
sign = si;
}
@@ -149,17 +170,23 @@
}
Integer d = degre == null ? 0 : degre;
Integer m = minute == null ? 0 : minute;
+ Float dm = decimalMinute;
Integer s = seconde == null ? 0 : seconde;
Float result = Float.valueOf(d);
- if (m > 0) {
- result += (float) m / 60;
- if (s == 0) {
- result += 0.5f / 3600;
+ if (decimalMinute != null) {
+ result += dm / 60.0f;
+
+ } else {
+ if (m > 0) {
+ result += (float) m / 60;
+ if (s == 0) {
+ result += 0.5f / 3600;
+ }
}
+ if (s > 0) {
+ result += ((float) s + 0.5f) / 3600;
+ }
}
- if (s > 0) {
- result += ((float) s + 0.5f) / 3600;
- }
if (sign) {
result *= -1;
}
@@ -175,14 +202,7 @@
}
public Float getMinuteDecimale() {
- Float minuteDecimale = null;
- if (minute != null) {
- minuteDecimale = minute.floatValue();
- if (seconde != null) {
- minuteDecimale += seconde.floatValue() / 60;
- }
- }
- return minuteDecimale;
+ return decimalMinute;
}
public Integer getSeconde() {
@@ -202,16 +222,7 @@
}
public void setMinuteDecimale(Float minuteDecimale) {
- if (minuteDecimale == null) {
- minute = null;
- seconde = null;
-
- } else {
- Double entier = Math.floor(minuteDecimale);
- minute = entier.intValue();
- Double reste = Math.floor((minuteDecimale - entier) * 60);
- seconde = reste.intValue();
- }
+ this.decimalMinute = minuteDecimale;
}
public void setSeconde(Integer seconde) {
@@ -236,6 +247,7 @@
SexagecimalPosition other = (SexagecimalPosition) obj;
return sign == other.sign &&
ObjectUtils.equals(degre, other) &&
+ ObjectUtils.equals(decimalMinute, other.decimalMinute) &&
ObjectUtils.equals(minute, other.minute) &&
ObjectUtils.equals(seconde, other.seconde);
@@ -252,7 +264,8 @@
hash = 5 * (sign ? 1 : 0);
hash = 7 * hash + (degre != null ? degre.hashCode() : 0);
hash = 11 * hash + (minute != null ? minute.hashCode() : 0);
- hash = 13 * hash + (seconde != null ? seconde.hashCode() : 0);
+ hash = 13 * hash + (decimalMinute != null ? decimalMinute.hashCode() : 0);
+ hash = 17 * hash + (seconde != null ? seconde.hashCode() : 0);
return hash;
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUI.css
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUI.css 2013-06-10 13:16:14 UTC (rev 1090)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUI.css 2013-06-10 13:40:13 UTC (rev 1091)
@@ -255,7 +255,6 @@
showReset: false;
useFloat: true;
useSign: false;
- numberPattern: {DECIMAL2_DIGITS_PATTERN};
}
.second {
1
0