Observe-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
March 2024
- 1 participants
- 42 discussions
[Git][ultreiaio/ird-observe][master] 45 commits: [jgitflow-maven-plugin]updating poms for 9.3.0-RC-5-SNAPSHOT development[skip ci]
by Tony CHEMIT (@tchemit) 19 Mar '24
by Tony CHEMIT (@tchemit) 19 Mar '24
19 Mar '24
Tony CHEMIT pushed to branch master at ultreiaio / ird-observe
Commits:
c7547dfb by Tony Chemit at 2024-02-26T09:02:16+01:00
[jgitflow-maven-plugin]updating poms for 9.3.0-RC-5-SNAPSHOT development[skip ci]
- - - - -
089e6f13 by Tony Chemit at 2024-02-26T09:19:07+01:00
[jgitflow-maven-plugin]updating develop poms to master versions to avoid merge conflicts[skip ci]
- - - - -
bbef1b45 by Tony Chemit at 2024-02-26T09:19:07+01:00
[jgitflow-maven-plugin]merging 'master' into 'develop'
- - - - -
e5452729 by Tony Chemit at 2024-02-26T09:19:09+01:00
[jgitflow-maven-plugin]Updating develop poms back to pre merge state[skip ci]
- - - - -
c28a9e85 by Tony Chemit at 2024-02-29T12:19:24+01:00
Agrandissement de popup - Closes #2836
- - - - -
02bad581 by Tony Chemit at 2024-03-05T15:31:57+01:00
update pom
- - - - -
69c33e34 by Tony Chemit at 2024-03-05T16:20:51+01:00
toolkit-templates - vérification que la tag-value digits est bien définie pour tout attribute de type décimal sur le modèle de persistance
- - - - -
bee7fdae by Tony Chemit at 2024-03-05T16:20:54+01:00
model - Remplissages de la tag-value digits manquante
- - - - -
330e1682 by Tony Chemit at 2024-03-05T16:20:58+01:00
persistence - Mise à jour des descripteurs d'entités
- - - - -
895a9697 by Tony Chemit at 2024-03-05T16:23:06+01:00
Merge branch 'feature/issue-2844' into develop
Consolidation du modèle de persistence sur les données de type décimales -
Closes #2844
- - - - -
bab62840 by Tony Chemit at 2024-03-05T16:23:48+01:00
persistence meta-model: add more stuff in TopiaMetadataEntity
- - - - -
22aa0c31 by Tony Chemit at 2024-03-05T16:24:12+01:00
persistence sql-model: add more stuff in TopiaEntitySqlTable
- - - - -
df0a7b49 by Tony Chemit at 2024-03-05T16:24:13+01:00
persistence: update TopiaEntitySqlModel.json
- - - - -
ac3d0822 by Tony Chemit at 2024-03-05T16:26:12+01:00
Merge branch 'feature/augments-entityModel' into develop
- - - - -
f3055cda by Tony Chemit at 2024-03-05T16:39:51+01:00
persistence - add timestampNow on ServiceContext
- - - - -
1a82f8d0 by Tony Chemit at 2024-03-05T16:39:51+01:00
persistence - add method clearSession on TopiaHibernateSupport
- - - - -
47f1b396 by Tony Chemit at 2024-03-05T16:39:59+01:00
persistence - Introduction de SqlConversions pour gérer les conversions java → sql
- - - - -
2c4fed94 by Tony Chemit at 2024-03-08T12:54:45+01:00
persistence - introduce ToolkitIdModificationsToSql
- - - - -
ae84f818 by Tony Chemit at 2024-03-08T12:54:52+01:00
persistence - introduce toSql method on consolidate engine to produce sql script of modifications
- - - - -
6af33613 by Tony Chemit at 2024-03-08T12:54:58+01:00
persistence - on TripConsolidateEngine.consolidate, now use the generated sql script to finalize consolidation instead of letting Hibernate doing it for us
- - - - -
8a4f3493 by Tony Chemit at 2024-03-15T08:19:43+01:00
Merge branch 'feature/issue-2843' into develop
Erreur sur transaction et plantage de Tomcat sur consolidation en mode serveur
- Closes #2843
- - - - -
8c5dacfe by Tony Chemit at 2024-03-15T08:55:32+01:00
update pom
- - - - -
c9a29d65 by Tony Chemit at 2024-03-15T13:54:37+01:00
Test method ReportService.initColumnRendererParameters
- - - - -
c211705f by Tony Chemit at 2024-03-15T13:54:37+01:00
Reports are not copied to the right place...
- - - - -
b5ef9ebc by Tony Chemit at 2024-03-15T14:38:31+01:00
Update reports documentation
- - - - -
88b13f8a by Tony Chemit at 2024-03-16T13:06:10+01:00
Add more TimeLog and fix log.debug issues in ReportRequestExecutor
- - - - -
b5b80021 by Tony Chemit at 2024-03-18T11:00:40+01:00
Optimisation du rapport Livre de bord - Vérification des plan de cuves - Closes #2849
- - - - -
56d7291a by Tony Chemit at 2024-03-18T11:00:40+01:00
Optimisation du rapport Livre de bord - Plan de cuves - Closes #2850
- - - - -
294f63b2 by Tony Chemit at 2024-03-18T11:00:46+01:00
Optimisation du rapport Observations - Utilisation des FOB, tableau simplifiée - Closes #2851
- - - - -
7f181c46 by Tony Chemit at 2024-03-18T11:00:53+01:00
Optimisation du rapport Observations - Utilisation des FOB, tableau détaillé - Closes #2852
- - - - -
8aa68e2b by Tony Chemit at 2024-03-18T11:00:53+01:00
Lors d'exports massifs de données, le token expire rapidement et fait échouer la suite du processus - Closes #2839
- - - - -
8634165e by Tony Chemit at 2024-03-18T11:00:53+01:00
Amélioration de la taille des colonnes du tableau des résultats d'un rapport - Closes #2853
- - - - -
e06ff9e9 by Tony Chemit at 2024-03-19T11:22:17+01:00
Fix one i18n translation
- - - - -
11ea9d2d by Tony Chemit at 2024-03-19T14:20:44+01:00
Review DataManager code (no more logic in the tasks)
- - - - -
f0d95762 by Tony Chemit at 2024-03-19T14:20:44+01:00
Reduce log in ReferentialIdsBuilder
- - - - -
ed8c4a22 by Tony Chemit at 2024-03-19T14:20:44+01:00
Fix DataSource IO in long actions
- - - - -
b3cab5a2 by Tony Chemit at 2024-03-19T14:20:44+01:00
Perte de connection au serveur lors d'envoie massif de marées - Closes #2854
- - - - -
4b1fe74f by Tony Chemit at 2024-03-19T14:20:44+01:00
update pom
- - - - -
584fa484 by Tony Chemit at 2024-03-19T15:00:14+01:00
Mise à jour du rapport psObservationAllActivities
- - - - -
ddc116b2 by Tony Chemit at 2024-03-19T15:00:14+01:00
Ajout du rapport psObservationActivitiesByZone
- - - - -
27355e37 by Tony Chemit at 2024-03-19T15:00:58+01:00
Merge branch 'feature/issue-2848' into develop
Tableaux de synthèse à intégrer - Closes #2848
- - - - -
fcf880a9 by Tony Chemit at 2024-03-19T15:22:32+01:00
Ajout des rapports sur les FOB PS - Logbook - Closes #2855
- - - - -
8cb7f1d6 by Tony Chemit at 2024-03-19T20:14:00+01:00
Nouveau rapport PS / Observations & Logbooks / Captures par Zone FPA, espèce et devenir - Closes #2856
- - - - -
d53792ac by Tony Chemit at 2024-03-19T20:23:41+01:00
[jgitflow-maven-plugin]updating poms for branch'release/9.3.0-RC-5' with non-snapshot versions[skip ci]
- - - - -
bfe516d5 by Tony Chemit at 2024-03-19T20:38:54+01:00
[jgitflow-maven-plugin]merging 'release/9.3.0-RC-5' into 'master'
- - - - -
30 changed files:
- client/configuration/pom.xml
- client/configuration/src/main/java/fr/ird/observe/client/configuration/ClientConfig.java
- client/core/pom.xml
- client/core/src/main/java/fr/ird/observe/client/datasource/api/data/CopyDataTask.java
- client/core/src/main/java/fr/ird/observe/client/datasource/api/data/DataManager.java
- client/core/src/main/java/fr/ird/observe/client/datasource/api/data/DataTaskSupport.java
- client/core/src/main/java/fr/ird/observe/client/datasource/api/data/DeleteDataTask.java
- client/core/src/main/java/fr/ird/observe/client/datasource/api/data/InsertMissingReferentialTask.java
- client/core/src/main/java/fr/ird/observe/client/datasource/api/data/TaskSide.java
- client/datasource/actions/pom.xml
- client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/export/actions/Prepare.java
- client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/report/ReportModel.java
- client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/synchronize/data/actions/Apply.java
- client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/validate/actions/Start.java
- client/datasource/editor/api-test/pom.xml
- client/datasource/editor/api/pom.xml
- client/datasource/editor/api/src/main/java/fr/ird/observe/client/datasource/editor/api/content/actions/delete/DeletePanel.java
- client/datasource/editor/common/pom.xml
- client/datasource/editor/ll/pom.xml
- client/datasource/editor/pom.xml
- client/datasource/editor/ps/pom.xml
- client/datasource/editor/spi/pom.xml
- client/datasource/pom.xml
- client/pom.xml
- client/runner/pom.xml
- client/runner/src/main/i18n/translations/client-runner_en_GB.properties
- client/runner/src/main/i18n/translations/client-runner_es_ES.properties
- client/runner/src/main/i18n/translations/client-runner_fr_FR.properties
- core/api/dto-consolidation/pom.xml
- core/api/dto-decoration/pom.xml
The diff was not included because it is too large.
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/compare/d8e3a9df16827d2883843aa7…
--
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/compare/d8e3a9df16827d2883843aa7…
You're receiving this email because of your account on gitlab.com.
1
0
[Git][ultreiaio/ird-observe][develop] 5 commits: [jgitflow-maven-plugin]updating poms for branch'release/9.3.0-RC-5' with...
by Tony CHEMIT (@tchemit) 19 Mar '24
by Tony CHEMIT (@tchemit) 19 Mar '24
19 Mar '24
Tony CHEMIT pushed to branch develop at ultreiaio / ird-observe
Commits:
d53792ac by Tony Chemit at 2024-03-19T20:23:41+01:00
[jgitflow-maven-plugin]updating poms for branch'release/9.3.0-RC-5' with non-snapshot versions[skip ci]
- - - - -
bfe516d5 by Tony Chemit at 2024-03-19T20:38:54+01:00
[jgitflow-maven-plugin]merging 'release/9.3.0-RC-5' into 'master'
- - - - -
144e8568 by Tony Chemit at 2024-03-19T20:38:58+01:00
[jgitflow-maven-plugin]updating develop poms to master versions to avoid merge conflicts[skip ci]
- - - - -
9ac42b8d by Tony Chemit at 2024-03-19T20:38:59+01:00
[jgitflow-maven-plugin]merging 'master' into 'develop'
- - - - -
0abb219c by Tony Chemit at 2024-03-19T20:39:00+01:00
[jgitflow-maven-plugin]Updating develop poms back to pre merge state[skip ci]
- - - - -
0 changed files:
Changes:
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/compare/bcddf0a609a4e5f4d3253609…
--
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/compare/bcddf0a609a4e5f4d3253609…
You're receiving this email because of your account on gitlab.com.
1
0
[Git][ultreiaio/ird-observe][develop] [jgitflow-maven-plugin]updating poms for 9.3.0-RC-6-SNAPSHOT development[skip ci]
by Tony CHEMIT (@tchemit) 19 Mar '24
by Tony CHEMIT (@tchemit) 19 Mar '24
19 Mar '24
Tony CHEMIT pushed to branch develop at ultreiaio / ird-observe
Commits:
bcddf0a6 by Tony Chemit at 2024-03-19T20:23:24+01:00
[jgitflow-maven-plugin]updating poms for 9.3.0-RC-6-SNAPSHOT development[skip ci]
- - - - -
30 changed files:
- client/configuration/pom.xml
- client/core/pom.xml
- client/datasource/actions/pom.xml
- client/datasource/editor/api-test/pom.xml
- client/datasource/editor/api/pom.xml
- client/datasource/editor/common/pom.xml
- client/datasource/editor/ll/pom.xml
- client/datasource/editor/pom.xml
- client/datasource/editor/ps/pom.xml
- client/datasource/editor/spi/pom.xml
- client/datasource/pom.xml
- client/pom.xml
- client/runner/pom.xml
- core/api/dto-consolidation/pom.xml
- core/api/dto-decoration/pom.xml
- core/api/dto-validation/pom.xml
- core/api/dto/pom.xml
- core/api/pom.xml
- core/api/services/pom.xml
- core/api/tree/pom.xml
- core/api/validation/pom.xml
- core/persistence/avdth/pom.xml
- core/persistence/consolidation/pom.xml
- core/persistence/decoration/pom.xml
- core/persistence/java/pom.xml
- core/persistence/migration/pom.xml
- core/persistence/pom.xml
- core/persistence/report/pom.xml
- core/persistence/resources/pom.xml
- core/persistence/test/pom.xml
The diff was not included because it is too large.
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/commit/bcddf0a609a4e5f4d32536096…
--
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/commit/bcddf0a609a4e5f4d32536096…
You're receiving this email because of your account on gitlab.com.
1
0
[Git][ultreiaio/ird-observe] Pushed new branch release/9.3.0-RC-5
by Tony CHEMIT (@tchemit) 19 Mar '24
by Tony CHEMIT (@tchemit) 19 Mar '24
19 Mar '24
Tony CHEMIT pushed new branch release/9.3.0-RC-5 at ultreiaio / ird-observe
--
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/tree/release/9.3.0-RC-5
You're receiving this email because of your account on gitlab.com.
1
0
[Git][ultreiaio/ird-observe][develop] Nouveau rapport PS / Observations & Logbooks / Captures par Zone FPA, espèce...
by Tony CHEMIT (@tchemit) 19 Mar '24
by Tony CHEMIT (@tchemit) 19 Mar '24
19 Mar '24
Tony CHEMIT pushed to branch develop at ultreiaio / ird-observe
Commits:
8cb7f1d6 by Tony Chemit at 2024-03-19T20:14:00+01:00
Nouveau rapport PS / Observations & Logbooks / Captures par Zone FPA, espèce et devenir - Closes #2856
- - - - -
9 changed files:
- + core/persistence/report/src/main/resources/META-INF/report/default/ps/psLogbookCatchWeightByFPAZonePerSpeciesFate.report
- + core/persistence/report/src/main/resources/META-INF/report/default/ps/psObservationCatchWeightByFPAZonePerSpeciesFate.report
- core/persistence/report/src/main/resources/META-INF/report/embedded.list
- core/persistence/report/src/test/java/fr/ird/observe/report/ToolsTest.java
- + core/services/test/src/main/java/fr/ird/observe/services/service/report/ps/PsLogbookCatchWeightByFPAZonePerSpeciesFateReportFixture.java
- + core/services/test/src/main/java/fr/ird/observe/services/service/report/ps/PsObservationCatchWeightByFPAZonePerSpeciesFateReportFixture.java
- + core/services/test/src/main/resources/fixtures/fr/ird/observe/services/service/ReportService-psLogbookCatchWeightByFPAZonePerSpeciesFate.properties
- + core/services/test/src/main/resources/fixtures/fr/ird/observe/services/service/ReportService-psObservationCatchWeightByFPAZonePerSpeciesFate.properties
- core/services/test/src/main/resources/fixtures/fr/ird/observe/services/service/ReportService.properties
Changes:
=====================================
core/persistence/report/src/main/resources/META-INF/report/default/ps/psLogbookCatchWeightByFPAZonePerSpeciesFate.report
=====================================
@@ -0,0 +1,89 @@
+###
+# #%L
+# ObServe Core :: Persistence :: Report
+# %%
+# Copyright (C) 2008 - 2023 IRD, Ultreia.io
+# %%
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as
+# published by the Free Software Foundation, either version 3 of the
+# License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public
+# License along with this program. If not, see
+# <http://www.gnu.org/licenses/gpl-3.0.html>.
+# #L%
+###
+modelType=PS
+name=Livre de bord - Devenir des captures par groupe d'espèces et par zone FPA filtré par groupe d'espèce (en t)
+name.en=Logbook - Catch fates by species group and FPA zone, filtered per group (in t)
+name.es=
+description=Après sélection d'un groupe d'espèces, ce rapport retourne les poids capturés (en tonnes) par zone FPA et par devenir
+description.en=Once a species group is selected, this report returns catch weights (in tons) by FPA zone and fate
+description.es=
+variable.1.name=speciesGroup
+variable.1.type=fr.ird.observe.dto.referential.common.SpeciesGroupReference
+variable.1.request=Select distinct sg \
+From TripImpl t \
+Join t.routeLogbook r \
+Join r.activity a \
+Join a.catches ca with ca.weight Is Not Null \
+Join ca.species e \
+Join e.speciesGroup sg \
+Where t.id In :tripId \
+Order By sg.code
+repeatVariable.1.name=fpaZone
+repeatVariable.1.type=fr.ird.observe.entities.referential.common.FpaZone
+repeatVariable.1.request=Select distinct z \
+From TripImpl t \
+Join t.routeLogbook r \
+Join r.activity a \
+Join a.currentFpaZone z \
+Join a.catches ca with ca.weight Is Not Null And ca.species.speciesGroup.id = :speciesGroup \
+Where t.id In :tripId \
+Order By z.code, z.@i18nColumnName@
+repeatVariable.2.name=speciesFate
+repeatVariable.2.type=fr.ird.observe.entities.referential.ps.common.SpeciesFate
+repeatVariable.2.request=Select distinct sf \
+From TripImpl t \
+Join t.routeLogbook r \
+Join r.activity a \
+Join a.catches ca with ca.weight Is Not Null And ca.species.speciesGroup.id = :speciesGroup \
+Join ca.speciesFate sf \
+Where t.id In :tripId \
+Order by sf.discard, sf.code
+request.1.location=0,0
+request.1.layout=row
+request.1.request=Select \
+concat( z.code, ' - ', z.@i18nColumnName@) \
+From FpaZoneImpl z \
+Where z In :fpaZone \
+Group by z.code, z.@i18nColumnName@
+request.1.repeat.name=fpaZone
+request.1.repeat.layout=column
+operations.1.type=ExecuteRequestAndReorganizeDataByRepeatVariable
+operations.1.parameters=fpaZone|speciesFate|Select \
+z.id, sf.id, Sum(ca.weight) \
+From TripImpl m \
+Join m.routeLogbook r \
+Join r.activity a \
+Join a.currentFpaZone z With z.id In :fpaZone \
+Join a.catches ca with ca.weight Is Not Null And ca.species.speciesGroup.id = :speciesGroup \
+Join ca.speciesFate sf with sf.id In :speciesFate \
+Where m.id In :tripId \
+Group by z, sf \
+Order By z.code
+operations.2.type=ComputeDynamicHeader
+operations.2.parameters=@fpaZone@|speciesFate
+operations.3.type=SumRow
+operations.3.parameters=0|1
+operations.4.type=SumColumn
+operations.4.parameters=1|1
+i18n.fpaZone=Zone FPA
+i18n.fpaZone.en=FPA Zone
+i18n.fpaZone.es=
\ No newline at end of file
=====================================
core/persistence/report/src/main/resources/META-INF/report/default/ps/psObservationCatchWeightByFPAZonePerSpeciesFate.report
=====================================
@@ -0,0 +1,93 @@
+###
+# #%L
+# ObServe Core :: Persistence :: Report
+# %%
+# Copyright (C) 2008 - 2023 IRD, Ultreia.io
+# %%
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as
+# published by the Free Software Foundation, either version 3 of the
+# License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public
+# License along with this program. If not, see
+# <http://www.gnu.org/licenses/gpl-3.0.html>.
+# #L%
+###
+modelType=PS
+name=Observations - Devenir des captures par groupe d'espèces et par zone FPA filtré par groupe d'espèce (en t)
+name.en=Observation - Catch fates by species group and FPA zone, filtered per group (in t)
+name.es=
+description=Après sélection d'un groupe d'espèces, ce rapport retourne les poids capturés (en tonnes) par zone FPA et par devenir
+description.en=Once a species group is selected, this report returns catch weights (in tons) by FPA zone and fate
+description.es=
+variable.1.name=speciesGroup
+variable.1.type=fr.ird.observe.dto.referential.common.SpeciesGroupReference
+variable.1.request=Select distinct sg \
+From TripImpl t \
+Join t.routeObs r \
+Join r.activity a \
+Join a.set c \
+Join c.catches ca with ca.catchWeight Is Not Null \
+Join ca.species e \
+Join e.speciesGroup sg \
+Where t.id In :tripId \
+Order By sg.code
+repeatVariable.1.name=fpaZone
+repeatVariable.1.type=fr.ird.observe.entities.referential.common.FpaZone
+repeatVariable.1.request=Select distinct z \
+From TripImpl t \
+Join t.routeObs r \
+Join r.activity a \
+Join a.currentFpaZone z \
+Join a.set c \
+Join c.catches ca with ca.catchWeight Is Not Null And ca.species.speciesGroup.id = :speciesGroup \
+Where t.id In :tripId \
+Order By z.code, z.@i18nColumnName@
+repeatVariable.2.name=speciesFate
+repeatVariable.2.type=fr.ird.observe.entities.referential.ps.common.SpeciesFate
+repeatVariable.2.request=Select distinct sf \
+From TripImpl t \
+Join t.routeObs r \
+Join r.activity a \
+Join a.set c \
+Join c.catches ca with ca.catchWeight Is Not Null And ca.species.speciesGroup.id = :speciesGroup \
+Join ca.speciesFate sf \
+Where t.id In :tripId \
+Order by sf.discard, sf.code
+request.1.location=0,0
+request.1.layout=row
+request.1.request=Select \
+concat( z.code, ' - ', z.@i18nColumnName@) \
+From FpaZoneImpl z \
+Where z In :fpaZone \
+Group by z.code, z.@i18nColumnName@
+request.1.repeat.name=fpaZone
+request.1.repeat.layout=column
+operations.1.type=ExecuteRequestAndReorganizeDataByRepeatVariable
+operations.1.parameters=fpaZone|speciesFate|Select \
+z.id, sf.id, Sum(ca.catchWeight) \
+From TripImpl m \
+Join m.routeObs r \
+Join r.activity a \
+Join a.currentFpaZone z With z.id In :fpaZone \
+Join a.set c \
+Join c.catches ca with ca.catchWeight Is Not Null And ca.species.speciesGroup.id = :speciesGroup \
+Join ca.speciesFate sf with sf.id In :speciesFate \
+Where m.id In :tripId \
+Group by z, sf \
+Order By z.code
+operations.2.type=ComputeDynamicHeader
+operations.2.parameters=@fpaZone@|speciesFate
+operations.3.type=SumRow
+operations.3.parameters=0|1
+operations.4.type=SumColumn
+operations.4.parameters=1|1
+i18n.fpaZone=Zone FPA
+i18n.fpaZone.en=FPA Zone
+i18n.fpaZone.es=
\ No newline at end of file
=====================================
core/persistence/report/src/main/resources/META-INF/report/embedded.list
=====================================
@@ -10,6 +10,7 @@ default/ps/psLocalmarketBatch.report
default/ps/psLocalmarketSample.report
default/ps/psLocalmarketSurvey.report
default/ps/psLogbookActivity.report
+default/ps/psLogbookCatchWeightByFPAZonePerSpeciesFate.report
default/ps/psLogbookFobUsageExtended.report
default/ps/psLogbookFobUsageMinimal.report
default/ps/psLogbookSampleMeasures.report
@@ -26,6 +27,7 @@ default/ps/psObservationCatch.report
default/ps/psObservationCatchTotalCountByGroupAndSpeciesFateDiscardPerAssociation.report
default/ps/psObservationCatchTotalCountByGroupPerReasonForDiscard.report
default/ps/psObservationCatchTotalCountByGroupPerSpeciesFate.report
+default/ps/psObservationCatchWeightByFPAZonePerSpeciesFate.report
default/ps/psObservationCatchWeightByGroupAndSpeciesFateDiscardPerAssociation.report
default/ps/psObservationCatchWeightByGroupPerReasonForDiscard.report
default/ps/psObservationCatchWeightByGroupPerSpeciesFate.report
=====================================
core/persistence/report/src/test/java/fr/ird/observe/report/ToolsTest.java
=====================================
@@ -47,7 +47,7 @@ import java.util.Objects;
public class ToolsTest {
- public static final int REPORTS_COUNT_COUNT = 37;
+ public static final int REPORTS_COUNT_COUNT = 39;
private static Path reportsPath(Path basedir) {
return basedir.resolve("src").resolve("main").resolve("resources").resolve("META-INF").resolve("report");
=====================================
core/services/test/src/main/java/fr/ird/observe/services/service/report/ps/PsLogbookCatchWeightByFPAZonePerSpeciesFateReportFixture.java
=====================================
@@ -0,0 +1,53 @@
+package fr.ird.observe.services.service.report.ps;
+
+/*-
+ * #%L
+ * ObServe Core :: Services :: Test
+ * %%
+ * Copyright (C) 2008 - 2024 IRD, Ultreia.io
+ * %%
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public
+ * License along with this program. If not, see
+ * <http://www.gnu.org/licenses/gpl-3.0.html>.
+ * #L%
+ */
+
+import com.google.auto.service.AutoService;
+import fr.ird.observe.report.Report;
+import fr.ird.observe.report.definition.ReportRequestDefinition;
+import fr.ird.observe.report.definition.RequestLayout;
+import fr.ird.observe.services.service.ReportFixture;
+
+import java.util.Iterator;
+
+/**
+ * Created at 19/03/2024.
+ *
+ * @author Tony Chemit - dev(a)tchemit.fr
+ * @since 9.3.0
+ */
+(a)AutoService(ReportFixture.class)
+public class PsLogbookCatchWeightByFPAZonePerSpeciesFateReportFixture extends ReportFixture {
+
+ @Override
+ public void assertSyntax(Report report) {
+ super.assertSyntax(report);
+ Iterator<ReportRequestDefinition> requests = getRequestIterator(report);
+ assertReportRequestDimension(requests, RequestLayout.row, 0, 0);
+ }
+
+ @Override
+ protected void setVariables(Report report) {
+ setVariableValue(report, "speciesGroup", "fr.ird.referential.common.SpeciesGroup#1239832683689#0.7120116158620075");
+ }
+}
=====================================
core/services/test/src/main/java/fr/ird/observe/services/service/report/ps/PsObservationCatchWeightByFPAZonePerSpeciesFateReportFixture.java
=====================================
@@ -0,0 +1,53 @@
+package fr.ird.observe.services.service.report.ps;
+
+/*-
+ * #%L
+ * ObServe Core :: Services :: Test
+ * %%
+ * Copyright (C) 2008 - 2024 IRD, Ultreia.io
+ * %%
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public
+ * License along with this program. If not, see
+ * <http://www.gnu.org/licenses/gpl-3.0.html>.
+ * #L%
+ */
+
+import com.google.auto.service.AutoService;
+import fr.ird.observe.report.Report;
+import fr.ird.observe.report.definition.ReportRequestDefinition;
+import fr.ird.observe.report.definition.RequestLayout;
+import fr.ird.observe.services.service.ReportFixture;
+
+import java.util.Iterator;
+
+/**
+ * Created at 19/03/2024.
+ *
+ * @author Tony Chemit - dev(a)tchemit.fr
+ * @since 9.3.0
+ */
+(a)AutoService(ReportFixture.class)
+public class PsObservationCatchWeightByFPAZonePerSpeciesFateReportFixture extends ReportFixture {
+
+ @Override
+ public void assertSyntax(Report report) {
+ super.assertSyntax(report);
+ Iterator<ReportRequestDefinition> requests = getRequestIterator(report);
+ assertReportRequestDimension(requests, RequestLayout.row, 0, 0);
+ }
+
+ @Override
+ protected void setVariables(Report report) {
+ setVariableValue(report, "speciesGroup", "fr.ird.referential.common.SpeciesGroup#1239832683689#0.7120116158620075");
+ }
+}
=====================================
core/services/test/src/main/resources/fixtures/fr/ird/observe/services/service/ReportService-psLogbookCatchWeightByFPAZonePerSpeciesFate.properties
=====================================
@@ -0,0 +1,28 @@
+###
+# #%L
+# ObServe Core :: Services :: Test
+# %%
+# Copyright (C) 2008 - 2024 IRD, Ultreia.io
+# %%
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as
+# published by the Free Software Foundation, either version 3 of the
+# License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public
+# License along with this program. If not, see
+# <http://www.gnu.org/licenses/gpl-3.0.html>.
+# #L%
+###
+syntax.name=Livre de bord - Devenir des captures par groupe d'espèces et par zone FPA filtré par groupe d'espèce (en t)
+syntax.description=Après sélection d'un groupe d'espèces, ce rapport retourne les poids capturés (en tonnes) par zone FPA et par devenir
+syntax.rows=-1
+syntax.columns=-1
+syntax.columnsHeader=
+syntax.rowsHeader=
+syntax.nbRequests=1
=====================================
core/services/test/src/main/resources/fixtures/fr/ird/observe/services/service/ReportService-psObservationCatchWeightByFPAZonePerSpeciesFate.properties
=====================================
@@ -0,0 +1,32 @@
+###
+# #%L
+# ObServe Core :: Services :: Test
+# %%
+# Copyright (C) 2008 - 2024 IRD, Ultreia.io
+# %%
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as
+# published by the Free Software Foundation, either version 3 of the
+# License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public
+# License along with this program. If not, see
+# <http://www.gnu.org/licenses/gpl-3.0.html>.
+# #L%
+###
+syntax.name=Observations - Devenir des captures par groupe d'espèces et par zone FPA filtré par groupe d'espèce (en t)
+syntax.description=Après sélection d'un groupe d'espèces, ce rapport retourne les poids capturés (en tonnes) par zone FPA et par devenir
+syntax.rows=-1
+syntax.columns=-1
+syntax.columnsHeader=
+syntax.rowsHeader=
+syntax.nbRequests=1
+result.columns=2
+result.rows=2
+result.0=Zone FPA^Echappe du filet (pour requin-baleine et cétacés)
+result.1=CIV - Côte d'Ivoire^12.0
=====================================
core/services/test/src/main/resources/fixtures/fr/ird/observe/services/service/ReportService.properties
=====================================
@@ -19,4 +19,4 @@
# <http://www.gnu.org/licenses/gpl-3.0.html>.
# #L%
###
-report.count=37
+report.count=39
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/commit/8cb7f1d683c1bc48845193e8a…
--
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/commit/8cb7f1d683c1bc48845193e8a…
You're receiving this email because of your account on gitlab.com.
1
0
[Git][ultreiaio/ird-observe][develop] Ajout des rapports sur les FOB PS - Logbook - Closes #2855
by Tony CHEMIT (@tchemit) 19 Mar '24
by Tony CHEMIT (@tchemit) 19 Mar '24
19 Mar '24
Tony CHEMIT pushed to branch develop at ultreiaio / ird-observe
Commits:
fcf880a9 by Tony Chemit at 2024-03-19T15:22:32+01:00
Ajout des rapports sur les FOB PS - Logbook - Closes #2855
- - - - -
9 changed files:
- + core/persistence/report/src/main/resources/META-INF/report/default/ps/psLogbookFobUsageExtended.report
- + core/persistence/report/src/main/resources/META-INF/report/default/ps/psLogbookFobUsageMinimal.report
- core/persistence/report/src/main/resources/META-INF/report/embedded.list
- core/persistence/report/src/test/java/fr/ird/observe/report/ToolsTest.java
- + core/services/test/src/main/java/fr/ird/observe/services/service/report/ps/PsLogbookFobUsageExtendedReportFixture.java
- + core/services/test/src/main/java/fr/ird/observe/services/service/report/ps/PsLogbookFobUsageMinimalReportFixture.java
- + core/services/test/src/main/resources/fixtures/fr/ird/observe/services/service/ReportService-psLogbookFobUsageExtended.properties
- + core/services/test/src/main/resources/fixtures/fr/ird/observe/services/service/ReportService-psLogbookFobUsageMinimal.properties
- core/services/test/src/main/resources/fixtures/fr/ird/observe/services/service/ReportService.properties
Changes:
=====================================
core/persistence/report/src/main/resources/META-INF/report/default/ps/psLogbookFobUsageExtended.report
=====================================
@@ -0,0 +1,86 @@
+###
+# #%L
+# ObServe Core :: Persistence :: Report
+# %%
+# Copyright (C) 2008 - 2023 IRD, Ultreia.io
+# %%
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as
+# published by the Free Software Foundation, either version 3 of the
+# License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public
+# License along with this program. If not, see
+# <http://www.gnu.org/licenses/gpl-3.0.html>.
+# #L%
+###
+modelType=PS
+name=Livre de bord - Utilisation des FOB, tableau détaillé
+name.en=Logbook - FOB usage - detailled version
+name.es=
+description=Tableau récapitulatif des FOB rencontrés, par types CECOFAD et types d’actions (déploiements, simples visites, modifications, diverses modalités de retraits), avec et sans pêche
+description.en=Summary of FOB encountered, by CECOFAD types, types of object operation (deployment, visit, update, kinds of retrievals), presence or absence of associated fishing set
+description.es=
+columns=Type de FOB,Visités Pêchés,Visités non Pêchés,Déploiement après Pêches,Déploiement seul,Modifiés Pêchés,Modifiés non Pêchés,Retirés Pêchés,Retirés non Pêchés,Abandonnés Pêchés,Abandonnés non Pêchés,Coulés Pêchés,Coulés non Pêchés,Remplacés Pêchés,Remplacés non Pêchés,Autre Pêchés,Autre non Pêchés
+columns.en=CECOFAD type,Visit and fishing,Visit only,Deployment after fishing,Deployment only,Modification after fishing,Modification only,Retrieval after fishing,Retrieval only,Abandonment after fishing,Abandonment only,Sinking after fishing,Sinking only,Replacment after fishing,Replacment only,Other activity after fishing,Other activity only
+columns.es=
+repeatVariable.1.name=typeObjetId
+repeatVariable.1.type=java.lang.String
+repeatVariable.1.request=Select distinct (om.standardCode) \
+From ObjectMaterialImpl om \
+Where om.standardCode is not null \
+And om.standardCode != '' \
+And (om.standardCode In (Select Distinct(dcp.computedWhenArrivingSimplifiedObjectType) \
+From fr.ird.observe.entities.data.ps.common.TripImpl m \
+Join m.routeLogbook r \
+Join r.activity a \
+Join a.floatingObject dcp With dcp.computedWhenArrivingSimplifiedObjectType Is Not Null \
+Where m.id In :tripId ) Or om.standardCode In (Select Distinct(dcp.computedWhenLeavingSimplifiedObjectType) \
+From fr.ird.observe.entities.data.ps.common.TripImpl m \
+Join m.routeLogbook r \
+Join r.activity a \
+Join a.floatingObject dcp With dcp.computedWhenLeavingSimplifiedObjectType Is Not Null \
+Where m.id In :tripId )) \
+Order by om.standardCode
+request.1.location=0,0
+request.1.layout=row
+request.1.request=Select concat(str(om.standardCode) , ' - ', om.@i18nColumnName@) \
+From ObjectMaterialImpl om \
+Where \
+om.standardCode = :typeObjetId \
+And om.status != 0
+request.1.repeat.name=typeObjetId
+request.1.repeat.layout=column
+request.2.location=1,0
+request.2.layout=row
+request.2.request=Select \
+Sum(Case When dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId And dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#2' And a.vesselActivity.id = 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586' Then 1 Else 0 End), \
+Sum(Case When dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId And dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#2' And a.vesselActivity.id != 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586' Then 1 Else 0 End), \
+Sum(Case When dcp.computedWhenLeavingSimplifiedObjectType = :typeObjetId And dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#1' And a.vesselActivity.id = 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586' Then 1 Else 0 End), \
+Sum(Case When dcp.computedWhenLeavingSimplifiedObjectType = :typeObjetId And dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#1' And a.vesselActivity.id != 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586' Then 1 Else 0 End), \
+Sum(Case When dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId And dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#8' And a.vesselActivity.id = 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586' Then 1 Else 0 End), \
+Sum(Case When dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId And dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#8' And a.vesselActivity.id != 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586' Then 1 Else 0 End), \
+Sum(Case When dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId And dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#4' And a.vesselActivity.id = 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586' Then 1 Else 0 End), \
+Sum(Case When dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId And dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#4' And a.vesselActivity.id != 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586' Then 1 Else 0 End), \
+Sum(Case When dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId And dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#5' And a.vesselActivity.id = 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586' Then 1 Else 0 End), \
+Sum(Case When dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId And dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#5' And a.vesselActivity.id != 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586' Then 1 Else 0 End), \
+Sum(Case When dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId And dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#7' And a.vesselActivity.id = 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586' Then 1 Else 0 End), \
+Sum(Case When dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId And dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#7' And a.vesselActivity.id != 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586' Then 1 Else 0 End), \
+Sum(Case When dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId And dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#9' And a.vesselActivity.id = 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586' Then 1 Else 0 End), \
+Sum(Case When dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId And dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#9' And a.vesselActivity.id != 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586' Then 1 Else 0 End), \
+Sum(Case When dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId And (dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#10' Or dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#3') And a.vesselActivity.id = 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586' Then 1 Else 0 End), \
+Sum(Case When dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId And (dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#10' Or dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#3') And a.vesselActivity.id != 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586' Then 1 Else 0 End) \
+From fr.ird.observe.entities.data.ps.common.TripImpl m \
+Join m.routeLogbook r \
+Join r.activity a \
+Join a.floatingObject dcp With dcp.computedWhenLeavingSimplifiedObjectType = :typeObjetId Or dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId \
+Where \
+m.id In :tripId
+request.2.repeat.name=typeObjetId
+request.2.repeat.layout=column
+request.2.comment=visite + peche / visite - peche / Deploiement + peche / Deploiement - peche / Modifie + peche / Modifie - peche / Retire + peche / Retire - peche / Abandonne + peche / Abandonne - peche / Coule + peche / Coule - peche / Remplace + peche / Remplace - peche / Autre ou ancien peche + peche / Autre ou ancien peche - peche / Nombre de tortues
=====================================
core/persistence/report/src/main/resources/META-INF/report/default/ps/psLogbookFobUsageMinimal.report
=====================================
@@ -0,0 +1,88 @@
+###
+# #%L
+# ObServe Core :: Persistence :: Report
+# %%
+# Copyright (C) 2008 - 2023 IRD, Ultreia.io
+# %%
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as
+# published by the Free Software Foundation, either version 3 of the
+# License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public
+# License along with this program. If not, see
+# <http://www.gnu.org/licenses/gpl-3.0.html>.
+# #L%
+###
+modelType=PS
+name=Livre de bord - Utilisation des FOB, tableau simplifiée
+name.en=Logbook - FOB usage, simplified version
+name.es=
+description=Tableau récapitulatif des FOB rencontrés, par types CECOFAD et types d’actions regroupés (rencontrés et pêchés, rencontrés non pêchés, déployés)
+description.en=Total number of found FOB,per CECOFAD types and action type (Visited fishing,Visited not fishing, deployed)
+description.es=
+columns=Type de FOB,Rencontrés pêchés,Rencontrés non pêchés,Déployés
+columns.en=FOB type,Visited fishing,Visiting no fishing,Deployed
+columns.es=
+repeatVariable.1.name=typeObjetId
+repeatVariable.1.type=java.lang.String
+repeatVariable.1.request=Select distinct (om.standardCode) \
+From ObjectMaterialImpl om \
+Where om.standardCode is not null \
+And om.standardCode != '' \
+And (om.standardCode In (Select Distinct(dcp.computedWhenArrivingSimplifiedObjectType) \
+From fr.ird.observe.entities.data.ps.common.TripImpl m \
+Join m.routeLogbook r \
+Join r.activity a \
+Join a.floatingObject dcp With dcp.computedWhenArrivingSimplifiedObjectType Is Not Null \
+Where m.id In :tripId ) Or om.standardCode In (Select Distinct(dcp.computedWhenLeavingSimplifiedObjectType) \
+From fr.ird.observe.entities.data.ps.common.TripImpl m \
+Join m.routeLogbook r \
+Join r.activity a \
+Join a.floatingObject dcp With dcp.computedWhenLeavingSimplifiedObjectType Is Not Null \
+Where m.id In :tripId )) \
+Order by om.standardCode
+repeatVariable.1.comment=liste des types CECOFAD en presence sur les donnees selectionnees
+request.1.location=0,0
+request.1.layout=row
+request.1.request=Select concat(str(om.standardCode) , ' - ', om.@i18nColumnName@) \
+From ObjectMaterialImpl om \
+Where \
+om.standardCode = :typeObjetId \
+And om.status != 0
+request.1.repeat.name=typeObjetId
+request.1.repeat.layout=column
+request.2.location=1,0
+request.2.layout=row
+request.2.request=Select \
+Sum(Case When dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId And a.vesselActivity.id = 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586' And (dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#2' \
+or dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#8' \
+or dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#4' \
+or dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#5' \
+or dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#7' \
+or dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#9' \
+or dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#10' \
+or dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#3') Then 1 Else 0 End), \
+Sum(Case When dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId And a.vesselActivity.id != 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586' And (dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#2' \
+or dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#8' \
+or dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#4' \
+or dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#5' \
+or dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#7' \
+or dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#9' \
+or dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#10' \
+or dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#3') Then 1 Else 0 End), \
+Sum(Case When dcp.computedWhenLeavingSimplifiedObjectType = :typeObjetId And dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#1' Then 1 Else 0 End) \
+From fr.ird.observe.entities.data.ps.common.TripImpl m \
+Join m.routeLogbook r \
+Join r.activity a \
+Join a.floatingObject dcp With dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId Or dcp.computedWhenLeavingSimplifiedObjectType = :typeObjetId \
+Where \
+m.id In :tripId
+request.2.repeat.name=typeObjetId
+request.2.repeat.layout=column
+request.2.comment=rencontres + peches / rencontres - peches / deployes / Nombre de tortues
=====================================
core/persistence/report/src/main/resources/META-INF/report/embedded.list
=====================================
@@ -10,6 +10,8 @@ default/ps/psLocalmarketBatch.report
default/ps/psLocalmarketSample.report
default/ps/psLocalmarketSurvey.report
default/ps/psLogbookActivity.report
+default/ps/psLogbookFobUsageExtended.report
+default/ps/psLogbookFobUsageMinimal.report
default/ps/psLogbookSampleMeasures.report
default/ps/psLogbookSampleSet.report
default/ps/psLogbookSampleSpeciesMeasures.report
=====================================
core/persistence/report/src/test/java/fr/ird/observe/report/ToolsTest.java
=====================================
@@ -47,7 +47,7 @@ import java.util.Objects;
public class ToolsTest {
- public static final int REPORTS_COUNT_COUNT = 35;
+ public static final int REPORTS_COUNT_COUNT = 37;
private static Path reportsPath(Path basedir) {
return basedir.resolve("src").resolve("main").resolve("resources").resolve("META-INF").resolve("report");
=====================================
core/services/test/src/main/java/fr/ird/observe/services/service/report/ps/PsLogbookFobUsageExtendedReportFixture.java
=====================================
@@ -0,0 +1,49 @@
+package fr.ird.observe.services.service.report.ps;
+
+/*-
+ * #%L
+ * ObServe Core :: Services :: Test
+ * %%
+ * Copyright (C) 2008 - 2023 IRD, Ultreia.io
+ * %%
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public
+ * License along with this program. If not, see
+ * <http://www.gnu.org/licenses/gpl-3.0.html>.
+ * #L%
+ */
+
+import com.google.auto.service.AutoService;
+import fr.ird.observe.report.Report;
+import fr.ird.observe.report.definition.ReportRequestDefinition;
+import fr.ird.observe.report.definition.RequestLayout;
+import fr.ird.observe.services.service.ReportFixture;
+
+import java.util.Iterator;
+
+/**
+ * Created on 17/02/2021.
+ *
+ * @author Tony Chemit - dev(a)tchemit.fr
+ * @since 8.0.6
+ */
+(a)AutoService(ReportFixture.class)
+public class PsLogbookFobUsageExtendedReportFixture extends ReportFixture {
+
+ @Override
+ public void assertSyntax(Report report) {
+ super.assertSyntax(report);
+ Iterator<ReportRequestDefinition> requests = getRequestIterator(report);
+ assertReportRequestDimension(requests, RequestLayout.row, 0, 0);
+ assertReportRequestDimension(requests, RequestLayout.row, 1, 0);
+ }
+}
=====================================
core/services/test/src/main/java/fr/ird/observe/services/service/report/ps/PsLogbookFobUsageMinimalReportFixture.java
=====================================
@@ -0,0 +1,49 @@
+package fr.ird.observe.services.service.report.ps;
+
+/*-
+ * #%L
+ * ObServe Core :: Services :: Test
+ * %%
+ * Copyright (C) 2008 - 2023 IRD, Ultreia.io
+ * %%
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public
+ * License along with this program. If not, see
+ * <http://www.gnu.org/licenses/gpl-3.0.html>.
+ * #L%
+ */
+
+import com.google.auto.service.AutoService;
+import fr.ird.observe.report.Report;
+import fr.ird.observe.report.definition.ReportRequestDefinition;
+import fr.ird.observe.report.definition.RequestLayout;
+import fr.ird.observe.services.service.ReportFixture;
+
+import java.util.Iterator;
+
+/**
+ * Created on 17/02/2021.
+ *
+ * @author Tony Chemit - dev(a)tchemit.fr
+ * @since 8.0.6
+ */
+(a)AutoService(ReportFixture.class)
+public class PsLogbookFobUsageMinimalReportFixture extends ReportFixture {
+
+ @Override
+ public void assertSyntax(Report report) {
+ super.assertSyntax(report);
+ Iterator<ReportRequestDefinition> requests = getRequestIterator(report);
+ assertReportRequestDimension(requests, RequestLayout.row, 0, 0);
+ assertReportRequestDimension(requests, RequestLayout.row, 1, 0);
+ }
+}
=====================================
core/services/test/src/main/resources/fixtures/fr/ird/observe/services/service/ReportService-psLogbookFobUsageExtended.properties
=====================================
@@ -0,0 +1,31 @@
+###
+# #%L
+# ObServe Core :: Services :: Test
+# %%
+# Copyright (C) 2008 - 2023 IRD, Ultreia.io
+# %%
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as
+# published by the Free Software Foundation, either version 3 of the
+# License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public
+# License along with this program. If not, see
+# <http://www.gnu.org/licenses/gpl-3.0.html>.
+# #L%
+###
+result.0=DFAD - DFAD (FAD dérivant)^0^0^0^0^0^0^0^0^1^0^0^0^0^0^0^0
+result.columns=17
+result.rows=1
+syntax.columns=17
+syntax.columnsHeader=Type de FOB^Visités Pêchés^Visités non Pêchés^Déploiement après Pêches^Déploiement seul^Modifiés Pêchés^Modifiés non Pêchés^Retirés Pêchés^Retirés non Pêchés^Abandonnés Pêchés^Abandonnés non Pêchés^Coulés Pêchés^Coulés non Pêchés^Remplacés Pêchés^Remplacés non Pêchés^Autre Pêchés^Autre non Pêchés
+syntax.description=Tableau récapitulatif des FOB rencontrés, par types CECOFAD et types d’actions (déploiements, simples visites, modifications, diverses modalités de retraits), avec et sans pêche
+syntax.name=Livre de bord - Utilisation des FOB, tableau détaillé
+syntax.nbRequests=2
+syntax.rows=-1
+syntax.rowsHeader=
=====================================
core/services/test/src/main/resources/fixtures/fr/ird/observe/services/service/ReportService-psLogbookFobUsageMinimal.properties
=====================================
@@ -0,0 +1,31 @@
+###
+# #%L
+# ObServe Core :: Services :: Test
+# %%
+# Copyright (C) 2008 - 2023 IRD, Ultreia.io
+# %%
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as
+# published by the Free Software Foundation, either version 3 of the
+# License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public
+# License along with this program. If not, see
+# <http://www.gnu.org/licenses/gpl-3.0.html>.
+# #L%
+###
+result.0=DFAD - DFAD (FAD dérivant)^1^0^0
+result.columns=4
+result.rows=1
+syntax.columns=4
+syntax.columnsHeader=Type de FOB^Rencontrés pêchés^Rencontrés non pêchés^Déployés
+syntax.description=Tableau récapitulatif des FOB rencontrés, par types CECOFAD et types d’actions regroupés (rencontrés et pêchés, rencontrés non pêchés, déployés)
+syntax.name=Livre de bord - Utilisation des FOB, tableau simplifiée
+syntax.nbRequests=2
+syntax.rows=-1
+syntax.rowsHeader=
=====================================
core/services/test/src/main/resources/fixtures/fr/ird/observe/services/service/ReportService.properties
=====================================
@@ -19,4 +19,4 @@
# <http://www.gnu.org/licenses/gpl-3.0.html>.
# #L%
###
-report.count=35
+report.count=37
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/commit/fcf880a9e47248aea607bfd00…
--
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/commit/fcf880a9e47248aea607bfd00…
You're receiving this email because of your account on gitlab.com.
1
0
[Git][ultreiaio/ird-observe][develop] 3 commits: Mise à jour du rapport psObservationAllActivities
by Tony CHEMIT (@tchemit) 19 Mar '24
by Tony CHEMIT (@tchemit) 19 Mar '24
19 Mar '24
Tony CHEMIT pushed to branch develop at ultreiaio / ird-observe
Commits:
584fa484 by Tony Chemit at 2024-03-19T15:00:14+01:00
Mise à jour du rapport psObservationAllActivities
- - - - -
ddc116b2 by Tony Chemit at 2024-03-19T15:00:14+01:00
Ajout du rapport psObservationActivitiesByZone
- - - - -
27355e37 by Tony Chemit at 2024-03-19T15:00:58+01:00
Merge branch 'feature/issue-2848' into develop
Tableaux de synthèse à intégrer - Closes #2848
- - - - -
9 changed files:
- + core/persistence/report/src/main/resources/META-INF/report/default/ps/psObservationActivitiesByZone.report
- core/persistence/report/src/main/resources/META-INF/report/default/ps/psObservationAllActivities.report
- core/persistence/report/src/main/resources/META-INF/report/embedded.list
- core/persistence/report/src/test/java/fr/ird/observe/report/ToolsTest.java
- + core/services/test/src/main/java/fr/ird/observe/services/service/report/ps/PsObservationActivitiesByZoneReportFixture.java
- + core/services/test/src/main/resources/fixtures/fr/ird/observe/services/service/ReportService-psObservationActivitiesByZone.properties
- core/services/test/src/main/resources/fixtures/fr/ird/observe/services/service/ReportService-psObservationAllActivities.properties
- core/services/test/src/main/resources/fixtures/fr/ird/observe/services/service/ReportService.properties
- src/site/markdown/report/embedded-reports.md
Changes:
=====================================
core/persistence/report/src/main/resources/META-INF/report/default/ps/psObservationActivitiesByZone.report
=====================================
@@ -0,0 +1,52 @@
+modelType=PS
+name=Observations - Types d'activités par zones FPA
+name.en=Observations - Types of activities by FPA zone crossed
+name.es=
+description=Tableau récapitulatif des types d'activités par zone FPA traversée
+description.en=Summary table of types of activities by FPA zone crossed
+description.es=
+columns=Zone,Visités Pêchés,Visités non Pêchés,Déploiement après Pêches,Déploiement seul,Modifiés Pêchés,Modifiés non Pêchés,Retirés Pêchés,Retirés non Pêchés,Abandonnés Pêchés,Abandonnés non Pêchés,Coulés Pêchés,Coulés non Pêchés,Remplacés Pêchés,Remplacés non Pêchés,Autre Pêchés,Autre non Pêchés,Tortues associées,Total
+columns.en=Zone,Visit and fishing,Visit only,Deployment after fishing,Deployment only,Modification after fishing,Modification only,Retrieval after fishing,Retrieval only,Abandonment after fishing,Abandonment only,Sinking after fishing,Sinking only,Replacment after fishing,Replacment only,Other activity after fishing,Other activity only,Number of turtles associated,Total
+columns.es=
+repeatVariable.1.name=zoneFpaId
+repeatVariable.1.type=java.lang.String
+repeatVariable.1.request=Select z.id \
+From FpaZoneImpl z \
+Where z.id In (Select distinct (a.currentFpaZone.id) \
+ From fr.ird.observe.entities.data.ps.common.TripImpl m \
+ Join m.routeObs r \
+ Join r.activity a With a.currentFpaZone Is Not NULL \
+ Where m.id In :tripId And a.floatingObject Is Not Empty) \
+Order By z.code, z.@i18nColumnName@
+request.1.location=0,0
+request.1.layout=row
+request.1.request=Select concat(a.currentFpaZone.code , ' - ', a.currentFpaZone.@i18nColumnName@), \
+SUM(CASE When dcp.objectOperation = 'fr.ird.referential.ps.common.ObjectOperation#0#2' And a.vesselActivity = 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586' Then 1 Else 0 End), \
+SUM(CASE When dcp.objectOperation = 'fr.ird.referential.ps.common.ObjectOperation#0#2' And a.vesselActivity != 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586' Then 1 Else 0 End), \
+SUM(CASE When dcp.objectOperation = 'fr.ird.referential.ps.common.ObjectOperation#0#1' And a.vesselActivity = 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586' Then 1 Else 0 End), \
+SUM(CASE When dcp.objectOperation = 'fr.ird.referential.ps.common.ObjectOperation#0#1' And a.vesselActivity != 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586' Then 1 Else 0 End), \
+SUM(CASE When dcp.objectOperation = 'fr.ird.referential.ps.common.ObjectOperation#0#8' And a.vesselActivity = 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586' Then 1 Else 0 End), \
+SUM(CASE When dcp.objectOperation = 'fr.ird.referential.ps.common.ObjectOperation#0#8' And a.vesselActivity != 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586' Then 1 Else 0 End), \
+SUM(CASE When dcp.objectOperation = 'fr.ird.referential.ps.common.ObjectOperation#0#4' And a.vesselActivity = 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586' Then 1 Else 0 End), \
+SUM(CASE When dcp.objectOperation = 'fr.ird.referential.ps.common.ObjectOperation#0#4' And a.vesselActivity != 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586' Then 1 Else 0 End), \
+SUM(CASE When dcp.objectOperation = 'fr.ird.referential.ps.common.ObjectOperation#0#5' And a.vesselActivity = 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586' Then 1 Else 0 End), \
+SUM(CASE When dcp.objectOperation = 'fr.ird.referential.ps.common.ObjectOperation#0#5' And a.vesselActivity != 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586' Then 1 Else 0 End), \
+SUM(CASE When dcp.objectOperation = 'fr.ird.referential.ps.common.ObjectOperation#0#7' And a.vesselActivity = 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586' Then 1 Else 0 End), \
+SUM(CASE When dcp.objectOperation = 'fr.ird.referential.ps.common.ObjectOperation#0#7' And a.vesselActivity != 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586' Then 1 Else 0 End), \
+SUM(CASE When dcp.objectOperation = 'fr.ird.referential.ps.common.ObjectOperation#0#9' And a.vesselActivity = 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586' Then 1 Else 0 End), \
+SUM(CASE When dcp.objectOperation = 'fr.ird.referential.ps.common.ObjectOperation#0#9' And a.vesselActivity != 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586' Then 1 Else 0 End), \
+SUM(CASE When ( dcp.objectOperation = 'fr.ird.referential.ps.common.ObjectOperation#0#10' Or dcp.objectOperation = 'fr.ird.referential.ps.common.ObjectOperation#0#3' ) And a.vesselActivity = 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586' Then 1 Else 0 End), \
+SUM(CASE When ( dcp.objectOperation = 'fr.ird.referential.ps.common.ObjectOperation#0#10' Or dcp.objectOperation = 'fr.ird.referential.ps.common.ObjectOperation#0#3' ) And a.vesselActivity != 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586' Then 1 Else 0 End), \
+Sum(Case When dcp.objectObservedSpecies Is Not Empty Then (Select Sum(efo.count) From dcp.objectObservedSpecies efo Where efo.species.speciesGroup.id = 'fr.ird.referential.common.SpeciesGroup#1239832683690#0.24333033683679461') Else 0 End) \
+From fr.ird.observe.entities.data.ps.common.TripImpl m \
+Join m.routeObs r \
+Join r.activity a With a.currentFpaZone.id = :zoneFpaId \
+Join a.floatingObject dcp \
+Where m.id In :tripId
+request.1.repeat.name=zoneFpaId
+request.1.repeat.layout=column
+request.1.comment=visite + peche / visite - peche / Deploiement + peche / Deploiement - peche / Modifie + peche / Modifie - peche / Retire + peche / Retire - peche / Abandonne + peche / Abandonne - peche / Coule + peche / Coule - peche / Remplace + peche / Remplace - peche / Autre ou ancien peche + peche / Autre ou ancien peche - peche / Nombre de tortues
+operations.1.type=SumIntRow
+operations.1.parameters=0|1
+operations.2.type=SumIntColumn
+operations.2.parameters=0|1
=====================================
core/persistence/report/src/main/resources/META-INF/report/default/ps/psObservationAllActivities.report
=====================================
@@ -20,22 +20,25 @@
# #L%
###
modelType=PS
-name=Observations - Toutes les activités et leurs positions
-name.en=Observations - Activities with their geographic position
+name=Observations - Toutes les activités, leurs positions et zones FPA
+name.en=Observations - Activities with their geographic position and FPA zones
name.es=
description=Afficher toutes les activités et leurs positions géographiques
description.en=Display activities with their geographic position
description.es=
-columns=Jour,Heure observation,Latitude,Longitude,Activité,Commentaire
-columns.en=Date,Hour,Latitude,Longitude,Activity,Comment
+columns=Jour,Heure observation,Latitude,Longitude,Activité (code),Activité (nom),Zone FPA (code),Zone FPA (nom),Commentaire
+columns.en=Date,Hour,Latitude,Longitude,Activity (code), Activity (label),FPA zone (code), FPA zone (label), Comment
columns.es=
request.1.location=0,0
request.1.layout=row
-request.1.request=Select r.date, Cast(a.time As java.sql.Time), a.latitude, a.longitude, ab.@i18nColumnName@, a.comment \
+request.1.request=Select r.date, Cast(a.time As java.sql.Time), a.latitude, a.longitude, ab.code, ab.@i18nColumnName@, z.code, z.@i18nColumnName@, a.comment \
From TripImpl m \
Join m.routeObs r \
Join r.activity a \
Join a.vesselActivity ab \
+Left Join a.currentFpaZone z \
Where \
m.id In :tripId \
Order By r.date, a.time
+
+
=====================================
core/persistence/report/src/main/resources/META-INF/report/embedded.list
=====================================
@@ -17,6 +17,7 @@ default/ps/psLogbookSampleSpeciesMeasuresCount.report
default/ps/psLogbookTrip.report
default/ps/psLogbookWellPlan.report
default/ps/psLogbookWellPlanCheck.report
+default/ps/psObservationActivitiesByZone.report
default/ps/psObservationActivityWithComment.report
default/ps/psObservationAllActivities.report
default/ps/psObservationCatch.report
=====================================
core/persistence/report/src/test/java/fr/ird/observe/report/ToolsTest.java
=====================================
@@ -47,7 +47,7 @@ import java.util.Objects;
public class ToolsTest {
- public static final int REPORTS_COUNT_COUNT = 34;
+ public static final int REPORTS_COUNT_COUNT = 35;
private static Path reportsPath(Path basedir) {
return basedir.resolve("src").resolve("main").resolve("resources").resolve("META-INF").resolve("report");
=====================================
core/services/test/src/main/java/fr/ird/observe/services/service/report/ps/PsObservationActivitiesByZoneReportFixture.java
=====================================
@@ -0,0 +1,47 @@
+package fr.ird.observe.services.service.report.ps;
+
+/*-
+ * #%L
+ * ObServe Core :: Services :: Test
+ * %%
+ * Copyright (C) 2008 - 2024 IRD, Ultreia.io
+ * %%
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public
+ * License along with this program. If not, see
+ * <http://www.gnu.org/licenses/gpl-3.0.html>.
+ * #L%
+ */
+
+import com.google.auto.service.AutoService;
+import fr.ird.observe.report.Report;
+import fr.ird.observe.report.definition.ReportRequestDefinition;
+import fr.ird.observe.report.definition.RequestLayout;
+import fr.ird.observe.services.service.ReportFixture;
+
+import java.util.Iterator;
+
+/**
+ * Created at 15/03/2024.
+ *
+ * @author Tony Chemit - dev(a)tchemit.fr
+ * @since 9.3.0
+ */
+(a)AutoService(ReportFixture.class)
+public class PsObservationActivitiesByZoneReportFixture extends ReportFixture {
+ @Override
+ public void assertSyntax(Report report) {
+ super.assertSyntax(report);
+ Iterator<ReportRequestDefinition> requests = getRequestIterator(report);
+ assertReportRequestDimension(requests, RequestLayout.row, 0, 0);
+ }
+}
=====================================
core/services/test/src/main/resources/fixtures/fr/ird/observe/services/service/ReportService-psObservationActivitiesByZone.properties
=====================================
@@ -0,0 +1,33 @@
+###
+# #%L
+# ObServe Core :: Services :: Test
+# %%
+# Copyright (C) 2008 - 2024 IRD, Ultreia.io
+# %%
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as
+# published by the Free Software Foundation, either version 3 of the
+# License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public
+# License along with this program. If not, see
+# <http://www.gnu.org/licenses/gpl-3.0.html>.
+# #L%
+###
+syntax.rows=-1
+syntax.columns=19
+syntax.columnsHeader=Zone^Visités Pêchés^Visités non Pêchés^Déploiement après Pêches^Déploiement seul^Modifiés Pêchés^Modifiés non Pêchés^Retirés Pêchés^Retirés non Pêchés^Abandonnés Pêchés^Abandonnés non Pêchés^Coulés Pêchés^Coulés non Pêchés^Remplacés Pêchés^Remplacés non Pêchés^Autre Pêchés^Autre non Pêchés^Tortues associées^Total
+syntax.rowsHeader=
+syntax.nbRequests=1
+result.columns=19
+result.rows=3
+result.0=CIV - Côte d'Ivoire^1^9^1^0^0^0^0^0^0^0^0^0^0^0^0^0^0^11
+result.1=LBR - Libéria^0^7^0^27^0^0^0^0^0^0^0^0^0^0^0^0^0^34
+result.2=Total^1^16^1^27^0^0^0^0^0^0^0^0^0^0^0^0^0^45
+syntax.name=Observations - Types d'activités par zones FPA
+syntax.description=Tableau récapitulatif des types d'activités par zone FPA traversée
\ No newline at end of file
=====================================
core/services/test/src/main/resources/fixtures/fr/ird/observe/services/service/ReportService-psObservationAllActivities.properties
=====================================
@@ -19,152 +19,152 @@
# <http://www.gnu.org/licenses/gpl-3.0.html>.
# #L%
###
-result.0=30/03/2019^18:00^5.2833^-4.0^Au port^Départ du port de pêche pour la fin de la marée
-result.1=30/03/2019^19:00^5.1667^-4.0^Transit (route sans recherche)^Route de nuit
-result.2=31/03/2019^06:13^3.95^-5.2667^Recherche (général)^null
-result.3=31/03/2019^06:54^3.95^-5.35^Thonier arrivant sur le système détecté^null
-result.4=31/03/2019^07:50^3.9667^-5.35^Pêche (larguage du skiff)^null
-result.5=31/03/2019^10:55^3.9833^-5.2833^Thonier arrivant sur le système détecté^null
-result.6=31/03/2019^11:24^3.9833^-5.2667^Pêche (larguage du skiff)^null
-result.7=31/03/2019^14:56^3.95^-5.3333^Thonier arrivant sur le système détecté^
-result.8=31/03/2019^15:05^3.95^-5.3333^Opération sur objet flottant (visite, pose, modification, récupération)^null
-result.9=31/03/2019^16:11^3.8167^-5.4167^Thonier arrivant sur le système détecté^
-result.10=31/03/2019^16:22^3.8333^-5.4167^Opération sur objet flottant (visite, pose, modification, récupération)^null
-result.11=31/03/2019^16:53^3.7833^-5.4833^Thonier arrivant sur le système détecté^
-result.12=31/03/2019^17:03^3.7833^-5.4833^Opération sur objet flottant (visite, pose, modification, récupération)^null
-result.13=31/03/2019^18:03^3.7833^-5.4667^Recherche (général)^null
-result.14=31/03/2019^18:44^3.8667^-5.4833^Fin de veille^null
-result.15=31/03/2019^19:00^3.9^-5.5^En dérive de nuit (moteur stoppé)^null
-result.16=01/04/2019^06:15^3.9833^-5.3167^Recherche (général)^null
-result.17=01/04/2019^07:43^3.8333^-5.2667^Thonier arrivant sur le système détecté^
-result.18=01/04/2019^07:56^3.8333^-5.25^Opération sur objet flottant (visite, pose, modification, récupération)^null
-result.19=01/04/2019^08:15^3.8833^-5.2333^Recherche (général)^null
-result.20=01/04/2019^08:41^3.9333^-5.2833^Thonier arrivant sur le système détecté^null
-result.21=01/04/2019^09:41^3.9167^-5.25^Pêche (larguage du skiff)^null
-result.22=01/04/2019^09:41^3.9167^-5.25^Pêche (larguage du skiff)^null
-result.23=01/04/2019^12:15^3.9^-5.2833^Recherche (général)^null
-result.24=01/04/2019^12:34^3.9333^-5.3^Thonier arrivant sur le système détecté^null
-result.25=01/04/2019^12:40^3.9333^-5.3^Pêche (larguage du skiff)^null
-result.26=01/04/2019^16:15^3.8833^-5.2667^Recherche (général)^null
-result.27=01/04/2019^16:38^3.9333^-5.3^Thonier arrivant sur le système détecté^null
-result.28=01/04/2019^16:51^3.9333^-5.3^Pêche (larguage du skiff)^
-result.29=01/04/2019^21:17^3.95^-5.2167^Fin de veille^null
-result.30=01/04/2019^21:18^3.95^-5.2167^Transit (route sans recherche)^Route jusqu'à 22H
-result.31=02/04/2019^06:15^3.9^-5.1833^Recherche (général)^null
-result.32=02/04/2019^06:57^3.9333^-5.25^Thonier arrivant sur le système détecté^null
-result.33=02/04/2019^07:11^3.95^-5.25^Pêche (larguage du skiff)^
-result.34=02/04/2019^10:15^3.9167^-5.2167^Recherche (général)^null
-result.35=02/04/2019^12:15^3.8833^-5.25^Recherche (général)^null
-result.36=02/04/2019^13:58^3.9^-4.9333^Thonier arrivant sur le système détecté^
-result.37=02/04/2019^14:15^3.9^-4.9333^Thonier arrivant sur le système détecté^null
-result.38=02/04/2019^14:22^3.9^-4.95^Pêche (larguage du skiff)^null
-result.39=02/04/2019^18:44^3.8833^-4.95^Fin de veille^null
-result.40=02/04/2019^19:12^3.8667^-5.0^En dérive de nuit (moteur stoppé)^null
-result.41=03/04/2019^06:15^3.9^-4.9^Thonier arrivant sur le système détecté^
-result.42=03/04/2019^07:16^3.8833^-4.95^Thonier arrivant sur le système détecté^null
-result.43=03/04/2019^07:51^3.8833^-4.9333^Pêche (larguage du skiff)^null
-result.44=03/04/2019^10:15^3.8833^-4.9167^Thonier arrivant sur le système détecté^Banc sous autre senneur
-result.45=03/04/2019^12:15^3.9^-4.9167^Thonier arrivant sur le système détecté^
-result.46=03/04/2019^14:15^3.9^-4.8833^Recherche (général)^null
-result.47=03/04/2019^15:28^3.9667^-4.85^Thonier arrivant sur le système détecté^
-result.48=03/04/2019^15:36^3.9667^-4.85^Opération sur objet flottant (visite, pose, modification, récupération)^null
-result.49=03/04/2019^16:15^3.8833^-4.9167^Recherche (général)^null
-result.50=03/04/2019^18:15^3.8667^-4.9833^Recherche (général)^null
-result.51=03/04/2019^18:42^3.8333^-5.05^Fin de veille^null
-result.52=03/04/2019^18:50^3.8167^-5.05^En dérive de nuit (moteur stoppé)^null
-result.53=04/04/2019^06:12^3.9^-4.8667^Recherche (général)^
-result.54=04/04/2019^08:12^3.8667^-4.8833^Recherche (général)^null
-result.55=04/04/2019^10:12^3.6^-4.6167^Recherche (général)^null
-result.56=04/04/2019^12:04^3.3^-4.4333^Thonier arrivant sur le système détecté^
-result.57=04/04/2019^12:12^3.3^-4.4333^Opération sur objet flottant (visite, pose, modification, récupération)^null
-result.58=04/04/2019^14:12^3.05^-4.7^Recherche (général)^null
-result.59=04/04/2019^15:43^2.8667^-4.9167^Thonier arrivant sur le système détecté^
-result.60=04/04/2019^15:46^2.8667^-4.9167^Opération sur objet flottant (visite, pose, modification, récupération)^null
-result.61=04/04/2019^16:12^2.8167^-5.0^Recherche (général)^null
-result.62=04/04/2019^18:12^2.6333^-5.3333^Recherche (général)^null
-result.63=04/04/2019^18:41^2.6^-5.4167^Fin de veille^null
-result.64=04/04/2019^18:42^2.6^-5.4167^Route de nuit vers objet^Route toute la nuit
-result.65=05/04/2019^06:20^1.5167^-7.4^Thonier arrivant sur le système détecté^
-result.66=05/04/2019^06:28^1.5^-7.4167^Opération sur objet flottant (visite, pose, modification, récupération)^null
-result.67=05/04/2019^07:02^1.5^-7.5333^Changement de zone FPA^null
-result.68=05/04/2019^07:11^1.5^-7.55^Opération sur objet flottant (visite, pose, modification, récupération)^null
-result.69=05/04/2019^07:34^1.5^-7.6333^Opération sur objet flottant (visite, pose, modification, récupération)^null
-result.70=05/04/2019^08:03^1.4667^-7.6833^Opération sur objet flottant (visite, pose, modification, récupération)^null
-result.71=05/04/2019^08:20^1.4333^-7.7167^Recherche (général)^null
-result.72=05/04/2019^08:32^1.4^-7.7333^Opération sur objet flottant (visite, pose, modification, récupération)^null
-result.73=05/04/2019^08:38^1.3833^-7.75^Thonier arrivant sur le système détecté^
-result.74=05/04/2019^08:50^1.3667^-7.7333^Opération sur objet flottant (visite, pose, modification, récupération)^null
-result.75=05/04/2019^09:07^1.4^-7.7667^Opération sur objet flottant (visite, pose, modification, récupération)^null
-result.76=05/04/2019^09:37^1.45^-7.8667^Opération sur objet flottant (visite, pose, modification, récupération)^null
-result.77=05/04/2019^10:02^1.4833^-7.9167^Opération sur objet flottant (visite, pose, modification, récupération)^null
-result.78=05/04/2019^10:20^1.5^-7.9667^Recherche (général)^null
-result.79=05/04/2019^10:29^1.4833^-7.9833^Thonier arrivant sur le système détecté^
-result.80=05/04/2019^10:41^1.5^-8.0^Opération sur objet flottant (visite, pose, modification, récupération)^null
-result.81=05/04/2019^11:03^1.5333^-8.05^Opération sur objet flottant (visite, pose, modification, récupération)^null
-result.82=05/04/2019^11:31^1.5833^-8.1167^Opération sur objet flottant (visite, pose, modification, récupération)^null
-result.83=05/04/2019^12:00^1.65^-8.1833^Opération sur objet flottant (visite, pose, modification, récupération)^null
-result.84=05/04/2019^12:20^1.7333^-8.2333^Recherche (général)^null
-result.85=05/04/2019^12:35^1.75^-8.2667^Opération sur objet flottant (visite, pose, modification, récupération)^null
-result.86=05/04/2019^13:04^1.8167^-8.3167^Opération sur objet flottant (visite, pose, modification, récupération)^null
-result.87=05/04/2019^13:30^1.85^-8.3333^Thonier arrivant sur le système détecté^
-result.88=05/04/2019^13:38^1.8667^-8.3333^Opération sur objet flottant (visite, pose, modification, récupération)^
-result.89=05/04/2019^14:00^1.9167^-8.3667^Opération sur objet flottant (visite, pose, modification, récupération)^null
-result.90=05/04/2019^14:19^1.95^-8.4167^Thonier arrivant sur le système détecté^
-result.91=05/04/2019^14:26^1.95^-8.4167^Opération sur objet flottant (visite, pose, modification, récupération)^null
-result.92=05/04/2019^15:05^2.0667^-8.4333^Opération sur objet flottant (visite, pose, modification, récupération)^null
-result.93=05/04/2019^15:35^2.15^-8.4333^Opération sur objet flottant (visite, pose, modification, récupération)^null
-result.94=05/04/2019^15:36^2.15^-8.4333^Thonier arrivant sur le système détecté^
-result.95=05/04/2019^15:46^2.15^-8.4333^Opération sur objet flottant (visite, pose, modification, récupération)^null
-result.96=05/04/2019^16:02^2.2^-8.4333^Opération sur objet flottant (visite, pose, modification, récupération)^null
-result.97=05/04/2019^16:20^2.2167^-8.4167^Recherche (général)^null
-result.98=05/04/2019^16:36^2.2667^-8.4^Opération sur objet flottant (visite, pose, modification, récupération)^null
-result.99=05/04/2019^16:46^2.2333^-8.3833^Thonier arrivant sur le système détecté^
-result.100=05/04/2019^16:53^2.2333^-8.3833^Opération sur objet flottant (visite, pose, modification, récupération)^null
-result.101=05/04/2019^17:08^2.2667^-8.3667^Opération sur objet flottant (visite, pose, modification, récupération)^null
-result.102=05/04/2019^17:17^2.2833^-8.35^Thonier arrivant sur le système détecté^
-result.103=05/04/2019^17:24^2.2833^-8.35^Opération sur objet flottant (visite, pose, modification, récupération)^
-result.104=05/04/2019^17:34^2.3^-8.3333^Opération sur objet flottant (visite, pose, modification, récupération)^null
-result.105=05/04/2019^17:37^2.3167^-8.3333^Fin de veille^null
-result.106=05/04/2019^18:00^2.3667^-8.3167^Thonier arrivant sur le système détecté^
-result.107=05/04/2019^18:15^2.35^-8.3167^Opération sur objet flottant (visite, pose, modification, récupération)^null
-result.108=05/04/2019^18:40^2.3333^-8.35^En dérive de nuit (moteur stoppé)^null
-result.109=06/04/2019^06:35^2.35^-8.3333^Avaries en mer^Avarie au niveau du moteur, navire stoppé (réparation en cours)
-result.110=06/04/2019^12:05^2.3333^-8.3333^Avaries en mer^Avarie au niveau du moteur, navire stoppé (réparation en cours)
-result.111=06/04/2019^17:55^2.3667^-8.2833^Transit (route sans recherche)^Réparation de l'avarie terminée.
-result.112=06/04/2019^18:00^2.3667^-8.2833^Opération sur objet flottant (visite, pose, modification, récupération)^null
-result.113=06/04/2019^18:16^2.3833^-8.25^Opération sur objet flottant (visite, pose, modification, récupération)^null
-result.114=06/04/2019^18:26^2.4^-8.2167^Opération sur objet flottant (visite, pose, modification, récupération)^null
-result.115=06/04/2019^18:36^2.4167^-8.2^Opération sur objet flottant (visite, pose, modification, récupération)^null
-result.116=06/04/2019^18:46^2.45^-8.1833^Opération sur objet flottant (visite, pose, modification, récupération)^null
-result.117=06/04/2019^18:57^2.4667^-8.15^Opération sur objet flottant (visite, pose, modification, récupération)^null
-result.118=06/04/2019^19:05^2.4833^-8.1333^Opération sur objet flottant (visite, pose, modification, récupération)^null
-result.119=06/04/2019^19:06^2.4833^-8.1333^Transit (route sans recherche)^Route de nuit
-result.120=07/04/2019^06:24^3.4333^-6.2^Changement de zone FPA^Changement de zone effectué le 06/04/2019 à 22H35 T.U à la position 02°45N et 007°33 W
-result.121=07/04/2019^08:24^3.65^-5.8667^Recherche (général)^null
-result.122=07/04/2019^10:24^3.8167^-5.5^Recherche (général)^null
-result.123=07/04/2019^12:24^3.9167^-5.1167^Thonier arrivant sur le système détecté^
-result.124=07/04/2019^12:43^3.9167^-5.1^Opération sur objet flottant (visite, pose, modification, récupération)^null
-result.125=07/04/2019^12:52^3.9167^-5.0833^Thonier arrivant sur le système détecté^
-result.126=07/04/2019^14:18^3.9^-5.0833^Thonier arrivant sur le système détecté^null
-result.127=07/04/2019^14:21^3.9^-5.0833^Pêche (larguage du skiff)^null
-result.128=07/04/2019^18:24^3.9^-4.8833^Recherche (général)^null
-result.129=07/04/2019^18:33^3.9^-4.8667^Fin de veille^Averse
-result.130=07/04/2019^18:34^3.9^-4.8667^Transit (route sans recherche)^Route de nuit jusqu'à 1H
-result.131=08/04/2019^06:30^4.0667^-3.45^Transit (route sans recherche)^navire en approche pour le début de l'aviataillement
-result.132=08/04/2019^07:30^4.0667^-3.45^Autres (à préciser dans les notes)^Début de l'aviatillement en gasoil.
-result.133=08/04/2019^11:34^4.1833^-3.3333^Autres (à préciser dans les notes)^Fin avitaillement en gasoil, poursuite de la route
-result.134=08/04/2019^12:30^4.3167^-3.4167^Recherche (général)^null
-result.135=08/04/2019^14:30^4.6^-3.6^Recherche (général)^null
-result.136=08/04/2019^16:00^4.8167^-3.75^Fin de veille^null
-result.137=08/04/2019^16:30^4.8833^-3.8167^Transit (route sans recherche)^
-result.138=08/04/2019^18:30^5.1^-3.95^Transit (route sans recherche)^null
-result.139=08/04/2019^21:05^5.2833^-4.0167^Au port^Navire au port de pêche d'Abidjan.
-syntax.name=Observations - Toutes les activités et leurs positions
+result.0=30/03/2019^18:00^5.2833^-4.0^0^Au port^CIV^Côte d'Ivoire^Départ du port de pêche pour la fin de la marée
+result.1=30/03/2019^19:00^5.1667^-4.0^1^Transit (route sans recherche)^CIV^Côte d'Ivoire^Route de nuit
+result.2=31/03/2019^06:13^3.95^-5.2667^2^Recherche (général)^CIV^Côte d'Ivoire^null
+result.3=31/03/2019^06:54^3.95^-5.35^5^Thonier arrivant sur le système détecté^CIV^Côte d'Ivoire^null
+result.4=31/03/2019^07:50^3.9667^-5.35^6^Pêche (larguage du skiff)^CIV^Côte d'Ivoire^null
+result.5=31/03/2019^10:55^3.9833^-5.2833^5^Thonier arrivant sur le système détecté^CIV^Côte d'Ivoire^null
+result.6=31/03/2019^11:24^3.9833^-5.2667^6^Pêche (larguage du skiff)^CIV^Côte d'Ivoire^null
+result.7=31/03/2019^14:56^3.95^-5.3333^5^Thonier arrivant sur le système détecté^CIV^Côte d'Ivoire^
+result.8=31/03/2019^15:05^3.95^-5.3333^13^Opération sur objet flottant (visite, pose, modification, récupération)^CIV^Côte d'Ivoire^null
+result.9=31/03/2019^16:11^3.8167^-5.4167^5^Thonier arrivant sur le système détecté^CIV^Côte d'Ivoire^
+result.10=31/03/2019^16:22^3.8333^-5.4167^13^Opération sur objet flottant (visite, pose, modification, récupération)^CIV^Côte d'Ivoire^null
+result.11=31/03/2019^16:53^3.7833^-5.4833^5^Thonier arrivant sur le système détecté^CIV^Côte d'Ivoire^
+result.12=31/03/2019^17:03^3.7833^-5.4833^13^Opération sur objet flottant (visite, pose, modification, récupération)^CIV^Côte d'Ivoire^null
+result.13=31/03/2019^18:03^3.7833^-5.4667^2^Recherche (général)^CIV^Côte d'Ivoire^null
+result.14=31/03/2019^18:44^3.8667^-5.4833^16^Fin de veille^CIV^Côte d'Ivoire^null
+result.15=31/03/2019^19:00^3.9^-5.5^9^En dérive de nuit (moteur stoppé)^CIV^Côte d'Ivoire^null
+result.16=01/04/2019^06:15^3.9833^-5.3167^2^Recherche (général)^CIV^Côte d'Ivoire^null
+result.17=01/04/2019^07:43^3.8333^-5.2667^5^Thonier arrivant sur le système détecté^CIV^Côte d'Ivoire^
+result.18=01/04/2019^07:56^3.8333^-5.25^13^Opération sur objet flottant (visite, pose, modification, récupération)^CIV^Côte d'Ivoire^null
+result.19=01/04/2019^08:15^3.8833^-5.2333^2^Recherche (général)^CIV^Côte d'Ivoire^null
+result.20=01/04/2019^08:41^3.9333^-5.2833^5^Thonier arrivant sur le système détecté^CIV^Côte d'Ivoire^null
+result.21=01/04/2019^09:41^3.9167^-5.25^6^Pêche (larguage du skiff)^CIV^Côte d'Ivoire^null
+result.22=01/04/2019^09:41^3.9167^-5.25^6^Pêche (larguage du skiff)^CIV^Côte d'Ivoire^null
+result.23=01/04/2019^12:15^3.9^-5.2833^2^Recherche (général)^CIV^Côte d'Ivoire^null
+result.24=01/04/2019^12:34^3.9333^-5.3^5^Thonier arrivant sur le système détecté^CIV^Côte d'Ivoire^null
+result.25=01/04/2019^12:40^3.9333^-5.3^6^Pêche (larguage du skiff)^CIV^Côte d'Ivoire^null
+result.26=01/04/2019^16:15^3.8833^-5.2667^2^Recherche (général)^CIV^Côte d'Ivoire^null
+result.27=01/04/2019^16:38^3.9333^-5.3^5^Thonier arrivant sur le système détecté^CIV^Côte d'Ivoire^null
+result.28=01/04/2019^16:51^3.9333^-5.3^6^Pêche (larguage du skiff)^CIV^Côte d'Ivoire^
+result.29=01/04/2019^21:17^3.95^-5.2167^16^Fin de veille^CIV^Côte d'Ivoire^null
+result.30=01/04/2019^21:18^3.95^-5.2167^1^Transit (route sans recherche)^CIV^Côte d'Ivoire^Route jusqu'à 22H
+result.31=02/04/2019^06:15^3.9^-5.1833^2^Recherche (général)^CIV^Côte d'Ivoire^null
+result.32=02/04/2019^06:57^3.9333^-5.25^5^Thonier arrivant sur le système détecté^CIV^Côte d'Ivoire^null
+result.33=02/04/2019^07:11^3.95^-5.25^6^Pêche (larguage du skiff)^CIV^Côte d'Ivoire^
+result.34=02/04/2019^10:15^3.9167^-5.2167^2^Recherche (général)^CIV^Côte d'Ivoire^null
+result.35=02/04/2019^12:15^3.8833^-5.25^2^Recherche (général)^CIV^Côte d'Ivoire^null
+result.36=02/04/2019^13:58^3.9^-4.9333^5^Thonier arrivant sur le système détecté^CIV^Côte d'Ivoire^
+result.37=02/04/2019^14:15^3.9^-4.9333^5^Thonier arrivant sur le système détecté^CIV^Côte d'Ivoire^null
+result.38=02/04/2019^14:22^3.9^-4.95^6^Pêche (larguage du skiff)^CIV^Côte d'Ivoire^null
+result.39=02/04/2019^18:44^3.8833^-4.95^16^Fin de veille^CIV^Côte d'Ivoire^null
+result.40=02/04/2019^19:12^3.8667^-5.0^9^En dérive de nuit (moteur stoppé)^CIV^Côte d'Ivoire^null
+result.41=03/04/2019^06:15^3.9^-4.9^5^Thonier arrivant sur le système détecté^CIV^Côte d'Ivoire^
+result.42=03/04/2019^07:16^3.8833^-4.95^5^Thonier arrivant sur le système détecté^CIV^Côte d'Ivoire^null
+result.43=03/04/2019^07:51^3.8833^-4.9333^6^Pêche (larguage du skiff)^CIV^Côte d'Ivoire^null
+result.44=03/04/2019^10:15^3.8833^-4.9167^5^Thonier arrivant sur le système détecté^CIV^Côte d'Ivoire^Banc sous autre senneur
+result.45=03/04/2019^12:15^3.9^-4.9167^5^Thonier arrivant sur le système détecté^CIV^Côte d'Ivoire^
+result.46=03/04/2019^14:15^3.9^-4.8833^2^Recherche (général)^CIV^Côte d'Ivoire^null
+result.47=03/04/2019^15:28^3.9667^-4.85^5^Thonier arrivant sur le système détecté^CIV^Côte d'Ivoire^
+result.48=03/04/2019^15:36^3.9667^-4.85^13^Opération sur objet flottant (visite, pose, modification, récupération)^CIV^Côte d'Ivoire^null
+result.49=03/04/2019^16:15^3.8833^-4.9167^2^Recherche (général)^CIV^Côte d'Ivoire^null
+result.50=03/04/2019^18:15^3.8667^-4.9833^2^Recherche (général)^CIV^Côte d'Ivoire^null
+result.51=03/04/2019^18:42^3.8333^-5.05^16^Fin de veille^CIV^Côte d'Ivoire^null
+result.52=03/04/2019^18:50^3.8167^-5.05^9^En dérive de nuit (moteur stoppé)^CIV^Côte d'Ivoire^null
+result.53=04/04/2019^06:12^3.9^-4.8667^2^Recherche (général)^CIV^Côte d'Ivoire^
+result.54=04/04/2019^08:12^3.8667^-4.8833^2^Recherche (général)^CIV^Côte d'Ivoire^null
+result.55=04/04/2019^10:12^3.6^-4.6167^2^Recherche (général)^CIV^Côte d'Ivoire^null
+result.56=04/04/2019^12:04^3.3^-4.4333^5^Thonier arrivant sur le système détecté^CIV^Côte d'Ivoire^
+result.57=04/04/2019^12:12^3.3^-4.4333^13^Opération sur objet flottant (visite, pose, modification, récupération)^CIV^Côte d'Ivoire^null
+result.58=04/04/2019^14:12^3.05^-4.7^2^Recherche (général)^CIV^Côte d'Ivoire^null
+result.59=04/04/2019^15:43^2.8667^-4.9167^5^Thonier arrivant sur le système détecté^CIV^Côte d'Ivoire^
+result.60=04/04/2019^15:46^2.8667^-4.9167^13^Opération sur objet flottant (visite, pose, modification, récupération)^CIV^Côte d'Ivoire^null
+result.61=04/04/2019^16:12^2.8167^-5.0^2^Recherche (général)^CIV^Côte d'Ivoire^null
+result.62=04/04/2019^18:12^2.6333^-5.3333^2^Recherche (général)^CIV^Côte d'Ivoire^null
+result.63=04/04/2019^18:41^2.6^-5.4167^16^Fin de veille^CIV^Côte d'Ivoire^null
+result.64=04/04/2019^18:42^2.6^-5.4167^18^Route de nuit vers objet^CIV^Côte d'Ivoire^Route toute la nuit
+result.65=05/04/2019^06:20^1.5167^-7.4^5^Thonier arrivant sur le système détecté^CIV^Côte d'Ivoire^
+result.66=05/04/2019^06:28^1.5^-7.4167^13^Opération sur objet flottant (visite, pose, modification, récupération)^CIV^Côte d'Ivoire^null
+result.67=05/04/2019^07:02^1.5^-7.5333^21^Changement de zone FPA^CIV^Côte d'Ivoire^null
+result.68=05/04/2019^07:11^1.5^-7.55^13^Opération sur objet flottant (visite, pose, modification, récupération)^LBR^Libéria^null
+result.69=05/04/2019^07:34^1.5^-7.6333^13^Opération sur objet flottant (visite, pose, modification, récupération)^LBR^Libéria^null
+result.70=05/04/2019^08:03^1.4667^-7.6833^13^Opération sur objet flottant (visite, pose, modification, récupération)^LBR^Libéria^null
+result.71=05/04/2019^08:20^1.4333^-7.7167^2^Recherche (général)^LBR^Libéria^null
+result.72=05/04/2019^08:32^1.4^-7.7333^13^Opération sur objet flottant (visite, pose, modification, récupération)^LBR^Libéria^null
+result.73=05/04/2019^08:38^1.3833^-7.75^5^Thonier arrivant sur le système détecté^LBR^Libéria^
+result.74=05/04/2019^08:50^1.3667^-7.7333^13^Opération sur objet flottant (visite, pose, modification, récupération)^LBR^Libéria^null
+result.75=05/04/2019^09:07^1.4^-7.7667^13^Opération sur objet flottant (visite, pose, modification, récupération)^LBR^Libéria^null
+result.76=05/04/2019^09:37^1.45^-7.8667^13^Opération sur objet flottant (visite, pose, modification, récupération)^LBR^Libéria^null
+result.77=05/04/2019^10:02^1.4833^-7.9167^13^Opération sur objet flottant (visite, pose, modification, récupération)^LBR^Libéria^null
+result.78=05/04/2019^10:20^1.5^-7.9667^2^Recherche (général)^LBR^Libéria^null
+result.79=05/04/2019^10:29^1.4833^-7.9833^5^Thonier arrivant sur le système détecté^LBR^Libéria^
+result.80=05/04/2019^10:41^1.5^-8.0^13^Opération sur objet flottant (visite, pose, modification, récupération)^LBR^Libéria^null
+result.81=05/04/2019^11:03^1.5333^-8.05^13^Opération sur objet flottant (visite, pose, modification, récupération)^LBR^Libéria^null
+result.82=05/04/2019^11:31^1.5833^-8.1167^13^Opération sur objet flottant (visite, pose, modification, récupération)^LBR^Libéria^null
+result.83=05/04/2019^12:00^1.65^-8.1833^13^Opération sur objet flottant (visite, pose, modification, récupération)^LBR^Libéria^null
+result.84=05/04/2019^12:20^1.7333^-8.2333^2^Recherche (général)^LBR^Libéria^null
+result.85=05/04/2019^12:35^1.75^-8.2667^13^Opération sur objet flottant (visite, pose, modification, récupération)^LBR^Libéria^null
+result.86=05/04/2019^13:04^1.8167^-8.3167^13^Opération sur objet flottant (visite, pose, modification, récupération)^LBR^Libéria^null
+result.87=05/04/2019^13:30^1.85^-8.3333^5^Thonier arrivant sur le système détecté^LBR^Libéria^
+result.88=05/04/2019^13:38^1.8667^-8.3333^13^Opération sur objet flottant (visite, pose, modification, récupération)^LBR^Libéria^
+result.89=05/04/2019^14:00^1.9167^-8.3667^13^Opération sur objet flottant (visite, pose, modification, récupération)^LBR^Libéria^null
+result.90=05/04/2019^14:19^1.95^-8.4167^5^Thonier arrivant sur le système détecté^LBR^Libéria^
+result.91=05/04/2019^14:26^1.95^-8.4167^13^Opération sur objet flottant (visite, pose, modification, récupération)^LBR^Libéria^null
+result.92=05/04/2019^15:05^2.0667^-8.4333^13^Opération sur objet flottant (visite, pose, modification, récupération)^LBR^Libéria^null
+result.93=05/04/2019^15:35^2.15^-8.4333^13^Opération sur objet flottant (visite, pose, modification, récupération)^LBR^Libéria^null
+result.94=05/04/2019^15:36^2.15^-8.4333^5^Thonier arrivant sur le système détecté^LBR^Libéria^
+result.95=05/04/2019^15:46^2.15^-8.4333^13^Opération sur objet flottant (visite, pose, modification, récupération)^LBR^Libéria^null
+result.96=05/04/2019^16:02^2.2^-8.4333^13^Opération sur objet flottant (visite, pose, modification, récupération)^LBR^Libéria^null
+result.97=05/04/2019^16:20^2.2167^-8.4167^2^Recherche (général)^LBR^Libéria^null
+result.98=05/04/2019^16:36^2.2667^-8.4^13^Opération sur objet flottant (visite, pose, modification, récupération)^LBR^Libéria^null
+result.99=05/04/2019^16:46^2.2333^-8.3833^5^Thonier arrivant sur le système détecté^LBR^Libéria^
+result.100=05/04/2019^16:53^2.2333^-8.3833^13^Opération sur objet flottant (visite, pose, modification, récupération)^LBR^Libéria^null
+result.101=05/04/2019^17:08^2.2667^-8.3667^13^Opération sur objet flottant (visite, pose, modification, récupération)^LBR^Libéria^null
+result.102=05/04/2019^17:17^2.2833^-8.35^5^Thonier arrivant sur le système détecté^LBR^Libéria^
+result.103=05/04/2019^17:24^2.2833^-8.35^13^Opération sur objet flottant (visite, pose, modification, récupération)^LBR^Libéria^
+result.104=05/04/2019^17:34^2.3^-8.3333^13^Opération sur objet flottant (visite, pose, modification, récupération)^LBR^Libéria^null
+result.105=05/04/2019^17:37^2.3167^-8.3333^16^Fin de veille^LBR^Libéria^null
+result.106=05/04/2019^18:00^2.3667^-8.3167^5^Thonier arrivant sur le système détecté^LBR^Libéria^
+result.107=05/04/2019^18:15^2.35^-8.3167^13^Opération sur objet flottant (visite, pose, modification, récupération)^LBR^Libéria^null
+result.108=05/04/2019^18:40^2.3333^-8.35^9^En dérive de nuit (moteur stoppé)^LBR^Libéria^null
+result.109=06/04/2019^06:35^2.35^-8.3333^11^Avaries en mer^LBR^Libéria^Avarie au niveau du moteur, navire stoppé (réparation en cours)
+result.110=06/04/2019^12:05^2.3333^-8.3333^11^Avaries en mer^LBR^Libéria^Avarie au niveau du moteur, navire stoppé (réparation en cours)
+result.111=06/04/2019^17:55^2.3667^-8.2833^1^Transit (route sans recherche)^LBR^Libéria^Réparation de l'avarie terminée.
+result.112=06/04/2019^18:00^2.3667^-8.2833^13^Opération sur objet flottant (visite, pose, modification, récupération)^LBR^Libéria^null
+result.113=06/04/2019^18:16^2.3833^-8.25^13^Opération sur objet flottant (visite, pose, modification, récupération)^LBR^Libéria^null
+result.114=06/04/2019^18:26^2.4^-8.2167^13^Opération sur objet flottant (visite, pose, modification, récupération)^LBR^Libéria^null
+result.115=06/04/2019^18:36^2.4167^-8.2^13^Opération sur objet flottant (visite, pose, modification, récupération)^LBR^Libéria^null
+result.116=06/04/2019^18:46^2.45^-8.1833^13^Opération sur objet flottant (visite, pose, modification, récupération)^LBR^Libéria^null
+result.117=06/04/2019^18:57^2.4667^-8.15^13^Opération sur objet flottant (visite, pose, modification, récupération)^LBR^Libéria^null
+result.118=06/04/2019^19:05^2.4833^-8.1333^13^Opération sur objet flottant (visite, pose, modification, récupération)^LBR^Libéria^null
+result.119=06/04/2019^19:06^2.4833^-8.1333^1^Transit (route sans recherche)^LBR^Libéria^Route de nuit
+result.120=07/04/2019^06:24^3.4333^-6.2^21^Changement de zone FPA^null^null^Changement de zone effectué le 06/04/2019 à 22H35 T.U à la position 02°45N et 007°33 W
+result.121=07/04/2019^08:24^3.65^-5.8667^2^Recherche (général)^CIV^Côte d'Ivoire^null
+result.122=07/04/2019^10:24^3.8167^-5.5^2^Recherche (général)^CIV^Côte d'Ivoire^null
+result.123=07/04/2019^12:24^3.9167^-5.1167^5^Thonier arrivant sur le système détecté^CIV^Côte d'Ivoire^
+result.124=07/04/2019^12:43^3.9167^-5.1^13^Opération sur objet flottant (visite, pose, modification, récupération)^CIV^Côte d'Ivoire^null
+result.125=07/04/2019^12:52^3.9167^-5.0833^5^Thonier arrivant sur le système détecté^CIV^Côte d'Ivoire^
+result.126=07/04/2019^14:18^3.9^-5.0833^5^Thonier arrivant sur le système détecté^CIV^Côte d'Ivoire^null
+result.127=07/04/2019^14:21^3.9^-5.0833^6^Pêche (larguage du skiff)^CIV^Côte d'Ivoire^null
+result.128=07/04/2019^18:24^3.9^-4.8833^2^Recherche (général)^CIV^Côte d'Ivoire^null
+result.129=07/04/2019^18:33^3.9^-4.8667^16^Fin de veille^CIV^Côte d'Ivoire^Averse
+result.130=07/04/2019^18:34^3.9^-4.8667^1^Transit (route sans recherche)^CIV^Côte d'Ivoire^Route de nuit jusqu'à 1H
+result.131=08/04/2019^06:30^4.0667^-3.45^1^Transit (route sans recherche)^CIV^Côte d'Ivoire^navire en approche pour le début de l'aviataillement
+result.132=08/04/2019^07:30^4.0667^-3.45^99^Autres (à préciser dans les notes)^CIV^Côte d'Ivoire^Début de l'aviatillement en gasoil.
+result.133=08/04/2019^11:34^4.1833^-3.3333^99^Autres (à préciser dans les notes)^CIV^Côte d'Ivoire^Fin avitaillement en gasoil, poursuite de la route
+result.134=08/04/2019^12:30^4.3167^-3.4167^2^Recherche (général)^CIV^Côte d'Ivoire^null
+result.135=08/04/2019^14:30^4.6^-3.6^2^Recherche (général)^CIV^Côte d'Ivoire^null
+result.136=08/04/2019^16:00^4.8167^-3.75^16^Fin de veille^CIV^Côte d'Ivoire^null
+result.137=08/04/2019^16:30^4.8833^-3.8167^1^Transit (route sans recherche)^CIV^Côte d'Ivoire^
+result.138=08/04/2019^18:30^5.1^-3.95^1^Transit (route sans recherche)^CIV^Côte d'Ivoire^null
+result.139=08/04/2019^21:05^5.2833^-4.0167^0^Au port^CIV^Côte d'Ivoire^Navire au port de pêche d'Abidjan.
+syntax.name=Observations - Toutes les activités, leurs positions et zones FPA
syntax.description=Afficher toutes les activités et leurs positions géographiques
syntax.rows=-1
-syntax.columns=6
-syntax.columnsHeader=Jour^Heure observation^Latitude^Longitude^Activité^Commentaire
+syntax.columns=9
+syntax.columnsHeader=Jour^Heure observation^Latitude^Longitude^Activité (code)^Activité (nom)^Zone FPA (code)^Zone FPA (nom)^Commentaire
syntax.rowsHeader=
syntax.nbRequests=1
-result.columns=6
+result.columns=9
result.rows=140
\ No newline at end of file
=====================================
core/services/test/src/main/resources/fixtures/fr/ird/observe/services/service/ReportService.properties
=====================================
@@ -19,4 +19,4 @@
# <http://www.gnu.org/licenses/gpl-3.0.html>.
# #L%
###
-report.count=34
+report.count=35
=====================================
src/site/markdown/report/embedded-reports.md
=====================================
@@ -86,6 +86,10 @@ Livre de bord - Vérification des plan de cuves
Observations - Activités avec comment et leurs positions
+## psObservationActivitiesByZone
+
+Observations - Types d'activités par zones FPA
+
### psObservationAllActivities
Observations - Toutes les activités et leurs positions
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/compare/4b1fe74f44edf4753fe8cd62…
--
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/compare/4b1fe74f44edf4753fe8cd62…
You're receiving this email because of your account on gitlab.com.
1
0
19 Mar '24
Tony CHEMIT deleted branch feature/issue-2848 at ultreiaio / ird-observe
--
You're receiving this email because of your account on gitlab.com.
1
0
[Git][ultreiaio/ird-observe][feature/issue-2848] 14 commits: Optimisation du rapport Livre de bord - Vérification des plan de cuves - Closes #2849
by Tony CHEMIT (@tchemit) 19 Mar '24
by Tony CHEMIT (@tchemit) 19 Mar '24
19 Mar '24
Tony CHEMIT pushed to branch feature/issue-2848 at ultreiaio / ird-observe
Commits:
b5b80021 by Tony Chemit at 2024-03-18T11:00:40+01:00
Optimisation du rapport Livre de bord - Vérification des plan de cuves - Closes #2849
- - - - -
56d7291a by Tony Chemit at 2024-03-18T11:00:40+01:00
Optimisation du rapport Livre de bord - Plan de cuves - Closes #2850
- - - - -
294f63b2 by Tony Chemit at 2024-03-18T11:00:46+01:00
Optimisation du rapport Observations - Utilisation des FOB, tableau simplifiée - Closes #2851
- - - - -
7f181c46 by Tony Chemit at 2024-03-18T11:00:53+01:00
Optimisation du rapport Observations - Utilisation des FOB, tableau détaillé - Closes #2852
- - - - -
8aa68e2b by Tony Chemit at 2024-03-18T11:00:53+01:00
Lors d'exports massifs de données, le token expire rapidement et fait échouer la suite du processus - Closes #2839
- - - - -
8634165e by Tony Chemit at 2024-03-18T11:00:53+01:00
Amélioration de la taille des colonnes du tableau des résultats d'un rapport - Closes #2853
- - - - -
e06ff9e9 by Tony Chemit at 2024-03-19T11:22:17+01:00
Fix one i18n translation
- - - - -
11ea9d2d by Tony Chemit at 2024-03-19T14:20:44+01:00
Review DataManager code (no more logic in the tasks)
- - - - -
f0d95762 by Tony Chemit at 2024-03-19T14:20:44+01:00
Reduce log in ReferentialIdsBuilder
- - - - -
ed8c4a22 by Tony Chemit at 2024-03-19T14:20:44+01:00
Fix DataSource IO in long actions
- - - - -
b3cab5a2 by Tony Chemit at 2024-03-19T14:20:44+01:00
Perte de connection au serveur lors d'envoie massif de marées - Closes #2854
- - - - -
4b1fe74f by Tony Chemit at 2024-03-19T14:20:44+01:00
update pom
- - - - -
584fa484 by Tony Chemit at 2024-03-19T15:00:14+01:00
Mise à jour du rapport psObservationAllActivities
- - - - -
ddc116b2 by Tony Chemit at 2024-03-19T15:00:14+01:00
Ajout du rapport psObservationActivitiesByZone
- - - - -
30 changed files:
- client/core/src/main/java/fr/ird/observe/client/datasource/api/data/CopyDataTask.java
- client/core/src/main/java/fr/ird/observe/client/datasource/api/data/DataManager.java
- client/core/src/main/java/fr/ird/observe/client/datasource/api/data/DataTaskSupport.java
- client/core/src/main/java/fr/ird/observe/client/datasource/api/data/DeleteDataTask.java
- client/core/src/main/java/fr/ird/observe/client/datasource/api/data/InsertMissingReferentialTask.java
- client/core/src/main/java/fr/ird/observe/client/datasource/api/data/TaskSide.java
- client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/export/actions/Prepare.java
- client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/report/ReportModel.java
- client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/synchronize/data/actions/Apply.java
- client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/validate/actions/Start.java
- client/runner/src/main/i18n/translations/client-runner_en_GB.properties
- client/runner/src/main/i18n/translations/client-runner_es_ES.properties
- client/runner/src/main/i18n/translations/client-runner_fr_FR.properties
- core/persistence/report/src/main/resources/META-INF/report/default/ps/psLogbookWellPlan.report
- core/persistence/report/src/main/resources/META-INF/report/default/ps/psLogbookWellPlanCheck.report
- + core/persistence/report/src/main/resources/META-INF/report/default/ps/psObservationActivitiesByZone.report
- core/persistence/report/src/main/resources/META-INF/report/default/ps/psObservationAllActivities.report
- core/persistence/report/src/main/resources/META-INF/report/default/ps/psObservationFobUsageExtended.report
- core/persistence/report/src/main/resources/META-INF/report/default/ps/psObservationFobUsageMinimal.report
- core/persistence/report/src/main/resources/META-INF/report/embedded.list
- core/persistence/report/src/test/java/fr/ird/observe/report/ToolsTest.java
- core/services/client/src/main/java/fr/ird/observe/services/client/ObserveServiceFactoryClient.java
- + core/services/test/src/main/java/fr/ird/observe/services/service/report/ps/PsObservationActivitiesByZoneReportFixture.java
- core/services/test/src/main/java/fr/ird/observe/services/service/report/ps/PsObservationFobUsageExtendedReportFixture.java
- core/services/test/src/main/java/fr/ird/observe/services/service/report/ps/PsObservationFobUsageMinimalReportFixture.java
- core/services/test/src/main/resources/fixtures/fr/ird/observe/services/service/ReportService-psLogbookWellPlanCheck.properties
- + core/services/test/src/main/resources/fixtures/fr/ird/observe/services/service/ReportService-psObservationActivitiesByZone.properties
- core/services/test/src/main/resources/fixtures/fr/ird/observe/services/service/ReportService-psObservationAllActivities.properties
- core/services/test/src/main/resources/fixtures/fr/ird/observe/services/service/ReportService-psObservationFobUsageExtended.properties
- core/services/test/src/main/resources/fixtures/fr/ird/observe/services/service/ReportService-psObservationFobUsageMinimal.properties
The diff was not included because it is too large.
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/compare/8b17856eae5fad301c30b137…
--
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/compare/8b17856eae5fad301c30b137…
You're receiving this email because of your account on gitlab.com.
1
0
[Git][ultreiaio/ird-observe][develop] 6 commits: Fix one i18n translation
by Tony CHEMIT (@tchemit) 19 Mar '24
by Tony CHEMIT (@tchemit) 19 Mar '24
19 Mar '24
Tony CHEMIT pushed to branch develop at ultreiaio / ird-observe
Commits:
e06ff9e9 by Tony Chemit at 2024-03-19T11:22:17+01:00
Fix one i18n translation
- - - - -
11ea9d2d by Tony Chemit at 2024-03-19T14:20:44+01:00
Review DataManager code (no more logic in the tasks)
- - - - -
f0d95762 by Tony Chemit at 2024-03-19T14:20:44+01:00
Reduce log in ReferentialIdsBuilder
- - - - -
ed8c4a22 by Tony Chemit at 2024-03-19T14:20:44+01:00
Fix DataSource IO in long actions
- - - - -
b3cab5a2 by Tony Chemit at 2024-03-19T14:20:44+01:00
Perte de connection au serveur lors d'envoie massif de marées - Closes #2854
- - - - -
4b1fe74f by Tony Chemit at 2024-03-19T14:20:44+01:00
update pom
- - - - -
14 changed files:
- client/core/src/main/java/fr/ird/observe/client/datasource/api/data/CopyDataTask.java
- client/core/src/main/java/fr/ird/observe/client/datasource/api/data/DataManager.java
- client/core/src/main/java/fr/ird/observe/client/datasource/api/data/DataTaskSupport.java
- client/core/src/main/java/fr/ird/observe/client/datasource/api/data/DeleteDataTask.java
- client/core/src/main/java/fr/ird/observe/client/datasource/api/data/InsertMissingReferentialTask.java
- client/core/src/main/java/fr/ird/observe/client/datasource/api/data/TaskSide.java
- client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/synchronize/data/actions/Apply.java
- client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/validate/actions/Start.java
- client/runner/src/main/i18n/translations/client-runner_en_GB.properties
- client/runner/src/main/i18n/translations/client-runner_es_ES.properties
- client/runner/src/main/i18n/translations/client-runner_fr_FR.properties
- core/services/client/src/main/java/fr/ird/observe/services/client/ObserveServiceFactoryClient.java
- pom.xml
- toolkit/persistence/src/main/java/fr/ird/observe/spi/referential/ReferentialIdsBuilder.java
Changes:
=====================================
client/core/src/main/java/fr/ird/observe/client/datasource/api/data/CopyDataTask.java
=====================================
@@ -22,22 +22,13 @@ package fr.ird.observe.client.datasource.api.data;
* #L%
*/
-import fr.ird.observe.client.datasource.api.ObserveSwingDataSource;
-import fr.ird.observe.dto.ProgressionModel;
import fr.ird.observe.dto.ToolkitIdLabel;
import fr.ird.observe.navigation.tree.selection.SelectionTreeModel;
import fr.ird.observe.navigation.tree.selection.SelectionTreeNodeBean;
-import fr.ird.observe.services.service.data.ExportDataRequest;
-import fr.ird.observe.services.service.data.ExportDataResult;
-import fr.ird.observe.services.service.data.ImportDataRequest;
-import fr.ird.observe.services.service.data.ImportDataResult;
-import org.apache.logging.log4j.LogManager;
-import org.apache.logging.log4j.Logger;
import java.util.function.BiFunction;
import java.util.stream.Stream;
-import static io.ultreia.java4all.i18n.I18n.n;
import static io.ultreia.java4all.i18n.I18n.t;
/**
@@ -48,7 +39,6 @@ import static io.ultreia.java4all.i18n.I18n.t;
*/
public class CopyDataTask extends DataTaskSupport {
- private static final Logger log = LogManager.getLogger(CopyDataTask.class);
private final boolean dataExistOnOpposite;
private final ToolkitIdLabel data;
private final String prefix;
@@ -65,30 +55,6 @@ public class CopyDataTask extends DataTaskSupport {
this.prefix = prefix;
}
- public void consume(ProgressionModel progressModel, ObserveSwingDataSource incomingSource, ObserveSwingDataSource targetSource) {
- String tripId = data.getTopiaId();
- String incomingSourceLabel = incomingSource.getLabel();
- String targetSourceLabel = targetSource.getLabel();
- progressModel.setMessage(t("observe.ui.datasource.editor.actions.data.copy", targetSourceLabel, prefix, data));
- ExportDataRequest exportDataRequest = new ExportDataRequest(!targetSource.isLocal(), tripId);
- ExportDataResult exportDataResult = incomingSource.getDataManagementService().exportData(exportDataRequest);
- logExportResult(progressModel, n("observe.ui.datasource.editor.actions.data.export.result"),
- incomingSourceLabel,
- exportDataResult);
-
- ImportDataRequest importDataRequest = new ImportDataRequest(exportDataResult);
- log.info("Use import script: " + importDataRequest.getSqlContent().getLocation());
- ImportDataResult importDataResult = targetSource.getDataManagementService().importData(importDataRequest);
- logImportResult(progressModel, n("observe.ui.datasource.editor.actions.data.import.result"),
- n("observe.ui.datasource.editor.actions.data.delete.result"),
- targetSourceLabel,
- importDataResult);
-
- if (targetSource.isLocal()) {
- targetSource.setModified(true);
- }
- }
-
public final ToolkitIdLabel getData() {
return data;
}
@@ -111,31 +77,4 @@ public class CopyDataTask extends DataTaskSupport {
return dataExistOnOpposite;
}
- void logExportResult(ProgressionModel progressModel,
- String i18nKey,
- String sourceLabel,
- ExportDataResult tripResult) {
- String message = sendLogResultMessage(progressModel, i18nKey, sourceLabel, prefix, data, tripResult.getTime());
- log.info(message);
- }
-
- void logImportResult(ProgressionModel progressModel,
- String importI18nKey,
- String deleteI18nKey,
- String sourceLabel,
- ImportDataResult tripResult) {
- if (tripResult.isDeleted()) {
- String message = sendLogResultMessage(progressModel, deleteI18nKey, sourceLabel, prefix, data, tripResult.getDeleteTime());
- log.info(message);
- } else {
- progressModel.increments();
- }
- if (tripResult.isImported()) {
- String message = sendLogResultMessage(progressModel, importI18nKey, sourceLabel, prefix, data, tripResult.getImportTime());
- log.info(message);
- } else {
- progressModel.increments();
- }
- }
-
}
=====================================
client/core/src/main/java/fr/ird/observe/client/datasource/api/data/DataManager.java
=====================================
@@ -23,12 +23,38 @@ package fr.ird.observe.client.datasource.api.data;
*/
import fr.ird.observe.client.datasource.api.ObserveSwingDataSource;
+import fr.ird.observe.client.datasource.usage.UsageForDisplayUIHandler;
+import fr.ird.observe.dto.I18nDecoratorHelper;
import fr.ird.observe.dto.ProgressionModel;
+import fr.ird.observe.dto.ToolkitIdLabel;
+import fr.ird.observe.dto.referential.ReferentialDto;
+import fr.ird.observe.services.service.data.DataManagementService;
+import fr.ird.observe.services.service.data.DeleteDataRequest;
+import fr.ird.observe.services.service.data.DeleteDataResult;
+import fr.ird.observe.services.service.data.ExportDataRequest;
+import fr.ird.observe.services.service.data.ExportDataResult;
+import fr.ird.observe.services.service.data.ImportDataRequest;
+import fr.ird.observe.services.service.data.ImportDataResult;
+import fr.ird.observe.services.service.data.MissingReferentialRequest;
+import fr.ird.observe.services.service.data.MissingReferentialResult;
+import fr.ird.observe.services.service.referential.ReferentialIds;
+import fr.ird.observe.services.service.referential.ReferentialService;
import io.ultreia.java4all.application.template.spi.GenerateTemplate;
-import io.ultreia.java4all.lang.TwoSideContext;
+import io.ultreia.java4all.lang.Strings;
+import io.ultreia.java4all.util.SingletonSupplier;
+import io.ultreia.java4all.util.TwoSideContext;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
import java.util.Collection;
+import java.util.Map;
import java.util.Objects;
+import java.util.Set;
+import java.util.function.Supplier;
+import java.util.stream.Collectors;
+
+import static io.ultreia.java4all.i18n.I18n.n;
+import static io.ultreia.java4all.i18n.I18n.t;
/**
* Hi-level object to perform business data management (says: delete some trip, copy some trip, insert missing referential, ...)
@@ -40,10 +66,15 @@ import java.util.Objects;
*/
@GenerateTemplate(template = "showMissingReferential.ftl")
public class DataManager {
+ private static final Logger log = LogManager.getLogger(DataManager.class);
/**
* Data sources by side.
*/
private final TwoSideContext<TaskSide, ObserveSwingDataSource> dataSources;
+ /**
+ * {@link DataManagementService} supplier by side.
+ */
+ private final TwoSideContext<TaskSide, Supplier<DataManagementService>> dataManagementServices;
/**
* Progression model.
*/
@@ -61,6 +92,7 @@ public class DataManager {
return rightSource;
}
};
+ this.dataManagementServices = dataSources.then(s -> SingletonSupplier.of(s::getDataManagementService));
this.progressModel = Objects.requireNonNull(progressModel);
}
@@ -90,18 +122,113 @@ public class DataManager {
return dataSources;
}
- public void consume(CopyDataTask task) {
- TaskSide taskSide = task.getTaskSide();
- task.consume(progressModel, dataSources.onSameSide(taskSide), dataSources.onOppositeSide(taskSide));
+ void consume(CopyDataTask task) {
+ @SuppressWarnings("resource") ObserveSwingDataSource incomingSource = dataSources.onSameSide(task.getTaskSide());
+ @SuppressWarnings("resource") ObserveSwingDataSource targetSource = dataSources.onOppositeSide(task.getTaskSide());
+ DataManagementService incomingSourceDataManagementService = dataManagementServices.onSameSide(task.getTaskSide()).get();
+ DataManagementService targetSourceDataManagementService = dataManagementServices.onOppositeSide(task.getTaskSide()).get();
+ String tripId = task.getData().getTopiaId();
+ String incomingSourceLabel = incomingSource.getLabel();
+ String targetSourceLabel = targetSource.getLabel();
+ progressModel.setMessage(t("observe.ui.datasource.editor.actions.data.copy", targetSourceLabel, task.getPrefix(), task.getData()));
+ ExportDataRequest exportDataRequest = new ExportDataRequest(!targetSource.isLocal(), tripId);
+ ExportDataResult exportDataResult = incomingSourceDataManagementService.exportData(exportDataRequest);
+
+ String message = sendLogResultMessage(n("observe.ui.datasource.editor.actions.data.export.result"),
+ incomingSourceLabel, task.getPrefix(), task.getData(), exportDataResult.getTime());
+ log.info(message);
+ ImportDataRequest importDataRequest = new ImportDataRequest(exportDataResult);
+ log.info("Use import script: " + importDataRequest.getSqlContent().getLocation());
+ ImportDataResult importDataResult = targetSourceDataManagementService.importData(importDataRequest);
+
+ if (importDataResult.isDeleted()) {
+ message = sendLogResultMessage(n("observe.ui.datasource.editor.actions.data.delete.result"), targetSourceLabel, task.getPrefix(), task.getData(), importDataResult.getDeleteTime());
+ log.info(message);
+ } else {
+ progressModel.increments();
+ }
+ if (importDataResult.isImported()) {
+ message = sendLogResultMessage(n("observe.ui.datasource.editor.actions.data.import.result"), targetSourceLabel, task.getPrefix(), task.getData(), importDataResult.getImportTime());
+ log.info(message);
+ } else {
+ progressModel.increments();
+ }
+ if (targetSource.isLocal()) {
+ targetSource.setModified(true);
+ }
+ }
+
+ void consume(InsertMissingReferentialTask task) {
+ @SuppressWarnings("resource") ObserveSwingDataSource incomingSource = dataSources.onSameSide(task.getTaskSide());
+ @SuppressWarnings("resource") ObserveSwingDataSource targetSource = dataSources.onOppositeSide(task.getTaskSide());
+ progressModel.increments();
+
+ String targetSourceLabel = targetSource.getLabel();
+
+ ReferentialService targetReferentialService = targetSource.getReferentialService();
+ ReferentialIds targetSourceReferential = targetReferentialService.getReferentialIds();
+ MissingReferentialRequest missingReferentialRequest = MissingReferentialRequest.of(targetSourceReferential.getIds(), task.getIdsToCopy().toArray(new String[0]));
+ MissingReferentialResult missingReferentialResult = incomingSource.getRootOpenableService().computeMissingReferential(task.getDataType(), missingReferentialRequest);
+ progressModel.increments();
+
+ if (missingReferentialResult == null) {
+ progressModel.increments();
+ return;
+ }
+
+ // there is some referential to add to target source
+
+ Map<Class<? extends ReferentialDto>, Set<ToolkitIdLabel>> usages = incomingSource.getReferentialMap(missingReferentialResult.getMissingIds());
+
+ boolean response = UsageForDisplayUIHandler.showMissingReferential(this.getMessage(), usages, targetSourceLabel);
+
+ if (!response) {
+ progressModel.increments();
+ throw new UserCancelException();
+ }
+
+ StringBuilder parameters = new StringBuilder();
+
+ for (Class<? extends ReferentialDto> key : usages.keySet()) {
+ Set<ToolkitIdLabel> references = usages.get(key);
+ String type = t(I18nDecoratorHelper.getType(key));
+ String labels = references.stream().map(Object::toString).collect(Collectors.joining("\n\t * "));
+ parameters.append(t("observe.ui.datasource.editor.actions.data.import.add.missing.referential.for.type", targetSourceLabel, references.size(), type, labels));
+ parameters.append("\n");
+ }
+
+ progressModel.setMessage(t("observe.ui.datasource.editor.actions.data.import.add.missing.referential", targetSourceLabel, parameters.toString()));
+
+ targetReferentialService.insertMissingReferential(missingReferentialResult.getSqlCode());
}
- public void consume(InsertMissingReferentialTask task) {
- TaskSide taskSide = task.getTaskSide();
- task.consume(progressModel, this::getMessage, dataSources.onSameSide(taskSide), dataSources.onOppositeSide(taskSide));
+ void consume(DeleteDataTask task) {
+ @SuppressWarnings("resource") ObserveSwingDataSource targetSource = dataSources.onSameSide(task.getTaskSide());
+ DataManagementService targetSourceDataManagementService = dataManagementServices.onSameSide(task.getTaskSide()).get();
+ String targetSourceLabel = targetSource.getLabel();
+ String dataId = task.getData().getTopiaId();
+
+ progressModel.setMessage(t("observe.ui.datasource.editor.actions.data.delete", targetSourceLabel, task.getPrefix(), task.getData()));
+ DeleteDataRequest deleteDataRequest = new DeleteDataRequest(dataId);
+ DeleteDataResult deleteDataResult = targetSourceDataManagementService.deleteData(deleteDataRequest);
+
+ String message = sendLogResultMessage(n("observe.ui.datasource.editor.actions.data.delete.result"),
+ targetSourceLabel, task.getPrefix(), task.getData(), deleteDataResult.getTime());
+ log.info(message);
+
+ if (targetSource.isLocal()) {
+ targetSource.setModified(true);
+ }
}
- public void consume(DeleteDataTask task) {
- TaskSide taskSide = task.getTaskSide();
- task.consume(progressModel, dataSources.onSameSide(taskSide));
+ String sendLogResultMessage(String i18nKey,
+ String sourceLabel,
+ String prefix,
+ ToolkitIdLabel data,
+ long time) {
+ String timeStr = Strings.convertTime(time);
+ String message = Strings.leftPad(timeStr, 20) + " - " + t(i18nKey, sourceLabel, prefix, data);
+ progressModel.setMessage(message);
+ return message;
}
}
=====================================
client/core/src/main/java/fr/ird/observe/client/datasource/api/data/DataTaskSupport.java
=====================================
@@ -22,15 +22,9 @@ package fr.ird.observe.client.datasource.api.data;
* #L%
*/
-import fr.ird.observe.dto.ProgressionModel;
-import fr.ird.observe.dto.ToolkitIdLabel;
-import io.ultreia.java4all.lang.Strings;
-
import javax.swing.Icon;
import java.util.Objects;
-import static io.ultreia.java4all.i18n.I18n.t;
-
/**
* Created on 03/08/16.
*
@@ -62,16 +56,5 @@ public abstract class DataTaskSupport {
}
public abstract int stepCount();
- String sendLogResultMessage(ProgressionModel progressModel,
- String i18nKey,
- String sourceLabel,
- String prefix,
- ToolkitIdLabel data,
- long time) {
- String timeStr = Strings.convertTime(time);
- String message = Strings.leftPad(timeStr, 20) + " - " + t(i18nKey, sourceLabel, prefix, data);
- progressModel.setMessage(message);
- return message;
- }
}
=====================================
client/core/src/main/java/fr/ird/observe/client/datasource/api/data/DeleteDataTask.java
=====================================
@@ -22,21 +22,14 @@ package fr.ird.observe.client.datasource.api.data;
* #L%
*/
-import fr.ird.observe.client.datasource.api.ObserveSwingDataSource;
-import fr.ird.observe.dto.ProgressionModel;
import fr.ird.observe.dto.ToolkitIdLabel;
import fr.ird.observe.navigation.tree.selection.SelectionTreeModel;
import fr.ird.observe.navigation.tree.selection.SelectionTreeNodeBean;
-import fr.ird.observe.services.service.data.DeleteDataRequest;
-import fr.ird.observe.services.service.data.DeleteDataResult;
-import org.apache.logging.log4j.LogManager;
-import org.apache.logging.log4j.Logger;
import java.util.Objects;
import java.util.function.BiFunction;
import java.util.stream.Stream;
-import static io.ultreia.java4all.i18n.I18n.n;
import static io.ultreia.java4all.i18n.I18n.t;
/**
@@ -47,7 +40,6 @@ import static io.ultreia.java4all.i18n.I18n.t;
*/
public class DeleteDataTask extends DataTaskSupport {
- private static final Logger log = LogManager.getLogger(DeleteDataTask.class);
private final String prefix;
private final ToolkitIdLabel data;
@@ -62,21 +54,6 @@ public class DeleteDataTask extends DataTaskSupport {
this.data = Objects.requireNonNull(data);
}
- public void consume(ProgressionModel progressModel, ObserveSwingDataSource targetSource) {
- String targetSourceLabel = targetSource.getLabel();
- String dataId = data.getTopiaId();
-
- progressModel.setMessage(t("observe.ui.datasource.editor.actions.data.delete", targetSourceLabel, prefix, data));
- DeleteDataRequest deleteDataRequest = new DeleteDataRequest(dataId);
- DeleteDataResult deleteDataResult = targetSource.getDataManagementService().deleteData(deleteDataRequest);
- logDeleteResult(progressModel, n("observe.ui.datasource.editor.actions.data.delete.result"),
- targetSourceLabel,
- deleteDataResult);
- if (targetSource.isLocal()) {
- targetSource.setModified(true);
- }
- }
-
@Override
public int stepCount() {
return 2;
@@ -87,12 +64,11 @@ public class DeleteDataTask extends DataTaskSupport {
return t(super.getLabel(), prefix, data);
}
- void logDeleteResult(ProgressionModel progressModel,
- String deleteI18nKey,
- String sourceLabel,
- DeleteDataResult tripResult) {
- String message = sendLogResultMessage(progressModel, deleteI18nKey, sourceLabel, prefix, data, tripResult.getTime());
- log.info(message);
+ public String getPrefix() {
+ return prefix;
}
+ public ToolkitIdLabel getData() {
+ return data;
+ }
}
=====================================
client/core/src/main/java/fr/ird/observe/client/datasource/api/data/InsertMissingReferentialTask.java
=====================================
@@ -22,27 +22,11 @@ package fr.ird.observe.client.datasource.api.data;
* #L%
*/
-import fr.ird.observe.client.datasource.api.ObserveSwingDataSource;
-import fr.ird.observe.client.datasource.usage.UsageForDisplayUIHandler;
-import fr.ird.observe.dto.I18nDecoratorHelper;
-import fr.ird.observe.dto.ProgressionModel;
-import fr.ird.observe.dto.ToolkitIdLabel;
import fr.ird.observe.dto.data.RootOpenableDto;
-import fr.ird.observe.dto.referential.ReferentialDto;
-import fr.ird.observe.services.service.data.MissingReferentialRequest;
-import fr.ird.observe.services.service.data.MissingReferentialResult;
-import fr.ird.observe.services.service.referential.ReferentialIds;
-import fr.ird.observe.services.service.referential.ReferentialService;
import io.ultreia.java4all.i18n.I18n;
import java.util.Collection;
-import java.util.Map;
import java.util.Objects;
-import java.util.Set;
-import java.util.function.Supplier;
-import java.util.stream.Collectors;
-
-import static io.ultreia.java4all.i18n.I18n.t;
/**
* Created on 12/11/2021.
@@ -75,46 +59,12 @@ public class InsertMissingReferentialTask extends DataTaskSupport {
return 3;
}
- public void consume(ProgressionModel progressModel, Supplier<String> messageSupplier, ObserveSwingDataSource incomingSource, ObserveSwingDataSource targetSource) {
- progressModel.increments();
-
- String targetSourceLabel = targetSource.getLabel();
-
- ReferentialService targetReferentialService = targetSource.getReferentialService();
- ReferentialIds targetSourceReferential = targetReferentialService.getReferentialIds();
- MissingReferentialRequest missingReferentialRequest = MissingReferentialRequest.of(targetSourceReferential.getIds(), idsToCopy.toArray(new String[0]));
- MissingReferentialResult missingReferentialResult = incomingSource.getRootOpenableService().computeMissingReferential(dataType, missingReferentialRequest);
- progressModel.increments();
-
- if (missingReferentialResult == null) {
- progressModel.increments();
- return;
- }
-
- // there is some referential to add to target source
-
- Map<Class<? extends ReferentialDto>, Set<ToolkitIdLabel>> usages = incomingSource.getReferentialMap(missingReferentialResult.getMissingIds());
-
- boolean response = UsageForDisplayUIHandler.showMissingReferential(messageSupplier.get(), usages, targetSourceLabel);
-
- if (!response) {
- progressModel.increments();
- throw new UserCancelException();
- }
-
- StringBuilder parameters = new StringBuilder();
-
- for (Class<? extends ReferentialDto> key : usages.keySet()) {
- Set<ToolkitIdLabel> references = usages.get(key);
- String type = t(I18nDecoratorHelper.getType(key));
- String labels = references.stream().map(Object::toString).collect(Collectors.joining("\n\t * "));
- parameters.append(t("observe.ui.datasource.editor.actions.data.import.add.missing.referential.for.type", targetSourceLabel, references.size(), type, labels));
- parameters.append("\n");
- }
-
- progressModel.setMessage(t("observe.ui.datasource.editor.actions.data.import.add.missing.referential", targetSourceLabel, parameters.toString()));
+ public Class<? extends RootOpenableDto> getDataType() {
+ return dataType;
+ }
- targetReferentialService.insertMissingReferential(missingReferentialResult.getSqlCode());
+ public Collection<String> getIdsToCopy() {
+ return idsToCopy;
}
}
=====================================
client/core/src/main/java/fr/ird/observe/client/datasource/api/data/TaskSide.java
=====================================
@@ -24,7 +24,7 @@ package fr.ird.observe.client.datasource.api.data;
import fr.ird.observe.client.util.UIHelper;
import io.ultreia.java4all.i18n.I18n;
-import io.ultreia.java4all.lang.TwoSide;
+import io.ultreia.java4all.util.TwoSide;
import javax.swing.Icon;
=====================================
client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/synchronize/data/actions/Apply.java
=====================================
@@ -32,6 +32,11 @@ import fr.ird.observe.client.datasource.api.data.DataTaskSupport;
import fr.ird.observe.client.datasource.api.data.InsertMissingReferentialTask;
import fr.ird.observe.client.datasource.api.data.TaskSide;
import fr.ird.observe.client.datasource.api.data.UserCancelException;
+import fr.ird.observe.datasource.security.BabModelVersionException;
+import fr.ird.observe.datasource.security.DataSourceCreateWithNoReferentialImportException;
+import fr.ird.observe.datasource.security.DatabaseConnexionNotAuthorizedException;
+import fr.ird.observe.datasource.security.DatabaseNotFoundException;
+import fr.ird.observe.datasource.security.IncompatibleDataSourceCreateConfigurationException;
import fr.ird.observe.dto.ProgressionModel;
import fr.ird.observe.dto.data.RootOpenableDto;
import io.ultreia.java4all.lang.Strings;
@@ -69,14 +74,12 @@ public class Apply extends DataSynchroUIActionSupport {
addAdminWorker(getUi().getStart().getToolTipText(), this::doApply);
}
- private WizardState doApply() {
+ private WizardState doApply() throws BabModelVersionException, DataSourceCreateWithNoReferentialImportException, DatabaseNotFoundException, IncompatibleDataSourceCreateConfigurationException, DatabaseConnexionNotAuthorizedException {
DataSynchroModel stepModel = ui.getStepModel();
DataSelectionTreePaneModel leftModel = stepModel.getModel(true);
String moduleName = leftModel.getSelectionDataModel().getConfig().getModuleName();
Class<? extends RootOpenableDto> dataType = "ps".equals(moduleName) ? fr.ird.observe.dto.data.ps.common.TripDto.class : fr.ird.observe.dto.data.ll.common.TripDto.class;
- ObserveSwingDataSource leftSource = leftModel.getSource();
- ObserveSwingDataSource rightSource = stepModel.getModel(false).getSource();
DefaultListModel<DataTaskSupport> tasks = stepModel.getTasks();
Set<String> idsToCopyToLeft = new LinkedHashSet<>();
@@ -107,21 +110,26 @@ public class Apply extends DataSynchroUIActionSupport {
log.info("Total step computed: " + stepCount);
ProgressionModel progressModel = stepModel.getProgressModel();
progressModel.setMaximum(stepCount);
- DataManager dataManager = new DataManager(progressModel, leftSource, rightSource);
- long t00 = TimeLog.getTime();
- progressModel.increments();
- try {
- dataManager.consume(finalTasksToConsume);
- sendMessage(t("observe.ui.datasource.editor.actions.operation.message.done", new Date(), Strings.convertTime(TimeLog.getTime() - t00)));
- return WizardState.SUCCESSED;
- } catch (Exception e) {
- progressModel.increments();
- if (e instanceof UserCancelException) {
- return WizardState.CANCELED;
+
+ try (ObserveSwingDataSource leftSource = openSource(leftModel.getSource())) {
+ try (ObserveSwingDataSource rightSource = openSource(stepModel.getModel(false).getSource())) {
+ long t00 = TimeLog.getTime();
+ progressModel.increments();
+ try {
+ DataManager dataManager = new DataManager(progressModel, leftSource, rightSource);
+ dataManager.consume(finalTasksToConsume);
+ sendMessage(t("observe.ui.datasource.editor.actions.operation.message.done", new Date(), Strings.convertTime(TimeLog.getTime() - t00)));
+ return WizardState.SUCCESSED;
+ } catch (Exception e) {
+ progressModel.increments();
+ if (e instanceof UserCancelException) {
+ return WizardState.CANCELED;
+ }
+ throw e;
+ } finally {
+ log.warn(String.format("Expected count: %d - final step count: %d", stepCount, progressModel.getValue()));
+ }
}
- throw e;
- } finally {
- log.warn(String.format("Expected count: %d - final step count: %d", stepCount, progressModel.getValue()));
}
}
=====================================
client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/validate/actions/Start.java
=====================================
@@ -148,76 +148,74 @@ public class Start extends ValidateUIActionSupport {
SelectionTreeModel dataModel = model.getSelectDataModel().getSelectionDataModel();
- ObserveSwingDataSource dataSourceToValidate = model.getConfigModel().getLeftSourceModel().getSource();
+ try (ObserveSwingDataSource dataSourceToValidate = model.getConfigModel().getLeftSourceModel().getSource()) {
+ int stepsCount = computeStepCount(dataSourceToValidate, dataModel);
+ log.info("Step count: {}", stepsCount);
+ ProgressionModel progressModel = stepModel.getProgressModel();
+ progressModel.setMaximum(stepsCount);
+ progressModel.setValue(0);
+
+ if (!dataSourceToValidate.isOpen()) {
+ dataSourceToValidate.open();
+ progressModel.increments();
+ }
- int stepsCount = computeStepCount(dataSourceToValidate, dataModel);
- log.info("Step count: {}", stepsCount);
- ProgressionModel progressModel = stepModel.getProgressModel();
- progressModel.setMaximum(stepsCount);
- progressModel.setValue(0);
+ ValidateService validateService = dataSourceToValidate.getValidateService();
- if (!dataSourceToValidate.isOpen()) {
- dataSourceToValidate.open();
- progressModel.increments();
- }
+ Set<NuitonValidatorScope> scopes = stepModel.getScopes();
+ String contextName = stepModel.getContextName();
+ ValidationResult result;
- ValidateService validateService = dataSourceToValidate.getValidateService();
+ ValidationRequestConfiguration configuration = stepModel.toValidationRequestConfiguration();
+ if (dataModel.getConfig().isLoadReferential()) {
- Set<NuitonValidatorScope> scopes = stepModel.getScopes();
- String contextName = stepModel.getContextName();
+ ReferentialValidationRequest request = new ReferentialValidationRequest();
- ValidationResult result;
+ request.setReferentialTypes(dataModel.getSelectedReferential());
+ request.setScopes(scopes);
+ request.setValidationContext(contextName);
- ValidationRequestConfiguration configuration = stepModel.toValidationRequestConfiguration();
- if (dataModel.getConfig().isLoadReferential()) {
+ progressModel.increments();
+ result = validateService.validateReferential(configuration, request);
+ progressModel.increments();
- ReferentialValidationRequest request = new ReferentialValidationRequest();
+ } else if (dataModel.getConfig().isLoadData()) {
- request.setReferentialTypes(dataModel.getSelectedReferential());
- request.setScopes(scopes);
- request.setValidationContext(contextName);
-
- progressModel.increments();
- result = validateService.validateReferential(configuration, request);
- progressModel.increments();
+ try (ValidationResultBuilder resultBuilder = ValidationResultBuilder.create()) {
+ List<ToolkitIdLabel> selectedData = new LinkedList<>(dataModel.getSelectedData());
+ Class<? extends RootOpenableDto> dataType = dataModel.getRequest().getModuleName().equals("ps") ? fr.ird.observe.dto.data.ps.common.TripDto.class : fr.ird.observe.dto.data.ll.common.TripDto.class;
+ Decorator decorator = getDecoratorService().getToolkitIdLabelDecoratorByType(dataType);
+ selectedData.forEach(d -> d.registerDecorator(decorator));
+ decorator.sort(selectedData, 0);
+ int max = selectedData.size();
+ int index = 1;
+ for (ToolkitIdLabel datum : selectedData) {
- } else if (dataModel.getConfig().isLoadData()) {
+ String id = datum.getId();
- try (ValidationResultBuilder resultBuilder = ValidationResultBuilder.create()) {
- List<ToolkitIdLabel> selectedData = new LinkedList<>(dataModel.getSelectedData());
- Class<? extends RootOpenableDto> dataType = dataModel.getRequest().getModuleName().equals("ps") ? fr.ird.observe.dto.data.ps.common.TripDto.class : fr.ird.observe.dto.data.ll.common.TripDto.class;
- Decorator decorator = getDecoratorService().getToolkitIdLabelDecoratorByType(dataType);
- selectedData.forEach(d -> d.registerDecorator(decorator));
- decorator.sort(selectedData, 0);
- int max = selectedData.size();
- int index = 1;
- for (ToolkitIdLabel datum : selectedData) {
+ DataValidationRequest request = new DataValidationRequest();
+ request.setDataIds(Collections.singleton(id));
+ request.setScopes(scopes);
+ request.setValidationContext(contextName);
- String id = datum.getId();
+ sendMessage(String.format("[ %4d - %4d ] ", index, max) + t("observe.ui.datasource.editor.actions.validate.message.validate.trip", datum));
- DataValidationRequest request = new DataValidationRequest();
- request.setDataIds(Collections.singleton(id));
- request.setScopes(scopes);
- request.setValidationContext(contextName);
-
- sendMessage(String.format("[ %4d - %4d ] ", index, max) + t("observe.ui.datasource.editor.actions.validate.message.validate.trip", datum));
-
- progressModel.increments();
- result = validateService.validateData(configuration, request);
- progressModel.increments();
- resultBuilder.addResult(result);
- index++;
+ progressModel.increments();
+ result = validateService.validateData(configuration, request);
+ progressModel.increments();
+ resultBuilder.addResult(result);
+ index++;
+ }
+ result = resultBuilder.build();
}
- result = resultBuilder.build();
- }
- } else {
- throw new IllegalStateException();
+ } else {
+ throw new IllegalStateException();
+ }
+ progressModel.increments();
+ stepModel.setValidationResult(result);
+ log.info("Step count (at the end): {} vs computed {}", progressModel.getValue(), stepsCount);
}
- dataSourceToValidate.close();
- progressModel.increments();
- stepModel.setValidationResult(result);
- log.info("Step count (at the end): {} vs computed {}", progressModel.getValue(), stepsCount);
}
private void generateReportFile(ValidateModel validationModel) throws IOException {
=====================================
client/runner/src/main/i18n/translations/client-runner_en_GB.properties
=====================================
@@ -548,7 +548,7 @@ observe.ui.datasource.editor.actions.exportData.title=Export data
observe.ui.datasource.editor.actions.exportData.title.tip=Export data
observe.ui.datasource.editor.actions.operation.configuration=Configuration of operations
observe.ui.datasource.editor.actions.operation.message.canceled=Operation <%1$s> canceled.
-observe.ui.datasource.editor.actions.operation.message.done=Operation done at %1$td/%1$tm/%1$tY à %1$tH\:%1$tM\:%1$tS (duration\: %s).
+observe.ui.datasource.editor.actions.operation.message.done=Operation done at %1$td/%1$tm/%1$tY à %1$tH\:%1$tM\:%1$tS (duration\: %2$s).
observe.ui.datasource.editor.actions.operation.message.failed=Operation has failed.
observe.ui.datasource.editor.actions.operation.message.needFix=Operation need fix.
observe.ui.datasource.editor.actions.operation.message.running=Operation <%1$s> is running...
=====================================
client/runner/src/main/i18n/translations/client-runner_es_ES.properties
=====================================
@@ -548,7 +548,7 @@ observe.ui.datasource.editor.actions.exportData.title=Exportar los datos
observe.ui.datasource.editor.actions.exportData.title.tip=Exportar los datos de usuario
observe.ui.datasource.editor.actions.operation.configuration=Configuración de las operaciones
observe.ui.datasource.editor.actions.operation.message.canceled=La operación <%1$s> fue cancelada.
-observe.ui.datasource.editor.actions.operation.message.done=Operación terminada el %1$td/%1$tm/%1$tY a %1$tH\:%1$tM\:%1$tS (duration\: %s).
+observe.ui.datasource.editor.actions.operation.message.done=Operación terminada el %1$td/%1$tm/%1$tY a %1$tH\:%1$tM\:%1$tS (duration\: %2$s).
observe.ui.datasource.editor.actions.operation.message.failed=La operación falló
observe.ui.datasource.editor.actions.operation.message.needFix=La operación necesita correcciones.
observe.ui.datasource.editor.actions.operation.message.running=La operación < %1$s > se está ejecutando...
=====================================
client/runner/src/main/i18n/translations/client-runner_fr_FR.properties
=====================================
@@ -548,7 +548,7 @@ observe.ui.datasource.editor.actions.exportData.title=Exporter les données
observe.ui.datasource.editor.actions.exportData.title.tip=Exporter les données utilisateurs vers une base centrale
observe.ui.datasource.editor.actions.operation.configuration=Configuration des opérations
observe.ui.datasource.editor.actions.operation.message.canceled=L'opération <%1$s> a été annulée.
-observe.ui.datasource.editor.actions.operation.message.done=Opération terminée le %1$td/%1$tm/%1$tY à %1$tH\:%1$tM\:%1$tS (temps écoulé \: %s).
+observe.ui.datasource.editor.actions.operation.message.done=Opération terminée le %1$td/%1$tm/%1$tY à %1$tH\:%1$tM\:%1$tS (temps écoulé \: %2$s).
observe.ui.datasource.editor.actions.operation.message.failed=L'opération a échouée
observe.ui.datasource.editor.actions.operation.message.needFix=L'opération requière des corrections.
observe.ui.datasource.editor.actions.operation.message.running=L'opération < %1$s > est en cours d'exécution...
=====================================
core/services/client/src/main/java/fr/ird/observe/services/client/ObserveServiceFactoryClient.java
=====================================
@@ -37,6 +37,7 @@ import org.apache.hc.client5.http.cookie.BasicCookieStore;
import org.apache.hc.client5.http.impl.classic.CloseableHttpClient;
import org.apache.hc.client5.http.impl.classic.HttpClientBuilder;
import org.apache.hc.client5.http.impl.io.BasicHttpClientConnectionManager;
+import org.apache.hc.core5.http.io.SocketConfig;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
@@ -62,6 +63,7 @@ public class ObserveServiceFactoryClient implements ObserveServiceFactory {
if (responseBuilder == null) {
int timeout = serviceInitializer.getInitializerConfig().getHttpTimeout();
ConnectionConfig connConfig = ConnectionConfig.custom()
+ .setTimeToLive(200, TimeUnit.MILLISECONDS)
.setSocketTimeout(timeout, TimeUnit.MILLISECONDS)
.build();
BasicHttpClientConnectionManager cm = new BasicHttpClientConnectionManager();
=====================================
pom.xml
=====================================
@@ -23,7 +23,7 @@
<parent>
<groupId>io.ultreia.maven</groupId>
<artifactId>pom</artifactId>
- <version>2024.12</version>
+ <version>2024.13</version>
</parent>
<groupId>fr.ird.observe</groupId>
<artifactId>ird-observe</artifactId>
=====================================
toolkit/persistence/src/main/java/fr/ird/observe/spi/referential/ReferentialIdsBuilder.java
=====================================
@@ -99,7 +99,7 @@ public class ReferentialIdsBuilder {
long t0 = TimeLog.getTime();
List<String> count = persistenceContext.getSqlSupport().findMultipleResult(realSql, r -> r.getString(1));
- TIME_LOG.log(t0, "Get referential ids", realSql);
+ TIME_LOG.log(t0, "Get referential ids", String.format(TopiaEntitySqlReplicatePlanTask.applyIds(task.getSelectSql(), selectClause, "in (" + this.ids.size() + ")"), columnName));
if (!count.isEmpty()) {
result.computeIfAbsent(dtoType, e -> new TreeSet<>()).addAll(count);
}
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/compare/8634165ecaf550c3d999cf04…
--
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/compare/8634165ecaf550c3d999cf04…
You're receiving this email because of your account on gitlab.com.
1
0