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 2023
- 1 participants
- 64 discussions
[Git][ultreiaio/ird-observe][develop-9.0.x] [jgitflow-maven-plugin]updating poms for 9.0.29-SNAPSHOT development[skip ci]
by Tony CHEMIT (@tchemit) 13 Mar '23
by Tony CHEMIT (@tchemit) 13 Mar '23
13 Mar '23
Tony CHEMIT pushed to branch develop-9.0.x at ultreiaio / ird-observe
Commits:
8c367b5b by Tony Chemit at 2023-03-13T15:59:04+01:00
[jgitflow-maven-plugin]updating poms for 9.0.29-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/8c367b5b8b4770addfd2ad429…
--
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/commit/8c367b5b8b4770addfd2ad429…
You're receiving this email because of your account on gitlab.com.
1
0
13 Mar '23
Tony CHEMIT pushed new branch release/9.0.28 at ultreiaio / ird-observe
--
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/tree/release/9.0.28
You're receiving this email because of your account on gitlab.com.
1
0
[Git][ultreiaio/ird-observe][develop] 2 commits: Update changelog for v.9.0.28 [skip CI]
by Tony CHEMIT (@tchemit) 13 Mar '23
by Tony CHEMIT (@tchemit) 13 Mar '23
13 Mar '23
Tony CHEMIT pushed to branch develop at ultreiaio / ird-observe
Commits:
ef4dcc33 by Tony Chemit at 2023-03-13T15:57:41+01:00
Update changelog for v.9.0.28 [skip CI]
- - - - -
d3b4ac4e by Tony Chemit at 2023-03-13T15:57:44+01:00
Update pom
- - - - -
2 changed files:
- CHANGELOG.md
- pom.xml
Changes:
=====================================
CHANGELOG.md
=====================================
@@ -1,7 +1,25 @@
# ObServe changelog
* Author [Tony Chemit](mailto:dev@tchemit.fr)
- * Last generated at 2023-03-09 19:08.
+ * Last generated at 2023-03-13 15:55.
+
+## Version [9.0.28](https://gitlab.com/ultreiaio/ird-observe/-/milestones/258)
+
+**Closed at 2023-03-13.**
+
+### Download
+* [Client (observe-9.0.28-client.zip)](https://repo1.maven.org/maven2/fr/ird/observe/o…)
+* [Serveur (observe-9.0.28.war)](https://repo1.maven.org/maven2/fr/ird/observe/observe/…)
+* [Serveur (observe-9.0.28-server.zip)](https://repo1.maven.org/maven2/fr/ird/observe/o…)
+
+### Issues
+ * [[Type::Anomalie 2638]](https://gitlab.com/ultreiaio/ird-observe/-/issues/2638) **Messages en double dans le log de l'assistant d'export** (Thanks to Tony CHEMIT) (Reported by Tony CHEMIT)
+ * [[Type::Anomalie 2639]](https://gitlab.com/ultreiaio/ird-observe/-/issues/2639) **Pouvoir tester l'ouverture d'une base 9.1 avec une application 9.0.28** (Thanks to Tony CHEMIT) (Reported by Tony CHEMIT)
+ * [[Type::Anomalie 2640]](https://gitlab.com/ultreiaio/ird-observe/-/issues/2640) **Imperfection sur le rapport Observations - Dénombrement des captures selon le type d'association, filtrées par groupe et mode (rejeté/conservé)** (Thanks to Tony CHEMIT) (Reported by Tony CHEMIT)
+ * [[Type::Anomalie 2641]](https://gitlab.com/ultreiaio/ird-observe/-/issues/2641) **Problème de sérialisation sur le retour de la consolidation en mode serveur** (Thanks to Tony CHEMIT) (Reported by Tony CHEMIT)
+ * [[Type::Anomalie 2643]](https://gitlab.com/ultreiaio/ird-observe/-/issues/2643) **La supression d'un panier du schéma de palangre supprime toute la section** (Thanks to Tony CHEMIT) (Reported by Pascal Cauquil)
+ * [[Type::Evolution 2644]](https://gitlab.com/ultreiaio/ird-observe/-/issues/2644) **Dernières améliorations sur l'APi de consolidation** (Thanks to Tony CHEMIT) (Reported by Tony CHEMIT)
+ * [[Type::Tâche 2642]](https://gitlab.com/ultreiaio/ird-observe/-/issues/2642) **Ajout d'une documentation sur la consolidation** (Thanks to Tony CHEMIT) (Reported by Tony CHEMIT)
## Version [9.1.0-RC-1](https://gitlab.com/ultreiaio/ird-observe/-/milestones/243)
=====================================
pom.xml
=====================================
@@ -23,7 +23,7 @@
<parent>
<groupId>io.ultreia.maven</groupId>
<artifactId>pom</artifactId>
- <version>2023.12</version>
+ <version>2023.13</version>
</parent>
<groupId>fr.ird.observe</groupId>
<artifactId>ird-observe</artifactId>
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/compare/36e3d84980a1c57b9f2ff8b9…
--
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/compare/36e3d84980a1c57b9f2ff8b9…
You're receiving this email because of your account on gitlab.com.
1
0
[Git][ultreiaio/ird-observe][develop-9.0.x] La supression d'un panier du schéma de palangre supprime toute la section - Closes #2643
by Tony CHEMIT (@tchemit) 13 Mar '23
by Tony CHEMIT (@tchemit) 13 Mar '23
13 Mar '23
Tony CHEMIT pushed to branch develop-9.0.x at ultreiaio / ird-observe
Commits:
a2cf12cd by Tony Chemit at 2023-03-13T13:43:40+01:00
La supression d'un panier du schéma de palangre supprime toute la section - Closes #2643
- - - - -
3 changed files:
- client/datasource/editor/ll/src/main/java/fr/ird/observe/client/datasource/editor/ll/data/observation/composition/basket/BasketTableModel.java
- client/datasource/editor/ll/src/main/java/fr/ird/observe/client/datasource/editor/ll/data/observation/composition/branchline/BranchlineTableModel.java
- client/datasource/editor/ll/src/main/java/fr/ird/observe/client/datasource/editor/ll/data/observation/composition/section/SectionTableModel.java
Changes:
=====================================
client/datasource/editor/ll/src/main/java/fr/ird/observe/client/datasource/editor/ll/data/observation/composition/basket/BasketTableModel.java
=====================================
@@ -218,7 +218,7 @@ public class BasketTableModel extends LonglineCompositionTableModel<BasketDto> {
BranchlineTableModel tableModel = getModel().getStates().getBranchlinesTableModel();
BranchlineDto newBranchline = tableModel.insert(before);
BasketDto selectedBasket = getModel().getStates().getBasketsTableModel().getSelectedRow();
- if (selectedBasket.isBranchlineEmpty()) {
+ if (Objects.requireNonNull(selectedBasket).isBranchlineEmpty()) {
selectedBasket.setBranchline(new LinkedHashSet<>());
}
List<BranchlineDto> branchlines = new ArrayList<>(selectedBasket.getBranchline());
@@ -236,7 +236,8 @@ public class BasketTableModel extends LonglineCompositionTableModel<BasketDto> {
SetDetailCompositionUIModel model = getModel();
model.getStates().setSkipSavePreviousSelectedBranchline(true);
try {
- getSelectedRow().getBranchline().remove(selectedBranchline);
+ BasketDto selectedRow = getSelectedRow();
+ Objects.requireNonNull(selectedRow).getBranchline().remove(selectedBranchline);
model.getStates().getBranchlinesTableModel().removeSelectedRow();
} finally {
model.getStates().setSkipSavePreviousSelectedBranchline(false);
=====================================
client/datasource/editor/ll/src/main/java/fr/ird/observe/client/datasource/editor/ll/data/observation/composition/branchline/BranchlineTableModel.java
=====================================
@@ -165,7 +165,7 @@ public class BranchlineTableModel extends LonglineCompositionTableModel<Branchli
@Override
public BranchlineDto createNewRow() {
BranchlineDto branchline = BranchlineDto.newDto(new Date());
- branchline.setTimer(useTimer);
+ branchline.setTimer(isUseTimer());
branchline.setNotUsed(true);
return branchline;
}
=====================================
client/datasource/editor/ll/src/main/java/fr/ird/observe/client/datasource/editor/ll/data/observation/composition/section/SectionTableModel.java
=====================================
@@ -257,7 +257,7 @@ public class SectionTableModel extends LonglineCompositionTableModel<SectionDto>
BasketTableModel tableModel = getModel().getStates().getBasketsTableModel();
BasketDto newBasket = tableModel.insert(before);
SectionDto selectedSection = getSelectedRow();
- if (selectedSection.isBasketEmpty()) {
+ if (Objects.requireNonNull(selectedSection).isBasketEmpty()) {
selectedSection.setBasket(new LinkedHashSet<>());
}
List<BasketDto> baskets = new ArrayList<>(selectedSection.getBasket());
@@ -274,8 +274,9 @@ public class SectionTableModel extends LonglineCompositionTableModel<SectionDto>
validationHelper.setObjectValueAdjusting(true);
getModel().getStates().setSkipSavePreviousSelectedBasket(true);
try {
- getSelectedRow().getBasket().remove(selectedBasket);
- removeSelectedRow();
+ SectionDto selectedRow = getSelectedRow();
+ Objects.requireNonNull(selectedRow).getBasket().remove(selectedBasket);
+ getModel().getStates().getBasketsTableModel().removeSelectedRow();
} finally {
getModel().getStates().setSkipSavePreviousSelectedBasket(false);
validationHelper.setObjectValueAdjusting(false);
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/commit/a2cf12cda737b700006cbf6ff…
--
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/commit/a2cf12cda737b700006cbf6ff…
You're receiving this email because of your account on gitlab.com.
1
0
[Git][ultreiaio/ird-observe][develop] La supression d'un panier du schéma de palangre supprime toute la section - Closes #2643
by Tony CHEMIT (@tchemit) 13 Mar '23
by Tony CHEMIT (@tchemit) 13 Mar '23
13 Mar '23
Tony CHEMIT pushed to branch develop at ultreiaio / ird-observe
Commits:
36e3d849 by Tony Chemit at 2023-03-13T13:44:46+01:00
La supression d'un panier du schéma de palangre supprime toute la section - Closes #2643
- - - - -
3 changed files:
- client/datasource/editor/ll/src/main/java/fr/ird/observe/client/datasource/editor/ll/data/observation/composition/basket/BasketTableModel.java
- client/datasource/editor/ll/src/main/java/fr/ird/observe/client/datasource/editor/ll/data/observation/composition/branchline/BranchlineTableModel.java
- client/datasource/editor/ll/src/main/java/fr/ird/observe/client/datasource/editor/ll/data/observation/composition/section/SectionTableModel.java
Changes:
=====================================
client/datasource/editor/ll/src/main/java/fr/ird/observe/client/datasource/editor/ll/data/observation/composition/basket/BasketTableModel.java
=====================================
@@ -218,7 +218,7 @@ public class BasketTableModel extends LonglineCompositionTableModel<BasketDto> {
BranchlineTableModel tableModel = getModel().getStates().getBranchlinesTableModel();
BranchlineDto newBranchline = tableModel.insert(before);
BasketDto selectedBasket = getModel().getStates().getBasketsTableModel().getSelectedRow();
- if (selectedBasket.isBranchlineEmpty()) {
+ if (Objects.requireNonNull(selectedBasket).isBranchlineEmpty()) {
selectedBasket.setBranchline(new LinkedHashSet<>());
}
List<BranchlineDto> branchlines = new ArrayList<>(selectedBasket.getBranchline());
@@ -236,7 +236,8 @@ public class BasketTableModel extends LonglineCompositionTableModel<BasketDto> {
SetDetailCompositionUIModel model = getModel();
model.getStates().setSkipSavePreviousSelectedBranchline(true);
try {
- getSelectedRow().getBranchline().remove(selectedBranchline);
+ BasketDto selectedRow = getSelectedRow();
+ Objects.requireNonNull(selectedRow).getBranchline().remove(selectedBranchline);
model.getStates().getBranchlinesTableModel().removeSelectedRow();
} finally {
model.getStates().setSkipSavePreviousSelectedBranchline(false);
=====================================
client/datasource/editor/ll/src/main/java/fr/ird/observe/client/datasource/editor/ll/data/observation/composition/branchline/BranchlineTableModel.java
=====================================
@@ -165,7 +165,7 @@ public class BranchlineTableModel extends LonglineCompositionTableModel<Branchli
@Override
public BranchlineDto createNewRow() {
BranchlineDto branchline = BranchlineDto.newDto(new Date());
- branchline.setTimer(useTimer);
+ branchline.setTimer(isUseTimer());
branchline.setNotUsed(true);
return branchline;
}
=====================================
client/datasource/editor/ll/src/main/java/fr/ird/observe/client/datasource/editor/ll/data/observation/composition/section/SectionTableModel.java
=====================================
@@ -257,7 +257,7 @@ public class SectionTableModel extends LonglineCompositionTableModel<SectionDto>
BasketTableModel tableModel = getModel().getStates().getBasketsTableModel();
BasketDto newBasket = tableModel.insert(before);
SectionDto selectedSection = getSelectedRow();
- if (selectedSection.isBasketEmpty()) {
+ if (Objects.requireNonNull(selectedSection).isBasketEmpty()) {
selectedSection.setBasket(new LinkedHashSet<>());
}
List<BasketDto> baskets = new ArrayList<>(selectedSection.getBasket());
@@ -274,8 +274,9 @@ public class SectionTableModel extends LonglineCompositionTableModel<SectionDto>
validationHelper.setObjectValueAdjusting(true);
getModel().getStates().setSkipSavePreviousSelectedBasket(true);
try {
- getSelectedRow().getBasket().remove(selectedBasket);
- removeSelectedRow();
+ SectionDto selectedRow = getSelectedRow();
+ Objects.requireNonNull(selectedRow).getBasket().remove(selectedBasket);
+ getModel().getStates().getBasketsTableModel().removeSelectedRow();
} finally {
getModel().getStates().setSkipSavePreviousSelectedBasket(false);
validationHelper.setObjectValueAdjusting(false);
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/commit/36e3d84980a1c57b9f2ff8b9e…
--
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/commit/36e3d84980a1c57b9f2ff8b9e…
You're receiving this email because of your account on gitlab.com.
1
0
[Git][ultreiaio/ird-observe][develop-9.0.x] 9 commits: Consolidation - amélioration API
by Tony CHEMIT (@tchemit) 13 Mar '23
by Tony CHEMIT (@tchemit) 13 Mar '23
13 Mar '23
Tony CHEMIT pushed to branch develop-9.0.x at ultreiaio / ird-observe
Commits:
46386371 by Tony Chemit at 2023-03-13T13:35:11+01:00
Consolidation - amélioration API
- - - - -
42db4995 by Tony Chemit at 2023-03-13T13:35:11+01:00
Consolidation - amélioration API Dcp
- - - - -
338ab614 by Tony Chemit at 2023-03-13T13:35:12+01:00
Consolidation - renommage SampleConsolidateXXX en SampleMeasureConsolidateXXX
Consolidation - ajout de SetConsolidateActions
- - - - -
d52e8709 by Tony Chemit at 2023-03-13T13:35:12+01:00
Consolidation - ajout consolidation pour les logbook
- - - - -
cf86101d by Tony Chemit at 2023-03-13T13:35:13+01:00
Consolidation - amélioration des messages de l'assistant
- - - - -
426a5c2c by Tony Chemit at 2023-03-13T13:35:13+01:00
Consolidation - Mise en place des caches de RTP et RTT
- - - - -
c1c92199 by Tony Chemit at 2023-03-13T13:35:28+01:00
Merge branch 'feature/issue_2644' into develop-9.0.x
Dernières améliorations sur l'APi de consolidation - Closes #2644
- - - - -
486de161 by Tony Chemit at 2023-03-13T13:35:37+01:00
Ajout d'une documentation sur la consolidation - Closes #2642
- - - - -
0af78b5e by Tony Chemit at 2023-03-13T13:35:42+01:00
Remove javadoc from site reports (not ready to use it)
- - - - -
30 changed files:
- .gitignore
- client/datasource/actions/src/main/i18n/getters/java.getter
- client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/consolidate/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/api/dto-consolidation/src/main/java/fr/ird/observe/consolidation/data/ps/common/TripConsolidateResult.java
- + core/api/dto-consolidation/src/main/java/fr/ird/observe/consolidation/data/ps/dcp/CleanComputedValuesAction.java
- core/api/dto-consolidation/src/main/java/fr/ird/observe/consolidation/data/ps/dcp/ComputeBiodegradableConsolidateAction.java
- core/api/dto-consolidation/src/main/java/fr/ird/observe/consolidation/data/ps/dcp/ComputeNonEntanglingConsolidateAction.java
- core/api/dto-consolidation/src/main/java/fr/ird/observe/consolidation/data/ps/dcp/ComputeSimplifiedObjectTypeConsolidateAction.java
- core/api/dto-consolidation/src/main/java/fr/ird/observe/consolidation/data/ps/dcp/FloatingObjectConsolidateAction.java
- core/api/dto-consolidation/src/main/java/fr/ird/observe/consolidation/data/ps/dcp/FloatingObjectConsolidateContextSupport.java
- core/api/dto-consolidation/src/main/java/fr/ird/observe/consolidation/data/ps/dcp/FloatingObjectConsolidateEngineSupport.java
- core/api/dto-consolidation/src/main/java/fr/ird/observe/consolidation/data/ps/dcp/FloatingObjectConsolidateRequestSupport.java
- core/api/dto-consolidation/src/main/java/fr/ird/observe/consolidation/data/ps/localmarket/BatchConsolidateActions.java
- + core/api/dto-consolidation/src/main/java/fr/ird/observe/consolidation/data/ps/logbook/ActivityConsolidateResult.java
- core/api/dto/src/main/java/fr/ird/observe/dto/data/ps/FloatingObjectAdapter.java → core/api/dto-consolidation/src/main/java/fr/ird/observe/consolidation/data/ps/logbook/ActivityConsolidateResultBuilder.java
- core/api/dto-consolidation/src/main/java/fr/ird/observe/consolidation/data/ps/logbook/FloatingObjectActions.java → core/api/dto-consolidation/src/main/java/fr/ird/observe/consolidation/data/ps/logbook/FloatingObjectConsolidateActions.java
- core/api/dto-consolidation/src/main/java/fr/ird/observe/consolidation/data/ps/logbook/FloatingObjectConsolidateEngine.java
- core/api/dto-consolidation/src/main/java/fr/ird/observe/consolidation/data/ps/observation/FloatingObjectActions.java → core/api/dto-consolidation/src/main/java/fr/ird/observe/consolidation/data/ps/observation/FloatingObjectConsolidateActions.java
- core/api/dto-consolidation/src/main/java/fr/ird/observe/consolidation/data/ps/observation/FloatingObjectConsolidateEngine.java
- core/persistence/consolidation/src/main/java/fr/ird/observe/consolidation/data/ps/common/TripConsolidateEngine.java
- core/persistence/consolidation/src/main/java/fr/ird/observe/consolidation/data/ps/localmarket/GetOptionalRtpMeanWeightImpl.java
- + core/persistence/consolidation/src/main/java/fr/ird/observe/consolidation/data/ps/logbook/ActivityConsolidateContext.java
- + core/persistence/consolidation/src/main/java/fr/ird/observe/consolidation/data/ps/logbook/ActivityConsolidateEngine.java
- core/persistence/consolidation/src/main/java/fr/ird/observe/consolidation/data/ps/observation/ActivityConsolidateContext.java
- core/persistence/consolidation/src/main/java/fr/ird/observe/consolidation/data/ps/observation/ActivityConsolidateEngine.java
- core/persistence/consolidation/src/main/java/fr/ird/observe/consolidation/data/ps/observation/CatchConsolidateActions.java
- core/persistence/consolidation/src/main/java/fr/ird/observe/consolidation/data/ps/observation/CatchConsolidateContext.java
The diff was not included because it is too large.
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/compare/e4ecc3d7316fc997050d9dea…
--
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/compare/e4ecc3d7316fc997050d9dea…
You're receiving this email because of your account on gitlab.com.
1
0
[Git][ultreiaio/ird-observe][develop-9.0.x] Deleted 7 commits: Consolidation - amélioration API
by Tony CHEMIT (@tchemit) 13 Mar '23
by Tony CHEMIT (@tchemit) 13 Mar '23
13 Mar '23
Tony CHEMIT pushed to branch develop-9.0.x at ultreiaio / ird-observe
WARNING: The push did not contain any new commits, but force pushed to delete the commits and changes below.
Deleted commits:
90e393c7 by Tony Chemit at 2023-03-12T14:43:23+01:00
Consolidation - amélioration API
- - - - -
8e7d4709 by Tony Chemit at 2023-03-12T14:43:23+01:00
Consolidation - amélioration API Dcp
- - - - -
ed7e96aa by Tony Chemit at 2023-03-12T14:43:23+01:00
Consolidation - renommage SampleConsolidateXXX en SampleMeasureConsolidateXXX
Consolidation - ajout de SetConsolidateActions
- - - - -
95047bae by Tony Chemit at 2023-03-13T08:24:22+01:00
Consolidation - ajout consolidation pour les logbook
- - - - -
1313b4ed by Tony Chemit at 2023-03-13T08:24:22+01:00
Ajout d'une documentation sur la consolidation - Closes #2642
- - - - -
01c2aa78 by Tony Chemit at 2023-03-13T08:24:22+01:00
Remove javadoc from site reports (not ready to use it)
- - - - -
a8e37a36 by Tony Chemit at 2023-03-13T08:27:32+01:00
Update changelog for v.9.0.28 [skip CI]
- - - - -
30 changed files:
- .gitignore
- CHANGELOG.md
- client/datasource/actions/src/main/i18n/getters/java.getter
- client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/consolidate/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/api/dto-consolidation/src/main/java/fr/ird/observe/consolidation/data/ps/common/TripConsolidateResult.java
- + core/api/dto-consolidation/src/main/java/fr/ird/observe/consolidation/data/ps/dcp/CleanComputedValuesAction.java
- core/api/dto-consolidation/src/main/java/fr/ird/observe/consolidation/data/ps/dcp/ComputeBiodegradableConsolidateAction.java
- core/api/dto-consolidation/src/main/java/fr/ird/observe/consolidation/data/ps/dcp/ComputeNonEntanglingConsolidateAction.java
- core/api/dto-consolidation/src/main/java/fr/ird/observe/consolidation/data/ps/dcp/ComputeSimplifiedObjectTypeConsolidateAction.java
- core/api/dto-consolidation/src/main/java/fr/ird/observe/consolidation/data/ps/dcp/FloatingObjectConsolidateAction.java
- core/api/dto-consolidation/src/main/java/fr/ird/observe/consolidation/data/ps/dcp/FloatingObjectConsolidateContextSupport.java
- core/api/dto-consolidation/src/main/java/fr/ird/observe/consolidation/data/ps/dcp/FloatingObjectConsolidateEngineSupport.java
- core/api/dto-consolidation/src/main/java/fr/ird/observe/consolidation/data/ps/dcp/FloatingObjectConsolidateRequestSupport.java
- core/api/dto-consolidation/src/main/java/fr/ird/observe/consolidation/data/ps/localmarket/BatchConsolidateActions.java
- + core/api/dto-consolidation/src/main/java/fr/ird/observe/consolidation/data/ps/logbook/ActivityConsolidateResult.java
- core/api/dto/src/main/java/fr/ird/observe/dto/data/ps/FloatingObjectAdapter.java → core/api/dto-consolidation/src/main/java/fr/ird/observe/consolidation/data/ps/logbook/ActivityConsolidateResultBuilder.java
- core/api/dto-consolidation/src/main/java/fr/ird/observe/consolidation/data/ps/logbook/FloatingObjectActions.java → core/api/dto-consolidation/src/main/java/fr/ird/observe/consolidation/data/ps/logbook/FloatingObjectConsolidateActions.java
- core/api/dto-consolidation/src/main/java/fr/ird/observe/consolidation/data/ps/logbook/FloatingObjectConsolidateEngine.java
- core/api/dto-consolidation/src/main/java/fr/ird/observe/consolidation/data/ps/observation/FloatingObjectActions.java → core/api/dto-consolidation/src/main/java/fr/ird/observe/consolidation/data/ps/observation/FloatingObjectConsolidateActions.java
- core/api/dto-consolidation/src/main/java/fr/ird/observe/consolidation/data/ps/observation/FloatingObjectConsolidateEngine.java
- core/persistence/consolidation/src/main/java/fr/ird/observe/consolidation/data/ps/common/TripConsolidateEngine.java
- + core/persistence/consolidation/src/main/java/fr/ird/observe/consolidation/data/ps/logbook/ActivityConsolidateContext.java
- + core/persistence/consolidation/src/main/java/fr/ird/observe/consolidation/data/ps/logbook/ActivityConsolidateEngine.java
- core/persistence/consolidation/src/main/java/fr/ird/observe/consolidation/data/ps/observation/ActivityConsolidateContext.java
- core/persistence/consolidation/src/main/java/fr/ird/observe/consolidation/data/ps/observation/CatchConsolidateActions.java
- core/persistence/consolidation/src/main/java/fr/ird/observe/consolidation/data/ps/observation/SampleConsolidateActions.java → core/persistence/consolidation/src/main/java/fr/ird/observe/consolidation/data/ps/observation/SampleMeasureConsolidateActions.java
- core/persistence/consolidation/src/main/java/fr/ird/observe/consolidation/data/ps/observation/SampleConsolidateContext.java → core/persistence/consolidation/src/main/java/fr/ird/observe/consolidation/data/ps/observation/SampleMeasureConsolidateContext.java
The diff was not included because it is too large.
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/compare/e4ecc3d7316fc997050d9dea…
--
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/compare/e4ecc3d7316fc997050d9dea…
You're receiving this email because of your account on gitlab.com.
1
0
[Git][ultreiaio/ird-observe][develop] 9 commits: Consolidation - amélioration API
by Tony CHEMIT (@tchemit) 13 Mar '23
by Tony CHEMIT (@tchemit) 13 Mar '23
13 Mar '23
Tony CHEMIT pushed to branch develop at ultreiaio / ird-observe
Commits:
a5ce4c97 by Tony Chemit at 2023-03-13T13:05:59+01:00
Consolidation - amélioration API
- - - - -
441eafe2 by Tony Chemit at 2023-03-13T13:06:03+01:00
Consolidation - amélioration API Dcp
- - - - -
cc8a863e by Tony Chemit at 2023-03-13T13:06:07+01:00
Consolidation - renommage SampleConsolidateXXX en SampleMeasureConsolidateXXX
Consolidation - ajout de SetConsolidateActions
- - - - -
c4ab676b by Tony Chemit at 2023-03-13T13:08:33+01:00
Consolidation - ajout consolidation pour les logbook
- - - - -
89be15c5 by Tony Chemit at 2023-03-13T13:10:46+01:00
Consolidation - amélioration des messages de l'assistant
- - - - -
85f3a653 by Tony Chemit at 2023-03-13T13:10:46+01:00
Consolidation - Mise en place des caches de RTP et RTT
- - - - -
7e957cd7 by Tony Chemit at 2023-03-13T13:32:38+01:00
Merge branch 'feature/issue_2644' into develop
Dernières améliorations sur l'APi de consolidation - Closes #2644
- - - - -
eedaa17a by Tony Chemit at 2023-03-13T13:33:10+01:00
Ajout d'une documentation sur la consolidation - Closes #2642
- - - - -
2603b3f3 by Tony Chemit at 2023-03-13T13:33:15+01:00
Remove javadoc from site reports (not ready to use it)
- - - - -
30 changed files:
- .gitignore
- client/datasource/actions/src/main/i18n/getters/java.getter
- client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/consolidate/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/api/dto-consolidation/src/main/java/fr/ird/observe/consolidation/data/ps/common/TripConsolidateResult.java
- + core/api/dto-consolidation/src/main/java/fr/ird/observe/consolidation/data/ps/dcp/CleanComputedValuesAction.java
- core/api/dto-consolidation/src/main/java/fr/ird/observe/consolidation/data/ps/dcp/ComputeBiodegradableConsolidateAction.java
- core/api/dto-consolidation/src/main/java/fr/ird/observe/consolidation/data/ps/dcp/ComputeNonEntanglingConsolidateAction.java
- core/api/dto-consolidation/src/main/java/fr/ird/observe/consolidation/data/ps/dcp/ComputeSimplifiedObjectTypeConsolidateAction.java
- core/api/dto-consolidation/src/main/java/fr/ird/observe/consolidation/data/ps/dcp/FloatingObjectConsolidateAction.java
- core/api/dto-consolidation/src/main/java/fr/ird/observe/consolidation/data/ps/dcp/FloatingObjectConsolidateContextSupport.java
- core/api/dto-consolidation/src/main/java/fr/ird/observe/consolidation/data/ps/dcp/FloatingObjectConsolidateEngineSupport.java
- core/api/dto-consolidation/src/main/java/fr/ird/observe/consolidation/data/ps/dcp/FloatingObjectConsolidateRequestSupport.java
- core/api/dto-consolidation/src/main/java/fr/ird/observe/consolidation/data/ps/localmarket/BatchConsolidateActions.java
- + core/api/dto-consolidation/src/main/java/fr/ird/observe/consolidation/data/ps/logbook/ActivityConsolidateResult.java
- core/api/dto/src/main/java/fr/ird/observe/dto/data/ps/FloatingObjectAdapter.java → core/api/dto-consolidation/src/main/java/fr/ird/observe/consolidation/data/ps/logbook/ActivityConsolidateResultBuilder.java
- core/api/dto-consolidation/src/main/java/fr/ird/observe/consolidation/data/ps/logbook/FloatingObjectActions.java → core/api/dto-consolidation/src/main/java/fr/ird/observe/consolidation/data/ps/logbook/FloatingObjectConsolidateActions.java
- core/api/dto-consolidation/src/main/java/fr/ird/observe/consolidation/data/ps/logbook/FloatingObjectConsolidateEngine.java
- core/api/dto-consolidation/src/main/java/fr/ird/observe/consolidation/data/ps/observation/FloatingObjectActions.java → core/api/dto-consolidation/src/main/java/fr/ird/observe/consolidation/data/ps/observation/FloatingObjectConsolidateActions.java
- core/api/dto-consolidation/src/main/java/fr/ird/observe/consolidation/data/ps/observation/FloatingObjectConsolidateEngine.java
- core/persistence/consolidation/src/main/java/fr/ird/observe/consolidation/data/ps/common/TripConsolidateEngine.java
- core/persistence/consolidation/src/main/java/fr/ird/observe/consolidation/data/ps/localmarket/GetOptionalRtpMeanWeightImpl.java
- + core/persistence/consolidation/src/main/java/fr/ird/observe/consolidation/data/ps/logbook/ActivityConsolidateContext.java
- + core/persistence/consolidation/src/main/java/fr/ird/observe/consolidation/data/ps/logbook/ActivityConsolidateEngine.java
- core/persistence/consolidation/src/main/java/fr/ird/observe/consolidation/data/ps/observation/ActivityConsolidateContext.java
- core/persistence/consolidation/src/main/java/fr/ird/observe/consolidation/data/ps/observation/ActivityConsolidateEngine.java
- core/persistence/consolidation/src/main/java/fr/ird/observe/consolidation/data/ps/observation/CatchConsolidateActions.java
- core/persistence/consolidation/src/main/java/fr/ird/observe/consolidation/data/ps/observation/CatchConsolidateContext.java
The diff was not included because it is too large.
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/compare/9ac12ae94afbfdd95d7e5857…
--
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/compare/9ac12ae94afbfdd95d7e5857…
You're receiving this email because of your account on gitlab.com.
1
0
[Git][ultreiaio/ird-observe][develop-9.0.x] 3 commits: Consolidation - ajout consolidation pour les logbook
by Tony CHEMIT (@tchemit) 13 Mar '23
by Tony CHEMIT (@tchemit) 13 Mar '23
13 Mar '23
Tony CHEMIT pushed to branch develop-9.0.x at ultreiaio / ird-observe
Commits:
95047bae by Tony Chemit at 2023-03-13T08:24:22+01:00
Consolidation - ajout consolidation pour les logbook
- - - - -
1313b4ed by Tony Chemit at 2023-03-13T08:24:22+01:00
Ajout d'une documentation sur la consolidation - Closes #2642
- - - - -
01c2aa78 by Tony Chemit at 2023-03-13T08:24:22+01:00
Remove javadoc from site reports (not ready to use it)
- - - - -
19 changed files:
- .gitignore
- client/datasource/actions/src/main/i18n/getters/java.getter
- client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/consolidate/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/api/dto-consolidation/src/main/java/fr/ird/observe/consolidation/data/ps/common/TripConsolidateResult.java
- + core/api/dto-consolidation/src/main/java/fr/ird/observe/consolidation/data/ps/logbook/ActivityConsolidateResult.java
- + core/api/dto-consolidation/src/main/java/fr/ird/observe/consolidation/data/ps/logbook/ActivityConsolidateResultBuilder.java
- core/api/dto-consolidation/src/main/java/fr/ird/observe/consolidation/data/ps/logbook/FloatingObjectActions.java → core/api/dto-consolidation/src/main/java/fr/ird/observe/consolidation/data/ps/logbook/FloatingObjectConsolidateActions.java
- core/api/dto-consolidation/src/main/java/fr/ird/observe/consolidation/data/ps/logbook/FloatingObjectConsolidateEngine.java
- core/persistence/consolidation/src/main/java/fr/ird/observe/consolidation/data/ps/common/TripConsolidateEngine.java
- + core/persistence/consolidation/src/main/java/fr/ird/observe/consolidation/data/ps/logbook/ActivityConsolidateContext.java
- + core/persistence/consolidation/src/main/java/fr/ird/observe/consolidation/data/ps/logbook/ActivityConsolidateEngine.java
- core/services/test/src/main/java/fr/ird/observe/services/service/data/ps/ConsolidateDataServiceFixtures.java
- pom.xml
- + src/site/markdown/consolidation.md
- src/site/markdown/index.md
- src/site/site.xml
Changes:
=====================================
.gitignore
=====================================
@@ -19,7 +19,8 @@
/*~
/*/*~
/src/site/markdown/CHANGELOG.md
-/src/site/markdown/*.md
+/src/site/markdown/observe-client.md
+/src/site/markdown/observe-server.md
/src/site/resources/*.conf
client/runner/src/main/assembly/dist/config/observe-client*
server/runner/src/main/assembly/dist/config/observe-server*
=====================================
client/datasource/actions/src/main/i18n/getters/java.getter
=====================================
@@ -32,12 +32,15 @@ observe.ui.datasource.actions.config.data.sources.equals
observe.ui.datasource.editor.actions.activity.pairing
observe.ui.datasource.editor.actions.consolidate
observe.ui.datasource.editor.actions.consolidate.description
-observe.ui.datasource.editor.actions.consolidate.message.activity.modification
-observe.ui.datasource.editor.actions.consolidate.message.activity.warning
+observe.ui.datasource.editor.actions.consolidate.end.trip
+observe.ui.datasource.editor.actions.consolidate.message.logbook.activity.modification
+observe.ui.datasource.editor.actions.consolidate.message.logbook.activity.warning
observe.ui.datasource.editor.actions.consolidate.message.modifications.modification
observe.ui.datasource.editor.actions.consolidate.message.modifications.property
observe.ui.datasource.editor.actions.consolidate.message.modifications.warning
observe.ui.datasource.editor.actions.consolidate.message.noChanges
+observe.ui.datasource.editor.actions.consolidate.message.observation.activity.modification
+observe.ui.datasource.editor.actions.consolidate.message.observation.activity.warning
observe.ui.datasource.editor.actions.consolidate.message.operation.done
observe.ui.datasource.editor.actions.consolidate.message.save.changes
observe.ui.datasource.editor.actions.consolidate.message.trip.modification
=====================================
client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/consolidate/actions/Start.java
=====================================
@@ -27,10 +27,10 @@ import fr.ird.observe.client.datasource.actions.actions.AdminTabUIActionSupport;
import fr.ird.observe.client.datasource.actions.consolidate.ConsolidateModel;
import fr.ird.observe.client.datasource.actions.consolidate.ConsolidateUI;
import fr.ird.observe.client.datasource.api.ObserveSwingDataSource;
+import fr.ird.observe.consolidation.AtomicConsolidateAction;
import fr.ird.observe.consolidation.data.ps.common.TripConsolidateRequest;
import fr.ird.observe.consolidation.data.ps.common.TripConsolidateResult;
import fr.ird.observe.consolidation.data.ps.dcp.SimplifiedObjectTypeSpecializedRules;
-import fr.ird.observe.consolidation.data.ps.observation.ActivityConsolidateResult;
import fr.ird.observe.dto.BusinessDto;
import fr.ird.observe.dto.ObserveUtil;
import fr.ird.observe.dto.ProgressionModel;
@@ -45,6 +45,8 @@ import fr.ird.observe.dto.decoration.ObserveI18nDecoratorHelper;
import fr.ird.observe.services.service.data.ps.ConsolidateDataService;
import io.ultreia.java4all.bean.monitor.JavaBeanPropertyModification;
import io.ultreia.java4all.i18n.I18n;
+import io.ultreia.java4all.lang.Strings;
+import io.ultreia.java4all.util.TimeLog;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.nuiton.jaxx.runtime.swing.wizard.ext.WizardState;
@@ -55,6 +57,7 @@ import java.awt.event.ActionEvent;
import java.util.Date;
import java.util.LinkedHashSet;
import java.util.Set;
+import java.util.concurrent.atomic.AtomicInteger;
import static io.ultreia.java4all.i18n.I18n.t;
@@ -96,45 +99,30 @@ public class Start extends AdminTabUIActionSupport<ConsolidateUI> {
ConsolidateDataService consolidateDataService = dataSource.getPsConsolidateDataService();
- int index = 0;
+ AtomicInteger index = new AtomicInteger();
int nbTrips = tripIds.size();
SimplifiedObjectTypeSpecializedRules simplifiedObjectTypeSpecializedRules = getClientConfig().getSimplifiedObjectTypeSpecializedRules();
Set<TripConsolidateResult> results = new LinkedHashSet<>();
for (String tripId : tripIds) {
-
- progressModel.increments();
-
- if (stepModel.checkIfTripAlreadyProcessed(tripId)) {
- // this one has already been processed
- sendMessage(t("observe.ui.datasource.editor.actions.consolidate.skip.trip", ++index, nbTrips, tripId));
- progressModel.increments();
- continue;
- }
- sendMessage(t("observe.ui.datasource.editor.actions.consolidate.start.trip", ++index, nbTrips, tripId));
-
- // mark trip processed
- stepModel.setTripProcessed(tripId);
-
- if (TripAware.isLonglineId(tripId)) {
- // can't consolidate LL trips...
- progressModel.increments();
- continue;
- }
- TripConsolidateRequest request = new TripConsolidateRequest();
- request.setTripId(tripId);
- request.setFailIfLengthWeightParameterNotFound(stepModel.isConsolidationFailIfLengthWeightParameterNotFound());
- request.setFailIfLengthLengthParameterNotFound(stepModel.isConsolidationFailIfLengthLengthParameterNotFound());
-
- TripConsolidateResult result = consolidateDataService.consolidateTrip(simplifiedObjectTypeSpecializedRules, request);
- if (result != null) {
- printResult(result);
- if (result.withModifications()) {
- results.add(result);
- }
+ long t0 = TimeLog.getTime();
+ try {
+ consolidateTrip(tripId,
+ index,
+ nbTrips,
+ stepModel,
+ simplifiedObjectTypeSpecializedRules,
+ consolidateDataService,
+ progressModel,
+ results);
+ } finally {
+ ObserveUtil.cleanMemory();
+ String message = t("observe.ui.datasource.editor.actions.consolidate.end.trip", index, nbTrips, tripId, Strings.convertTime(TimeLog.getTime() - t0));
+ log.info(message);
+ sendMessage(message);
+ sendMessage("------------------------");
}
- ObserveUtil.cleanMemory();
}
progressModel.increments();
if (results.isEmpty()) {
@@ -148,6 +136,47 @@ public class Start extends AdminTabUIActionSupport<ConsolidateUI> {
return WizardState.SUCCESSED;
}
+ void consolidateTrip(String tripId,
+ AtomicInteger index,
+ int nbTrips,
+ ConsolidateModel stepModel,
+ SimplifiedObjectTypeSpecializedRules simplifiedObjectTypeSpecializedRules,
+ ConsolidateDataService consolidateDataService,
+ ProgressionModel progressModel,
+ Set<TripConsolidateResult> results) {
+ progressModel.increments();
+
+ if (stepModel.checkIfTripAlreadyProcessed(tripId)) {
+ // this one has already been processed
+ sendMessage(t("observe.ui.datasource.editor.actions.consolidate.skip.trip", index.incrementAndGet(), nbTrips, tripId));
+ progressModel.increments();
+ return;
+ }
+ sendMessage(t("observe.ui.datasource.editor.actions.consolidate.start.trip", index.incrementAndGet(), nbTrips, tripId));
+
+ // mark trip processed
+ stepModel.setTripProcessed(tripId);
+
+ if (TripAware.isLonglineId(tripId)) {
+ // can't consolidate LL trips...
+ progressModel.increments();
+ return;
+ }
+ TripConsolidateRequest request = new TripConsolidateRequest();
+ request.setTripId(tripId);
+ request.setFailIfLengthWeightParameterNotFound(stepModel.isConsolidationFailIfLengthWeightParameterNotFound());
+ request.setFailIfLengthLengthParameterNotFound(stepModel.isConsolidationFailIfLengthLengthParameterNotFound());
+
+ TripConsolidateResult result = consolidateDataService.consolidateTrip(simplifiedObjectTypeSpecializedRules, request);
+ if (result != null) {
+ printResult(result);
+ if (result.withModifications()) {
+ results.add(result);
+ }
+ }
+ ObserveUtil.cleanMemory();
+ }
+
void printResult(TripConsolidateResult result) {
String tripSeineLabel = result.getTripLabel();
if (result.withModifications()) {
@@ -156,21 +185,23 @@ public class Start extends AdminTabUIActionSupport<ConsolidateUI> {
if (result.withWarnings()) {
sendMessage(t("observe.ui.datasource.editor.actions.consolidate.message.trip.warning", result.getTripId(), tripSeineLabel));
}
- for (ActivityConsolidateResult activityResult : result.getActivityObservationResults()) {
+ for (fr.ird.observe.consolidation.data.ps.observation.ActivityConsolidateResult activityResult : result.getActivityObservationResults()) {
+ printResult(activityResult);
+ }
+ for (fr.ird.observe.consolidation.data.ps.logbook.ActivityConsolidateResult activityResult : result.getActivityLogbookResults()) {
printResult(activityResult);
}
for (ToolkitIdModifications batchResult : result.getLocalmarketBatchResults()) {
printResult(BatchDto.class, batchResult);
}
- sendMessage("---------------");
}
- void printResult(ActivityConsolidateResult activityResult) {
+ void printResult(fr.ird.observe.consolidation.data.ps.observation.ActivityConsolidateResult activityResult) {
if (activityResult.withModifications()) {
- sendMessage(" " + t("observe.ui.datasource.editor.actions.consolidate.message.activity.modification", activityResult.getActivityId(), activityResult.getActivityLabel()));
+ sendMessage(" " + t("observe.ui.datasource.editor.actions.consolidate.message.observation.activity.modification", activityResult.getActivityId(), activityResult.getActivityLabel()));
}
if (activityResult.withWarnings()) {
- sendMessage(" " + t("observe.ui.datasource.editor.actions.consolidate.message.activity.warning", activityResult.getActivityId(), activityResult.getActivityLabel()));
+ sendMessage(" " + t("observe.ui.datasource.editor.actions.consolidate.message.observation.activity.warning", activityResult.getActivityId(), activityResult.getActivityLabel()));
}
printResult(SetDto.class, activityResult.getSetModifications());
for (ToolkitIdModifications modification : activityResult.getFloatingObjectModifications()) {
@@ -184,6 +215,18 @@ public class Start extends AdminTabUIActionSupport<ConsolidateUI> {
}
}
+ void printResult(fr.ird.observe.consolidation.data.ps.logbook.ActivityConsolidateResult activityResult) {
+ if (activityResult.withModifications()) {
+ sendMessage(" " + t("observe.ui.datasource.editor.actions.consolidate.message.logbook.activity.modification", activityResult.getActivityId(), activityResult.getActivityLabel()));
+ }
+ if (activityResult.withWarnings()) {
+ sendMessage(" " + t("observe.ui.datasource.editor.actions.consolidate.message.logbook.activity.warning", activityResult.getActivityId(), activityResult.getActivityLabel()));
+ }
+ for (ToolkitIdModifications modification : activityResult.getFloatingObjectModifications()) {
+ printResult(FloatingObjectDto.class, modification);
+ }
+ }
+
private void printResult(Class<? extends BusinessDto> dataType, ToolkitIdModifications modifications) {
if (modifications == null) {
return;
@@ -193,7 +236,10 @@ public class Start extends AdminTabUIActionSupport<ConsolidateUI> {
sendMessage(" " + t("observe.ui.datasource.editor.actions.consolidate.message.modifications.modification", modifications.modificationsCount(), type, modifications.getId(), modifications.getLabel()));
for (JavaBeanPropertyModification modification : modifications.getModifications()) {
String property = I18n.t(ObserveI18nDecoratorHelper.getPropertyI18nKey(dataType, modification.getPropertyName()));
- String message = I18n.t("observe.ui.datasource.editor.actions.consolidate.message.modifications.property", property, modification.getOldValue(), modification.getNewValue());
+ String message = I18n.t("observe.ui.datasource.editor.actions.consolidate.message.modifications.property",
+ property,
+ AtomicConsolidateAction.decorateValue(modification.getOldValue()),
+ AtomicConsolidateAction.decorateValue(modification.getNewValue()));
sendMessage(" - " + message);
}
}
=====================================
client/runner/src/main/i18n/translations/client-runner_en_GB.properties
=====================================
@@ -490,15 +490,18 @@ observe.ui.datasource.editor.actions.activity.pairing=Activities pairing
observe.ui.datasource.editor.actions.consolidate=Consolidate data
observe.ui.datasource.editor.actions.consolidate.config=Consolidate data configuration
observe.ui.datasource.editor.actions.consolidate.description=Consolidate observed data
-observe.ui.datasource.editor.actions.consolidate.message.activity.modification=Computed data for activity [%s] %s
-observe.ui.datasource.editor.actions.consolidate.message.activity.warning=Some warnings were found for activity [%s] %s
+observe.ui.datasource.editor.actions.consolidate.end.trip=End consolidate data on trip %s / %s (%s) [duration\: %s]
+observe.ui.datasource.editor.actions.consolidate.message.logbook.activity.modification=Some data were computed for Logbook activity [%s] %s
+observe.ui.datasource.editor.actions.consolidate.message.logbook.activity.warning=Some warnings were found for Logbook activity [%s] %s
observe.ui.datasource.editor.actions.consolidate.message.modifications.modification=%d change(s) for data of type %s [%s] %s
observe.ui.datasource.editor.actions.consolidate.message.modifications.property=Property %s, old value\: %s - new value\: %s
observe.ui.datasource.editor.actions.consolidate.message.modifications.warning=%d warning(s) for data of type %s [%s] %s
observe.ui.datasource.editor.actions.consolidate.message.noChanges=No data modified.
+observe.ui.datasource.editor.actions.consolidate.message.observation.activity.modification=Some data were computed for Observations activity [%s] %s
+observe.ui.datasource.editor.actions.consolidate.message.observation.activity.warning=Some warnings were found for Observations activity [%s] %s
observe.ui.datasource.editor.actions.consolidate.message.operation.done=Consolidate operation done in %1$s.
observe.ui.datasource.editor.actions.consolidate.message.save.changes=Save modified %1$s trip(s).
-observe.ui.datasource.editor.actions.consolidate.message.trip.modification=Data consolidate for trip [%s] %s
+observe.ui.datasource.editor.actions.consolidate.message.trip.modification=Some data were computed for trip [%s] %s
observe.ui.datasource.editor.actions.consolidate.message.trip.warning=Some warnings were found for trip [%s] %s
observe.ui.datasource.editor.actions.consolidate.skip.trip=Skip already consolidated data on trip %s / %s (%s)
observe.ui.datasource.editor.actions.consolidate.start.trip=Start consolidate data on trip %s / %s (%s)
=====================================
client/runner/src/main/i18n/translations/client-runner_es_ES.properties
=====================================
@@ -490,12 +490,15 @@ observe.ui.datasource.editor.actions.activity.pairing=Activities pairing \#TODO
observe.ui.datasource.editor.actions.consolidate=Calcular los datos
observe.ui.datasource.editor.actions.consolidate.config=Consolidate data configuration
observe.ui.datasource.editor.actions.consolidate.description=Calcular los datos que no fueron observados
-observe.ui.datasource.editor.actions.consolidate.message.activity.modification=Datos calculados para la actividad [%s] %s
-observe.ui.datasource.editor.actions.consolidate.message.activity.warning=Some warnings were found for activity [%s] %s
+observe.ui.datasource.editor.actions.consolidate.end.trip=End consolidate data on trip %s / %s (%s) [duration\: %s] \#TODO
+observe.ui.datasource.editor.actions.consolidate.message.logbook.activity.modification=Some data were computed for Logbook activity [%s] %s
+observe.ui.datasource.editor.actions.consolidate.message.logbook.activity.warning=Some warnings were found for Logbook activity [%s] %s
observe.ui.datasource.editor.actions.consolidate.message.modifications.modification=%d change(s) for data of type %s [%s] %s
observe.ui.datasource.editor.actions.consolidate.message.modifications.property=Property %s, old value\: %s - new value\: %s \#TODO
observe.ui.datasource.editor.actions.consolidate.message.modifications.warning=%d warning(s) for data of type %s [%s] %s
observe.ui.datasource.editor.actions.consolidate.message.noChanges=No modificación de datos.
+observe.ui.datasource.editor.actions.consolidate.message.observation.activity.modification=Some data were computed for Observations activity [%s] %s
+observe.ui.datasource.editor.actions.consolidate.message.observation.activity.warning=Some warnings were found for Observations activity [%s] %s
observe.ui.datasource.editor.actions.consolidate.message.operation.done=Operación de calculo de datos terminada en %1$s.
observe.ui.datasource.editor.actions.consolidate.message.save.changes=Guardar las modificaciones de la(s) %1$s marea(s) modificada(s).
observe.ui.datasource.editor.actions.consolidate.message.trip.modification=Datos calculados para la marea [%s] %s
=====================================
client/runner/src/main/i18n/translations/client-runner_fr_FR.properties
=====================================
@@ -490,15 +490,18 @@ observe.ui.datasource.editor.actions.activity.pairing=Appairement des activités
observe.ui.datasource.editor.actions.consolidate=Calculer les données
observe.ui.datasource.editor.actions.consolidate.config=Configuration de la consolidation
observe.ui.datasource.editor.actions.consolidate.description=Calculer les données non observées
-observe.ui.datasource.editor.actions.consolidate.message.activity.modification=Données calculées pour l'activité [%s] %s
-observe.ui.datasource.editor.actions.consolidate.message.activity.warning=Des avertissements ont été détectés pour l'activité [%s] %s
+observe.ui.datasource.editor.actions.consolidate.end.trip=Consolidation terminée pour la marée %s / %s (%s) [durée \: %s]
+observe.ui.datasource.editor.actions.consolidate.message.logbook.activity.modification=Des données ont été calculées pour l'activité (Livre de bord) [%s] %s
+observe.ui.datasource.editor.actions.consolidate.message.logbook.activity.warning=Des avertissements ont été détectés pour l'activité (Livre de bord) [%s] %s
observe.ui.datasource.editor.actions.consolidate.message.modifications.modification=%d modification(s) pour la donnée de type %s [%s] %s
observe.ui.datasource.editor.actions.consolidate.message.modifications.property=Propriété %s, ancienne valeur \: %s - nouvelle valeur \: %s
observe.ui.datasource.editor.actions.consolidate.message.modifications.warning=%d avertissement(s) pour la donnée de type %s [%s] %s
observe.ui.datasource.editor.actions.consolidate.message.noChanges=Aucune donnée modifiée.
+observe.ui.datasource.editor.actions.consolidate.message.observation.activity.modification=Des données ont été calculées pour l'activité (Observation) [%s] %s
+observe.ui.datasource.editor.actions.consolidate.message.observation.activity.warning=Des avertissements ont été détectés pour l'activité (Observation) [%s] %s
observe.ui.datasource.editor.actions.consolidate.message.operation.done=Opération de calcul des données terminée à %1$s.
observe.ui.datasource.editor.actions.consolidate.message.save.changes=Sauvegarde des modifications sur la(es) %1$s marée(s) modifiée(s).
-observe.ui.datasource.editor.actions.consolidate.message.trip.modification=Données calculées pour la marée [%s] %s.
+observe.ui.datasource.editor.actions.consolidate.message.trip.modification=Des données ont été calculées pour la marée [%s] %s.
observe.ui.datasource.editor.actions.consolidate.message.trip.warning=Des avertissement ont été détectés pour la marée [%s] %s.
observe.ui.datasource.editor.actions.consolidate.skip.trip=Marée déjà consolidée %s / %s (%s)
observe.ui.datasource.editor.actions.consolidate.start.trip=Démarrage de la consolidation pour la marée %s / %s (%s)
=====================================
core/api/dto-consolidation/src/main/java/fr/ird/observe/consolidation/data/ps/common/TripConsolidateResult.java
=====================================
@@ -23,7 +23,6 @@ package fr.ird.observe.consolidation.data.ps.common;
*/
-import fr.ird.observe.consolidation.data.ps.observation.ActivityConsolidateResult;
import fr.ird.observe.dto.ToolkitIdModifications;
import io.ultreia.java4all.util.json.JsonAware;
@@ -49,16 +48,25 @@ public class TripConsolidateResult implements JsonAware {
/**
* Observation activities results.
*/
- protected final Set<ActivityConsolidateResult> activityObservationResults;
+ protected final Set<fr.ird.observe.consolidation.data.ps.observation.ActivityConsolidateResult> activityObservationResults;
+ /**
+ * Logbook activities results.
+ */
+ protected final Set<fr.ird.observe.consolidation.data.ps.logbook.ActivityConsolidateResult> activityLogbookResults;
/**
* Local market batches results.
*/
protected final Set<ToolkitIdModifications> localmarketBatchResults;
- public TripConsolidateResult(String tripId, String tripLabel, Set<ActivityConsolidateResult> activityObservationResults, Set<ToolkitIdModifications> localmarketBatchResults) {
+ public TripConsolidateResult(String tripId,
+ String tripLabel,
+ Set<fr.ird.observe.consolidation.data.ps.observation.ActivityConsolidateResult> activityObservationResults,
+ Set<fr.ird.observe.consolidation.data.ps.logbook.ActivityConsolidateResult> activityLogbookResults,
+ Set<ToolkitIdModifications> localmarketBatchResults) {
this.tripId = tripId;
this.tripLabel = tripLabel;
this.activityObservationResults = activityObservationResults;
+ this.activityLogbookResults = activityLogbookResults;
this.localmarketBatchResults = localmarketBatchResults;
}
@@ -70,21 +78,27 @@ public class TripConsolidateResult implements JsonAware {
return tripLabel;
}
- public Set<ActivityConsolidateResult> getActivityObservationResults() {
+ public Set<fr.ird.observe.consolidation.data.ps.observation.ActivityConsolidateResult> getActivityObservationResults() {
return activityObservationResults;
}
+ public Set<fr.ird.observe.consolidation.data.ps.logbook.ActivityConsolidateResult> getActivityLogbookResults() {
+ return activityLogbookResults;
+ }
+
public Set<ToolkitIdModifications> getLocalmarketBatchResults() {
return localmarketBatchResults;
}
public boolean withModifications() {
- return activityObservationResults.stream().anyMatch(ActivityConsolidateResult::withModifications) ||
+ return activityObservationResults.stream().anyMatch(fr.ird.observe.consolidation.data.ps.observation.ActivityConsolidateResult::withModifications) ||
+ activityLogbookResults.stream().anyMatch(fr.ird.observe.consolidation.data.ps.logbook.ActivityConsolidateResult::withModifications) ||
localmarketBatchResults.stream().anyMatch(ToolkitIdModifications::withModifications);
}
public boolean withWarnings() {
- return activityObservationResults.stream().anyMatch(ActivityConsolidateResult::withWarnings) ||
+ return activityObservationResults.stream().anyMatch(fr.ird.observe.consolidation.data.ps.observation.ActivityConsolidateResult::withWarnings) ||
+ activityLogbookResults.stream().anyMatch(fr.ird.observe.consolidation.data.ps.logbook.ActivityConsolidateResult::withWarnings) ||
localmarketBatchResults.stream().anyMatch(ToolkitIdModifications::withWarnings);
}
}
=====================================
core/api/dto-consolidation/src/main/java/fr/ird/observe/consolidation/data/ps/logbook/ActivityConsolidateResult.java
=====================================
@@ -0,0 +1,99 @@
+package fr.ird.observe.consolidation.data.ps.logbook;
+
+/*-
+ * #%L
+ * ObServe Core :: API :: Dto Consolidation
+ * %%
+ * 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 fr.ird.observe.dto.ToolkitIdModifications;
+import io.ultreia.java4all.util.json.JsonAware;
+
+import java.util.Set;
+
+/**
+ * Created on 12/03/2023.
+ *
+ * @author Tony Chemit - dev(a)tchemit.fr
+ * @since 9.0.28
+ */
+public class ActivityConsolidateResult implements JsonAware {
+
+ /**
+ * Id of activity.
+ */
+ protected String activityId;
+
+ /**
+ * Label of activity.
+ */
+ private String activityLabel;
+
+ /**
+ * All modification on floating objects.
+ */
+ private Set<ToolkitIdModifications> floatingObjectModifications;
+
+ public String getActivityId() {
+ return activityId;
+ }
+
+ public void setActivityId(String activityId) {
+ this.activityId = activityId;
+ }
+
+ public String getActivityLabel() {
+ return activityLabel;
+ }
+
+ public void setActivityLabel(String activityLabel) {
+ this.activityLabel = activityLabel;
+ }
+
+ public Set<ToolkitIdModifications> getFloatingObjectModifications() {
+ return floatingObjectModifications;
+ }
+
+ public void setFloatingObjectModifications(Set<ToolkitIdModifications> floatingObjectModifications) {
+ this.floatingObjectModifications = floatingObjectModifications;
+ }
+
+ public boolean withModifications() {
+ if (getFloatingObjectModifications() != null) {
+ for (ToolkitIdModifications modifications : floatingObjectModifications) {
+ if (modifications.withModifications()) {
+ return true;
+ }
+ }
+ }
+ return false;
+ }
+
+ public boolean withWarnings() {
+ if (getFloatingObjectModifications() != null) {
+ for (ToolkitIdModifications modifications : floatingObjectModifications) {
+ if (modifications.withWarnings()) {
+ return true;
+ }
+ }
+ }
+ return false;
+ }
+}
+
=====================================
core/api/dto-consolidation/src/main/java/fr/ird/observe/consolidation/data/ps/logbook/ActivityConsolidateResultBuilder.java
=====================================
@@ -0,0 +1,63 @@
+package fr.ird.observe.consolidation.data.ps.logbook;
+
+/*-
+ * #%L
+ * ObServe Core :: API :: Dto Consolidation
+ * %%
+ * 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 fr.ird.observe.dto.ToolkitIdModifications;
+
+import java.util.LinkedHashSet;
+import java.util.Optional;
+import java.util.Set;
+
+/**
+ * Created on 12/03/2023.
+ *
+ * @author Tony Chemit - dev(a)tchemit.fr
+ * @since 9.0.28
+ */
+public class ActivityConsolidateResultBuilder {
+ private final Set<ToolkitIdModifications> floatingObjectModificationBuilder = new LinkedHashSet<>();
+ private final String activityLabel;
+ private final String activityId;
+
+ public ActivityConsolidateResultBuilder(String activityId, String activityLabel) {
+ this.activityId = activityId;
+ this.activityLabel = activityLabel;
+ }
+
+ public Optional<ActivityConsolidateResult> build() {
+ boolean noModification = floatingObjectModificationBuilder.isEmpty();
+
+ if (noModification) {
+ return Optional.empty();
+ }
+ ActivityConsolidateResult result = new ActivityConsolidateResult();
+ result.setActivityId(activityId);
+ result.setActivityLabel(activityLabel);
+ result.setFloatingObjectModifications(floatingObjectModificationBuilder);
+ return Optional.of(result);
+ }
+
+ public void flushFloatingObjectModification(ToolkitIdModifications modifications) {
+ floatingObjectModificationBuilder.add(modifications);
+ }
+}
=====================================
core/api/dto-consolidation/src/main/java/fr/ird/observe/consolidation/data/ps/logbook/FloatingObjectActions.java → core/api/dto-consolidation/src/main/java/fr/ird/observe/consolidation/data/ps/logbook/FloatingObjectConsolidateActions.java
=====================================
@@ -23,12 +23,13 @@ package fr.ird.observe.consolidation.data.ps.logbook;
*/
import fr.ird.observe.consolidation.AtomicConsolidateAction;
+import fr.ird.observe.consolidation.data.ps.dcp.CleanComputedValuesAction;
import fr.ird.observe.consolidation.data.ps.dcp.ComputeBiodegradableConsolidateAction;
import fr.ird.observe.consolidation.data.ps.dcp.ComputeNonEntanglingConsolidateAction;
import fr.ird.observe.consolidation.data.ps.dcp.ComputeSimplifiedObjectTypeConsolidateAction;
-import fr.ird.observe.consolidation.data.ps.dcp.FloatingObjectConsolidateAction;
import fr.ird.observe.dto.data.ps.logbook.FloatingObjectDto;
-import fr.ird.observe.dto.data.ps.logbook.FloatingObjectPartDto;
+
+import java.util.List;
/**
* Created on 09/03/2023.
@@ -36,31 +37,26 @@ import fr.ird.observe.dto.data.ps.logbook.FloatingObjectPartDto;
* @author Tony Chemit - dev(a)tchemit.fr
* @since 9.0.27
*/
-public enum FloatingObjectActions implements AtomicConsolidateAction<FloatingObjectConsolidateContext, FloatingObjectDto> {
+public enum FloatingObjectConsolidateActions implements AtomicConsolidateAction<FloatingObjectConsolidateContext, FloatingObjectDto> {
+ CleanComputedValuesWhenArriving(new CleanComputedValuesAction.WhenArriving<>()),
+ CleanComputedValuesWhenLeaving(new CleanComputedValuesAction.WhenLeaving<>()),
ComputeBiodegradableWhenArriving(new ComputeBiodegradableConsolidateAction.WhenArriving<>()),
ComputeBiodegradableWhenLeaving(new ComputeBiodegradableConsolidateAction.WhenLeaving<>()),
-
ComputeNonEntanglingWhenArriving(new ComputeNonEntanglingConsolidateAction.WhenArriving<>()),
ComputeNonEntanglingWhenLeaving(new ComputeNonEntanglingConsolidateAction.WhenLeaving<>()),
-
ComputeSimplifiedObjectTypeWhenArriving(new ComputeSimplifiedObjectTypeConsolidateAction.WhenArriving<>()),
ComputeSimplifiedObjectTypeWhenLeaving(new ComputeSimplifiedObjectTypeConsolidateAction.WhenLeaving<>());
- private final FloatingObjectConsolidateAction<?, FloatingObjectDto, FloatingObjectPartDto, FloatingObjectConsolidateRequest, FloatingObjectConsolidateContext> action;
+ private final AtomicConsolidateAction<FloatingObjectConsolidateContext, FloatingObjectDto> action;
- FloatingObjectActions(FloatingObjectConsolidateAction<?, FloatingObjectDto, FloatingObjectPartDto, FloatingObjectConsolidateRequest, FloatingObjectConsolidateContext> action) {
+ FloatingObjectConsolidateActions(AtomicConsolidateAction<FloatingObjectConsolidateContext, FloatingObjectDto> action) {
this.action = action;
}
@Override
- public String fieldName() {
- return action.fieldName();
- }
-
- @Override
- public String extraFieldName() {
- return action.extraFieldName();
+ public List<String> fieldNames() {
+ return action.fieldNames();
}
@Override
@@ -75,6 +71,6 @@ public enum FloatingObjectActions implements AtomicConsolidateAction<FloatingObj
@Override
public String toString() {
- return FloatingObjectActions.class.getSimpleName() + "." + name();
+ return "ps.logbook." + FloatingObjectConsolidateActions.class.getSimpleName() + "." + name();
}
}
=====================================
core/api/dto-consolidation/src/main/java/fr/ird/observe/consolidation/data/ps/logbook/FloatingObjectConsolidateEngine.java
=====================================
@@ -46,33 +46,43 @@ public class FloatingObjectConsolidateEngine extends FloatingObjectConsolidateEn
return new FloatingObjectConsolidateContext(getSimplifiedObjectTypeManager(), getMonitor(), getDecorator());
}
+ @Override
+ protected AtomicConsolidateAction<FloatingObjectConsolidateContext, FloatingObjectDto> cleanComputedValuesWhenArrivingAction() {
+ return FloatingObjectConsolidateActions.CleanComputedValuesWhenArriving;
+ }
+
+ @Override
+ protected AtomicConsolidateAction<FloatingObjectConsolidateContext, FloatingObjectDto> cleanComputedValuesWhenLeavingAction() {
+ return FloatingObjectConsolidateActions.CleanComputedValuesWhenLeaving;
+ }
+
@Override
protected AtomicConsolidateAction<FloatingObjectConsolidateContext, FloatingObjectDto> computeSimplifiedObjectTypeWhenArrivingAction() {
- return FloatingObjectActions.ComputeSimplifiedObjectTypeWhenArriving;
+ return FloatingObjectConsolidateActions.ComputeSimplifiedObjectTypeWhenArriving;
}
@Override
protected AtomicConsolidateAction<FloatingObjectConsolidateContext, FloatingObjectDto> computeSimplifiedObjectTypeWhenLeavingAction() {
- return FloatingObjectActions.ComputeSimplifiedObjectTypeWhenLeaving;
+ return FloatingObjectConsolidateActions.ComputeSimplifiedObjectTypeWhenLeaving;
}
@Override
protected AtomicConsolidateAction<FloatingObjectConsolidateContext, FloatingObjectDto> computeBiodegradableWhenArrivingAction() {
- return FloatingObjectActions.ComputeBiodegradableWhenArriving;
+ return FloatingObjectConsolidateActions.ComputeBiodegradableWhenArriving;
}
@Override
protected AtomicConsolidateAction<FloatingObjectConsolidateContext, FloatingObjectDto> computeBiodegradableWhenLeavingAction() {
- return FloatingObjectActions.ComputeBiodegradableWhenLeaving;
+ return FloatingObjectConsolidateActions.ComputeBiodegradableWhenLeaving;
}
@Override
protected AtomicConsolidateAction<FloatingObjectConsolidateContext, FloatingObjectDto> computeNonEntanglingWhenArrivingAction() {
- return FloatingObjectActions.ComputeNonEntanglingWhenArriving;
+ return FloatingObjectConsolidateActions.ComputeNonEntanglingWhenArriving;
}
@Override
protected AtomicConsolidateAction<FloatingObjectConsolidateContext, FloatingObjectDto> computeNonEntanglingWhenLeavingAction() {
- return FloatingObjectActions.ComputeNonEntanglingWhenLeaving;
+ return FloatingObjectConsolidateActions.ComputeNonEntanglingWhenLeaving;
}
}
=====================================
core/persistence/consolidation/src/main/java/fr/ird/observe/consolidation/data/ps/common/TripConsolidateEngine.java
=====================================
@@ -26,16 +26,12 @@ import fr.ird.observe.consolidation.data.ps.dcp.SimplifiedObjectTypeManager;
import fr.ird.observe.consolidation.data.ps.localmarket.BatchConsolidateEngine;
import fr.ird.observe.consolidation.data.ps.localmarket.BatchConsolidateRequest;
import fr.ird.observe.consolidation.data.ps.localmarket.GetOptionalRtpMeanWeightImpl;
-import fr.ird.observe.consolidation.data.ps.observation.ActivityConsolidateEngine;
-import fr.ird.observe.consolidation.data.ps.observation.ActivityConsolidateResult;
import fr.ird.observe.decoration.DecoratorService;
import fr.ird.observe.dto.ToolkitIdModifications;
import fr.ird.observe.dto.data.ps.localmarket.BatchDto;
import fr.ird.observe.dto.referential.ReferentialLocale;
import fr.ird.observe.entities.data.ps.common.Trip;
import fr.ird.observe.entities.data.ps.localmarket.Batch;
-import fr.ird.observe.entities.data.ps.observation.Activity;
-import fr.ird.observe.entities.data.ps.observation.Route;
import fr.ird.observe.spi.service.ServiceContext;
import io.ultreia.java4all.decoration.Decorator;
import org.apache.logging.log4j.LogManager;
@@ -56,11 +52,13 @@ public class TripConsolidateEngine {
private static final Logger log = LogManager.getLogger(TripConsolidateEngine.class);
private final ServiceContext context;
private final BatchConsolidateEngine localmarketBatchEngine;
- private final ActivityConsolidateEngine activityConsolidateEngine;
+ private final fr.ird.observe.consolidation.data.ps.observation.ActivityConsolidateEngine observationActivityConsolidateEngine;
+ private final fr.ird.observe.consolidation.data.ps.logbook.ActivityConsolidateEngine logbookActivityConsolidateEngine;
public TripConsolidateEngine(ServiceContext context, SimplifiedObjectTypeManager simplifiedObjectTypeManager) {
this.context = context;
- this.activityConsolidateEngine = new ActivityConsolidateEngine(context, simplifiedObjectTypeManager);
+ this.observationActivityConsolidateEngine = new fr.ird.observe.consolidation.data.ps.observation.ActivityConsolidateEngine(context, simplifiedObjectTypeManager);
+ this.logbookActivityConsolidateEngine = new fr.ird.observe.consolidation.data.ps.logbook.ActivityConsolidateEngine(context, simplifiedObjectTypeManager);
this.localmarketBatchEngine = new BatchConsolidateEngine(new GetOptionalRtpMeanWeightImpl(context), context.getDecoratorService());
}
@@ -76,15 +74,16 @@ public class TripConsolidateEngine {
Set<ToolkitIdModifications> localmarketBatchResults = consolidateLocalmarketBatches(trip, failIfLengthWeightParameterNotFound);
- Set<ActivityConsolidateResult> activityConsolidateResults = consolidateObservationActivities(trip, failIfLengthWeightParameterNotFound, failIfLengthLengthParameterNotFound);
+ Set<fr.ird.observe.consolidation.data.ps.observation.ActivityConsolidateResult> observationActivityConsolidateResults = consolidateObservationActivities(trip, failIfLengthWeightParameterNotFound, failIfLengthLengthParameterNotFound);
+ Set<fr.ird.observe.consolidation.data.ps.logbook.ActivityConsolidateResult> logbookActivityConsolidateResults = consolidateLogbookActivities(trip);
- if (activityConsolidateResults.isEmpty() && localmarketBatchResults.isEmpty()) {
+ if (observationActivityConsolidateResults.isEmpty() && localmarketBatchResults.isEmpty() && logbookActivityConsolidateResults.isEmpty()) {
// no modification, nor warning on this trip
return Optional.empty();
}
decoratorService.installDecorator(Trip.class, trip);
String tripLabel = trip.toString();
- TripConsolidateResult result = new TripConsolidateResult(tripId, tripLabel, activityConsolidateResults, localmarketBatchResults);
+ TripConsolidateResult result = new TripConsolidateResult(tripId, tripLabel, observationActivityConsolidateResults, logbookActivityConsolidateResults, localmarketBatchResults);
if (result.withModifications()) {
log.info(String.format("Found some modifications on trip: %s - %s", tripId, result.getTripLabel()));
}
@@ -123,18 +122,18 @@ public class TripConsolidateEngine {
return result;
}
- private Set<ActivityConsolidateResult> consolidateObservationActivities(Trip trip, boolean failIfLengthWeightParameterNotFound, boolean failIfLengthLengthParameterNotFound) {
- Set<ActivityConsolidateResult> result = new LinkedHashSet<>();
+ private Set<fr.ird.observe.consolidation.data.ps.observation.ActivityConsolidateResult> consolidateObservationActivities(Trip trip, boolean failIfLengthWeightParameterNotFound, boolean failIfLengthLengthParameterNotFound) {
+ Set<fr.ird.observe.consolidation.data.ps.observation.ActivityConsolidateResult> result = new LinkedHashSet<>();
int routeIndex = 0;
int routeMax = trip.getRouteObsSize();
- Decorator routeDecorator = context.getDecoratorService().getDecoratorByType(Route.class);
- for (Route route : trip.getRouteObs()) {
+ Decorator routeDecorator = context.getDecoratorService().getDecoratorByType(fr.ird.observe.entities.data.ps.observation.Route.class);
+ for (fr.ird.observe.entities.data.ps.observation.Route route : trip.getRouteObs()) {
route.registerDecorator(routeDecorator);
- String routePrefix = String.format("Route %s [%s/%s] ", route, ++routeIndex, routeMax);
+ String routePrefix = String.format("Observations - Route %s [%s/%s] ", route, ++routeIndex, routeMax);
log.debug(String.format("%s Start consolidate route: %s", routePrefix, route.getTopiaId()));
int activityIndex = 0;
int activityMax = route.getActivitySize();
- for (Activity activity : route.getActivity()) {
+ for (fr.ird.observe.entities.data.ps.observation.Activity activity : route.getActivity()) {
String activityPrefix = String.format("%s - Activity [%s/%s] ", routePrefix, ++activityIndex, activityMax);
@@ -142,12 +141,41 @@ public class TripConsolidateEngine {
log.debug(String.format("%s Skip activity (No set nor floating object found): %s", activityPrefix, activity.getTopiaId()));
continue;
}
- Optional<ActivityConsolidateResult> activityResult = activityConsolidateEngine.consolidateActivity(trip,
- route,
- activity,
- activityPrefix,
- failIfLengthWeightParameterNotFound,
- failIfLengthLengthParameterNotFound);
+ Optional<fr.ird.observe.consolidation.data.ps.observation.ActivityConsolidateResult> activityResult = observationActivityConsolidateEngine.consolidateActivity(trip,
+ route,
+ activity,
+ activityPrefix,
+ failIfLengthWeightParameterNotFound,
+ failIfLengthLengthParameterNotFound);
+ activityResult.ifPresent(result::add);
+ }
+ }
+ return result;
+ }
+
+ private Set<fr.ird.observe.consolidation.data.ps.logbook.ActivityConsolidateResult> consolidateLogbookActivities(Trip trip) {
+ Set<fr.ird.observe.consolidation.data.ps.logbook.ActivityConsolidateResult> result = new LinkedHashSet<>();
+ int routeIndex = 0;
+ int routeMax = trip.getRouteLogbookSize();
+ Decorator routeDecorator = context.getDecoratorService().getDecoratorByType(fr.ird.observe.entities.data.ps.logbook.Route.class);
+ for (fr.ird.observe.entities.data.ps.logbook.Route route : trip.getRouteLogbook()) {
+ route.registerDecorator(routeDecorator);
+ String routePrefix = String.format("Logbook - Route %s [%s/%s] ", route, ++routeIndex, routeMax);
+ log.debug(String.format("%s Start consolidate route: %s", routePrefix, route.getTopiaId()));
+ int activityIndex = 0;
+ int activityMax = route.getActivitySize();
+ for (fr.ird.observe.entities.data.ps.logbook.Activity activity : route.getActivity()) {
+
+ String activityPrefix = String.format("%s - Activity [%s/%s] ", routePrefix, ++activityIndex, activityMax);
+
+ if (activity.isFloatingObjectEmpty()) {
+ log.debug(String.format("%s Skip activity (No floating object found): %s", activityPrefix, activity.getTopiaId()));
+ continue;
+ }
+ Optional<fr.ird.observe.consolidation.data.ps.logbook.ActivityConsolidateResult> activityResult = logbookActivityConsolidateEngine.consolidateActivity(trip,
+ route,
+ activity,
+ activityPrefix);
activityResult.ifPresent(result::add);
}
}
=====================================
core/persistence/consolidation/src/main/java/fr/ird/observe/consolidation/data/ps/logbook/ActivityConsolidateContext.java
=====================================
@@ -0,0 +1,63 @@
+package fr.ird.observe.consolidation.data.ps.logbook;
+
+/*-
+ * #%L
+ * ObServe Core :: Persistence :: Consolidation
+ * %%
+ * 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 fr.ird.observe.decoration.DecoratorService;
+import fr.ird.observe.dto.ToolkitIdModifications;
+import fr.ird.observe.entities.ObserveTopiaDaoSupplier;
+import fr.ird.observe.entities.data.ps.logbook.Activity;
+import fr.ird.observe.spi.service.ServiceContext;
+
+import java.util.Locale;
+import java.util.Optional;
+
+/**
+ * Created on 12/03/2023.
+ *
+ * @author Tony Chemit - dev(a)tchemit.fr
+ * @since 9.0.28
+ */
+public class ActivityConsolidateContext {
+ public final Locale locale;
+ public final ObserveTopiaDaoSupplier daoSupplier;
+ public final DecoratorService decoratorService;
+ public final String activityPrefix;
+ public final ActivityConsolidateResultBuilder resultBuilder;
+
+ public ActivityConsolidateContext(ServiceContext context, Activity activity, String activityPrefix) {
+ this.activityPrefix = activityPrefix;
+ this.decoratorService = context.getDecoratorService();
+ this.locale = context.getApplicationLocale();
+ this.daoSupplier = (ObserveTopiaDaoSupplier) context.getTopiaPersistenceContext();
+ this.resultBuilder = new ActivityConsolidateResultBuilder(activity.getTopiaId(), activity.toString());
+ }
+
+ public void flushFloatingObject(ToolkitIdModifications modifications) {
+ resultBuilder.flushFloatingObjectModification(modifications);
+ }
+
+ public Optional<ActivityConsolidateResult> buildResult() {
+ return resultBuilder.build();
+ }
+
+}
=====================================
core/persistence/consolidation/src/main/java/fr/ird/observe/consolidation/data/ps/logbook/ActivityConsolidateEngine.java
=====================================
@@ -0,0 +1,144 @@
+package fr.ird.observe.consolidation.data.ps.logbook;
+
+/*-
+ * #%L
+ * ObServe Core :: Persistence :: Consolidation
+ * %%
+ * 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 fr.ird.observe.consolidation.data.ps.dcp.SimplifiedObjectTypeManager;
+import fr.ird.observe.dto.ToolkitIdModifications;
+import fr.ird.observe.dto.data.ActivityAware;
+import fr.ird.observe.dto.data.ps.logbook.FloatingObjectDto;
+import fr.ird.observe.dto.data.ps.logbook.FloatingObjectPartDto;
+import fr.ird.observe.dto.referential.ReferentialLocale;
+import fr.ird.observe.entities.data.ps.common.Trip;
+import fr.ird.observe.entities.data.ps.logbook.Activity;
+import fr.ird.observe.entities.data.ps.logbook.FloatingObject;
+import fr.ird.observe.entities.data.ps.logbook.FloatingObjectPart;
+import fr.ird.observe.entities.data.ps.logbook.Route;
+import fr.ird.observe.spi.service.ServiceContext;
+import io.ultreia.java4all.decoration.Decorator;
+import io.ultreia.java4all.util.Dates;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+
+import java.util.LinkedHashSet;
+import java.util.Optional;
+
+/**
+ * Created on 12/03/2023.
+ *
+ * @author Tony Chemit - dev(a)tchemit.fr
+ * @since 9.0.28
+ */
+public class ActivityConsolidateEngine {
+ private static final Logger log = LogManager.getLogger(ActivityConsolidateEngine.class);
+ private final ServiceContext context;
+ private final FloatingObjectConsolidateEngine floatingObjectConsolidateEngine;
+ private final Decorator activityDecorator;
+
+ public ActivityConsolidateEngine(ServiceContext context, SimplifiedObjectTypeManager simplifiedObjectTypeManager) {
+ this.context = context;
+ this.floatingObjectConsolidateEngine = new FloatingObjectConsolidateEngine(simplifiedObjectTypeManager, context.getDecoratorService());
+ this.activityDecorator = context.getDecoratorService().getDecoratorByType(Activity.class, ActivityAware.CLASSIFIER_WITH_ROUTE);
+ }
+
+ public Optional<ActivityConsolidateResult> consolidateActivity(Trip trip,
+ Route route,
+ Activity activity,
+ String activityPrefix) {
+ if (activity.isFloatingObjectEmpty()) {
+ log.debug(String.format("%s Skip activity (No floating object found): %s", activityPrefix, activity.getTopiaId()));
+ return Optional.empty();
+ }
+ activity.setTime(Dates.getDateAndTime(route.getDate(), activity.getTime(), true, true));
+ activity.registerDecorator(activityDecorator);
+
+ ActivityConsolidateContext activityContext = new ActivityConsolidateContext(context,
+ activity,
+ activityPrefix);
+ try {
+ log.debug(String.format("%s Start consolidate activity: %s", activityContext.activityPrefix, activity.getTopiaId()));
+ if (activity.isFloatingObjectNotEmpty()) {
+ for (FloatingObject floatingObject : activity.getFloatingObject()) {
+ consolidateFloatingObject(activityContext, floatingObject);
+ }
+ }
+ Optional<ActivityConsolidateResult> result = activityContext.buildResult();
+ result.ifPresent(r -> {
+ if (r.withModifications()) {
+ log.info(String.format("%s Found some modifications on activity: %s - %s", activityPrefix, activity.getTopiaId(), r.getActivityLabel()));
+ }
+ if (r.withWarnings()) {
+ log.info(String.format("%s Found some warnings on activity: %s - %s", activityPrefix, activity.getTopiaId(), r.getActivityLabel()));
+ }
+ });
+ return result;
+ } catch (Exception e) {
+ log.error(String.format("%s Could not consolidate trip: %s, route: %s - activity: %s", activityPrefix, trip.getTopiaId(), route.getTopiaId(), activity.getTopiaId()), e);
+ throw e;
+ }
+ }
+
+ private void consolidateFloatingObject(ActivityConsolidateContext activityContext, FloatingObject floatingObject) {
+
+ if (floatingObject.getObjectOperation() == null) {
+ log.warn("**********************");
+ log.warn(String.format("Floating object %s has no object operation....", floatingObject.getTopiaId()));
+ log.warn("**********************");
+ return;
+ }
+
+ ReferentialLocale referentialLocale = context.getReferentialLocale();
+
+ FloatingObjectDto floatingObjectDto = FloatingObject.toDto(referentialLocale, floatingObject);
+
+ java.util.Set<FloatingObjectPartDto> floatingObjectPartSet = new LinkedHashSet<>(FloatingObjectPart.SPI.toDataDtoList(referentialLocale, floatingObject.getFloatingObjectPart()));
+ FloatingObjectConsolidateRequest request = new FloatingObjectConsolidateRequest(floatingObjectDto, floatingObjectPartSet);
+ Optional<ToolkitIdModifications> result = floatingObjectConsolidateEngine.consolidate(request);
+
+ result.ifPresent(r -> {
+ // flush to main result
+ activityContext.flushFloatingObject(r);
+ // flush back modifications detected to entity
+ r.flushToBean(floatingObject);
+ });
+
+ if (request.isNeedClean()) {
+ log.warn("**********************");
+ log.warn(String.format("Floating object %s has some bad parts, this will be fixed here....", floatingObject.getTopiaId()));
+ log.warn("**********************");
+ // Need to clean dcp parts
+ boolean notWhenArriving = !floatingObject.getObjectOperation().isWhenArriving();
+ boolean notWhenLeaving = !floatingObject.getObjectOperation().isWhenLeaving();
+ for (FloatingObjectPart floatingObjectPart : floatingObject.getFloatingObjectPart()) {
+ if (floatingObjectPart.getWhenArriving() != null && notWhenArriving) {
+ log.info(String.format("Set whenArriving to null for part: %s", floatingObjectPart.getTopiaId()));
+ floatingObjectPart.setWhenArriving(null);
+ }
+ if (floatingObjectPart.getWhenLeaving() != null && notWhenLeaving) {
+ log.info(String.format("Set whenLeaving to null for part: %s", floatingObjectPart.getTopiaId()));
+ floatingObjectPart.setWhenLeaving(null);
+ }
+ }
+ }
+ }
+
+}
=====================================
core/services/test/src/main/java/fr/ird/observe/services/service/data/ps/ConsolidateDataServiceFixtures.java
=====================================
@@ -28,7 +28,6 @@ import fr.ird.observe.consolidation.data.ps.common.TripConsolidateResult;
import fr.ird.observe.consolidation.data.ps.dcp.SimplifiedObjectTypeManager;
import fr.ird.observe.consolidation.data.ps.dcp.SimplifiedObjectTypeSpecializedRules;
import fr.ird.observe.consolidation.data.ps.localmarket.BatchConsolidateRequest;
-import fr.ird.observe.consolidation.data.ps.observation.ActivityConsolidateResult;
import fr.ird.observe.decoration.DecoratorService;
import fr.ird.observe.dto.ToolkitIdModifications;
import fr.ird.observe.dto.data.ps.localmarket.BatchDto;
@@ -210,9 +209,11 @@ public class ConsolidateDataServiceFixtures extends GeneratedConsolidateDataServ
TripConsolidateResult actual = service.consolidateTrip(simplifiedObjectTypeSpecializedRules, request);
Assert.assertNotNull(actual);
Assert.assertNotNull(actual.getActivityObservationResults());
+ Assert.assertNotNull(actual.getActivityLogbookResults());
+ Assert.assertEquals(0, actual.getActivityLogbookResults().size());
Assert.assertEquals(getIntegerProperty("consolidateTrip.activityResult.count"), actual.getActivityObservationResults().size());
- Assert.assertEquals(getIntegerProperty("consolidateTrip.activityResult.withModifications.count"), actual.getActivityObservationResults().stream().filter(ActivityConsolidateResult::withModifications).count());
- Assert.assertEquals(getIntegerProperty("consolidateTrip.activityResult.withWarnings.count"), actual.getActivityObservationResults().stream().filter(ActivityConsolidateResult::withWarnings).count());
+ Assert.assertEquals(getIntegerProperty("consolidateTrip.activityResult.withModifications.count"), actual.getActivityObservationResults().stream().filter(fr.ird.observe.consolidation.data.ps.observation.ActivityConsolidateResult::withModifications).count());
+ Assert.assertEquals(getIntegerProperty("consolidateTrip.activityResult.withWarnings.count"), actual.getActivityObservationResults().stream().filter(fr.ird.observe.consolidation.data.ps.observation.ActivityConsolidateResult::withWarnings).count());
}
}
=====================================
pom.xml
=====================================
@@ -1244,7 +1244,8 @@
</reportSet>
</reportSets>
</plugin>
- <plugin>
+ <!-- FIXME Need some work before javadoc is fine-->
+ <!--plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>${plugin.version.javadoc}</version>
@@ -1256,7 +1257,7 @@
</reports>
</reportSet>
</reportSets>
- </plugin>
+ </plugin-->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jxr-plugin</artifactId>
=====================================
src/site/markdown/consolidation.md
=====================================
@@ -0,0 +1,295 @@
+# Consolidation
+
+Ce document décrit les règles de calcul utilisées lors de l'opération de consolidation.
+
+## Modèle commun
+
+Pour le moment aucune consolidation n'est effectiée sur ce modèle.
+
+## Modèle Palangre
+
+Pour le moment aucune consolidation n'est effectiée sur ce modèle.
+
+## Modèle Senne
+
+### Paquetage Commun
+
+Pour le moment aucune consolidation n'est effectiée sur ce paquetage.
+
+### Paquetage Livre de Bord
+
+#### Entité Objet flottant (ps.logbook.FloatingObject)
+
+[Code source](./core/core-api/core-api-dto-consolidation/xref/fr/ird/observe/consolidation/data/ps/logbook/FloatingObjectConsolidateActions.html#FloatingObjectConsolidateActions)
+
+| Code | Champs |
+|:----------------------------------------------------------------------------|:----------------------------------------------------------------------------------------------------------------------|
+| ps.logbook.FloatingObjectConsolidateActions.CleanComputedValuesWhenArriving | computedWhenArrivingBiodegradable <br/>computedWhenArrivingNonEntangling<br/>computedWhenArrivingSimplifiedObjectType |
+
+Si l'objet flottant n'est pas actif sur l'arrivée, alors supprimer toutes les données calculées sur l'arrivée.
+
+[Code source](./core/core-api/core-api-dto-consolidation/xref/fr/ird/observe/consolidation/data/ps/dcp/CleanComputedValuesAction.html)
+
+| Code | Champs |
+|:---------------------------------------------------------------------------|:------------------------------------------------------------------------------------------------------------------|
+| ps.logbook.FloatingObjectConsolidateActions.CleanComputedValuesWhenLeaving | computedWhenLeavingBiodegradable<br/>computedWhenLeavingNonEntangling<br/>computedWhenLeavingSimplifiedObjectType |
+
+Si l'objet flottant n'est pas actif sur le départ, alors supprimer toutes les données calculées sur le départ.
+
+[Code source](./core/core-api/core-api-dto-consolidation/xref/fr/ird/observe/consolidation/data/ps/dcp/CleanComputedValuesAction.html)
+
+| Code | Champs |
+|:-----------------------------------------------------------------------------|:----------------------------------|
+| ps.logbook.FloatingObjectConsolidateActions.ComputeBiodegradableWhenArriving | computedWhenArrivingBiodegradable |
+
+Calcul de la propriété **computedWhenArrivingBiodegradable** à partir des matériaux sur l'arrivée.
+
+[Code source](./core/core-api/core-api-dto-consolidation/xref/fr/ird/observe/consolidation/data/ps/dcp/ComputeBiodegradableConsolidateAction.html)
+
+| Code | Champs |
+|:----------------------------------------------------------------------------|:---------------------------------|
+| ps.logbook.FloatingObjectConsolidateActions.ComputeBiodegradableWhenLeaving | computedWhenLeavingBiodegradable |
+
+Calcul de la propriété **computedWhenLeavingBiodegradable** à partir des matériaux sur le départ.
+
+[Code source](./core/core-api/core-api-dto-consolidation/xref/fr/ird/observe/consolidation/data/ps/dcp/ComputeBiodegradableConsolidateAction.html)
+
+| Code | Champs |
+|:-----------------------------------------------------------------------------|:----------------------------------|
+| ps.logbook.FloatingObjectConsolidateActions.ComputeNonEntanglingWhenArriving | computedWhenArrivingNonEntangling |
+
+Calcul de la propriété **computedWhenArrivingNonEntangling** à partir des matériaux sur l'arrivée.
+
+[Code source](./core/core-api/core-api-dto-consolidation/xref/fr/ird/observe/consolidation/data/ps/dcp/ComputeNonEntanglingConsolidateAction.html)
+
+| Code | Champs |
+|:----------------------------------------------------------------------------|:---------------------------------|
+| ps.logbook.FloatingObjectConsolidateActions.ComputeNonEntanglingWhenLeaving | computedWhenLeavingNonEntangling |
+
+Calcul de la propriété **computedWhenLeavingNonEntangling** à partir des matériaux sur le départ.
+
+[Code source](./core/core-api/core-api-dto-consolidation/xref/fr/ird/observe/consolidation/data/ps/dcp/ComputeNonEntanglingConsolidateAction.html)
+
+| Code | Champs |
+|:------------------------------------------------------------------------------------|:-----------------------------------------|
+| ps.logbook.FloatingObjectConsolidateActions.ComputeSimplifiedObjectTypeWhenArriving | computedWhenArrivingSimplifiedObjectType |
+
+Calcul de la propriété **computedWhenArrivingSimplifiedObjectType** à partir des matériaux sur l'arrivée.
+
+[Code source](./core/core-api/core-api-dto-consolidation/xref/fr/ird/observe/consolidation/data/ps/dcp/ComputeSimplifiedObjectTypeConsolidateAction.html)
+
+| Code | Champs |
+|:-----------------------------------------------------------------------------------|:----------------------------------------|
+| ps.logbook.FloatingObjectConsolidateActions.ComputeSimplifiedObjectTypeWhenLeaving | computedWhenLeavingSimplifiedObjectType |
+
+Calcul de la propriété **computedWhenLeavingSimplifiedObjectType** à partir des matériaux sur le départ.
+
+[Code source](./core/core-api/core-api-dto-consolidation/xref/fr/ird/observe/consolidation/data/ps/dcp/ComputeSimplifiedObjectTypeConsolidateAction.html)
+
+### Paquetage Observations
+
+#### Entité Calée (ps.observation.Set)
+
+[Code source](./core/core-persistence/core-persistence-consolidation/xref/fr/ird/observe/consolidation/data/ps/observation/SetConsolidateActions.html#SetConsolidateActions)
+
+| Code | Champs |
+|:-------------------------------------------------------|:-----------|
+| ps.observation.SetConsolidateActions.ComputeSchoolType | SchoolType |
+
+Calcul du type de banc à partir des systèmes observés de l'activité.
+
+#### Entité Objet flottant (ps.observation.FloatingObject)
+
+[Code source](./core/core-api/core-api-dto-consolidation/xref/fr/ird/observe/consolidation/data/ps/observation/FloatingObjectConsolidateActions.html#FloatingObjectConsolidateActions)
+
+| Code | Champs |
+|:--------------------------------------------------------------------------------|:----------------------------------------------------------------------------------------------------------------------|
+| ps.observation.FloatingObjectConsolidateActions.CleanComputedValuesWhenArriving | computedWhenArrivingBiodegradable <br/>computedWhenArrivingNonEntangling<br/>computedWhenArrivingSimplifiedObjectType |
+
+Si l'objet flottant n'est pas actif sur l'arrivée, alors supprimer toutes les données calculées sur l'arrivée.
+
+[Code source](./core/core-api/core-api-dto-consolidation/xref/fr/ird/observe/consolidation/data/ps/dcp/CleanComputedValuesAction.html)
+
+| Code | Champs |
+|:-------------------------------------------------------------------------------|:------------------------------------------------------------------------------------------------------------------|
+| ps.observation.FloatingObjectConsolidateActions.CleanComputedValuesWhenLeaving | computedWhenLeavingBiodegradable<br/>computedWhenLeavingNonEntangling<br/>computedWhenLeavingSimplifiedObjectType |
+
+Si l'objet flottant n'est pas actif sur le départ, alors supprimer toutes les données calculées sur le départ.
+
+[Code source](./core/core-api/core-api-dto-consolidation/xref/fr/ird/observe/consolidation/data/ps/dcp/CleanComputedValuesAction.html)
+
+| Code | Champs |
+|:---------------------------------------------------------------------------------|:----------------------------------|
+| ps.observation.FloatingObjectConsolidateActions.ComputeBiodegradableWhenArriving | computedWhenArrivingBiodegradable |
+
+Calcul de la propriété **computedWhenArrivingBiodegradable** à partir des matériaux sur l'arrivée.
+
+[Code source](./core/core-api/core-api-dto-consolidation/xref/fr/ird/observe/consolidation/data/ps/dcp/ComputeBiodegradableConsolidateAction.html)
+
+| Code | Champs |
+|:--------------------------------------------------------------------------------|:---------------------------------|
+| ps.observation.FloatingObjectConsolidateActions.ComputeBiodegradableWhenLeaving | computedWhenLeavingBiodegradable |
+
+Calcul de la propriété **computedWhenLeavingBiodegradable** à partir des matériaux sur le départ.
+
+[Code source](./core/core-api/core-api-dto-consolidation/xref/fr/ird/observe/consolidation/data/ps/dcp/ComputeBiodegradableConsolidateAction.html)
+
+| Code | Champs |
+|:---------------------------------------------------------------------------------|:----------------------------------|
+| ps.observation.FloatingObjectConsolidateActions.ComputeNonEntanglingWhenArriving | computedWhenArrivingNonEntangling |
+
+Calcul de la propriété **computedWhenArrivingNonEntangling** à partir des matériaux sur l'arrivée.
+
+[Code source](./core/core-api/core-api-dto-consolidation/xref/fr/ird/observe/consolidation/data/ps/dcp/ComputeNonEntanglingConsolidateAction.html)
+
+| Code | Champs |
+|:--------------------------------------------------------------------------------|:---------------------------------|
+| ps.observation.FloatingObjectConsolidateActions.ComputeNonEntanglingWhenLeaving | computedWhenLeavingNonEntangling |
+
+Calcul de la propriété **computedWhenLeavingNonEntangling** à partir des matériaux sur le départ.
+
+[Code source](./core/core-api/core-api-dto-consolidation/xref/fr/ird/observe/consolidation/data/ps/dcp/ComputeNonEntanglingConsolidateAction.html)
+
+| Code | Champs |
+|:----------------------------------------------------------------------------------------|:-----------------------------------------|
+| ps.observation.FloatingObjectConsolidateActions.ComputeSimplifiedObjectTypeWhenArriving | computedWhenArrivingSimplifiedObjectType |
+
+Calcul de la propriété **computedWhenArrivingSimplifiedObjectType** à partir des matériaux sur l'arrivée.
+
+[Code source](./core/core-api/core-api-dto-consolidation/xref/fr/ird/observe/consolidation/data/ps/dcp/ComputeSimplifiedObjectTypeConsolidateAction.html)
+
+| Code | Champs |
+|:---------------------------------------------------------------------------------------|:----------------------------------------|
+| ps.observation.FloatingObjectConsolidateActions.ComputeSimplifiedObjectTypeWhenLeaving | computedWhenLeavingSimplifiedObjectType |
+
+Calcul de la propriété **computedWhenLeavingSimplifiedObjectType** à partir des matériaux sur le départ.
+
+[Code source](./core/core-api/core-api-dto-consolidation/xref/fr/ird/observe/consolidation/data/ps/dcp/ComputeSimplifiedObjectTypeConsolidateAction.html)
+
+#### Entité Capture (ps.observation.Catch)
+
+[Code source](./core/core-persistence/core-persistence-consolidation/xref/fr/ird/observe/consolidation/data/ps/observation/CatchConsolidateActions.html#CatchConsolidateActions)
+
+| Code | Champs |
+|:-----------------------------------------------------------------------|:----------------------------------------|
+| ps.observation.CatchConsolidateActions.ComputeMeanLengthFromMeanWeight | meanLength<br/>meanLengthComputedSource |
+
+Pour calculer la taille moyenne de la capture à partir du poids moyen de la capture et du RTP adéquate.
+
+La propriété calculée sera *CatchComputedValueSource.fromData*.
+
+| Code | Champs |
+|:-----------------------------------------------------------------------|:----------------------------------------|
+| ps.observation.CatchConsolidateActions.ComputeMeanWeightFromMeanLength | meanWeight<br/>meanWeightComputedSource |
+
+Pour calculer le poids moyen de la capture à partir de la taille moyenne de la capture et du RTP adéquate.
+
+La propriété calculée sera *CatchComputedValueSource.fromData*.
+
+| Code | Champs |
+|:-------------------------------------------------------------------------------------|:------------------------------------------|
+| ps.observation.CatchConsolidateActions.ComputeCatchWeightFromTotalCountAndMeanWeight | catchWeight<br/>catchWeightComputedSource |
+
+Pour calculer le poids total de la capture à partir du poids moyen et de l'effectif de la capture.
+
+La propriété calculée sera *CatchComputedValueSource.fromData*.
+
+| Code | Champs |
+|:-------------------------------------------------------------------------------------|:----------------------------------------|
+| ps.observation.CatchConsolidateActions.ComputeTotalCountFromCatchWeightAndMeanWeight | totalCount<br/>totalCountComputedSource |
+
+Pour calculer l'effectif de la capture à partir du poids total et moyen de la capture.
+
+La propriété calculée sera *CatchComputedValueSource.fromData*.
+
+| Code | Champs |
+|:-------------------------------------------------------------------------------------|:----------------------------------------|
+| ps.observation.CatchConsolidateActions.ComputeMeanWeightFromTotalCountAndCatchWeight | meanWeight<br/>meanWeightComputedSource |
+
+Pour calculer la taille moyenne à partir du poids total et de l'effectif de la capture.
+
+La propriété calculée sera *CatchComputedValueSource.fromData*.
+
+| Code | Champs |
+|:-------------------------------------------------------------------|:----------------------------------------|
+| ps.observation.CatchConsolidateActions.CopyMeanLengthFromParameter | meanLength<br/>meanLengthComputedSource |
+
+Pour recopier la taille moyenne du RTP adéquate.
+
+La propriété calculée sera *CatchComputedValueSource.fromReferentiel*.
+
+| Code | Champs |
+|:-------------------------------------------------------------------|:----------------------------------------|
+| ps.observation.CatchConsolidateActions.CopyMeanWeightFromParameter | meanWeight<br/>meanWeightComputedSource |
+
+Pour recopier le poids moyen du RTP adéquate.
+
+La propriété calculée sera *CatchComputedValueSource.fromReferentiel*.
+
+| Code | Champs |
+|:--------------------------------------------------------------------|:----------------------------------------|
+| ps.observation.CatchConsolidateActions.ComputeMeanLengthFromSamples | meanLength<br/>meanLengthComputedSource |
+
+Pour calculer la taille moyenne à partir des tailles moyennes des échantillons associés.
+
+La propriété calculée sera *CatchComputedValueSource.fromSample*.
+
+| Code | Champs |
+|:--------------------------------------------------------------------|:----------------------------------------|
+| ps.observation.CatchConsolidateActions.ComputeTotalCountFromSamples | totalCount<br/>totalCountComputedSource |
+
+Pour calculer l'effectif de la capture à partir des effectifs des échantillons associés.
+
+La propriété calculée sera *CatchComputedValueSource.fromSample*.
+
+| Code | Champs |
+|:---------------------------------------------------------------------|:--------------------|
+| ps.observation.CatchConsolidateActions.CleanCatchWeightMeasureMethod | weightMeasureMethod |
+
+Pour supprimer la méthode de mesure de poids si le poids a été calculé ou qu'il n'y a pas de poids.
+
+#### Entité Échantillon (ps.observation.SampleMeasure)
+
+[Code source](./core/core-persistence/core-persistence-consolidation/xref/fr/ird/observe/consolidation/data/ps/observation/SampleMeasureConsolidateActions.html#SampleMeasureConsolidateActions)
+
+| Code | Champs |
+|:-----------------------------------------------------------------------|:----------------------------|
+| ps.observation.SampleMeasureConsolidateActions.ComputeLengthFromWeight | length<br/>isLengthComputed |
+
+Calcul de la taille depuis le poids en utilisant la RTP adéquate.
+
+| Code | Champs |
+|:-----------------------------------------------------------------------|:----------------------------|
+| ps.observation.SampleMeasureConsolidateActions.ComputeWeightFromLength | weight<br/>isWeightComputed |
+
+Calcul du poids depuis la taille en utilisant la RTP adéquate.
+
+### Paquetage Marché local
+
+#### Entité Lot (ps.localmarket.Batch)
+
+[Code source](./core/core-api/core-api-dto-consolidation/xref/fr/ird/observe/consolidation/data/ps/localmarket/BatchConsolidateActions.html#BatchConsolidateActions)
+
+| Code | Champs |
+|:--------------------------------------------------------------------------|:--------------------------------|
+| ps.localmarket.BatchConsolidateActions.ComputeWeightFromSpeciesMeanWeight | weight<br/>weightComputedSource |
+
+Si le conditionnement est de type **Espèce unité**, on calcule alors le poids à partir du poids moyen du
+conditionnement (si celui est défini) et de l'effectif du lot.
+
+La propriété calculée sera *BatchWeightComputedValueSource.fromSpeciesMeanWeight*.
+
+| Code | Champs |
+|:----------------------------------------------------------------------------|:--------------------------------|
+| ps.localmarket.BatchConsolidateActions.ComputeWeightFromPackagingMeanWeight | weight<br/>weightComputedSource |
+
+Si le conditionnement est de type **Conditionnement non pesé**, on calcule alors le poids à partir du poids moyen de
+l'espèce de la RTP adéquate (si celle-ci est définie) et de l'effectif du lot.
+
+La propriété calculée sera *BatchWeightComputedValueSource.fromPackagingMeanWeight*.
+
+| Code | Champs |
+|:---------------------------------------------------------|:--------------------------------|
+| ps.localmarket.BatchConsolidateActions.ResetWeightValues | weight<br/>weightComputedSource |
+
+Dans les autres cas, on supprime tout simplement le poids car on ne peut pas le calculer.
\ No newline at end of file
=====================================
src/site/markdown/index.md
=====================================
@@ -14,6 +14,7 @@ Le logiciel *ObServe*... **TODO**
- [Configuration client](./observe-client.html)
- [Configuration server](./observe-server.html)
- [Documentation de l'outil de reporting](./report/index.html)
+- [Documentation de l'outil de consolidation](./consolidation.html)
=====================================
src/site/site.xml
=====================================
@@ -86,6 +86,7 @@
<item name="Configuration (fichier d'exemple)" target="_blank" href="./observe-client.conf"/>
<item name="Filtrage des référentiels" href="./referential-filter.html"/>
<item name="Synchronisation référentiel avancée" href="./synchro-referential.html"/>
+ <item name="Consolidation des données" href="./consolidation.html"/>
<item name="Outil de reporting" href="./report/index.html">
<item name="Syntaxe d'un rapport" href="./report/syntax.html"/>
<item name="Opérations disponibles pour un rapport" href="./report/embedded-operations.html"/>
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/compare/c69cacf50dd64615b2a83e88…
--
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/compare/c69cacf50dd64615b2a83e88…
You're receiving this email because of your account on gitlab.com.
1
0
[Git][ultreiaio/ird-observe][develop-9.0.x] 3 commits: Consolidation - ajout consolidation pour les logbook
by Tony CHEMIT (@tchemit) 12 Mar '23
by Tony CHEMIT (@tchemit) 12 Mar '23
12 Mar '23
Tony CHEMIT pushed to branch develop-9.0.x at ultreiaio / ird-observe
Commits:
237a0f1a by Tony Chemit at 2023-03-12T17:00:48+01:00
Consolidation - ajout consolidation pour les logbook
- - - - -
6d111dcd by Tony Chemit at 2023-03-12T17:00:48+01:00
Ajout d'une documentation sur la consolidation - Closes #2642
- - - - -
c69cacf5 by Tony Chemit at 2023-03-12T17:00:48+01:00
Remove javadoc from site reports (not ready to use it)
- - - - -
19 changed files:
- .gitignore
- client/datasource/actions/src/main/i18n/getters/java.getter
- client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/consolidate/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/api/dto-consolidation/src/main/java/fr/ird/observe/consolidation/data/ps/common/TripConsolidateResult.java
- + core/api/dto-consolidation/src/main/java/fr/ird/observe/consolidation/data/ps/logbook/ActivityConsolidateResult.java
- + core/api/dto-consolidation/src/main/java/fr/ird/observe/consolidation/data/ps/logbook/ActivityConsolidateResultBuilder.java
- core/api/dto-consolidation/src/main/java/fr/ird/observe/consolidation/data/ps/logbook/FloatingObjectActions.java → core/api/dto-consolidation/src/main/java/fr/ird/observe/consolidation/data/ps/logbook/FloatingObjectConsolidateActions.java
- core/api/dto-consolidation/src/main/java/fr/ird/observe/consolidation/data/ps/logbook/FloatingObjectConsolidateEngine.java
- core/persistence/consolidation/src/main/java/fr/ird/observe/consolidation/data/ps/common/TripConsolidateEngine.java
- + core/persistence/consolidation/src/main/java/fr/ird/observe/consolidation/data/ps/logbook/ActivityConsolidateContext.java
- + core/persistence/consolidation/src/main/java/fr/ird/observe/consolidation/data/ps/logbook/ActivityConsolidateEngine.java
- core/services/test/src/main/java/fr/ird/observe/services/service/data/ps/ConsolidateDataServiceFixtures.java
- pom.xml
- + src/site/markdown/consolidation.md
- src/site/markdown/index.md
- src/site/site.xml
Changes:
=====================================
.gitignore
=====================================
@@ -19,7 +19,8 @@
/*~
/*/*~
/src/site/markdown/CHANGELOG.md
-/src/site/markdown/*.md
+/src/site/markdown/observe-client.md
+/src/site/markdown/observe-server.md
/src/site/resources/*.conf
client/runner/src/main/assembly/dist/config/observe-client*
server/runner/src/main/assembly/dist/config/observe-server*
=====================================
client/datasource/actions/src/main/i18n/getters/java.getter
=====================================
@@ -32,12 +32,15 @@ observe.ui.datasource.actions.config.data.sources.equals
observe.ui.datasource.editor.actions.activity.pairing
observe.ui.datasource.editor.actions.consolidate
observe.ui.datasource.editor.actions.consolidate.description
-observe.ui.datasource.editor.actions.consolidate.message.activity.modification
-observe.ui.datasource.editor.actions.consolidate.message.activity.warning
+observe.ui.datasource.editor.actions.consolidate.end.trip
+observe.ui.datasource.editor.actions.consolidate.message.logbook.activity.modification
+observe.ui.datasource.editor.actions.consolidate.message.logbook.activity.warning
observe.ui.datasource.editor.actions.consolidate.message.modifications.modification
observe.ui.datasource.editor.actions.consolidate.message.modifications.property
observe.ui.datasource.editor.actions.consolidate.message.modifications.warning
observe.ui.datasource.editor.actions.consolidate.message.noChanges
+observe.ui.datasource.editor.actions.consolidate.message.observation.activity.modification
+observe.ui.datasource.editor.actions.consolidate.message.observation.activity.warning
observe.ui.datasource.editor.actions.consolidate.message.operation.done
observe.ui.datasource.editor.actions.consolidate.message.save.changes
observe.ui.datasource.editor.actions.consolidate.message.trip.modification
=====================================
client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/consolidate/actions/Start.java
=====================================
@@ -27,10 +27,10 @@ import fr.ird.observe.client.datasource.actions.actions.AdminTabUIActionSupport;
import fr.ird.observe.client.datasource.actions.consolidate.ConsolidateModel;
import fr.ird.observe.client.datasource.actions.consolidate.ConsolidateUI;
import fr.ird.observe.client.datasource.api.ObserveSwingDataSource;
+import fr.ird.observe.consolidation.AtomicConsolidateAction;
import fr.ird.observe.consolidation.data.ps.common.TripConsolidateRequest;
import fr.ird.observe.consolidation.data.ps.common.TripConsolidateResult;
import fr.ird.observe.consolidation.data.ps.dcp.SimplifiedObjectTypeSpecializedRules;
-import fr.ird.observe.consolidation.data.ps.observation.ActivityConsolidateResult;
import fr.ird.observe.dto.BusinessDto;
import fr.ird.observe.dto.ObserveUtil;
import fr.ird.observe.dto.ProgressionModel;
@@ -45,6 +45,8 @@ import fr.ird.observe.dto.decoration.ObserveI18nDecoratorHelper;
import fr.ird.observe.services.service.data.ps.ConsolidateDataService;
import io.ultreia.java4all.bean.monitor.JavaBeanPropertyModification;
import io.ultreia.java4all.i18n.I18n;
+import io.ultreia.java4all.lang.Strings;
+import io.ultreia.java4all.util.TimeLog;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.nuiton.jaxx.runtime.swing.wizard.ext.WizardState;
@@ -55,6 +57,7 @@ import java.awt.event.ActionEvent;
import java.util.Date;
import java.util.LinkedHashSet;
import java.util.Set;
+import java.util.concurrent.atomic.AtomicInteger;
import static io.ultreia.java4all.i18n.I18n.t;
@@ -96,45 +99,30 @@ public class Start extends AdminTabUIActionSupport<ConsolidateUI> {
ConsolidateDataService consolidateDataService = dataSource.getPsConsolidateDataService();
- int index = 0;
+ AtomicInteger index = new AtomicInteger();
int nbTrips = tripIds.size();
SimplifiedObjectTypeSpecializedRules simplifiedObjectTypeSpecializedRules = getClientConfig().getSimplifiedObjectTypeSpecializedRules();
Set<TripConsolidateResult> results = new LinkedHashSet<>();
for (String tripId : tripIds) {
-
- progressModel.increments();
-
- if (stepModel.checkIfTripAlreadyProcessed(tripId)) {
- // this one has already been processed
- sendMessage(t("observe.ui.datasource.editor.actions.consolidate.skip.trip", ++index, nbTrips, tripId));
- progressModel.increments();
- continue;
- }
- sendMessage(t("observe.ui.datasource.editor.actions.consolidate.start.trip", ++index, nbTrips, tripId));
-
- // mark trip processed
- stepModel.setTripProcessed(tripId);
-
- if (TripAware.isLonglineId(tripId)) {
- // can't consolidate LL trips...
- progressModel.increments();
- continue;
- }
- TripConsolidateRequest request = new TripConsolidateRequest();
- request.setTripId(tripId);
- request.setFailIfLengthWeightParameterNotFound(stepModel.isConsolidationFailIfLengthWeightParameterNotFound());
- request.setFailIfLengthLengthParameterNotFound(stepModel.isConsolidationFailIfLengthLengthParameterNotFound());
-
- TripConsolidateResult result = consolidateDataService.consolidateTrip(simplifiedObjectTypeSpecializedRules, request);
- if (result != null) {
- printResult(result);
- if (result.withModifications()) {
- results.add(result);
- }
+ long t0 = TimeLog.getTime();
+ try {
+ consolidateTrip(tripId,
+ index,
+ nbTrips,
+ stepModel,
+ simplifiedObjectTypeSpecializedRules,
+ consolidateDataService,
+ progressModel,
+ results);
+ } finally {
+ ObserveUtil.cleanMemory();
+ String message = t("observe.ui.datasource.editor.actions.consolidate.end.trip", index, nbTrips, tripId, Strings.convertTime(TimeLog.getTime() - t0));
+ log.info(message);
+ sendMessage(message);
+ sendMessage("------------------------");
}
- ObserveUtil.cleanMemory();
}
progressModel.increments();
if (results.isEmpty()) {
@@ -148,6 +136,47 @@ public class Start extends AdminTabUIActionSupport<ConsolidateUI> {
return WizardState.SUCCESSED;
}
+ void consolidateTrip(String tripId,
+ AtomicInteger index,
+ int nbTrips,
+ ConsolidateModel stepModel,
+ SimplifiedObjectTypeSpecializedRules simplifiedObjectTypeSpecializedRules,
+ ConsolidateDataService consolidateDataService,
+ ProgressionModel progressModel,
+ Set<TripConsolidateResult> results) {
+ progressModel.increments();
+
+ if (stepModel.checkIfTripAlreadyProcessed(tripId)) {
+ // this one has already been processed
+ sendMessage(t("observe.ui.datasource.editor.actions.consolidate.skip.trip", index.incrementAndGet(), nbTrips, tripId));
+ progressModel.increments();
+ return;
+ }
+ sendMessage(t("observe.ui.datasource.editor.actions.consolidate.start.trip", index.incrementAndGet(), nbTrips, tripId));
+
+ // mark trip processed
+ stepModel.setTripProcessed(tripId);
+
+ if (TripAware.isLonglineId(tripId)) {
+ // can't consolidate LL trips...
+ progressModel.increments();
+ return;
+ }
+ TripConsolidateRequest request = new TripConsolidateRequest();
+ request.setTripId(tripId);
+ request.setFailIfLengthWeightParameterNotFound(stepModel.isConsolidationFailIfLengthWeightParameterNotFound());
+ request.setFailIfLengthLengthParameterNotFound(stepModel.isConsolidationFailIfLengthLengthParameterNotFound());
+
+ TripConsolidateResult result = consolidateDataService.consolidateTrip(simplifiedObjectTypeSpecializedRules, request);
+ if (result != null) {
+ printResult(result);
+ if (result.withModifications()) {
+ results.add(result);
+ }
+ }
+ ObserveUtil.cleanMemory();
+ }
+
void printResult(TripConsolidateResult result) {
String tripSeineLabel = result.getTripLabel();
if (result.withModifications()) {
@@ -156,21 +185,23 @@ public class Start extends AdminTabUIActionSupport<ConsolidateUI> {
if (result.withWarnings()) {
sendMessage(t("observe.ui.datasource.editor.actions.consolidate.message.trip.warning", result.getTripId(), tripSeineLabel));
}
- for (ActivityConsolidateResult activityResult : result.getActivityObservationResults()) {
+ for (fr.ird.observe.consolidation.data.ps.observation.ActivityConsolidateResult activityResult : result.getActivityObservationResults()) {
+ printResult(activityResult);
+ }
+ for (fr.ird.observe.consolidation.data.ps.logbook.ActivityConsolidateResult activityResult : result.getActivityLogbookResults()) {
printResult(activityResult);
}
for (ToolkitIdModifications batchResult : result.getLocalmarketBatchResults()) {
printResult(BatchDto.class, batchResult);
}
- sendMessage("---------------");
}
- void printResult(ActivityConsolidateResult activityResult) {
+ void printResult(fr.ird.observe.consolidation.data.ps.observation.ActivityConsolidateResult activityResult) {
if (activityResult.withModifications()) {
- sendMessage(" " + t("observe.ui.datasource.editor.actions.consolidate.message.activity.modification", activityResult.getActivityId(), activityResult.getActivityLabel()));
+ sendMessage(" " + t("observe.ui.datasource.editor.actions.consolidate.message.observation.activity.modification", activityResult.getActivityId(), activityResult.getActivityLabel()));
}
if (activityResult.withWarnings()) {
- sendMessage(" " + t("observe.ui.datasource.editor.actions.consolidate.message.activity.warning", activityResult.getActivityId(), activityResult.getActivityLabel()));
+ sendMessage(" " + t("observe.ui.datasource.editor.actions.consolidate.message.observation.activity.warning", activityResult.getActivityId(), activityResult.getActivityLabel()));
}
printResult(SetDto.class, activityResult.getSetModifications());
for (ToolkitIdModifications modification : activityResult.getFloatingObjectModifications()) {
@@ -184,6 +215,18 @@ public class Start extends AdminTabUIActionSupport<ConsolidateUI> {
}
}
+ void printResult(fr.ird.observe.consolidation.data.ps.logbook.ActivityConsolidateResult activityResult) {
+ if (activityResult.withModifications()) {
+ sendMessage(" " + t("observe.ui.datasource.editor.actions.consolidate.message.logbook.activity.modification", activityResult.getActivityId(), activityResult.getActivityLabel()));
+ }
+ if (activityResult.withWarnings()) {
+ sendMessage(" " + t("observe.ui.datasource.editor.actions.consolidate.message.logbook.activity.warning", activityResult.getActivityId(), activityResult.getActivityLabel()));
+ }
+ for (ToolkitIdModifications modification : activityResult.getFloatingObjectModifications()) {
+ printResult(FloatingObjectDto.class, modification);
+ }
+ }
+
private void printResult(Class<? extends BusinessDto> dataType, ToolkitIdModifications modifications) {
if (modifications == null) {
return;
@@ -193,7 +236,10 @@ public class Start extends AdminTabUIActionSupport<ConsolidateUI> {
sendMessage(" " + t("observe.ui.datasource.editor.actions.consolidate.message.modifications.modification", modifications.modificationsCount(), type, modifications.getId(), modifications.getLabel()));
for (JavaBeanPropertyModification modification : modifications.getModifications()) {
String property = I18n.t(ObserveI18nDecoratorHelper.getPropertyI18nKey(dataType, modification.getPropertyName()));
- String message = I18n.t("observe.ui.datasource.editor.actions.consolidate.message.modifications.property", property, modification.getOldValue(), modification.getNewValue());
+ String message = I18n.t("observe.ui.datasource.editor.actions.consolidate.message.modifications.property",
+ property,
+ AtomicConsolidateAction.decorateValue(modification.getOldValue()),
+ AtomicConsolidateAction.decorateValue(modification.getNewValue()));
sendMessage(" - " + message);
}
}
=====================================
client/runner/src/main/i18n/translations/client-runner_en_GB.properties
=====================================
@@ -490,15 +490,18 @@ observe.ui.datasource.editor.actions.activity.pairing=Activities pairing
observe.ui.datasource.editor.actions.consolidate=Consolidate data
observe.ui.datasource.editor.actions.consolidate.config=Consolidate data configuration
observe.ui.datasource.editor.actions.consolidate.description=Consolidate observed data
-observe.ui.datasource.editor.actions.consolidate.message.activity.modification=Computed data for activity [%s] %s
-observe.ui.datasource.editor.actions.consolidate.message.activity.warning=Some warnings were found for activity [%s] %s
+observe.ui.datasource.editor.actions.consolidate.end.trip=End consolidate data on trip %s / %s (%s) [duration\: %s]
+observe.ui.datasource.editor.actions.consolidate.message.observation.activity.modification=Some data were computed for Observations activity [%s] %s
+observe.ui.datasource.editor.actions.consolidate.message.observation.activity.warning=Some warnings were found for Observations activity [%s] %s
+observe.ui.datasource.editor.actions.consolidate.message.logbook.activity.modification=Some data were computed for Logbook activity [%s] %s
+observe.ui.datasource.editor.actions.consolidate.message.logbook.activity.warning=Some warnings were found for Logbook activity [%s] %s
observe.ui.datasource.editor.actions.consolidate.message.modifications.modification=%d change(s) for data of type %s [%s] %s
observe.ui.datasource.editor.actions.consolidate.message.modifications.property=Property %s, old value\: %s - new value\: %s
observe.ui.datasource.editor.actions.consolidate.message.modifications.warning=%d warning(s) for data of type %s [%s] %s
observe.ui.datasource.editor.actions.consolidate.message.noChanges=No data modified.
observe.ui.datasource.editor.actions.consolidate.message.operation.done=Consolidate operation done in %1$s.
observe.ui.datasource.editor.actions.consolidate.message.save.changes=Save modified %1$s trip(s).
-observe.ui.datasource.editor.actions.consolidate.message.trip.modification=Data consolidate for trip [%s] %s
+observe.ui.datasource.editor.actions.consolidate.message.trip.modification=Some data were computed for trip [%s] %s
observe.ui.datasource.editor.actions.consolidate.message.trip.warning=Some warnings were found for trip [%s] %s
observe.ui.datasource.editor.actions.consolidate.skip.trip=Skip already consolidated data on trip %s / %s (%s)
observe.ui.datasource.editor.actions.consolidate.start.trip=Start consolidate data on trip %s / %s (%s)
=====================================
client/runner/src/main/i18n/translations/client-runner_es_ES.properties
=====================================
@@ -490,8 +490,11 @@ observe.ui.datasource.editor.actions.activity.pairing=Activities pairing \#TODO
observe.ui.datasource.editor.actions.consolidate=Calcular los datos
observe.ui.datasource.editor.actions.consolidate.config=Consolidate data configuration
observe.ui.datasource.editor.actions.consolidate.description=Calcular los datos que no fueron observados
-observe.ui.datasource.editor.actions.consolidate.message.activity.modification=Datos calculados para la actividad [%s] %s
-observe.ui.datasource.editor.actions.consolidate.message.activity.warning=Some warnings were found for activity [%s] %s
+observe.ui.datasource.editor.actions.consolidate.end.trip=End consolidate data on trip %s / %s (%s) [duration\: %s] \#TODO
+observe.ui.datasource.editor.actions.consolidate.message.observation.activity.modification=Some data were computed for Observations activity [%s] %s
+observe.ui.datasource.editor.actions.consolidate.message.observation.activity.warning=Some warnings were found for Observations activity [%s] %s
+observe.ui.datasource.editor.actions.consolidate.message.logbook.activity.modification=Some data were computed for Logbook activity [%s] %s
+observe.ui.datasource.editor.actions.consolidate.message.logbook.activity.warning=Some warnings were found for Logbook activity [%s] %s
observe.ui.datasource.editor.actions.consolidate.message.modifications.modification=%d change(s) for data of type %s [%s] %s
observe.ui.datasource.editor.actions.consolidate.message.modifications.property=Property %s, old value\: %s - new value\: %s \#TODO
observe.ui.datasource.editor.actions.consolidate.message.modifications.warning=%d warning(s) for data of type %s [%s] %s
=====================================
client/runner/src/main/i18n/translations/client-runner_fr_FR.properties
=====================================
@@ -490,15 +490,18 @@ observe.ui.datasource.editor.actions.activity.pairing=Appairement des activités
observe.ui.datasource.editor.actions.consolidate=Calculer les données
observe.ui.datasource.editor.actions.consolidate.config=Configuration de la consolidation
observe.ui.datasource.editor.actions.consolidate.description=Calculer les données non observées
-observe.ui.datasource.editor.actions.consolidate.message.activity.modification=Données calculées pour l'activité [%s] %s
-observe.ui.datasource.editor.actions.consolidate.message.activity.warning=Des avertissements ont été détectés pour l'activité [%s] %s
+observe.ui.datasource.editor.actions.consolidate.end.trip=Consolidation terminée pour la marée %s / %s (%s) [durée \: %s]
+observe.ui.datasource.editor.actions.consolidate.message.observation.activity.modification=Des données ont été calculées pour l'activité (Observation) [%s] %s
+observe.ui.datasource.editor.actions.consolidate.message.observation.activity.warning=Des avertissements ont été détectés pour l'activité (Observation) [%s] %s
+observe.ui.datasource.editor.actions.consolidate.message.logbook.activity.modification=Des données ont été calculées pour l'activité (Livre de bord) [%s] %s
+observe.ui.datasource.editor.actions.consolidate.message.logbook.activity.warning=Des avertissements ont été détectés pour l'activité (Livre de bord) [%s] %s
observe.ui.datasource.editor.actions.consolidate.message.modifications.modification=%d modification(s) pour la donnée de type %s [%s] %s
observe.ui.datasource.editor.actions.consolidate.message.modifications.property=Propriété %s, ancienne valeur \: %s - nouvelle valeur \: %s
observe.ui.datasource.editor.actions.consolidate.message.modifications.warning=%d avertissement(s) pour la donnée de type %s [%s] %s
observe.ui.datasource.editor.actions.consolidate.message.noChanges=Aucune donnée modifiée.
observe.ui.datasource.editor.actions.consolidate.message.operation.done=Opération de calcul des données terminée à %1$s.
observe.ui.datasource.editor.actions.consolidate.message.save.changes=Sauvegarde des modifications sur la(es) %1$s marée(s) modifiée(s).
-observe.ui.datasource.editor.actions.consolidate.message.trip.modification=Données calculées pour la marée [%s] %s.
+observe.ui.datasource.editor.actions.consolidate.message.trip.modification=Des données ont été calculées pour la marée [%s] %s.
observe.ui.datasource.editor.actions.consolidate.message.trip.warning=Des avertissement ont été détectés pour la marée [%s] %s.
observe.ui.datasource.editor.actions.consolidate.skip.trip=Marée déjà consolidée %s / %s (%s)
observe.ui.datasource.editor.actions.consolidate.start.trip=Démarrage de la consolidation pour la marée %s / %s (%s)
=====================================
core/api/dto-consolidation/src/main/java/fr/ird/observe/consolidation/data/ps/common/TripConsolidateResult.java
=====================================
@@ -23,7 +23,6 @@ package fr.ird.observe.consolidation.data.ps.common;
*/
-import fr.ird.observe.consolidation.data.ps.observation.ActivityConsolidateResult;
import fr.ird.observe.dto.ToolkitIdModifications;
import io.ultreia.java4all.util.json.JsonAware;
@@ -49,16 +48,25 @@ public class TripConsolidateResult implements JsonAware {
/**
* Observation activities results.
*/
- protected final Set<ActivityConsolidateResult> activityObservationResults;
+ protected final Set<fr.ird.observe.consolidation.data.ps.observation.ActivityConsolidateResult> activityObservationResults;
+ /**
+ * Logbook activities results.
+ */
+ protected final Set<fr.ird.observe.consolidation.data.ps.logbook.ActivityConsolidateResult> activityLogbookResults;
/**
* Local market batches results.
*/
protected final Set<ToolkitIdModifications> localmarketBatchResults;
- public TripConsolidateResult(String tripId, String tripLabel, Set<ActivityConsolidateResult> activityObservationResults, Set<ToolkitIdModifications> localmarketBatchResults) {
+ public TripConsolidateResult(String tripId,
+ String tripLabel,
+ Set<fr.ird.observe.consolidation.data.ps.observation.ActivityConsolidateResult> activityObservationResults,
+ Set<fr.ird.observe.consolidation.data.ps.logbook.ActivityConsolidateResult> activityLogbookResults,
+ Set<ToolkitIdModifications> localmarketBatchResults) {
this.tripId = tripId;
this.tripLabel = tripLabel;
this.activityObservationResults = activityObservationResults;
+ this.activityLogbookResults = activityLogbookResults;
this.localmarketBatchResults = localmarketBatchResults;
}
@@ -70,21 +78,27 @@ public class TripConsolidateResult implements JsonAware {
return tripLabel;
}
- public Set<ActivityConsolidateResult> getActivityObservationResults() {
+ public Set<fr.ird.observe.consolidation.data.ps.observation.ActivityConsolidateResult> getActivityObservationResults() {
return activityObservationResults;
}
+ public Set<fr.ird.observe.consolidation.data.ps.logbook.ActivityConsolidateResult> getActivityLogbookResults() {
+ return activityLogbookResults;
+ }
+
public Set<ToolkitIdModifications> getLocalmarketBatchResults() {
return localmarketBatchResults;
}
public boolean withModifications() {
- return activityObservationResults.stream().anyMatch(ActivityConsolidateResult::withModifications) ||
+ return activityObservationResults.stream().anyMatch(fr.ird.observe.consolidation.data.ps.observation.ActivityConsolidateResult::withModifications) ||
+ activityLogbookResults.stream().anyMatch(fr.ird.observe.consolidation.data.ps.logbook.ActivityConsolidateResult::withModifications) ||
localmarketBatchResults.stream().anyMatch(ToolkitIdModifications::withModifications);
}
public boolean withWarnings() {
- return activityObservationResults.stream().anyMatch(ActivityConsolidateResult::withWarnings) ||
+ return activityObservationResults.stream().anyMatch(fr.ird.observe.consolidation.data.ps.observation.ActivityConsolidateResult::withWarnings) ||
+ activityLogbookResults.stream().anyMatch(fr.ird.observe.consolidation.data.ps.logbook.ActivityConsolidateResult::withWarnings) ||
localmarketBatchResults.stream().anyMatch(ToolkitIdModifications::withWarnings);
}
}
=====================================
core/api/dto-consolidation/src/main/java/fr/ird/observe/consolidation/data/ps/logbook/ActivityConsolidateResult.java
=====================================
@@ -0,0 +1,99 @@
+package fr.ird.observe.consolidation.data.ps.logbook;
+
+/*-
+ * #%L
+ * ObServe Core :: API :: Dto Consolidation
+ * %%
+ * 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 fr.ird.observe.dto.ToolkitIdModifications;
+import io.ultreia.java4all.util.json.JsonAware;
+
+import java.util.Set;
+
+/**
+ * Created on 12/03/2023.
+ *
+ * @author Tony Chemit - dev(a)tchemit.fr
+ * @since 9.0.28
+ */
+public class ActivityConsolidateResult implements JsonAware {
+
+ /**
+ * Id of activity.
+ */
+ protected String activityId;
+
+ /**
+ * Label of activity.
+ */
+ private String activityLabel;
+
+ /**
+ * All modification on floating objects.
+ */
+ private Set<ToolkitIdModifications> floatingObjectModifications;
+
+ public String getActivityId() {
+ return activityId;
+ }
+
+ public void setActivityId(String activityId) {
+ this.activityId = activityId;
+ }
+
+ public String getActivityLabel() {
+ return activityLabel;
+ }
+
+ public void setActivityLabel(String activityLabel) {
+ this.activityLabel = activityLabel;
+ }
+
+ public Set<ToolkitIdModifications> getFloatingObjectModifications() {
+ return floatingObjectModifications;
+ }
+
+ public void setFloatingObjectModifications(Set<ToolkitIdModifications> floatingObjectModifications) {
+ this.floatingObjectModifications = floatingObjectModifications;
+ }
+
+ public boolean withModifications() {
+ if (getFloatingObjectModifications() != null) {
+ for (ToolkitIdModifications modifications : floatingObjectModifications) {
+ if (modifications.withModifications()) {
+ return true;
+ }
+ }
+ }
+ return false;
+ }
+
+ public boolean withWarnings() {
+ if (getFloatingObjectModifications() != null) {
+ for (ToolkitIdModifications modifications : floatingObjectModifications) {
+ if (modifications.withWarnings()) {
+ return true;
+ }
+ }
+ }
+ return false;
+ }
+}
+
=====================================
core/api/dto-consolidation/src/main/java/fr/ird/observe/consolidation/data/ps/logbook/ActivityConsolidateResultBuilder.java
=====================================
@@ -0,0 +1,63 @@
+package fr.ird.observe.consolidation.data.ps.logbook;
+
+/*-
+ * #%L
+ * ObServe Core :: API :: Dto Consolidation
+ * %%
+ * 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 fr.ird.observe.dto.ToolkitIdModifications;
+
+import java.util.LinkedHashSet;
+import java.util.Optional;
+import java.util.Set;
+
+/**
+ * Created on 12/03/2023.
+ *
+ * @author Tony Chemit - dev(a)tchemit.fr
+ * @since 9.0.28
+ */
+public class ActivityConsolidateResultBuilder {
+ private final Set<ToolkitIdModifications> floatingObjectModificationBuilder = new LinkedHashSet<>();
+ private final String activityLabel;
+ private final String activityId;
+
+ public ActivityConsolidateResultBuilder(String activityId, String activityLabel) {
+ this.activityId = activityId;
+ this.activityLabel = activityLabel;
+ }
+
+ public Optional<ActivityConsolidateResult> build() {
+ boolean noModification = floatingObjectModificationBuilder.isEmpty();
+
+ if (noModification) {
+ return Optional.empty();
+ }
+ ActivityConsolidateResult result = new ActivityConsolidateResult();
+ result.setActivityId(activityId);
+ result.setActivityLabel(activityLabel);
+ result.setFloatingObjectModifications(floatingObjectModificationBuilder);
+ return Optional.of(result);
+ }
+
+ public void flushFloatingObjectModification(ToolkitIdModifications modifications) {
+ floatingObjectModificationBuilder.add(modifications);
+ }
+}
=====================================
core/api/dto-consolidation/src/main/java/fr/ird/observe/consolidation/data/ps/logbook/FloatingObjectActions.java → core/api/dto-consolidation/src/main/java/fr/ird/observe/consolidation/data/ps/logbook/FloatingObjectConsolidateActions.java
=====================================
@@ -23,12 +23,13 @@ package fr.ird.observe.consolidation.data.ps.logbook;
*/
import fr.ird.observe.consolidation.AtomicConsolidateAction;
+import fr.ird.observe.consolidation.data.ps.dcp.CleanComputedValuesAction;
import fr.ird.observe.consolidation.data.ps.dcp.ComputeBiodegradableConsolidateAction;
import fr.ird.observe.consolidation.data.ps.dcp.ComputeNonEntanglingConsolidateAction;
import fr.ird.observe.consolidation.data.ps.dcp.ComputeSimplifiedObjectTypeConsolidateAction;
-import fr.ird.observe.consolidation.data.ps.dcp.FloatingObjectConsolidateAction;
import fr.ird.observe.dto.data.ps.logbook.FloatingObjectDto;
-import fr.ird.observe.dto.data.ps.logbook.FloatingObjectPartDto;
+
+import java.util.List;
/**
* Created on 09/03/2023.
@@ -36,31 +37,26 @@ import fr.ird.observe.dto.data.ps.logbook.FloatingObjectPartDto;
* @author Tony Chemit - dev(a)tchemit.fr
* @since 9.0.27
*/
-public enum FloatingObjectActions implements AtomicConsolidateAction<FloatingObjectConsolidateContext, FloatingObjectDto> {
+public enum FloatingObjectConsolidateActions implements AtomicConsolidateAction<FloatingObjectConsolidateContext, FloatingObjectDto> {
+ CleanComputedValuesWhenArriving(new CleanComputedValuesAction.WhenArriving<>()),
+ CleanComputedValuesWhenLeaving(new CleanComputedValuesAction.WhenLeaving<>()),
ComputeBiodegradableWhenArriving(new ComputeBiodegradableConsolidateAction.WhenArriving<>()),
ComputeBiodegradableWhenLeaving(new ComputeBiodegradableConsolidateAction.WhenLeaving<>()),
-
ComputeNonEntanglingWhenArriving(new ComputeNonEntanglingConsolidateAction.WhenArriving<>()),
ComputeNonEntanglingWhenLeaving(new ComputeNonEntanglingConsolidateAction.WhenLeaving<>()),
-
ComputeSimplifiedObjectTypeWhenArriving(new ComputeSimplifiedObjectTypeConsolidateAction.WhenArriving<>()),
ComputeSimplifiedObjectTypeWhenLeaving(new ComputeSimplifiedObjectTypeConsolidateAction.WhenLeaving<>());
- private final FloatingObjectConsolidateAction<?, FloatingObjectDto, FloatingObjectPartDto, FloatingObjectConsolidateRequest, FloatingObjectConsolidateContext> action;
+ private final AtomicConsolidateAction<FloatingObjectConsolidateContext, FloatingObjectDto> action;
- FloatingObjectActions(FloatingObjectConsolidateAction<?, FloatingObjectDto, FloatingObjectPartDto, FloatingObjectConsolidateRequest, FloatingObjectConsolidateContext> action) {
+ FloatingObjectConsolidateActions(AtomicConsolidateAction<FloatingObjectConsolidateContext, FloatingObjectDto> action) {
this.action = action;
}
@Override
- public String fieldName() {
- return action.fieldName();
- }
-
- @Override
- public String extraFieldName() {
- return action.extraFieldName();
+ public List<String> fieldNames() {
+ return action.fieldNames();
}
@Override
@@ -75,6 +71,6 @@ public enum FloatingObjectActions implements AtomicConsolidateAction<FloatingObj
@Override
public String toString() {
- return FloatingObjectActions.class.getSimpleName() + "." + name();
+ return "ps.logbook." + FloatingObjectConsolidateActions.class.getSimpleName() + "." + name();
}
}
=====================================
core/api/dto-consolidation/src/main/java/fr/ird/observe/consolidation/data/ps/logbook/FloatingObjectConsolidateEngine.java
=====================================
@@ -46,33 +46,43 @@ public class FloatingObjectConsolidateEngine extends FloatingObjectConsolidateEn
return new FloatingObjectConsolidateContext(getSimplifiedObjectTypeManager(), getMonitor(), getDecorator());
}
+ @Override
+ protected AtomicConsolidateAction<FloatingObjectConsolidateContext, FloatingObjectDto> cleanComputedValuesWhenArrivingAction() {
+ return FloatingObjectConsolidateActions.CleanComputedValuesWhenArriving;
+ }
+
+ @Override
+ protected AtomicConsolidateAction<FloatingObjectConsolidateContext, FloatingObjectDto> cleanComputedValuesWhenLeavingAction() {
+ return FloatingObjectConsolidateActions.CleanComputedValuesWhenLeaving;
+ }
+
@Override
protected AtomicConsolidateAction<FloatingObjectConsolidateContext, FloatingObjectDto> computeSimplifiedObjectTypeWhenArrivingAction() {
- return FloatingObjectActions.ComputeSimplifiedObjectTypeWhenArriving;
+ return FloatingObjectConsolidateActions.ComputeSimplifiedObjectTypeWhenArriving;
}
@Override
protected AtomicConsolidateAction<FloatingObjectConsolidateContext, FloatingObjectDto> computeSimplifiedObjectTypeWhenLeavingAction() {
- return FloatingObjectActions.ComputeSimplifiedObjectTypeWhenLeaving;
+ return FloatingObjectConsolidateActions.ComputeSimplifiedObjectTypeWhenLeaving;
}
@Override
protected AtomicConsolidateAction<FloatingObjectConsolidateContext, FloatingObjectDto> computeBiodegradableWhenArrivingAction() {
- return FloatingObjectActions.ComputeBiodegradableWhenArriving;
+ return FloatingObjectConsolidateActions.ComputeBiodegradableWhenArriving;
}
@Override
protected AtomicConsolidateAction<FloatingObjectConsolidateContext, FloatingObjectDto> computeBiodegradableWhenLeavingAction() {
- return FloatingObjectActions.ComputeBiodegradableWhenLeaving;
+ return FloatingObjectConsolidateActions.ComputeBiodegradableWhenLeaving;
}
@Override
protected AtomicConsolidateAction<FloatingObjectConsolidateContext, FloatingObjectDto> computeNonEntanglingWhenArrivingAction() {
- return FloatingObjectActions.ComputeNonEntanglingWhenArriving;
+ return FloatingObjectConsolidateActions.ComputeNonEntanglingWhenArriving;
}
@Override
protected AtomicConsolidateAction<FloatingObjectConsolidateContext, FloatingObjectDto> computeNonEntanglingWhenLeavingAction() {
- return FloatingObjectActions.ComputeNonEntanglingWhenLeaving;
+ return FloatingObjectConsolidateActions.ComputeNonEntanglingWhenLeaving;
}
}
=====================================
core/persistence/consolidation/src/main/java/fr/ird/observe/consolidation/data/ps/common/TripConsolidateEngine.java
=====================================
@@ -26,16 +26,12 @@ import fr.ird.observe.consolidation.data.ps.dcp.SimplifiedObjectTypeManager;
import fr.ird.observe.consolidation.data.ps.localmarket.BatchConsolidateEngine;
import fr.ird.observe.consolidation.data.ps.localmarket.BatchConsolidateRequest;
import fr.ird.observe.consolidation.data.ps.localmarket.GetOptionalRtpMeanWeightImpl;
-import fr.ird.observe.consolidation.data.ps.observation.ActivityConsolidateEngine;
-import fr.ird.observe.consolidation.data.ps.observation.ActivityConsolidateResult;
import fr.ird.observe.decoration.DecoratorService;
import fr.ird.observe.dto.ToolkitIdModifications;
import fr.ird.observe.dto.data.ps.localmarket.BatchDto;
import fr.ird.observe.dto.referential.ReferentialLocale;
import fr.ird.observe.entities.data.ps.common.Trip;
import fr.ird.observe.entities.data.ps.localmarket.Batch;
-import fr.ird.observe.entities.data.ps.observation.Activity;
-import fr.ird.observe.entities.data.ps.observation.Route;
import fr.ird.observe.spi.service.ServiceContext;
import io.ultreia.java4all.decoration.Decorator;
import org.apache.logging.log4j.LogManager;
@@ -56,11 +52,13 @@ public class TripConsolidateEngine {
private static final Logger log = LogManager.getLogger(TripConsolidateEngine.class);
private final ServiceContext context;
private final BatchConsolidateEngine localmarketBatchEngine;
- private final ActivityConsolidateEngine activityConsolidateEngine;
+ private final fr.ird.observe.consolidation.data.ps.observation.ActivityConsolidateEngine observationActivityConsolidateEngine;
+ private final fr.ird.observe.consolidation.data.ps.logbook.ActivityConsolidateEngine logbookActivityConsolidateEngine;
public TripConsolidateEngine(ServiceContext context, SimplifiedObjectTypeManager simplifiedObjectTypeManager) {
this.context = context;
- this.activityConsolidateEngine = new ActivityConsolidateEngine(context, simplifiedObjectTypeManager);
+ this.observationActivityConsolidateEngine = new fr.ird.observe.consolidation.data.ps.observation.ActivityConsolidateEngine(context, simplifiedObjectTypeManager);
+ this.logbookActivityConsolidateEngine = new fr.ird.observe.consolidation.data.ps.logbook.ActivityConsolidateEngine(context, simplifiedObjectTypeManager);
this.localmarketBatchEngine = new BatchConsolidateEngine(new GetOptionalRtpMeanWeightImpl(context), context.getDecoratorService());
}
@@ -76,15 +74,16 @@ public class TripConsolidateEngine {
Set<ToolkitIdModifications> localmarketBatchResults = consolidateLocalmarketBatches(trip, failIfLengthWeightParameterNotFound);
- Set<ActivityConsolidateResult> activityConsolidateResults = consolidateObservationActivities(trip, failIfLengthWeightParameterNotFound, failIfLengthLengthParameterNotFound);
+ Set<fr.ird.observe.consolidation.data.ps.observation.ActivityConsolidateResult> observationActivityConsolidateResults = consolidateObservationActivities(trip, failIfLengthWeightParameterNotFound, failIfLengthLengthParameterNotFound);
+ Set<fr.ird.observe.consolidation.data.ps.logbook.ActivityConsolidateResult> logbookActivityConsolidateResults = consolidateLogbookActivities(trip);
- if (activityConsolidateResults.isEmpty() && localmarketBatchResults.isEmpty()) {
+ if (observationActivityConsolidateResults.isEmpty() && localmarketBatchResults.isEmpty() && logbookActivityConsolidateResults.isEmpty()) {
// no modification, nor warning on this trip
return Optional.empty();
}
decoratorService.installDecorator(Trip.class, trip);
String tripLabel = trip.toString();
- TripConsolidateResult result = new TripConsolidateResult(tripId, tripLabel, activityConsolidateResults, localmarketBatchResults);
+ TripConsolidateResult result = new TripConsolidateResult(tripId, tripLabel, observationActivityConsolidateResults, logbookActivityConsolidateResults, localmarketBatchResults);
if (result.withModifications()) {
log.info(String.format("Found some modifications on trip: %s - %s", tripId, result.getTripLabel()));
}
@@ -123,18 +122,18 @@ public class TripConsolidateEngine {
return result;
}
- private Set<ActivityConsolidateResult> consolidateObservationActivities(Trip trip, boolean failIfLengthWeightParameterNotFound, boolean failIfLengthLengthParameterNotFound) {
- Set<ActivityConsolidateResult> result = new LinkedHashSet<>();
+ private Set<fr.ird.observe.consolidation.data.ps.observation.ActivityConsolidateResult> consolidateObservationActivities(Trip trip, boolean failIfLengthWeightParameterNotFound, boolean failIfLengthLengthParameterNotFound) {
+ Set<fr.ird.observe.consolidation.data.ps.observation.ActivityConsolidateResult> result = new LinkedHashSet<>();
int routeIndex = 0;
int routeMax = trip.getRouteObsSize();
- Decorator routeDecorator = context.getDecoratorService().getDecoratorByType(Route.class);
- for (Route route : trip.getRouteObs()) {
+ Decorator routeDecorator = context.getDecoratorService().getDecoratorByType(fr.ird.observe.entities.data.ps.observation.Route.class);
+ for (fr.ird.observe.entities.data.ps.observation.Route route : trip.getRouteObs()) {
route.registerDecorator(routeDecorator);
- String routePrefix = String.format("Route %s [%s/%s] ", route, ++routeIndex, routeMax);
+ String routePrefix = String.format("Observations - Route %s [%s/%s] ", route, ++routeIndex, routeMax);
log.debug(String.format("%s Start consolidate route: %s", routePrefix, route.getTopiaId()));
int activityIndex = 0;
int activityMax = route.getActivitySize();
- for (Activity activity : route.getActivity()) {
+ for (fr.ird.observe.entities.data.ps.observation.Activity activity : route.getActivity()) {
String activityPrefix = String.format("%s - Activity [%s/%s] ", routePrefix, ++activityIndex, activityMax);
@@ -142,12 +141,41 @@ public class TripConsolidateEngine {
log.debug(String.format("%s Skip activity (No set nor floating object found): %s", activityPrefix, activity.getTopiaId()));
continue;
}
- Optional<ActivityConsolidateResult> activityResult = activityConsolidateEngine.consolidateActivity(trip,
- route,
- activity,
- activityPrefix,
- failIfLengthWeightParameterNotFound,
- failIfLengthLengthParameterNotFound);
+ Optional<fr.ird.observe.consolidation.data.ps.observation.ActivityConsolidateResult> activityResult = observationActivityConsolidateEngine.consolidateActivity(trip,
+ route,
+ activity,
+ activityPrefix,
+ failIfLengthWeightParameterNotFound,
+ failIfLengthLengthParameterNotFound);
+ activityResult.ifPresent(result::add);
+ }
+ }
+ return result;
+ }
+
+ private Set<fr.ird.observe.consolidation.data.ps.logbook.ActivityConsolidateResult> consolidateLogbookActivities(Trip trip) {
+ Set<fr.ird.observe.consolidation.data.ps.logbook.ActivityConsolidateResult> result = new LinkedHashSet<>();
+ int routeIndex = 0;
+ int routeMax = trip.getRouteLogbookSize();
+ Decorator routeDecorator = context.getDecoratorService().getDecoratorByType(fr.ird.observe.entities.data.ps.logbook.Route.class);
+ for (fr.ird.observe.entities.data.ps.logbook.Route route : trip.getRouteLogbook()) {
+ route.registerDecorator(routeDecorator);
+ String routePrefix = String.format("Logbook - Route %s [%s/%s] ", route, ++routeIndex, routeMax);
+ log.debug(String.format("%s Start consolidate route: %s", routePrefix, route.getTopiaId()));
+ int activityIndex = 0;
+ int activityMax = route.getActivitySize();
+ for (fr.ird.observe.entities.data.ps.logbook.Activity activity : route.getActivity()) {
+
+ String activityPrefix = String.format("%s - Activity [%s/%s] ", routePrefix, ++activityIndex, activityMax);
+
+ if (activity.isFloatingObjectEmpty()) {
+ log.debug(String.format("%s Skip activity (No floating object found): %s", activityPrefix, activity.getTopiaId()));
+ continue;
+ }
+ Optional<fr.ird.observe.consolidation.data.ps.logbook.ActivityConsolidateResult> activityResult = logbookActivityConsolidateEngine.consolidateActivity(trip,
+ route,
+ activity,
+ activityPrefix);
activityResult.ifPresent(result::add);
}
}
=====================================
core/persistence/consolidation/src/main/java/fr/ird/observe/consolidation/data/ps/logbook/ActivityConsolidateContext.java
=====================================
@@ -0,0 +1,63 @@
+package fr.ird.observe.consolidation.data.ps.logbook;
+
+/*-
+ * #%L
+ * ObServe Core :: Persistence :: Consolidation
+ * %%
+ * 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 fr.ird.observe.decoration.DecoratorService;
+import fr.ird.observe.dto.ToolkitIdModifications;
+import fr.ird.observe.entities.ObserveTopiaDaoSupplier;
+import fr.ird.observe.entities.data.ps.logbook.Activity;
+import fr.ird.observe.spi.service.ServiceContext;
+
+import java.util.Locale;
+import java.util.Optional;
+
+/**
+ * Created on 12/03/2023.
+ *
+ * @author Tony Chemit - dev(a)tchemit.fr
+ * @since 9.0.28
+ */
+public class ActivityConsolidateContext {
+ public final Locale locale;
+ public final ObserveTopiaDaoSupplier daoSupplier;
+ public final DecoratorService decoratorService;
+ public final String activityPrefix;
+ public final ActivityConsolidateResultBuilder resultBuilder;
+
+ public ActivityConsolidateContext(ServiceContext context, Activity activity, String activityPrefix) {
+ this.activityPrefix = activityPrefix;
+ this.decoratorService = context.getDecoratorService();
+ this.locale = context.getApplicationLocale();
+ this.daoSupplier = (ObserveTopiaDaoSupplier) context.getTopiaPersistenceContext();
+ this.resultBuilder = new ActivityConsolidateResultBuilder(activity.getTopiaId(), activity.toString());
+ }
+
+ public void flushFloatingObject(ToolkitIdModifications modifications) {
+ resultBuilder.flushFloatingObjectModification(modifications);
+ }
+
+ public Optional<ActivityConsolidateResult> buildResult() {
+ return resultBuilder.build();
+ }
+
+}
=====================================
core/persistence/consolidation/src/main/java/fr/ird/observe/consolidation/data/ps/logbook/ActivityConsolidateEngine.java
=====================================
@@ -0,0 +1,144 @@
+package fr.ird.observe.consolidation.data.ps.logbook;
+
+/*-
+ * #%L
+ * ObServe Core :: Persistence :: Consolidation
+ * %%
+ * 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 fr.ird.observe.consolidation.data.ps.dcp.SimplifiedObjectTypeManager;
+import fr.ird.observe.dto.ToolkitIdModifications;
+import fr.ird.observe.dto.data.ActivityAware;
+import fr.ird.observe.dto.data.ps.logbook.FloatingObjectDto;
+import fr.ird.observe.dto.data.ps.logbook.FloatingObjectPartDto;
+import fr.ird.observe.dto.referential.ReferentialLocale;
+import fr.ird.observe.entities.data.ps.common.Trip;
+import fr.ird.observe.entities.data.ps.logbook.Activity;
+import fr.ird.observe.entities.data.ps.logbook.FloatingObject;
+import fr.ird.observe.entities.data.ps.logbook.FloatingObjectPart;
+import fr.ird.observe.entities.data.ps.logbook.Route;
+import fr.ird.observe.spi.service.ServiceContext;
+import io.ultreia.java4all.decoration.Decorator;
+import io.ultreia.java4all.util.Dates;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+
+import java.util.LinkedHashSet;
+import java.util.Optional;
+
+/**
+ * Created on 12/03/2023.
+ *
+ * @author Tony Chemit - dev(a)tchemit.fr
+ * @since 9.0.28
+ */
+public class ActivityConsolidateEngine {
+ private static final Logger log = LogManager.getLogger(ActivityConsolidateEngine.class);
+ private final ServiceContext context;
+ private final FloatingObjectConsolidateEngine floatingObjectConsolidateEngine;
+ private final Decorator activityDecorator;
+
+ public ActivityConsolidateEngine(ServiceContext context, SimplifiedObjectTypeManager simplifiedObjectTypeManager) {
+ this.context = context;
+ this.floatingObjectConsolidateEngine = new FloatingObjectConsolidateEngine(simplifiedObjectTypeManager, context.getDecoratorService());
+ this.activityDecorator = context.getDecoratorService().getDecoratorByType(Activity.class, ActivityAware.CLASSIFIER_WITH_ROUTE);
+ }
+
+ public Optional<ActivityConsolidateResult> consolidateActivity(Trip trip,
+ Route route,
+ Activity activity,
+ String activityPrefix) {
+ if (activity.isFloatingObjectEmpty()) {
+ log.debug(String.format("%s Skip activity (No floating object found): %s", activityPrefix, activity.getTopiaId()));
+ return Optional.empty();
+ }
+ activity.setTime(Dates.getDateAndTime(route.getDate(), activity.getTime(), true, true));
+ activity.registerDecorator(activityDecorator);
+
+ ActivityConsolidateContext activityContext = new ActivityConsolidateContext(context,
+ activity,
+ activityPrefix);
+ try {
+ log.debug(String.format("%s Start consolidate activity: %s", activityContext.activityPrefix, activity.getTopiaId()));
+ if (activity.isFloatingObjectNotEmpty()) {
+ for (FloatingObject floatingObject : activity.getFloatingObject()) {
+ consolidateFloatingObject(activityContext, floatingObject);
+ }
+ }
+ Optional<ActivityConsolidateResult> result = activityContext.buildResult();
+ result.ifPresent(r -> {
+ if (r.withModifications()) {
+ log.info(String.format("%s Found some modifications on activity: %s - %s", activityPrefix, activity.getTopiaId(), r.getActivityLabel()));
+ }
+ if (r.withWarnings()) {
+ log.info(String.format("%s Found some warnings on activity: %s - %s", activityPrefix, activity.getTopiaId(), r.getActivityLabel()));
+ }
+ });
+ return result;
+ } catch (Exception e) {
+ log.error(String.format("%s Could not consolidate trip: %s, route: %s - activity: %s", activityPrefix, trip.getTopiaId(), route.getTopiaId(), activity.getTopiaId()), e);
+ throw e;
+ }
+ }
+
+ private void consolidateFloatingObject(ActivityConsolidateContext activityContext, FloatingObject floatingObject) {
+
+ if (floatingObject.getObjectOperation() == null) {
+ log.warn("**********************");
+ log.warn(String.format("Floating object %s has no object operation....", floatingObject.getTopiaId()));
+ log.warn("**********************");
+ return;
+ }
+
+ ReferentialLocale referentialLocale = context.getReferentialLocale();
+
+ FloatingObjectDto floatingObjectDto = FloatingObject.toDto(referentialLocale, floatingObject);
+
+ java.util.Set<FloatingObjectPartDto> floatingObjectPartSet = new LinkedHashSet<>(FloatingObjectPart.SPI.toDataDtoList(referentialLocale, floatingObject.getFloatingObjectPart()));
+ FloatingObjectConsolidateRequest request = new FloatingObjectConsolidateRequest(floatingObjectDto, floatingObjectPartSet);
+ Optional<ToolkitIdModifications> result = floatingObjectConsolidateEngine.consolidate(request);
+
+ result.ifPresent(r -> {
+ // flush to main result
+ activityContext.flushFloatingObject(r);
+ // flush back modifications detected to entity
+ r.flushToBean(floatingObject);
+ });
+
+ if (request.isNeedClean()) {
+ log.warn("**********************");
+ log.warn(String.format("Floating object %s has some bad parts, this will be fixed here....", floatingObject.getTopiaId()));
+ log.warn("**********************");
+ // Need to clean dcp parts
+ boolean notWhenArriving = !floatingObject.getObjectOperation().isWhenArriving();
+ boolean notWhenLeaving = !floatingObject.getObjectOperation().isWhenLeaving();
+ for (FloatingObjectPart floatingObjectPart : floatingObject.getFloatingObjectPart()) {
+ if (floatingObjectPart.getWhenArriving() != null && notWhenArriving) {
+ log.info(String.format("Set whenArriving to null for part: %s", floatingObjectPart.getTopiaId()));
+ floatingObjectPart.setWhenArriving(null);
+ }
+ if (floatingObjectPart.getWhenLeaving() != null && notWhenLeaving) {
+ log.info(String.format("Set whenLeaving to null for part: %s", floatingObjectPart.getTopiaId()));
+ floatingObjectPart.setWhenLeaving(null);
+ }
+ }
+ }
+ }
+
+}
=====================================
core/services/test/src/main/java/fr/ird/observe/services/service/data/ps/ConsolidateDataServiceFixtures.java
=====================================
@@ -28,7 +28,6 @@ import fr.ird.observe.consolidation.data.ps.common.TripConsolidateResult;
import fr.ird.observe.consolidation.data.ps.dcp.SimplifiedObjectTypeManager;
import fr.ird.observe.consolidation.data.ps.dcp.SimplifiedObjectTypeSpecializedRules;
import fr.ird.observe.consolidation.data.ps.localmarket.BatchConsolidateRequest;
-import fr.ird.observe.consolidation.data.ps.observation.ActivityConsolidateResult;
import fr.ird.observe.decoration.DecoratorService;
import fr.ird.observe.dto.ToolkitIdModifications;
import fr.ird.observe.dto.data.ps.localmarket.BatchDto;
@@ -210,9 +209,11 @@ public class ConsolidateDataServiceFixtures extends GeneratedConsolidateDataServ
TripConsolidateResult actual = service.consolidateTrip(simplifiedObjectTypeSpecializedRules, request);
Assert.assertNotNull(actual);
Assert.assertNotNull(actual.getActivityObservationResults());
+ Assert.assertNotNull(actual.getActivityLogbookResults());
+ Assert.assertEquals(0, actual.getActivityLogbookResults().size());
Assert.assertEquals(getIntegerProperty("consolidateTrip.activityResult.count"), actual.getActivityObservationResults().size());
- Assert.assertEquals(getIntegerProperty("consolidateTrip.activityResult.withModifications.count"), actual.getActivityObservationResults().stream().filter(ActivityConsolidateResult::withModifications).count());
- Assert.assertEquals(getIntegerProperty("consolidateTrip.activityResult.withWarnings.count"), actual.getActivityObservationResults().stream().filter(ActivityConsolidateResult::withWarnings).count());
+ Assert.assertEquals(getIntegerProperty("consolidateTrip.activityResult.withModifications.count"), actual.getActivityObservationResults().stream().filter(fr.ird.observe.consolidation.data.ps.observation.ActivityConsolidateResult::withModifications).count());
+ Assert.assertEquals(getIntegerProperty("consolidateTrip.activityResult.withWarnings.count"), actual.getActivityObservationResults().stream().filter(fr.ird.observe.consolidation.data.ps.observation.ActivityConsolidateResult::withWarnings).count());
}
}
=====================================
pom.xml
=====================================
@@ -1244,7 +1244,8 @@
</reportSet>
</reportSets>
</plugin>
- <plugin>
+ <!-- FIXME Need some work before javadoc is fine-->
+ <!--plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>${plugin.version.javadoc}</version>
@@ -1256,7 +1257,7 @@
</reports>
</reportSet>
</reportSets>
- </plugin>
+ </plugin-->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jxr-plugin</artifactId>
=====================================
src/site/markdown/consolidation.md
=====================================
@@ -0,0 +1,295 @@
+# Consolidation
+
+Ce document décrit les règles de calcul utilisées lors de l'opération de consolidation.
+
+## Modèle commun
+
+Pour le moment aucune consolidation n'est effectiée sur ce modèle.
+
+## Modèle Palangre
+
+Pour le moment aucune consolidation n'est effectiée sur ce modèle.
+
+## Modèle Senne
+
+### Paquetage Commun
+
+Pour le moment aucune consolidation n'est effectiée sur ce paquetage.
+
+### Paquetage Livre de Bord
+
+#### Entité Objet flottant (ps.logbook.FloatingObject)
+
+[Code source](./core/core-api/core-api-dto-consolidation/xref/fr/ird/observe/consolidation/data/ps/logbook/FloatingObjectConsolidateActions.html#FloatingObjectConsolidateActions)
+
+| Code | Champs |
+|:----------------------------------------------------------------------------|:----------------------------------------------------------------------------------------------------------------------|
+| ps.logbook.FloatingObjectConsolidateActions.CleanComputedValuesWhenArriving | computedWhenArrivingBiodegradable <br/>computedWhenArrivingNonEntangling<br/>computedWhenArrivingSimplifiedObjectType |
+
+Si l'objet flottant n'est pas actif sur l'arrivée, alors supprimer toutes les données calculées sur l'arrivée.
+
+[Code source](./core/core-api/core-api-dto-consolidation/xref/fr/ird/observe/consolidation/data/ps/dcp/CleanComputedValuesAction.html)
+
+| Code | Champs |
+|:---------------------------------------------------------------------------|:------------------------------------------------------------------------------------------------------------------|
+| ps.logbook.FloatingObjectConsolidateActions.CleanComputedValuesWhenLeaving | computedWhenLeavingBiodegradable<br/>computedWhenLeavingNonEntangling<br/>computedWhenLeavingSimplifiedObjectType |
+
+Si l'objet flottant n'est pas actif sur le départ, alors supprimer toutes les données calculées sur le départ.
+
+[Code source](./core/core-api/core-api-dto-consolidation/xref/fr/ird/observe/consolidation/data/ps/dcp/CleanComputedValuesAction.html)
+
+| Code | Champs |
+|:-----------------------------------------------------------------------------|:----------------------------------|
+| ps.logbook.FloatingObjectConsolidateActions.ComputeBiodegradableWhenArriving | computedWhenArrivingBiodegradable |
+
+Calcul de la propriété **computedWhenArrivingBiodegradable** à partir des matériaux sur l'arrivée.
+
+[Code source](./core/core-api/core-api-dto-consolidation/xref/fr/ird/observe/consolidation/data/ps/dcp/ComputeBiodegradableConsolidateAction.html)
+
+| Code | Champs |
+|:----------------------------------------------------------------------------|:---------------------------------|
+| ps.logbook.FloatingObjectConsolidateActions.ComputeBiodegradableWhenLeaving | computedWhenLeavingBiodegradable |
+
+Calcul de la propriété **computedWhenLeavingBiodegradable** à partir des matériaux sur le départ.
+
+[Code source](./core/core-api/core-api-dto-consolidation/xref/fr/ird/observe/consolidation/data/ps/dcp/ComputeBiodegradableConsolidateAction.html)
+
+| Code | Champs |
+|:-----------------------------------------------------------------------------|:----------------------------------|
+| ps.logbook.FloatingObjectConsolidateActions.ComputeNonEntanglingWhenArriving | computedWhenArrivingNonEntangling |
+
+Calcul de la propriété **computedWhenArrivingNonEntangling** à partir des matériaux sur l'arrivée.
+
+[Code source](./core/core-api/core-api-dto-consolidation/xref/fr/ird/observe/consolidation/data/ps/dcp/ComputeNonEntanglingConsolidateAction.html)
+
+| Code | Champs |
+|:----------------------------------------------------------------------------|:---------------------------------|
+| ps.logbook.FloatingObjectConsolidateActions.ComputeNonEntanglingWhenLeaving | computedWhenLeavingNonEntangling |
+
+Calcul de la propriété **computedWhenLeavingNonEntangling** à partir des matériaux sur le départ.
+
+[Code source](./core/core-api/core-api-dto-consolidation/xref/fr/ird/observe/consolidation/data/ps/dcp/ComputeNonEntanglingConsolidateAction.html)
+
+| Code | Champs |
+|:------------------------------------------------------------------------------------|:-----------------------------------------|
+| ps.logbook.FloatingObjectConsolidateActions.ComputeSimplifiedObjectTypeWhenArriving | computedWhenArrivingSimplifiedObjectType |
+
+Calcul de la propriété **computedWhenArrivingSimplifiedObjectType** à partir des matériaux sur l'arrivée.
+
+[Code source](./core/core-api/core-api-dto-consolidation/xref/fr/ird/observe/consolidation/data/ps/dcp/ComputeSimplifiedObjectTypeConsolidateAction.html)
+
+| Code | Champs |
+|:-----------------------------------------------------------------------------------|:----------------------------------------|
+| ps.logbook.FloatingObjectConsolidateActions.ComputeSimplifiedObjectTypeWhenLeaving | computedWhenLeavingSimplifiedObjectType |
+
+Calcul de la propriété **computedWhenLeavingSimplifiedObjectType** à partir des matériaux sur le départ.
+
+[Code source](./core/core-api/core-api-dto-consolidation/xref/fr/ird/observe/consolidation/data/ps/dcp/ComputeSimplifiedObjectTypeConsolidateAction.html)
+
+### Paquetage Observations
+
+#### Entité Calée (ps.observation.Set)
+
+[Code source](./core/core-persistence/core-persistence-consolidation/xref/fr/ird/observe/consolidation/data/ps/observation/SetConsolidateActions.html#SetConsolidateActions)
+
+| Code | Champs |
+|:-------------------------------------------------------|:-----------|
+| ps.observation.SetConsolidateActions.ComputeSchoolType | SchoolType |
+
+Calcul du type de banc à partir des systèmes observés de l'activité.
+
+#### Entité Objet flottant (ps.observation.FloatingObject)
+
+[Code source](./core/core-api/core-api-dto-consolidation/xref/fr/ird/observe/consolidation/data/ps/observation/FloatingObjectConsolidateActions.html#FloatingObjectConsolidateActions)
+
+| Code | Champs |
+|:--------------------------------------------------------------------------------|:----------------------------------------------------------------------------------------------------------------------|
+| ps.observation.FloatingObjectConsolidateActions.CleanComputedValuesWhenArriving | computedWhenArrivingBiodegradable <br/>computedWhenArrivingNonEntangling<br/>computedWhenArrivingSimplifiedObjectType |
+
+Si l'objet flottant n'est pas actif sur l'arrivée, alors supprimer toutes les données calculées sur l'arrivée.
+
+[Code source](./core/core-api/core-api-dto-consolidation/xref/fr/ird/observe/consolidation/data/ps/dcp/CleanComputedValuesAction.html)
+
+| Code | Champs |
+|:-------------------------------------------------------------------------------|:------------------------------------------------------------------------------------------------------------------|
+| ps.observation.FloatingObjectConsolidateActions.CleanComputedValuesWhenLeaving | computedWhenLeavingBiodegradable<br/>computedWhenLeavingNonEntangling<br/>computedWhenLeavingSimplifiedObjectType |
+
+Si l'objet flottant n'est pas actif sur le départ, alors supprimer toutes les données calculées sur le départ.
+
+[Code source](./core/core-api/core-api-dto-consolidation/xref/fr/ird/observe/consolidation/data/ps/dcp/CleanComputedValuesAction.html)
+
+| Code | Champs |
+|:---------------------------------------------------------------------------------|:----------------------------------|
+| ps.observation.FloatingObjectConsolidateActions.ComputeBiodegradableWhenArriving | computedWhenArrivingBiodegradable |
+
+Calcul de la propriété **computedWhenArrivingBiodegradable** à partir des matériaux sur l'arrivée.
+
+[Code source](./core/core-api/core-api-dto-consolidation/xref/fr/ird/observe/consolidation/data/ps/dcp/ComputeBiodegradableConsolidateAction.html)
+
+| Code | Champs |
+|:--------------------------------------------------------------------------------|:---------------------------------|
+| ps.observation.FloatingObjectConsolidateActions.ComputeBiodegradableWhenLeaving | computedWhenLeavingBiodegradable |
+
+Calcul de la propriété **computedWhenLeavingBiodegradable** à partir des matériaux sur le départ.
+
+[Code source](./core/core-api/core-api-dto-consolidation/xref/fr/ird/observe/consolidation/data/ps/dcp/ComputeBiodegradableConsolidateAction.html)
+
+| Code | Champs |
+|:---------------------------------------------------------------------------------|:----------------------------------|
+| ps.observation.FloatingObjectConsolidateActions.ComputeNonEntanglingWhenArriving | computedWhenArrivingNonEntangling |
+
+Calcul de la propriété **computedWhenArrivingNonEntangling** à partir des matériaux sur l'arrivée.
+
+[Code source](./core/core-api/core-api-dto-consolidation/xref/fr/ird/observe/consolidation/data/ps/dcp/ComputeNonEntanglingConsolidateAction.html)
+
+| Code | Champs |
+|:--------------------------------------------------------------------------------|:---------------------------------|
+| ps.observation.FloatingObjectConsolidateActions.ComputeNonEntanglingWhenLeaving | computedWhenLeavingNonEntangling |
+
+Calcul de la propriété **computedWhenLeavingNonEntangling** à partir des matériaux sur le départ.
+
+[Code source](./core/core-api/core-api-dto-consolidation/xref/fr/ird/observe/consolidation/data/ps/dcp/ComputeNonEntanglingConsolidateAction.html)
+
+| Code | Champs |
+|:----------------------------------------------------------------------------------------|:-----------------------------------------|
+| ps.observation.FloatingObjectConsolidateActions.ComputeSimplifiedObjectTypeWhenArriving | computedWhenArrivingSimplifiedObjectType |
+
+Calcul de la propriété **computedWhenArrivingSimplifiedObjectType** à partir des matériaux sur l'arrivée.
+
+[Code source](./core/core-api/core-api-dto-consolidation/xref/fr/ird/observe/consolidation/data/ps/dcp/ComputeSimplifiedObjectTypeConsolidateAction.html)
+
+| Code | Champs |
+|:---------------------------------------------------------------------------------------|:----------------------------------------|
+| ps.observation.FloatingObjectConsolidateActions.ComputeSimplifiedObjectTypeWhenLeaving | computedWhenLeavingSimplifiedObjectType |
+
+Calcul de la propriété **computedWhenLeavingSimplifiedObjectType** à partir des matériaux sur le départ.
+
+[Code source](./core/core-api/core-api-dto-consolidation/xref/fr/ird/observe/consolidation/data/ps/dcp/ComputeSimplifiedObjectTypeConsolidateAction.html)
+
+#### Entité Capture (ps.observation.Catch)
+
+[Code source](./core/core-persistence/core-persistence-consolidation/xref/fr/ird/observe/consolidation/data/ps/observation/CatchConsolidateActions.html#CatchConsolidateActions)
+
+| Code | Champs |
+|:-----------------------------------------------------------------------|:----------------------------------------|
+| ps.observation.CatchConsolidateActions.ComputeMeanLengthFromMeanWeight | meanLength<br/>meanLengthComputedSource |
+
+Pour calculer la taille moyenne de la capture à partir du poids moyen de la capture et du RTP adéquate.
+
+La propriété calculée sera *CatchComputedValueSource.fromData*.
+
+| Code | Champs |
+|:-----------------------------------------------------------------------|:----------------------------------------|
+| ps.observation.CatchConsolidateActions.ComputeMeanWeightFromMeanLength | meanWeight<br/>meanWeightComputedSource |
+
+Pour calculer le poids moyen de la capture à partir de la taille moyenne de la capture et du RTP adéquate.
+
+La propriété calculée sera *CatchComputedValueSource.fromData*.
+
+| Code | Champs |
+|:-------------------------------------------------------------------------------------|:------------------------------------------|
+| ps.observation.CatchConsolidateActions.ComputeCatchWeightFromTotalCountAndMeanWeight | catchWeight<br/>catchWeightComputedSource |
+
+Pour calculer le poids total de la capture à partir du poids moyen et de l'effectif de la capture.
+
+La propriété calculée sera *CatchComputedValueSource.fromData*.
+
+| Code | Champs |
+|:-------------------------------------------------------------------------------------|:----------------------------------------|
+| ps.observation.CatchConsolidateActions.ComputeTotalCountFromCatchWeightAndMeanWeight | totalCount<br/>totalCountComputedSource |
+
+Pour calculer l'effectif de la capture à partir du poids total et moyen de la capture.
+
+La propriété calculée sera *CatchComputedValueSource.fromData*.
+
+| Code | Champs |
+|:-------------------------------------------------------------------------------------|:----------------------------------------|
+| ps.observation.CatchConsolidateActions.ComputeMeanWeightFromTotalCountAndCatchWeight | meanWeight<br/>meanWeightComputedSource |
+
+Pour calculer la taille moyenne à partir du poids total et de l'effectif de la capture.
+
+La propriété calculée sera *CatchComputedValueSource.fromData*.
+
+| Code | Champs |
+|:-------------------------------------------------------------------|:----------------------------------------|
+| ps.observation.CatchConsolidateActions.CopyMeanLengthFromParameter | meanLength<br/>meanLengthComputedSource |
+
+Pour recopier la taille moyenne du RTP adéquate.
+
+La propriété calculée sera *CatchComputedValueSource.fromReferentiel*.
+
+| Code | Champs |
+|:-------------------------------------------------------------------|:----------------------------------------|
+| ps.observation.CatchConsolidateActions.CopyMeanWeightFromParameter | meanWeight<br/>meanWeightComputedSource |
+
+Pour recopier le poids moyen du RTP adéquate.
+
+La propriété calculée sera *CatchComputedValueSource.fromReferentiel*.
+
+| Code | Champs |
+|:--------------------------------------------------------------------|:----------------------------------------|
+| ps.observation.CatchConsolidateActions.ComputeMeanLengthFromSamples | meanLength<br/>meanLengthComputedSource |
+
+Pour calculer la taille moyenne à partir des tailles moyennes des échantillons associés.
+
+La propriété calculée sera *CatchComputedValueSource.fromSample*.
+
+| Code | Champs |
+|:--------------------------------------------------------------------|:----------------------------------------|
+| ps.observation.CatchConsolidateActions.ComputeTotalCountFromSamples | totalCount<br/>totalCountComputedSource |
+
+Pour calculer l'effectif de la capture à partir des effectifs des échantillons associés.
+
+La propriété calculée sera *CatchComputedValueSource.fromSample*.
+
+| Code | Champs |
+|:---------------------------------------------------------------------|:--------------------|
+| ps.observation.CatchConsolidateActions.CleanCatchWeightMeasureMethod | weightMeasureMethod |
+
+Pour supprimer la méthode de mesure de poids si le poids a été calculé ou qu'il n'y a pas de poids.
+
+#### Entité Échantillon (ps.observation.SampleMeasure)
+
+[Code source](./core/core-persistence/core-persistence-consolidation/xref/fr/ird/observe/consolidation/data/ps/observation/SampleMeasureConsolidateActions.html#SampleMeasureConsolidateActions)
+
+| Code | Champs |
+|:-----------------------------------------------------------------------|:----------------------------|
+| ps.observation.SampleMeasureConsolidateActions.ComputeLengthFromWeight | length<br/>isLengthComputed |
+
+Calcul de la taille depuis le poids en utilisant la RTP adéquate.
+
+| Code | Champs |
+|:-----------------------------------------------------------------------|:----------------------------|
+| ps.observation.SampleMeasureConsolidateActions.ComputeWeightFromLength | weight<br/>isWeightComputed |
+
+Calcul du poids depuis la taille en utilisant la RTP adéquate.
+
+### Paquetage Marché local
+
+#### Entité Lot (ps.localmarket.Batch)
+
+[Code source](./core/core-api/core-api-dto-consolidation/xref/fr/ird/observe/consolidation/data/ps/localmarket/BatchConsolidateActions.html#BatchConsolidateActions)
+
+| Code | Champs |
+|:--------------------------------------------------------------------------|:--------------------------------|
+| ps.localmarket.BatchConsolidateActions.ComputeWeightFromSpeciesMeanWeight | weight<br/>weightComputedSource |
+
+Si le conditionnement est de type **Espèce unité**, on calcule alors le poids à partir du poids moyen du
+conditionnement (si celui est défini) et de l'effectif du lot.
+
+La propriété calculée sera *BatchWeightComputedValueSource.fromSpeciesMeanWeight*.
+
+| Code | Champs |
+|:----------------------------------------------------------------------------|:--------------------------------|
+| ps.localmarket.BatchConsolidateActions.ComputeWeightFromPackagingMeanWeight | weight<br/>weightComputedSource |
+
+Si le conditionnement est de type **Conditionnement non pesé**, on calcule alors le poids à partir du poids moyen de
+l'espèce de la RTP adéquate (si celle-ci est définie) et de l'effectif du lot.
+
+La propriété calculée sera *BatchWeightComputedValueSource.fromPackagingMeanWeight*.
+
+| Code | Champs |
+|:---------------------------------------------------------|:--------------------------------|
+| ps.localmarket.BatchConsolidateActions.ResetWeightValues | weight<br/>weightComputedSource |
+
+Dans les autres cas, on supprime tout simplement le poids car on ne peut pas le calculer.
\ No newline at end of file
=====================================
src/site/markdown/index.md
=====================================
@@ -14,6 +14,7 @@ Le logiciel *ObServe*... **TODO**
- [Configuration client](./observe-client.html)
- [Configuration server](./observe-server.html)
- [Documentation de l'outil de reporting](./report/index.html)
+- [Documentation de l'outil de consolidation](./consolidation.html)
=====================================
src/site/site.xml
=====================================
@@ -86,6 +86,7 @@
<item name="Configuration (fichier d'exemple)" target="_blank" href="./observe-client.conf"/>
<item name="Filtrage des référentiels" href="./referential-filter.html"/>
<item name="Synchronisation référentiel avancée" href="./synchro-referential.html"/>
+ <item name="Consolidation des données" href="./consolidation.html"/>
<item name="Outil de reporting" href="./report/index.html">
<item name="Syntaxe d'un rapport" href="./report/syntax.html"/>
<item name="Opérations disponibles pour un rapport" href="./report/embedded-operations.html"/>
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/compare/fde6973c9aaa6eb11242779b…
--
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/compare/fde6973c9aaa6eb11242779b…
You're receiving this email because of your account on gitlab.com.
1
0