Observe-commits
Threads by month
- ----- 2026 -----
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2025 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
March 2024
- 1 participants
- 42 discussions
[Git][ultreiaio/ird-observe][develop] 11 commits: update pom
by Tony CHEMIT (@tchemit) March 29, 2024
by Tony CHEMIT (@tchemit) March 29, 2024
March 29, 2024
Tony CHEMIT pushed to branch develop at ultreiaio / ird-observe
Commits:
69444bb6 by Tony Chemit at 2024-03-29T09:35:21+01:00
update pom
- - - - -
91cfc7bc by Tony Chemit at 2024-03-29T09:35:21+01:00
fix Observations - Types d'activités par zones FPA report (missing GroupBy for postgresql)
- - - - -
dc0261ca by Tony Chemit at 2024-03-29T09:35:21+01:00
Fix save step when simple referential synchronize (was using a not open data source)
- - - - -
a4fdf628 by Tony Chemit at 2024-03-29T09:35:21+01:00
Checks parameters in generated services local
- - - - -
2d63583a by Tony Chemit at 2024-03-29T09:35:21+01:00
Improve webmotion injectors, jsonAware one can now return null value
- - - - -
9afbc1fe by Tony Chemit at 2024-03-29T09:35:21+01:00
Synchro avancée données - Mise à jour de l'arbre de sélection après avoir enregistrer des actions
- - - - -
3a91649e by Tony Chemit at 2024-03-29T09:35:21+01:00
Amélioration de la gestion des services non connectés (See ultreiaio/http#65)
- - - - -
8d35e222 by Tony Chemit at 2024-03-29T09:35:21+01:00
Correction du nombre d'étapes sur l'assistant de consolidation
- - - - -
e5cfd497 by Tony Chemit at 2024-03-29T09:35:21+01:00
Add onEndAction method to report end of action + add initProgressModel method
- - - - -
20c90236 by Tony Chemit at 2024-03-29T09:35:21+01:00
Introduce maven module core-api-dto-pairing (coming from core-api-dto)
- - - - -
b8e4e732 by Tony Chemit at 2024-03-29T09:46:56+01:00
stash
- - - - -
30 changed files:
- client/core/src/main/java/fr/ird/observe/client/datasource/api/data/DataManager.java
- client/datasource/actions/pom.xml
- client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/AdminActionModel.java
- client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/actions/AdminTabUIActionSupport.java
- client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/consolidate/actions/Start.java
- client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/export/actions/Start.java
- client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/pairing/actions/Prepare.java
- client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/pairing/actions/Start.java
- client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/save/actions/Start.java
- client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/synchronize/data/DataSynchroModel.java
- client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/synchronize/data/DataSynchroUI.jaxx
- client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/synchronize/data/DataSynchroUIHandler.java
- client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/synchronize/data/actions/Apply.java
- client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/synchronize/data/actions/Start.java
- client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/synchronize/data/tree/DataSelectionTreePane.jaxx
- client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/synchronize/data/tree/DataSelectionTreePaneHandler.java
- client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/synchronize/data/tree/DataSelectionTreePaneModel.java
- client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/synchronize/data/tree/actions/DataSelectionTreePaneActionSupport.java
- client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/synchronize/data/tree/actions/RegisterCopy.java
- client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/synchronize/data/tree/actions/RegisterDelete.java
- client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/synchronize/referential/legacy/SynchronizeModel.java
- client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/synchronize/referential/legacy/actions/Apply.java
- client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/synchronize/referential/legacy/actions/Start.java
- client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/synchronize/referential/legacy/actions/SynchroUIActionSupport.java
- client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/synchronize/referential/ng/ReferentialSynchroModel.java
- client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/synchronize/referential/ng/actions/Apply.java
- client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/synchronize/referential/ng/tree/ReferentialSynchronizeTreeModelsBuilder.java
- client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/synchronize/referential/ng/tree/actions/RegisterTaskActionSupport.java
- client/datasource/editor/ll/pom.xml
- client/datasource/editor/ps/pom.xml
The diff was not included because it is too large.
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/compare/628bc80ff539ab2a5d0e7be3…
--
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/compare/628bc80ff539ab2a5d0e7be3…
You're receiving this email because of your account on gitlab.com.
1
0
[Git][ultreiaio/ird-observe][develop] 11 commits: update pom
by Tony CHEMIT (@tchemit) March 26, 2024
by Tony CHEMIT (@tchemit) March 26, 2024
March 26, 2024
Tony CHEMIT pushed to branch develop at ultreiaio / ird-observe
Commits:
febf5eaa by Tony Chemit at 2024-03-26T11:04:44+01:00
update pom
- - - - -
f1a8d65c by Tony Chemit at 2024-03-26T11:04:44+01:00
fix Observations - Types d'activités par zones FPA report (missing GroupBy for postgresql)
- - - - -
098ecd63 by Tony Chemit at 2024-03-26T11:04:44+01:00
Fix save step when simple referential synchronize (was using a not open data source)
- - - - -
e30fcdc9 by Tony Chemit at 2024-03-26T11:04:44+01:00
Checks parameters in generated services local
- - - - -
bbfa841a by Tony Chemit at 2024-03-26T11:04:44+01:00
Improve webmotion injectors, jsonAware one can now return null value
- - - - -
698a7ba0 by Tony Chemit at 2024-03-26T11:04:44+01:00
Synchro avancée données - Mise à jour de l'arbre de sélection après avoir enregistrer des actions
- - - - -
dea30490 by Tony Chemit at 2024-03-26T11:04:44+01:00
Amélioration de la gestion des services non connectés (See ultreiaio/http#65)
- - - - -
7940101c by Tony Chemit at 2024-03-26T11:04:44+01:00
Correction du nombre d'étapes sur l'assistant de consolidation
- - - - -
5a42908f by Tony Chemit at 2024-03-26T11:04:44+01:00
Add onEndAction method to report end of action + add initProgressModel method
- - - - -
40d0c6e4 by Tony Chemit at 2024-03-26T11:04:44+01:00
Introduce maven module core-api-dto-pairing (coming from core-api-dto)
- - - - -
628bc80f by Tony Chemit at 2024-03-26T11:55:23+01:00
stash
- - - - -
30 changed files:
- client/datasource/actions/pom.xml
- client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/AdminActionModel.java
- client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/actions/AdminTabUIActionSupport.java
- client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/consolidate/actions/Start.java
- client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/export/actions/Start.java
- client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/pairing/actions/Prepare.java
- client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/pairing/actions/Start.java
- client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/save/actions/Start.java
- client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/synchronize/data/DataSynchroModel.java
- client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/synchronize/data/DataSynchroUI.jaxx
- client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/synchronize/data/DataSynchroUIHandler.java
- client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/synchronize/data/actions/Apply.java
- client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/synchronize/data/actions/Start.java
- client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/synchronize/data/tree/DataSelectionTreePane.jaxx
- client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/synchronize/data/tree/DataSelectionTreePaneHandler.java
- client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/synchronize/data/tree/DataSelectionTreePaneModel.java
- client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/synchronize/data/tree/actions/DataSelectionTreePaneActionSupport.java
- client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/synchronize/data/tree/actions/RegisterCopy.java
- client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/synchronize/data/tree/actions/RegisterDelete.java
- client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/synchronize/referential/legacy/SynchronizeModel.java
- client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/synchronize/referential/legacy/actions/Apply.java
- client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/synchronize/referential/legacy/actions/Start.java
- client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/synchronize/referential/legacy/actions/SynchroUIActionSupport.java
- client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/synchronize/referential/ng/actions/Apply.java
- client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/synchronize/referential/ng/tree/actions/RegisterTaskActionSupport.java
- client/datasource/editor/ll/pom.xml
- client/datasource/editor/ps/pom.xml
- core/api/dto-decoration/pom.xml
- + core/api/dto-pairing/.mvn/add-auto-service
- + core/api/dto-pairing/.mvn/i18n/parse-java
The diff was not included because it is too large.
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/compare/cf32dd6fd057ef48b7913b2c…
--
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/compare/cf32dd6fd057ef48b7913b2c…
You're receiving this email because of your account on gitlab.com.
1
0
[Git][ultreiaio/ird-observe][develop] 6 commits: update pom
by Tony CHEMIT (@tchemit) March 21, 2024
by Tony CHEMIT (@tchemit) March 21, 2024
March 21, 2024
Tony CHEMIT pushed to branch develop at ultreiaio / ird-observe
Commits:
23507f24 by Tony Chemit at 2024-03-21T14:54:48+01:00
update pom
- - - - -
4e2aa441 by Tony Chemit at 2024-03-21T14:54:48+01:00
fix Observations - Types d'activités par zones FPA report (missing GroupBy for postgresql)
- - - - -
edd00f7a by Tony Chemit at 2024-03-21T14:54:48+01:00
Fix save step when simple referential synchronize (was using a not open data source)
- - - - -
1cf5f9f1 by Tony Chemit at 2024-03-21T14:54:48+01:00
Checks parameters in generated services local
- - - - -
f64c2710 by Tony Chemit at 2024-03-21T14:54:48+01:00
Improve webmotion injectors, jsonAware one can now return null value
- - - - -
cf32dd6f by Tony Chemit at 2024-03-21T14:54:48+01:00
Synchro avancée données - Mise à jour de l'arbre de sélection après avoir enregistrer des actions
- - - - -
22 changed files:
- client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/save/actions/Start.java
- client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/synchronize/data/DataSynchroModel.java
- client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/synchronize/data/DataSynchroUI.jaxx
- client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/synchronize/data/DataSynchroUIHandler.java
- client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/synchronize/data/actions/Apply.java
- client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/synchronize/data/actions/Start.java
- client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/synchronize/data/tree/DataSelectionTreePane.jaxx
- client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/synchronize/data/tree/DataSelectionTreePaneHandler.java
- client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/synchronize/data/tree/DataSelectionTreePaneModel.java
- client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/synchronize/data/tree/actions/DataSelectionTreePaneActionSupport.java
- client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/synchronize/data/tree/actions/RegisterCopy.java
- client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/synchronize/data/tree/actions/RegisterDelete.java
- core/persistence/report/src/main/resources/META-INF/report/default/ps/psObservationActivitiesByZone.report
- pom.xml
- server/core/src/main/java/fr/ird/observe/server/injector/JsonAwareDtoInjector.java
- toolkit/api/src/main/java/fr/ird/observe/navigation/tree/ToolkitTreeModelSupport.java
- toolkit/api/src/main/java/fr/ird/observe/navigation/tree/io/ToolkitTreeFlatModel.java
- toolkit/api/src/main/java/fr/ird/observe/navigation/tree/selection/SelectionTreeModelSupport.java
- toolkit/plugin/src/main/java/fr/ird/observe/toolkit/maven/plugin/service/ServiceGenerateLocalRunner.java
- toolkit/plugin/src/main/java/fr/ird/observe/toolkit/maven/plugin/service/ServiceLocalMethodDescriptionImpl.java
- toolkit/server/src/main/java/org/debux/webmotion/server/handler/injector/CollectionInjector.java
- toolkit/server/src/main/java/org/debux/webmotion/server/handler/injector/JsonInjector.java
Changes:
=====================================
client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/save/actions/Start.java
=====================================
@@ -93,7 +93,7 @@ public class Start extends SaveLocalUIActionSupport {
stepModel.getClientConfig().updateBackupDirectory(backupFile);
}
if (stepModel.containsStepForSave(AdminStep.SYNCHRONIZE)) {
- saveUnidirectionalSynchronizeReferential();
+ saveUnidirectionalSynchronizeReferential(source);
}
sendMessage(t("observe.ui.datasource.editor.actions.operation.message.done", new Date(), Strings.convertTime(TimeLog.getTime() - t00)));
}
@@ -102,7 +102,7 @@ public class Start extends SaveLocalUIActionSupport {
}
- private void saveUnidirectionalSynchronizeReferential() {
+ private void saveUnidirectionalSynchronizeReferential(ObserveSwingDataSource source) {
SynchronizeModel stepModel = ui.getModel().getSynchronizeReferentielModel();
@@ -113,8 +113,10 @@ public class Start extends SaveLocalUIActionSupport {
sendMessage(t("observe.ui.datasource.editor.actions.synchro.referential.message.script.path", referentialSynchronizeContext.getSqlScriptPath()));
}
sendMessage("Mise à jour de la date de dernière de synchronisation de référentiel simple.");
- referentialSynchronizeContext.finish(stepModel.getSource().getSynchronizeService());
- stepModel.getSource().setModified(true);
+ referentialSynchronizeContext.finish(source.getSynchronizeService());
+ if (source.isLocal()) {
+ source.setModified(true);
+ }
sendMessage(t("observe.ui.datasource.editor.actions.synchro.referential.message.apply.done", new Date()));
}
=====================================
client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/synchronize/data/DataSynchroModel.java
=====================================
@@ -27,8 +27,10 @@ import fr.ird.observe.client.datasource.actions.AdminStep;
import fr.ird.observe.client.datasource.actions.AdminUIModel;
import fr.ird.observe.client.datasource.actions.synchronize.data.tree.DataSelectionTreePaneModel;
import fr.ird.observe.client.datasource.api.data.DataTaskSupport;
+import fr.ird.observe.client.datasource.api.data.TaskSide;
import fr.ird.observe.client.datasource.editor.api.wizard.connexion.DataSourceSelectorModel;
import fr.ird.observe.datasource.configuration.ObserveDataSourceInformation;
+import io.ultreia.java4all.util.TwoSideContext;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.nuiton.jaxx.runtime.swing.wizard.ext.WizardState;
@@ -41,11 +43,10 @@ import javax.swing.DefaultListModel;
* @author Tony Chemit - dev(a)tchemit.fr
* @since 5.0
*/
-public class DataSynchroModel extends AdminActionModel {
+public class DataSynchroModel extends AdminActionModel implements TwoSideContext<TaskSide, DataSelectionTreePaneModel> {
public static final String LEFT_MODEL = "leftModel";
public static final String RIGHT_MODEL = "rightModel";
-
private static final String TASKS_EMPTY_PROPERTY_NAME = "tasksEmpty";
private static final Logger log = LogManager.getLogger(DataSynchroModel.class);
/**
@@ -56,6 +57,7 @@ public class DataSynchroModel extends AdminActionModel {
* Right model.
*/
private final DataSelectionTreePaneModel rightModel = new DataSelectionTreePaneModel();
+
/**
* Registered tasks to apply.
*/
@@ -65,15 +67,13 @@ public class DataSynchroModel extends AdminActionModel {
super(AdminStep.DATA_SYNCHRONIZE);
}
- public DataSelectionTreePaneModel getModel(boolean left) {
- return left ? getLeftModel() : getRightModel();
- }
-
- public DataSelectionTreePaneModel getLeftModel() {
+ @Override
+ public DataSelectionTreePaneModel left() {
return leftModel;
}
- public DataSelectionTreePaneModel getRightModel() {
+ @Override
+ public DataSelectionTreePaneModel right() {
return rightModel;
}
@@ -120,8 +120,10 @@ public class DataSynchroModel extends AdminActionModel {
@Override
public void destroy() {
super.destroy();
- leftModel.dispose();
- rightModel.dispose();
+ left().dispose();
+ right().dispose();
+// leftModel.dispose();
+// rightModel.dispose();
tasks.clear();
}
@@ -132,9 +134,9 @@ public class DataSynchroModel extends AdminActionModel {
rightModel.finalizeSelectionModel(rightModel.getSelectionDataModel().getRoot(), leftModel.getDataIds());
}
- public void rebuildSelectionModel(boolean left, boolean rebuildFlatModel) {
- DataSelectionTreePaneModel otherSideModel = getModel(!left);
- getModel(left).rebuildSelectionModel(rebuildFlatModel, otherSideModel.getDataIds());
+ public void rebuildSelectionModel(TaskSide side, boolean rebuildFlatModel) {
+ DataSelectionTreePaneModel otherSideModel = onOppositeSide(side);
+ onSameSide(side).rebuildSelectionModel(rebuildFlatModel, otherSideModel.getDataIds());
}
public DefaultListModel<DataTaskSupport> getTasks() {
=====================================
client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/synchronize/data/DataSynchroUI.jaxx
=====================================
@@ -18,7 +18,7 @@
#L%
-->
-<fr.ird.observe.client.datasource.actions.AdminTabUI>
+<fr.ird.observe.client.datasource.actions.AdminTabUI implements="TwoSideContext<TaskSide, DataSelectionTreePane>">
<import>
fr.ird.observe.client.util.UIHelper
@@ -26,6 +26,8 @@
fr.ird.observe.client.datasource.actions.AdminStep
fr.ird.observe.client.datasource.actions.synchronize.data.tree.DataSelectionTreePane
fr.ird.observe.client.datasource.api.data.DataTaskSupport
+ fr.ird.observe.client.datasource.api.data.TaskSide
+ io.ultreia.java4all.util.TwoSideContext
static io.ultreia.java4all.i18n.I18n.t
</import>
@@ -33,6 +35,16 @@
public static DataSynchroUI get(AdminUI ui) {
return get(ui, AdminStep.DATA_SYNCHRONIZE);
}
+
+@Override
+public DataSelectionTreePane left() {
+ return leftTreePane;
+}
+
+@Override
+public DataSelectionTreePane right() {
+ return rightTreePane;
+}
]]>
</script>
@@ -53,8 +65,8 @@ public static DataSynchroUI get(AdminUI ui) {
<row>
<cell weightx="1">
<JPanel layout="{new GridLayout(1, 0)}">
- <DataSelectionTreePane id="leftTreePane" constructorParams="UIHelper.initialContext(this, false)"/>
- <DataSelectionTreePane id="rightTreePane" constructorParams="UIHelper.initialContext(this, true)"/>
+ <DataSelectionTreePane id="leftTreePane" constructorParams="UIHelper.initialContext(this, TaskSide.FROM_LEFT)"/>
+ <DataSelectionTreePane id="rightTreePane" constructorParams="UIHelper.initialContext(this, TaskSide.FROM_RIGHT)"/>
</JPanel>
</cell>
</row>
=====================================
client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/synchronize/data/DataSynchroUIHandler.java
=====================================
@@ -26,6 +26,7 @@ import fr.ird.observe.client.datasource.actions.AdminTabUIHandler;
import fr.ird.observe.client.datasource.actions.config.ConfigModel;
import fr.ird.observe.client.datasource.actions.config.ConfigUI;
import fr.ird.observe.client.datasource.actions.synchronize.data.tree.DataSelectionTreePaneHandler;
+import fr.ird.observe.client.datasource.api.data.TaskSide;
import fr.ird.observe.client.datasource.editor.api.selection.actions.SelectUnselectWithOpposite;
import fr.ird.observe.client.datasource.editor.api.wizard.StorageUIModel;
import fr.ird.observe.client.util.init.UIInitHelper;
@@ -48,8 +49,8 @@ class DataSynchroUIHandler extends AdminTabUIHandler<DataSynchroUI> implements U
public void beforeInit(DataSynchroUI ui) {
super.beforeInit(ui);
DataSynchroModel dataSynchroModel = parentUI.getModel().getDataSynchroModel();
- ui.setContextValue(dataSynchroModel.getLeftModel(), DataSynchroModel.LEFT_MODEL);
- ui.setContextValue(dataSynchroModel.getRightModel(), DataSynchroModel.RIGHT_MODEL);
+ ui.setContextValue(dataSynchroModel.onSameSide(TaskSide.FROM_LEFT), DataSelectionTreePaneHandler.MODEL_NAMES.onSameSide(TaskSide.FROM_LEFT));
+ ui.setContextValue(dataSynchroModel.onOppositeSide(TaskSide.FROM_LEFT), DataSelectionTreePaneHandler.MODEL_NAMES.onOppositeSide(TaskSide.FROM_LEFT));
}
@Override
=====================================
client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/synchronize/data/actions/Apply.java
=====================================
@@ -77,7 +77,7 @@ public class Apply extends DataSynchroUIActionSupport {
private WizardState doApply() throws BabModelVersionException, DataSourceCreateWithNoReferentialImportException, DatabaseNotFoundException, IncompatibleDataSourceCreateConfigurationException, DatabaseConnexionNotAuthorizedException {
DataSynchroModel stepModel = ui.getStepModel();
- DataSelectionTreePaneModel leftModel = stepModel.getModel(true);
+ DataSelectionTreePaneModel leftModel = stepModel.onSameSide(TaskSide.FROM_LEFT);
String moduleName = leftModel.getSelectionDataModel().getConfig().getModuleName();
Class<? extends RootOpenableDto> dataType = "ps".equals(moduleName) ? fr.ird.observe.dto.data.ps.common.TripDto.class : fr.ird.observe.dto.data.ll.common.TripDto.class;
DefaultListModel<DataTaskSupport> tasks = stepModel.getTasks();
@@ -112,7 +112,7 @@ public class Apply extends DataSynchroUIActionSupport {
progressModel.setMaximum(stepCount);
try (ObserveSwingDataSource leftSource = openSource(leftModel.getSource())) {
- try (ObserveSwingDataSource rightSource = openSource(stepModel.getModel(false).getSource())) {
+ try (ObserveSwingDataSource rightSource = openSource(stepModel.onOppositeSide(TaskSide.FROM_LEFT).getSource())) {
long t00 = TimeLog.getTime();
progressModel.increments();
try {
=====================================
client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/synchronize/data/actions/Start.java
=====================================
@@ -29,6 +29,7 @@ import fr.ird.observe.client.datasource.actions.synchronize.data.tree.DataSelect
import fr.ird.observe.client.datasource.actions.synchronize.data.tree.DataSelectionTreePaneHandler;
import fr.ird.observe.client.datasource.actions.synchronize.data.tree.DataSelectionTreePaneModel;
import fr.ird.observe.client.datasource.api.ObserveSwingDataSource;
+import fr.ird.observe.client.datasource.api.data.TaskSide;
import org.nuiton.jaxx.runtime.swing.wizard.ext.WizardState;
import java.awt.event.ActionEvent;
@@ -57,11 +58,11 @@ public class Start extends DataSynchroUIActionSupport {
ConfigModel configModel = ui.getModel().getConfigModel();
try (ObserveSwingDataSource leftSource = configModel.getLeftSourceModel().getSafeSource(true)) {
- DataSelectionTreePaneModel leftModel = stepModel.getModel(true);
+ DataSelectionTreePaneModel leftModel = stepModel.onSameSide(TaskSide.FROM_LEFT);
leftModel.setSource(leftSource);
try (ObserveSwingDataSource rightSource = configModel.getRightSourceModel().getSafeSource(true)) {
- DataSelectionTreePaneModel rightModel = stepModel.getModel(false);
+ DataSelectionTreePaneModel rightModel = stepModel.onOppositeSide(TaskSide.FROM_LEFT);
rightModel.setSource(rightSource);
DataSelectionTreePane leftTreePane = tabUI.getLeftTreePane();
=====================================
client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/synchronize/data/tree/DataSelectionTreePane.jaxx
=====================================
@@ -20,17 +20,9 @@
<JPanel id='topPanel' layout="{new BorderLayout()}">
<import>
fr.ird.observe.client.datasource.editor.api.selection.SelectionTreePane
+ fr.ird.observe.client.datasource.api.data.TaskSide
</import>
- <script><![CDATA[
-public boolean isLeft() {
- return !isRight();
-}
-public boolean isRight() {
- return Boolean.TRUE.equals(getOpposite());
-}
-]]>
- </script>
- <Boolean id='opposite' initializer='getContextValue(Boolean.class)'/>
+ <TaskSide id="side" initializer='getContextValue(TaskSide.class)'/>
<DataSelectionTreePaneModel id="model" initializer='DataSelectionTreePaneHandler.getModel(this)'/>
<JToolBar id="toolbar">
<JSeparator orientation='{JSeparator.VERTICAL}'/>
@@ -42,5 +34,5 @@ public boolean isRight() {
<JButton id="copy" enabled="false"/>
<JButton id="delete" enabled="false"/>
</JToolBar>
- <SelectionTreePane id='tree' constructorParams="isRight()" constraints='BorderLayout.CENTER'/>
+ <SelectionTreePane id='tree' constructorParams="!side.onLeft()" constraints='BorderLayout.CENTER'/>
</JPanel>
=====================================
client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/synchronize/data/tree/DataSelectionTreePaneHandler.java
=====================================
@@ -39,6 +39,7 @@ import fr.ird.observe.navigation.tree.selection.IdState;
import fr.ird.observe.navigation.tree.selection.SelectionTree;
import fr.ird.observe.navigation.tree.selection.SelectionTreeModel;
import fr.ird.observe.navigation.tree.selection.SelectionTreeNode;
+import io.ultreia.java4all.util.TwoSideContext;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.nuiton.jaxx.runtime.spi.UIHandler;
@@ -64,19 +65,30 @@ public class DataSelectionTreePaneHandler implements UIHandler<DataSelectionTree
private static final Logger log = LogManager.getLogger(DataSelectionTreePaneHandler.class);
+ public static final TwoSideContext<TaskSide, String> MODEL_NAMES = new TwoSideContext<>() {
+ @Override
+ public String left() {
+ return DataSynchroModel.LEFT_MODEL;
+ }
+
+ @Override
+ public String right() {
+ return DataSynchroModel.RIGHT_MODEL;
+ }
+ };
+
static DataSelectionTreePaneModel getModel(DataSelectionTreePane ui) {
- return ui.getContextValue(DataSelectionTreePaneModel.class, ui.isLeft() ? DataSynchroModel.LEFT_MODEL : DataSynchroModel.RIGHT_MODEL);
+ return ui.getContextValue(DataSelectionTreePaneModel.class, MODEL_NAMES.onSameSide(ui.getSide()));
}
//FIXME Maybe we can place this in afterInit method? check this out!
public static void init(DataSelectionTreePane ui) {
- boolean isLeft = ui.isLeft();
- TaskSide taskSide = isLeft ? TaskSide.FROM_LEFT : TaskSide.FROM_RIGHT;
+ TaskSide taskSide = ui.getSide();
SelectionTreePane treePane = ui.getTree();
SelectionTree tree = treePane.getTree();
UIInitHelper.init(tree);
- RegisterCopy.init(ui, ui.getCopy(), new RegisterCopy(taskSide));
- RegisterDelete.init(ui, ui.getDelete(), new RegisterDelete(taskSide));
+ RegisterCopy.install(ui, ui.getCopy(), taskSide);
+ RegisterDelete.install(ui, ui.getDelete(), taskSide);
ToggleIdState.install(ui, ui.getToggleAdded(), IdState.ADDED);
ToggleIdState.install(ui, ui.getToggleNewer(), IdState.UPDATED);
ToggleIdState.install(ui, ui.getToggleOlder(), IdState.OBSOLETE);
@@ -103,7 +115,7 @@ public class DataSelectionTreePaneHandler implements UIHandler<DataSelectionTree
model.setSelectionDataModel(treeModel);
// When model idStates has changed, rebuild the tree (but not the flat model)
model.addPropertyChangeListener(DataSelectionTreePaneModel.ID_STATES_PROPERTY_NAME,
- evt-> DataSelectionTreePaneHandler.rebuildTree(parent.getStepModel(), ui, false));
+ evt -> DataSelectionTreePaneHandler.rebuildTree(parent.getStepModel(), ui, false));
// When tree model has changed, rebuild accessibility to copy and delete action
treeModel.addPropertyChangeListener(evt -> {
@@ -154,7 +166,7 @@ public class DataSelectionTreePaneHandler implements UIHandler<DataSelectionTree
public static void rebuildTree(DataSynchroModel stepModel, DataSelectionTreePane ui, boolean rebuildFlatModel) {
ui.getTree().getTree().clearSelection();
- stepModel.rebuildSelectionModel(ui.isLeft(),rebuildFlatModel);
+ stepModel.rebuildSelectionModel(ui.getSide(), rebuildFlatModel);
finalizeTree(ui);
}
=====================================
client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/synchronize/data/tree/DataSelectionTreePaneModel.java
=====================================
@@ -23,6 +23,8 @@ package fr.ird.observe.client.datasource.actions.synchronize.data.tree;
*/
import fr.ird.observe.client.datasource.api.ObserveSwingDataSource;
+import fr.ird.observe.client.datasource.editor.api.selection.SelectionTreePane;
+import fr.ird.observe.client.datasource.editor.api.selection.SelectionTreePaneHandler;
import fr.ird.observe.navigation.tree.io.ToolkitTreeFlatModel;
import fr.ird.observe.navigation.tree.selection.IdAndLastUpdateDate;
import fr.ird.observe.navigation.tree.selection.IdState;
@@ -44,6 +46,7 @@ import java.util.Enumeration;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
+import java.util.Set;
import java.util.function.Function;
import java.util.stream.Collectors;
@@ -54,9 +57,17 @@ import java.util.stream.Collectors;
* @since 9.2.0
*/
public class DataSelectionTreePaneModel extends AbstractJavaBean {
+ public static final String ID_STATES_PROPERTY_NAME = "idStates";
private static final Logger log = LogManager.getLogger(DataSelectionTreePaneModel.class);
private static final String SOURCE_PROPERTY_NAME = "source";
- public static final String ID_STATES_PROPERTY_NAME = "idStates";
+ /**
+ * Which id states we use in tree model.
+ */
+ private final EnumSet<IdState> idStates = EnumSet.allOf(IdState.class);
+ /**
+ * Id states count in tree model.
+ */
+ private final EnumMap<IdState, Integer> idStateCount = new EnumMap<>(IdState.class);
/**
* Data source.
*/
@@ -76,14 +87,6 @@ public class DataSelectionTreePaneModel extends AbstractJavaBean {
* All existing ids (computed only once at init).
*/
private List<IdAndLastUpdateDate> dataIds = List.of();
- /**
- * Which id states we use in tree model.
- */
- private final EnumSet<IdState> idStates = EnumSet.allOf(IdState.class);
- /**
- * Id states count in tree model.
- */
- private final EnumMap<IdState, Integer> idStateCount = new EnumMap<>(IdState.class);
public void dispose() {
source = null;
@@ -96,11 +99,19 @@ public class DataSelectionTreePaneModel extends AbstractJavaBean {
return source;
}
+ public void setSource(ObserveSwingDataSource source) {
+ this.source = source;
+ firePropertyChange(SOURCE_PROPERTY_NAME, source);
+ }
public SelectionTreeModel getSelectionDataModel() {
return selectionDataModel;
}
+ public void setSelectionDataModel(SelectionTreeModel selectionTreeModel) {
+ this.selectionDataModel = selectionTreeModel;
+ }
+
public List<IdAndLastUpdateDate> getDataIds() {
return dataIds;
}
@@ -113,15 +124,6 @@ public class DataSelectionTreePaneModel extends AbstractJavaBean {
return idStateCount;
}
- public void setSource(ObserveSwingDataSource source) {
- this.source = source;
- firePropertyChange(SOURCE_PROPERTY_NAME, source);
- }
-
- public void setSelectionDataModel(SelectionTreeModel selectionTreeModel) {
- this.selectionDataModel = selectionTreeModel;
- }
-
public void buildFirstSelectionModel() {
SelectionTreeConfig config = selectionDataModel.getConfig();
SelectionTreeConfig newConfig = source.newSelectionTreeConfig();
@@ -258,4 +260,36 @@ public class DataSelectionTreePaneModel extends AbstractJavaBean {
});
}
}
+
+ public void removeData(List<SelectionTreeNode> data, SelectionTreePane tree) {
+ SelectionTreeModel selectDataModel = getSelectionDataModel();
+ int removedCount = 0;
+ for (SelectionTreeNode datum : data) {
+ String dataPath = datum.getNodePath().toString();
+ log.debug("Remove {} from flat model.", dataPath);
+ Set<String> paths = treeFlatModel.getMapping().keySet().stream().filter(e -> e.startsWith(dataPath)).collect(Collectors.toSet());
+ for (String path : paths) {
+ removedCount++;
+ log.debug("Removed {} - {} from flat model.", removedCount, path);
+ treeFlatModel.removeMapping(path);
+ }
+ SelectionTreeNode parent = datum.getParent();
+ if (parent != null) {
+ String parentPath = parent.getNodePath().toString();
+ long count = treeFlatModel.getMapping().keySet().stream().filter(e -> e.startsWith(parentPath)).count();
+ if (count == 1) {
+ removedCount++;
+ log.debug("Removed {} - {} from flat model.", removedCount, parentPath);
+ treeFlatModel.removeMapping(parentPath);
+ }
+ }
+ }
+ selectDataModel.removeData(data);
+ if (removedCount > 0) {
+ log.info("Removed {} mapping(s) from flat model.", removedCount);
+ tree.getTree().getModel().updateDataCount(treeFlatModel);
+ SelectionTreePaneHandler.updateStatistics(tree);
+ firePropertyChange(ID_STATES_PROPERTY_NAME, idStates);
+ }
+ }
}
=====================================
client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/synchronize/data/tree/actions/DataSelectionTreePaneActionSupport.java
=====================================
@@ -26,7 +26,6 @@ import fr.ird.observe.client.datasource.actions.AdminTabUIHandler;
import fr.ird.observe.client.datasource.actions.synchronize.data.DataSynchroModel;
import fr.ird.observe.client.datasource.actions.synchronize.data.DataSynchroUI;
import fr.ird.observe.client.datasource.actions.synchronize.data.tree.DataSelectionTreePane;
-import fr.ird.observe.navigation.tree.selection.SelectionTreeModel;
import org.nuiton.jaxx.runtime.swing.action.JComponentActionSupport;
import javax.swing.KeyStroke;
@@ -37,41 +36,29 @@ import javax.swing.KeyStroke;
*/
public abstract class DataSelectionTreePaneActionSupport extends JComponentActionSupport<DataSelectionTreePane> {
- private final KeyStroke oppositeAcceleratorKey;
+ private final KeyStroke rightAcceleratorKey;
- DataSelectionTreePaneActionSupport(String label, String shortDescription, String actionIcon, KeyStroke acceleratorKey, KeyStroke oppositeAcceleratorKey) {
+ DataSelectionTreePaneActionSupport(String label, String shortDescription, String actionIcon, KeyStroke acceleratorKey, KeyStroke rightAcceleratorKey) {
super(label, shortDescription, actionIcon, acceleratorKey);
- this.oppositeAcceleratorKey = oppositeAcceleratorKey;
+ this.rightAcceleratorKey = rightAcceleratorKey;
}
- DataSelectionTreePaneActionSupport(String actionCommandKey, String label, String shortDescription, String actionIcon, KeyStroke acceleratorKey, KeyStroke oppositeAcceleratorKey) {
+ DataSelectionTreePaneActionSupport(String actionCommandKey, String label, String shortDescription, String actionIcon, KeyStroke acceleratorKey, KeyStroke rightAcceleratorKey) {
super(actionCommandKey, label, shortDescription, actionIcon, acceleratorKey);
- this.oppositeAcceleratorKey = oppositeAcceleratorKey;
+ this.rightAcceleratorKey = rightAcceleratorKey;
}
@Override
public void init() {
- if (ui.isRight()) {
- setKeyStroke(oppositeAcceleratorKey);
+ if (!ui.getSide().onLeft()) {
+ setKeyStroke(rightAcceleratorKey);
}
super.init();
}
-
- protected DataSynchroModel getDataSynchroModel() {
- DataSynchroUI parent = ui.getContextValue(DataSynchroUI.class, AdminTabUIHandler.ADMIN_TAB_UI);
- return parent.getStepModel();
- }
-
protected DataSynchroUI getDataSynchroUI() {
return ui.getContextValue(DataSynchroUI.class, AdminTabUIHandler.ADMIN_TAB_UI);
}
-
- protected SelectionTreeModel getSelectionTreeModel() {
- return ui.getModel().getSelectionDataModel();
- }
-
- protected SelectionTreeModel getOppositeSelectionTreeModel() {
- DataSynchroModel dataSynchroModel = getDataSynchroModel();
- return dataSynchroModel.getModel(!ui.isLeft()).getSelectionDataModel();
+ protected DataSynchroModel getDataSynchroModel() {
+ return getDataSynchroUI().getStepModel();
}
}
=====================================
client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/synchronize/data/tree/actions/RegisterCopy.java
=====================================
@@ -25,46 +25,53 @@ package fr.ird.observe.client.datasource.actions.synchronize.data.tree.actions;
import fr.ird.observe.client.datasource.actions.ObserveKeyStrokesActions;
import fr.ird.observe.client.datasource.actions.synchronize.data.DataSynchroModel;
import fr.ird.observe.client.datasource.actions.synchronize.data.tree.DataSelectionTreePane;
+import fr.ird.observe.client.datasource.actions.synchronize.data.tree.DataSelectionTreePaneModel;
import fr.ird.observe.client.datasource.api.data.CopyDataTask;
import fr.ird.observe.client.datasource.api.data.TaskSide;
import fr.ird.observe.dto.ToolkitIdLabel;
import fr.ird.observe.navigation.tree.selection.SelectionTreeModel;
+import fr.ird.observe.navigation.tree.selection.SelectionTreeNode;
+import javax.swing.JButton;
import java.awt.event.ActionEvent;
+import java.util.LinkedList;
+import java.util.List;
/**
* To register a copy task.
* <p>
- * It will copy it {@link #taskSide} side to the other side.
*
* @author Tony Chemit - dev(a)tchemit.fr
* @since 8.0
*/
public class RegisterCopy extends DataSelectionTreePaneActionSupport {
- /**
- * Indicates the side used to copy data.
- */
- private final TaskSide taskSide;
+ public static void install(DataSelectionTreePane ui, JButton editor, TaskSide taskSide) {
+ RegisterCopy.init(ui, editor, new RegisterCopy(taskSide));
+ }
- public RegisterCopy(TaskSide taskSide) {
+ private RegisterCopy(TaskSide taskSide) {
super("", taskSide.getCopyTipKey(), taskSide.getCopyIconName(), ObserveKeyStrokesActions.KEY_STROKE_DATA_SYNCHRO_COPY_LEFT, ObserveKeyStrokesActions.KEY_STROKE_DATA_SYNCHRO_COPY_RIGHT);
- this.taskSide = taskSide;
}
@Override
protected void doActionPerformed(ActionEvent e, DataSelectionTreePane ui) {
+ TaskSide taskSide = ui.getSide();
DataSynchroModel stepModel = getDataSynchroModel();
- SelectionTreeModel treeModel = getSelectionTreeModel();
- SelectionTreeModel oppositeTreeModel = getOppositeSelectionTreeModel();
- CopyDataTask.of(taskSide, treeModel).forEach(t -> {
+ DataSelectionTreePaneModel thisSideModel = stepModel.onSameSide(taskSide);
+ DataSelectionTreePaneModel oppositeSideModel = stepModel.onOppositeSide(taskSide);
+ List<SelectionTreeNode> oppositeNodes = new LinkedList<>();
+ SelectionTreeModel thisSideTreeModel = thisSideModel.getSelectionDataModel();
+ SelectionTreeModel oppositeSideTreeModel = oppositeSideModel.getSelectionDataModel();
+ CopyDataTask.of(taskSide, thisSideTreeModel).forEach(t -> {
stepModel.addTask(t);
+ ToolkitIdLabel data = t.getData();
if (t.isDataExistOnOpposite()) {
- ToolkitIdLabel data = t.getData();
- oppositeTreeModel.getDataParentNode(data).ifPresent(p -> oppositeTreeModel.removeDataFromParent(p, data));
+ oppositeSideTreeModel.getDataNode(data).ifPresent(oppositeNodes::add);
}
});
- treeModel.removeAllSelectedData();
+ thisSideModel.removeData(thisSideTreeModel.selectedDataNodes(), getDataSynchroUI().onSameSide(taskSide).getTree());
+ oppositeSideModel.removeData(oppositeNodes, getDataSynchroUI().onOppositeSide(taskSide).getTree());
}
}
=====================================
client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/synchronize/data/tree/actions/RegisterDelete.java
=====================================
@@ -25,37 +25,37 @@ package fr.ird.observe.client.datasource.actions.synchronize.data.tree.actions;
import fr.ird.observe.client.datasource.actions.ObserveKeyStrokesActions;
import fr.ird.observe.client.datasource.actions.synchronize.data.DataSynchroModel;
import fr.ird.observe.client.datasource.actions.synchronize.data.tree.DataSelectionTreePane;
+import fr.ird.observe.client.datasource.actions.synchronize.data.tree.DataSelectionTreePaneModel;
import fr.ird.observe.client.datasource.api.data.DeleteDataTask;
import fr.ird.observe.client.datasource.api.data.TaskSide;
import fr.ird.observe.navigation.tree.selection.SelectionTreeModel;
+import javax.swing.JButton;
import java.awt.event.ActionEvent;
/**
* To register a delete task.
* <p>
- * It will delete it from the {@link #taskSide} side.
*
* @author Tony Chemit - dev(a)tchemit.fr
* @since 8.0
*/
public class RegisterDelete extends DataSelectionTreePaneActionSupport {
+ public static void install(DataSelectionTreePane ui, JButton editor, TaskSide taskSide) {
+ RegisterDelete.init(ui, editor, new RegisterDelete(taskSide));
+ }
- /**
- * Indicates the side used to delete data.
- */
- private final TaskSide taskSide;
-
- public RegisterDelete(TaskSide taskSide) {
+ private RegisterDelete(TaskSide taskSide) {
super("", taskSide.getDeleteTipKey(), taskSide.getDeleteIconName(), ObserveKeyStrokesActions.KEY_STROKE_DATA_SYNCHRO_DELETE_LEFT, ObserveKeyStrokesActions.KEY_STROKE_DATA_SYNCHRO_DELETE_RIGHT);
- this.taskSide = taskSide;
}
@Override
protected void doActionPerformed(ActionEvent e, DataSelectionTreePane ui) {
+ TaskSide taskSide = ui.getSide();
DataSynchroModel stepModel = getDataSynchroModel();
- SelectionTreeModel selectionDataModel = getSelectionTreeModel();
+ DataSelectionTreePaneModel model = stepModel.onSameSide(taskSide);
+ SelectionTreeModel selectionDataModel = model.getSelectionDataModel();
DeleteDataTask.of(taskSide, selectionDataModel).forEach(stepModel::addTask);
- selectionDataModel.removeAllSelectedData();
+ model.removeData(selectionDataModel.selectedDataNodes(), getDataSynchroUI().onOppositeSide(taskSide).getTree());
}
}
=====================================
core/persistence/report/src/main/resources/META-INF/report/default/ps/psObservationActivitiesByZone.report
=====================================
@@ -42,7 +42,8 @@ From fr.ird.observe.entities.data.ps.common.TripImpl m \
Join m.routeObs r \
Join r.activity a With a.currentFpaZone.id = :zoneFpaId \
Join a.floatingObject dcp \
-Where m.id In :tripId
+Where m.id In :tripId \
+Group By a.currentFpaZone.code, a.currentFpaZone.@i18nColumnName@
request.1.repeat.name=zoneFpaId
request.1.repeat.layout=column
request.1.comment=visite + peche / visite - peche / Deploiement + peche / Deploiement - peche / Modifie + peche / Modifie - peche / Retire + peche / Retire - peche / Abandonne + peche / Abandonne - peche / Coule + peche / Coule - peche / Remplace + peche / Remplace - peche / Autre ou ancien peche + peche / Autre ou ancien peche - peche / Nombre de tortues
=====================================
pom.xml
=====================================
@@ -23,7 +23,7 @@
<parent>
<groupId>io.ultreia.maven</groupId>
<artifactId>pom</artifactId>
- <version>2024.13</version>
+ <version>2024.16</version>
</parent>
<groupId>fr.ird.observe</groupId>
<artifactId>ird-observe</artifactId>
=====================================
server/core/src/main/java/fr/ird/observe/server/injector/JsonAwareDtoInjector.java
=====================================
@@ -78,6 +78,6 @@ public class JsonAwareDtoInjector extends JsonInjector<JsonAware> {
if (ToolkitRequestFilter.class.isAssignableFrom(type)) {
return gson.fromJson("{}", generic);
}
- return super.buildNullValue(call, name, type, generic);
+ return null;
}
}
=====================================
toolkit/api/src/main/java/fr/ird/observe/navigation/tree/ToolkitTreeModelSupport.java
=====================================
@@ -114,6 +114,10 @@ public abstract class ToolkitTreeModelSupport<R extends ToolkitTreeNode> extends
populate(flatModel, rootConsumer);
}
+ public final void updateDataCount(ToolkitTreeFlatModel flatModel) {
+ dataCount = flatModel.getDataCount();
+ }
+
public final ToolkitTreeFlatModelRootRequest getRequest() {
return request;
}
=====================================
toolkit/api/src/main/java/fr/ird/observe/navigation/tree/io/ToolkitTreeFlatModel.java
=====================================
@@ -24,6 +24,7 @@ package fr.ird.observe.navigation.tree.io;
import fr.ird.observe.dto.ObserveDto;
import fr.ird.observe.navigation.tree.ToolkitTreeNode;
+import fr.ird.observe.navigation.tree.ToolkitTreeNodeBean;
import fr.ird.observe.navigation.tree.ToolkitTreeNodeBeanState;
import fr.ird.observe.navigation.tree.states.BooleanState;
@@ -45,7 +46,8 @@ public class ToolkitTreeFlatModel implements ObserveDto {
private final String path;
private final Date lastUpdateDate;
private final Map<String, ToolkitTreeNodeStates> mapping;
- private final long dataCount;
+ private long dataCount;
+
public static ToolkitTreeFlatModel of(ToolkitTreeNode node, Date now, long dataCount) {
return ToolkitTreeFlatModelWriter.of(node.getNodePath().toString(), now, node, dataCount);
}
@@ -85,4 +87,11 @@ public class ToolkitTreeFlatModel implements ObserveDto {
mapping.entrySet().stream().filter(e -> pathFilter.test(e.getKey())).forEach(e -> state.setValue(e.getValue(), value));
}
+ public void removeMapping(String path) {
+ ToolkitTreeNodeStates removed = mapping.remove(path);
+ Integer count = removed.getState(ToolkitTreeNodeBean.STATE_COUNT.name());
+ if (count == null) {
+ dataCount--;
+ }
+ }
}
=====================================
toolkit/api/src/main/java/fr/ird/observe/navigation/tree/selection/SelectionTreeModelSupport.java
=====================================
@@ -38,7 +38,6 @@ import java.util.LinkedHashSet;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
-import java.util.Objects;
import java.util.Optional;
import java.util.Set;
import java.util.function.BiFunction;
@@ -139,40 +138,33 @@ public class SelectionTreeModelSupport<R extends SelectionTreeNode> extends Tool
return builder;
}
- public Optional<SelectionTreeNode> getDataParentNode(ToolkitIdLabel data) {
+ public Optional<SelectionTreeNode> getDataNode(ToolkitIdLabel data) {
Enumeration<?> children = getRoot().children();
while (children.hasMoreElements()) {
SelectionTreeNode topNode = (SelectionTreeNode) children.nextElement();
SelectionTreeNode tripNode = topNode.findPath(data.getId());
-
if (tripNode != null) {
- return Optional.of(topNode);
+ return Optional.of(tripNode);
}
}
return Optional.empty();
}
- public void removeDataFromParent(SelectionTreeNode topNode, ToolkitIdLabel data) {
- SelectionTreeNode tripNode = topNode.findPath(data.getId());
- Objects.requireNonNull(tripNode, "Could not find program node with id: " + data);
- removeNodeFromParent(tripNode);
- if (topNode.isLeaf()) {
- removeNodeFromParent(topNode);
- }
- }
-
- public void removeAllSelectedData() {
- for (SelectionTreeNode node : selectedDataNodes()) {
+ public void removeData(List<SelectionTreeNode> data) {
+ for (SelectionTreeNode node : data) {
SelectionTreeNode parent = node.getParent();
if (parent.getParent() == null) {
// This means that the parent was already removed
continue;
}
- if (parent.isSelected()) {
+ if (parent.isSelected() || data.contains(parent)) {
parent.removeFromParent();
} else {
node.removeFromParent();
}
+ if (parent.isLeaf()) {
+ parent.removeFromParent();
+ }
}
recomputeSelectedCount();
}
=====================================
toolkit/plugin/src/main/java/fr/ird/observe/toolkit/maven/plugin/service/ServiceGenerateLocalRunner.java
=====================================
@@ -25,6 +25,7 @@ package fr.ird.observe.toolkit.maven.plugin.service;
import fr.ird.observe.datasource.security.Permission;
import fr.ird.observe.services.service.ObserveService;
import fr.ird.observe.toolkit.maven.plugin.MojoRunnable;
+import io.ultreia.java4all.http.spi.Nullable;
import io.ultreia.java4all.http.spi.model.ImportManager;
import io.ultreia.java4all.http.spi.model.MethodDescription;
import io.ultreia.java4all.http.spi.model.ServiceMapping;
@@ -61,35 +62,35 @@ public class ServiceGenerateLocalRunner extends MojoRunnable {
" private static final TimeLog TIME_LOG = new TimeLog(%5$s.class, 500, 1000);\n\n" +
"%6$s\n" +
"}";
- public static final String CALL_BODY_NO_PERSISTENCE = "" +
+ public static final String CALL_BODY_NO_PERSISTENCE = "%1$s" +
" long t0 = TimeLog.getTime();\n" +
- " String methodName = %2$s;\n" +
+ " String methodName = %3$s;\n" +
" try {\n" +
- " %1$s" +
+ " %2$s" +
" } catch (Exception e) {\n" +
" recordError(e, methodName);\n" +
" throw e;\n" +
" } finally {\n" +
" TIME_LOG.log(t0, String.format(\"invoke method %%s\", methodName));\n" +
" }";
- public static final String CALL_BODY_NO_TRANSACTION = "" +
+ public static final String CALL_BODY_NO_TRANSACTION = "%1$s" +
" long t0 = TimeLog.getTime();\n" +
- " String methodName = %2$s;\n" +
+ " String methodName = %3$s;\n" +
" initPersistence(methodName);\n" +
" try {\n" +
- " %1$s" +
+ " %2$s" +
" } catch (Exception e) {\n" +
" recordError(e, methodName);\n" +
" throw e;\n" +
" } finally {\n" +
" TIME_LOG.log(t0, String.format(\"invoke method %%s\", methodName));\n" +
" }";
- public static final String CALL_BODY_WITH_TRANSACTION = "" +
+ public static final String CALL_BODY_WITH_TRANSACTION = "%1$s" +
" long t0 = TimeLog.getTime();\n" +
- " String methodName = %2$s;\n" +
- " boolean newTransaction = %3$s(methodName, Permission.%4$s);\n" +
+ " String methodName = %3$s;\n" +
+ " boolean newTransaction = %4$s(methodName, Permission.%5$s);\n" +
" try {\n" +
- " %1$s" +
+ " %2$s" +
" } catch (Exception e) {\n" +
" recordError(e, methodName);\n" +
" throw e;\n" +
@@ -212,11 +213,20 @@ public class ServiceGenerateLocalRunner extends MojoRunnable {
}
String exceptions = exceptionsBuilder.length() == 0 ? "" : "throws " + exceptionsBuilder.substring(2);
+ StringBuilder checkParametersBuilder = new StringBuilder();
StringBuilder parametersBuilder = new StringBuilder();
StringBuilder parametersDeclarationBuilder = new StringBuilder();
int index = 0;
String methodNameClassifier = null;
for (String parameterName : methodDescription.getParameterNames()) {
+ parametersDeclarationBuilder.append(", ");
+ if (methodDescription.isNullableParameterName(parameterName)) {
+ importManager.addImport(Nullable.class);
+ parametersDeclarationBuilder.append("@").append(Nullable.class.getSimpleName()).append(" ");
+ } else if (!methodDescription.getMethod().getParameterTypes()[index].isPrimitive()) {
+ importManager.addImport(Objects.class);
+ checkParametersBuilder.append(String.format(" Objects.requireNonNull(%1$s, \"Parameter '%1$s' (in method %2$s#%3$s) can not be null.\");\n", parameterName, className, methodName));
+ }
String parameterType = methodDescription.getParameterTypes().get(index++);
if (!parameterType.endsWith("[]")) {
parameterType = importAndSimplify(importManager, parameterType);
@@ -233,11 +243,12 @@ public class ServiceGenerateLocalRunner extends MojoRunnable {
// }
}
parametersBuilder.append(", ").append(parameterName);
- parametersDeclarationBuilder.append(", ").append(parameterType).append(" ").append(parameterName);
+ parametersDeclarationBuilder.append(parameterType).append(" ").append(parameterName);
}
String parameters = index == 0 ? "" : parametersBuilder.substring(2);
String parametersDeclaration = index == 0 ? "" : parametersDeclarationBuilder.substring(2);
+ String checkParametersDeclaration = checkParametersBuilder.toString();
String returnInvocation = methodDescription.getReturnInvocation();
@SuppressWarnings("SpellCheckingInspection") String superCall = String.format("%ssuper.%s(%s);\n", returnInvocation, methodName, parameters);
@@ -246,7 +257,7 @@ public class ServiceGenerateLocalRunner extends MojoRunnable {
if (noTransaction) {
getLog().debug(String.format("No transaction required on %s for method: %s", className, methodName));
// no transaction in this call
- bodyContent = String.format(CALL_BODY_NO_PERSISTENCE, superCall, generatedMethodName);
+ bodyContent = String.format(CALL_BODY_NO_PERSISTENCE, checkParametersDeclaration, superCall, generatedMethodName);
} else {
boolean noCredential = methodeCredentials == null;
if (noCredential) {
@@ -254,13 +265,13 @@ public class ServiceGenerateLocalRunner extends MojoRunnable {
}
if (noCredential) {
// init persistence, but do not open transaction
- bodyContent = String.format(CALL_BODY_NO_TRANSACTION, superCall, generatedMethodName);
+ bodyContent = String.format(CALL_BODY_NO_TRANSACTION, checkParametersDeclaration, superCall, generatedMethodName);
} else {
// init persistence and create a new transaction if required
String initTransactionMethodName = write ? "initWriteTransaction" : "initReadTransaction";
importManager.importAndSimplify(Permission.class.getName());
- bodyContent = String.format(CALL_BODY_WITH_TRANSACTION, superCall, generatedMethodName, initTransactionMethodName, methodeCredentials);
+ bodyContent = String.format(CALL_BODY_WITH_TRANSACTION, checkParametersDeclaration, superCall, generatedMethodName, initTransactionMethodName, methodeCredentials);
}
}
return String.format(METHOD, realReturnType, methodName, parametersDeclaration, exceptions, bodyContent);
=====================================
toolkit/plugin/src/main/java/fr/ird/observe/toolkit/maven/plugin/service/ServiceLocalMethodDescriptionImpl.java
=====================================
@@ -24,6 +24,7 @@ package fr.ird.observe.toolkit.maven.plugin.service;
import fr.ird.observe.datasource.security.Permission;
import fr.ird.observe.services.service.MethodCredential;
+import io.ultreia.java4all.http.spi.Nullable;
import io.ultreia.java4all.http.spi.SpiHelper;
import io.ultreia.java4all.http.spi.model.ImportManager;
import io.ultreia.java4all.http.spi.model.MethodDescription;
@@ -50,6 +51,7 @@ public class ServiceLocalMethodDescriptionImpl implements MethodDescription {
private final List<Class<?>> exceptions;
private final List<String> parameterNames;
private final List<String> parameterTypes;
+ private final List<String> nullableParameterNames;
private final Permission methodeCredentials;
private final boolean write;
private final boolean noTransaction;
@@ -64,15 +66,17 @@ public class ServiceLocalMethodDescriptionImpl implements MethodDescription {
parameterNames = new LinkedList<>();
parameterTypes = new LinkedList<>();
+ nullableParameterNames = new LinkedList<>();
for (java.lang.reflect.Parameter parameter : method.getParameters()) {
String name = parameter.getName();
parameterNames.add(name);
parameterTypes.add(importManager.importParameterType(parameter, currentMapping));
+ if (parameter.isAnnotationPresent(Nullable.class)) {
+ nullableParameterNames.add(name);
+ }
}
-
this.returnInvocation = returnType.contains("void") ? "" : "return ";
this.exceptions = MethodDescription.getExceptions(method, importManager);
-
this.methodeCredentials = Optional.ofNullable(method.getAnnotation(MethodCredential.class)).map(MethodCredential::value).orElse(null);
this.write = SpiHelper.write(method);
this.noTransaction = !SpiHelper.getRequestAnnotation(method).isAddAuthenticationToken();
@@ -127,6 +131,10 @@ public class ServiceLocalMethodDescriptionImpl implements MethodDescription {
return parameterTypes;
}
+ public boolean isNullableParameterName(String parameterName) {
+ return nullableParameterNames.contains(parameterName);
+ }
+
public boolean isNoTransaction() {
return noTransaction;
}
=====================================
toolkit/server/src/main/java/org/debux/webmotion/server/handler/injector/CollectionInjector.java
=====================================
@@ -54,7 +54,7 @@ public class CollectionInjector extends JsonInjector<Collection> {
}
String[] values = (String[]) parameterTree.getValue();
String value = values[0];
- if (value.length() > 0) {
+ if (!value.isEmpty()) {
if (onString) {
if (!value.contains("[")) {
// use values
=====================================
toolkit/server/src/main/java/org/debux/webmotion/server/handler/injector/JsonInjector.java
=====================================
@@ -80,7 +80,7 @@ public abstract class JsonInjector<O> implements ExecutorParametersInjectorHandl
}
protected O buildNullValue(Call call, String name, Class<?> type, Type generic) {
- throw new NullPointerException(String.format("By default do not accept null parameterTrees for parameter: %s with type: %s", name, type.getName()));
+ throw new NullPointerException(String.format("By default do not accept null parameterTree for parameter: %s with type: %s", name, type.getName()));
}
}
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/compare/84da9a9a5950817953221562…
--
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/compare/84da9a9a5950817953221562…
You're receiving this email because of your account on gitlab.com.
1
0
[Git][ultreiaio/ird-observe][develop] 4 commits: La valeur du champs ps_observation.Catch.well a des fois la valeur vide, à la...
by Tony CHEMIT (@tchemit) March 20, 2024
by Tony CHEMIT (@tchemit) March 20, 2024
March 20, 2024
Tony CHEMIT pushed to branch develop at ultreiaio / ird-observe
Commits:
bbaef632 by Tony Chemit at 2024-03-20T14:51:13+01:00
La valeur du champs ps_observation.Catch.well a des fois la valeur vide, à la place de la valeur nulle - Closes #2857
- - - - -
6229d78f by Tony Chemit at 2024-03-20T14:51:13+01:00
Use updated check-services-types configuration
- - - - -
e8744294 by Tony Chemit at 2024-03-20T14:51:13+01:00
update pom
- - - - -
84da9a9a by Tony Chemit at 2024-03-20T14:51:13+01:00
fix Observations - Types d'activités par zones FPA report (missing GroupBy for postgresql)
- - - - -
7 changed files:
- core/api/services/pom.xml
- core/persistence/migration/src/main/java/fr/ird/observe/spi/migration/v9/DataSourceMigrationForVersion_9_3.java
- + core/persistence/migration/src/main/resources/db/migration/v9/9.3/02_issue-2857-common.sql
- core/persistence/report/src/main/resources/META-INF/report/default/ps/psObservationActivitiesByZone.report
- core/persistence/report/src/main/resources/META-INF/report/default/ps/psObservationRepartionCaleeParCuve.report
- pom.xml
- toolkit/api-services/pom.xml
Changes:
=====================================
core/api/services/pom.xml
=====================================
@@ -203,18 +203,30 @@
<goal>check-services-types</goal>
</goals>
<configuration>
- <acceptedTypes>
+ <acceptedParameterTypes>
<acceptedType>io.ultreia.java4all.util.Version</acceptedType>
<acceptedType>java.lang.Class</acceptedType>
<acceptedType>java.lang.String</acceptedType>
- <acceptedType>java.util.List</acceptedType>
+ <!-- <acceptedType>java.util.List</acceptedType>-->
<acceptedType>java.util.Set</acceptedType>
<acceptedType>java.util.Map</acceptedType>
<acceptedType>java.util.Date</acceptedType>
- </acceptedTypes>
- <acceptedAssignableTypes>
+ </acceptedParameterTypes>
+ <acceptedReturnTypes>
+ <acceptedType>io.ultreia.java4all.util.Version</acceptedType>
+ <!-- <acceptedType>java.lang.Class</acceptedType>-->
+ <acceptedType>java.lang.String</acceptedType>
+ <acceptedType>java.util.List</acceptedType>
+ <acceptedType>java.util.Set</acceptedType>
+ <!-- <acceptedType>java.util.Map</acceptedType>-->
+ <acceptedType>java.util.Date</acceptedType>
+ </acceptedReturnTypes>
+ <acceptedAssignableParameterTypes>
+ <acceptedAssignableType>io.ultreia.java4all.util.json.JsonAware</acceptedAssignableType>
+ </acceptedAssignableParameterTypes>
+ <acceptedAssignableReturnTypes>
<acceptedAssignableType>io.ultreia.java4all.util.json.JsonAware</acceptedAssignableType>
- </acceptedAssignableTypes>
+ </acceptedAssignableReturnTypes>
</configuration>
</execution>
</executions>
=====================================
core/persistence/migration/src/main/java/fr/ird/observe/spi/migration/v9/DataSourceMigrationForVersion_9_3.java
=====================================
@@ -49,6 +49,8 @@ public class DataSourceMigrationForVersion_9_3 extends ByMajorMigrationVersionRe
if (withIds) {
// See https://gitlab.com/ultreiaio/ird-observe/-/issues/2044
executor.addScript("01", "issue-2044");
+ // See https://gitlab.com/ultreiaio/ird-observe/-/issues/2857
+ executor.addScript("02", "issue-2857");
}
}
=====================================
core/persistence/migration/src/main/resources/db/migration/v9/9.3/02_issue-2857-common.sql
=====================================
@@ -0,0 +1,22 @@
+---
+-- #%L
+-- ObServe Core :: Persistence :: Migration
+-- %%
+-- Copyright (C) 2008 - 2024 IRD, Ultreia.io
+-- %%
+-- This program is free software: you can redistribute it and/or modify
+-- it under the terms of the GNU General Public License as
+-- published by the Free Software Foundation, either version 3 of the
+-- License, or (at your option) any later version.
+--
+-- This program is distributed in the hope that it will be useful,
+-- but WITHOUT ANY WARRANTY; without even the implied warranty of
+-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+-- GNU General Public License for more details.
+--
+-- You should have received a copy of the GNU General Public
+-- License along with this program. If not, see
+-- <http://www.gnu.org/licenses/gpl-3.0.html>.
+-- #L%
+---
+UPDATE ps_observation.Catch Set well = NULL Where well = '';
=====================================
core/persistence/report/src/main/resources/META-INF/report/default/ps/psObservationActivitiesByZone.report
=====================================
@@ -42,7 +42,8 @@ From fr.ird.observe.entities.data.ps.common.TripImpl m \
Join m.routeObs r \
Join r.activity a With a.currentFpaZone.id = :zoneFpaId \
Join a.floatingObject dcp \
-Where m.id In :tripId
+Where m.id In :tripId \
+Group By a.currentFpaZone.code, a.currentFpaZone.@i18nColumnName@
request.1.repeat.name=zoneFpaId
request.1.repeat.layout=column
request.1.comment=visite + peche / visite - peche / Deploiement + peche / Deploiement - peche / Modifie + peche / Modifie - peche / Retire + peche / Retire - peche / Abandonne + peche / Abandonne - peche / Coule + peche / Coule - peche / Remplace + peche / Remplace - peche / Autre ou ancien peche + peche / Autre ou ancien peche - peche / Nombre de tortues
=====================================
core/persistence/report/src/main/resources/META-INF/report/default/ps/psObservationRepartionCaleeParCuve.report
=====================================
@@ -34,14 +34,15 @@ request.1.layout=row
request.1.request=Select r.date, Cast(a.time As java.sql.Time), \
a.latitude, \
a.longitude, \
-case when a.set.schoolType.id = 'fr.ird.referential.ps.common.SchoolType#0#1' then 'BO' else 'BL' end, \
+case when s.schoolType.id = 'fr.ird.referential.ps.common.SchoolType#0#1' then 'BO' else 'BL' end, \
tc.species.faoCode, \
Sum(tc.catchWeight), \
tc.well \
From TripImpl t \
Join t.routeObs r \
-Join r.activity a \
-Join a.set.catches tc \
-Where t.id In :tripId and tc.well != null \
-Group By r.date, a.time, a.latitude, a.longitude, tc.species, tc.species.faoCode, tc.well, a.set.schoolType \
+Join r.activity a With a.set Is Not Null \
+Join a.set s With s.catches Is Not Empty \
+Join s.catches tc With tc.well Is Not Null And tc.well != '' \
+Where t.id In :tripId \
+Group By r.date, a.time, a.latitude, a.longitude, tc.species, tc.species.faoCode, tc.well, s.schoolType \
Order By r.date, a.time, tc.species, tc.well
=====================================
pom.xml
=====================================
@@ -23,7 +23,7 @@
<parent>
<groupId>io.ultreia.maven</groupId>
<artifactId>pom</artifactId>
- <version>2024.13</version>
+ <version>2024.14</version>
</parent>
<groupId>fr.ird.observe</groupId>
<artifactId>ird-observe</artifactId>
=====================================
toolkit/api-services/pom.xml
=====================================
@@ -154,18 +154,30 @@
<goal>check-services-types</goal>
</goals>
<configuration>
- <acceptedTypes>
+ <acceptedParameterTypes>
<acceptedType>io.ultreia.java4all.util.Version</acceptedType>
<acceptedType>java.lang.Class</acceptedType>
<acceptedType>java.lang.String</acceptedType>
- <acceptedType>java.util.List</acceptedType>
+<!-- <acceptedType>java.util.List</acceptedType>-->
<acceptedType>java.util.Set</acceptedType>
<acceptedType>java.util.Map</acceptedType>
<acceptedType>java.util.Date</acceptedType>
- </acceptedTypes>
- <acceptedAssignableTypes>
+ </acceptedParameterTypes>
+ <acceptedReturnTypes>
+ <acceptedType>io.ultreia.java4all.util.Version</acceptedType>
+<!-- <acceptedType>java.lang.Class</acceptedType>-->
+ <acceptedType>java.lang.String</acceptedType>
+ <acceptedType>java.util.List</acceptedType>
+ <acceptedType>java.util.Set</acceptedType>
+<!-- <acceptedType>java.util.Map</acceptedType>-->
+ <acceptedType>java.util.Date</acceptedType>
+ </acceptedReturnTypes>
+ <acceptedAssignableParameterTypes>
+ <acceptedAssignableType>io.ultreia.java4all.util.json.JsonAware</acceptedAssignableType>
+ </acceptedAssignableParameterTypes>
+ <acceptedAssignableReturnTypes>
<acceptedAssignableType>io.ultreia.java4all.util.json.JsonAware</acceptedAssignableType>
- </acceptedAssignableTypes>
+ </acceptedAssignableReturnTypes>
</configuration>
</execution>
</executions>
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/compare/52f465b8c60de2af1cde0be8…
--
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/compare/52f465b8c60de2af1cde0be8…
You're receiving this email because of your account on gitlab.com.
1
0
[Git][ultreiaio/ird-observe][develop] 4 commits: La valeur du champs ps_observation.Catch.well a des fois la valeur vide, à la...
by Tony CHEMIT (@tchemit) March 20, 2024
by Tony CHEMIT (@tchemit) March 20, 2024
March 20, 2024
Tony CHEMIT pushed to branch develop at ultreiaio / ird-observe
Commits:
360958e1 by Tony Chemit at 2024-03-20T14:43:02+01:00
La valeur du champs ps_observation.Catch.well a des fois la valeur vide, à la place de la valeur nulle - Closes #2857
- - - - -
3c4728dc by Tony Chemit at 2024-03-20T14:43:02+01:00
Use updated check-services-types configuration
- - - - -
6742fce9 by Tony Chemit at 2024-03-20T14:43:02+01:00
update pom
- - - - -
52f465b8 by Tony Chemit at 2024-03-20T14:43:02+01:00
fix Observations - Types d'activités par zones FPA report (missing GroupBy for postgresql)
- - - - -
7 changed files:
- core/api/services/pom.xml
- core/persistence/migration/src/main/java/fr/ird/observe/spi/migration/v9/DataSourceMigrationForVersion_9_3.java
- + core/persistence/migration/src/main/resources/db/migration/v9/9.3/02_issue-2857-common.sql
- core/persistence/report/src/main/resources/META-INF/report/default/ps/psObservationActivitiesByZone.report
- core/persistence/report/src/main/resources/META-INF/report/default/ps/psObservationRepartionCaleeParCuve.report
- pom.xml
- toolkit/api-services/pom.xml
Changes:
=====================================
core/api/services/pom.xml
=====================================
@@ -203,18 +203,30 @@
<goal>check-services-types</goal>
</goals>
<configuration>
- <acceptedTypes>
+ <acceptedParameterTypes>
<acceptedType>io.ultreia.java4all.util.Version</acceptedType>
<acceptedType>java.lang.Class</acceptedType>
<acceptedType>java.lang.String</acceptedType>
- <acceptedType>java.util.List</acceptedType>
+ <!-- <acceptedType>java.util.List</acceptedType>-->
<acceptedType>java.util.Set</acceptedType>
<acceptedType>java.util.Map</acceptedType>
<acceptedType>java.util.Date</acceptedType>
- </acceptedTypes>
- <acceptedAssignableTypes>
+ </acceptedParameterTypes>
+ <acceptedReturnTypes>
+ <acceptedType>io.ultreia.java4all.util.Version</acceptedType>
+ <!-- <acceptedType>java.lang.Class</acceptedType>-->
+ <acceptedType>java.lang.String</acceptedType>
+ <acceptedType>java.util.List</acceptedType>
+ <acceptedType>java.util.Set</acceptedType>
+ <!-- <acceptedType>java.util.Map</acceptedType>-->
+ <acceptedType>java.util.Date</acceptedType>
+ </acceptedReturnTypes>
+ <acceptedAssignableParameterTypes>
+ <acceptedAssignableType>io.ultreia.java4all.util.json.JsonAware</acceptedAssignableType>
+ </acceptedAssignableParameterTypes>
+ <acceptedAssignableReturnTypes>
<acceptedAssignableType>io.ultreia.java4all.util.json.JsonAware</acceptedAssignableType>
- </acceptedAssignableTypes>
+ </acceptedAssignableReturnTypes>
</configuration>
</execution>
</executions>
=====================================
core/persistence/migration/src/main/java/fr/ird/observe/spi/migration/v9/DataSourceMigrationForVersion_9_3.java
=====================================
@@ -49,6 +49,8 @@ public class DataSourceMigrationForVersion_9_3 extends ByMajorMigrationVersionRe
if (withIds) {
// See https://gitlab.com/ultreiaio/ird-observe/-/issues/2044
executor.addScript("01", "issue-2044");
+ // See https://gitlab.com/ultreiaio/ird-observe/-/issues/2857
+ executor.addScript("01", "issue-2857");
}
}
=====================================
core/persistence/migration/src/main/resources/db/migration/v9/9.3/02_issue-2857-common.sql
=====================================
@@ -0,0 +1,22 @@
+---
+-- #%L
+-- ObServe Core :: Persistence :: Migration
+-- %%
+-- Copyright (C) 2008 - 2024 IRD, Ultreia.io
+-- %%
+-- This program is free software: you can redistribute it and/or modify
+-- it under the terms of the GNU General Public License as
+-- published by the Free Software Foundation, either version 3 of the
+-- License, or (at your option) any later version.
+--
+-- This program is distributed in the hope that it will be useful,
+-- but WITHOUT ANY WARRANTY; without even the implied warranty of
+-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+-- GNU General Public License for more details.
+--
+-- You should have received a copy of the GNU General Public
+-- License along with this program. If not, see
+-- <http://www.gnu.org/licenses/gpl-3.0.html>.
+-- #L%
+---
+UPDATE ps_observation.Catch Set well = NULL Where well = '';
=====================================
core/persistence/report/src/main/resources/META-INF/report/default/ps/psObservationActivitiesByZone.report
=====================================
@@ -42,7 +42,8 @@ From fr.ird.observe.entities.data.ps.common.TripImpl m \
Join m.routeObs r \
Join r.activity a With a.currentFpaZone.id = :zoneFpaId \
Join a.floatingObject dcp \
-Where m.id In :tripId
+Where m.id In :tripId \
+Group By a.currentFpaZone.code, a.currentFpaZone.@i18nColumnName@
request.1.repeat.name=zoneFpaId
request.1.repeat.layout=column
request.1.comment=visite + peche / visite - peche / Deploiement + peche / Deploiement - peche / Modifie + peche / Modifie - peche / Retire + peche / Retire - peche / Abandonne + peche / Abandonne - peche / Coule + peche / Coule - peche / Remplace + peche / Remplace - peche / Autre ou ancien peche + peche / Autre ou ancien peche - peche / Nombre de tortues
=====================================
core/persistence/report/src/main/resources/META-INF/report/default/ps/psObservationRepartionCaleeParCuve.report
=====================================
@@ -34,14 +34,15 @@ request.1.layout=row
request.1.request=Select r.date, Cast(a.time As java.sql.Time), \
a.latitude, \
a.longitude, \
-case when a.set.schoolType.id = 'fr.ird.referential.ps.common.SchoolType#0#1' then 'BO' else 'BL' end, \
+case when s.schoolType.id = 'fr.ird.referential.ps.common.SchoolType#0#1' then 'BO' else 'BL' end, \
tc.species.faoCode, \
Sum(tc.catchWeight), \
tc.well \
From TripImpl t \
Join t.routeObs r \
-Join r.activity a \
-Join a.set.catches tc \
-Where t.id In :tripId and tc.well != null \
-Group By r.date, a.time, a.latitude, a.longitude, tc.species, tc.species.faoCode, tc.well, a.set.schoolType \
+Join r.activity a With a.set Is Not Null \
+Join a.set s With s.catches Is Not Empty \
+Join s.catches tc With tc.well Is Not Null And tc.well != '' \
+Where t.id In :tripId \
+Group By r.date, a.time, a.latitude, a.longitude, tc.species, tc.species.faoCode, tc.well, s.schoolType \
Order By r.date, a.time, tc.species, tc.well
=====================================
pom.xml
=====================================
@@ -23,7 +23,7 @@
<parent>
<groupId>io.ultreia.maven</groupId>
<artifactId>pom</artifactId>
- <version>2024.13</version>
+ <version>2024.14</version>
</parent>
<groupId>fr.ird.observe</groupId>
<artifactId>ird-observe</artifactId>
=====================================
toolkit/api-services/pom.xml
=====================================
@@ -154,18 +154,30 @@
<goal>check-services-types</goal>
</goals>
<configuration>
- <acceptedTypes>
+ <acceptedParameterTypes>
<acceptedType>io.ultreia.java4all.util.Version</acceptedType>
<acceptedType>java.lang.Class</acceptedType>
<acceptedType>java.lang.String</acceptedType>
- <acceptedType>java.util.List</acceptedType>
+<!-- <acceptedType>java.util.List</acceptedType>-->
<acceptedType>java.util.Set</acceptedType>
<acceptedType>java.util.Map</acceptedType>
<acceptedType>java.util.Date</acceptedType>
- </acceptedTypes>
- <acceptedAssignableTypes>
+ </acceptedParameterTypes>
+ <acceptedReturnTypes>
+ <acceptedType>io.ultreia.java4all.util.Version</acceptedType>
+<!-- <acceptedType>java.lang.Class</acceptedType>-->
+ <acceptedType>java.lang.String</acceptedType>
+ <acceptedType>java.util.List</acceptedType>
+ <acceptedType>java.util.Set</acceptedType>
+<!-- <acceptedType>java.util.Map</acceptedType>-->
+ <acceptedType>java.util.Date</acceptedType>
+ </acceptedReturnTypes>
+ <acceptedAssignableParameterTypes>
+ <acceptedAssignableType>io.ultreia.java4all.util.json.JsonAware</acceptedAssignableType>
+ </acceptedAssignableParameterTypes>
+ <acceptedAssignableReturnTypes>
<acceptedAssignableType>io.ultreia.java4all.util.json.JsonAware</acceptedAssignableType>
- </acceptedAssignableTypes>
+ </acceptedAssignableReturnTypes>
</configuration>
</execution>
</executions>
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/compare/5575d304f92c2d0e1d73f88b…
--
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/compare/5575d304f92c2d0e1d73f88b…
You're receiving this email because of your account on gitlab.com.
1
0
[Git][ultreiaio/ird-observe][develop] 4 commits: La valeur du champs ps_observation.Catch.well a des fois la valeur vide, à la...
by Tony CHEMIT (@tchemit) March 20, 2024
by Tony CHEMIT (@tchemit) March 20, 2024
March 20, 2024
Tony CHEMIT pushed to branch develop at ultreiaio / ird-observe
Commits:
759d9a95 by Tony Chemit at 2024-03-20T14:36:39+01:00
La valeur du champs ps_observation.Catch.well a des fois la valeur vide, à la place de la valeur nulle - Closes #2857
- - - - -
a8bf13a3 by Tony Chemit at 2024-03-20T14:37:10+01:00
Use updated check-services-types configuration
- - - - -
b6f198a3 by Tony Chemit at 2024-03-20T14:37:34+01:00
update pom
- - - - -
5575d304 by Tony Chemit at 2024-03-20T14:38:13+01:00
fix Observations - Types d'activités par zones FPA report (missing GroupBy for postgresql)
- - - - -
7 changed files:
- core/api/services/pom.xml
- core/persistence/migration/src/main/java/fr/ird/observe/spi/migration/v9/DataSourceMigrationForVersion_9_3.java
- + core/persistence/migration/src/main/resources/db/migration/v9/9.3/02_issue-2857-common.sql
- core/persistence/report/src/main/resources/META-INF/report/default/ps/psObservationActivitiesByZone.report
- core/persistence/report/src/main/resources/META-INF/report/default/ps/psObservationRepartionCaleeParCuve.report
- pom.xml
- toolkit/api-services/pom.xml
Changes:
=====================================
core/api/services/pom.xml
=====================================
@@ -203,18 +203,30 @@
<goal>check-services-types</goal>
</goals>
<configuration>
- <acceptedTypes>
+ <acceptedParameterTypes>
<acceptedType>io.ultreia.java4all.util.Version</acceptedType>
<acceptedType>java.lang.Class</acceptedType>
<acceptedType>java.lang.String</acceptedType>
- <acceptedType>java.util.List</acceptedType>
+ <!-- <acceptedType>java.util.List</acceptedType>-->
<acceptedType>java.util.Set</acceptedType>
<acceptedType>java.util.Map</acceptedType>
<acceptedType>java.util.Date</acceptedType>
- </acceptedTypes>
- <acceptedAssignableTypes>
+ </acceptedParameterTypes>
+ <acceptedReturnTypes>
+ <acceptedType>io.ultreia.java4all.util.Version</acceptedType>
+ <!-- <acceptedType>java.lang.Class</acceptedType>-->
+ <acceptedType>java.lang.String</acceptedType>
+ <acceptedType>java.util.List</acceptedType>
+ <acceptedType>java.util.Set</acceptedType>
+ <!-- <acceptedType>java.util.Map</acceptedType>-->
+ <acceptedType>java.util.Date</acceptedType>
+ </acceptedReturnTypes>
+ <acceptedAssignableParameterTypes>
+ <acceptedAssignableType>io.ultreia.java4all.util.json.JsonAware</acceptedAssignableType>
+ </acceptedAssignableParameterTypes>
+ <acceptedAssignableReturnTypes>
<acceptedAssignableType>io.ultreia.java4all.util.json.JsonAware</acceptedAssignableType>
- </acceptedAssignableTypes>
+ </acceptedAssignableReturnTypes>
</configuration>
</execution>
</executions>
=====================================
core/persistence/migration/src/main/java/fr/ird/observe/spi/migration/v9/DataSourceMigrationForVersion_9_3.java
=====================================
@@ -49,6 +49,8 @@ public class DataSourceMigrationForVersion_9_3 extends ByMajorMigrationVersionRe
if (withIds) {
// See https://gitlab.com/ultreiaio/ird-observe/-/issues/2044
executor.addScript("01", "issue-2044");
+ // See https://gitlab.com/ultreiaio/ird-observe/-/issues/2857
+ executor.addScript("01", "issue-2857");
}
}
=====================================
core/persistence/migration/src/main/resources/db/migration/v9/9.3/02_issue-2857-common.sql
=====================================
@@ -0,0 +1 @@
+UPDATE ps_observation.Catch Set well = NULL Where well = '';
\ No newline at end of file
=====================================
core/persistence/report/src/main/resources/META-INF/report/default/ps/psObservationActivitiesByZone.report
=====================================
@@ -42,7 +42,8 @@ From fr.ird.observe.entities.data.ps.common.TripImpl m \
Join m.routeObs r \
Join r.activity a With a.currentFpaZone.id = :zoneFpaId \
Join a.floatingObject dcp \
-Where m.id In :tripId
+Where m.id In :tripId \
+Group By a.currentFpaZone.code, a.currentFpaZone.@i18nColumnName@
request.1.repeat.name=zoneFpaId
request.1.repeat.layout=column
request.1.comment=visite + peche / visite - peche / Deploiement + peche / Deploiement - peche / Modifie + peche / Modifie - peche / Retire + peche / Retire - peche / Abandonne + peche / Abandonne - peche / Coule + peche / Coule - peche / Remplace + peche / Remplace - peche / Autre ou ancien peche + peche / Autre ou ancien peche - peche / Nombre de tortues
=====================================
core/persistence/report/src/main/resources/META-INF/report/default/ps/psObservationRepartionCaleeParCuve.report
=====================================
@@ -34,14 +34,15 @@ request.1.layout=row
request.1.request=Select r.date, Cast(a.time As java.sql.Time), \
a.latitude, \
a.longitude, \
-case when a.set.schoolType.id = 'fr.ird.referential.ps.common.SchoolType#0#1' then 'BO' else 'BL' end, \
+case when s.schoolType.id = 'fr.ird.referential.ps.common.SchoolType#0#1' then 'BO' else 'BL' end, \
tc.species.faoCode, \
Sum(tc.catchWeight), \
tc.well \
From TripImpl t \
Join t.routeObs r \
-Join r.activity a \
-Join a.set.catches tc \
-Where t.id In :tripId and tc.well != null \
-Group By r.date, a.time, a.latitude, a.longitude, tc.species, tc.species.faoCode, tc.well, a.set.schoolType \
+Join r.activity a With a.set Is Not Null \
+Join a.set s With s.catches Is Not Empty \
+Join s.catches tc With tc.well Is Not Null And tc.well != '' \
+Where t.id In :tripId \
+Group By r.date, a.time, a.latitude, a.longitude, tc.species, tc.species.faoCode, tc.well, s.schoolType \
Order By r.date, a.time, tc.species, tc.well
=====================================
pom.xml
=====================================
@@ -23,7 +23,7 @@
<parent>
<groupId>io.ultreia.maven</groupId>
<artifactId>pom</artifactId>
- <version>2024.13</version>
+ <version>2024.14</version>
</parent>
<groupId>fr.ird.observe</groupId>
<artifactId>ird-observe</artifactId>
=====================================
toolkit/api-services/pom.xml
=====================================
@@ -154,18 +154,30 @@
<goal>check-services-types</goal>
</goals>
<configuration>
- <acceptedTypes>
+ <acceptedParameterTypes>
<acceptedType>io.ultreia.java4all.util.Version</acceptedType>
<acceptedType>java.lang.Class</acceptedType>
<acceptedType>java.lang.String</acceptedType>
- <acceptedType>java.util.List</acceptedType>
+<!-- <acceptedType>java.util.List</acceptedType>-->
<acceptedType>java.util.Set</acceptedType>
<acceptedType>java.util.Map</acceptedType>
<acceptedType>java.util.Date</acceptedType>
- </acceptedTypes>
- <acceptedAssignableTypes>
+ </acceptedParameterTypes>
+ <acceptedReturnTypes>
+ <acceptedType>io.ultreia.java4all.util.Version</acceptedType>
+<!-- <acceptedType>java.lang.Class</acceptedType>-->
+ <acceptedType>java.lang.String</acceptedType>
+ <acceptedType>java.util.List</acceptedType>
+ <acceptedType>java.util.Set</acceptedType>
+<!-- <acceptedType>java.util.Map</acceptedType>-->
+ <acceptedType>java.util.Date</acceptedType>
+ </acceptedReturnTypes>
+ <acceptedAssignableParameterTypes>
+ <acceptedAssignableType>io.ultreia.java4all.util.json.JsonAware</acceptedAssignableType>
+ </acceptedAssignableParameterTypes>
+ <acceptedAssignableReturnTypes>
<acceptedAssignableType>io.ultreia.java4all.util.json.JsonAware</acceptedAssignableType>
- </acceptedAssignableTypes>
+ </acceptedAssignableReturnTypes>
</configuration>
</execution>
</executions>
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/compare/0abb219ce8fb6a4ccdd0e51c…
--
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/compare/0abb219ce8fb6a4ccdd0e51c…
You're receiving this email because of your account on gitlab.com.
1
0
[Git][ultreiaio/ird-observe][pages] Site checkin for project ObServe (version 9.3.0-RC-5)
by Tony CHEMIT (@tchemit) March 19, 2024
by Tony CHEMIT (@tchemit) March 19, 2024
March 19, 2024
Tony CHEMIT pushed to branch pages at ultreiaio / ird-observe
Commits:
5e9feb9f by Tony Chemit at 2024-03-19T20:45:47+01:00
Site checkin for project ObServe (version 9.3.0-RC-5)
- - - - -
8 changed files:
- + 9.3.0-RC-5/CHANGELOG.html
- + 9.3.0-RC-5/architecture-logicielle.html
- + 9.3.0-RC-5/avdth/common.html
- + 9.3.0-RC-5/avdth/index.html
- + 9.3.0-RC-5/avdth/landing.html
- + 9.3.0-RC-5/avdth/local_market.html
- + 9.3.0-RC-5/avdth/logbook.html
- + 9.3.0-RC-5/avdth/referential.html
The diff was not included because it is too large.
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/commit/5e9feb9fabfb066ffb8aada80…
--
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/commit/5e9feb9fabfb066ffb8aada80…
You're receiving this email because of your account on gitlab.com.
1
0
[Git][ultreiaio/ird-observe] Deleted branch release/9.3.0-RC-5
by Tony CHEMIT (@tchemit) March 19, 2024
by Tony CHEMIT (@tchemit) March 19, 2024
March 19, 2024
Tony CHEMIT deleted branch release/9.3.0-RC-5 at ultreiaio / ird-observe
--
You're receiving this email because of your account on gitlab.com.
1
0
March 19, 2024
Tony CHEMIT pushed new tag v9.3.0-RC-5 at ultreiaio / ird-observe
--
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/tree/v9.3.0-RC-5
You're receiving this email because of your account on gitlab.com.
1
0
[Git][ultreiaio/ird-observe][release/9.3.0-RC-5] [jgitflow-maven-plugin]updating poms for branch'release/9.3.0-RC-5' with...
by Tony CHEMIT (@tchemit) March 19, 2024
by Tony CHEMIT (@tchemit) March 19, 2024
March 19, 2024
Tony CHEMIT pushed to branch release/9.3.0-RC-5 at ultreiaio / ird-observe
Commits:
d53792ac by Tony Chemit at 2024-03-19T20:23:41+01:00
[jgitflow-maven-plugin]updating poms for branch'release/9.3.0-RC-5' with non-snapshot versions[skip ci]
- - - - -
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/d53792aca0a360bebab31e9eb…
--
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/commit/d53792aca0a360bebab31e9eb…
You're receiving this email because of your account on gitlab.com.
1
0
[Git][ultreiaio/ird-observe][master] 45 commits: [jgitflow-maven-plugin]updating poms for 9.3.0-RC-5-SNAPSHOT development[skip ci]
by Tony CHEMIT (@tchemit) March 19, 2024
by Tony CHEMIT (@tchemit) March 19, 2024
March 19, 2024
Tony CHEMIT pushed to branch master at ultreiaio / ird-observe
Commits:
c7547dfb by Tony Chemit at 2024-02-26T09:02:16+01:00
[jgitflow-maven-plugin]updating poms for 9.3.0-RC-5-SNAPSHOT development[skip ci]
- - - - -
089e6f13 by Tony Chemit at 2024-02-26T09:19:07+01:00
[jgitflow-maven-plugin]updating develop poms to master versions to avoid merge conflicts[skip ci]
- - - - -
bbef1b45 by Tony Chemit at 2024-02-26T09:19:07+01:00
[jgitflow-maven-plugin]merging 'master' into 'develop'
- - - - -
e5452729 by Tony Chemit at 2024-02-26T09:19:09+01:00
[jgitflow-maven-plugin]Updating develop poms back to pre merge state[skip ci]
- - - - -
c28a9e85 by Tony Chemit at 2024-02-29T12:19:24+01:00
Agrandissement de popup - Closes #2836
- - - - -
02bad581 by Tony Chemit at 2024-03-05T15:31:57+01:00
update pom
- - - - -
69c33e34 by Tony Chemit at 2024-03-05T16:20:51+01:00
toolkit-templates - vérification que la tag-value digits est bien définie pour tout attribute de type décimal sur le modèle de persistance
- - - - -
bee7fdae by Tony Chemit at 2024-03-05T16:20:54+01:00
model - Remplissages de la tag-value digits manquante
- - - - -
330e1682 by Tony Chemit at 2024-03-05T16:20:58+01:00
persistence - Mise à jour des descripteurs d'entités
- - - - -
895a9697 by Tony Chemit at 2024-03-05T16:23:06+01:00
Merge branch 'feature/issue-2844' into develop
Consolidation du modèle de persistence sur les données de type décimales -
Closes #2844
- - - - -
bab62840 by Tony Chemit at 2024-03-05T16:23:48+01:00
persistence meta-model: add more stuff in TopiaMetadataEntity
- - - - -
22aa0c31 by Tony Chemit at 2024-03-05T16:24:12+01:00
persistence sql-model: add more stuff in TopiaEntitySqlTable
- - - - -
df0a7b49 by Tony Chemit at 2024-03-05T16:24:13+01:00
persistence: update TopiaEntitySqlModel.json
- - - - -
ac3d0822 by Tony Chemit at 2024-03-05T16:26:12+01:00
Merge branch 'feature/augments-entityModel' into develop
- - - - -
f3055cda by Tony Chemit at 2024-03-05T16:39:51+01:00
persistence - add timestampNow on ServiceContext
- - - - -
1a82f8d0 by Tony Chemit at 2024-03-05T16:39:51+01:00
persistence - add method clearSession on TopiaHibernateSupport
- - - - -
47f1b396 by Tony Chemit at 2024-03-05T16:39:59+01:00
persistence - Introduction de SqlConversions pour gérer les conversions java → sql
- - - - -
2c4fed94 by Tony Chemit at 2024-03-08T12:54:45+01:00
persistence - introduce ToolkitIdModificationsToSql
- - - - -
ae84f818 by Tony Chemit at 2024-03-08T12:54:52+01:00
persistence - introduce toSql method on consolidate engine to produce sql script of modifications
- - - - -
6af33613 by Tony Chemit at 2024-03-08T12:54:58+01:00
persistence - on TripConsolidateEngine.consolidate, now use the generated sql script to finalize consolidation instead of letting Hibernate doing it for us
- - - - -
8a4f3493 by Tony Chemit at 2024-03-15T08:19:43+01:00
Merge branch 'feature/issue-2843' into develop
Erreur sur transaction et plantage de Tomcat sur consolidation en mode serveur
- Closes #2843
- - - - -
8c5dacfe by Tony Chemit at 2024-03-15T08:55:32+01:00
update pom
- - - - -
c9a29d65 by Tony Chemit at 2024-03-15T13:54:37+01:00
Test method ReportService.initColumnRendererParameters
- - - - -
c211705f by Tony Chemit at 2024-03-15T13:54:37+01:00
Reports are not copied to the right place...
- - - - -
b5ef9ebc by Tony Chemit at 2024-03-15T14:38:31+01:00
Update reports documentation
- - - - -
88b13f8a by Tony Chemit at 2024-03-16T13:06:10+01:00
Add more TimeLog and fix log.debug issues in ReportRequestExecutor
- - - - -
b5b80021 by Tony Chemit at 2024-03-18T11:00:40+01:00
Optimisation du rapport Livre de bord - Vérification des plan de cuves - Closes #2849
- - - - -
56d7291a by Tony Chemit at 2024-03-18T11:00:40+01:00
Optimisation du rapport Livre de bord - Plan de cuves - Closes #2850
- - - - -
294f63b2 by Tony Chemit at 2024-03-18T11:00:46+01:00
Optimisation du rapport Observations - Utilisation des FOB, tableau simplifiée - Closes #2851
- - - - -
7f181c46 by Tony Chemit at 2024-03-18T11:00:53+01:00
Optimisation du rapport Observations - Utilisation des FOB, tableau détaillé - Closes #2852
- - - - -
8aa68e2b by Tony Chemit at 2024-03-18T11:00:53+01:00
Lors d'exports massifs de données, le token expire rapidement et fait échouer la suite du processus - Closes #2839
- - - - -
8634165e by Tony Chemit at 2024-03-18T11:00:53+01:00
Amélioration de la taille des colonnes du tableau des résultats d'un rapport - Closes #2853
- - - - -
e06ff9e9 by Tony Chemit at 2024-03-19T11:22:17+01:00
Fix one i18n translation
- - - - -
11ea9d2d by Tony Chemit at 2024-03-19T14:20:44+01:00
Review DataManager code (no more logic in the tasks)
- - - - -
f0d95762 by Tony Chemit at 2024-03-19T14:20:44+01:00
Reduce log in ReferentialIdsBuilder
- - - - -
ed8c4a22 by Tony Chemit at 2024-03-19T14:20:44+01:00
Fix DataSource IO in long actions
- - - - -
b3cab5a2 by Tony Chemit at 2024-03-19T14:20:44+01:00
Perte de connection au serveur lors d'envoie massif de marées - Closes #2854
- - - - -
4b1fe74f by Tony Chemit at 2024-03-19T14:20:44+01:00
update pom
- - - - -
584fa484 by Tony Chemit at 2024-03-19T15:00:14+01:00
Mise à jour du rapport psObservationAllActivities
- - - - -
ddc116b2 by Tony Chemit at 2024-03-19T15:00:14+01:00
Ajout du rapport psObservationActivitiesByZone
- - - - -
27355e37 by Tony Chemit at 2024-03-19T15:00:58+01:00
Merge branch 'feature/issue-2848' into develop
Tableaux de synthèse à intégrer - Closes #2848
- - - - -
fcf880a9 by Tony Chemit at 2024-03-19T15:22:32+01:00
Ajout des rapports sur les FOB PS - Logbook - Closes #2855
- - - - -
8cb7f1d6 by Tony Chemit at 2024-03-19T20:14:00+01:00
Nouveau rapport PS / Observations & Logbooks / Captures par Zone FPA, espèce et devenir - Closes #2856
- - - - -
d53792ac by Tony Chemit at 2024-03-19T20:23:41+01:00
[jgitflow-maven-plugin]updating poms for branch'release/9.3.0-RC-5' with non-snapshot versions[skip ci]
- - - - -
bfe516d5 by Tony Chemit at 2024-03-19T20:38:54+01:00
[jgitflow-maven-plugin]merging 'release/9.3.0-RC-5' into 'master'
- - - - -
30 changed files:
- client/configuration/pom.xml
- client/configuration/src/main/java/fr/ird/observe/client/configuration/ClientConfig.java
- client/core/pom.xml
- client/core/src/main/java/fr/ird/observe/client/datasource/api/data/CopyDataTask.java
- client/core/src/main/java/fr/ird/observe/client/datasource/api/data/DataManager.java
- client/core/src/main/java/fr/ird/observe/client/datasource/api/data/DataTaskSupport.java
- client/core/src/main/java/fr/ird/observe/client/datasource/api/data/DeleteDataTask.java
- client/core/src/main/java/fr/ird/observe/client/datasource/api/data/InsertMissingReferentialTask.java
- client/core/src/main/java/fr/ird/observe/client/datasource/api/data/TaskSide.java
- client/datasource/actions/pom.xml
- client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/export/actions/Prepare.java
- client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/report/ReportModel.java
- client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/synchronize/data/actions/Apply.java
- client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/validate/actions/Start.java
- client/datasource/editor/api-test/pom.xml
- client/datasource/editor/api/pom.xml
- client/datasource/editor/api/src/main/java/fr/ird/observe/client/datasource/editor/api/content/actions/delete/DeletePanel.java
- client/datasource/editor/common/pom.xml
- client/datasource/editor/ll/pom.xml
- client/datasource/editor/pom.xml
- client/datasource/editor/ps/pom.xml
- client/datasource/editor/spi/pom.xml
- client/datasource/pom.xml
- client/pom.xml
- client/runner/pom.xml
- client/runner/src/main/i18n/translations/client-runner_en_GB.properties
- client/runner/src/main/i18n/translations/client-runner_es_ES.properties
- client/runner/src/main/i18n/translations/client-runner_fr_FR.properties
- core/api/dto-consolidation/pom.xml
- core/api/dto-decoration/pom.xml
The diff was not included because it is too large.
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/compare/d8e3a9df16827d2883843aa7…
--
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/compare/d8e3a9df16827d2883843aa7…
You're receiving this email because of your account on gitlab.com.
1
0
[Git][ultreiaio/ird-observe][develop] 5 commits: [jgitflow-maven-plugin]updating poms for branch'release/9.3.0-RC-5' with...
by Tony CHEMIT (@tchemit) March 19, 2024
by Tony CHEMIT (@tchemit) March 19, 2024
March 19, 2024
Tony CHEMIT pushed to branch develop at ultreiaio / ird-observe
Commits:
d53792ac by Tony Chemit at 2024-03-19T20:23:41+01:00
[jgitflow-maven-plugin]updating poms for branch'release/9.3.0-RC-5' with non-snapshot versions[skip ci]
- - - - -
bfe516d5 by Tony Chemit at 2024-03-19T20:38:54+01:00
[jgitflow-maven-plugin]merging 'release/9.3.0-RC-5' into 'master'
- - - - -
144e8568 by Tony Chemit at 2024-03-19T20:38:58+01:00
[jgitflow-maven-plugin]updating develop poms to master versions to avoid merge conflicts[skip ci]
- - - - -
9ac42b8d by Tony Chemit at 2024-03-19T20:38:59+01:00
[jgitflow-maven-plugin]merging 'master' into 'develop'
- - - - -
0abb219c by Tony Chemit at 2024-03-19T20:39:00+01:00
[jgitflow-maven-plugin]Updating develop poms back to pre merge state[skip ci]
- - - - -
0 changed files:
Changes:
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/compare/bcddf0a609a4e5f4d3253609…
--
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/compare/bcddf0a609a4e5f4d3253609…
You're receiving this email because of your account on gitlab.com.
1
0
[Git][ultreiaio/ird-observe][develop] [jgitflow-maven-plugin]updating poms for 9.3.0-RC-6-SNAPSHOT development[skip ci]
by Tony CHEMIT (@tchemit) March 19, 2024
by Tony CHEMIT (@tchemit) March 19, 2024
March 19, 2024
Tony CHEMIT pushed to branch develop at ultreiaio / ird-observe
Commits:
bcddf0a6 by Tony Chemit at 2024-03-19T20:23:24+01:00
[jgitflow-maven-plugin]updating poms for 9.3.0-RC-6-SNAPSHOT development[skip ci]
- - - - -
30 changed files:
- client/configuration/pom.xml
- client/core/pom.xml
- client/datasource/actions/pom.xml
- client/datasource/editor/api-test/pom.xml
- client/datasource/editor/api/pom.xml
- client/datasource/editor/common/pom.xml
- client/datasource/editor/ll/pom.xml
- client/datasource/editor/pom.xml
- client/datasource/editor/ps/pom.xml
- client/datasource/editor/spi/pom.xml
- client/datasource/pom.xml
- client/pom.xml
- client/runner/pom.xml
- core/api/dto-consolidation/pom.xml
- core/api/dto-decoration/pom.xml
- core/api/dto-validation/pom.xml
- core/api/dto/pom.xml
- core/api/pom.xml
- core/api/services/pom.xml
- core/api/tree/pom.xml
- core/api/validation/pom.xml
- core/persistence/avdth/pom.xml
- core/persistence/consolidation/pom.xml
- core/persistence/decoration/pom.xml
- core/persistence/java/pom.xml
- core/persistence/migration/pom.xml
- core/persistence/pom.xml
- core/persistence/report/pom.xml
- core/persistence/resources/pom.xml
- core/persistence/test/pom.xml
The diff was not included because it is too large.
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/commit/bcddf0a609a4e5f4d32536096…
--
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/commit/bcddf0a609a4e5f4d32536096…
You're receiving this email because of your account on gitlab.com.
1
0
[Git][ultreiaio/ird-observe] Pushed new branch release/9.3.0-RC-5
by Tony CHEMIT (@tchemit) March 19, 2024
by Tony CHEMIT (@tchemit) March 19, 2024
March 19, 2024
Tony CHEMIT pushed new branch release/9.3.0-RC-5 at ultreiaio / ird-observe
--
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/tree/release/9.3.0-RC-5
You're receiving this email because of your account on gitlab.com.
1
0
[Git][ultreiaio/ird-observe][develop] Nouveau rapport PS / Observations & Logbooks / Captures par Zone FPA, espèce...
by Tony CHEMIT (@tchemit) March 19, 2024
by Tony CHEMIT (@tchemit) March 19, 2024
March 19, 2024
Tony CHEMIT pushed to branch develop at ultreiaio / ird-observe
Commits:
8cb7f1d6 by Tony Chemit at 2024-03-19T20:14:00+01:00
Nouveau rapport PS / Observations & Logbooks / Captures par Zone FPA, espèce et devenir - Closes #2856
- - - - -
9 changed files:
- + core/persistence/report/src/main/resources/META-INF/report/default/ps/psLogbookCatchWeightByFPAZonePerSpeciesFate.report
- + core/persistence/report/src/main/resources/META-INF/report/default/ps/psObservationCatchWeightByFPAZonePerSpeciesFate.report
- core/persistence/report/src/main/resources/META-INF/report/embedded.list
- core/persistence/report/src/test/java/fr/ird/observe/report/ToolsTest.java
- + core/services/test/src/main/java/fr/ird/observe/services/service/report/ps/PsLogbookCatchWeightByFPAZonePerSpeciesFateReportFixture.java
- + core/services/test/src/main/java/fr/ird/observe/services/service/report/ps/PsObservationCatchWeightByFPAZonePerSpeciesFateReportFixture.java
- + core/services/test/src/main/resources/fixtures/fr/ird/observe/services/service/ReportService-psLogbookCatchWeightByFPAZonePerSpeciesFate.properties
- + core/services/test/src/main/resources/fixtures/fr/ird/observe/services/service/ReportService-psObservationCatchWeightByFPAZonePerSpeciesFate.properties
- core/services/test/src/main/resources/fixtures/fr/ird/observe/services/service/ReportService.properties
Changes:
=====================================
core/persistence/report/src/main/resources/META-INF/report/default/ps/psLogbookCatchWeightByFPAZonePerSpeciesFate.report
=====================================
@@ -0,0 +1,89 @@
+###
+# #%L
+# ObServe Core :: Persistence :: Report
+# %%
+# Copyright (C) 2008 - 2023 IRD, Ultreia.io
+# %%
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as
+# published by the Free Software Foundation, either version 3 of the
+# License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public
+# License along with this program. If not, see
+# <http://www.gnu.org/licenses/gpl-3.0.html>.
+# #L%
+###
+modelType=PS
+name=Livre de bord - Devenir des captures par groupe d'espèces et par zone FPA filtré par groupe d'espèce (en t)
+name.en=Logbook - Catch fates by species group and FPA zone, filtered per group (in t)
+name.es=
+description=Après sélection d'un groupe d'espèces, ce rapport retourne les poids capturés (en tonnes) par zone FPA et par devenir
+description.en=Once a species group is selected, this report returns catch weights (in tons) by FPA zone and fate
+description.es=
+variable.1.name=speciesGroup
+variable.1.type=fr.ird.observe.dto.referential.common.SpeciesGroupReference
+variable.1.request=Select distinct sg \
+From TripImpl t \
+Join t.routeLogbook r \
+Join r.activity a \
+Join a.catches ca with ca.weight Is Not Null \
+Join ca.species e \
+Join e.speciesGroup sg \
+Where t.id In :tripId \
+Order By sg.code
+repeatVariable.1.name=fpaZone
+repeatVariable.1.type=fr.ird.observe.entities.referential.common.FpaZone
+repeatVariable.1.request=Select distinct z \
+From TripImpl t \
+Join t.routeLogbook r \
+Join r.activity a \
+Join a.currentFpaZone z \
+Join a.catches ca with ca.weight Is Not Null And ca.species.speciesGroup.id = :speciesGroup \
+Where t.id In :tripId \
+Order By z.code, z.@i18nColumnName@
+repeatVariable.2.name=speciesFate
+repeatVariable.2.type=fr.ird.observe.entities.referential.ps.common.SpeciesFate
+repeatVariable.2.request=Select distinct sf \
+From TripImpl t \
+Join t.routeLogbook r \
+Join r.activity a \
+Join a.catches ca with ca.weight Is Not Null And ca.species.speciesGroup.id = :speciesGroup \
+Join ca.speciesFate sf \
+Where t.id In :tripId \
+Order by sf.discard, sf.code
+request.1.location=0,0
+request.1.layout=row
+request.1.request=Select \
+concat( z.code, ' - ', z.@i18nColumnName@) \
+From FpaZoneImpl z \
+Where z In :fpaZone \
+Group by z.code, z.@i18nColumnName@
+request.1.repeat.name=fpaZone
+request.1.repeat.layout=column
+operations.1.type=ExecuteRequestAndReorganizeDataByRepeatVariable
+operations.1.parameters=fpaZone|speciesFate|Select \
+z.id, sf.id, Sum(ca.weight) \
+From TripImpl m \
+Join m.routeLogbook r \
+Join r.activity a \
+Join a.currentFpaZone z With z.id In :fpaZone \
+Join a.catches ca with ca.weight Is Not Null And ca.species.speciesGroup.id = :speciesGroup \
+Join ca.speciesFate sf with sf.id In :speciesFate \
+Where m.id In :tripId \
+Group by z, sf \
+Order By z.code
+operations.2.type=ComputeDynamicHeader
+operations.2.parameters=@fpaZone@|speciesFate
+operations.3.type=SumRow
+operations.3.parameters=0|1
+operations.4.type=SumColumn
+operations.4.parameters=1|1
+i18n.fpaZone=Zone FPA
+i18n.fpaZone.en=FPA Zone
+i18n.fpaZone.es=
\ No newline at end of file
=====================================
core/persistence/report/src/main/resources/META-INF/report/default/ps/psObservationCatchWeightByFPAZonePerSpeciesFate.report
=====================================
@@ -0,0 +1,93 @@
+###
+# #%L
+# ObServe Core :: Persistence :: Report
+# %%
+# Copyright (C) 2008 - 2023 IRD, Ultreia.io
+# %%
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as
+# published by the Free Software Foundation, either version 3 of the
+# License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public
+# License along with this program. If not, see
+# <http://www.gnu.org/licenses/gpl-3.0.html>.
+# #L%
+###
+modelType=PS
+name=Observations - Devenir des captures par groupe d'espèces et par zone FPA filtré par groupe d'espèce (en t)
+name.en=Observation - Catch fates by species group and FPA zone, filtered per group (in t)
+name.es=
+description=Après sélection d'un groupe d'espèces, ce rapport retourne les poids capturés (en tonnes) par zone FPA et par devenir
+description.en=Once a species group is selected, this report returns catch weights (in tons) by FPA zone and fate
+description.es=
+variable.1.name=speciesGroup
+variable.1.type=fr.ird.observe.dto.referential.common.SpeciesGroupReference
+variable.1.request=Select distinct sg \
+From TripImpl t \
+Join t.routeObs r \
+Join r.activity a \
+Join a.set c \
+Join c.catches ca with ca.catchWeight Is Not Null \
+Join ca.species e \
+Join e.speciesGroup sg \
+Where t.id In :tripId \
+Order By sg.code
+repeatVariable.1.name=fpaZone
+repeatVariable.1.type=fr.ird.observe.entities.referential.common.FpaZone
+repeatVariable.1.request=Select distinct z \
+From TripImpl t \
+Join t.routeObs r \
+Join r.activity a \
+Join a.currentFpaZone z \
+Join a.set c \
+Join c.catches ca with ca.catchWeight Is Not Null And ca.species.speciesGroup.id = :speciesGroup \
+Where t.id In :tripId \
+Order By z.code, z.@i18nColumnName@
+repeatVariable.2.name=speciesFate
+repeatVariable.2.type=fr.ird.observe.entities.referential.ps.common.SpeciesFate
+repeatVariable.2.request=Select distinct sf \
+From TripImpl t \
+Join t.routeObs r \
+Join r.activity a \
+Join a.set c \
+Join c.catches ca with ca.catchWeight Is Not Null And ca.species.speciesGroup.id = :speciesGroup \
+Join ca.speciesFate sf \
+Where t.id In :tripId \
+Order by sf.discard, sf.code
+request.1.location=0,0
+request.1.layout=row
+request.1.request=Select \
+concat( z.code, ' - ', z.@i18nColumnName@) \
+From FpaZoneImpl z \
+Where z In :fpaZone \
+Group by z.code, z.@i18nColumnName@
+request.1.repeat.name=fpaZone
+request.1.repeat.layout=column
+operations.1.type=ExecuteRequestAndReorganizeDataByRepeatVariable
+operations.1.parameters=fpaZone|speciesFate|Select \
+z.id, sf.id, Sum(ca.catchWeight) \
+From TripImpl m \
+Join m.routeObs r \
+Join r.activity a \
+Join a.currentFpaZone z With z.id In :fpaZone \
+Join a.set c \
+Join c.catches ca with ca.catchWeight Is Not Null And ca.species.speciesGroup.id = :speciesGroup \
+Join ca.speciesFate sf with sf.id In :speciesFate \
+Where m.id In :tripId \
+Group by z, sf \
+Order By z.code
+operations.2.type=ComputeDynamicHeader
+operations.2.parameters=@fpaZone@|speciesFate
+operations.3.type=SumRow
+operations.3.parameters=0|1
+operations.4.type=SumColumn
+operations.4.parameters=1|1
+i18n.fpaZone=Zone FPA
+i18n.fpaZone.en=FPA Zone
+i18n.fpaZone.es=
\ No newline at end of file
=====================================
core/persistence/report/src/main/resources/META-INF/report/embedded.list
=====================================
@@ -10,6 +10,7 @@ default/ps/psLocalmarketBatch.report
default/ps/psLocalmarketSample.report
default/ps/psLocalmarketSurvey.report
default/ps/psLogbookActivity.report
+default/ps/psLogbookCatchWeightByFPAZonePerSpeciesFate.report
default/ps/psLogbookFobUsageExtended.report
default/ps/psLogbookFobUsageMinimal.report
default/ps/psLogbookSampleMeasures.report
@@ -26,6 +27,7 @@ default/ps/psObservationCatch.report
default/ps/psObservationCatchTotalCountByGroupAndSpeciesFateDiscardPerAssociation.report
default/ps/psObservationCatchTotalCountByGroupPerReasonForDiscard.report
default/ps/psObservationCatchTotalCountByGroupPerSpeciesFate.report
+default/ps/psObservationCatchWeightByFPAZonePerSpeciesFate.report
default/ps/psObservationCatchWeightByGroupAndSpeciesFateDiscardPerAssociation.report
default/ps/psObservationCatchWeightByGroupPerReasonForDiscard.report
default/ps/psObservationCatchWeightByGroupPerSpeciesFate.report
=====================================
core/persistence/report/src/test/java/fr/ird/observe/report/ToolsTest.java
=====================================
@@ -47,7 +47,7 @@ import java.util.Objects;
public class ToolsTest {
- public static final int REPORTS_COUNT_COUNT = 37;
+ public static final int REPORTS_COUNT_COUNT = 39;
private static Path reportsPath(Path basedir) {
return basedir.resolve("src").resolve("main").resolve("resources").resolve("META-INF").resolve("report");
=====================================
core/services/test/src/main/java/fr/ird/observe/services/service/report/ps/PsLogbookCatchWeightByFPAZonePerSpeciesFateReportFixture.java
=====================================
@@ -0,0 +1,53 @@
+package fr.ird.observe.services.service.report.ps;
+
+/*-
+ * #%L
+ * ObServe Core :: Services :: Test
+ * %%
+ * Copyright (C) 2008 - 2024 IRD, Ultreia.io
+ * %%
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public
+ * License along with this program. If not, see
+ * <http://www.gnu.org/licenses/gpl-3.0.html>.
+ * #L%
+ */
+
+import com.google.auto.service.AutoService;
+import fr.ird.observe.report.Report;
+import fr.ird.observe.report.definition.ReportRequestDefinition;
+import fr.ird.observe.report.definition.RequestLayout;
+import fr.ird.observe.services.service.ReportFixture;
+
+import java.util.Iterator;
+
+/**
+ * Created at 19/03/2024.
+ *
+ * @author Tony Chemit - dev(a)tchemit.fr
+ * @since 9.3.0
+ */
+(a)AutoService(ReportFixture.class)
+public class PsLogbookCatchWeightByFPAZonePerSpeciesFateReportFixture extends ReportFixture {
+
+ @Override
+ public void assertSyntax(Report report) {
+ super.assertSyntax(report);
+ Iterator<ReportRequestDefinition> requests = getRequestIterator(report);
+ assertReportRequestDimension(requests, RequestLayout.row, 0, 0);
+ }
+
+ @Override
+ protected void setVariables(Report report) {
+ setVariableValue(report, "speciesGroup", "fr.ird.referential.common.SpeciesGroup#1239832683689#0.7120116158620075");
+ }
+}
=====================================
core/services/test/src/main/java/fr/ird/observe/services/service/report/ps/PsObservationCatchWeightByFPAZonePerSpeciesFateReportFixture.java
=====================================
@@ -0,0 +1,53 @@
+package fr.ird.observe.services.service.report.ps;
+
+/*-
+ * #%L
+ * ObServe Core :: Services :: Test
+ * %%
+ * Copyright (C) 2008 - 2024 IRD, Ultreia.io
+ * %%
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public
+ * License along with this program. If not, see
+ * <http://www.gnu.org/licenses/gpl-3.0.html>.
+ * #L%
+ */
+
+import com.google.auto.service.AutoService;
+import fr.ird.observe.report.Report;
+import fr.ird.observe.report.definition.ReportRequestDefinition;
+import fr.ird.observe.report.definition.RequestLayout;
+import fr.ird.observe.services.service.ReportFixture;
+
+import java.util.Iterator;
+
+/**
+ * Created at 19/03/2024.
+ *
+ * @author Tony Chemit - dev(a)tchemit.fr
+ * @since 9.3.0
+ */
+(a)AutoService(ReportFixture.class)
+public class PsObservationCatchWeightByFPAZonePerSpeciesFateReportFixture extends ReportFixture {
+
+ @Override
+ public void assertSyntax(Report report) {
+ super.assertSyntax(report);
+ Iterator<ReportRequestDefinition> requests = getRequestIterator(report);
+ assertReportRequestDimension(requests, RequestLayout.row, 0, 0);
+ }
+
+ @Override
+ protected void setVariables(Report report) {
+ setVariableValue(report, "speciesGroup", "fr.ird.referential.common.SpeciesGroup#1239832683689#0.7120116158620075");
+ }
+}
=====================================
core/services/test/src/main/resources/fixtures/fr/ird/observe/services/service/ReportService-psLogbookCatchWeightByFPAZonePerSpeciesFate.properties
=====================================
@@ -0,0 +1,28 @@
+###
+# #%L
+# ObServe Core :: Services :: Test
+# %%
+# Copyright (C) 2008 - 2024 IRD, Ultreia.io
+# %%
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as
+# published by the Free Software Foundation, either version 3 of the
+# License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public
+# License along with this program. If not, see
+# <http://www.gnu.org/licenses/gpl-3.0.html>.
+# #L%
+###
+syntax.name=Livre de bord - Devenir des captures par groupe d'espèces et par zone FPA filtré par groupe d'espèce (en t)
+syntax.description=Après sélection d'un groupe d'espèces, ce rapport retourne les poids capturés (en tonnes) par zone FPA et par devenir
+syntax.rows=-1
+syntax.columns=-1
+syntax.columnsHeader=
+syntax.rowsHeader=
+syntax.nbRequests=1
=====================================
core/services/test/src/main/resources/fixtures/fr/ird/observe/services/service/ReportService-psObservationCatchWeightByFPAZonePerSpeciesFate.properties
=====================================
@@ -0,0 +1,32 @@
+###
+# #%L
+# ObServe Core :: Services :: Test
+# %%
+# Copyright (C) 2008 - 2024 IRD, Ultreia.io
+# %%
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as
+# published by the Free Software Foundation, either version 3 of the
+# License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public
+# License along with this program. If not, see
+# <http://www.gnu.org/licenses/gpl-3.0.html>.
+# #L%
+###
+syntax.name=Observations - Devenir des captures par groupe d'espèces et par zone FPA filtré par groupe d'espèce (en t)
+syntax.description=Après sélection d'un groupe d'espèces, ce rapport retourne les poids capturés (en tonnes) par zone FPA et par devenir
+syntax.rows=-1
+syntax.columns=-1
+syntax.columnsHeader=
+syntax.rowsHeader=
+syntax.nbRequests=1
+result.columns=2
+result.rows=2
+result.0=Zone FPA^Echappe du filet (pour requin-baleine et cétacés)
+result.1=CIV - Côte d'Ivoire^12.0
=====================================
core/services/test/src/main/resources/fixtures/fr/ird/observe/services/service/ReportService.properties
=====================================
@@ -19,4 +19,4 @@
# <http://www.gnu.org/licenses/gpl-3.0.html>.
# #L%
###
-report.count=37
+report.count=39
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/commit/8cb7f1d683c1bc48845193e8a…
--
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/commit/8cb7f1d683c1bc48845193e8a…
You're receiving this email because of your account on gitlab.com.
1
0
[Git][ultreiaio/ird-observe][develop] Ajout des rapports sur les FOB PS - Logbook - Closes #2855
by Tony CHEMIT (@tchemit) March 19, 2024
by Tony CHEMIT (@tchemit) March 19, 2024
March 19, 2024
Tony CHEMIT pushed to branch develop at ultreiaio / ird-observe
Commits:
fcf880a9 by Tony Chemit at 2024-03-19T15:22:32+01:00
Ajout des rapports sur les FOB PS - Logbook - Closes #2855
- - - - -
9 changed files:
- + core/persistence/report/src/main/resources/META-INF/report/default/ps/psLogbookFobUsageExtended.report
- + core/persistence/report/src/main/resources/META-INF/report/default/ps/psLogbookFobUsageMinimal.report
- core/persistence/report/src/main/resources/META-INF/report/embedded.list
- core/persistence/report/src/test/java/fr/ird/observe/report/ToolsTest.java
- + core/services/test/src/main/java/fr/ird/observe/services/service/report/ps/PsLogbookFobUsageExtendedReportFixture.java
- + core/services/test/src/main/java/fr/ird/observe/services/service/report/ps/PsLogbookFobUsageMinimalReportFixture.java
- + core/services/test/src/main/resources/fixtures/fr/ird/observe/services/service/ReportService-psLogbookFobUsageExtended.properties
- + core/services/test/src/main/resources/fixtures/fr/ird/observe/services/service/ReportService-psLogbookFobUsageMinimal.properties
- core/services/test/src/main/resources/fixtures/fr/ird/observe/services/service/ReportService.properties
Changes:
=====================================
core/persistence/report/src/main/resources/META-INF/report/default/ps/psLogbookFobUsageExtended.report
=====================================
@@ -0,0 +1,86 @@
+###
+# #%L
+# ObServe Core :: Persistence :: Report
+# %%
+# Copyright (C) 2008 - 2023 IRD, Ultreia.io
+# %%
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as
+# published by the Free Software Foundation, either version 3 of the
+# License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public
+# License along with this program. If not, see
+# <http://www.gnu.org/licenses/gpl-3.0.html>.
+# #L%
+###
+modelType=PS
+name=Livre de bord - Utilisation des FOB, tableau détaillé
+name.en=Logbook - FOB usage - detailled version
+name.es=
+description=Tableau récapitulatif des FOB rencontrés, par types CECOFAD et types d’actions (déploiements, simples visites, modifications, diverses modalités de retraits), avec et sans pêche
+description.en=Summary of FOB encountered, by CECOFAD types, types of object operation (deployment, visit, update, kinds of retrievals), presence or absence of associated fishing set
+description.es=
+columns=Type de FOB,Visités Pêchés,Visités non Pêchés,Déploiement après Pêches,Déploiement seul,Modifiés Pêchés,Modifiés non Pêchés,Retirés Pêchés,Retirés non Pêchés,Abandonnés Pêchés,Abandonnés non Pêchés,Coulés Pêchés,Coulés non Pêchés,Remplacés Pêchés,Remplacés non Pêchés,Autre Pêchés,Autre non Pêchés
+columns.en=CECOFAD type,Visit and fishing,Visit only,Deployment after fishing,Deployment only,Modification after fishing,Modification only,Retrieval after fishing,Retrieval only,Abandonment after fishing,Abandonment only,Sinking after fishing,Sinking only,Replacment after fishing,Replacment only,Other activity after fishing,Other activity only
+columns.es=
+repeatVariable.1.name=typeObjetId
+repeatVariable.1.type=java.lang.String
+repeatVariable.1.request=Select distinct (om.standardCode) \
+From ObjectMaterialImpl om \
+Where om.standardCode is not null \
+And om.standardCode != '' \
+And (om.standardCode In (Select Distinct(dcp.computedWhenArrivingSimplifiedObjectType) \
+From fr.ird.observe.entities.data.ps.common.TripImpl m \
+Join m.routeLogbook r \
+Join r.activity a \
+Join a.floatingObject dcp With dcp.computedWhenArrivingSimplifiedObjectType Is Not Null \
+Where m.id In :tripId ) Or om.standardCode In (Select Distinct(dcp.computedWhenLeavingSimplifiedObjectType) \
+From fr.ird.observe.entities.data.ps.common.TripImpl m \
+Join m.routeLogbook r \
+Join r.activity a \
+Join a.floatingObject dcp With dcp.computedWhenLeavingSimplifiedObjectType Is Not Null \
+Where m.id In :tripId )) \
+Order by om.standardCode
+request.1.location=0,0
+request.1.layout=row
+request.1.request=Select concat(str(om.standardCode) , ' - ', om.@i18nColumnName@) \
+From ObjectMaterialImpl om \
+Where \
+om.standardCode = :typeObjetId \
+And om.status != 0
+request.1.repeat.name=typeObjetId
+request.1.repeat.layout=column
+request.2.location=1,0
+request.2.layout=row
+request.2.request=Select \
+Sum(Case When dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId And dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#2' And a.vesselActivity.id = 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586' Then 1 Else 0 End), \
+Sum(Case When dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId And dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#2' And a.vesselActivity.id != 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586' Then 1 Else 0 End), \
+Sum(Case When dcp.computedWhenLeavingSimplifiedObjectType = :typeObjetId And dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#1' And a.vesselActivity.id = 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586' Then 1 Else 0 End), \
+Sum(Case When dcp.computedWhenLeavingSimplifiedObjectType = :typeObjetId And dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#1' And a.vesselActivity.id != 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586' Then 1 Else 0 End), \
+Sum(Case When dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId And dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#8' And a.vesselActivity.id = 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586' Then 1 Else 0 End), \
+Sum(Case When dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId And dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#8' And a.vesselActivity.id != 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586' Then 1 Else 0 End), \
+Sum(Case When dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId And dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#4' And a.vesselActivity.id = 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586' Then 1 Else 0 End), \
+Sum(Case When dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId And dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#4' And a.vesselActivity.id != 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586' Then 1 Else 0 End), \
+Sum(Case When dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId And dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#5' And a.vesselActivity.id = 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586' Then 1 Else 0 End), \
+Sum(Case When dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId And dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#5' And a.vesselActivity.id != 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586' Then 1 Else 0 End), \
+Sum(Case When dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId And dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#7' And a.vesselActivity.id = 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586' Then 1 Else 0 End), \
+Sum(Case When dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId And dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#7' And a.vesselActivity.id != 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586' Then 1 Else 0 End), \
+Sum(Case When dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId And dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#9' And a.vesselActivity.id = 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586' Then 1 Else 0 End), \
+Sum(Case When dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId And dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#9' And a.vesselActivity.id != 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586' Then 1 Else 0 End), \
+Sum(Case When dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId And (dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#10' Or dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#3') And a.vesselActivity.id = 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586' Then 1 Else 0 End), \
+Sum(Case When dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId And (dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#10' Or dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#3') And a.vesselActivity.id != 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586' Then 1 Else 0 End) \
+From fr.ird.observe.entities.data.ps.common.TripImpl m \
+Join m.routeLogbook r \
+Join r.activity a \
+Join a.floatingObject dcp With dcp.computedWhenLeavingSimplifiedObjectType = :typeObjetId Or dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId \
+Where \
+m.id In :tripId
+request.2.repeat.name=typeObjetId
+request.2.repeat.layout=column
+request.2.comment=visite + peche / visite - peche / Deploiement + peche / Deploiement - peche / Modifie + peche / Modifie - peche / Retire + peche / Retire - peche / Abandonne + peche / Abandonne - peche / Coule + peche / Coule - peche / Remplace + peche / Remplace - peche / Autre ou ancien peche + peche / Autre ou ancien peche - peche / Nombre de tortues
=====================================
core/persistence/report/src/main/resources/META-INF/report/default/ps/psLogbookFobUsageMinimal.report
=====================================
@@ -0,0 +1,88 @@
+###
+# #%L
+# ObServe Core :: Persistence :: Report
+# %%
+# Copyright (C) 2008 - 2023 IRD, Ultreia.io
+# %%
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as
+# published by the Free Software Foundation, either version 3 of the
+# License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public
+# License along with this program. If not, see
+# <http://www.gnu.org/licenses/gpl-3.0.html>.
+# #L%
+###
+modelType=PS
+name=Livre de bord - Utilisation des FOB, tableau simplifiée
+name.en=Logbook - FOB usage, simplified version
+name.es=
+description=Tableau récapitulatif des FOB rencontrés, par types CECOFAD et types d’actions regroupés (rencontrés et pêchés, rencontrés non pêchés, déployés)
+description.en=Total number of found FOB,per CECOFAD types and action type (Visited fishing,Visited not fishing, deployed)
+description.es=
+columns=Type de FOB,Rencontrés pêchés,Rencontrés non pêchés,Déployés
+columns.en=FOB type,Visited fishing,Visiting no fishing,Deployed
+columns.es=
+repeatVariable.1.name=typeObjetId
+repeatVariable.1.type=java.lang.String
+repeatVariable.1.request=Select distinct (om.standardCode) \
+From ObjectMaterialImpl om \
+Where om.standardCode is not null \
+And om.standardCode != '' \
+And (om.standardCode In (Select Distinct(dcp.computedWhenArrivingSimplifiedObjectType) \
+From fr.ird.observe.entities.data.ps.common.TripImpl m \
+Join m.routeLogbook r \
+Join r.activity a \
+Join a.floatingObject dcp With dcp.computedWhenArrivingSimplifiedObjectType Is Not Null \
+Where m.id In :tripId ) Or om.standardCode In (Select Distinct(dcp.computedWhenLeavingSimplifiedObjectType) \
+From fr.ird.observe.entities.data.ps.common.TripImpl m \
+Join m.routeLogbook r \
+Join r.activity a \
+Join a.floatingObject dcp With dcp.computedWhenLeavingSimplifiedObjectType Is Not Null \
+Where m.id In :tripId )) \
+Order by om.standardCode
+repeatVariable.1.comment=liste des types CECOFAD en presence sur les donnees selectionnees
+request.1.location=0,0
+request.1.layout=row
+request.1.request=Select concat(str(om.standardCode) , ' - ', om.@i18nColumnName@) \
+From ObjectMaterialImpl om \
+Where \
+om.standardCode = :typeObjetId \
+And om.status != 0
+request.1.repeat.name=typeObjetId
+request.1.repeat.layout=column
+request.2.location=1,0
+request.2.layout=row
+request.2.request=Select \
+Sum(Case When dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId And a.vesselActivity.id = 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586' And (dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#2' \
+or dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#8' \
+or dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#4' \
+or dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#5' \
+or dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#7' \
+or dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#9' \
+or dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#10' \
+or dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#3') Then 1 Else 0 End), \
+Sum(Case When dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId And a.vesselActivity.id != 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586' And (dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#2' \
+or dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#8' \
+or dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#4' \
+or dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#5' \
+or dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#7' \
+or dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#9' \
+or dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#10' \
+or dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#3') Then 1 Else 0 End), \
+Sum(Case When dcp.computedWhenLeavingSimplifiedObjectType = :typeObjetId And dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#1' Then 1 Else 0 End) \
+From fr.ird.observe.entities.data.ps.common.TripImpl m \
+Join m.routeLogbook r \
+Join r.activity a \
+Join a.floatingObject dcp With dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId Or dcp.computedWhenLeavingSimplifiedObjectType = :typeObjetId \
+Where \
+m.id In :tripId
+request.2.repeat.name=typeObjetId
+request.2.repeat.layout=column
+request.2.comment=rencontres + peches / rencontres - peches / deployes / Nombre de tortues
=====================================
core/persistence/report/src/main/resources/META-INF/report/embedded.list
=====================================
@@ -10,6 +10,8 @@ default/ps/psLocalmarketBatch.report
default/ps/psLocalmarketSample.report
default/ps/psLocalmarketSurvey.report
default/ps/psLogbookActivity.report
+default/ps/psLogbookFobUsageExtended.report
+default/ps/psLogbookFobUsageMinimal.report
default/ps/psLogbookSampleMeasures.report
default/ps/psLogbookSampleSet.report
default/ps/psLogbookSampleSpeciesMeasures.report
=====================================
core/persistence/report/src/test/java/fr/ird/observe/report/ToolsTest.java
=====================================
@@ -47,7 +47,7 @@ import java.util.Objects;
public class ToolsTest {
- public static final int REPORTS_COUNT_COUNT = 35;
+ public static final int REPORTS_COUNT_COUNT = 37;
private static Path reportsPath(Path basedir) {
return basedir.resolve("src").resolve("main").resolve("resources").resolve("META-INF").resolve("report");
=====================================
core/services/test/src/main/java/fr/ird/observe/services/service/report/ps/PsLogbookFobUsageExtendedReportFixture.java
=====================================
@@ -0,0 +1,49 @@
+package fr.ird.observe.services.service.report.ps;
+
+/*-
+ * #%L
+ * ObServe Core :: Services :: Test
+ * %%
+ * Copyright (C) 2008 - 2023 IRD, Ultreia.io
+ * %%
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public
+ * License along with this program. If not, see
+ * <http://www.gnu.org/licenses/gpl-3.0.html>.
+ * #L%
+ */
+
+import com.google.auto.service.AutoService;
+import fr.ird.observe.report.Report;
+import fr.ird.observe.report.definition.ReportRequestDefinition;
+import fr.ird.observe.report.definition.RequestLayout;
+import fr.ird.observe.services.service.ReportFixture;
+
+import java.util.Iterator;
+
+/**
+ * Created on 17/02/2021.
+ *
+ * @author Tony Chemit - dev(a)tchemit.fr
+ * @since 8.0.6
+ */
+(a)AutoService(ReportFixture.class)
+public class PsLogbookFobUsageExtendedReportFixture extends ReportFixture {
+
+ @Override
+ public void assertSyntax(Report report) {
+ super.assertSyntax(report);
+ Iterator<ReportRequestDefinition> requests = getRequestIterator(report);
+ assertReportRequestDimension(requests, RequestLayout.row, 0, 0);
+ assertReportRequestDimension(requests, RequestLayout.row, 1, 0);
+ }
+}
=====================================
core/services/test/src/main/java/fr/ird/observe/services/service/report/ps/PsLogbookFobUsageMinimalReportFixture.java
=====================================
@@ -0,0 +1,49 @@
+package fr.ird.observe.services.service.report.ps;
+
+/*-
+ * #%L
+ * ObServe Core :: Services :: Test
+ * %%
+ * Copyright (C) 2008 - 2023 IRD, Ultreia.io
+ * %%
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public
+ * License along with this program. If not, see
+ * <http://www.gnu.org/licenses/gpl-3.0.html>.
+ * #L%
+ */
+
+import com.google.auto.service.AutoService;
+import fr.ird.observe.report.Report;
+import fr.ird.observe.report.definition.ReportRequestDefinition;
+import fr.ird.observe.report.definition.RequestLayout;
+import fr.ird.observe.services.service.ReportFixture;
+
+import java.util.Iterator;
+
+/**
+ * Created on 17/02/2021.
+ *
+ * @author Tony Chemit - dev(a)tchemit.fr
+ * @since 8.0.6
+ */
+(a)AutoService(ReportFixture.class)
+public class PsLogbookFobUsageMinimalReportFixture extends ReportFixture {
+
+ @Override
+ public void assertSyntax(Report report) {
+ super.assertSyntax(report);
+ Iterator<ReportRequestDefinition> requests = getRequestIterator(report);
+ assertReportRequestDimension(requests, RequestLayout.row, 0, 0);
+ assertReportRequestDimension(requests, RequestLayout.row, 1, 0);
+ }
+}
=====================================
core/services/test/src/main/resources/fixtures/fr/ird/observe/services/service/ReportService-psLogbookFobUsageExtended.properties
=====================================
@@ -0,0 +1,31 @@
+###
+# #%L
+# ObServe Core :: Services :: Test
+# %%
+# Copyright (C) 2008 - 2023 IRD, Ultreia.io
+# %%
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as
+# published by the Free Software Foundation, either version 3 of the
+# License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public
+# License along with this program. If not, see
+# <http://www.gnu.org/licenses/gpl-3.0.html>.
+# #L%
+###
+result.0=DFAD - DFAD (FAD dérivant)^0^0^0^0^0^0^0^0^1^0^0^0^0^0^0^0
+result.columns=17
+result.rows=1
+syntax.columns=17
+syntax.columnsHeader=Type de FOB^Visités Pêchés^Visités non Pêchés^Déploiement après Pêches^Déploiement seul^Modifiés Pêchés^Modifiés non Pêchés^Retirés Pêchés^Retirés non Pêchés^Abandonnés Pêchés^Abandonnés non Pêchés^Coulés Pêchés^Coulés non Pêchés^Remplacés Pêchés^Remplacés non Pêchés^Autre Pêchés^Autre non Pêchés
+syntax.description=Tableau récapitulatif des FOB rencontrés, par types CECOFAD et types d’actions (déploiements, simples visites, modifications, diverses modalités de retraits), avec et sans pêche
+syntax.name=Livre de bord - Utilisation des FOB, tableau détaillé
+syntax.nbRequests=2
+syntax.rows=-1
+syntax.rowsHeader=
=====================================
core/services/test/src/main/resources/fixtures/fr/ird/observe/services/service/ReportService-psLogbookFobUsageMinimal.properties
=====================================
@@ -0,0 +1,31 @@
+###
+# #%L
+# ObServe Core :: Services :: Test
+# %%
+# Copyright (C) 2008 - 2023 IRD, Ultreia.io
+# %%
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as
+# published by the Free Software Foundation, either version 3 of the
+# License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public
+# License along with this program. If not, see
+# <http://www.gnu.org/licenses/gpl-3.0.html>.
+# #L%
+###
+result.0=DFAD - DFAD (FAD dérivant)^1^0^0
+result.columns=4
+result.rows=1
+syntax.columns=4
+syntax.columnsHeader=Type de FOB^Rencontrés pêchés^Rencontrés non pêchés^Déployés
+syntax.description=Tableau récapitulatif des FOB rencontrés, par types CECOFAD et types d’actions regroupés (rencontrés et pêchés, rencontrés non pêchés, déployés)
+syntax.name=Livre de bord - Utilisation des FOB, tableau simplifiée
+syntax.nbRequests=2
+syntax.rows=-1
+syntax.rowsHeader=
=====================================
core/services/test/src/main/resources/fixtures/fr/ird/observe/services/service/ReportService.properties
=====================================
@@ -19,4 +19,4 @@
# <http://www.gnu.org/licenses/gpl-3.0.html>.
# #L%
###
-report.count=35
+report.count=37
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/commit/fcf880a9e47248aea607bfd00…
--
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/commit/fcf880a9e47248aea607bfd00…
You're receiving this email because of your account on gitlab.com.
1
0
[Git][ultreiaio/ird-observe][develop] 3 commits: Mise à jour du rapport psObservationAllActivities
by Tony CHEMIT (@tchemit) March 19, 2024
by Tony CHEMIT (@tchemit) March 19, 2024
March 19, 2024
Tony CHEMIT pushed to branch develop at ultreiaio / ird-observe
Commits:
584fa484 by Tony Chemit at 2024-03-19T15:00:14+01:00
Mise à jour du rapport psObservationAllActivities
- - - - -
ddc116b2 by Tony Chemit at 2024-03-19T15:00:14+01:00
Ajout du rapport psObservationActivitiesByZone
- - - - -
27355e37 by Tony Chemit at 2024-03-19T15:00:58+01:00
Merge branch 'feature/issue-2848' into develop
Tableaux de synthèse à intégrer - Closes #2848
- - - - -
9 changed files:
- + core/persistence/report/src/main/resources/META-INF/report/default/ps/psObservationActivitiesByZone.report
- core/persistence/report/src/main/resources/META-INF/report/default/ps/psObservationAllActivities.report
- core/persistence/report/src/main/resources/META-INF/report/embedded.list
- core/persistence/report/src/test/java/fr/ird/observe/report/ToolsTest.java
- + core/services/test/src/main/java/fr/ird/observe/services/service/report/ps/PsObservationActivitiesByZoneReportFixture.java
- + core/services/test/src/main/resources/fixtures/fr/ird/observe/services/service/ReportService-psObservationActivitiesByZone.properties
- core/services/test/src/main/resources/fixtures/fr/ird/observe/services/service/ReportService-psObservationAllActivities.properties
- core/services/test/src/main/resources/fixtures/fr/ird/observe/services/service/ReportService.properties
- src/site/markdown/report/embedded-reports.md
Changes:
=====================================
core/persistence/report/src/main/resources/META-INF/report/default/ps/psObservationActivitiesByZone.report
=====================================
@@ -0,0 +1,52 @@
+modelType=PS
+name=Observations - Types d'activités par zones FPA
+name.en=Observations - Types of activities by FPA zone crossed
+name.es=
+description=Tableau récapitulatif des types d'activités par zone FPA traversée
+description.en=Summary table of types of activities by FPA zone crossed
+description.es=
+columns=Zone,Visités Pêchés,Visités non Pêchés,Déploiement après Pêches,Déploiement seul,Modifiés Pêchés,Modifiés non Pêchés,Retirés Pêchés,Retirés non Pêchés,Abandonnés Pêchés,Abandonnés non Pêchés,Coulés Pêchés,Coulés non Pêchés,Remplacés Pêchés,Remplacés non Pêchés,Autre Pêchés,Autre non Pêchés,Tortues associées,Total
+columns.en=Zone,Visit and fishing,Visit only,Deployment after fishing,Deployment only,Modification after fishing,Modification only,Retrieval after fishing,Retrieval only,Abandonment after fishing,Abandonment only,Sinking after fishing,Sinking only,Replacment after fishing,Replacment only,Other activity after fishing,Other activity only,Number of turtles associated,Total
+columns.es=
+repeatVariable.1.name=zoneFpaId
+repeatVariable.1.type=java.lang.String
+repeatVariable.1.request=Select z.id \
+From FpaZoneImpl z \
+Where z.id In (Select distinct (a.currentFpaZone.id) \
+ From fr.ird.observe.entities.data.ps.common.TripImpl m \
+ Join m.routeObs r \
+ Join r.activity a With a.currentFpaZone Is Not NULL \
+ Where m.id In :tripId And a.floatingObject Is Not Empty) \
+Order By z.code, z.@i18nColumnName@
+request.1.location=0,0
+request.1.layout=row
+request.1.request=Select concat(a.currentFpaZone.code , ' - ', a.currentFpaZone.@i18nColumnName@), \
+SUM(CASE When dcp.objectOperation = 'fr.ird.referential.ps.common.ObjectOperation#0#2' And a.vesselActivity = 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586' Then 1 Else 0 End), \
+SUM(CASE When dcp.objectOperation = 'fr.ird.referential.ps.common.ObjectOperation#0#2' And a.vesselActivity != 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586' Then 1 Else 0 End), \
+SUM(CASE When dcp.objectOperation = 'fr.ird.referential.ps.common.ObjectOperation#0#1' And a.vesselActivity = 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586' Then 1 Else 0 End), \
+SUM(CASE When dcp.objectOperation = 'fr.ird.referential.ps.common.ObjectOperation#0#1' And a.vesselActivity != 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586' Then 1 Else 0 End), \
+SUM(CASE When dcp.objectOperation = 'fr.ird.referential.ps.common.ObjectOperation#0#8' And a.vesselActivity = 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586' Then 1 Else 0 End), \
+SUM(CASE When dcp.objectOperation = 'fr.ird.referential.ps.common.ObjectOperation#0#8' And a.vesselActivity != 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586' Then 1 Else 0 End), \
+SUM(CASE When dcp.objectOperation = 'fr.ird.referential.ps.common.ObjectOperation#0#4' And a.vesselActivity = 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586' Then 1 Else 0 End), \
+SUM(CASE When dcp.objectOperation = 'fr.ird.referential.ps.common.ObjectOperation#0#4' And a.vesselActivity != 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586' Then 1 Else 0 End), \
+SUM(CASE When dcp.objectOperation = 'fr.ird.referential.ps.common.ObjectOperation#0#5' And a.vesselActivity = 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586' Then 1 Else 0 End), \
+SUM(CASE When dcp.objectOperation = 'fr.ird.referential.ps.common.ObjectOperation#0#5' And a.vesselActivity != 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586' Then 1 Else 0 End), \
+SUM(CASE When dcp.objectOperation = 'fr.ird.referential.ps.common.ObjectOperation#0#7' And a.vesselActivity = 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586' Then 1 Else 0 End), \
+SUM(CASE When dcp.objectOperation = 'fr.ird.referential.ps.common.ObjectOperation#0#7' And a.vesselActivity != 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586' Then 1 Else 0 End), \
+SUM(CASE When dcp.objectOperation = 'fr.ird.referential.ps.common.ObjectOperation#0#9' And a.vesselActivity = 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586' Then 1 Else 0 End), \
+SUM(CASE When dcp.objectOperation = 'fr.ird.referential.ps.common.ObjectOperation#0#9' And a.vesselActivity != 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586' Then 1 Else 0 End), \
+SUM(CASE When ( dcp.objectOperation = 'fr.ird.referential.ps.common.ObjectOperation#0#10' Or dcp.objectOperation = 'fr.ird.referential.ps.common.ObjectOperation#0#3' ) And a.vesselActivity = 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586' Then 1 Else 0 End), \
+SUM(CASE When ( dcp.objectOperation = 'fr.ird.referential.ps.common.ObjectOperation#0#10' Or dcp.objectOperation = 'fr.ird.referential.ps.common.ObjectOperation#0#3' ) And a.vesselActivity != 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586' Then 1 Else 0 End), \
+Sum(Case When dcp.objectObservedSpecies Is Not Empty Then (Select Sum(efo.count) From dcp.objectObservedSpecies efo Where efo.species.speciesGroup.id = 'fr.ird.referential.common.SpeciesGroup#1239832683690#0.24333033683679461') Else 0 End) \
+From fr.ird.observe.entities.data.ps.common.TripImpl m \
+Join m.routeObs r \
+Join r.activity a With a.currentFpaZone.id = :zoneFpaId \
+Join a.floatingObject dcp \
+Where m.id In :tripId
+request.1.repeat.name=zoneFpaId
+request.1.repeat.layout=column
+request.1.comment=visite + peche / visite - peche / Deploiement + peche / Deploiement - peche / Modifie + peche / Modifie - peche / Retire + peche / Retire - peche / Abandonne + peche / Abandonne - peche / Coule + peche / Coule - peche / Remplace + peche / Remplace - peche / Autre ou ancien peche + peche / Autre ou ancien peche - peche / Nombre de tortues
+operations.1.type=SumIntRow
+operations.1.parameters=0|1
+operations.2.type=SumIntColumn
+operations.2.parameters=0|1
=====================================
core/persistence/report/src/main/resources/META-INF/report/default/ps/psObservationAllActivities.report
=====================================
@@ -20,22 +20,25 @@
# #L%
###
modelType=PS
-name=Observations - Toutes les activités et leurs positions
-name.en=Observations - Activities with their geographic position
+name=Observations - Toutes les activités, leurs positions et zones FPA
+name.en=Observations - Activities with their geographic position and FPA zones
name.es=
description=Afficher toutes les activités et leurs positions géographiques
description.en=Display activities with their geographic position
description.es=
-columns=Jour,Heure observation,Latitude,Longitude,Activité,Commentaire
-columns.en=Date,Hour,Latitude,Longitude,Activity,Comment
+columns=Jour,Heure observation,Latitude,Longitude,Activité (code),Activité (nom),Zone FPA (code),Zone FPA (nom),Commentaire
+columns.en=Date,Hour,Latitude,Longitude,Activity (code), Activity (label),FPA zone (code), FPA zone (label), Comment
columns.es=
request.1.location=0,0
request.1.layout=row
-request.1.request=Select r.date, Cast(a.time As java.sql.Time), a.latitude, a.longitude, ab.@i18nColumnName@, a.comment \
+request.1.request=Select r.date, Cast(a.time As java.sql.Time), a.latitude, a.longitude, ab.code, ab.@i18nColumnName@, z.code, z.@i18nColumnName@, a.comment \
From TripImpl m \
Join m.routeObs r \
Join r.activity a \
Join a.vesselActivity ab \
+Left Join a.currentFpaZone z \
Where \
m.id In :tripId \
Order By r.date, a.time
+
+
=====================================
core/persistence/report/src/main/resources/META-INF/report/embedded.list
=====================================
@@ -17,6 +17,7 @@ default/ps/psLogbookSampleSpeciesMeasuresCount.report
default/ps/psLogbookTrip.report
default/ps/psLogbookWellPlan.report
default/ps/psLogbookWellPlanCheck.report
+default/ps/psObservationActivitiesByZone.report
default/ps/psObservationActivityWithComment.report
default/ps/psObservationAllActivities.report
default/ps/psObservationCatch.report
=====================================
core/persistence/report/src/test/java/fr/ird/observe/report/ToolsTest.java
=====================================
@@ -47,7 +47,7 @@ import java.util.Objects;
public class ToolsTest {
- public static final int REPORTS_COUNT_COUNT = 34;
+ public static final int REPORTS_COUNT_COUNT = 35;
private static Path reportsPath(Path basedir) {
return basedir.resolve("src").resolve("main").resolve("resources").resolve("META-INF").resolve("report");
=====================================
core/services/test/src/main/java/fr/ird/observe/services/service/report/ps/PsObservationActivitiesByZoneReportFixture.java
=====================================
@@ -0,0 +1,47 @@
+package fr.ird.observe.services.service.report.ps;
+
+/*-
+ * #%L
+ * ObServe Core :: Services :: Test
+ * %%
+ * Copyright (C) 2008 - 2024 IRD, Ultreia.io
+ * %%
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public
+ * License along with this program. If not, see
+ * <http://www.gnu.org/licenses/gpl-3.0.html>.
+ * #L%
+ */
+
+import com.google.auto.service.AutoService;
+import fr.ird.observe.report.Report;
+import fr.ird.observe.report.definition.ReportRequestDefinition;
+import fr.ird.observe.report.definition.RequestLayout;
+import fr.ird.observe.services.service.ReportFixture;
+
+import java.util.Iterator;
+
+/**
+ * Created at 15/03/2024.
+ *
+ * @author Tony Chemit - dev(a)tchemit.fr
+ * @since 9.3.0
+ */
+(a)AutoService(ReportFixture.class)
+public class PsObservationActivitiesByZoneReportFixture extends ReportFixture {
+ @Override
+ public void assertSyntax(Report report) {
+ super.assertSyntax(report);
+ Iterator<ReportRequestDefinition> requests = getRequestIterator(report);
+ assertReportRequestDimension(requests, RequestLayout.row, 0, 0);
+ }
+}
=====================================
core/services/test/src/main/resources/fixtures/fr/ird/observe/services/service/ReportService-psObservationActivitiesByZone.properties
=====================================
@@ -0,0 +1,33 @@
+###
+# #%L
+# ObServe Core :: Services :: Test
+# %%
+# Copyright (C) 2008 - 2024 IRD, Ultreia.io
+# %%
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as
+# published by the Free Software Foundation, either version 3 of the
+# License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public
+# License along with this program. If not, see
+# <http://www.gnu.org/licenses/gpl-3.0.html>.
+# #L%
+###
+syntax.rows=-1
+syntax.columns=19
+syntax.columnsHeader=Zone^Visités Pêchés^Visités non Pêchés^Déploiement après Pêches^Déploiement seul^Modifiés Pêchés^Modifiés non Pêchés^Retirés Pêchés^Retirés non Pêchés^Abandonnés Pêchés^Abandonnés non Pêchés^Coulés Pêchés^Coulés non Pêchés^Remplacés Pêchés^Remplacés non Pêchés^Autre Pêchés^Autre non Pêchés^Tortues associées^Total
+syntax.rowsHeader=
+syntax.nbRequests=1
+result.columns=19
+result.rows=3
+result.0=CIV - Côte d'Ivoire^1^9^1^0^0^0^0^0^0^0^0^0^0^0^0^0^0^11
+result.1=LBR - Libéria^0^7^0^27^0^0^0^0^0^0^0^0^0^0^0^0^0^34
+result.2=Total^1^16^1^27^0^0^0^0^0^0^0^0^0^0^0^0^0^45
+syntax.name=Observations - Types d'activités par zones FPA
+syntax.description=Tableau récapitulatif des types d'activités par zone FPA traversée
\ No newline at end of file
=====================================
core/services/test/src/main/resources/fixtures/fr/ird/observe/services/service/ReportService-psObservationAllActivities.properties
=====================================
@@ -19,152 +19,152 @@
# <http://www.gnu.org/licenses/gpl-3.0.html>.
# #L%
###
-result.0=30/03/2019^18:00^5.2833^-4.0^Au port^Départ du port de pêche pour la fin de la marée
-result.1=30/03/2019^19:00^5.1667^-4.0^Transit (route sans recherche)^Route de nuit
-result.2=31/03/2019^06:13^3.95^-5.2667^Recherche (général)^null
-result.3=31/03/2019^06:54^3.95^-5.35^Thonier arrivant sur le système détecté^null
-result.4=31/03/2019^07:50^3.9667^-5.35^Pêche (larguage du skiff)^null
-result.5=31/03/2019^10:55^3.9833^-5.2833^Thonier arrivant sur le système détecté^null
-result.6=31/03/2019^11:24^3.9833^-5.2667^Pêche (larguage du skiff)^null
-result.7=31/03/2019^14:56^3.95^-5.3333^Thonier arrivant sur le système détecté^
-result.8=31/03/2019^15:05^3.95^-5.3333^Opération sur objet flottant (visite, pose, modification, récupération)^null
-result.9=31/03/2019^16:11^3.8167^-5.4167^Thonier arrivant sur le système détecté^
-result.10=31/03/2019^16:22^3.8333^-5.4167^Opération sur objet flottant (visite, pose, modification, récupération)^null
-result.11=31/03/2019^16:53^3.7833^-5.4833^Thonier arrivant sur le système détecté^
-result.12=31/03/2019^17:03^3.7833^-5.4833^Opération sur objet flottant (visite, pose, modification, récupération)^null
-result.13=31/03/2019^18:03^3.7833^-5.4667^Recherche (général)^null
-result.14=31/03/2019^18:44^3.8667^-5.4833^Fin de veille^null
-result.15=31/03/2019^19:00^3.9^-5.5^En dérive de nuit (moteur stoppé)^null
-result.16=01/04/2019^06:15^3.9833^-5.3167^Recherche (général)^null
-result.17=01/04/2019^07:43^3.8333^-5.2667^Thonier arrivant sur le système détecté^
-result.18=01/04/2019^07:56^3.8333^-5.25^Opération sur objet flottant (visite, pose, modification, récupération)^null
-result.19=01/04/2019^08:15^3.8833^-5.2333^Recherche (général)^null
-result.20=01/04/2019^08:41^3.9333^-5.2833^Thonier arrivant sur le système détecté^null
-result.21=01/04/2019^09:41^3.9167^-5.25^Pêche (larguage du skiff)^null
-result.22=01/04/2019^09:41^3.9167^-5.25^Pêche (larguage du skiff)^null
-result.23=01/04/2019^12:15^3.9^-5.2833^Recherche (général)^null
-result.24=01/04/2019^12:34^3.9333^-5.3^Thonier arrivant sur le système détecté^null
-result.25=01/04/2019^12:40^3.9333^-5.3^Pêche (larguage du skiff)^null
-result.26=01/04/2019^16:15^3.8833^-5.2667^Recherche (général)^null
-result.27=01/04/2019^16:38^3.9333^-5.3^Thonier arrivant sur le système détecté^null
-result.28=01/04/2019^16:51^3.9333^-5.3^Pêche (larguage du skiff)^
-result.29=01/04/2019^21:17^3.95^-5.2167^Fin de veille^null
-result.30=01/04/2019^21:18^3.95^-5.2167^Transit (route sans recherche)^Route jusqu'à 22H
-result.31=02/04/2019^06:15^3.9^-5.1833^Recherche (général)^null
-result.32=02/04/2019^06:57^3.9333^-5.25^Thonier arrivant sur le système détecté^null
-result.33=02/04/2019^07:11^3.95^-5.25^Pêche (larguage du skiff)^
-result.34=02/04/2019^10:15^3.9167^-5.2167^Recherche (général)^null
-result.35=02/04/2019^12:15^3.8833^-5.25^Recherche (général)^null
-result.36=02/04/2019^13:58^3.9^-4.9333^Thonier arrivant sur le système détecté^
-result.37=02/04/2019^14:15^3.9^-4.9333^Thonier arrivant sur le système détecté^null
-result.38=02/04/2019^14:22^3.9^-4.95^Pêche (larguage du skiff)^null
-result.39=02/04/2019^18:44^3.8833^-4.95^Fin de veille^null
-result.40=02/04/2019^19:12^3.8667^-5.0^En dérive de nuit (moteur stoppé)^null
-result.41=03/04/2019^06:15^3.9^-4.9^Thonier arrivant sur le système détecté^
-result.42=03/04/2019^07:16^3.8833^-4.95^Thonier arrivant sur le système détecté^null
-result.43=03/04/2019^07:51^3.8833^-4.9333^Pêche (larguage du skiff)^null
-result.44=03/04/2019^10:15^3.8833^-4.9167^Thonier arrivant sur le système détecté^Banc sous autre senneur
-result.45=03/04/2019^12:15^3.9^-4.9167^Thonier arrivant sur le système détecté^
-result.46=03/04/2019^14:15^3.9^-4.8833^Recherche (général)^null
-result.47=03/04/2019^15:28^3.9667^-4.85^Thonier arrivant sur le système détecté^
-result.48=03/04/2019^15:36^3.9667^-4.85^Opération sur objet flottant (visite, pose, modification, récupération)^null
-result.49=03/04/2019^16:15^3.8833^-4.9167^Recherche (général)^null
-result.50=03/04/2019^18:15^3.8667^-4.9833^Recherche (général)^null
-result.51=03/04/2019^18:42^3.8333^-5.05^Fin de veille^null
-result.52=03/04/2019^18:50^3.8167^-5.05^En dérive de nuit (moteur stoppé)^null
-result.53=04/04/2019^06:12^3.9^-4.8667^Recherche (général)^
-result.54=04/04/2019^08:12^3.8667^-4.8833^Recherche (général)^null
-result.55=04/04/2019^10:12^3.6^-4.6167^Recherche (général)^null
-result.56=04/04/2019^12:04^3.3^-4.4333^Thonier arrivant sur le système détecté^
-result.57=04/04/2019^12:12^3.3^-4.4333^Opération sur objet flottant (visite, pose, modification, récupération)^null
-result.58=04/04/2019^14:12^3.05^-4.7^Recherche (général)^null
-result.59=04/04/2019^15:43^2.8667^-4.9167^Thonier arrivant sur le système détecté^
-result.60=04/04/2019^15:46^2.8667^-4.9167^Opération sur objet flottant (visite, pose, modification, récupération)^null
-result.61=04/04/2019^16:12^2.8167^-5.0^Recherche (général)^null
-result.62=04/04/2019^18:12^2.6333^-5.3333^Recherche (général)^null
-result.63=04/04/2019^18:41^2.6^-5.4167^Fin de veille^null
-result.64=04/04/2019^18:42^2.6^-5.4167^Route de nuit vers objet^Route toute la nuit
-result.65=05/04/2019^06:20^1.5167^-7.4^Thonier arrivant sur le système détecté^
-result.66=05/04/2019^06:28^1.5^-7.4167^Opération sur objet flottant (visite, pose, modification, récupération)^null
-result.67=05/04/2019^07:02^1.5^-7.5333^Changement de zone FPA^null
-result.68=05/04/2019^07:11^1.5^-7.55^Opération sur objet flottant (visite, pose, modification, récupération)^null
-result.69=05/04/2019^07:34^1.5^-7.6333^Opération sur objet flottant (visite, pose, modification, récupération)^null
-result.70=05/04/2019^08:03^1.4667^-7.6833^Opération sur objet flottant (visite, pose, modification, récupération)^null
-result.71=05/04/2019^08:20^1.4333^-7.7167^Recherche (général)^null
-result.72=05/04/2019^08:32^1.4^-7.7333^Opération sur objet flottant (visite, pose, modification, récupération)^null
-result.73=05/04/2019^08:38^1.3833^-7.75^Thonier arrivant sur le système détecté^
-result.74=05/04/2019^08:50^1.3667^-7.7333^Opération sur objet flottant (visite, pose, modification, récupération)^null
-result.75=05/04/2019^09:07^1.4^-7.7667^Opération sur objet flottant (visite, pose, modification, récupération)^null
-result.76=05/04/2019^09:37^1.45^-7.8667^Opération sur objet flottant (visite, pose, modification, récupération)^null
-result.77=05/04/2019^10:02^1.4833^-7.9167^Opération sur objet flottant (visite, pose, modification, récupération)^null
-result.78=05/04/2019^10:20^1.5^-7.9667^Recherche (général)^null
-result.79=05/04/2019^10:29^1.4833^-7.9833^Thonier arrivant sur le système détecté^
-result.80=05/04/2019^10:41^1.5^-8.0^Opération sur objet flottant (visite, pose, modification, récupération)^null
-result.81=05/04/2019^11:03^1.5333^-8.05^Opération sur objet flottant (visite, pose, modification, récupération)^null
-result.82=05/04/2019^11:31^1.5833^-8.1167^Opération sur objet flottant (visite, pose, modification, récupération)^null
-result.83=05/04/2019^12:00^1.65^-8.1833^Opération sur objet flottant (visite, pose, modification, récupération)^null
-result.84=05/04/2019^12:20^1.7333^-8.2333^Recherche (général)^null
-result.85=05/04/2019^12:35^1.75^-8.2667^Opération sur objet flottant (visite, pose, modification, récupération)^null
-result.86=05/04/2019^13:04^1.8167^-8.3167^Opération sur objet flottant (visite, pose, modification, récupération)^null
-result.87=05/04/2019^13:30^1.85^-8.3333^Thonier arrivant sur le système détecté^
-result.88=05/04/2019^13:38^1.8667^-8.3333^Opération sur objet flottant (visite, pose, modification, récupération)^
-result.89=05/04/2019^14:00^1.9167^-8.3667^Opération sur objet flottant (visite, pose, modification, récupération)^null
-result.90=05/04/2019^14:19^1.95^-8.4167^Thonier arrivant sur le système détecté^
-result.91=05/04/2019^14:26^1.95^-8.4167^Opération sur objet flottant (visite, pose, modification, récupération)^null
-result.92=05/04/2019^15:05^2.0667^-8.4333^Opération sur objet flottant (visite, pose, modification, récupération)^null
-result.93=05/04/2019^15:35^2.15^-8.4333^Opération sur objet flottant (visite, pose, modification, récupération)^null
-result.94=05/04/2019^15:36^2.15^-8.4333^Thonier arrivant sur le système détecté^
-result.95=05/04/2019^15:46^2.15^-8.4333^Opération sur objet flottant (visite, pose, modification, récupération)^null
-result.96=05/04/2019^16:02^2.2^-8.4333^Opération sur objet flottant (visite, pose, modification, récupération)^null
-result.97=05/04/2019^16:20^2.2167^-8.4167^Recherche (général)^null
-result.98=05/04/2019^16:36^2.2667^-8.4^Opération sur objet flottant (visite, pose, modification, récupération)^null
-result.99=05/04/2019^16:46^2.2333^-8.3833^Thonier arrivant sur le système détecté^
-result.100=05/04/2019^16:53^2.2333^-8.3833^Opération sur objet flottant (visite, pose, modification, récupération)^null
-result.101=05/04/2019^17:08^2.2667^-8.3667^Opération sur objet flottant (visite, pose, modification, récupération)^null
-result.102=05/04/2019^17:17^2.2833^-8.35^Thonier arrivant sur le système détecté^
-result.103=05/04/2019^17:24^2.2833^-8.35^Opération sur objet flottant (visite, pose, modification, récupération)^
-result.104=05/04/2019^17:34^2.3^-8.3333^Opération sur objet flottant (visite, pose, modification, récupération)^null
-result.105=05/04/2019^17:37^2.3167^-8.3333^Fin de veille^null
-result.106=05/04/2019^18:00^2.3667^-8.3167^Thonier arrivant sur le système détecté^
-result.107=05/04/2019^18:15^2.35^-8.3167^Opération sur objet flottant (visite, pose, modification, récupération)^null
-result.108=05/04/2019^18:40^2.3333^-8.35^En dérive de nuit (moteur stoppé)^null
-result.109=06/04/2019^06:35^2.35^-8.3333^Avaries en mer^Avarie au niveau du moteur, navire stoppé (réparation en cours)
-result.110=06/04/2019^12:05^2.3333^-8.3333^Avaries en mer^Avarie au niveau du moteur, navire stoppé (réparation en cours)
-result.111=06/04/2019^17:55^2.3667^-8.2833^Transit (route sans recherche)^Réparation de l'avarie terminée.
-result.112=06/04/2019^18:00^2.3667^-8.2833^Opération sur objet flottant (visite, pose, modification, récupération)^null
-result.113=06/04/2019^18:16^2.3833^-8.25^Opération sur objet flottant (visite, pose, modification, récupération)^null
-result.114=06/04/2019^18:26^2.4^-8.2167^Opération sur objet flottant (visite, pose, modification, récupération)^null
-result.115=06/04/2019^18:36^2.4167^-8.2^Opération sur objet flottant (visite, pose, modification, récupération)^null
-result.116=06/04/2019^18:46^2.45^-8.1833^Opération sur objet flottant (visite, pose, modification, récupération)^null
-result.117=06/04/2019^18:57^2.4667^-8.15^Opération sur objet flottant (visite, pose, modification, récupération)^null
-result.118=06/04/2019^19:05^2.4833^-8.1333^Opération sur objet flottant (visite, pose, modification, récupération)^null
-result.119=06/04/2019^19:06^2.4833^-8.1333^Transit (route sans recherche)^Route de nuit
-result.120=07/04/2019^06:24^3.4333^-6.2^Changement de zone FPA^Changement de zone effectué le 06/04/2019 à 22H35 T.U à la position 02°45N et 007°33 W
-result.121=07/04/2019^08:24^3.65^-5.8667^Recherche (général)^null
-result.122=07/04/2019^10:24^3.8167^-5.5^Recherche (général)^null
-result.123=07/04/2019^12:24^3.9167^-5.1167^Thonier arrivant sur le système détecté^
-result.124=07/04/2019^12:43^3.9167^-5.1^Opération sur objet flottant (visite, pose, modification, récupération)^null
-result.125=07/04/2019^12:52^3.9167^-5.0833^Thonier arrivant sur le système détecté^
-result.126=07/04/2019^14:18^3.9^-5.0833^Thonier arrivant sur le système détecté^null
-result.127=07/04/2019^14:21^3.9^-5.0833^Pêche (larguage du skiff)^null
-result.128=07/04/2019^18:24^3.9^-4.8833^Recherche (général)^null
-result.129=07/04/2019^18:33^3.9^-4.8667^Fin de veille^Averse
-result.130=07/04/2019^18:34^3.9^-4.8667^Transit (route sans recherche)^Route de nuit jusqu'à 1H
-result.131=08/04/2019^06:30^4.0667^-3.45^Transit (route sans recherche)^navire en approche pour le début de l'aviataillement
-result.132=08/04/2019^07:30^4.0667^-3.45^Autres (à préciser dans les notes)^Début de l'aviatillement en gasoil.
-result.133=08/04/2019^11:34^4.1833^-3.3333^Autres (à préciser dans les notes)^Fin avitaillement en gasoil, poursuite de la route
-result.134=08/04/2019^12:30^4.3167^-3.4167^Recherche (général)^null
-result.135=08/04/2019^14:30^4.6^-3.6^Recherche (général)^null
-result.136=08/04/2019^16:00^4.8167^-3.75^Fin de veille^null
-result.137=08/04/2019^16:30^4.8833^-3.8167^Transit (route sans recherche)^
-result.138=08/04/2019^18:30^5.1^-3.95^Transit (route sans recherche)^null
-result.139=08/04/2019^21:05^5.2833^-4.0167^Au port^Navire au port de pêche d'Abidjan.
-syntax.name=Observations - Toutes les activités et leurs positions
+result.0=30/03/2019^18:00^5.2833^-4.0^0^Au port^CIV^Côte d'Ivoire^Départ du port de pêche pour la fin de la marée
+result.1=30/03/2019^19:00^5.1667^-4.0^1^Transit (route sans recherche)^CIV^Côte d'Ivoire^Route de nuit
+result.2=31/03/2019^06:13^3.95^-5.2667^2^Recherche (général)^CIV^Côte d'Ivoire^null
+result.3=31/03/2019^06:54^3.95^-5.35^5^Thonier arrivant sur le système détecté^CIV^Côte d'Ivoire^null
+result.4=31/03/2019^07:50^3.9667^-5.35^6^Pêche (larguage du skiff)^CIV^Côte d'Ivoire^null
+result.5=31/03/2019^10:55^3.9833^-5.2833^5^Thonier arrivant sur le système détecté^CIV^Côte d'Ivoire^null
+result.6=31/03/2019^11:24^3.9833^-5.2667^6^Pêche (larguage du skiff)^CIV^Côte d'Ivoire^null
+result.7=31/03/2019^14:56^3.95^-5.3333^5^Thonier arrivant sur le système détecté^CIV^Côte d'Ivoire^
+result.8=31/03/2019^15:05^3.95^-5.3333^13^Opération sur objet flottant (visite, pose, modification, récupération)^CIV^Côte d'Ivoire^null
+result.9=31/03/2019^16:11^3.8167^-5.4167^5^Thonier arrivant sur le système détecté^CIV^Côte d'Ivoire^
+result.10=31/03/2019^16:22^3.8333^-5.4167^13^Opération sur objet flottant (visite, pose, modification, récupération)^CIV^Côte d'Ivoire^null
+result.11=31/03/2019^16:53^3.7833^-5.4833^5^Thonier arrivant sur le système détecté^CIV^Côte d'Ivoire^
+result.12=31/03/2019^17:03^3.7833^-5.4833^13^Opération sur objet flottant (visite, pose, modification, récupération)^CIV^Côte d'Ivoire^null
+result.13=31/03/2019^18:03^3.7833^-5.4667^2^Recherche (général)^CIV^Côte d'Ivoire^null
+result.14=31/03/2019^18:44^3.8667^-5.4833^16^Fin de veille^CIV^Côte d'Ivoire^null
+result.15=31/03/2019^19:00^3.9^-5.5^9^En dérive de nuit (moteur stoppé)^CIV^Côte d'Ivoire^null
+result.16=01/04/2019^06:15^3.9833^-5.3167^2^Recherche (général)^CIV^Côte d'Ivoire^null
+result.17=01/04/2019^07:43^3.8333^-5.2667^5^Thonier arrivant sur le système détecté^CIV^Côte d'Ivoire^
+result.18=01/04/2019^07:56^3.8333^-5.25^13^Opération sur objet flottant (visite, pose, modification, récupération)^CIV^Côte d'Ivoire^null
+result.19=01/04/2019^08:15^3.8833^-5.2333^2^Recherche (général)^CIV^Côte d'Ivoire^null
+result.20=01/04/2019^08:41^3.9333^-5.2833^5^Thonier arrivant sur le système détecté^CIV^Côte d'Ivoire^null
+result.21=01/04/2019^09:41^3.9167^-5.25^6^Pêche (larguage du skiff)^CIV^Côte d'Ivoire^null
+result.22=01/04/2019^09:41^3.9167^-5.25^6^Pêche (larguage du skiff)^CIV^Côte d'Ivoire^null
+result.23=01/04/2019^12:15^3.9^-5.2833^2^Recherche (général)^CIV^Côte d'Ivoire^null
+result.24=01/04/2019^12:34^3.9333^-5.3^5^Thonier arrivant sur le système détecté^CIV^Côte d'Ivoire^null
+result.25=01/04/2019^12:40^3.9333^-5.3^6^Pêche (larguage du skiff)^CIV^Côte d'Ivoire^null
+result.26=01/04/2019^16:15^3.8833^-5.2667^2^Recherche (général)^CIV^Côte d'Ivoire^null
+result.27=01/04/2019^16:38^3.9333^-5.3^5^Thonier arrivant sur le système détecté^CIV^Côte d'Ivoire^null
+result.28=01/04/2019^16:51^3.9333^-5.3^6^Pêche (larguage du skiff)^CIV^Côte d'Ivoire^
+result.29=01/04/2019^21:17^3.95^-5.2167^16^Fin de veille^CIV^Côte d'Ivoire^null
+result.30=01/04/2019^21:18^3.95^-5.2167^1^Transit (route sans recherche)^CIV^Côte d'Ivoire^Route jusqu'à 22H
+result.31=02/04/2019^06:15^3.9^-5.1833^2^Recherche (général)^CIV^Côte d'Ivoire^null
+result.32=02/04/2019^06:57^3.9333^-5.25^5^Thonier arrivant sur le système détecté^CIV^Côte d'Ivoire^null
+result.33=02/04/2019^07:11^3.95^-5.25^6^Pêche (larguage du skiff)^CIV^Côte d'Ivoire^
+result.34=02/04/2019^10:15^3.9167^-5.2167^2^Recherche (général)^CIV^Côte d'Ivoire^null
+result.35=02/04/2019^12:15^3.8833^-5.25^2^Recherche (général)^CIV^Côte d'Ivoire^null
+result.36=02/04/2019^13:58^3.9^-4.9333^5^Thonier arrivant sur le système détecté^CIV^Côte d'Ivoire^
+result.37=02/04/2019^14:15^3.9^-4.9333^5^Thonier arrivant sur le système détecté^CIV^Côte d'Ivoire^null
+result.38=02/04/2019^14:22^3.9^-4.95^6^Pêche (larguage du skiff)^CIV^Côte d'Ivoire^null
+result.39=02/04/2019^18:44^3.8833^-4.95^16^Fin de veille^CIV^Côte d'Ivoire^null
+result.40=02/04/2019^19:12^3.8667^-5.0^9^En dérive de nuit (moteur stoppé)^CIV^Côte d'Ivoire^null
+result.41=03/04/2019^06:15^3.9^-4.9^5^Thonier arrivant sur le système détecté^CIV^Côte d'Ivoire^
+result.42=03/04/2019^07:16^3.8833^-4.95^5^Thonier arrivant sur le système détecté^CIV^Côte d'Ivoire^null
+result.43=03/04/2019^07:51^3.8833^-4.9333^6^Pêche (larguage du skiff)^CIV^Côte d'Ivoire^null
+result.44=03/04/2019^10:15^3.8833^-4.9167^5^Thonier arrivant sur le système détecté^CIV^Côte d'Ivoire^Banc sous autre senneur
+result.45=03/04/2019^12:15^3.9^-4.9167^5^Thonier arrivant sur le système détecté^CIV^Côte d'Ivoire^
+result.46=03/04/2019^14:15^3.9^-4.8833^2^Recherche (général)^CIV^Côte d'Ivoire^null
+result.47=03/04/2019^15:28^3.9667^-4.85^5^Thonier arrivant sur le système détecté^CIV^Côte d'Ivoire^
+result.48=03/04/2019^15:36^3.9667^-4.85^13^Opération sur objet flottant (visite, pose, modification, récupération)^CIV^Côte d'Ivoire^null
+result.49=03/04/2019^16:15^3.8833^-4.9167^2^Recherche (général)^CIV^Côte d'Ivoire^null
+result.50=03/04/2019^18:15^3.8667^-4.9833^2^Recherche (général)^CIV^Côte d'Ivoire^null
+result.51=03/04/2019^18:42^3.8333^-5.05^16^Fin de veille^CIV^Côte d'Ivoire^null
+result.52=03/04/2019^18:50^3.8167^-5.05^9^En dérive de nuit (moteur stoppé)^CIV^Côte d'Ivoire^null
+result.53=04/04/2019^06:12^3.9^-4.8667^2^Recherche (général)^CIV^Côte d'Ivoire^
+result.54=04/04/2019^08:12^3.8667^-4.8833^2^Recherche (général)^CIV^Côte d'Ivoire^null
+result.55=04/04/2019^10:12^3.6^-4.6167^2^Recherche (général)^CIV^Côte d'Ivoire^null
+result.56=04/04/2019^12:04^3.3^-4.4333^5^Thonier arrivant sur le système détecté^CIV^Côte d'Ivoire^
+result.57=04/04/2019^12:12^3.3^-4.4333^13^Opération sur objet flottant (visite, pose, modification, récupération)^CIV^Côte d'Ivoire^null
+result.58=04/04/2019^14:12^3.05^-4.7^2^Recherche (général)^CIV^Côte d'Ivoire^null
+result.59=04/04/2019^15:43^2.8667^-4.9167^5^Thonier arrivant sur le système détecté^CIV^Côte d'Ivoire^
+result.60=04/04/2019^15:46^2.8667^-4.9167^13^Opération sur objet flottant (visite, pose, modification, récupération)^CIV^Côte d'Ivoire^null
+result.61=04/04/2019^16:12^2.8167^-5.0^2^Recherche (général)^CIV^Côte d'Ivoire^null
+result.62=04/04/2019^18:12^2.6333^-5.3333^2^Recherche (général)^CIV^Côte d'Ivoire^null
+result.63=04/04/2019^18:41^2.6^-5.4167^16^Fin de veille^CIV^Côte d'Ivoire^null
+result.64=04/04/2019^18:42^2.6^-5.4167^18^Route de nuit vers objet^CIV^Côte d'Ivoire^Route toute la nuit
+result.65=05/04/2019^06:20^1.5167^-7.4^5^Thonier arrivant sur le système détecté^CIV^Côte d'Ivoire^
+result.66=05/04/2019^06:28^1.5^-7.4167^13^Opération sur objet flottant (visite, pose, modification, récupération)^CIV^Côte d'Ivoire^null
+result.67=05/04/2019^07:02^1.5^-7.5333^21^Changement de zone FPA^CIV^Côte d'Ivoire^null
+result.68=05/04/2019^07:11^1.5^-7.55^13^Opération sur objet flottant (visite, pose, modification, récupération)^LBR^Libéria^null
+result.69=05/04/2019^07:34^1.5^-7.6333^13^Opération sur objet flottant (visite, pose, modification, récupération)^LBR^Libéria^null
+result.70=05/04/2019^08:03^1.4667^-7.6833^13^Opération sur objet flottant (visite, pose, modification, récupération)^LBR^Libéria^null
+result.71=05/04/2019^08:20^1.4333^-7.7167^2^Recherche (général)^LBR^Libéria^null
+result.72=05/04/2019^08:32^1.4^-7.7333^13^Opération sur objet flottant (visite, pose, modification, récupération)^LBR^Libéria^null
+result.73=05/04/2019^08:38^1.3833^-7.75^5^Thonier arrivant sur le système détecté^LBR^Libéria^
+result.74=05/04/2019^08:50^1.3667^-7.7333^13^Opération sur objet flottant (visite, pose, modification, récupération)^LBR^Libéria^null
+result.75=05/04/2019^09:07^1.4^-7.7667^13^Opération sur objet flottant (visite, pose, modification, récupération)^LBR^Libéria^null
+result.76=05/04/2019^09:37^1.45^-7.8667^13^Opération sur objet flottant (visite, pose, modification, récupération)^LBR^Libéria^null
+result.77=05/04/2019^10:02^1.4833^-7.9167^13^Opération sur objet flottant (visite, pose, modification, récupération)^LBR^Libéria^null
+result.78=05/04/2019^10:20^1.5^-7.9667^2^Recherche (général)^LBR^Libéria^null
+result.79=05/04/2019^10:29^1.4833^-7.9833^5^Thonier arrivant sur le système détecté^LBR^Libéria^
+result.80=05/04/2019^10:41^1.5^-8.0^13^Opération sur objet flottant (visite, pose, modification, récupération)^LBR^Libéria^null
+result.81=05/04/2019^11:03^1.5333^-8.05^13^Opération sur objet flottant (visite, pose, modification, récupération)^LBR^Libéria^null
+result.82=05/04/2019^11:31^1.5833^-8.1167^13^Opération sur objet flottant (visite, pose, modification, récupération)^LBR^Libéria^null
+result.83=05/04/2019^12:00^1.65^-8.1833^13^Opération sur objet flottant (visite, pose, modification, récupération)^LBR^Libéria^null
+result.84=05/04/2019^12:20^1.7333^-8.2333^2^Recherche (général)^LBR^Libéria^null
+result.85=05/04/2019^12:35^1.75^-8.2667^13^Opération sur objet flottant (visite, pose, modification, récupération)^LBR^Libéria^null
+result.86=05/04/2019^13:04^1.8167^-8.3167^13^Opération sur objet flottant (visite, pose, modification, récupération)^LBR^Libéria^null
+result.87=05/04/2019^13:30^1.85^-8.3333^5^Thonier arrivant sur le système détecté^LBR^Libéria^
+result.88=05/04/2019^13:38^1.8667^-8.3333^13^Opération sur objet flottant (visite, pose, modification, récupération)^LBR^Libéria^
+result.89=05/04/2019^14:00^1.9167^-8.3667^13^Opération sur objet flottant (visite, pose, modification, récupération)^LBR^Libéria^null
+result.90=05/04/2019^14:19^1.95^-8.4167^5^Thonier arrivant sur le système détecté^LBR^Libéria^
+result.91=05/04/2019^14:26^1.95^-8.4167^13^Opération sur objet flottant (visite, pose, modification, récupération)^LBR^Libéria^null
+result.92=05/04/2019^15:05^2.0667^-8.4333^13^Opération sur objet flottant (visite, pose, modification, récupération)^LBR^Libéria^null
+result.93=05/04/2019^15:35^2.15^-8.4333^13^Opération sur objet flottant (visite, pose, modification, récupération)^LBR^Libéria^null
+result.94=05/04/2019^15:36^2.15^-8.4333^5^Thonier arrivant sur le système détecté^LBR^Libéria^
+result.95=05/04/2019^15:46^2.15^-8.4333^13^Opération sur objet flottant (visite, pose, modification, récupération)^LBR^Libéria^null
+result.96=05/04/2019^16:02^2.2^-8.4333^13^Opération sur objet flottant (visite, pose, modification, récupération)^LBR^Libéria^null
+result.97=05/04/2019^16:20^2.2167^-8.4167^2^Recherche (général)^LBR^Libéria^null
+result.98=05/04/2019^16:36^2.2667^-8.4^13^Opération sur objet flottant (visite, pose, modification, récupération)^LBR^Libéria^null
+result.99=05/04/2019^16:46^2.2333^-8.3833^5^Thonier arrivant sur le système détecté^LBR^Libéria^
+result.100=05/04/2019^16:53^2.2333^-8.3833^13^Opération sur objet flottant (visite, pose, modification, récupération)^LBR^Libéria^null
+result.101=05/04/2019^17:08^2.2667^-8.3667^13^Opération sur objet flottant (visite, pose, modification, récupération)^LBR^Libéria^null
+result.102=05/04/2019^17:17^2.2833^-8.35^5^Thonier arrivant sur le système détecté^LBR^Libéria^
+result.103=05/04/2019^17:24^2.2833^-8.35^13^Opération sur objet flottant (visite, pose, modification, récupération)^LBR^Libéria^
+result.104=05/04/2019^17:34^2.3^-8.3333^13^Opération sur objet flottant (visite, pose, modification, récupération)^LBR^Libéria^null
+result.105=05/04/2019^17:37^2.3167^-8.3333^16^Fin de veille^LBR^Libéria^null
+result.106=05/04/2019^18:00^2.3667^-8.3167^5^Thonier arrivant sur le système détecté^LBR^Libéria^
+result.107=05/04/2019^18:15^2.35^-8.3167^13^Opération sur objet flottant (visite, pose, modification, récupération)^LBR^Libéria^null
+result.108=05/04/2019^18:40^2.3333^-8.35^9^En dérive de nuit (moteur stoppé)^LBR^Libéria^null
+result.109=06/04/2019^06:35^2.35^-8.3333^11^Avaries en mer^LBR^Libéria^Avarie au niveau du moteur, navire stoppé (réparation en cours)
+result.110=06/04/2019^12:05^2.3333^-8.3333^11^Avaries en mer^LBR^Libéria^Avarie au niveau du moteur, navire stoppé (réparation en cours)
+result.111=06/04/2019^17:55^2.3667^-8.2833^1^Transit (route sans recherche)^LBR^Libéria^Réparation de l'avarie terminée.
+result.112=06/04/2019^18:00^2.3667^-8.2833^13^Opération sur objet flottant (visite, pose, modification, récupération)^LBR^Libéria^null
+result.113=06/04/2019^18:16^2.3833^-8.25^13^Opération sur objet flottant (visite, pose, modification, récupération)^LBR^Libéria^null
+result.114=06/04/2019^18:26^2.4^-8.2167^13^Opération sur objet flottant (visite, pose, modification, récupération)^LBR^Libéria^null
+result.115=06/04/2019^18:36^2.4167^-8.2^13^Opération sur objet flottant (visite, pose, modification, récupération)^LBR^Libéria^null
+result.116=06/04/2019^18:46^2.45^-8.1833^13^Opération sur objet flottant (visite, pose, modification, récupération)^LBR^Libéria^null
+result.117=06/04/2019^18:57^2.4667^-8.15^13^Opération sur objet flottant (visite, pose, modification, récupération)^LBR^Libéria^null
+result.118=06/04/2019^19:05^2.4833^-8.1333^13^Opération sur objet flottant (visite, pose, modification, récupération)^LBR^Libéria^null
+result.119=06/04/2019^19:06^2.4833^-8.1333^1^Transit (route sans recherche)^LBR^Libéria^Route de nuit
+result.120=07/04/2019^06:24^3.4333^-6.2^21^Changement de zone FPA^null^null^Changement de zone effectué le 06/04/2019 à 22H35 T.U à la position 02°45N et 007°33 W
+result.121=07/04/2019^08:24^3.65^-5.8667^2^Recherche (général)^CIV^Côte d'Ivoire^null
+result.122=07/04/2019^10:24^3.8167^-5.5^2^Recherche (général)^CIV^Côte d'Ivoire^null
+result.123=07/04/2019^12:24^3.9167^-5.1167^5^Thonier arrivant sur le système détecté^CIV^Côte d'Ivoire^
+result.124=07/04/2019^12:43^3.9167^-5.1^13^Opération sur objet flottant (visite, pose, modification, récupération)^CIV^Côte d'Ivoire^null
+result.125=07/04/2019^12:52^3.9167^-5.0833^5^Thonier arrivant sur le système détecté^CIV^Côte d'Ivoire^
+result.126=07/04/2019^14:18^3.9^-5.0833^5^Thonier arrivant sur le système détecté^CIV^Côte d'Ivoire^null
+result.127=07/04/2019^14:21^3.9^-5.0833^6^Pêche (larguage du skiff)^CIV^Côte d'Ivoire^null
+result.128=07/04/2019^18:24^3.9^-4.8833^2^Recherche (général)^CIV^Côte d'Ivoire^null
+result.129=07/04/2019^18:33^3.9^-4.8667^16^Fin de veille^CIV^Côte d'Ivoire^Averse
+result.130=07/04/2019^18:34^3.9^-4.8667^1^Transit (route sans recherche)^CIV^Côte d'Ivoire^Route de nuit jusqu'à 1H
+result.131=08/04/2019^06:30^4.0667^-3.45^1^Transit (route sans recherche)^CIV^Côte d'Ivoire^navire en approche pour le début de l'aviataillement
+result.132=08/04/2019^07:30^4.0667^-3.45^99^Autres (à préciser dans les notes)^CIV^Côte d'Ivoire^Début de l'aviatillement en gasoil.
+result.133=08/04/2019^11:34^4.1833^-3.3333^99^Autres (à préciser dans les notes)^CIV^Côte d'Ivoire^Fin avitaillement en gasoil, poursuite de la route
+result.134=08/04/2019^12:30^4.3167^-3.4167^2^Recherche (général)^CIV^Côte d'Ivoire^null
+result.135=08/04/2019^14:30^4.6^-3.6^2^Recherche (général)^CIV^Côte d'Ivoire^null
+result.136=08/04/2019^16:00^4.8167^-3.75^16^Fin de veille^CIV^Côte d'Ivoire^null
+result.137=08/04/2019^16:30^4.8833^-3.8167^1^Transit (route sans recherche)^CIV^Côte d'Ivoire^
+result.138=08/04/2019^18:30^5.1^-3.95^1^Transit (route sans recherche)^CIV^Côte d'Ivoire^null
+result.139=08/04/2019^21:05^5.2833^-4.0167^0^Au port^CIV^Côte d'Ivoire^Navire au port de pêche d'Abidjan.
+syntax.name=Observations - Toutes les activités, leurs positions et zones FPA
syntax.description=Afficher toutes les activités et leurs positions géographiques
syntax.rows=-1
-syntax.columns=6
-syntax.columnsHeader=Jour^Heure observation^Latitude^Longitude^Activité^Commentaire
+syntax.columns=9
+syntax.columnsHeader=Jour^Heure observation^Latitude^Longitude^Activité (code)^Activité (nom)^Zone FPA (code)^Zone FPA (nom)^Commentaire
syntax.rowsHeader=
syntax.nbRequests=1
-result.columns=6
+result.columns=9
result.rows=140
\ No newline at end of file
=====================================
core/services/test/src/main/resources/fixtures/fr/ird/observe/services/service/ReportService.properties
=====================================
@@ -19,4 +19,4 @@
# <http://www.gnu.org/licenses/gpl-3.0.html>.
# #L%
###
-report.count=34
+report.count=35
=====================================
src/site/markdown/report/embedded-reports.md
=====================================
@@ -86,6 +86,10 @@ Livre de bord - Vérification des plan de cuves
Observations - Activités avec comment et leurs positions
+## psObservationActivitiesByZone
+
+Observations - Types d'activités par zones FPA
+
### psObservationAllActivities
Observations - Toutes les activités et leurs positions
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/compare/4b1fe74f44edf4753fe8cd62…
--
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/compare/4b1fe74f44edf4753fe8cd62…
You're receiving this email because of your account on gitlab.com.
1
0
[Git][ultreiaio/ird-observe] Deleted branch feature/issue-2848
by Tony CHEMIT (@tchemit) March 19, 2024
by Tony CHEMIT (@tchemit) March 19, 2024
March 19, 2024
Tony CHEMIT deleted branch feature/issue-2848 at ultreiaio / ird-observe
--
You're receiving this email because of your account on gitlab.com.
1
0
[Git][ultreiaio/ird-observe][feature/issue-2848] 14 commits: Optimisation du rapport Livre de bord - Vérification des plan de cuves - Closes #2849
by Tony CHEMIT (@tchemit) March 19, 2024
by Tony CHEMIT (@tchemit) March 19, 2024
March 19, 2024
Tony CHEMIT pushed to branch feature/issue-2848 at ultreiaio / ird-observe
Commits:
b5b80021 by Tony Chemit at 2024-03-18T11:00:40+01:00
Optimisation du rapport Livre de bord - Vérification des plan de cuves - Closes #2849
- - - - -
56d7291a by Tony Chemit at 2024-03-18T11:00:40+01:00
Optimisation du rapport Livre de bord - Plan de cuves - Closes #2850
- - - - -
294f63b2 by Tony Chemit at 2024-03-18T11:00:46+01:00
Optimisation du rapport Observations - Utilisation des FOB, tableau simplifiée - Closes #2851
- - - - -
7f181c46 by Tony Chemit at 2024-03-18T11:00:53+01:00
Optimisation du rapport Observations - Utilisation des FOB, tableau détaillé - Closes #2852
- - - - -
8aa68e2b by Tony Chemit at 2024-03-18T11:00:53+01:00
Lors d'exports massifs de données, le token expire rapidement et fait échouer la suite du processus - Closes #2839
- - - - -
8634165e by Tony Chemit at 2024-03-18T11:00:53+01:00
Amélioration de la taille des colonnes du tableau des résultats d'un rapport - Closes #2853
- - - - -
e06ff9e9 by Tony Chemit at 2024-03-19T11:22:17+01:00
Fix one i18n translation
- - - - -
11ea9d2d by Tony Chemit at 2024-03-19T14:20:44+01:00
Review DataManager code (no more logic in the tasks)
- - - - -
f0d95762 by Tony Chemit at 2024-03-19T14:20:44+01:00
Reduce log in ReferentialIdsBuilder
- - - - -
ed8c4a22 by Tony Chemit at 2024-03-19T14:20:44+01:00
Fix DataSource IO in long actions
- - - - -
b3cab5a2 by Tony Chemit at 2024-03-19T14:20:44+01:00
Perte de connection au serveur lors d'envoie massif de marées - Closes #2854
- - - - -
4b1fe74f by Tony Chemit at 2024-03-19T14:20:44+01:00
update pom
- - - - -
584fa484 by Tony Chemit at 2024-03-19T15:00:14+01:00
Mise à jour du rapport psObservationAllActivities
- - - - -
ddc116b2 by Tony Chemit at 2024-03-19T15:00:14+01:00
Ajout du rapport psObservationActivitiesByZone
- - - - -
30 changed files:
- client/core/src/main/java/fr/ird/observe/client/datasource/api/data/CopyDataTask.java
- client/core/src/main/java/fr/ird/observe/client/datasource/api/data/DataManager.java
- client/core/src/main/java/fr/ird/observe/client/datasource/api/data/DataTaskSupport.java
- client/core/src/main/java/fr/ird/observe/client/datasource/api/data/DeleteDataTask.java
- client/core/src/main/java/fr/ird/observe/client/datasource/api/data/InsertMissingReferentialTask.java
- client/core/src/main/java/fr/ird/observe/client/datasource/api/data/TaskSide.java
- client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/export/actions/Prepare.java
- client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/report/ReportModel.java
- client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/synchronize/data/actions/Apply.java
- client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/validate/actions/Start.java
- client/runner/src/main/i18n/translations/client-runner_en_GB.properties
- client/runner/src/main/i18n/translations/client-runner_es_ES.properties
- client/runner/src/main/i18n/translations/client-runner_fr_FR.properties
- core/persistence/report/src/main/resources/META-INF/report/default/ps/psLogbookWellPlan.report
- core/persistence/report/src/main/resources/META-INF/report/default/ps/psLogbookWellPlanCheck.report
- + core/persistence/report/src/main/resources/META-INF/report/default/ps/psObservationActivitiesByZone.report
- core/persistence/report/src/main/resources/META-INF/report/default/ps/psObservationAllActivities.report
- core/persistence/report/src/main/resources/META-INF/report/default/ps/psObservationFobUsageExtended.report
- core/persistence/report/src/main/resources/META-INF/report/default/ps/psObservationFobUsageMinimal.report
- core/persistence/report/src/main/resources/META-INF/report/embedded.list
- core/persistence/report/src/test/java/fr/ird/observe/report/ToolsTest.java
- core/services/client/src/main/java/fr/ird/observe/services/client/ObserveServiceFactoryClient.java
- + core/services/test/src/main/java/fr/ird/observe/services/service/report/ps/PsObservationActivitiesByZoneReportFixture.java
- core/services/test/src/main/java/fr/ird/observe/services/service/report/ps/PsObservationFobUsageExtendedReportFixture.java
- core/services/test/src/main/java/fr/ird/observe/services/service/report/ps/PsObservationFobUsageMinimalReportFixture.java
- core/services/test/src/main/resources/fixtures/fr/ird/observe/services/service/ReportService-psLogbookWellPlanCheck.properties
- + core/services/test/src/main/resources/fixtures/fr/ird/observe/services/service/ReportService-psObservationActivitiesByZone.properties
- core/services/test/src/main/resources/fixtures/fr/ird/observe/services/service/ReportService-psObservationAllActivities.properties
- core/services/test/src/main/resources/fixtures/fr/ird/observe/services/service/ReportService-psObservationFobUsageExtended.properties
- core/services/test/src/main/resources/fixtures/fr/ird/observe/services/service/ReportService-psObservationFobUsageMinimal.properties
The diff was not included because it is too large.
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/compare/8b17856eae5fad301c30b137…
--
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/compare/8b17856eae5fad301c30b137…
You're receiving this email because of your account on gitlab.com.
1
0
[Git][ultreiaio/ird-observe][develop] 6 commits: Fix one i18n translation
by Tony CHEMIT (@tchemit) March 19, 2024
by Tony CHEMIT (@tchemit) March 19, 2024
March 19, 2024
Tony CHEMIT pushed to branch develop at ultreiaio / ird-observe
Commits:
e06ff9e9 by Tony Chemit at 2024-03-19T11:22:17+01:00
Fix one i18n translation
- - - - -
11ea9d2d by Tony Chemit at 2024-03-19T14:20:44+01:00
Review DataManager code (no more logic in the tasks)
- - - - -
f0d95762 by Tony Chemit at 2024-03-19T14:20:44+01:00
Reduce log in ReferentialIdsBuilder
- - - - -
ed8c4a22 by Tony Chemit at 2024-03-19T14:20:44+01:00
Fix DataSource IO in long actions
- - - - -
b3cab5a2 by Tony Chemit at 2024-03-19T14:20:44+01:00
Perte de connection au serveur lors d'envoie massif de marées - Closes #2854
- - - - -
4b1fe74f by Tony Chemit at 2024-03-19T14:20:44+01:00
update pom
- - - - -
14 changed files:
- client/core/src/main/java/fr/ird/observe/client/datasource/api/data/CopyDataTask.java
- client/core/src/main/java/fr/ird/observe/client/datasource/api/data/DataManager.java
- client/core/src/main/java/fr/ird/observe/client/datasource/api/data/DataTaskSupport.java
- client/core/src/main/java/fr/ird/observe/client/datasource/api/data/DeleteDataTask.java
- client/core/src/main/java/fr/ird/observe/client/datasource/api/data/InsertMissingReferentialTask.java
- client/core/src/main/java/fr/ird/observe/client/datasource/api/data/TaskSide.java
- client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/synchronize/data/actions/Apply.java
- client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/validate/actions/Start.java
- client/runner/src/main/i18n/translations/client-runner_en_GB.properties
- client/runner/src/main/i18n/translations/client-runner_es_ES.properties
- client/runner/src/main/i18n/translations/client-runner_fr_FR.properties
- core/services/client/src/main/java/fr/ird/observe/services/client/ObserveServiceFactoryClient.java
- pom.xml
- toolkit/persistence/src/main/java/fr/ird/observe/spi/referential/ReferentialIdsBuilder.java
Changes:
=====================================
client/core/src/main/java/fr/ird/observe/client/datasource/api/data/CopyDataTask.java
=====================================
@@ -22,22 +22,13 @@ package fr.ird.observe.client.datasource.api.data;
* #L%
*/
-import fr.ird.observe.client.datasource.api.ObserveSwingDataSource;
-import fr.ird.observe.dto.ProgressionModel;
import fr.ird.observe.dto.ToolkitIdLabel;
import fr.ird.observe.navigation.tree.selection.SelectionTreeModel;
import fr.ird.observe.navigation.tree.selection.SelectionTreeNodeBean;
-import fr.ird.observe.services.service.data.ExportDataRequest;
-import fr.ird.observe.services.service.data.ExportDataResult;
-import fr.ird.observe.services.service.data.ImportDataRequest;
-import fr.ird.observe.services.service.data.ImportDataResult;
-import org.apache.logging.log4j.LogManager;
-import org.apache.logging.log4j.Logger;
import java.util.function.BiFunction;
import java.util.stream.Stream;
-import static io.ultreia.java4all.i18n.I18n.n;
import static io.ultreia.java4all.i18n.I18n.t;
/**
@@ -48,7 +39,6 @@ import static io.ultreia.java4all.i18n.I18n.t;
*/
public class CopyDataTask extends DataTaskSupport {
- private static final Logger log = LogManager.getLogger(CopyDataTask.class);
private final boolean dataExistOnOpposite;
private final ToolkitIdLabel data;
private final String prefix;
@@ -65,30 +55,6 @@ public class CopyDataTask extends DataTaskSupport {
this.prefix = prefix;
}
- public void consume(ProgressionModel progressModel, ObserveSwingDataSource incomingSource, ObserveSwingDataSource targetSource) {
- String tripId = data.getTopiaId();
- String incomingSourceLabel = incomingSource.getLabel();
- String targetSourceLabel = targetSource.getLabel();
- progressModel.setMessage(t("observe.ui.datasource.editor.actions.data.copy", targetSourceLabel, prefix, data));
- ExportDataRequest exportDataRequest = new ExportDataRequest(!targetSource.isLocal(), tripId);
- ExportDataResult exportDataResult = incomingSource.getDataManagementService().exportData(exportDataRequest);
- logExportResult(progressModel, n("observe.ui.datasource.editor.actions.data.export.result"),
- incomingSourceLabel,
- exportDataResult);
-
- ImportDataRequest importDataRequest = new ImportDataRequest(exportDataResult);
- log.info("Use import script: " + importDataRequest.getSqlContent().getLocation());
- ImportDataResult importDataResult = targetSource.getDataManagementService().importData(importDataRequest);
- logImportResult(progressModel, n("observe.ui.datasource.editor.actions.data.import.result"),
- n("observe.ui.datasource.editor.actions.data.delete.result"),
- targetSourceLabel,
- importDataResult);
-
- if (targetSource.isLocal()) {
- targetSource.setModified(true);
- }
- }
-
public final ToolkitIdLabel getData() {
return data;
}
@@ -111,31 +77,4 @@ public class CopyDataTask extends DataTaskSupport {
return dataExistOnOpposite;
}
- void logExportResult(ProgressionModel progressModel,
- String i18nKey,
- String sourceLabel,
- ExportDataResult tripResult) {
- String message = sendLogResultMessage(progressModel, i18nKey, sourceLabel, prefix, data, tripResult.getTime());
- log.info(message);
- }
-
- void logImportResult(ProgressionModel progressModel,
- String importI18nKey,
- String deleteI18nKey,
- String sourceLabel,
- ImportDataResult tripResult) {
- if (tripResult.isDeleted()) {
- String message = sendLogResultMessage(progressModel, deleteI18nKey, sourceLabel, prefix, data, tripResult.getDeleteTime());
- log.info(message);
- } else {
- progressModel.increments();
- }
- if (tripResult.isImported()) {
- String message = sendLogResultMessage(progressModel, importI18nKey, sourceLabel, prefix, data, tripResult.getImportTime());
- log.info(message);
- } else {
- progressModel.increments();
- }
- }
-
}
=====================================
client/core/src/main/java/fr/ird/observe/client/datasource/api/data/DataManager.java
=====================================
@@ -23,12 +23,38 @@ package fr.ird.observe.client.datasource.api.data;
*/
import fr.ird.observe.client.datasource.api.ObserveSwingDataSource;
+import fr.ird.observe.client.datasource.usage.UsageForDisplayUIHandler;
+import fr.ird.observe.dto.I18nDecoratorHelper;
import fr.ird.observe.dto.ProgressionModel;
+import fr.ird.observe.dto.ToolkitIdLabel;
+import fr.ird.observe.dto.referential.ReferentialDto;
+import fr.ird.observe.services.service.data.DataManagementService;
+import fr.ird.observe.services.service.data.DeleteDataRequest;
+import fr.ird.observe.services.service.data.DeleteDataResult;
+import fr.ird.observe.services.service.data.ExportDataRequest;
+import fr.ird.observe.services.service.data.ExportDataResult;
+import fr.ird.observe.services.service.data.ImportDataRequest;
+import fr.ird.observe.services.service.data.ImportDataResult;
+import fr.ird.observe.services.service.data.MissingReferentialRequest;
+import fr.ird.observe.services.service.data.MissingReferentialResult;
+import fr.ird.observe.services.service.referential.ReferentialIds;
+import fr.ird.observe.services.service.referential.ReferentialService;
import io.ultreia.java4all.application.template.spi.GenerateTemplate;
-import io.ultreia.java4all.lang.TwoSideContext;
+import io.ultreia.java4all.lang.Strings;
+import io.ultreia.java4all.util.SingletonSupplier;
+import io.ultreia.java4all.util.TwoSideContext;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
import java.util.Collection;
+import java.util.Map;
import java.util.Objects;
+import java.util.Set;
+import java.util.function.Supplier;
+import java.util.stream.Collectors;
+
+import static io.ultreia.java4all.i18n.I18n.n;
+import static io.ultreia.java4all.i18n.I18n.t;
/**
* Hi-level object to perform business data management (says: delete some trip, copy some trip, insert missing referential, ...)
@@ -40,10 +66,15 @@ import java.util.Objects;
*/
@GenerateTemplate(template = "showMissingReferential.ftl")
public class DataManager {
+ private static final Logger log = LogManager.getLogger(DataManager.class);
/**
* Data sources by side.
*/
private final TwoSideContext<TaskSide, ObserveSwingDataSource> dataSources;
+ /**
+ * {@link DataManagementService} supplier by side.
+ */
+ private final TwoSideContext<TaskSide, Supplier<DataManagementService>> dataManagementServices;
/**
* Progression model.
*/
@@ -61,6 +92,7 @@ public class DataManager {
return rightSource;
}
};
+ this.dataManagementServices = dataSources.then(s -> SingletonSupplier.of(s::getDataManagementService));
this.progressModel = Objects.requireNonNull(progressModel);
}
@@ -90,18 +122,113 @@ public class DataManager {
return dataSources;
}
- public void consume(CopyDataTask task) {
- TaskSide taskSide = task.getTaskSide();
- task.consume(progressModel, dataSources.onSameSide(taskSide), dataSources.onOppositeSide(taskSide));
+ void consume(CopyDataTask task) {
+ @SuppressWarnings("resource") ObserveSwingDataSource incomingSource = dataSources.onSameSide(task.getTaskSide());
+ @SuppressWarnings("resource") ObserveSwingDataSource targetSource = dataSources.onOppositeSide(task.getTaskSide());
+ DataManagementService incomingSourceDataManagementService = dataManagementServices.onSameSide(task.getTaskSide()).get();
+ DataManagementService targetSourceDataManagementService = dataManagementServices.onOppositeSide(task.getTaskSide()).get();
+ String tripId = task.getData().getTopiaId();
+ String incomingSourceLabel = incomingSource.getLabel();
+ String targetSourceLabel = targetSource.getLabel();
+ progressModel.setMessage(t("observe.ui.datasource.editor.actions.data.copy", targetSourceLabel, task.getPrefix(), task.getData()));
+ ExportDataRequest exportDataRequest = new ExportDataRequest(!targetSource.isLocal(), tripId);
+ ExportDataResult exportDataResult = incomingSourceDataManagementService.exportData(exportDataRequest);
+
+ String message = sendLogResultMessage(n("observe.ui.datasource.editor.actions.data.export.result"),
+ incomingSourceLabel, task.getPrefix(), task.getData(), exportDataResult.getTime());
+ log.info(message);
+ ImportDataRequest importDataRequest = new ImportDataRequest(exportDataResult);
+ log.info("Use import script: " + importDataRequest.getSqlContent().getLocation());
+ ImportDataResult importDataResult = targetSourceDataManagementService.importData(importDataRequest);
+
+ if (importDataResult.isDeleted()) {
+ message = sendLogResultMessage(n("observe.ui.datasource.editor.actions.data.delete.result"), targetSourceLabel, task.getPrefix(), task.getData(), importDataResult.getDeleteTime());
+ log.info(message);
+ } else {
+ progressModel.increments();
+ }
+ if (importDataResult.isImported()) {
+ message = sendLogResultMessage(n("observe.ui.datasource.editor.actions.data.import.result"), targetSourceLabel, task.getPrefix(), task.getData(), importDataResult.getImportTime());
+ log.info(message);
+ } else {
+ progressModel.increments();
+ }
+ if (targetSource.isLocal()) {
+ targetSource.setModified(true);
+ }
+ }
+
+ void consume(InsertMissingReferentialTask task) {
+ @SuppressWarnings("resource") ObserveSwingDataSource incomingSource = dataSources.onSameSide(task.getTaskSide());
+ @SuppressWarnings("resource") ObserveSwingDataSource targetSource = dataSources.onOppositeSide(task.getTaskSide());
+ progressModel.increments();
+
+ String targetSourceLabel = targetSource.getLabel();
+
+ ReferentialService targetReferentialService = targetSource.getReferentialService();
+ ReferentialIds targetSourceReferential = targetReferentialService.getReferentialIds();
+ MissingReferentialRequest missingReferentialRequest = MissingReferentialRequest.of(targetSourceReferential.getIds(), task.getIdsToCopy().toArray(new String[0]));
+ MissingReferentialResult missingReferentialResult = incomingSource.getRootOpenableService().computeMissingReferential(task.getDataType(), missingReferentialRequest);
+ progressModel.increments();
+
+ if (missingReferentialResult == null) {
+ progressModel.increments();
+ return;
+ }
+
+ // there is some referential to add to target source
+
+ Map<Class<? extends ReferentialDto>, Set<ToolkitIdLabel>> usages = incomingSource.getReferentialMap(missingReferentialResult.getMissingIds());
+
+ boolean response = UsageForDisplayUIHandler.showMissingReferential(this.getMessage(), usages, targetSourceLabel);
+
+ if (!response) {
+ progressModel.increments();
+ throw new UserCancelException();
+ }
+
+ StringBuilder parameters = new StringBuilder();
+
+ for (Class<? extends ReferentialDto> key : usages.keySet()) {
+ Set<ToolkitIdLabel> references = usages.get(key);
+ String type = t(I18nDecoratorHelper.getType(key));
+ String labels = references.stream().map(Object::toString).collect(Collectors.joining("\n\t * "));
+ parameters.append(t("observe.ui.datasource.editor.actions.data.import.add.missing.referential.for.type", targetSourceLabel, references.size(), type, labels));
+ parameters.append("\n");
+ }
+
+ progressModel.setMessage(t("observe.ui.datasource.editor.actions.data.import.add.missing.referential", targetSourceLabel, parameters.toString()));
+
+ targetReferentialService.insertMissingReferential(missingReferentialResult.getSqlCode());
}
- public void consume(InsertMissingReferentialTask task) {
- TaskSide taskSide = task.getTaskSide();
- task.consume(progressModel, this::getMessage, dataSources.onSameSide(taskSide), dataSources.onOppositeSide(taskSide));
+ void consume(DeleteDataTask task) {
+ @SuppressWarnings("resource") ObserveSwingDataSource targetSource = dataSources.onSameSide(task.getTaskSide());
+ DataManagementService targetSourceDataManagementService = dataManagementServices.onSameSide(task.getTaskSide()).get();
+ String targetSourceLabel = targetSource.getLabel();
+ String dataId = task.getData().getTopiaId();
+
+ progressModel.setMessage(t("observe.ui.datasource.editor.actions.data.delete", targetSourceLabel, task.getPrefix(), task.getData()));
+ DeleteDataRequest deleteDataRequest = new DeleteDataRequest(dataId);
+ DeleteDataResult deleteDataResult = targetSourceDataManagementService.deleteData(deleteDataRequest);
+
+ String message = sendLogResultMessage(n("observe.ui.datasource.editor.actions.data.delete.result"),
+ targetSourceLabel, task.getPrefix(), task.getData(), deleteDataResult.getTime());
+ log.info(message);
+
+ if (targetSource.isLocal()) {
+ targetSource.setModified(true);
+ }
}
- public void consume(DeleteDataTask task) {
- TaskSide taskSide = task.getTaskSide();
- task.consume(progressModel, dataSources.onSameSide(taskSide));
+ String sendLogResultMessage(String i18nKey,
+ String sourceLabel,
+ String prefix,
+ ToolkitIdLabel data,
+ long time) {
+ String timeStr = Strings.convertTime(time);
+ String message = Strings.leftPad(timeStr, 20) + " - " + t(i18nKey, sourceLabel, prefix, data);
+ progressModel.setMessage(message);
+ return message;
}
}
=====================================
client/core/src/main/java/fr/ird/observe/client/datasource/api/data/DataTaskSupport.java
=====================================
@@ -22,15 +22,9 @@ package fr.ird.observe.client.datasource.api.data;
* #L%
*/
-import fr.ird.observe.dto.ProgressionModel;
-import fr.ird.observe.dto.ToolkitIdLabel;
-import io.ultreia.java4all.lang.Strings;
-
import javax.swing.Icon;
import java.util.Objects;
-import static io.ultreia.java4all.i18n.I18n.t;
-
/**
* Created on 03/08/16.
*
@@ -62,16 +56,5 @@ public abstract class DataTaskSupport {
}
public abstract int stepCount();
- String sendLogResultMessage(ProgressionModel progressModel,
- String i18nKey,
- String sourceLabel,
- String prefix,
- ToolkitIdLabel data,
- long time) {
- String timeStr = Strings.convertTime(time);
- String message = Strings.leftPad(timeStr, 20) + " - " + t(i18nKey, sourceLabel, prefix, data);
- progressModel.setMessage(message);
- return message;
- }
}
=====================================
client/core/src/main/java/fr/ird/observe/client/datasource/api/data/DeleteDataTask.java
=====================================
@@ -22,21 +22,14 @@ package fr.ird.observe.client.datasource.api.data;
* #L%
*/
-import fr.ird.observe.client.datasource.api.ObserveSwingDataSource;
-import fr.ird.observe.dto.ProgressionModel;
import fr.ird.observe.dto.ToolkitIdLabel;
import fr.ird.observe.navigation.tree.selection.SelectionTreeModel;
import fr.ird.observe.navigation.tree.selection.SelectionTreeNodeBean;
-import fr.ird.observe.services.service.data.DeleteDataRequest;
-import fr.ird.observe.services.service.data.DeleteDataResult;
-import org.apache.logging.log4j.LogManager;
-import org.apache.logging.log4j.Logger;
import java.util.Objects;
import java.util.function.BiFunction;
import java.util.stream.Stream;
-import static io.ultreia.java4all.i18n.I18n.n;
import static io.ultreia.java4all.i18n.I18n.t;
/**
@@ -47,7 +40,6 @@ import static io.ultreia.java4all.i18n.I18n.t;
*/
public class DeleteDataTask extends DataTaskSupport {
- private static final Logger log = LogManager.getLogger(DeleteDataTask.class);
private final String prefix;
private final ToolkitIdLabel data;
@@ -62,21 +54,6 @@ public class DeleteDataTask extends DataTaskSupport {
this.data = Objects.requireNonNull(data);
}
- public void consume(ProgressionModel progressModel, ObserveSwingDataSource targetSource) {
- String targetSourceLabel = targetSource.getLabel();
- String dataId = data.getTopiaId();
-
- progressModel.setMessage(t("observe.ui.datasource.editor.actions.data.delete", targetSourceLabel, prefix, data));
- DeleteDataRequest deleteDataRequest = new DeleteDataRequest(dataId);
- DeleteDataResult deleteDataResult = targetSource.getDataManagementService().deleteData(deleteDataRequest);
- logDeleteResult(progressModel, n("observe.ui.datasource.editor.actions.data.delete.result"),
- targetSourceLabel,
- deleteDataResult);
- if (targetSource.isLocal()) {
- targetSource.setModified(true);
- }
- }
-
@Override
public int stepCount() {
return 2;
@@ -87,12 +64,11 @@ public class DeleteDataTask extends DataTaskSupport {
return t(super.getLabel(), prefix, data);
}
- void logDeleteResult(ProgressionModel progressModel,
- String deleteI18nKey,
- String sourceLabel,
- DeleteDataResult tripResult) {
- String message = sendLogResultMessage(progressModel, deleteI18nKey, sourceLabel, prefix, data, tripResult.getTime());
- log.info(message);
+ public String getPrefix() {
+ return prefix;
}
+ public ToolkitIdLabel getData() {
+ return data;
+ }
}
=====================================
client/core/src/main/java/fr/ird/observe/client/datasource/api/data/InsertMissingReferentialTask.java
=====================================
@@ -22,27 +22,11 @@ package fr.ird.observe.client.datasource.api.data;
* #L%
*/
-import fr.ird.observe.client.datasource.api.ObserveSwingDataSource;
-import fr.ird.observe.client.datasource.usage.UsageForDisplayUIHandler;
-import fr.ird.observe.dto.I18nDecoratorHelper;
-import fr.ird.observe.dto.ProgressionModel;
-import fr.ird.observe.dto.ToolkitIdLabel;
import fr.ird.observe.dto.data.RootOpenableDto;
-import fr.ird.observe.dto.referential.ReferentialDto;
-import fr.ird.observe.services.service.data.MissingReferentialRequest;
-import fr.ird.observe.services.service.data.MissingReferentialResult;
-import fr.ird.observe.services.service.referential.ReferentialIds;
-import fr.ird.observe.services.service.referential.ReferentialService;
import io.ultreia.java4all.i18n.I18n;
import java.util.Collection;
-import java.util.Map;
import java.util.Objects;
-import java.util.Set;
-import java.util.function.Supplier;
-import java.util.stream.Collectors;
-
-import static io.ultreia.java4all.i18n.I18n.t;
/**
* Created on 12/11/2021.
@@ -75,46 +59,12 @@ public class InsertMissingReferentialTask extends DataTaskSupport {
return 3;
}
- public void consume(ProgressionModel progressModel, Supplier<String> messageSupplier, ObserveSwingDataSource incomingSource, ObserveSwingDataSource targetSource) {
- progressModel.increments();
-
- String targetSourceLabel = targetSource.getLabel();
-
- ReferentialService targetReferentialService = targetSource.getReferentialService();
- ReferentialIds targetSourceReferential = targetReferentialService.getReferentialIds();
- MissingReferentialRequest missingReferentialRequest = MissingReferentialRequest.of(targetSourceReferential.getIds(), idsToCopy.toArray(new String[0]));
- MissingReferentialResult missingReferentialResult = incomingSource.getRootOpenableService().computeMissingReferential(dataType, missingReferentialRequest);
- progressModel.increments();
-
- if (missingReferentialResult == null) {
- progressModel.increments();
- return;
- }
-
- // there is some referential to add to target source
-
- Map<Class<? extends ReferentialDto>, Set<ToolkitIdLabel>> usages = incomingSource.getReferentialMap(missingReferentialResult.getMissingIds());
-
- boolean response = UsageForDisplayUIHandler.showMissingReferential(messageSupplier.get(), usages, targetSourceLabel);
-
- if (!response) {
- progressModel.increments();
- throw new UserCancelException();
- }
-
- StringBuilder parameters = new StringBuilder();
-
- for (Class<? extends ReferentialDto> key : usages.keySet()) {
- Set<ToolkitIdLabel> references = usages.get(key);
- String type = t(I18nDecoratorHelper.getType(key));
- String labels = references.stream().map(Object::toString).collect(Collectors.joining("\n\t * "));
- parameters.append(t("observe.ui.datasource.editor.actions.data.import.add.missing.referential.for.type", targetSourceLabel, references.size(), type, labels));
- parameters.append("\n");
- }
-
- progressModel.setMessage(t("observe.ui.datasource.editor.actions.data.import.add.missing.referential", targetSourceLabel, parameters.toString()));
+ public Class<? extends RootOpenableDto> getDataType() {
+ return dataType;
+ }
- targetReferentialService.insertMissingReferential(missingReferentialResult.getSqlCode());
+ public Collection<String> getIdsToCopy() {
+ return idsToCopy;
}
}
=====================================
client/core/src/main/java/fr/ird/observe/client/datasource/api/data/TaskSide.java
=====================================
@@ -24,7 +24,7 @@ package fr.ird.observe.client.datasource.api.data;
import fr.ird.observe.client.util.UIHelper;
import io.ultreia.java4all.i18n.I18n;
-import io.ultreia.java4all.lang.TwoSide;
+import io.ultreia.java4all.util.TwoSide;
import javax.swing.Icon;
=====================================
client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/synchronize/data/actions/Apply.java
=====================================
@@ -32,6 +32,11 @@ import fr.ird.observe.client.datasource.api.data.DataTaskSupport;
import fr.ird.observe.client.datasource.api.data.InsertMissingReferentialTask;
import fr.ird.observe.client.datasource.api.data.TaskSide;
import fr.ird.observe.client.datasource.api.data.UserCancelException;
+import fr.ird.observe.datasource.security.BabModelVersionException;
+import fr.ird.observe.datasource.security.DataSourceCreateWithNoReferentialImportException;
+import fr.ird.observe.datasource.security.DatabaseConnexionNotAuthorizedException;
+import fr.ird.observe.datasource.security.DatabaseNotFoundException;
+import fr.ird.observe.datasource.security.IncompatibleDataSourceCreateConfigurationException;
import fr.ird.observe.dto.ProgressionModel;
import fr.ird.observe.dto.data.RootOpenableDto;
import io.ultreia.java4all.lang.Strings;
@@ -69,14 +74,12 @@ public class Apply extends DataSynchroUIActionSupport {
addAdminWorker(getUi().getStart().getToolTipText(), this::doApply);
}
- private WizardState doApply() {
+ private WizardState doApply() throws BabModelVersionException, DataSourceCreateWithNoReferentialImportException, DatabaseNotFoundException, IncompatibleDataSourceCreateConfigurationException, DatabaseConnexionNotAuthorizedException {
DataSynchroModel stepModel = ui.getStepModel();
DataSelectionTreePaneModel leftModel = stepModel.getModel(true);
String moduleName = leftModel.getSelectionDataModel().getConfig().getModuleName();
Class<? extends RootOpenableDto> dataType = "ps".equals(moduleName) ? fr.ird.observe.dto.data.ps.common.TripDto.class : fr.ird.observe.dto.data.ll.common.TripDto.class;
- ObserveSwingDataSource leftSource = leftModel.getSource();
- ObserveSwingDataSource rightSource = stepModel.getModel(false).getSource();
DefaultListModel<DataTaskSupport> tasks = stepModel.getTasks();
Set<String> idsToCopyToLeft = new LinkedHashSet<>();
@@ -107,21 +110,26 @@ public class Apply extends DataSynchroUIActionSupport {
log.info("Total step computed: " + stepCount);
ProgressionModel progressModel = stepModel.getProgressModel();
progressModel.setMaximum(stepCount);
- DataManager dataManager = new DataManager(progressModel, leftSource, rightSource);
- long t00 = TimeLog.getTime();
- progressModel.increments();
- try {
- dataManager.consume(finalTasksToConsume);
- sendMessage(t("observe.ui.datasource.editor.actions.operation.message.done", new Date(), Strings.convertTime(TimeLog.getTime() - t00)));
- return WizardState.SUCCESSED;
- } catch (Exception e) {
- progressModel.increments();
- if (e instanceof UserCancelException) {
- return WizardState.CANCELED;
+
+ try (ObserveSwingDataSource leftSource = openSource(leftModel.getSource())) {
+ try (ObserveSwingDataSource rightSource = openSource(stepModel.getModel(false).getSource())) {
+ long t00 = TimeLog.getTime();
+ progressModel.increments();
+ try {
+ DataManager dataManager = new DataManager(progressModel, leftSource, rightSource);
+ dataManager.consume(finalTasksToConsume);
+ sendMessage(t("observe.ui.datasource.editor.actions.operation.message.done", new Date(), Strings.convertTime(TimeLog.getTime() - t00)));
+ return WizardState.SUCCESSED;
+ } catch (Exception e) {
+ progressModel.increments();
+ if (e instanceof UserCancelException) {
+ return WizardState.CANCELED;
+ }
+ throw e;
+ } finally {
+ log.warn(String.format("Expected count: %d - final step count: %d", stepCount, progressModel.getValue()));
+ }
}
- throw e;
- } finally {
- log.warn(String.format("Expected count: %d - final step count: %d", stepCount, progressModel.getValue()));
}
}
=====================================
client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/validate/actions/Start.java
=====================================
@@ -148,76 +148,74 @@ public class Start extends ValidateUIActionSupport {
SelectionTreeModel dataModel = model.getSelectDataModel().getSelectionDataModel();
- ObserveSwingDataSource dataSourceToValidate = model.getConfigModel().getLeftSourceModel().getSource();
+ try (ObserveSwingDataSource dataSourceToValidate = model.getConfigModel().getLeftSourceModel().getSource()) {
+ int stepsCount = computeStepCount(dataSourceToValidate, dataModel);
+ log.info("Step count: {}", stepsCount);
+ ProgressionModel progressModel = stepModel.getProgressModel();
+ progressModel.setMaximum(stepsCount);
+ progressModel.setValue(0);
+
+ if (!dataSourceToValidate.isOpen()) {
+ dataSourceToValidate.open();
+ progressModel.increments();
+ }
- int stepsCount = computeStepCount(dataSourceToValidate, dataModel);
- log.info("Step count: {}", stepsCount);
- ProgressionModel progressModel = stepModel.getProgressModel();
- progressModel.setMaximum(stepsCount);
- progressModel.setValue(0);
+ ValidateService validateService = dataSourceToValidate.getValidateService();
- if (!dataSourceToValidate.isOpen()) {
- dataSourceToValidate.open();
- progressModel.increments();
- }
+ Set<NuitonValidatorScope> scopes = stepModel.getScopes();
+ String contextName = stepModel.getContextName();
+ ValidationResult result;
- ValidateService validateService = dataSourceToValidate.getValidateService();
+ ValidationRequestConfiguration configuration = stepModel.toValidationRequestConfiguration();
+ if (dataModel.getConfig().isLoadReferential()) {
- Set<NuitonValidatorScope> scopes = stepModel.getScopes();
- String contextName = stepModel.getContextName();
+ ReferentialValidationRequest request = new ReferentialValidationRequest();
- ValidationResult result;
+ request.setReferentialTypes(dataModel.getSelectedReferential());
+ request.setScopes(scopes);
+ request.setValidationContext(contextName);
- ValidationRequestConfiguration configuration = stepModel.toValidationRequestConfiguration();
- if (dataModel.getConfig().isLoadReferential()) {
+ progressModel.increments();
+ result = validateService.validateReferential(configuration, request);
+ progressModel.increments();
- ReferentialValidationRequest request = new ReferentialValidationRequest();
+ } else if (dataModel.getConfig().isLoadData()) {
- request.setReferentialTypes(dataModel.getSelectedReferential());
- request.setScopes(scopes);
- request.setValidationContext(contextName);
-
- progressModel.increments();
- result = validateService.validateReferential(configuration, request);
- progressModel.increments();
+ try (ValidationResultBuilder resultBuilder = ValidationResultBuilder.create()) {
+ List<ToolkitIdLabel> selectedData = new LinkedList<>(dataModel.getSelectedData());
+ Class<? extends RootOpenableDto> dataType = dataModel.getRequest().getModuleName().equals("ps") ? fr.ird.observe.dto.data.ps.common.TripDto.class : fr.ird.observe.dto.data.ll.common.TripDto.class;
+ Decorator decorator = getDecoratorService().getToolkitIdLabelDecoratorByType(dataType);
+ selectedData.forEach(d -> d.registerDecorator(decorator));
+ decorator.sort(selectedData, 0);
+ int max = selectedData.size();
+ int index = 1;
+ for (ToolkitIdLabel datum : selectedData) {
- } else if (dataModel.getConfig().isLoadData()) {
+ String id = datum.getId();
- try (ValidationResultBuilder resultBuilder = ValidationResultBuilder.create()) {
- List<ToolkitIdLabel> selectedData = new LinkedList<>(dataModel.getSelectedData());
- Class<? extends RootOpenableDto> dataType = dataModel.getRequest().getModuleName().equals("ps") ? fr.ird.observe.dto.data.ps.common.TripDto.class : fr.ird.observe.dto.data.ll.common.TripDto.class;
- Decorator decorator = getDecoratorService().getToolkitIdLabelDecoratorByType(dataType);
- selectedData.forEach(d -> d.registerDecorator(decorator));
- decorator.sort(selectedData, 0);
- int max = selectedData.size();
- int index = 1;
- for (ToolkitIdLabel datum : selectedData) {
+ DataValidationRequest request = new DataValidationRequest();
+ request.setDataIds(Collections.singleton(id));
+ request.setScopes(scopes);
+ request.setValidationContext(contextName);
- String id = datum.getId();
+ sendMessage(String.format("[ %4d - %4d ] ", index, max) + t("observe.ui.datasource.editor.actions.validate.message.validate.trip", datum));
- DataValidationRequest request = new DataValidationRequest();
- request.setDataIds(Collections.singleton(id));
- request.setScopes(scopes);
- request.setValidationContext(contextName);
-
- sendMessage(String.format("[ %4d - %4d ] ", index, max) + t("observe.ui.datasource.editor.actions.validate.message.validate.trip", datum));
-
- progressModel.increments();
- result = validateService.validateData(configuration, request);
- progressModel.increments();
- resultBuilder.addResult(result);
- index++;
+ progressModel.increments();
+ result = validateService.validateData(configuration, request);
+ progressModel.increments();
+ resultBuilder.addResult(result);
+ index++;
+ }
+ result = resultBuilder.build();
}
- result = resultBuilder.build();
- }
- } else {
- throw new IllegalStateException();
+ } else {
+ throw new IllegalStateException();
+ }
+ progressModel.increments();
+ stepModel.setValidationResult(result);
+ log.info("Step count (at the end): {} vs computed {}", progressModel.getValue(), stepsCount);
}
- dataSourceToValidate.close();
- progressModel.increments();
- stepModel.setValidationResult(result);
- log.info("Step count (at the end): {} vs computed {}", progressModel.getValue(), stepsCount);
}
private void generateReportFile(ValidateModel validationModel) throws IOException {
=====================================
client/runner/src/main/i18n/translations/client-runner_en_GB.properties
=====================================
@@ -548,7 +548,7 @@ observe.ui.datasource.editor.actions.exportData.title=Export data
observe.ui.datasource.editor.actions.exportData.title.tip=Export data
observe.ui.datasource.editor.actions.operation.configuration=Configuration of operations
observe.ui.datasource.editor.actions.operation.message.canceled=Operation <%1$s> canceled.
-observe.ui.datasource.editor.actions.operation.message.done=Operation done at %1$td/%1$tm/%1$tY à %1$tH\:%1$tM\:%1$tS (duration\: %s).
+observe.ui.datasource.editor.actions.operation.message.done=Operation done at %1$td/%1$tm/%1$tY à %1$tH\:%1$tM\:%1$tS (duration\: %2$s).
observe.ui.datasource.editor.actions.operation.message.failed=Operation has failed.
observe.ui.datasource.editor.actions.operation.message.needFix=Operation need fix.
observe.ui.datasource.editor.actions.operation.message.running=Operation <%1$s> is running...
=====================================
client/runner/src/main/i18n/translations/client-runner_es_ES.properties
=====================================
@@ -548,7 +548,7 @@ observe.ui.datasource.editor.actions.exportData.title=Exportar los datos
observe.ui.datasource.editor.actions.exportData.title.tip=Exportar los datos de usuario
observe.ui.datasource.editor.actions.operation.configuration=Configuración de las operaciones
observe.ui.datasource.editor.actions.operation.message.canceled=La operación <%1$s> fue cancelada.
-observe.ui.datasource.editor.actions.operation.message.done=Operación terminada el %1$td/%1$tm/%1$tY a %1$tH\:%1$tM\:%1$tS (duration\: %s).
+observe.ui.datasource.editor.actions.operation.message.done=Operación terminada el %1$td/%1$tm/%1$tY a %1$tH\:%1$tM\:%1$tS (duration\: %2$s).
observe.ui.datasource.editor.actions.operation.message.failed=La operación falló
observe.ui.datasource.editor.actions.operation.message.needFix=La operación necesita correcciones.
observe.ui.datasource.editor.actions.operation.message.running=La operación < %1$s > se está ejecutando...
=====================================
client/runner/src/main/i18n/translations/client-runner_fr_FR.properties
=====================================
@@ -548,7 +548,7 @@ observe.ui.datasource.editor.actions.exportData.title=Exporter les données
observe.ui.datasource.editor.actions.exportData.title.tip=Exporter les données utilisateurs vers une base centrale
observe.ui.datasource.editor.actions.operation.configuration=Configuration des opérations
observe.ui.datasource.editor.actions.operation.message.canceled=L'opération <%1$s> a été annulée.
-observe.ui.datasource.editor.actions.operation.message.done=Opération terminée le %1$td/%1$tm/%1$tY à %1$tH\:%1$tM\:%1$tS (temps écoulé \: %s).
+observe.ui.datasource.editor.actions.operation.message.done=Opération terminée le %1$td/%1$tm/%1$tY à %1$tH\:%1$tM\:%1$tS (temps écoulé \: %2$s).
observe.ui.datasource.editor.actions.operation.message.failed=L'opération a échouée
observe.ui.datasource.editor.actions.operation.message.needFix=L'opération requière des corrections.
observe.ui.datasource.editor.actions.operation.message.running=L'opération < %1$s > est en cours d'exécution...
=====================================
core/services/client/src/main/java/fr/ird/observe/services/client/ObserveServiceFactoryClient.java
=====================================
@@ -37,6 +37,7 @@ import org.apache.hc.client5.http.cookie.BasicCookieStore;
import org.apache.hc.client5.http.impl.classic.CloseableHttpClient;
import org.apache.hc.client5.http.impl.classic.HttpClientBuilder;
import org.apache.hc.client5.http.impl.io.BasicHttpClientConnectionManager;
+import org.apache.hc.core5.http.io.SocketConfig;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
@@ -62,6 +63,7 @@ public class ObserveServiceFactoryClient implements ObserveServiceFactory {
if (responseBuilder == null) {
int timeout = serviceInitializer.getInitializerConfig().getHttpTimeout();
ConnectionConfig connConfig = ConnectionConfig.custom()
+ .setTimeToLive(200, TimeUnit.MILLISECONDS)
.setSocketTimeout(timeout, TimeUnit.MILLISECONDS)
.build();
BasicHttpClientConnectionManager cm = new BasicHttpClientConnectionManager();
=====================================
pom.xml
=====================================
@@ -23,7 +23,7 @@
<parent>
<groupId>io.ultreia.maven</groupId>
<artifactId>pom</artifactId>
- <version>2024.12</version>
+ <version>2024.13</version>
</parent>
<groupId>fr.ird.observe</groupId>
<artifactId>ird-observe</artifactId>
=====================================
toolkit/persistence/src/main/java/fr/ird/observe/spi/referential/ReferentialIdsBuilder.java
=====================================
@@ -99,7 +99,7 @@ public class ReferentialIdsBuilder {
long t0 = TimeLog.getTime();
List<String> count = persistenceContext.getSqlSupport().findMultipleResult(realSql, r -> r.getString(1));
- TIME_LOG.log(t0, "Get referential ids", realSql);
+ TIME_LOG.log(t0, "Get referential ids", String.format(TopiaEntitySqlReplicatePlanTask.applyIds(task.getSelectSql(), selectClause, "in (" + this.ids.size() + ")"), columnName));
if (!count.isEmpty()) {
result.computeIfAbsent(dtoType, e -> new TreeSet<>()).addAll(count);
}
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/compare/8634165ecaf550c3d999cf04…
--
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/compare/8634165ecaf550c3d999cf04…
You're receiving this email because of your account on gitlab.com.
1
0
[Git][ultreiaio/ird-observe][develop] 6 commits: Optimisation du rapport Livre de bord - Vérification des plan de cuves - Closes #2849
by Tony CHEMIT (@tchemit) March 18, 2024
by Tony CHEMIT (@tchemit) March 18, 2024
March 18, 2024
Tony CHEMIT pushed to branch develop at ultreiaio / ird-observe
Commits:
b5b80021 by Tony Chemit at 2024-03-18T11:00:40+01:00
Optimisation du rapport Livre de bord - Vérification des plan de cuves - Closes #2849
- - - - -
56d7291a by Tony Chemit at 2024-03-18T11:00:40+01:00
Optimisation du rapport Livre de bord - Plan de cuves - Closes #2850
- - - - -
294f63b2 by Tony Chemit at 2024-03-18T11:00:46+01:00
Optimisation du rapport Observations - Utilisation des FOB, tableau simplifiée - Closes #2851
- - - - -
7f181c46 by Tony Chemit at 2024-03-18T11:00:53+01:00
Optimisation du rapport Observations - Utilisation des FOB, tableau détaillé - Closes #2852
- - - - -
8aa68e2b by Tony Chemit at 2024-03-18T11:00:53+01:00
Lors d'exports massifs de données, le token expire rapidement et fait échouer la suite du processus - Closes #2839
- - - - -
8634165e by Tony Chemit at 2024-03-18T11:00:53+01:00
Amélioration de la taille des colonnes du tableau des résultats d'un rapport - Closes #2853
- - - - -
11 changed files:
- client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/export/actions/Prepare.java
- client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/report/ReportModel.java
- core/persistence/report/src/main/resources/META-INF/report/default/ps/psLogbookWellPlan.report
- core/persistence/report/src/main/resources/META-INF/report/default/ps/psLogbookWellPlanCheck.report
- core/persistence/report/src/main/resources/META-INF/report/default/ps/psObservationFobUsageExtended.report
- core/persistence/report/src/main/resources/META-INF/report/default/ps/psObservationFobUsageMinimal.report
- core/services/test/src/main/java/fr/ird/observe/services/service/report/ps/PsObservationFobUsageExtendedReportFixture.java
- core/services/test/src/main/java/fr/ird/observe/services/service/report/ps/PsObservationFobUsageMinimalReportFixture.java
- core/services/test/src/main/resources/fixtures/fr/ird/observe/services/service/ReportService-psLogbookWellPlanCheck.properties
- core/services/test/src/main/resources/fixtures/fr/ird/observe/services/service/ReportService-psObservationFobUsageExtended.properties
- core/services/test/src/main/resources/fixtures/fr/ird/observe/services/service/ReportService-psObservationFobUsageMinimal.properties
Changes:
=====================================
client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/export/actions/Prepare.java
=====================================
@@ -58,7 +58,7 @@ public class Prepare extends ExportUIActionSupport {
addAdminWorker(ui.getPrepare().getToolTipText(), this::doPrepareAction0);
}
- private WizardState doPrepareAction0() throws Exception {
+ private WizardState doPrepareAction0() {
AdminUIModel model = ui.getModel();
List<CopyDataTask> data = CopyDataTask.of(TaskSide.FROM_LEFT, model.getSelectDataModel().getSelectionDataModel()).collect(Collectors.toList());
@@ -70,10 +70,6 @@ public class Prepare extends ExportUIActionSupport {
ConfigModel configModel = model.getConfigModel();
ObserveSwingDataSource targetSource = configModel.getRightSourceModel().getSafeSourceNotOpened();
- if (!targetSource.canWriteData()) {
- throw new IllegalStateException(String.format("Can't export if target source (%s) has no data rights", targetSource.getLabel()));
- }
-
ObserveSwingDataSource incomingSource = configModel.getLeftSourceModel().getSafeSourceNotOpened();
stepModel.setData(data);
=====================================
client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/report/ReportModel.java
=====================================
@@ -57,7 +57,11 @@ import javax.swing.JComboBox;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.SwingUtilities;
+import javax.swing.table.TableCellRenderer;
+import javax.swing.table.TableColumn;
+import javax.swing.table.TableColumnModel;
import java.awt.BorderLayout;
+import java.awt.Component;
import java.awt.event.ItemEvent;
import java.beans.PropertyChangeListener;
import java.io.File;
@@ -508,6 +512,9 @@ public class ReportModel extends AdminActionModel {
if (reportColumnRenderersParameters != null) {
reportColumnRenderersParameters.consumeColumnRenderersSwing(resultTable);
}
+ resizeColumnWidth(resultTable,-1);
+
+
} catch (Exception e) {
clearResult(ui);
throw e;
@@ -516,6 +523,30 @@ public class ReportModel extends AdminActionModel {
}
}
+ public static void resizeColumnWidth(JXTable table, int maxWidth) {
+ final TableColumnModel columnModel = table.getColumnModel();
+ for (int column = 0; column < table.getColumnCount(); column++) {
+ // Account for header size
+ TableColumn tableColumn = table.getColumnModel().getColumn(column);
+ TableCellRenderer renderer = tableColumn.getCellRenderer();
+ if (renderer==null) {
+ renderer = table.getTableHeader().getDefaultRenderer();
+ }
+ Component component = renderer.getTableCellRendererComponent(table, tableColumn.getHeaderValue(), false, false, -1, column);
+ double width = component.getPreferredSize().width;
+ for (int row = 0; row < table.getRowCount(); row++) {
+ renderer = table.getCellRenderer(row, column);
+ Component comp = table.prepareRenderer(renderer, row, column);
+ width = Math.max(comp.getPreferredSize().width + 1, width);
+ }
+ if (maxWidth>0 && width > maxWidth) {
+ width = maxWidth;
+ }
+ tableColumn.setPreferredWidth((int) width);
+ log.debug("Column {} - width (min/max/pref): {} {}/{}/{}", tableColumn.getModelIndex(), tableColumn.getWidth(), tableColumn.getMinWidth(), tableColumn.getMaxWidth(), tableColumn.getPreferredWidth());
+ }
+ }
+
private void clearResult(ReportUI ui) {
getResultModel().clear();
ui.getConfigurationPane().setTitle(null);
=====================================
core/persistence/report/src/main/resources/META-INF/report/default/ps/psLogbookWellPlan.report
=====================================
@@ -39,19 +39,16 @@ w.well, \
r.date, \
a.number, \
Cast(a.time As java.sql.Time), \
-species.@i18nColumnName@, \
-weightCategory.@i18nColumnName@, \
+was.species.@i18nColumnName@, \
+was.weightCategory.@i18nColumnName@, \
was.weight \
From TripImpl t \
Join t.well w \
Join w.wellActivity wa \
Join wa.wellActivitySpecies was \
-Join was.species species \
-Join was.weightCategory weightCategory \
Join t.routeLogbook r \
Join r.activity a \
Join t.vessel vessel \
Left Join a.vesselActivity vesselActivity \
-Left Join a.schoolType schoolType \
Where t.id In :tripId and wa.activity = a \
Order By vessel.code,t.startDate,t.endDate,w.well,r.date,a.time
=====================================
core/persistence/report/src/main/resources/META-INF/report/default/ps/psLogbookWellPlanCheck.report
=====================================
@@ -29,16 +29,6 @@ description.es=
columns=Code bateau,Nom bateau,Date départ,Date arrivée,Date de route,Numéro activité,Heure activité,Logbook YFT,Logbook SKJ,Logbook BET,Logbook ALB,Logbook Autres,Plan de cuves YFT,Plan de cuves SKJ,Plan de cuves BET,Plan de cuves ALB,Plan de cuves Autres,Logbook Total,Plan de cuves Total,Différence
columns.en=Vessel code,Vessel name,Departure date,Landing date,Day of route,Activity number,Activity hour,Logbook YFT,Logbook SKJ,Logbook BET,Logbook ALB,Logbook others,Well plan YFT,Well plan SKJ,Well plan BET,Well plan ALB,Well plan others,Logbook Total,Well plan Total,Difference
columns.es=
-repeatVariable.1.name=activity
-repeatVariable.1.type=fr.ird.observe.entities.data.ps.logbook.Activity
-repeatVariable.1.request=Select a \
-From TripImpl t \
-Join t.routeLogbook r \
-Join r.activity a \
-Join t.vessel vessel \
-Left Join a.vesselActivity vesselActivity \
-Where t.id In :tripId and vesselActivity.id = 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586' \
-Order By vessel.code,t.startDate,r.date,a.number,a.time
request.1.location=0,0
request.1.layout=row
request.1.request=Select vessel.code,\
@@ -47,74 +37,33 @@ t.startDate, \
t.endDate, \
r.date, \
a.number, \
-Cast(a.time As java.sql.Time) \
-From TripImpl t \
-Join t.routeLogbook r \
-Join r.activity a \
-Join t.vessel vessel \
-Where t.id In :tripId and a = :activity
-request.1.repeat.name=activity
-request.1.repeat.layout=column
-request.2.location=7,0
-request.2.layout=row
-request.2.request=Select \
-Sum(CASE ct.species.id When 'fr.ird.referential.common.Species#1239832685474#0.8943253454598569' Then ct.weight Else 0.0 End), \
-Sum(CASE ct.species.id When 'fr.ird.referential.common.Species#1239832685474#0.975344121171992' Then ct.weight Else 0.0 End), \
-Sum(CASE ct.species.id When 'fr.ird.referential.common.Species#1239832685475#0.13349466123905152' Then ct.weight Else 0.0 End), \
-Sum(CASE ct.species.id When 'fr.ird.referential.common.Species#1239832685476#0.5618871286604711' Then ct.weight Else 0.0 End), \
-Sum(CASE ct.species.id When 'fr.ird.referential.common.Species#1239832685474#0.8943253454598569' Then 0.0 \
+Cast(a.time As java.sql.Time), \
+(Select Sum(CASE ct.species.id When 'fr.ird.referential.common.Species#1239832685474#0.8943253454598569' Then ct.weight Else 0.0 End) From a.catches ct), \
+(Select Sum(CASE ct.species.id When 'fr.ird.referential.common.Species#1239832685474#0.975344121171992' Then ct.weight Else 0.0 End) From a.catches ct), \
+(Select Sum(CASE ct.species.id When 'fr.ird.referential.common.Species#1239832685475#0.13349466123905152' Then ct.weight Else 0.0 End) From a.catches ct), \
+(Select Sum(CASE ct.species.id When 'fr.ird.referential.common.Species#1239832685476#0.5618871286604711' Then ct.weight Else 0.0 End) From a.catches ct), \
+(Select Sum(CASE ct.species.id When 'fr.ird.referential.common.Species#1239832685474#0.8943253454598569' Then 0.0 \
When 'fr.ird.referential.common.Species#1239832685474#0.975344121171992' Then 0.0 \
When 'fr.ird.referential.common.Species#1239832685475#0.13349466123905152' Then 0.0 \
When 'fr.ird.referential.common.Species#1239832685476#0.5618871286604711' Then 0.0 \
-Else ct.weight End) \
-From TripImpl t \
-Join t.routeLogbook r \
-Join r.activity a \
-Join a.catches ct \
-Where t.id In :tripId and a = :activity
-request.2.repeat.name=activity
-request.2.repeat.layout=column
-request.3.location=12,0
-request.3.layout=row
-request.3.request=Select \
-Sum(CASE was.species.id When 'fr.ird.referential.common.Species#1239832685474#0.8943253454598569' Then was.weight Else 0.0 End), \
-Sum(CASE was.species.id When 'fr.ird.referential.common.Species#1239832685474#0.975344121171992' Then was.weight Else 0.0 End), \
-Sum(CASE was.species.id When 'fr.ird.referential.common.Species#1239832685475#0.13349466123905152' Then was.weight Else 0.0 End), \
-Sum(CASE was.species.id When 'fr.ird.referential.common.Species#1239832685476#0.5618871286604711' Then was.weight Else 0.0 End), \
-Sum(CASE was.species.id When 'fr.ird.referential.common.Species#1239832685474#0.8943253454598569' Then 0.0 \
+Else ct.weight End) From a.catches ct), \
+(Select Sum(CASE was.species.id When 'fr.ird.referential.common.Species#1239832685474#0.8943253454598569' Then was.weight Else 0.0 End) From WellActivityImpl wa Join wa.wellActivitySpecies was Where wa.activity = a), \
+(Select Sum(CASE was.species.id When 'fr.ird.referential.common.Species#1239832685474#0.975344121171992' Then was.weight Else 0.0 End) From WellActivityImpl wa Join wa.wellActivitySpecies was Where wa.activity = a), \
+(Select Sum(CASE was.species.id When 'fr.ird.referential.common.Species#1239832685475#0.13349466123905152' Then was.weight Else 0.0 End) From WellActivityImpl wa Join wa.wellActivitySpecies was Where wa.activity = a), \
+(Select Sum(CASE was.species.id When 'fr.ird.referential.common.Species#1239832685476#0.5618871286604711' Then was.weight Else 0.0 End) From WellActivityImpl wa Join wa.wellActivitySpecies was Where wa.activity = a), \
+(Select Sum(CASE was.species.id When 'fr.ird.referential.common.Species#1239832685474#0.8943253454598569' Then 0.0 \
When 'fr.ird.referential.common.Species#1239832685474#0.975344121171992' Then 0.0 \
When 'fr.ird.referential.common.Species#1239832685475#0.13349466123905152' Then 0.0 \
When 'fr.ird.referential.common.Species#1239832685476#0.5618871286604711' Then 0.0 \
-Else was.weight End) \
-From TripImpl t \
-Join t.well w \
-Join w.wellActivity wa \
-Join wa.wellActivitySpecies was \
-Where t.id In :tripId and wa.activity = :activity
-request.3.repeat.name=activity
-request.3.repeat.layout=column
-request.4.location=17,0
-request.4.layout=row
-request.4.request=Select \
-Sum(ct.weight) \
+Else was.weight End) From WellActivityImpl wa Join wa.wellActivitySpecies was Where wa.activity = a), \
+(Select Sum(ct.weight) From a.catches ct), \
+(Select Sum(was.weight) From WellActivityImpl wa Join wa.wellActivitySpecies was Where wa.activity = a) \
From TripImpl t \
Join t.routeLogbook r \
-Join r.activity a \
-Join a.catches ct \
-Where t.id In :tripId and a = :activity
-request.4.repeat.name=activity
-request.4.repeat.layout=column
-request.5.location=18,0
-request.5.layout=row
-request.5.request=Select \
-Sum(was.weight) \
-From TripImpl t \
-Join t.well w \
-Join w.wellActivity wa \
-Join wa.wellActivitySpecies was \
-Where t.id In :tripId and wa.activity = :activity
-request.5.repeat.name=activity
-request.5.repeat.layout=column
+Join r.activity a With a.vesselActivity.id = 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586' \
+Join t.vessel vessel \
+Where t.id In :tripId \
+Order By vessel.code,t.startDate,r.date,a.number,a.time
operations.1.type=SubtractColum
operations.1.parameters=17|18|19
operations.2.type=SumColumn
=====================================
core/persistence/report/src/main/resources/META-INF/report/default/ps/psObservationFobUsageExtended.report
=====================================
@@ -33,17 +33,20 @@ repeatVariable.1.name=typeObjetId
repeatVariable.1.type=java.lang.String
repeatVariable.1.request=Select distinct (om.standardCode) \
From ObjectMaterialImpl om \
-Where standardCode is not null \
-And standardCode != '' \
-And (Select Count(dcp) \
+Where om.standardCode is not null \
+And om.standardCode != '' \
+And (om.standardCode In (Select Distinct(dcp.computedWhenArrivingSimplifiedObjectType) \
From fr.ird.observe.entities.data.ps.common.TripImpl m \
Join m.routeObs r \
Join r.activity a \
-Join a.floatingObject dcp \
-Where \
-m.id In :tripId \
-and (dcp.computedWhenArrivingSimplifiedObjectType = om.standardCode Or dcp.computedWhenLeavingSimplifiedObjectType = om.standardCode) \
-) > 0
+Join a.floatingObject dcp With dcp.computedWhenArrivingSimplifiedObjectType Is Not Null \
+Where m.id In :tripId ) Or om.standardCode In (Select Distinct(dcp.computedWhenLeavingSimplifiedObjectType) \
+From fr.ird.observe.entities.data.ps.common.TripImpl m \
+Join m.routeObs r \
+Join r.activity a \
+Join a.floatingObject dcp With dcp.computedWhenLeavingSimplifiedObjectType Is Not Null \
+Where m.id In :tripId )) \
+Order by om.standardCode
request.1.location=0,0
request.1.layout=row
request.1.request=Select concat(str(om.standardCode) , ' - ', om.@i18nColumnName@) \
@@ -55,258 +58,30 @@ request.1.repeat.name=typeObjetId
request.1.repeat.layout=column
request.2.location=1,0
request.2.layout=row
-request.2.request=Select Count(dcp) \
-From fr.ird.observe.entities.data.ps.common.TripImpl m \
-Join m.routeObs r \
-Join r.activity a \
-Join a.floatingObject dcp \
-Where \
-m.id In :tripId \
-and dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId \
-and dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#2' \
-and a.vesselActivity.id = 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586'
+request.2.request=Select \
+Sum(Case When dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId And dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#2' And a.vesselActivity.id = 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586' Then 1 Else 0 End), \
+Sum(Case When dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId And dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#2' And a.vesselActivity.id != 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586' Then 1 Else 0 End), \
+Sum(Case When dcp.computedWhenLeavingSimplifiedObjectType = :typeObjetId And dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#1' And a.vesselActivity.id = 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586' Then 1 Else 0 End), \
+Sum(Case When dcp.computedWhenLeavingSimplifiedObjectType = :typeObjetId And dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#1' And a.vesselActivity.id != 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586' Then 1 Else 0 End), \
+Sum(Case When dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId And dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#8' And a.vesselActivity.id = 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586' Then 1 Else 0 End), \
+Sum(Case When dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId And dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#8' And a.vesselActivity.id != 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586' Then 1 Else 0 End), \
+Sum(Case When dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId And dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#4' And a.vesselActivity.id = 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586' Then 1 Else 0 End), \
+Sum(Case When dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId And dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#4' And a.vesselActivity.id != 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586' Then 1 Else 0 End), \
+Sum(Case When dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId And dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#5' And a.vesselActivity.id = 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586' Then 1 Else 0 End), \
+Sum(Case When dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId And dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#5' And a.vesselActivity.id != 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586' Then 1 Else 0 End), \
+Sum(Case When dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId And dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#7' And a.vesselActivity.id = 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586' Then 1 Else 0 End), \
+Sum(Case When dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId And dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#7' And a.vesselActivity.id != 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586' Then 1 Else 0 End), \
+Sum(Case When dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId And dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#9' And a.vesselActivity.id = 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586' Then 1 Else 0 End), \
+Sum(Case When dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId And dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#9' And a.vesselActivity.id != 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586' Then 1 Else 0 End), \
+Sum(Case When dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId And (dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#10' Or dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#3') And a.vesselActivity.id = 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586' Then 1 Else 0 End), \
+Sum(Case When dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId And (dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#10' Or dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#3') And a.vesselActivity.id != 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586' Then 1 Else 0 End), \
+Sum(Case When dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId And dcp.objectObservedSpecies Is Not Empty Then (Select Sum(efo.count) From dcp.objectObservedSpecies efo Where efo.species.speciesGroup.id = 'fr.ird.referential.common.SpeciesGroup#1239832683690#0.24333033683679461') Else 0 End) \
+From fr.ird.observe.entities.data.ps.common.TripImpl m \
+Join m.routeObs r \
+Join r.activity a \
+Join a.floatingObject dcp With dcp.computedWhenLeavingSimplifiedObjectType = :typeObjetId Or dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId \
+Where \
+m.id In :tripId
request.2.repeat.name=typeObjetId
request.2.repeat.layout=column
-request.2.comment=visite + peche
-request.3.location=2,0
-request.3.layout=row
-request.3.request=Select Count(dcp) \
-From fr.ird.observe.entities.data.ps.common.TripImpl m \
-Join m.routeObs r \
-Join r.activity a \
-Join a.floatingObject dcp \
-Where \
-m.id In :tripId \
-and dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId \
-and dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#2' \
-and a.vesselActivity.id != 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586'
-request.3.repeat.name=typeObjetId
-request.3.repeat.layout=column
-request.3.comment=visite - peche
-request.4.location=3,0
-request.4.layout=row
-request.4.request=Select Count(dcp) \
-From fr.ird.observe.entities.data.ps.common.TripImpl m \
-Join m.routeObs r \
-Join r.activity a \
-Join a.floatingObject dcp \
-Where \
-m.id In :tripId \
-and dcp.computedWhenLeavingSimplifiedObjectType = :typeObjetId \
-and dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#1' \
-and a.vesselActivity.id = 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586'
-request.4.repeat.name=typeObjetId
-request.4.repeat.layout=column
-request.4.comment=Deploiement + peche
-request.5.location=4,0
-request.5.layout=row
-request.5.request=Select Count(dcp) \
-From fr.ird.observe.entities.data.ps.common.TripImpl m \
-Join m.routeObs r \
-Join r.activity a \
-Join a.floatingObject dcp \
-Where \
-m.id In :tripId \
-and dcp.computedWhenLeavingSimplifiedObjectType = :typeObjetId \
-and dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#1' \
-and a.vesselActivity.id != 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586'
-request.5.repeat.name=typeObjetId
-request.5.repeat.layout=column
-request.5.comment=Deploiement - peche
-request.6.location=5,0
-request.6.layout=row
-request.6.request=Select Count(dcp) \
-From fr.ird.observe.entities.data.ps.common.TripImpl m \
-Join m.routeObs r \
-Join r.activity a \
-Join a.floatingObject dcp \
-Where \
-m.id In :tripId \
-and dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId \
-and dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#8' \
-and a.vesselActivity.id = 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586'
-request.6.repeat.name=typeObjetId
-request.6.repeat.layout=column
-request.6.comment=Modifie + peche
-request.7.location=6,0
-request.7.layout=row
-request.7.request=Select Count(dcp) \
-From fr.ird.observe.entities.data.ps.common.TripImpl m \
-Join m.routeObs r \
-Join r.activity a \
-Join a.floatingObject dcp \
-Where \
-m.id In :tripId \
-and dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId \
-and dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#8' \
-and a.vesselActivity.id != 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586'
-request.7.repeat.name=typeObjetId
-request.7.repeat.layout=column
-request.7.comment=Modifie - peche
-request.8.location=7,0
-request.8.layout=row
-request.8.request=Select Count(dcp) \
-From fr.ird.observe.entities.data.ps.common.TripImpl m \
-Join m.routeObs r \
-Join r.activity a \
-Join a.floatingObject dcp \
-Where \
-m.id In :tripId \
-and dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId \
-and dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#4' \
-and a.vesselActivity.id = 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586'
-request.8.repeat.name=typeObjetId
-request.8.repeat.layout=column
-request.8.comment=Retire + peche
-request.9.location=8,0
-request.9.layout=row
-request.9.request=Select Count(dcp) \
-From fr.ird.observe.entities.data.ps.common.TripImpl m \
-Join m.routeObs r \
-Join r.activity a \
-Join a.floatingObject dcp \
-Where \
-m.id In :tripId \
-and dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId \
-and dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#4' \
-and a.vesselActivity.id != 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586'
-request.9.repeat.name=typeObjetId
-request.9.repeat.layout=column
-request.9.comment=Retire - peche
-request.10.location=9,0
-request.10.layout=row
-request.10.request=Select Count(dcp) \
-From fr.ird.observe.entities.data.ps.common.TripImpl m \
-Join m.routeObs r \
-Join r.activity a \
-Join a.floatingObject dcp \
-Where \
-m.id In :tripId \
-and dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId \
-and dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#5' \
-and a.vesselActivity.id = 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586'
-request.10.repeat.name=typeObjetId
-request.10.repeat.layout=column
-request.10.comment=Abandonne + peche
-request.11.location=10,0
-request.11.layout=row
-request.11.request=Select Count(dcp) \
-From fr.ird.observe.entities.data.ps.common.TripImpl m \
-Join m.routeObs r \
-Join r.activity a \
-Join a.floatingObject dcp \
-Where \
-m.id In :tripId \
-and dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId \
-and dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#5' \
-and a.vesselActivity.id != 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586'
-request.11.repeat.name=typeObjetId
-request.11.repeat.layout=column
-request.11.comment=Abandonne - peche
-request.12.location=11,0
-request.12.layout=row
-request.12.request=Select Count(dcp) \
-From fr.ird.observe.entities.data.ps.common.TripImpl m \
-Join m.routeObs r \
-Join r.activity a \
-Join a.floatingObject dcp \
-Where \
-m.id In :tripId \
-and dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId \
-and dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#7' \
-and a.vesselActivity.id = 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586'
-request.12.repeat.name=typeObjetId
-request.12.repeat.layout=column
-request.12.comment=Coule + peche
-request.13.location=12,0
-request.13.layout=row
-request.13.request=Select Count(dcp) \
-From fr.ird.observe.entities.data.ps.common.TripImpl m \
-Join m.routeObs r \
-Join r.activity a \
-Join a.floatingObject dcp \
-Where \
-m.id In :tripId \
-and dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId \
-and dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#7' \
-and a.vesselActivity.id != 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586'
-request.13.repeat.name=typeObjetId
-request.13.repeat.layout=column
-request.13.comment=Coule - peche
-request.14.location=13,0
-request.14.layout=row
-request.14.request=Select Count(dcp) \
-From fr.ird.observe.entities.data.ps.common.TripImpl m \
-Join m.routeObs r \
-Join r.activity a \
-Join a.floatingObject dcp \
-Where \
-m.id In :tripId \
-and dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId \
-and dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#9' \
-and a.vesselActivity.id = 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586'
-request.14.repeat.name=typeObjetId
-request.14.repeat.layout=column
-request.14.comment=Remplace + peche
-request.15.location=14,0
-request.15.layout=row
-request.15.request=Select Count(dcp) \
-From fr.ird.observe.entities.data.ps.common.TripImpl m \
-Join m.routeObs r \
-Join r.activity a \
-Join a.floatingObject dcp \
-Where \
-m.id In :tripId \
-and dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId \
-and dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#9' \
-and a.vesselActivity.id != 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586'
-request.15.repeat.name=typeObjetId
-request.15.repeat.layout=column
-request.15.comment=Remplace - peche
-request.16.location=15,0
-request.16.layout=row
-request.16.request=Select Count(dcp) \
-From fr.ird.observe.entities.data.ps.common.TripImpl m \
-Join m.routeObs r \
-Join r.activity a \
-Join a.floatingObject dcp \
-Where \
-m.id In :tripId \
-and dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId \
-and (dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#10' \
-or dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#3') \
-and a.vesselActivity.id = 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586'
-request.16.repeat.name=typeObjetId
-request.16.repeat.layout=column
-request.16.comment=Autre ou ancien peche + peche
-request.17.location=16,0
-request.17.layout=row
-request.17.request=Select Count(dcp) \
-From fr.ird.observe.entities.data.ps.common.TripImpl m \
-Join m.routeObs r \
-Join r.activity a \
-Join a.floatingObject dcp \
-Where \
-m.id In :tripId \
-and dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId \
-and (dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#10' \
-or dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#3') \
-and a.vesselActivity.id != 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586'
-request.17.repeat.name=typeObjetId
-request.17.repeat.layout=column
-request.17.comment=Autre ou ancien peche - peche
-request.18.location=17,0
-request.18.layout=row
-request.18.request=Select Sum(efo.count) \
-From fr.ird.observe.entities.data.ps.common.TripImpl m \
-Join m.routeObs r \
-Join r.activity a \
-Join a.floatingObject dcp \
-Join dcp.objectObservedSpecies efo \
-Where \
-m.id In :tripId \
-and dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId \
-and efo.species.speciesGroup.id = 'fr.ird.referential.common.SpeciesGroup#1239832683690#0.24333033683679461'
-request.18.repeat.name=typeObjetId
-request.18.repeat.layout=column
-request.18.comment=Nombre de tortues
+request.2.comment=visite + peche / visite - peche / Deploiement + peche / Deploiement - peche / Modifie + peche / Modifie - peche / Retire + peche / Retire - peche / Abandonne + peche / Abandonne - peche / Coule + peche / Coule - peche / Remplace + peche / Remplace - peche / Autre ou ancien peche + peche / Autre ou ancien peche - peche / Nombre de tortues
=====================================
core/persistence/report/src/main/resources/META-INF/report/default/ps/psObservationFobUsageMinimal.report
=====================================
@@ -33,17 +33,20 @@ repeatVariable.1.name=typeObjetId
repeatVariable.1.type=java.lang.String
repeatVariable.1.request=Select distinct (om.standardCode) \
From ObjectMaterialImpl om \
-Where standardCode is not null \
-And standardCode != '' \
-And (Select Count(dcp) \
+Where om.standardCode is not null \
+And om.standardCode != '' \
+And (om.standardCode In (Select Distinct(dcp.computedWhenArrivingSimplifiedObjectType) \
From fr.ird.observe.entities.data.ps.common.TripImpl m \
Join m.routeObs r \
Join r.activity a \
-Join a.floatingObject dcp \
-Where \
-m.id In :tripId \
-and (dcp.computedWhenArrivingSimplifiedObjectType = om.standardCode Or dcp.computedWhenLeavingSimplifiedObjectType = om.standardCode) \
-) > 0
+Join a.floatingObject dcp With dcp.computedWhenArrivingSimplifiedObjectType Is Not Null \
+Where m.id In :tripId ) Or om.standardCode In (Select Distinct(dcp.computedWhenLeavingSimplifiedObjectType) \
+From fr.ird.observe.entities.data.ps.common.TripImpl m \
+Join m.routeObs r \
+Join r.activity a \
+Join a.floatingObject dcp With dcp.computedWhenLeavingSimplifiedObjectType Is Not Null \
+Where m.id In :tripId )) \
+Order by om.standardCode
repeatVariable.1.comment=liste des types CECOFAD en presence sur les donnees selectionnees
request.1.location=0,0
request.1.layout=row
@@ -56,74 +59,31 @@ request.1.repeat.name=typeObjetId
request.1.repeat.layout=column
request.2.location=1,0
request.2.layout=row
-request.2.request=Select Count(dcp) \
-From fr.ird.observe.entities.data.ps.common.TripImpl m \
-Join m.routeObs r \
-Join r.activity a \
-Join a.floatingObject dcp \
-Where \
-m.id In :tripId \
-and dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId \
-and a.vesselActivity.id = 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586' \
-and (dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#2' \
+request.2.request=Select \
+Sum(Case When dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId And a.vesselActivity.id = 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586' And (dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#2' \
or dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#8' \
or dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#4' \
or dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#5' \
or dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#7' \
or dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#9' \
or dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#10' \
-or dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#3')
-request.2.repeat.name=typeObjetId
-request.2.repeat.layout=column
-request.2.comment=rencontres + peches
-request.3.location=2,0
-request.3.layout=row
-request.3.request=Select Count(dcp) \
-From fr.ird.observe.entities.data.ps.common.TripImpl m \
-Join m.routeObs r \
-Join r.activity a \
-Join a.floatingObject dcp \
-Where \
-m.id In :tripId \
-and dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId \
-and a.vesselActivity.id != 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586' \
-and (dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#2' \
+or dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#3') Then 1 Else 0 End), \
+Sum(Case When dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId And a.vesselActivity.id != 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586' And (dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#2' \
or dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#8' \
or dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#4' \
or dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#5' \
or dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#7' \
or dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#9' \
or dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#10' \
-or dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#3')
-request.3.repeat.name=typeObjetId
-request.3.repeat.layout=column
-request.3.comment=rencontres - peches
-request.4.location=3,0
-request.4.layout=row
-request.4.request=Select Count(dcp) \
-From fr.ird.observe.entities.data.ps.common.TripImpl m \
-Join m.routeObs r \
-Join r.activity a \
-Join a.floatingObject dcp \
-Where \
-m.id In :tripId \
-and dcp.computedWhenLeavingSimplifiedObjectType = :typeObjetId \
-and dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#1'
-request.4.repeat.name=typeObjetId
-request.4.repeat.layout=column
-request.4.comment=deployes
-request.5.location=4,0
-request.5.layout=row
-request.5.request=Select Sum(efo.count) \
+or dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#3') Then 1 Else 0 End), \
+Sum(Case When dcp.computedWhenLeavingSimplifiedObjectType = :typeObjetId And dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#1' Then 1 Else 0 End), \
+Sum(Case When dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId And dcp.objectObservedSpecies Is Not Empty Then (Select Sum(efo.count) From dcp.objectObservedSpecies efo Where efo.species.speciesGroup.id = 'fr.ird.referential.common.SpeciesGroup#1239832683690#0.24333033683679461') Else 0 End) \
From fr.ird.observe.entities.data.ps.common.TripImpl m \
Join m.routeObs r \
Join r.activity a \
-Join a.floatingObject dcp \
-Join dcp.objectObservedSpecies efo \
+Join a.floatingObject dcp With dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId Or dcp.computedWhenLeavingSimplifiedObjectType = :typeObjetId \
Where \
-m.id In :tripId \
-and dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId \
-and efo.species.speciesGroup.id = 'fr.ird.referential.common.SpeciesGroup#1239832683690#0.24333033683679461'
-request.5.repeat.name=typeObjetId
-request.5.repeat.layout=column
-request.5.comment=Nombre de tortues
+m.id In :tripId
+request.2.repeat.name=typeObjetId
+request.2.repeat.layout=column
+request.2.comment=rencontres + peches / rencontres - peches / deployes / Nombre de tortues
=====================================
core/services/test/src/main/java/fr/ird/observe/services/service/report/ps/PsObservationFobUsageExtendedReportFixture.java
=====================================
@@ -45,6 +45,5 @@ public class PsObservationFobUsageExtendedReportFixture extends ReportFixture {
Iterator<ReportRequestDefinition> requests = getRequestIterator(report);
assertReportRequestDimension(requests, RequestLayout.row, 0, 0);
assertReportRequestDimension(requests, RequestLayout.row, 1, 0);
- assertReportRequestDimension(requests, RequestLayout.row, 2, 0);
}
}
=====================================
core/services/test/src/main/java/fr/ird/observe/services/service/report/ps/PsObservationFobUsageMinimalReportFixture.java
=====================================
@@ -45,6 +45,5 @@ public class PsObservationFobUsageMinimalReportFixture extends ReportFixture {
Iterator<ReportRequestDefinition> requests = getRequestIterator(report);
assertReportRequestDimension(requests, RequestLayout.row, 0, 0);
assertReportRequestDimension(requests, RequestLayout.row, 1, 0);
- assertReportRequestDimension(requests, RequestLayout.row, 2, 0);
}
}
=====================================
core/services/test/src/main/resources/fixtures/fr/ird/observe/services/service/ReportService-psLogbookWellPlanCheck.properties
=====================================
@@ -25,7 +25,7 @@ syntax.rows=-1
syntax.columns=20
syntax.columnsHeader=Code bateau^Nom bateau^Date départ^Date arrivée^Date de route^Numéro activité^Heure activité^Logbook YFT^Logbook SKJ^Logbook BET^Logbook ALB^Logbook Autres^Plan de cuves YFT^Plan de cuves SKJ^Plan de cuves BET^Plan de cuves ALB^Plan de cuves Autres^Logbook Total^Plan de cuves Total^Différence
syntax.rowsHeader=
-syntax.nbRequests=5
+syntax.nbRequests=1
result.columns=20
result.rows=4
result.0=483^CAP BOJADOR^30/03/2019^08/04/2019^30/03/2019^1^15:12^0.0^123.0^43.0^0.0^0.0^0.0^0.0^12.0^0.0^0.0^166.0^12.0^154.0
=====================================
core/services/test/src/main/resources/fixtures/fr/ird/observe/services/service/ReportService-psObservationFobUsageExtended.properties
=====================================
@@ -19,14 +19,14 @@
# <http://www.gnu.org/licenses/gpl-3.0.html>.
# #L%
###
-result.0=FOB - FOB^0^1^0^0^0^0^0^0^0^0^0^0^0^0^0^0^null
-result.1=DFAD - DFAD (FAD dérivant)^1^15^1^27^0^0^0^0^0^0^0^0^0^0^0^0^null
+result.0=DFAD - DFAD (FAD dérivant)^1^15^1^27^0^0^0^0^0^0^0^0^0^0^0^0^0
+result.1=FOB - FOB^0^1^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0
result.columns=18
result.rows=2
syntax.columns=18
syntax.columnsHeader=Type de FOB^Visités Pêchés^Visités non Pêchés^Déploiement après Pêches^Déploiement seul^Modifiés Pêchés^Modifiés non Pêchés^Retirés Pêchés^Retirés non Pêchés^Abandonnés Pêchés^Abandonnés non Pêchés^Coulés Pêchés^Coulés non Pêchés^Remplacés Pêchés^Remplacés non Pêchés^Autre Pêchés^Autre non Pêchés^Tortues associées
syntax.description=Tableau récapitulatif des FOB rencontrés, par types CECOFAD et types d’actions (déploiements, simples visites, modifications, diverses modalités de retraits), avec et sans pêche, et nombres de tortues observées
syntax.name=Observations - Utilisation des FOB, tableau détaillé
-syntax.nbRequests=18
+syntax.nbRequests=2
syntax.rows=-1
syntax.rowsHeader=
=====================================
core/services/test/src/main/resources/fixtures/fr/ird/observe/services/service/ReportService-psObservationFobUsageMinimal.properties
=====================================
@@ -19,14 +19,14 @@
# <http://www.gnu.org/licenses/gpl-3.0.html>.
# #L%
###
-result.0=FOB - FOB^0^1^0^null
-result.1=DFAD - DFAD (FAD dérivant)^1^15^28^null
+result.0=DFAD - DFAD (FAD dérivant)^1^15^28^0
+result.1=FOB - FOB^0^1^0^0
result.columns=5
result.rows=2
syntax.columns=5
syntax.columnsHeader=Type de FOB^Rencontrés pêchés^Rencontrés non pêchés^Déployés^Tortues associées
syntax.description=Tableau récapitulatif des FOB rencontrés, par types CECOFAD et types d’actions regroupés (rencontrés et pêchés, rencontrés non pêchés, déployés), et nombres de tortues observées
syntax.name=Observations - Utilisation des FOB, tableau simplifiée
-syntax.nbRequests=5
+syntax.nbRequests=2
syntax.rows=-1
syntax.rowsHeader=
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/compare/c1eb65e2a2206c88041278a2…
--
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/compare/c1eb65e2a2206c88041278a2…
You're receiving this email because of your account on gitlab.com.
1
0
[Git][ultreiaio/ird-observe][develop] 2 commits: Lors d'exports massifs de données, le token expire rapidement et fait échouer...
by Tony CHEMIT (@tchemit) March 18, 2024
by Tony CHEMIT (@tchemit) March 18, 2024
March 18, 2024
Tony CHEMIT pushed to branch develop at ultreiaio / ird-observe
Commits:
a7ca15f7 by Tony Chemit at 2024-03-18T08:26:56+01:00
Lors d'exports massifs de données, le token expire rapidement et fait échouer la suite du processus - Closes #2839
- - - - -
c1eb65e2 by Tony Chemit at 2024-03-18T09:23:24+01:00
Amélioration de la taille des colonnes du tableau des résultats d'un rapport - Closes #2853
- - - - -
2 changed files:
- client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/export/actions/Prepare.java
- client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/report/ReportModel.java
Changes:
=====================================
client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/export/actions/Prepare.java
=====================================
@@ -58,7 +58,7 @@ public class Prepare extends ExportUIActionSupport {
addAdminWorker(ui.getPrepare().getToolTipText(), this::doPrepareAction0);
}
- private WizardState doPrepareAction0() throws Exception {
+ private WizardState doPrepareAction0() {
AdminUIModel model = ui.getModel();
List<CopyDataTask> data = CopyDataTask.of(TaskSide.FROM_LEFT, model.getSelectDataModel().getSelectionDataModel()).collect(Collectors.toList());
@@ -70,10 +70,6 @@ public class Prepare extends ExportUIActionSupport {
ConfigModel configModel = model.getConfigModel();
ObserveSwingDataSource targetSource = configModel.getRightSourceModel().getSafeSourceNotOpened();
- if (!targetSource.canWriteData()) {
- throw new IllegalStateException(String.format("Can't export if target source (%s) has no data rights", targetSource.getLabel()));
- }
-
ObserveSwingDataSource incomingSource = configModel.getLeftSourceModel().getSafeSourceNotOpened();
stepModel.setData(data);
=====================================
client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/report/ReportModel.java
=====================================
@@ -57,7 +57,11 @@ import javax.swing.JComboBox;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.SwingUtilities;
+import javax.swing.table.TableCellRenderer;
+import javax.swing.table.TableColumn;
+import javax.swing.table.TableColumnModel;
import java.awt.BorderLayout;
+import java.awt.Component;
import java.awt.event.ItemEvent;
import java.beans.PropertyChangeListener;
import java.io.File;
@@ -508,6 +512,9 @@ public class ReportModel extends AdminActionModel {
if (reportColumnRenderersParameters != null) {
reportColumnRenderersParameters.consumeColumnRenderersSwing(resultTable);
}
+ resizeColumnWidth(resultTable,-1);
+
+
} catch (Exception e) {
clearResult(ui);
throw e;
@@ -516,6 +523,30 @@ public class ReportModel extends AdminActionModel {
}
}
+ public static void resizeColumnWidth(JXTable table, int maxWidth) {
+ final TableColumnModel columnModel = table.getColumnModel();
+ for (int column = 0; column < table.getColumnCount(); column++) {
+ // Account for header size
+ TableColumn tableColumn = table.getColumnModel().getColumn(column);
+ TableCellRenderer renderer = tableColumn.getCellRenderer();
+ if (renderer==null) {
+ renderer = table.getTableHeader().getDefaultRenderer();
+ }
+ Component component = renderer.getTableCellRendererComponent(table, tableColumn.getHeaderValue(), false, false, -1, column);
+ double width = component.getPreferredSize().width;
+ for (int row = 0; row < table.getRowCount(); row++) {
+ renderer = table.getCellRenderer(row, column);
+ Component comp = table.prepareRenderer(renderer, row, column);
+ width = Math.max(comp.getPreferredSize().width + 1, width);
+ }
+ if (maxWidth>0 && width > maxWidth) {
+ width = maxWidth;
+ }
+ tableColumn.setPreferredWidth((int) width);
+ log.debug("Column {} - width (min/max/pref): {} {}/{}/{}", tableColumn.getModelIndex(), tableColumn.getWidth(), tableColumn.getMinWidth(), tableColumn.getMaxWidth(), tableColumn.getPreferredWidth());
+ }
+ }
+
private void clearResult(ReportUI ui) {
getResultModel().clear();
ui.getConfigurationPane().setTitle(null);
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/compare/c375649ae2eaba140213ff6e…
--
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/compare/c375649ae2eaba140213ff6e…
You're receiving this email because of your account on gitlab.com.
1
0
[Git][ultreiaio/ird-observe][feature/issue-2848] 7 commits: Add more TimeLog and fix log.debug issues in ReportRequestExecutor
by Tony CHEMIT (@tchemit) March 16, 2024
by Tony CHEMIT (@tchemit) March 16, 2024
March 16, 2024
Tony CHEMIT pushed to branch feature/issue-2848 at ultreiaio / ird-observe
Commits:
88b13f8a by Tony Chemit at 2024-03-16T13:06:10+01:00
Add more TimeLog and fix log.debug issues in ReportRequestExecutor
- - - - -
71e34b77 by Tony Chemit at 2024-03-16T13:15:56+01:00
Optimisation du rapport Livre de bord - Vérification des plan de cuves - Closes #2849
- - - - -
0a4cdf76 by Tony Chemit at 2024-03-16T13:33:34+01:00
Optimisation du rapport Livre de bord - Plan de cuves - Closes #2850
- - - - -
d07f7bc5 by Tony Chemit at 2024-03-16T15:48:14+01:00
Optimisation du rapport Observations - Utilisation des FOB, tableau simplifiée - Closes #2851
- - - - -
c375649a by Tony Chemit at 2024-03-16T15:48:14+01:00
Optimisation du rapport Observations - Utilisation des FOB, tableau détaillé - Closes #2852
- - - - -
327f2a86 by Tony Chemit at 2024-03-16T15:49:36+01:00
Mise à jour du rapport psObservationAllActivities
- - - - -
8b17856e by Tony Chemit at 2024-03-16T15:59:00+01:00
Ajout du rapport psObservationActivitiesByZone
- - - - -
19 changed files:
- core/persistence/report/src/main/resources/META-INF/report/default/ps/psLogbookWellPlan.report
- core/persistence/report/src/main/resources/META-INF/report/default/ps/psLogbookWellPlanCheck.report
- + core/persistence/report/src/main/resources/META-INF/report/default/ps/psObservationActivitiesByZone.report
- core/persistence/report/src/main/resources/META-INF/report/default/ps/psObservationAllActivities.report
- core/persistence/report/src/main/resources/META-INF/report/default/ps/psObservationFobUsageExtended.report
- core/persistence/report/src/main/resources/META-INF/report/default/ps/psObservationFobUsageMinimal.report
- core/persistence/report/src/main/resources/META-INF/report/embedded.list
- core/persistence/report/src/test/java/fr/ird/observe/report/ToolsTest.java
- + core/services/test/src/main/java/fr/ird/observe/services/service/report/ps/PsObservationActivitiesByZoneReportFixture.java
- core/services/test/src/main/java/fr/ird/observe/services/service/report/ps/PsObservationFobUsageExtendedReportFixture.java
- core/services/test/src/main/java/fr/ird/observe/services/service/report/ps/PsObservationFobUsageMinimalReportFixture.java
- core/services/test/src/main/resources/fixtures/fr/ird/observe/services/service/ReportService-psLogbookWellPlanCheck.properties
- + core/services/test/src/main/resources/fixtures/fr/ird/observe/services/service/ReportService-psObservationActivitiesByZone.properties
- core/services/test/src/main/resources/fixtures/fr/ird/observe/services/service/ReportService-psObservationAllActivities.properties
- core/services/test/src/main/resources/fixtures/fr/ird/observe/services/service/ReportService-psObservationFobUsageExtended.properties
- core/services/test/src/main/resources/fixtures/fr/ird/observe/services/service/ReportService-psObservationFobUsageMinimal.properties
- core/services/test/src/main/resources/fixtures/fr/ird/observe/services/service/ReportService.properties
- src/site/markdown/report/embedded-reports.md
- toolkit/api-report/src/main/java/fr/ird/observe/report/ReportRequestExecutor.java
Changes:
=====================================
core/persistence/report/src/main/resources/META-INF/report/default/ps/psLogbookWellPlan.report
=====================================
@@ -39,19 +39,16 @@ w.well, \
r.date, \
a.number, \
Cast(a.time As java.sql.Time), \
-species.@i18nColumnName@, \
-weightCategory.@i18nColumnName@, \
+was.species.@i18nColumnName@, \
+was.weightCategory.@i18nColumnName@, \
was.weight \
From TripImpl t \
Join t.well w \
Join w.wellActivity wa \
Join wa.wellActivitySpecies was \
-Join was.species species \
-Join was.weightCategory weightCategory \
Join t.routeLogbook r \
Join r.activity a \
Join t.vessel vessel \
Left Join a.vesselActivity vesselActivity \
-Left Join a.schoolType schoolType \
Where t.id In :tripId and wa.activity = a \
Order By vessel.code,t.startDate,t.endDate,w.well,r.date,a.time
=====================================
core/persistence/report/src/main/resources/META-INF/report/default/ps/psLogbookWellPlanCheck.report
=====================================
@@ -29,16 +29,6 @@ description.es=
columns=Code bateau,Nom bateau,Date départ,Date arrivée,Date de route,Numéro activité,Heure activité,Logbook YFT,Logbook SKJ,Logbook BET,Logbook ALB,Logbook Autres,Plan de cuves YFT,Plan de cuves SKJ,Plan de cuves BET,Plan de cuves ALB,Plan de cuves Autres,Logbook Total,Plan de cuves Total,Différence
columns.en=Vessel code,Vessel name,Departure date,Landing date,Day of route,Activity number,Activity hour,Logbook YFT,Logbook SKJ,Logbook BET,Logbook ALB,Logbook others,Well plan YFT,Well plan SKJ,Well plan BET,Well plan ALB,Well plan others,Logbook Total,Well plan Total,Difference
columns.es=
-repeatVariable.1.name=activity
-repeatVariable.1.type=fr.ird.observe.entities.data.ps.logbook.Activity
-repeatVariable.1.request=Select a \
-From TripImpl t \
-Join t.routeLogbook r \
-Join r.activity a \
-Join t.vessel vessel \
-Left Join a.vesselActivity vesselActivity \
-Where t.id In :tripId and vesselActivity.id = 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586' \
-Order By vessel.code,t.startDate,r.date,a.number,a.time
request.1.location=0,0
request.1.layout=row
request.1.request=Select vessel.code,\
@@ -47,74 +37,33 @@ t.startDate, \
t.endDate, \
r.date, \
a.number, \
-Cast(a.time As java.sql.Time) \
-From TripImpl t \
-Join t.routeLogbook r \
-Join r.activity a \
-Join t.vessel vessel \
-Where t.id In :tripId and a = :activity
-request.1.repeat.name=activity
-request.1.repeat.layout=column
-request.2.location=7,0
-request.2.layout=row
-request.2.request=Select \
-Sum(CASE ct.species.id When 'fr.ird.referential.common.Species#1239832685474#0.8943253454598569' Then ct.weight Else 0.0 End), \
-Sum(CASE ct.species.id When 'fr.ird.referential.common.Species#1239832685474#0.975344121171992' Then ct.weight Else 0.0 End), \
-Sum(CASE ct.species.id When 'fr.ird.referential.common.Species#1239832685475#0.13349466123905152' Then ct.weight Else 0.0 End), \
-Sum(CASE ct.species.id When 'fr.ird.referential.common.Species#1239832685476#0.5618871286604711' Then ct.weight Else 0.0 End), \
-Sum(CASE ct.species.id When 'fr.ird.referential.common.Species#1239832685474#0.8943253454598569' Then 0.0 \
+Cast(a.time As java.sql.Time), \
+(Select Sum(CASE ct.species.id When 'fr.ird.referential.common.Species#1239832685474#0.8943253454598569' Then ct.weight Else 0.0 End) From fr.ird.observe.entities.data.ps.logbook.ActivityImpl aa Join a.catches ct Where aa = a), \
+(Select Sum(CASE ct.species.id When 'fr.ird.referential.common.Species#1239832685474#0.975344121171992' Then ct.weight Else 0.0 End) From fr.ird.observe.entities.data.ps.logbook.ActivityImpl aa Join a.catches ct Where aa = a), \
+(Select Sum(CASE ct.species.id When 'fr.ird.referential.common.Species#1239832685475#0.13349466123905152' Then ct.weight Else 0.0 End) From fr.ird.observe.entities.data.ps.logbook.ActivityImpl aa Join a.catches ct Where aa = a), \
+(Select Sum(CASE ct.species.id When 'fr.ird.referential.common.Species#1239832685476#0.5618871286604711' Then ct.weight Else 0.0 End) From fr.ird.observe.entities.data.ps.logbook.ActivityImpl aa Join a.catches ct Where aa = a), \
+(Select Sum(CASE ct.species.id When 'fr.ird.referential.common.Species#1239832685474#0.8943253454598569' Then 0.0 \
When 'fr.ird.referential.common.Species#1239832685474#0.975344121171992' Then 0.0 \
When 'fr.ird.referential.common.Species#1239832685475#0.13349466123905152' Then 0.0 \
When 'fr.ird.referential.common.Species#1239832685476#0.5618871286604711' Then 0.0 \
-Else ct.weight End) \
-From TripImpl t \
-Join t.routeLogbook r \
-Join r.activity a \
-Join a.catches ct \
-Where t.id In :tripId and a = :activity
-request.2.repeat.name=activity
-request.2.repeat.layout=column
-request.3.location=12,0
-request.3.layout=row
-request.3.request=Select \
-Sum(CASE was.species.id When 'fr.ird.referential.common.Species#1239832685474#0.8943253454598569' Then was.weight Else 0.0 End), \
-Sum(CASE was.species.id When 'fr.ird.referential.common.Species#1239832685474#0.975344121171992' Then was.weight Else 0.0 End), \
-Sum(CASE was.species.id When 'fr.ird.referential.common.Species#1239832685475#0.13349466123905152' Then was.weight Else 0.0 End), \
-Sum(CASE was.species.id When 'fr.ird.referential.common.Species#1239832685476#0.5618871286604711' Then was.weight Else 0.0 End), \
-Sum(CASE was.species.id When 'fr.ird.referential.common.Species#1239832685474#0.8943253454598569' Then 0.0 \
+Else ct.weight End) From fr.ird.observe.entities.data.ps.logbook.ActivityImpl aa Join a.catches ct Where aa = a), \
+(Select Sum(CASE was.species.id When 'fr.ird.referential.common.Species#1239832685474#0.8943253454598569' Then was.weight Else 0.0 End) From WellActivityImpl wa Join wa.wellActivitySpecies was Where wa.activity = a), \
+(Select Sum(CASE was.species.id When 'fr.ird.referential.common.Species#1239832685474#0.975344121171992' Then was.weight Else 0.0 End) From WellActivityImpl wa Join wa.wellActivitySpecies was Where wa.activity = a), \
+(Select Sum(CASE was.species.id When 'fr.ird.referential.common.Species#1239832685475#0.13349466123905152' Then was.weight Else 0.0 End) From WellActivityImpl wa Join wa.wellActivitySpecies was Where wa.activity = a), \
+(Select Sum(CASE was.species.id When 'fr.ird.referential.common.Species#1239832685476#0.5618871286604711' Then was.weight Else 0.0 End) From WellActivityImpl wa Join wa.wellActivitySpecies was Where wa.activity = a), \
+(Select Sum(CASE was.species.id When 'fr.ird.referential.common.Species#1239832685474#0.8943253454598569' Then 0.0 \
When 'fr.ird.referential.common.Species#1239832685474#0.975344121171992' Then 0.0 \
When 'fr.ird.referential.common.Species#1239832685475#0.13349466123905152' Then 0.0 \
When 'fr.ird.referential.common.Species#1239832685476#0.5618871286604711' Then 0.0 \
-Else was.weight End) \
-From TripImpl t \
-Join t.well w \
-Join w.wellActivity wa \
-Join wa.wellActivitySpecies was \
-Where t.id In :tripId and wa.activity = :activity
-request.3.repeat.name=activity
-request.3.repeat.layout=column
-request.4.location=17,0
-request.4.layout=row
-request.4.request=Select \
-Sum(ct.weight) \
+Else was.weight End) From WellActivityImpl wa Join wa.wellActivitySpecies was Where wa.activity = a), \
+(Select Sum(ct.weight) From fr.ird.observe.entities.data.ps.logbook.ActivityImpl aa Join a.catches ct Where aa = a), \
+(Select Sum(was.weight) From WellActivityImpl wa Join wa.wellActivitySpecies was Where wa.activity = a) \
From TripImpl t \
Join t.routeLogbook r \
-Join r.activity a \
-Join a.catches ct \
-Where t.id In :tripId and a = :activity
-request.4.repeat.name=activity
-request.4.repeat.layout=column
-request.5.location=18,0
-request.5.layout=row
-request.5.request=Select \
-Sum(was.weight) \
-From TripImpl t \
-Join t.well w \
-Join w.wellActivity wa \
-Join wa.wellActivitySpecies was \
-Where t.id In :tripId and wa.activity = :activity
-request.5.repeat.name=activity
-request.5.repeat.layout=column
+Join r.activity a With a.vesselActivity.id = 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586' \
+Join t.vessel vessel \
+Where t.id In :tripId \
+Order By vessel.code,t.startDate,r.date,a.number,a.time
operations.1.type=SubtractColum
operations.1.parameters=17|18|19
operations.2.type=SumColumn
=====================================
core/persistence/report/src/main/resources/META-INF/report/default/ps/psObservationActivitiesByZone.report
=====================================
@@ -0,0 +1,60 @@
+modelType=PS
+name=Observations - Types d'activités par zones FPA
+name.en=
+name.es=
+description=Tableau récapitulatif des types d'activités par zone FPA traversée
+description.en=
+description.es=
+columns=Zone,Visités Pêchés,Visités non Pêchés,Déploiement après Pêches,Déploiement seul,Modifiés Pêchés,Modifiés non Pêchés,Retirés Pêchés,Retirés non Pêchés,Abandonnés Pêchés,Abandonnés non Pêchés,Coulés Pêchés,Coulés non Pêchés,Remplacés Pêchés,Remplacés non Pêchés,Autre Pêchés,Autre non Pêchés,Tortues associées,Total
+columns.en=
+columns.es=
+repeatVariable.1.name=zoneFpaId
+repeatVariable.1.type=java.lang.String
+repeatVariable.1.request=Select z.id \
+From FpaZoneImpl z \
+Where z.id In (Select distinct (a.currentFpaZone.id) \
+ From fr.ird.observe.entities.data.ps.common.TripImpl m \
+ Join m.routeObs r \
+ Join r.activity a With a.currentFpaZone Is Not NULL \
+ Where m.id In :tripId And a.floatingObject Is Not Empty) \
+Order By z.code, z.@i18nColumnName@
+request.1.location=0,0
+request.1.layout=row
+request.1.request=Select concat(str(z.code) , ' - ', z.@i18nColumnName@) \
+From FpaZoneImpl z \
+Where \
+z.id = :zoneFpaId
+request.1.repeat.name=zoneFpaId
+request.1.repeat.layout=column
+request.2.location=1,0
+request.2.layout=row
+request.2.request=Select \
+SUM(CASE When dcp.objectOperation = 'fr.ird.referential.ps.common.ObjectOperation#0#2' And a.vesselActivity = 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586' Then 1 Else 0 End), \
+SUM(CASE When dcp.objectOperation = 'fr.ird.referential.ps.common.ObjectOperation#0#2' And a.vesselActivity != 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586' Then 1 Else 0 End), \
+SUM(CASE When dcp.objectOperation = 'fr.ird.referential.ps.common.ObjectOperation#0#1' And a.vesselActivity = 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586' Then 1 Else 0 End), \
+SUM(CASE When dcp.objectOperation = 'fr.ird.referential.ps.common.ObjectOperation#0#1' And a.vesselActivity != 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586' Then 1 Else 0 End), \
+SUM(CASE When dcp.objectOperation = 'fr.ird.referential.ps.common.ObjectOperation#0#8' And a.vesselActivity = 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586' Then 1 Else 0 End), \
+SUM(CASE When dcp.objectOperation = 'fr.ird.referential.ps.common.ObjectOperation#0#8' And a.vesselActivity != 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586' Then 1 Else 0 End), \
+SUM(CASE When dcp.objectOperation = 'fr.ird.referential.ps.common.ObjectOperation#0#4' And a.vesselActivity = 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586' Then 1 Else 0 End), \
+SUM(CASE When dcp.objectOperation = 'fr.ird.referential.ps.common.ObjectOperation#0#4' And a.vesselActivity != 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586' Then 1 Else 0 End), \
+SUM(CASE When dcp.objectOperation = 'fr.ird.referential.ps.common.ObjectOperation#0#5' And a.vesselActivity = 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586' Then 1 Else 0 End), \
+SUM(CASE When dcp.objectOperation = 'fr.ird.referential.ps.common.ObjectOperation#0#5' And a.vesselActivity != 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586' Then 1 Else 0 End), \
+SUM(CASE When dcp.objectOperation = 'fr.ird.referential.ps.common.ObjectOperation#0#7' And a.vesselActivity = 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586' Then 1 Else 0 End), \
+SUM(CASE When dcp.objectOperation = 'fr.ird.referential.ps.common.ObjectOperation#0#7' And a.vesselActivity != 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586' Then 1 Else 0 End), \
+SUM(CASE When dcp.objectOperation = 'fr.ird.referential.ps.common.ObjectOperation#0#9' And a.vesselActivity = 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586' Then 1 Else 0 End), \
+SUM(CASE When dcp.objectOperation = 'fr.ird.referential.ps.common.ObjectOperation#0#9' And a.vesselActivity != 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586' Then 1 Else 0 End), \
+SUM(CASE When ( dcp.objectOperation = 'fr.ird.referential.ps.common.ObjectOperation#0#10' Or dcp.objectOperation = 'fr.ird.referential.ps.common.ObjectOperation#0#3' ) And a.vesselActivity = 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586' Then 1 Else 0 End), \
+SUM(CASE When ( dcp.objectOperation = 'fr.ird.referential.ps.common.ObjectOperation#0#10' Or dcp.objectOperation = 'fr.ird.referential.ps.common.ObjectOperation#0#3' ) And a.vesselActivity != 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586' Then 1 Else 0 End), \
+Sum(Case When dcp.objectObservedSpecies Is Not Empty Then (Select Sum(efo.count) From fr.ird.observe.entities.data.ps.observation.FloatingObjectImpl dcp1 Join dcp1.objectObservedSpecies efo With efo.species.speciesGroup.id = 'fr.ird.referential.common.SpeciesGroup#1239832683690#0.24333033683679461' Where dcp1 = dcp) Else 0 End) \
+From fr.ird.observe.entities.data.ps.common.TripImpl m \
+Join m.routeObs r \
+Join r.activity a With a.currentFpaZone.id = :zoneFpaId \
+Join a.floatingObject dcp \
+Where m.id In :tripId
+request.2.repeat.name=zoneFpaId
+request.2.repeat.layout=column
+request.2.comment=visite + peche / visite - peche / Deploiement + peche / Deploiement - peche / Modifie + peche / Modifie - peche / Retire + peche / Retire - peche / Abandonne + peche / Abandonne - peche / Coule + peche / Coule - peche / Remplace + peche / Remplace - peche / Autre ou ancien peche + peche / Autre ou ancien peche - peche / Nombre de tortues
+operations.1.type=SumIntRow
+operations.1.parameters=0|1
+operations.2.type=SumIntColumn
+operations.2.parameters=0|1
=====================================
core/persistence/report/src/main/resources/META-INF/report/default/ps/psObservationAllActivities.report
=====================================
@@ -20,22 +20,25 @@
# #L%
###
modelType=PS
-name=Observations - Toutes les activités et leurs positions
-name.en=Observations - Activities with their geographic position
+name=Observations - Toutes les activités, leurs positions et zones FPA
+name.en=Observations - Activities with their geographic position and FPA zones
name.es=
description=Afficher toutes les activités et leurs positions géographiques
description.en=Display activities with their geographic position
description.es=
-columns=Jour,Heure observation,Latitude,Longitude,Activité,Commentaire
-columns.en=Date,Hour,Latitude,Longitude,Activity,Comment
+columns=Jour,Heure observation,Latitude,Longitude,Activité (code),Activité (nom),Zone FPA (code),Zone FPA (nom),Commentaire
+columns.en=Date,Hour,Latitude,Longitude,Activity (code), Activity (label),FPA zone (code), FPA zone (label), Comment
columns.es=
request.1.location=0,0
request.1.layout=row
-request.1.request=Select r.date, Cast(a.time As java.sql.Time), a.latitude, a.longitude, ab.@i18nColumnName@, a.comment \
+request.1.request=Select r.date, Cast(a.time As java.sql.Time), a.latitude, a.longitude, ab.code, ab.@i18nColumnName@, z.code, z.@i18nColumnName@, a.comment \
From TripImpl m \
Join m.routeObs r \
Join r.activity a \
Join a.vesselActivity ab \
+Left Join a.currentFpaZone z \
Where \
m.id In :tripId \
Order By r.date, a.time
+
+
=====================================
core/persistence/report/src/main/resources/META-INF/report/default/ps/psObservationFobUsageExtended.report
=====================================
@@ -33,17 +33,20 @@ repeatVariable.1.name=typeObjetId
repeatVariable.1.type=java.lang.String
repeatVariable.1.request=Select distinct (om.standardCode) \
From ObjectMaterialImpl om \
-Where standardCode is not null \
-And standardCode != '' \
-And (Select Count(dcp) \
+Where om.standardCode is not null \
+And om.standardCode != '' \
+And (om.standardCode In (Select Distinct(dcp.computedWhenArrivingSimplifiedObjectType) \
From fr.ird.observe.entities.data.ps.common.TripImpl m \
Join m.routeObs r \
Join r.activity a \
-Join a.floatingObject dcp \
-Where \
-m.id In :tripId \
-and (dcp.computedWhenArrivingSimplifiedObjectType = om.standardCode Or dcp.computedWhenLeavingSimplifiedObjectType = om.standardCode) \
-) > 0
+Join a.floatingObject dcp With dcp.computedWhenArrivingSimplifiedObjectType Is Not Null \
+Where m.id In :tripId ) Or om.standardCode In (Select Distinct(dcp.computedWhenLeavingSimplifiedObjectType) \
+From fr.ird.observe.entities.data.ps.common.TripImpl m \
+Join m.routeObs r \
+Join r.activity a \
+Join a.floatingObject dcp With dcp.computedWhenLeavingSimplifiedObjectType Is Not Null \
+Where m.id In :tripId )) \
+Order by om.standardCode
request.1.location=0,0
request.1.layout=row
request.1.request=Select concat(str(om.standardCode) , ' - ', om.@i18nColumnName@) \
@@ -55,258 +58,30 @@ request.1.repeat.name=typeObjetId
request.1.repeat.layout=column
request.2.location=1,0
request.2.layout=row
-request.2.request=Select Count(dcp) \
-From fr.ird.observe.entities.data.ps.common.TripImpl m \
-Join m.routeObs r \
-Join r.activity a \
-Join a.floatingObject dcp \
-Where \
-m.id In :tripId \
-and dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId \
-and dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#2' \
-and a.vesselActivity.id = 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586'
+request.2.request=Select \
+Sum(Case When dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId And dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#2' And a.vesselActivity.id = 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586' Then 1 Else 0 End), \
+Sum(Case When dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId And dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#2' And a.vesselActivity.id != 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586' Then 1 Else 0 End), \
+Sum(Case When dcp.computedWhenLeavingSimplifiedObjectType = :typeObjetId And dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#1' And a.vesselActivity.id = 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586' Then 1 Else 0 End), \
+Sum(Case When dcp.computedWhenLeavingSimplifiedObjectType = :typeObjetId And dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#1' And a.vesselActivity.id != 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586' Then 1 Else 0 End), \
+Sum(Case When dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId And dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#8' And a.vesselActivity.id = 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586' Then 1 Else 0 End), \
+Sum(Case When dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId And dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#8' And a.vesselActivity.id != 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586' Then 1 Else 0 End), \
+Sum(Case When dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId And dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#4' And a.vesselActivity.id = 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586' Then 1 Else 0 End), \
+Sum(Case When dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId And dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#4' And a.vesselActivity.id != 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586' Then 1 Else 0 End), \
+Sum(Case When dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId And dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#5' And a.vesselActivity.id = 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586' Then 1 Else 0 End), \
+Sum(Case When dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId And dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#5' And a.vesselActivity.id != 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586' Then 1 Else 0 End), \
+Sum(Case When dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId And dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#7' And a.vesselActivity.id = 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586' Then 1 Else 0 End), \
+Sum(Case When dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId And dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#7' And a.vesselActivity.id != 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586' Then 1 Else 0 End), \
+Sum(Case When dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId And dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#9' And a.vesselActivity.id = 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586' Then 1 Else 0 End), \
+Sum(Case When dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId And dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#9' And a.vesselActivity.id != 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586' Then 1 Else 0 End), \
+Sum(Case When dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId And (dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#10' Or dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#3') And a.vesselActivity.id = 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586' Then 1 Else 0 End), \
+Sum(Case When dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId And (dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#10' Or dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#3') And a.vesselActivity.id != 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586' Then 1 Else 0 End), \
+Sum(Case When dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId And dcp.objectObservedSpecies Is Not Empty Then (Select Sum(efo.count) From fr.ird.observe.entities.data.ps.observation.FloatingObjectImpl dcp1 Join dcp1.objectObservedSpecies efo With efo.species.speciesGroup.id = 'fr.ird.referential.common.SpeciesGroup#1239832683690#0.24333033683679461' Where dcp1 = dcp) Else 0 End) \
+From fr.ird.observe.entities.data.ps.common.TripImpl m \
+Join m.routeObs r \
+Join r.activity a \
+Join a.floatingObject dcp With dcp.computedWhenLeavingSimplifiedObjectType = :typeObjetId Or dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId \
+Where \
+m.id In :tripId
request.2.repeat.name=typeObjetId
request.2.repeat.layout=column
-request.2.comment=visite + peche
-request.3.location=2,0
-request.3.layout=row
-request.3.request=Select Count(dcp) \
-From fr.ird.observe.entities.data.ps.common.TripImpl m \
-Join m.routeObs r \
-Join r.activity a \
-Join a.floatingObject dcp \
-Where \
-m.id In :tripId \
-and dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId \
-and dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#2' \
-and a.vesselActivity.id != 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586'
-request.3.repeat.name=typeObjetId
-request.3.repeat.layout=column
-request.3.comment=visite - peche
-request.4.location=3,0
-request.4.layout=row
-request.4.request=Select Count(dcp) \
-From fr.ird.observe.entities.data.ps.common.TripImpl m \
-Join m.routeObs r \
-Join r.activity a \
-Join a.floatingObject dcp \
-Where \
-m.id In :tripId \
-and dcp.computedWhenLeavingSimplifiedObjectType = :typeObjetId \
-and dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#1' \
-and a.vesselActivity.id = 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586'
-request.4.repeat.name=typeObjetId
-request.4.repeat.layout=column
-request.4.comment=Deploiement + peche
-request.5.location=4,0
-request.5.layout=row
-request.5.request=Select Count(dcp) \
-From fr.ird.observe.entities.data.ps.common.TripImpl m \
-Join m.routeObs r \
-Join r.activity a \
-Join a.floatingObject dcp \
-Where \
-m.id In :tripId \
-and dcp.computedWhenLeavingSimplifiedObjectType = :typeObjetId \
-and dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#1' \
-and a.vesselActivity.id != 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586'
-request.5.repeat.name=typeObjetId
-request.5.repeat.layout=column
-request.5.comment=Deploiement - peche
-request.6.location=5,0
-request.6.layout=row
-request.6.request=Select Count(dcp) \
-From fr.ird.observe.entities.data.ps.common.TripImpl m \
-Join m.routeObs r \
-Join r.activity a \
-Join a.floatingObject dcp \
-Where \
-m.id In :tripId \
-and dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId \
-and dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#8' \
-and a.vesselActivity.id = 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586'
-request.6.repeat.name=typeObjetId
-request.6.repeat.layout=column
-request.6.comment=Modifie + peche
-request.7.location=6,0
-request.7.layout=row
-request.7.request=Select Count(dcp) \
-From fr.ird.observe.entities.data.ps.common.TripImpl m \
-Join m.routeObs r \
-Join r.activity a \
-Join a.floatingObject dcp \
-Where \
-m.id In :tripId \
-and dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId \
-and dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#8' \
-and a.vesselActivity.id != 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586'
-request.7.repeat.name=typeObjetId
-request.7.repeat.layout=column
-request.7.comment=Modifie - peche
-request.8.location=7,0
-request.8.layout=row
-request.8.request=Select Count(dcp) \
-From fr.ird.observe.entities.data.ps.common.TripImpl m \
-Join m.routeObs r \
-Join r.activity a \
-Join a.floatingObject dcp \
-Where \
-m.id In :tripId \
-and dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId \
-and dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#4' \
-and a.vesselActivity.id = 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586'
-request.8.repeat.name=typeObjetId
-request.8.repeat.layout=column
-request.8.comment=Retire + peche
-request.9.location=8,0
-request.9.layout=row
-request.9.request=Select Count(dcp) \
-From fr.ird.observe.entities.data.ps.common.TripImpl m \
-Join m.routeObs r \
-Join r.activity a \
-Join a.floatingObject dcp \
-Where \
-m.id In :tripId \
-and dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId \
-and dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#4' \
-and a.vesselActivity.id != 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586'
-request.9.repeat.name=typeObjetId
-request.9.repeat.layout=column
-request.9.comment=Retire - peche
-request.10.location=9,0
-request.10.layout=row
-request.10.request=Select Count(dcp) \
-From fr.ird.observe.entities.data.ps.common.TripImpl m \
-Join m.routeObs r \
-Join r.activity a \
-Join a.floatingObject dcp \
-Where \
-m.id In :tripId \
-and dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId \
-and dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#5' \
-and a.vesselActivity.id = 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586'
-request.10.repeat.name=typeObjetId
-request.10.repeat.layout=column
-request.10.comment=Abandonne + peche
-request.11.location=10,0
-request.11.layout=row
-request.11.request=Select Count(dcp) \
-From fr.ird.observe.entities.data.ps.common.TripImpl m \
-Join m.routeObs r \
-Join r.activity a \
-Join a.floatingObject dcp \
-Where \
-m.id In :tripId \
-and dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId \
-and dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#5' \
-and a.vesselActivity.id != 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586'
-request.11.repeat.name=typeObjetId
-request.11.repeat.layout=column
-request.11.comment=Abandonne - peche
-request.12.location=11,0
-request.12.layout=row
-request.12.request=Select Count(dcp) \
-From fr.ird.observe.entities.data.ps.common.TripImpl m \
-Join m.routeObs r \
-Join r.activity a \
-Join a.floatingObject dcp \
-Where \
-m.id In :tripId \
-and dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId \
-and dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#7' \
-and a.vesselActivity.id = 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586'
-request.12.repeat.name=typeObjetId
-request.12.repeat.layout=column
-request.12.comment=Coule + peche
-request.13.location=12,0
-request.13.layout=row
-request.13.request=Select Count(dcp) \
-From fr.ird.observe.entities.data.ps.common.TripImpl m \
-Join m.routeObs r \
-Join r.activity a \
-Join a.floatingObject dcp \
-Where \
-m.id In :tripId \
-and dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId \
-and dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#7' \
-and a.vesselActivity.id != 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586'
-request.13.repeat.name=typeObjetId
-request.13.repeat.layout=column
-request.13.comment=Coule - peche
-request.14.location=13,0
-request.14.layout=row
-request.14.request=Select Count(dcp) \
-From fr.ird.observe.entities.data.ps.common.TripImpl m \
-Join m.routeObs r \
-Join r.activity a \
-Join a.floatingObject dcp \
-Where \
-m.id In :tripId \
-and dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId \
-and dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#9' \
-and a.vesselActivity.id = 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586'
-request.14.repeat.name=typeObjetId
-request.14.repeat.layout=column
-request.14.comment=Remplace + peche
-request.15.location=14,0
-request.15.layout=row
-request.15.request=Select Count(dcp) \
-From fr.ird.observe.entities.data.ps.common.TripImpl m \
-Join m.routeObs r \
-Join r.activity a \
-Join a.floatingObject dcp \
-Where \
-m.id In :tripId \
-and dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId \
-and dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#9' \
-and a.vesselActivity.id != 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586'
-request.15.repeat.name=typeObjetId
-request.15.repeat.layout=column
-request.15.comment=Remplace - peche
-request.16.location=15,0
-request.16.layout=row
-request.16.request=Select Count(dcp) \
-From fr.ird.observe.entities.data.ps.common.TripImpl m \
-Join m.routeObs r \
-Join r.activity a \
-Join a.floatingObject dcp \
-Where \
-m.id In :tripId \
-and dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId \
-and (dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#10' \
-or dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#3') \
-and a.vesselActivity.id = 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586'
-request.16.repeat.name=typeObjetId
-request.16.repeat.layout=column
-request.16.comment=Autre ou ancien peche + peche
-request.17.location=16,0
-request.17.layout=row
-request.17.request=Select Count(dcp) \
-From fr.ird.observe.entities.data.ps.common.TripImpl m \
-Join m.routeObs r \
-Join r.activity a \
-Join a.floatingObject dcp \
-Where \
-m.id In :tripId \
-and dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId \
-and (dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#10' \
-or dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#3') \
-and a.vesselActivity.id != 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586'
-request.17.repeat.name=typeObjetId
-request.17.repeat.layout=column
-request.17.comment=Autre ou ancien peche - peche
-request.18.location=17,0
-request.18.layout=row
-request.18.request=Select Sum(efo.count) \
-From fr.ird.observe.entities.data.ps.common.TripImpl m \
-Join m.routeObs r \
-Join r.activity a \
-Join a.floatingObject dcp \
-Join dcp.objectObservedSpecies efo \
-Where \
-m.id In :tripId \
-and dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId \
-and efo.species.speciesGroup.id = 'fr.ird.referential.common.SpeciesGroup#1239832683690#0.24333033683679461'
-request.18.repeat.name=typeObjetId
-request.18.repeat.layout=column
-request.18.comment=Nombre de tortues
+request.2.comment=visite + peche / visite - peche / Deploiement + peche / Deploiement - peche / Modifie + peche / Modifie - peche / Retire + peche / Retire - peche / Abandonne + peche / Abandonne - peche / Coule + peche / Coule - peche / Remplace + peche / Remplace - peche / Autre ou ancien peche + peche / Autre ou ancien peche - peche / Nombre de tortues
=====================================
core/persistence/report/src/main/resources/META-INF/report/default/ps/psObservationFobUsageMinimal.report
=====================================
@@ -33,17 +33,20 @@ repeatVariable.1.name=typeObjetId
repeatVariable.1.type=java.lang.String
repeatVariable.1.request=Select distinct (om.standardCode) \
From ObjectMaterialImpl om \
-Where standardCode is not null \
-And standardCode != '' \
-And (Select Count(dcp) \
+Where om.standardCode is not null \
+And om.standardCode != '' \
+And (om.standardCode In (Select Distinct(dcp.computedWhenArrivingSimplifiedObjectType) \
From fr.ird.observe.entities.data.ps.common.TripImpl m \
Join m.routeObs r \
Join r.activity a \
-Join a.floatingObject dcp \
-Where \
-m.id In :tripId \
-and (dcp.computedWhenArrivingSimplifiedObjectType = om.standardCode Or dcp.computedWhenLeavingSimplifiedObjectType = om.standardCode) \
-) > 0
+Join a.floatingObject dcp With dcp.computedWhenArrivingSimplifiedObjectType Is Not Null \
+Where m.id In :tripId ) Or om.standardCode In (Select Distinct(dcp.computedWhenLeavingSimplifiedObjectType) \
+From fr.ird.observe.entities.data.ps.common.TripImpl m \
+Join m.routeObs r \
+Join r.activity a \
+Join a.floatingObject dcp With dcp.computedWhenLeavingSimplifiedObjectType Is Not Null \
+Where m.id In :tripId )) \
+Order by om.standardCode
repeatVariable.1.comment=liste des types CECOFAD en presence sur les donnees selectionnees
request.1.location=0,0
request.1.layout=row
@@ -56,74 +59,31 @@ request.1.repeat.name=typeObjetId
request.1.repeat.layout=column
request.2.location=1,0
request.2.layout=row
-request.2.request=Select Count(dcp) \
-From fr.ird.observe.entities.data.ps.common.TripImpl m \
-Join m.routeObs r \
-Join r.activity a \
-Join a.floatingObject dcp \
-Where \
-m.id In :tripId \
-and dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId \
-and a.vesselActivity.id = 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586' \
-and (dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#2' \
+request.2.request=Select \
+Sum(Case When dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId And a.vesselActivity.id = 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586' And (dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#2' \
or dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#8' \
or dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#4' \
or dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#5' \
or dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#7' \
or dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#9' \
or dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#10' \
-or dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#3')
-request.2.repeat.name=typeObjetId
-request.2.repeat.layout=column
-request.2.comment=rencontres + peches
-request.3.location=2,0
-request.3.layout=row
-request.3.request=Select Count(dcp) \
-From fr.ird.observe.entities.data.ps.common.TripImpl m \
-Join m.routeObs r \
-Join r.activity a \
-Join a.floatingObject dcp \
-Where \
-m.id In :tripId \
-and dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId \
-and a.vesselActivity.id != 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586' \
-and (dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#2' \
+or dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#3') Then 1 Else 0 End), \
+Sum(Case When dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId And a.vesselActivity.id != 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586' And (dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#2' \
or dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#8' \
or dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#4' \
or dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#5' \
or dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#7' \
or dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#9' \
or dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#10' \
-or dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#3')
-request.3.repeat.name=typeObjetId
-request.3.repeat.layout=column
-request.3.comment=rencontres - peches
-request.4.location=3,0
-request.4.layout=row
-request.4.request=Select Count(dcp) \
-From fr.ird.observe.entities.data.ps.common.TripImpl m \
-Join m.routeObs r \
-Join r.activity a \
-Join a.floatingObject dcp \
-Where \
-m.id In :tripId \
-and dcp.computedWhenLeavingSimplifiedObjectType = :typeObjetId \
-and dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#1'
-request.4.repeat.name=typeObjetId
-request.4.repeat.layout=column
-request.4.comment=deployes
-request.5.location=4,0
-request.5.layout=row
-request.5.request=Select Sum(efo.count) \
+or dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#3') Then 1 Else 0 End), \
+Sum(Case When dcp.computedWhenLeavingSimplifiedObjectType = :typeObjetId And dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#1' Then 1 Else 0 End), \
+Sum(Case When dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId And dcp.objectObservedSpecies Is Not Empty Then (Select Sum(efo.count) From fr.ird.observe.entities.data.ps.observation.FloatingObjectImpl dcp1 Join dcp1.objectObservedSpecies efo With efo.species.speciesGroup.id = 'fr.ird.referential.common.SpeciesGroup#1239832683690#0.24333033683679461' Where dcp1 = dcp) Else 0 End) \
From fr.ird.observe.entities.data.ps.common.TripImpl m \
Join m.routeObs r \
Join r.activity a \
-Join a.floatingObject dcp \
-Join dcp.objectObservedSpecies efo \
+Join a.floatingObject dcp With dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId Or dcp.computedWhenLeavingSimplifiedObjectType = :typeObjetId \
Where \
-m.id In :tripId \
-and dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId \
-and efo.species.speciesGroup.id = 'fr.ird.referential.common.SpeciesGroup#1239832683690#0.24333033683679461'
-request.5.repeat.name=typeObjetId
-request.5.repeat.layout=column
-request.5.comment=Nombre de tortues
+m.id In :tripId
+request.2.repeat.name=typeObjetId
+request.2.repeat.layout=column
+request.2.comment=rencontres + peches / rencontres - peches / deployes / Nombre de tortues
=====================================
core/persistence/report/src/main/resources/META-INF/report/embedded.list
=====================================
@@ -17,6 +17,7 @@ default/ps/psLogbookSampleSpeciesMeasuresCount.report
default/ps/psLogbookTrip.report
default/ps/psLogbookWellPlan.report
default/ps/psLogbookWellPlanCheck.report
+default/ps/psObservationActivitiesByZone.report
default/ps/psObservationActivityWithComment.report
default/ps/psObservationAllActivities.report
default/ps/psObservationCatch.report
=====================================
core/persistence/report/src/test/java/fr/ird/observe/report/ToolsTest.java
=====================================
@@ -47,7 +47,7 @@ import java.util.Objects;
public class ToolsTest {
- public static final int REPORTS_COUNT_COUNT = 34;
+ public static final int REPORTS_COUNT_COUNT = 35;
private static Path reportsPath(Path basedir) {
return basedir.resolve("src").resolve("main").resolve("resources").resolve("META-INF").resolve("report");
=====================================
core/services/test/src/main/java/fr/ird/observe/services/service/report/ps/PsObservationActivitiesByZoneReportFixture.java
=====================================
@@ -0,0 +1,48 @@
+package fr.ird.observe.services.service.report.ps;
+
+/*-
+ * #%L
+ * ObServe Core :: Services :: Test
+ * %%
+ * Copyright (C) 2008 - 2024 IRD, Ultreia.io
+ * %%
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public
+ * License along with this program. If not, see
+ * <http://www.gnu.org/licenses/gpl-3.0.html>.
+ * #L%
+ */
+
+import com.google.auto.service.AutoService;
+import fr.ird.observe.report.Report;
+import fr.ird.observe.report.definition.ReportRequestDefinition;
+import fr.ird.observe.report.definition.RequestLayout;
+import fr.ird.observe.services.service.ReportFixture;
+
+import java.util.Iterator;
+
+/**
+ * Created at 15/03/2024.
+ *
+ * @author Tony Chemit - dev(a)tchemit.fr
+ * @since 9.3.0
+ */
+(a)AutoService(ReportFixture.class)
+public class PsObservationActivitiesByZoneReportFixture extends ReportFixture {
+ @Override
+ public void assertSyntax(Report report) {
+ super.assertSyntax(report);
+ Iterator<ReportRequestDefinition> requests = getRequestIterator(report);
+ assertReportRequestDimension(requests, RequestLayout.row, 0, 0);
+ assertReportRequestDimension(requests, RequestLayout.row, 1, 0);
+ }
+}
=====================================
core/services/test/src/main/java/fr/ird/observe/services/service/report/ps/PsObservationFobUsageExtendedReportFixture.java
=====================================
@@ -45,6 +45,5 @@ public class PsObservationFobUsageExtendedReportFixture extends ReportFixture {
Iterator<ReportRequestDefinition> requests = getRequestIterator(report);
assertReportRequestDimension(requests, RequestLayout.row, 0, 0);
assertReportRequestDimension(requests, RequestLayout.row, 1, 0);
- assertReportRequestDimension(requests, RequestLayout.row, 2, 0);
}
}
=====================================
core/services/test/src/main/java/fr/ird/observe/services/service/report/ps/PsObservationFobUsageMinimalReportFixture.java
=====================================
@@ -45,6 +45,5 @@ public class PsObservationFobUsageMinimalReportFixture extends ReportFixture {
Iterator<ReportRequestDefinition> requests = getRequestIterator(report);
assertReportRequestDimension(requests, RequestLayout.row, 0, 0);
assertReportRequestDimension(requests, RequestLayout.row, 1, 0);
- assertReportRequestDimension(requests, RequestLayout.row, 2, 0);
}
}
=====================================
core/services/test/src/main/resources/fixtures/fr/ird/observe/services/service/ReportService-psLogbookWellPlanCheck.properties
=====================================
@@ -25,7 +25,7 @@ syntax.rows=-1
syntax.columns=20
syntax.columnsHeader=Code bateau^Nom bateau^Date départ^Date arrivée^Date de route^Numéro activité^Heure activité^Logbook YFT^Logbook SKJ^Logbook BET^Logbook ALB^Logbook Autres^Plan de cuves YFT^Plan de cuves SKJ^Plan de cuves BET^Plan de cuves ALB^Plan de cuves Autres^Logbook Total^Plan de cuves Total^Différence
syntax.rowsHeader=
-syntax.nbRequests=5
+syntax.nbRequests=1
result.columns=20
result.rows=4
result.0=483^CAP BOJADOR^30/03/2019^08/04/2019^30/03/2019^1^15:12^0.0^123.0^43.0^0.0^0.0^0.0^0.0^12.0^0.0^0.0^166.0^12.0^154.0
=====================================
core/services/test/src/main/resources/fixtures/fr/ird/observe/services/service/ReportService-psObservationActivitiesByZone.properties
=====================================
@@ -0,0 +1,33 @@
+###
+# #%L
+# ObServe Core :: Services :: Test
+# %%
+# Copyright (C) 2008 - 2024 IRD, Ultreia.io
+# %%
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as
+# published by the Free Software Foundation, either version 3 of the
+# License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public
+# License along with this program. If not, see
+# <http://www.gnu.org/licenses/gpl-3.0.html>.
+# #L%
+###
+syntax.rows=-1
+syntax.columns=19
+syntax.columnsHeader=Zone^Visités Pêchés^Visités non Pêchés^Déploiement après Pêches^Déploiement seul^Modifiés Pêchés^Modifiés non Pêchés^Retirés Pêchés^Retirés non Pêchés^Abandonnés Pêchés^Abandonnés non Pêchés^Coulés Pêchés^Coulés non Pêchés^Remplacés Pêchés^Remplacés non Pêchés^Autre Pêchés^Autre non Pêchés^Tortues associées^Total
+syntax.rowsHeader=
+syntax.nbRequests=2
+result.columns=19
+result.rows=3
+result.0=CIV - Côte d'Ivoire^1^9^1^0^0^0^0^0^0^0^0^0^0^0^0^0^0^11
+result.1=LBR - Libéria^0^7^0^27^0^0^0^0^0^0^0^0^0^0^0^0^0^34
+result.2=Total^1^16^1^27^0^0^0^0^0^0^0^0^0^0^0^0^0^45
+syntax.name=Observations - Types d'activités par zones FPA
+syntax.description=Tableau récapitulatif des types d'activités par zone FPA traversée
\ No newline at end of file
=====================================
core/services/test/src/main/resources/fixtures/fr/ird/observe/services/service/ReportService-psObservationAllActivities.properties
=====================================
@@ -19,152 +19,152 @@
# <http://www.gnu.org/licenses/gpl-3.0.html>.
# #L%
###
-result.0=30/03/2019^18:00^5.2833^-4.0^Au port^Départ du port de pêche pour la fin de la marée
-result.1=30/03/2019^19:00^5.1667^-4.0^Transit (route sans recherche)^Route de nuit
-result.2=31/03/2019^06:13^3.95^-5.2667^Recherche (général)^null
-result.3=31/03/2019^06:54^3.95^-5.35^Thonier arrivant sur le système détecté^null
-result.4=31/03/2019^07:50^3.9667^-5.35^Pêche (larguage du skiff)^null
-result.5=31/03/2019^10:55^3.9833^-5.2833^Thonier arrivant sur le système détecté^null
-result.6=31/03/2019^11:24^3.9833^-5.2667^Pêche (larguage du skiff)^null
-result.7=31/03/2019^14:56^3.95^-5.3333^Thonier arrivant sur le système détecté^
-result.8=31/03/2019^15:05^3.95^-5.3333^Opération sur objet flottant (visite, pose, modification, récupération)^null
-result.9=31/03/2019^16:11^3.8167^-5.4167^Thonier arrivant sur le système détecté^
-result.10=31/03/2019^16:22^3.8333^-5.4167^Opération sur objet flottant (visite, pose, modification, récupération)^null
-result.11=31/03/2019^16:53^3.7833^-5.4833^Thonier arrivant sur le système détecté^
-result.12=31/03/2019^17:03^3.7833^-5.4833^Opération sur objet flottant (visite, pose, modification, récupération)^null
-result.13=31/03/2019^18:03^3.7833^-5.4667^Recherche (général)^null
-result.14=31/03/2019^18:44^3.8667^-5.4833^Fin de veille^null
-result.15=31/03/2019^19:00^3.9^-5.5^En dérive de nuit (moteur stoppé)^null
-result.16=01/04/2019^06:15^3.9833^-5.3167^Recherche (général)^null
-result.17=01/04/2019^07:43^3.8333^-5.2667^Thonier arrivant sur le système détecté^
-result.18=01/04/2019^07:56^3.8333^-5.25^Opération sur objet flottant (visite, pose, modification, récupération)^null
-result.19=01/04/2019^08:15^3.8833^-5.2333^Recherche (général)^null
-result.20=01/04/2019^08:41^3.9333^-5.2833^Thonier arrivant sur le système détecté^null
-result.21=01/04/2019^09:41^3.9167^-5.25^Pêche (larguage du skiff)^null
-result.22=01/04/2019^09:41^3.9167^-5.25^Pêche (larguage du skiff)^null
-result.23=01/04/2019^12:15^3.9^-5.2833^Recherche (général)^null
-result.24=01/04/2019^12:34^3.9333^-5.3^Thonier arrivant sur le système détecté^null
-result.25=01/04/2019^12:40^3.9333^-5.3^Pêche (larguage du skiff)^null
-result.26=01/04/2019^16:15^3.8833^-5.2667^Recherche (général)^null
-result.27=01/04/2019^16:38^3.9333^-5.3^Thonier arrivant sur le système détecté^null
-result.28=01/04/2019^16:51^3.9333^-5.3^Pêche (larguage du skiff)^
-result.29=01/04/2019^21:17^3.95^-5.2167^Fin de veille^null
-result.30=01/04/2019^21:18^3.95^-5.2167^Transit (route sans recherche)^Route jusqu'à 22H
-result.31=02/04/2019^06:15^3.9^-5.1833^Recherche (général)^null
-result.32=02/04/2019^06:57^3.9333^-5.25^Thonier arrivant sur le système détecté^null
-result.33=02/04/2019^07:11^3.95^-5.25^Pêche (larguage du skiff)^
-result.34=02/04/2019^10:15^3.9167^-5.2167^Recherche (général)^null
-result.35=02/04/2019^12:15^3.8833^-5.25^Recherche (général)^null
-result.36=02/04/2019^13:58^3.9^-4.9333^Thonier arrivant sur le système détecté^
-result.37=02/04/2019^14:15^3.9^-4.9333^Thonier arrivant sur le système détecté^null
-result.38=02/04/2019^14:22^3.9^-4.95^Pêche (larguage du skiff)^null
-result.39=02/04/2019^18:44^3.8833^-4.95^Fin de veille^null
-result.40=02/04/2019^19:12^3.8667^-5.0^En dérive de nuit (moteur stoppé)^null
-result.41=03/04/2019^06:15^3.9^-4.9^Thonier arrivant sur le système détecté^
-result.42=03/04/2019^07:16^3.8833^-4.95^Thonier arrivant sur le système détecté^null
-result.43=03/04/2019^07:51^3.8833^-4.9333^Pêche (larguage du skiff)^null
-result.44=03/04/2019^10:15^3.8833^-4.9167^Thonier arrivant sur le système détecté^Banc sous autre senneur
-result.45=03/04/2019^12:15^3.9^-4.9167^Thonier arrivant sur le système détecté^
-result.46=03/04/2019^14:15^3.9^-4.8833^Recherche (général)^null
-result.47=03/04/2019^15:28^3.9667^-4.85^Thonier arrivant sur le système détecté^
-result.48=03/04/2019^15:36^3.9667^-4.85^Opération sur objet flottant (visite, pose, modification, récupération)^null
-result.49=03/04/2019^16:15^3.8833^-4.9167^Recherche (général)^null
-result.50=03/04/2019^18:15^3.8667^-4.9833^Recherche (général)^null
-result.51=03/04/2019^18:42^3.8333^-5.05^Fin de veille^null
-result.52=03/04/2019^18:50^3.8167^-5.05^En dérive de nuit (moteur stoppé)^null
-result.53=04/04/2019^06:12^3.9^-4.8667^Recherche (général)^
-result.54=04/04/2019^08:12^3.8667^-4.8833^Recherche (général)^null
-result.55=04/04/2019^10:12^3.6^-4.6167^Recherche (général)^null
-result.56=04/04/2019^12:04^3.3^-4.4333^Thonier arrivant sur le système détecté^
-result.57=04/04/2019^12:12^3.3^-4.4333^Opération sur objet flottant (visite, pose, modification, récupération)^null
-result.58=04/04/2019^14:12^3.05^-4.7^Recherche (général)^null
-result.59=04/04/2019^15:43^2.8667^-4.9167^Thonier arrivant sur le système détecté^
-result.60=04/04/2019^15:46^2.8667^-4.9167^Opération sur objet flottant (visite, pose, modification, récupération)^null
-result.61=04/04/2019^16:12^2.8167^-5.0^Recherche (général)^null
-result.62=04/04/2019^18:12^2.6333^-5.3333^Recherche (général)^null
-result.63=04/04/2019^18:41^2.6^-5.4167^Fin de veille^null
-result.64=04/04/2019^18:42^2.6^-5.4167^Route de nuit vers objet^Route toute la nuit
-result.65=05/04/2019^06:20^1.5167^-7.4^Thonier arrivant sur le système détecté^
-result.66=05/04/2019^06:28^1.5^-7.4167^Opération sur objet flottant (visite, pose, modification, récupération)^null
-result.67=05/04/2019^07:02^1.5^-7.5333^Changement de zone FPA^null
-result.68=05/04/2019^07:11^1.5^-7.55^Opération sur objet flottant (visite, pose, modification, récupération)^null
-result.69=05/04/2019^07:34^1.5^-7.6333^Opération sur objet flottant (visite, pose, modification, récupération)^null
-result.70=05/04/2019^08:03^1.4667^-7.6833^Opération sur objet flottant (visite, pose, modification, récupération)^null
-result.71=05/04/2019^08:20^1.4333^-7.7167^Recherche (général)^null
-result.72=05/04/2019^08:32^1.4^-7.7333^Opération sur objet flottant (visite, pose, modification, récupération)^null
-result.73=05/04/2019^08:38^1.3833^-7.75^Thonier arrivant sur le système détecté^
-result.74=05/04/2019^08:50^1.3667^-7.7333^Opération sur objet flottant (visite, pose, modification, récupération)^null
-result.75=05/04/2019^09:07^1.4^-7.7667^Opération sur objet flottant (visite, pose, modification, récupération)^null
-result.76=05/04/2019^09:37^1.45^-7.8667^Opération sur objet flottant (visite, pose, modification, récupération)^null
-result.77=05/04/2019^10:02^1.4833^-7.9167^Opération sur objet flottant (visite, pose, modification, récupération)^null
-result.78=05/04/2019^10:20^1.5^-7.9667^Recherche (général)^null
-result.79=05/04/2019^10:29^1.4833^-7.9833^Thonier arrivant sur le système détecté^
-result.80=05/04/2019^10:41^1.5^-8.0^Opération sur objet flottant (visite, pose, modification, récupération)^null
-result.81=05/04/2019^11:03^1.5333^-8.05^Opération sur objet flottant (visite, pose, modification, récupération)^null
-result.82=05/04/2019^11:31^1.5833^-8.1167^Opération sur objet flottant (visite, pose, modification, récupération)^null
-result.83=05/04/2019^12:00^1.65^-8.1833^Opération sur objet flottant (visite, pose, modification, récupération)^null
-result.84=05/04/2019^12:20^1.7333^-8.2333^Recherche (général)^null
-result.85=05/04/2019^12:35^1.75^-8.2667^Opération sur objet flottant (visite, pose, modification, récupération)^null
-result.86=05/04/2019^13:04^1.8167^-8.3167^Opération sur objet flottant (visite, pose, modification, récupération)^null
-result.87=05/04/2019^13:30^1.85^-8.3333^Thonier arrivant sur le système détecté^
-result.88=05/04/2019^13:38^1.8667^-8.3333^Opération sur objet flottant (visite, pose, modification, récupération)^
-result.89=05/04/2019^14:00^1.9167^-8.3667^Opération sur objet flottant (visite, pose, modification, récupération)^null
-result.90=05/04/2019^14:19^1.95^-8.4167^Thonier arrivant sur le système détecté^
-result.91=05/04/2019^14:26^1.95^-8.4167^Opération sur objet flottant (visite, pose, modification, récupération)^null
-result.92=05/04/2019^15:05^2.0667^-8.4333^Opération sur objet flottant (visite, pose, modification, récupération)^null
-result.93=05/04/2019^15:35^2.15^-8.4333^Opération sur objet flottant (visite, pose, modification, récupération)^null
-result.94=05/04/2019^15:36^2.15^-8.4333^Thonier arrivant sur le système détecté^
-result.95=05/04/2019^15:46^2.15^-8.4333^Opération sur objet flottant (visite, pose, modification, récupération)^null
-result.96=05/04/2019^16:02^2.2^-8.4333^Opération sur objet flottant (visite, pose, modification, récupération)^null
-result.97=05/04/2019^16:20^2.2167^-8.4167^Recherche (général)^null
-result.98=05/04/2019^16:36^2.2667^-8.4^Opération sur objet flottant (visite, pose, modification, récupération)^null
-result.99=05/04/2019^16:46^2.2333^-8.3833^Thonier arrivant sur le système détecté^
-result.100=05/04/2019^16:53^2.2333^-8.3833^Opération sur objet flottant (visite, pose, modification, récupération)^null
-result.101=05/04/2019^17:08^2.2667^-8.3667^Opération sur objet flottant (visite, pose, modification, récupération)^null
-result.102=05/04/2019^17:17^2.2833^-8.35^Thonier arrivant sur le système détecté^
-result.103=05/04/2019^17:24^2.2833^-8.35^Opération sur objet flottant (visite, pose, modification, récupération)^
-result.104=05/04/2019^17:34^2.3^-8.3333^Opération sur objet flottant (visite, pose, modification, récupération)^null
-result.105=05/04/2019^17:37^2.3167^-8.3333^Fin de veille^null
-result.106=05/04/2019^18:00^2.3667^-8.3167^Thonier arrivant sur le système détecté^
-result.107=05/04/2019^18:15^2.35^-8.3167^Opération sur objet flottant (visite, pose, modification, récupération)^null
-result.108=05/04/2019^18:40^2.3333^-8.35^En dérive de nuit (moteur stoppé)^null
-result.109=06/04/2019^06:35^2.35^-8.3333^Avaries en mer^Avarie au niveau du moteur, navire stoppé (réparation en cours)
-result.110=06/04/2019^12:05^2.3333^-8.3333^Avaries en mer^Avarie au niveau du moteur, navire stoppé (réparation en cours)
-result.111=06/04/2019^17:55^2.3667^-8.2833^Transit (route sans recherche)^Réparation de l'avarie terminée.
-result.112=06/04/2019^18:00^2.3667^-8.2833^Opération sur objet flottant (visite, pose, modification, récupération)^null
-result.113=06/04/2019^18:16^2.3833^-8.25^Opération sur objet flottant (visite, pose, modification, récupération)^null
-result.114=06/04/2019^18:26^2.4^-8.2167^Opération sur objet flottant (visite, pose, modification, récupération)^null
-result.115=06/04/2019^18:36^2.4167^-8.2^Opération sur objet flottant (visite, pose, modification, récupération)^null
-result.116=06/04/2019^18:46^2.45^-8.1833^Opération sur objet flottant (visite, pose, modification, récupération)^null
-result.117=06/04/2019^18:57^2.4667^-8.15^Opération sur objet flottant (visite, pose, modification, récupération)^null
-result.118=06/04/2019^19:05^2.4833^-8.1333^Opération sur objet flottant (visite, pose, modification, récupération)^null
-result.119=06/04/2019^19:06^2.4833^-8.1333^Transit (route sans recherche)^Route de nuit
-result.120=07/04/2019^06:24^3.4333^-6.2^Changement de zone FPA^Changement de zone effectué le 06/04/2019 à 22H35 T.U à la position 02°45N et 007°33 W
-result.121=07/04/2019^08:24^3.65^-5.8667^Recherche (général)^null
-result.122=07/04/2019^10:24^3.8167^-5.5^Recherche (général)^null
-result.123=07/04/2019^12:24^3.9167^-5.1167^Thonier arrivant sur le système détecté^
-result.124=07/04/2019^12:43^3.9167^-5.1^Opération sur objet flottant (visite, pose, modification, récupération)^null
-result.125=07/04/2019^12:52^3.9167^-5.0833^Thonier arrivant sur le système détecté^
-result.126=07/04/2019^14:18^3.9^-5.0833^Thonier arrivant sur le système détecté^null
-result.127=07/04/2019^14:21^3.9^-5.0833^Pêche (larguage du skiff)^null
-result.128=07/04/2019^18:24^3.9^-4.8833^Recherche (général)^null
-result.129=07/04/2019^18:33^3.9^-4.8667^Fin de veille^Averse
-result.130=07/04/2019^18:34^3.9^-4.8667^Transit (route sans recherche)^Route de nuit jusqu'à 1H
-result.131=08/04/2019^06:30^4.0667^-3.45^Transit (route sans recherche)^navire en approche pour le début de l'aviataillement
-result.132=08/04/2019^07:30^4.0667^-3.45^Autres (à préciser dans les notes)^Début de l'aviatillement en gasoil.
-result.133=08/04/2019^11:34^4.1833^-3.3333^Autres (à préciser dans les notes)^Fin avitaillement en gasoil, poursuite de la route
-result.134=08/04/2019^12:30^4.3167^-3.4167^Recherche (général)^null
-result.135=08/04/2019^14:30^4.6^-3.6^Recherche (général)^null
-result.136=08/04/2019^16:00^4.8167^-3.75^Fin de veille^null
-result.137=08/04/2019^16:30^4.8833^-3.8167^Transit (route sans recherche)^
-result.138=08/04/2019^18:30^5.1^-3.95^Transit (route sans recherche)^null
-result.139=08/04/2019^21:05^5.2833^-4.0167^Au port^Navire au port de pêche d'Abidjan.
-syntax.name=Observations - Toutes les activités et leurs positions
+result.0=30/03/2019^18:00^5.2833^-4.0^0^Au port^CIV^Côte d'Ivoire^Départ du port de pêche pour la fin de la marée
+result.1=30/03/2019^19:00^5.1667^-4.0^1^Transit (route sans recherche)^CIV^Côte d'Ivoire^Route de nuit
+result.2=31/03/2019^06:13^3.95^-5.2667^2^Recherche (général)^CIV^Côte d'Ivoire^null
+result.3=31/03/2019^06:54^3.95^-5.35^5^Thonier arrivant sur le système détecté^CIV^Côte d'Ivoire^null
+result.4=31/03/2019^07:50^3.9667^-5.35^6^Pêche (larguage du skiff)^CIV^Côte d'Ivoire^null
+result.5=31/03/2019^10:55^3.9833^-5.2833^5^Thonier arrivant sur le système détecté^CIV^Côte d'Ivoire^null
+result.6=31/03/2019^11:24^3.9833^-5.2667^6^Pêche (larguage du skiff)^CIV^Côte d'Ivoire^null
+result.7=31/03/2019^14:56^3.95^-5.3333^5^Thonier arrivant sur le système détecté^CIV^Côte d'Ivoire^
+result.8=31/03/2019^15:05^3.95^-5.3333^13^Opération sur objet flottant (visite, pose, modification, récupération)^CIV^Côte d'Ivoire^null
+result.9=31/03/2019^16:11^3.8167^-5.4167^5^Thonier arrivant sur le système détecté^CIV^Côte d'Ivoire^
+result.10=31/03/2019^16:22^3.8333^-5.4167^13^Opération sur objet flottant (visite, pose, modification, récupération)^CIV^Côte d'Ivoire^null
+result.11=31/03/2019^16:53^3.7833^-5.4833^5^Thonier arrivant sur le système détecté^CIV^Côte d'Ivoire^
+result.12=31/03/2019^17:03^3.7833^-5.4833^13^Opération sur objet flottant (visite, pose, modification, récupération)^CIV^Côte d'Ivoire^null
+result.13=31/03/2019^18:03^3.7833^-5.4667^2^Recherche (général)^CIV^Côte d'Ivoire^null
+result.14=31/03/2019^18:44^3.8667^-5.4833^16^Fin de veille^CIV^Côte d'Ivoire^null
+result.15=31/03/2019^19:00^3.9^-5.5^9^En dérive de nuit (moteur stoppé)^CIV^Côte d'Ivoire^null
+result.16=01/04/2019^06:15^3.9833^-5.3167^2^Recherche (général)^CIV^Côte d'Ivoire^null
+result.17=01/04/2019^07:43^3.8333^-5.2667^5^Thonier arrivant sur le système détecté^CIV^Côte d'Ivoire^
+result.18=01/04/2019^07:56^3.8333^-5.25^13^Opération sur objet flottant (visite, pose, modification, récupération)^CIV^Côte d'Ivoire^null
+result.19=01/04/2019^08:15^3.8833^-5.2333^2^Recherche (général)^CIV^Côte d'Ivoire^null
+result.20=01/04/2019^08:41^3.9333^-5.2833^5^Thonier arrivant sur le système détecté^CIV^Côte d'Ivoire^null
+result.21=01/04/2019^09:41^3.9167^-5.25^6^Pêche (larguage du skiff)^CIV^Côte d'Ivoire^null
+result.22=01/04/2019^09:41^3.9167^-5.25^6^Pêche (larguage du skiff)^CIV^Côte d'Ivoire^null
+result.23=01/04/2019^12:15^3.9^-5.2833^2^Recherche (général)^CIV^Côte d'Ivoire^null
+result.24=01/04/2019^12:34^3.9333^-5.3^5^Thonier arrivant sur le système détecté^CIV^Côte d'Ivoire^null
+result.25=01/04/2019^12:40^3.9333^-5.3^6^Pêche (larguage du skiff)^CIV^Côte d'Ivoire^null
+result.26=01/04/2019^16:15^3.8833^-5.2667^2^Recherche (général)^CIV^Côte d'Ivoire^null
+result.27=01/04/2019^16:38^3.9333^-5.3^5^Thonier arrivant sur le système détecté^CIV^Côte d'Ivoire^null
+result.28=01/04/2019^16:51^3.9333^-5.3^6^Pêche (larguage du skiff)^CIV^Côte d'Ivoire^
+result.29=01/04/2019^21:17^3.95^-5.2167^16^Fin de veille^CIV^Côte d'Ivoire^null
+result.30=01/04/2019^21:18^3.95^-5.2167^1^Transit (route sans recherche)^CIV^Côte d'Ivoire^Route jusqu'à 22H
+result.31=02/04/2019^06:15^3.9^-5.1833^2^Recherche (général)^CIV^Côte d'Ivoire^null
+result.32=02/04/2019^06:57^3.9333^-5.25^5^Thonier arrivant sur le système détecté^CIV^Côte d'Ivoire^null
+result.33=02/04/2019^07:11^3.95^-5.25^6^Pêche (larguage du skiff)^CIV^Côte d'Ivoire^
+result.34=02/04/2019^10:15^3.9167^-5.2167^2^Recherche (général)^CIV^Côte d'Ivoire^null
+result.35=02/04/2019^12:15^3.8833^-5.25^2^Recherche (général)^CIV^Côte d'Ivoire^null
+result.36=02/04/2019^13:58^3.9^-4.9333^5^Thonier arrivant sur le système détecté^CIV^Côte d'Ivoire^
+result.37=02/04/2019^14:15^3.9^-4.9333^5^Thonier arrivant sur le système détecté^CIV^Côte d'Ivoire^null
+result.38=02/04/2019^14:22^3.9^-4.95^6^Pêche (larguage du skiff)^CIV^Côte d'Ivoire^null
+result.39=02/04/2019^18:44^3.8833^-4.95^16^Fin de veille^CIV^Côte d'Ivoire^null
+result.40=02/04/2019^19:12^3.8667^-5.0^9^En dérive de nuit (moteur stoppé)^CIV^Côte d'Ivoire^null
+result.41=03/04/2019^06:15^3.9^-4.9^5^Thonier arrivant sur le système détecté^CIV^Côte d'Ivoire^
+result.42=03/04/2019^07:16^3.8833^-4.95^5^Thonier arrivant sur le système détecté^CIV^Côte d'Ivoire^null
+result.43=03/04/2019^07:51^3.8833^-4.9333^6^Pêche (larguage du skiff)^CIV^Côte d'Ivoire^null
+result.44=03/04/2019^10:15^3.8833^-4.9167^5^Thonier arrivant sur le système détecté^CIV^Côte d'Ivoire^Banc sous autre senneur
+result.45=03/04/2019^12:15^3.9^-4.9167^5^Thonier arrivant sur le système détecté^CIV^Côte d'Ivoire^
+result.46=03/04/2019^14:15^3.9^-4.8833^2^Recherche (général)^CIV^Côte d'Ivoire^null
+result.47=03/04/2019^15:28^3.9667^-4.85^5^Thonier arrivant sur le système détecté^CIV^Côte d'Ivoire^
+result.48=03/04/2019^15:36^3.9667^-4.85^13^Opération sur objet flottant (visite, pose, modification, récupération)^CIV^Côte d'Ivoire^null
+result.49=03/04/2019^16:15^3.8833^-4.9167^2^Recherche (général)^CIV^Côte d'Ivoire^null
+result.50=03/04/2019^18:15^3.8667^-4.9833^2^Recherche (général)^CIV^Côte d'Ivoire^null
+result.51=03/04/2019^18:42^3.8333^-5.05^16^Fin de veille^CIV^Côte d'Ivoire^null
+result.52=03/04/2019^18:50^3.8167^-5.05^9^En dérive de nuit (moteur stoppé)^CIV^Côte d'Ivoire^null
+result.53=04/04/2019^06:12^3.9^-4.8667^2^Recherche (général)^CIV^Côte d'Ivoire^
+result.54=04/04/2019^08:12^3.8667^-4.8833^2^Recherche (général)^CIV^Côte d'Ivoire^null
+result.55=04/04/2019^10:12^3.6^-4.6167^2^Recherche (général)^CIV^Côte d'Ivoire^null
+result.56=04/04/2019^12:04^3.3^-4.4333^5^Thonier arrivant sur le système détecté^CIV^Côte d'Ivoire^
+result.57=04/04/2019^12:12^3.3^-4.4333^13^Opération sur objet flottant (visite, pose, modification, récupération)^CIV^Côte d'Ivoire^null
+result.58=04/04/2019^14:12^3.05^-4.7^2^Recherche (général)^CIV^Côte d'Ivoire^null
+result.59=04/04/2019^15:43^2.8667^-4.9167^5^Thonier arrivant sur le système détecté^CIV^Côte d'Ivoire^
+result.60=04/04/2019^15:46^2.8667^-4.9167^13^Opération sur objet flottant (visite, pose, modification, récupération)^CIV^Côte d'Ivoire^null
+result.61=04/04/2019^16:12^2.8167^-5.0^2^Recherche (général)^CIV^Côte d'Ivoire^null
+result.62=04/04/2019^18:12^2.6333^-5.3333^2^Recherche (général)^CIV^Côte d'Ivoire^null
+result.63=04/04/2019^18:41^2.6^-5.4167^16^Fin de veille^CIV^Côte d'Ivoire^null
+result.64=04/04/2019^18:42^2.6^-5.4167^18^Route de nuit vers objet^CIV^Côte d'Ivoire^Route toute la nuit
+result.65=05/04/2019^06:20^1.5167^-7.4^5^Thonier arrivant sur le système détecté^CIV^Côte d'Ivoire^
+result.66=05/04/2019^06:28^1.5^-7.4167^13^Opération sur objet flottant (visite, pose, modification, récupération)^CIV^Côte d'Ivoire^null
+result.67=05/04/2019^07:02^1.5^-7.5333^21^Changement de zone FPA^CIV^Côte d'Ivoire^null
+result.68=05/04/2019^07:11^1.5^-7.55^13^Opération sur objet flottant (visite, pose, modification, récupération)^LBR^Libéria^null
+result.69=05/04/2019^07:34^1.5^-7.6333^13^Opération sur objet flottant (visite, pose, modification, récupération)^LBR^Libéria^null
+result.70=05/04/2019^08:03^1.4667^-7.6833^13^Opération sur objet flottant (visite, pose, modification, récupération)^LBR^Libéria^null
+result.71=05/04/2019^08:20^1.4333^-7.7167^2^Recherche (général)^LBR^Libéria^null
+result.72=05/04/2019^08:32^1.4^-7.7333^13^Opération sur objet flottant (visite, pose, modification, récupération)^LBR^Libéria^null
+result.73=05/04/2019^08:38^1.3833^-7.75^5^Thonier arrivant sur le système détecté^LBR^Libéria^
+result.74=05/04/2019^08:50^1.3667^-7.7333^13^Opération sur objet flottant (visite, pose, modification, récupération)^LBR^Libéria^null
+result.75=05/04/2019^09:07^1.4^-7.7667^13^Opération sur objet flottant (visite, pose, modification, récupération)^LBR^Libéria^null
+result.76=05/04/2019^09:37^1.45^-7.8667^13^Opération sur objet flottant (visite, pose, modification, récupération)^LBR^Libéria^null
+result.77=05/04/2019^10:02^1.4833^-7.9167^13^Opération sur objet flottant (visite, pose, modification, récupération)^LBR^Libéria^null
+result.78=05/04/2019^10:20^1.5^-7.9667^2^Recherche (général)^LBR^Libéria^null
+result.79=05/04/2019^10:29^1.4833^-7.9833^5^Thonier arrivant sur le système détecté^LBR^Libéria^
+result.80=05/04/2019^10:41^1.5^-8.0^13^Opération sur objet flottant (visite, pose, modification, récupération)^LBR^Libéria^null
+result.81=05/04/2019^11:03^1.5333^-8.05^13^Opération sur objet flottant (visite, pose, modification, récupération)^LBR^Libéria^null
+result.82=05/04/2019^11:31^1.5833^-8.1167^13^Opération sur objet flottant (visite, pose, modification, récupération)^LBR^Libéria^null
+result.83=05/04/2019^12:00^1.65^-8.1833^13^Opération sur objet flottant (visite, pose, modification, récupération)^LBR^Libéria^null
+result.84=05/04/2019^12:20^1.7333^-8.2333^2^Recherche (général)^LBR^Libéria^null
+result.85=05/04/2019^12:35^1.75^-8.2667^13^Opération sur objet flottant (visite, pose, modification, récupération)^LBR^Libéria^null
+result.86=05/04/2019^13:04^1.8167^-8.3167^13^Opération sur objet flottant (visite, pose, modification, récupération)^LBR^Libéria^null
+result.87=05/04/2019^13:30^1.85^-8.3333^5^Thonier arrivant sur le système détecté^LBR^Libéria^
+result.88=05/04/2019^13:38^1.8667^-8.3333^13^Opération sur objet flottant (visite, pose, modification, récupération)^LBR^Libéria^
+result.89=05/04/2019^14:00^1.9167^-8.3667^13^Opération sur objet flottant (visite, pose, modification, récupération)^LBR^Libéria^null
+result.90=05/04/2019^14:19^1.95^-8.4167^5^Thonier arrivant sur le système détecté^LBR^Libéria^
+result.91=05/04/2019^14:26^1.95^-8.4167^13^Opération sur objet flottant (visite, pose, modification, récupération)^LBR^Libéria^null
+result.92=05/04/2019^15:05^2.0667^-8.4333^13^Opération sur objet flottant (visite, pose, modification, récupération)^LBR^Libéria^null
+result.93=05/04/2019^15:35^2.15^-8.4333^13^Opération sur objet flottant (visite, pose, modification, récupération)^LBR^Libéria^null
+result.94=05/04/2019^15:36^2.15^-8.4333^5^Thonier arrivant sur le système détecté^LBR^Libéria^
+result.95=05/04/2019^15:46^2.15^-8.4333^13^Opération sur objet flottant (visite, pose, modification, récupération)^LBR^Libéria^null
+result.96=05/04/2019^16:02^2.2^-8.4333^13^Opération sur objet flottant (visite, pose, modification, récupération)^LBR^Libéria^null
+result.97=05/04/2019^16:20^2.2167^-8.4167^2^Recherche (général)^LBR^Libéria^null
+result.98=05/04/2019^16:36^2.2667^-8.4^13^Opération sur objet flottant (visite, pose, modification, récupération)^LBR^Libéria^null
+result.99=05/04/2019^16:46^2.2333^-8.3833^5^Thonier arrivant sur le système détecté^LBR^Libéria^
+result.100=05/04/2019^16:53^2.2333^-8.3833^13^Opération sur objet flottant (visite, pose, modification, récupération)^LBR^Libéria^null
+result.101=05/04/2019^17:08^2.2667^-8.3667^13^Opération sur objet flottant (visite, pose, modification, récupération)^LBR^Libéria^null
+result.102=05/04/2019^17:17^2.2833^-8.35^5^Thonier arrivant sur le système détecté^LBR^Libéria^
+result.103=05/04/2019^17:24^2.2833^-8.35^13^Opération sur objet flottant (visite, pose, modification, récupération)^LBR^Libéria^
+result.104=05/04/2019^17:34^2.3^-8.3333^13^Opération sur objet flottant (visite, pose, modification, récupération)^LBR^Libéria^null
+result.105=05/04/2019^17:37^2.3167^-8.3333^16^Fin de veille^LBR^Libéria^null
+result.106=05/04/2019^18:00^2.3667^-8.3167^5^Thonier arrivant sur le système détecté^LBR^Libéria^
+result.107=05/04/2019^18:15^2.35^-8.3167^13^Opération sur objet flottant (visite, pose, modification, récupération)^LBR^Libéria^null
+result.108=05/04/2019^18:40^2.3333^-8.35^9^En dérive de nuit (moteur stoppé)^LBR^Libéria^null
+result.109=06/04/2019^06:35^2.35^-8.3333^11^Avaries en mer^LBR^Libéria^Avarie au niveau du moteur, navire stoppé (réparation en cours)
+result.110=06/04/2019^12:05^2.3333^-8.3333^11^Avaries en mer^LBR^Libéria^Avarie au niveau du moteur, navire stoppé (réparation en cours)
+result.111=06/04/2019^17:55^2.3667^-8.2833^1^Transit (route sans recherche)^LBR^Libéria^Réparation de l'avarie terminée.
+result.112=06/04/2019^18:00^2.3667^-8.2833^13^Opération sur objet flottant (visite, pose, modification, récupération)^LBR^Libéria^null
+result.113=06/04/2019^18:16^2.3833^-8.25^13^Opération sur objet flottant (visite, pose, modification, récupération)^LBR^Libéria^null
+result.114=06/04/2019^18:26^2.4^-8.2167^13^Opération sur objet flottant (visite, pose, modification, récupération)^LBR^Libéria^null
+result.115=06/04/2019^18:36^2.4167^-8.2^13^Opération sur objet flottant (visite, pose, modification, récupération)^LBR^Libéria^null
+result.116=06/04/2019^18:46^2.45^-8.1833^13^Opération sur objet flottant (visite, pose, modification, récupération)^LBR^Libéria^null
+result.117=06/04/2019^18:57^2.4667^-8.15^13^Opération sur objet flottant (visite, pose, modification, récupération)^LBR^Libéria^null
+result.118=06/04/2019^19:05^2.4833^-8.1333^13^Opération sur objet flottant (visite, pose, modification, récupération)^LBR^Libéria^null
+result.119=06/04/2019^19:06^2.4833^-8.1333^1^Transit (route sans recherche)^LBR^Libéria^Route de nuit
+result.120=07/04/2019^06:24^3.4333^-6.2^21^Changement de zone FPA^null^null^Changement de zone effectué le 06/04/2019 à 22H35 T.U à la position 02°45N et 007°33 W
+result.121=07/04/2019^08:24^3.65^-5.8667^2^Recherche (général)^CIV^Côte d'Ivoire^null
+result.122=07/04/2019^10:24^3.8167^-5.5^2^Recherche (général)^CIV^Côte d'Ivoire^null
+result.123=07/04/2019^12:24^3.9167^-5.1167^5^Thonier arrivant sur le système détecté^CIV^Côte d'Ivoire^
+result.124=07/04/2019^12:43^3.9167^-5.1^13^Opération sur objet flottant (visite, pose, modification, récupération)^CIV^Côte d'Ivoire^null
+result.125=07/04/2019^12:52^3.9167^-5.0833^5^Thonier arrivant sur le système détecté^CIV^Côte d'Ivoire^
+result.126=07/04/2019^14:18^3.9^-5.0833^5^Thonier arrivant sur le système détecté^CIV^Côte d'Ivoire^null
+result.127=07/04/2019^14:21^3.9^-5.0833^6^Pêche (larguage du skiff)^CIV^Côte d'Ivoire^null
+result.128=07/04/2019^18:24^3.9^-4.8833^2^Recherche (général)^CIV^Côte d'Ivoire^null
+result.129=07/04/2019^18:33^3.9^-4.8667^16^Fin de veille^CIV^Côte d'Ivoire^Averse
+result.130=07/04/2019^18:34^3.9^-4.8667^1^Transit (route sans recherche)^CIV^Côte d'Ivoire^Route de nuit jusqu'à 1H
+result.131=08/04/2019^06:30^4.0667^-3.45^1^Transit (route sans recherche)^CIV^Côte d'Ivoire^navire en approche pour le début de l'aviataillement
+result.132=08/04/2019^07:30^4.0667^-3.45^99^Autres (à préciser dans les notes)^CIV^Côte d'Ivoire^Début de l'aviatillement en gasoil.
+result.133=08/04/2019^11:34^4.1833^-3.3333^99^Autres (à préciser dans les notes)^CIV^Côte d'Ivoire^Fin avitaillement en gasoil, poursuite de la route
+result.134=08/04/2019^12:30^4.3167^-3.4167^2^Recherche (général)^CIV^Côte d'Ivoire^null
+result.135=08/04/2019^14:30^4.6^-3.6^2^Recherche (général)^CIV^Côte d'Ivoire^null
+result.136=08/04/2019^16:00^4.8167^-3.75^16^Fin de veille^CIV^Côte d'Ivoire^null
+result.137=08/04/2019^16:30^4.8833^-3.8167^1^Transit (route sans recherche)^CIV^Côte d'Ivoire^
+result.138=08/04/2019^18:30^5.1^-3.95^1^Transit (route sans recherche)^CIV^Côte d'Ivoire^null
+result.139=08/04/2019^21:05^5.2833^-4.0167^0^Au port^CIV^Côte d'Ivoire^Navire au port de pêche d'Abidjan.
+syntax.name=Observations - Toutes les activités, leurs positions et zones FPA
syntax.description=Afficher toutes les activités et leurs positions géographiques
syntax.rows=-1
-syntax.columns=6
-syntax.columnsHeader=Jour^Heure observation^Latitude^Longitude^Activité^Commentaire
+syntax.columns=9
+syntax.columnsHeader=Jour^Heure observation^Latitude^Longitude^Activité (code)^Activité (nom)^Zone FPA (code)^Zone FPA (nom)^Commentaire
syntax.rowsHeader=
syntax.nbRequests=1
-result.columns=6
+result.columns=9
result.rows=140
\ No newline at end of file
=====================================
core/services/test/src/main/resources/fixtures/fr/ird/observe/services/service/ReportService-psObservationFobUsageExtended.properties
=====================================
@@ -19,14 +19,14 @@
# <http://www.gnu.org/licenses/gpl-3.0.html>.
# #L%
###
-result.0=FOB - FOB^0^1^0^0^0^0^0^0^0^0^0^0^0^0^0^0^null
-result.1=DFAD - DFAD (FAD dérivant)^1^15^1^27^0^0^0^0^0^0^0^0^0^0^0^0^null
+result.0=DFAD - DFAD (FAD dérivant)^1^15^1^27^0^0^0^0^0^0^0^0^0^0^0^0^0
+result.1=FOB - FOB^0^1^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0
result.columns=18
result.rows=2
syntax.columns=18
syntax.columnsHeader=Type de FOB^Visités Pêchés^Visités non Pêchés^Déploiement après Pêches^Déploiement seul^Modifiés Pêchés^Modifiés non Pêchés^Retirés Pêchés^Retirés non Pêchés^Abandonnés Pêchés^Abandonnés non Pêchés^Coulés Pêchés^Coulés non Pêchés^Remplacés Pêchés^Remplacés non Pêchés^Autre Pêchés^Autre non Pêchés^Tortues associées
syntax.description=Tableau récapitulatif des FOB rencontrés, par types CECOFAD et types d’actions (déploiements, simples visites, modifications, diverses modalités de retraits), avec et sans pêche, et nombres de tortues observées
syntax.name=Observations - Utilisation des FOB, tableau détaillé
-syntax.nbRequests=18
+syntax.nbRequests=2
syntax.rows=-1
syntax.rowsHeader=
=====================================
core/services/test/src/main/resources/fixtures/fr/ird/observe/services/service/ReportService-psObservationFobUsageMinimal.properties
=====================================
@@ -19,14 +19,14 @@
# <http://www.gnu.org/licenses/gpl-3.0.html>.
# #L%
###
-result.0=FOB - FOB^0^1^0^null
-result.1=DFAD - DFAD (FAD dérivant)^1^15^28^null
+result.0=DFAD - DFAD (FAD dérivant)^1^15^28^0
+result.1=FOB - FOB^0^1^0^0
result.columns=5
result.rows=2
syntax.columns=5
syntax.columnsHeader=Type de FOB^Rencontrés pêchés^Rencontrés non pêchés^Déployés^Tortues associées
syntax.description=Tableau récapitulatif des FOB rencontrés, par types CECOFAD et types d’actions regroupés (rencontrés et pêchés, rencontrés non pêchés, déployés), et nombres de tortues observées
syntax.name=Observations - Utilisation des FOB, tableau simplifiée
-syntax.nbRequests=5
+syntax.nbRequests=2
syntax.rows=-1
syntax.rowsHeader=
=====================================
core/services/test/src/main/resources/fixtures/fr/ird/observe/services/service/ReportService.properties
=====================================
@@ -19,4 +19,4 @@
# <http://www.gnu.org/licenses/gpl-3.0.html>.
# #L%
###
-report.count=34
+report.count=35
=====================================
src/site/markdown/report/embedded-reports.md
=====================================
@@ -86,6 +86,10 @@ Livre de bord - Vérification des plan de cuves
Observations - Activités avec comment et leurs positions
+## psObservationActivitiesByZone
+
+Observations - Types d'activités par zones FPA
+
### psObservationAllActivities
Observations - Toutes les activités et leurs positions
=====================================
toolkit/api-report/src/main/java/fr/ird/observe/report/ReportRequestExecutor.java
=====================================
@@ -107,7 +107,9 @@ public interface ReportRequestExecutor {
String variableName = variable.getName();
if (variable.isValuesLoaded()) {
// variable already loaded
- log.debug(String.format("Do not populate variable %s, variable already loaded.", variableName));
+ if (log.isDebugEnabled()) {
+ log.debug(String.format("Do not populate variable %s, variable already loaded.", variableName));
+ }
continue;
}
Map<String, Object> vars = new TreeMap<>();
@@ -178,64 +180,84 @@ public interface ReportRequestExecutor {
}
// remplissage des variables de répétition si nécessaire
populateRepeatVariables(report, tripId);
- log.debug(String.format("Build result for report [%s] on %s", report.getName(), tripId));
+ if (log.isDebugEnabled()) {
+ log.debug(String.format("Build result for report [%s] on %s", report.getName(), tripId));
+ }
int rows = report.getRows();
int columns = report.getColumns();
- log.debug(String.format("Dimension : [%d,%d]", rows, columns));
+ if (log.isDebugEnabled()) {
+ log.debug(String.format("Dimension : [%d,%d]", rows, columns));
+ }
// lancement de la première opération et la matrice de résultat
DataMatrix result = ReportOperationConsumers.executeReportOperation(this, ExecuteRequests.OPERATION, report, tripId, new DataMatrix());
// lancement des opérations supplémentaires
for (ReportOperationDefinition operation : report.getOperations()) {
DataMatrix tmp = result;
- log.debug(String.format("Apply operation %s to %s", operation, tmp));
+ if (log.isDebugEnabled()) {
+ log.debug(String.format("Apply operation %s to %s", operation, tmp));
+ }
result = ReportOperationConsumers.executeReportOperation(this, operation, report, tripId, tmp);
}
- log.debug(String.format("Final result : %s", result));
+ if (log.isDebugEnabled()) {
+ log.debug(String.format("Final result : %s", result));
+ }
return result;
}
default DataMatrix executeReportRequest(ReportRequestDefinition request, Report report, Set<String> dataId) {
- Map<String, Object> params = extractParams(report, dataId);
- ReportDefinition reportDefinition = report.definition();
- String hql = i18nContext().translateRequest(reportDefinition, request);
- for (ReportRepeatVariable<?> repeatVariable : report.getRepeatVariables()) {
- if (isVariableUsed(hql, repeatVariable.getName())) {
- // add this repeat variable values to parameters
- params.put(repeatVariable.getName(), repeatVariable.computeIndexList());
+ long t0 = TimeLog.getTime();
+ try {
+ Map<String, Object> params = extractParams(report, dataId);
+ ReportDefinition reportDefinition = report.definition();
+ String hql = i18nContext().translateRequest(reportDefinition, request);
+ for (ReportRepeatVariable<?> repeatVariable : report.getRepeatVariables()) {
+ if (isVariableUsed(hql, repeatVariable.getName())) {
+ // add this repeat variable values to parameters
+ params.put(repeatVariable.getName(), repeatVariable.computeIndexList());
+ }
}
+ return executeReportRequest(reportDefinition, request, params);
+ } finally {
+ TIME_LOG.log(t0, "executeReportRequest", request.toString());
}
- return executeReportRequest(reportDefinition, request, params);
}
default DataMatrix executeReportRequest(ReportRequestDefinition request, Report report, Set<String> dataId, ReportRepeatVariable<?> repeatValues) {
- Map<String, Object> params = extractParams(report, dataId);
- DataMatrix result = new DataMatrix();
- RequestRepeatVariableDefinition requestRepeatVariable = request.getRepeat();
- RequestLayout requestRepeatVariableLayout = requestRepeatVariable.getLayout();
- String repeatVariableName = requestRepeatVariable.getVariableName();
- ReportDefinition reportDefinition = report.definition();
- for (Object repeatValue : repeatValues.getValues()) {
- params.put(repeatVariableName, repeatValue);
- DataMatrix tmp = executeReportRequest(reportDefinition, request, params);
- switch (requestRepeatVariableLayout) {
- case row:
- // add current result on the same row (at the right of the current result)
- tmp.setX(result.getX() + result.getWidth());
- tmp.setY(result.getY());
- break;
- case column:
- // add current result on the same column (at the bottom of the current result)
- tmp.setX(result.getX());
- tmp.setY(result.getY() + result.getHeight());
- break;
+ long t0 = TimeLog.getTime();
+ try {
+ Map<String, Object> params = extractParams(report, dataId);
+ DataMatrix result = new DataMatrix();
+ RequestRepeatVariableDefinition requestRepeatVariable = request.getRepeat();
+ RequestLayout requestRepeatVariableLayout = requestRepeatVariable.getLayout();
+ String repeatVariableName = requestRepeatVariable.getVariableName();
+ ReportDefinition reportDefinition = report.definition();
+ for (Object repeatValue : repeatValues.getValues()) {
+ params.put(repeatVariableName, repeatValue);
+ DataMatrix tmp = executeReportRequest(reportDefinition, request, params);
+ switch (requestRepeatVariableLayout) {
+ case row:
+ // add current result on the same row (at the right of the current result)
+ tmp.setX(result.getX() + result.getWidth());
+ tmp.setY(result.getY());
+ break;
+ case column:
+ // add current result on the same column (at the bottom of the current result)
+ tmp.setX(result.getX());
+ tmp.setY(result.getY() + result.getHeight());
+ break;
+ }
+ result = DataMatrix.merge(result, tmp);
}
- result = DataMatrix.merge(result, tmp);
+ result.setX(request.getX());
+ result.setY(request.getY());
+ if (log.isDebugEnabled()) {
+ log.debug(String.format("Result location : %s", result.getLocation()));
+ log.debug(String.format("Result data :\n%s", result.getClipboardContent(true, true, false, '\t')));
+ }
+ return result;
+ } finally {
+ TIME_LOG.log(t0, "executeReportRequest", request.toString());
}
- result.setX(request.getX());
- result.setY(request.getY());
- log.debug(String.format("Result location : %s", result.getLocation()));
- log.debug(String.format("Result data :\n%s", result.getClipboardContent(true, true, false, '\t')));
- return result;
}
default DataMatrix executeReportRequest(ReportDefinition reportDefinition, ReportRequestDefinition reportRequestDefinition, Map<String, Object> params) {
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/compare/b20c845634c72d83f97c19de…
--
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/compare/b20c845634c72d83f97c19de…
You're receiving this email because of your account on gitlab.com.
1
0
[Git][ultreiaio/ird-observe][develop] 5 commits: Add more TimeLog and fix log.debug issues in ReportRequestExecutor
by Tony CHEMIT (@tchemit) March 16, 2024
by Tony CHEMIT (@tchemit) March 16, 2024
March 16, 2024
Tony CHEMIT pushed to branch develop at ultreiaio / ird-observe
Commits:
88b13f8a by Tony Chemit at 2024-03-16T13:06:10+01:00
Add more TimeLog and fix log.debug issues in ReportRequestExecutor
- - - - -
71e34b77 by Tony Chemit at 2024-03-16T13:15:56+01:00
Optimisation du rapport Livre de bord - Vérification des plan de cuves - Closes #2849
- - - - -
0a4cdf76 by Tony Chemit at 2024-03-16T13:33:34+01:00
Optimisation du rapport Livre de bord - Plan de cuves - Closes #2850
- - - - -
d07f7bc5 by Tony Chemit at 2024-03-16T15:48:14+01:00
Optimisation du rapport Observations - Utilisation des FOB, tableau simplifiée - Closes #2851
- - - - -
c375649a by Tony Chemit at 2024-03-16T15:48:14+01:00
Optimisation du rapport Observations - Utilisation des FOB, tableau détaillé - Closes #2852
- - - - -
10 changed files:
- core/persistence/report/src/main/resources/META-INF/report/default/ps/psLogbookWellPlan.report
- core/persistence/report/src/main/resources/META-INF/report/default/ps/psLogbookWellPlanCheck.report
- core/persistence/report/src/main/resources/META-INF/report/default/ps/psObservationFobUsageExtended.report
- core/persistence/report/src/main/resources/META-INF/report/default/ps/psObservationFobUsageMinimal.report
- core/services/test/src/main/java/fr/ird/observe/services/service/report/ps/PsObservationFobUsageExtendedReportFixture.java
- core/services/test/src/main/java/fr/ird/observe/services/service/report/ps/PsObservationFobUsageMinimalReportFixture.java
- core/services/test/src/main/resources/fixtures/fr/ird/observe/services/service/ReportService-psLogbookWellPlanCheck.properties
- core/services/test/src/main/resources/fixtures/fr/ird/observe/services/service/ReportService-psObservationFobUsageExtended.properties
- core/services/test/src/main/resources/fixtures/fr/ird/observe/services/service/ReportService-psObservationFobUsageMinimal.properties
- toolkit/api-report/src/main/java/fr/ird/observe/report/ReportRequestExecutor.java
Changes:
=====================================
core/persistence/report/src/main/resources/META-INF/report/default/ps/psLogbookWellPlan.report
=====================================
@@ -39,19 +39,16 @@ w.well, \
r.date, \
a.number, \
Cast(a.time As java.sql.Time), \
-species.@i18nColumnName@, \
-weightCategory.@i18nColumnName@, \
+was.species.@i18nColumnName@, \
+was.weightCategory.@i18nColumnName@, \
was.weight \
From TripImpl t \
Join t.well w \
Join w.wellActivity wa \
Join wa.wellActivitySpecies was \
-Join was.species species \
-Join was.weightCategory weightCategory \
Join t.routeLogbook r \
Join r.activity a \
Join t.vessel vessel \
Left Join a.vesselActivity vesselActivity \
-Left Join a.schoolType schoolType \
Where t.id In :tripId and wa.activity = a \
Order By vessel.code,t.startDate,t.endDate,w.well,r.date,a.time
=====================================
core/persistence/report/src/main/resources/META-INF/report/default/ps/psLogbookWellPlanCheck.report
=====================================
@@ -29,16 +29,6 @@ description.es=
columns=Code bateau,Nom bateau,Date départ,Date arrivée,Date de route,Numéro activité,Heure activité,Logbook YFT,Logbook SKJ,Logbook BET,Logbook ALB,Logbook Autres,Plan de cuves YFT,Plan de cuves SKJ,Plan de cuves BET,Plan de cuves ALB,Plan de cuves Autres,Logbook Total,Plan de cuves Total,Différence
columns.en=Vessel code,Vessel name,Departure date,Landing date,Day of route,Activity number,Activity hour,Logbook YFT,Logbook SKJ,Logbook BET,Logbook ALB,Logbook others,Well plan YFT,Well plan SKJ,Well plan BET,Well plan ALB,Well plan others,Logbook Total,Well plan Total,Difference
columns.es=
-repeatVariable.1.name=activity
-repeatVariable.1.type=fr.ird.observe.entities.data.ps.logbook.Activity
-repeatVariable.1.request=Select a \
-From TripImpl t \
-Join t.routeLogbook r \
-Join r.activity a \
-Join t.vessel vessel \
-Left Join a.vesselActivity vesselActivity \
-Where t.id In :tripId and vesselActivity.id = 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586' \
-Order By vessel.code,t.startDate,r.date,a.number,a.time
request.1.location=0,0
request.1.layout=row
request.1.request=Select vessel.code,\
@@ -47,74 +37,33 @@ t.startDate, \
t.endDate, \
r.date, \
a.number, \
-Cast(a.time As java.sql.Time) \
-From TripImpl t \
-Join t.routeLogbook r \
-Join r.activity a \
-Join t.vessel vessel \
-Where t.id In :tripId and a = :activity
-request.1.repeat.name=activity
-request.1.repeat.layout=column
-request.2.location=7,0
-request.2.layout=row
-request.2.request=Select \
-Sum(CASE ct.species.id When 'fr.ird.referential.common.Species#1239832685474#0.8943253454598569' Then ct.weight Else 0.0 End), \
-Sum(CASE ct.species.id When 'fr.ird.referential.common.Species#1239832685474#0.975344121171992' Then ct.weight Else 0.0 End), \
-Sum(CASE ct.species.id When 'fr.ird.referential.common.Species#1239832685475#0.13349466123905152' Then ct.weight Else 0.0 End), \
-Sum(CASE ct.species.id When 'fr.ird.referential.common.Species#1239832685476#0.5618871286604711' Then ct.weight Else 0.0 End), \
-Sum(CASE ct.species.id When 'fr.ird.referential.common.Species#1239832685474#0.8943253454598569' Then 0.0 \
+Cast(a.time As java.sql.Time), \
+(Select Sum(CASE ct.species.id When 'fr.ird.referential.common.Species#1239832685474#0.8943253454598569' Then ct.weight Else 0.0 End) From fr.ird.observe.entities.data.ps.logbook.ActivityImpl aa Join a.catches ct Where aa = a), \
+(Select Sum(CASE ct.species.id When 'fr.ird.referential.common.Species#1239832685474#0.975344121171992' Then ct.weight Else 0.0 End) From fr.ird.observe.entities.data.ps.logbook.ActivityImpl aa Join a.catches ct Where aa = a), \
+(Select Sum(CASE ct.species.id When 'fr.ird.referential.common.Species#1239832685475#0.13349466123905152' Then ct.weight Else 0.0 End) From fr.ird.observe.entities.data.ps.logbook.ActivityImpl aa Join a.catches ct Where aa = a), \
+(Select Sum(CASE ct.species.id When 'fr.ird.referential.common.Species#1239832685476#0.5618871286604711' Then ct.weight Else 0.0 End) From fr.ird.observe.entities.data.ps.logbook.ActivityImpl aa Join a.catches ct Where aa = a), \
+(Select Sum(CASE ct.species.id When 'fr.ird.referential.common.Species#1239832685474#0.8943253454598569' Then 0.0 \
When 'fr.ird.referential.common.Species#1239832685474#0.975344121171992' Then 0.0 \
When 'fr.ird.referential.common.Species#1239832685475#0.13349466123905152' Then 0.0 \
When 'fr.ird.referential.common.Species#1239832685476#0.5618871286604711' Then 0.0 \
-Else ct.weight End) \
-From TripImpl t \
-Join t.routeLogbook r \
-Join r.activity a \
-Join a.catches ct \
-Where t.id In :tripId and a = :activity
-request.2.repeat.name=activity
-request.2.repeat.layout=column
-request.3.location=12,0
-request.3.layout=row
-request.3.request=Select \
-Sum(CASE was.species.id When 'fr.ird.referential.common.Species#1239832685474#0.8943253454598569' Then was.weight Else 0.0 End), \
-Sum(CASE was.species.id When 'fr.ird.referential.common.Species#1239832685474#0.975344121171992' Then was.weight Else 0.0 End), \
-Sum(CASE was.species.id When 'fr.ird.referential.common.Species#1239832685475#0.13349466123905152' Then was.weight Else 0.0 End), \
-Sum(CASE was.species.id When 'fr.ird.referential.common.Species#1239832685476#0.5618871286604711' Then was.weight Else 0.0 End), \
-Sum(CASE was.species.id When 'fr.ird.referential.common.Species#1239832685474#0.8943253454598569' Then 0.0 \
+Else ct.weight End) From fr.ird.observe.entities.data.ps.logbook.ActivityImpl aa Join a.catches ct Where aa = a), \
+(Select Sum(CASE was.species.id When 'fr.ird.referential.common.Species#1239832685474#0.8943253454598569' Then was.weight Else 0.0 End) From WellActivityImpl wa Join wa.wellActivitySpecies was Where wa.activity = a), \
+(Select Sum(CASE was.species.id When 'fr.ird.referential.common.Species#1239832685474#0.975344121171992' Then was.weight Else 0.0 End) From WellActivityImpl wa Join wa.wellActivitySpecies was Where wa.activity = a), \
+(Select Sum(CASE was.species.id When 'fr.ird.referential.common.Species#1239832685475#0.13349466123905152' Then was.weight Else 0.0 End) From WellActivityImpl wa Join wa.wellActivitySpecies was Where wa.activity = a), \
+(Select Sum(CASE was.species.id When 'fr.ird.referential.common.Species#1239832685476#0.5618871286604711' Then was.weight Else 0.0 End) From WellActivityImpl wa Join wa.wellActivitySpecies was Where wa.activity = a), \
+(Select Sum(CASE was.species.id When 'fr.ird.referential.common.Species#1239832685474#0.8943253454598569' Then 0.0 \
When 'fr.ird.referential.common.Species#1239832685474#0.975344121171992' Then 0.0 \
When 'fr.ird.referential.common.Species#1239832685475#0.13349466123905152' Then 0.0 \
When 'fr.ird.referential.common.Species#1239832685476#0.5618871286604711' Then 0.0 \
-Else was.weight End) \
-From TripImpl t \
-Join t.well w \
-Join w.wellActivity wa \
-Join wa.wellActivitySpecies was \
-Where t.id In :tripId and wa.activity = :activity
-request.3.repeat.name=activity
-request.3.repeat.layout=column
-request.4.location=17,0
-request.4.layout=row
-request.4.request=Select \
-Sum(ct.weight) \
+Else was.weight End) From WellActivityImpl wa Join wa.wellActivitySpecies was Where wa.activity = a), \
+(Select Sum(ct.weight) From fr.ird.observe.entities.data.ps.logbook.ActivityImpl aa Join a.catches ct Where aa = a), \
+(Select Sum(was.weight) From WellActivityImpl wa Join wa.wellActivitySpecies was Where wa.activity = a) \
From TripImpl t \
Join t.routeLogbook r \
-Join r.activity a \
-Join a.catches ct \
-Where t.id In :tripId and a = :activity
-request.4.repeat.name=activity
-request.4.repeat.layout=column
-request.5.location=18,0
-request.5.layout=row
-request.5.request=Select \
-Sum(was.weight) \
-From TripImpl t \
-Join t.well w \
-Join w.wellActivity wa \
-Join wa.wellActivitySpecies was \
-Where t.id In :tripId and wa.activity = :activity
-request.5.repeat.name=activity
-request.5.repeat.layout=column
+Join r.activity a With a.vesselActivity.id = 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586' \
+Join t.vessel vessel \
+Where t.id In :tripId \
+Order By vessel.code,t.startDate,r.date,a.number,a.time
operations.1.type=SubtractColum
operations.1.parameters=17|18|19
operations.2.type=SumColumn
=====================================
core/persistence/report/src/main/resources/META-INF/report/default/ps/psObservationFobUsageExtended.report
=====================================
@@ -33,17 +33,20 @@ repeatVariable.1.name=typeObjetId
repeatVariable.1.type=java.lang.String
repeatVariable.1.request=Select distinct (om.standardCode) \
From ObjectMaterialImpl om \
-Where standardCode is not null \
-And standardCode != '' \
-And (Select Count(dcp) \
+Where om.standardCode is not null \
+And om.standardCode != '' \
+And (om.standardCode In (Select Distinct(dcp.computedWhenArrivingSimplifiedObjectType) \
From fr.ird.observe.entities.data.ps.common.TripImpl m \
Join m.routeObs r \
Join r.activity a \
-Join a.floatingObject dcp \
-Where \
-m.id In :tripId \
-and (dcp.computedWhenArrivingSimplifiedObjectType = om.standardCode Or dcp.computedWhenLeavingSimplifiedObjectType = om.standardCode) \
-) > 0
+Join a.floatingObject dcp With dcp.computedWhenArrivingSimplifiedObjectType Is Not Null \
+Where m.id In :tripId ) Or om.standardCode In (Select Distinct(dcp.computedWhenLeavingSimplifiedObjectType) \
+From fr.ird.observe.entities.data.ps.common.TripImpl m \
+Join m.routeObs r \
+Join r.activity a \
+Join a.floatingObject dcp With dcp.computedWhenLeavingSimplifiedObjectType Is Not Null \
+Where m.id In :tripId )) \
+Order by om.standardCode
request.1.location=0,0
request.1.layout=row
request.1.request=Select concat(str(om.standardCode) , ' - ', om.@i18nColumnName@) \
@@ -55,258 +58,30 @@ request.1.repeat.name=typeObjetId
request.1.repeat.layout=column
request.2.location=1,0
request.2.layout=row
-request.2.request=Select Count(dcp) \
-From fr.ird.observe.entities.data.ps.common.TripImpl m \
-Join m.routeObs r \
-Join r.activity a \
-Join a.floatingObject dcp \
-Where \
-m.id In :tripId \
-and dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId \
-and dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#2' \
-and a.vesselActivity.id = 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586'
+request.2.request=Select \
+Sum(Case When dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId And dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#2' And a.vesselActivity.id = 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586' Then 1 Else 0 End), \
+Sum(Case When dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId And dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#2' And a.vesselActivity.id != 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586' Then 1 Else 0 End), \
+Sum(Case When dcp.computedWhenLeavingSimplifiedObjectType = :typeObjetId And dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#1' And a.vesselActivity.id = 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586' Then 1 Else 0 End), \
+Sum(Case When dcp.computedWhenLeavingSimplifiedObjectType = :typeObjetId And dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#1' And a.vesselActivity.id != 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586' Then 1 Else 0 End), \
+Sum(Case When dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId And dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#8' And a.vesselActivity.id = 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586' Then 1 Else 0 End), \
+Sum(Case When dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId And dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#8' And a.vesselActivity.id != 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586' Then 1 Else 0 End), \
+Sum(Case When dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId And dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#4' And a.vesselActivity.id = 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586' Then 1 Else 0 End), \
+Sum(Case When dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId And dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#4' And a.vesselActivity.id != 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586' Then 1 Else 0 End), \
+Sum(Case When dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId And dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#5' And a.vesselActivity.id = 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586' Then 1 Else 0 End), \
+Sum(Case When dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId And dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#5' And a.vesselActivity.id != 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586' Then 1 Else 0 End), \
+Sum(Case When dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId And dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#7' And a.vesselActivity.id = 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586' Then 1 Else 0 End), \
+Sum(Case When dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId And dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#7' And a.vesselActivity.id != 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586' Then 1 Else 0 End), \
+Sum(Case When dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId And dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#9' And a.vesselActivity.id = 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586' Then 1 Else 0 End), \
+Sum(Case When dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId And dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#9' And a.vesselActivity.id != 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586' Then 1 Else 0 End), \
+Sum(Case When dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId And (dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#10' Or dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#3') And a.vesselActivity.id = 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586' Then 1 Else 0 End), \
+Sum(Case When dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId And (dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#10' Or dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#3') And a.vesselActivity.id != 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586' Then 1 Else 0 End), \
+Sum(Case When dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId And dcp.objectObservedSpecies Is Not Empty Then (Select Sum(efo.count) From fr.ird.observe.entities.data.ps.observation.FloatingObjectImpl dcp1 Join dcp1.objectObservedSpecies efo With efo.species.speciesGroup.id = 'fr.ird.referential.common.SpeciesGroup#1239832683690#0.24333033683679461' Where dcp1 = dcp) Else 0 End) \
+From fr.ird.observe.entities.data.ps.common.TripImpl m \
+Join m.routeObs r \
+Join r.activity a \
+Join a.floatingObject dcp With dcp.computedWhenLeavingSimplifiedObjectType = :typeObjetId Or dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId \
+Where \
+m.id In :tripId
request.2.repeat.name=typeObjetId
request.2.repeat.layout=column
-request.2.comment=visite + peche
-request.3.location=2,0
-request.3.layout=row
-request.3.request=Select Count(dcp) \
-From fr.ird.observe.entities.data.ps.common.TripImpl m \
-Join m.routeObs r \
-Join r.activity a \
-Join a.floatingObject dcp \
-Where \
-m.id In :tripId \
-and dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId \
-and dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#2' \
-and a.vesselActivity.id != 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586'
-request.3.repeat.name=typeObjetId
-request.3.repeat.layout=column
-request.3.comment=visite - peche
-request.4.location=3,0
-request.4.layout=row
-request.4.request=Select Count(dcp) \
-From fr.ird.observe.entities.data.ps.common.TripImpl m \
-Join m.routeObs r \
-Join r.activity a \
-Join a.floatingObject dcp \
-Where \
-m.id In :tripId \
-and dcp.computedWhenLeavingSimplifiedObjectType = :typeObjetId \
-and dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#1' \
-and a.vesselActivity.id = 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586'
-request.4.repeat.name=typeObjetId
-request.4.repeat.layout=column
-request.4.comment=Deploiement + peche
-request.5.location=4,0
-request.5.layout=row
-request.5.request=Select Count(dcp) \
-From fr.ird.observe.entities.data.ps.common.TripImpl m \
-Join m.routeObs r \
-Join r.activity a \
-Join a.floatingObject dcp \
-Where \
-m.id In :tripId \
-and dcp.computedWhenLeavingSimplifiedObjectType = :typeObjetId \
-and dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#1' \
-and a.vesselActivity.id != 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586'
-request.5.repeat.name=typeObjetId
-request.5.repeat.layout=column
-request.5.comment=Deploiement - peche
-request.6.location=5,0
-request.6.layout=row
-request.6.request=Select Count(dcp) \
-From fr.ird.observe.entities.data.ps.common.TripImpl m \
-Join m.routeObs r \
-Join r.activity a \
-Join a.floatingObject dcp \
-Where \
-m.id In :tripId \
-and dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId \
-and dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#8' \
-and a.vesselActivity.id = 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586'
-request.6.repeat.name=typeObjetId
-request.6.repeat.layout=column
-request.6.comment=Modifie + peche
-request.7.location=6,0
-request.7.layout=row
-request.7.request=Select Count(dcp) \
-From fr.ird.observe.entities.data.ps.common.TripImpl m \
-Join m.routeObs r \
-Join r.activity a \
-Join a.floatingObject dcp \
-Where \
-m.id In :tripId \
-and dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId \
-and dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#8' \
-and a.vesselActivity.id != 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586'
-request.7.repeat.name=typeObjetId
-request.7.repeat.layout=column
-request.7.comment=Modifie - peche
-request.8.location=7,0
-request.8.layout=row
-request.8.request=Select Count(dcp) \
-From fr.ird.observe.entities.data.ps.common.TripImpl m \
-Join m.routeObs r \
-Join r.activity a \
-Join a.floatingObject dcp \
-Where \
-m.id In :tripId \
-and dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId \
-and dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#4' \
-and a.vesselActivity.id = 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586'
-request.8.repeat.name=typeObjetId
-request.8.repeat.layout=column
-request.8.comment=Retire + peche
-request.9.location=8,0
-request.9.layout=row
-request.9.request=Select Count(dcp) \
-From fr.ird.observe.entities.data.ps.common.TripImpl m \
-Join m.routeObs r \
-Join r.activity a \
-Join a.floatingObject dcp \
-Where \
-m.id In :tripId \
-and dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId \
-and dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#4' \
-and a.vesselActivity.id != 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586'
-request.9.repeat.name=typeObjetId
-request.9.repeat.layout=column
-request.9.comment=Retire - peche
-request.10.location=9,0
-request.10.layout=row
-request.10.request=Select Count(dcp) \
-From fr.ird.observe.entities.data.ps.common.TripImpl m \
-Join m.routeObs r \
-Join r.activity a \
-Join a.floatingObject dcp \
-Where \
-m.id In :tripId \
-and dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId \
-and dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#5' \
-and a.vesselActivity.id = 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586'
-request.10.repeat.name=typeObjetId
-request.10.repeat.layout=column
-request.10.comment=Abandonne + peche
-request.11.location=10,0
-request.11.layout=row
-request.11.request=Select Count(dcp) \
-From fr.ird.observe.entities.data.ps.common.TripImpl m \
-Join m.routeObs r \
-Join r.activity a \
-Join a.floatingObject dcp \
-Where \
-m.id In :tripId \
-and dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId \
-and dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#5' \
-and a.vesselActivity.id != 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586'
-request.11.repeat.name=typeObjetId
-request.11.repeat.layout=column
-request.11.comment=Abandonne - peche
-request.12.location=11,0
-request.12.layout=row
-request.12.request=Select Count(dcp) \
-From fr.ird.observe.entities.data.ps.common.TripImpl m \
-Join m.routeObs r \
-Join r.activity a \
-Join a.floatingObject dcp \
-Where \
-m.id In :tripId \
-and dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId \
-and dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#7' \
-and a.vesselActivity.id = 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586'
-request.12.repeat.name=typeObjetId
-request.12.repeat.layout=column
-request.12.comment=Coule + peche
-request.13.location=12,0
-request.13.layout=row
-request.13.request=Select Count(dcp) \
-From fr.ird.observe.entities.data.ps.common.TripImpl m \
-Join m.routeObs r \
-Join r.activity a \
-Join a.floatingObject dcp \
-Where \
-m.id In :tripId \
-and dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId \
-and dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#7' \
-and a.vesselActivity.id != 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586'
-request.13.repeat.name=typeObjetId
-request.13.repeat.layout=column
-request.13.comment=Coule - peche
-request.14.location=13,0
-request.14.layout=row
-request.14.request=Select Count(dcp) \
-From fr.ird.observe.entities.data.ps.common.TripImpl m \
-Join m.routeObs r \
-Join r.activity a \
-Join a.floatingObject dcp \
-Where \
-m.id In :tripId \
-and dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId \
-and dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#9' \
-and a.vesselActivity.id = 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586'
-request.14.repeat.name=typeObjetId
-request.14.repeat.layout=column
-request.14.comment=Remplace + peche
-request.15.location=14,0
-request.15.layout=row
-request.15.request=Select Count(dcp) \
-From fr.ird.observe.entities.data.ps.common.TripImpl m \
-Join m.routeObs r \
-Join r.activity a \
-Join a.floatingObject dcp \
-Where \
-m.id In :tripId \
-and dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId \
-and dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#9' \
-and a.vesselActivity.id != 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586'
-request.15.repeat.name=typeObjetId
-request.15.repeat.layout=column
-request.15.comment=Remplace - peche
-request.16.location=15,0
-request.16.layout=row
-request.16.request=Select Count(dcp) \
-From fr.ird.observe.entities.data.ps.common.TripImpl m \
-Join m.routeObs r \
-Join r.activity a \
-Join a.floatingObject dcp \
-Where \
-m.id In :tripId \
-and dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId \
-and (dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#10' \
-or dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#3') \
-and a.vesselActivity.id = 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586'
-request.16.repeat.name=typeObjetId
-request.16.repeat.layout=column
-request.16.comment=Autre ou ancien peche + peche
-request.17.location=16,0
-request.17.layout=row
-request.17.request=Select Count(dcp) \
-From fr.ird.observe.entities.data.ps.common.TripImpl m \
-Join m.routeObs r \
-Join r.activity a \
-Join a.floatingObject dcp \
-Where \
-m.id In :tripId \
-and dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId \
-and (dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#10' \
-or dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#3') \
-and a.vesselActivity.id != 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586'
-request.17.repeat.name=typeObjetId
-request.17.repeat.layout=column
-request.17.comment=Autre ou ancien peche - peche
-request.18.location=17,0
-request.18.layout=row
-request.18.request=Select Sum(efo.count) \
-From fr.ird.observe.entities.data.ps.common.TripImpl m \
-Join m.routeObs r \
-Join r.activity a \
-Join a.floatingObject dcp \
-Join dcp.objectObservedSpecies efo \
-Where \
-m.id In :tripId \
-and dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId \
-and efo.species.speciesGroup.id = 'fr.ird.referential.common.SpeciesGroup#1239832683690#0.24333033683679461'
-request.18.repeat.name=typeObjetId
-request.18.repeat.layout=column
-request.18.comment=Nombre de tortues
+request.2.comment=visite + peche / visite - peche / Deploiement + peche / Deploiement - peche / Modifie + peche / Modifie - peche / Retire + peche / Retire - peche / Abandonne + peche / Abandonne - peche / Coule + peche / Coule - peche / Remplace + peche / Remplace - peche / Autre ou ancien peche + peche / Autre ou ancien peche - peche / Nombre de tortues
=====================================
core/persistence/report/src/main/resources/META-INF/report/default/ps/psObservationFobUsageMinimal.report
=====================================
@@ -33,17 +33,20 @@ repeatVariable.1.name=typeObjetId
repeatVariable.1.type=java.lang.String
repeatVariable.1.request=Select distinct (om.standardCode) \
From ObjectMaterialImpl om \
-Where standardCode is not null \
-And standardCode != '' \
-And (Select Count(dcp) \
+Where om.standardCode is not null \
+And om.standardCode != '' \
+And (om.standardCode In (Select Distinct(dcp.computedWhenArrivingSimplifiedObjectType) \
From fr.ird.observe.entities.data.ps.common.TripImpl m \
Join m.routeObs r \
Join r.activity a \
-Join a.floatingObject dcp \
-Where \
-m.id In :tripId \
-and (dcp.computedWhenArrivingSimplifiedObjectType = om.standardCode Or dcp.computedWhenLeavingSimplifiedObjectType = om.standardCode) \
-) > 0
+Join a.floatingObject dcp With dcp.computedWhenArrivingSimplifiedObjectType Is Not Null \
+Where m.id In :tripId ) Or om.standardCode In (Select Distinct(dcp.computedWhenLeavingSimplifiedObjectType) \
+From fr.ird.observe.entities.data.ps.common.TripImpl m \
+Join m.routeObs r \
+Join r.activity a \
+Join a.floatingObject dcp With dcp.computedWhenLeavingSimplifiedObjectType Is Not Null \
+Where m.id In :tripId )) \
+Order by om.standardCode
repeatVariable.1.comment=liste des types CECOFAD en presence sur les donnees selectionnees
request.1.location=0,0
request.1.layout=row
@@ -56,74 +59,31 @@ request.1.repeat.name=typeObjetId
request.1.repeat.layout=column
request.2.location=1,0
request.2.layout=row
-request.2.request=Select Count(dcp) \
-From fr.ird.observe.entities.data.ps.common.TripImpl m \
-Join m.routeObs r \
-Join r.activity a \
-Join a.floatingObject dcp \
-Where \
-m.id In :tripId \
-and dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId \
-and a.vesselActivity.id = 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586' \
-and (dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#2' \
+request.2.request=Select \
+Sum(Case When dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId And a.vesselActivity.id = 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586' And (dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#2' \
or dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#8' \
or dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#4' \
or dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#5' \
or dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#7' \
or dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#9' \
or dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#10' \
-or dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#3')
-request.2.repeat.name=typeObjetId
-request.2.repeat.layout=column
-request.2.comment=rencontres + peches
-request.3.location=2,0
-request.3.layout=row
-request.3.request=Select Count(dcp) \
-From fr.ird.observe.entities.data.ps.common.TripImpl m \
-Join m.routeObs r \
-Join r.activity a \
-Join a.floatingObject dcp \
-Where \
-m.id In :tripId \
-and dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId \
-and a.vesselActivity.id != 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586' \
-and (dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#2' \
+or dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#3') Then 1 Else 0 End), \
+Sum(Case When dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId And a.vesselActivity.id != 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586' And (dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#2' \
or dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#8' \
or dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#4' \
or dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#5' \
or dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#7' \
or dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#9' \
or dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#10' \
-or dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#3')
-request.3.repeat.name=typeObjetId
-request.3.repeat.layout=column
-request.3.comment=rencontres - peches
-request.4.location=3,0
-request.4.layout=row
-request.4.request=Select Count(dcp) \
-From fr.ird.observe.entities.data.ps.common.TripImpl m \
-Join m.routeObs r \
-Join r.activity a \
-Join a.floatingObject dcp \
-Where \
-m.id In :tripId \
-and dcp.computedWhenLeavingSimplifiedObjectType = :typeObjetId \
-and dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#1'
-request.4.repeat.name=typeObjetId
-request.4.repeat.layout=column
-request.4.comment=deployes
-request.5.location=4,0
-request.5.layout=row
-request.5.request=Select Sum(efo.count) \
+or dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#3') Then 1 Else 0 End), \
+Sum(Case When dcp.computedWhenLeavingSimplifiedObjectType = :typeObjetId And dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#1' Then 1 Else 0 End), \
+Sum(Case When dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId And dcp.objectObservedSpecies Is Not Empty Then (Select Sum(efo.count) From fr.ird.observe.entities.data.ps.observation.FloatingObjectImpl dcp1 Join dcp1.objectObservedSpecies efo With efo.species.speciesGroup.id = 'fr.ird.referential.common.SpeciesGroup#1239832683690#0.24333033683679461' Where dcp1 = dcp) Else 0 End) \
From fr.ird.observe.entities.data.ps.common.TripImpl m \
Join m.routeObs r \
Join r.activity a \
-Join a.floatingObject dcp \
-Join dcp.objectObservedSpecies efo \
+Join a.floatingObject dcp With dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId Or dcp.computedWhenLeavingSimplifiedObjectType = :typeObjetId \
Where \
-m.id In :tripId \
-and dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId \
-and efo.species.speciesGroup.id = 'fr.ird.referential.common.SpeciesGroup#1239832683690#0.24333033683679461'
-request.5.repeat.name=typeObjetId
-request.5.repeat.layout=column
-request.5.comment=Nombre de tortues
+m.id In :tripId
+request.2.repeat.name=typeObjetId
+request.2.repeat.layout=column
+request.2.comment=rencontres + peches / rencontres - peches / deployes / Nombre de tortues
=====================================
core/services/test/src/main/java/fr/ird/observe/services/service/report/ps/PsObservationFobUsageExtendedReportFixture.java
=====================================
@@ -45,6 +45,5 @@ public class PsObservationFobUsageExtendedReportFixture extends ReportFixture {
Iterator<ReportRequestDefinition> requests = getRequestIterator(report);
assertReportRequestDimension(requests, RequestLayout.row, 0, 0);
assertReportRequestDimension(requests, RequestLayout.row, 1, 0);
- assertReportRequestDimension(requests, RequestLayout.row, 2, 0);
}
}
=====================================
core/services/test/src/main/java/fr/ird/observe/services/service/report/ps/PsObservationFobUsageMinimalReportFixture.java
=====================================
@@ -45,6 +45,5 @@ public class PsObservationFobUsageMinimalReportFixture extends ReportFixture {
Iterator<ReportRequestDefinition> requests = getRequestIterator(report);
assertReportRequestDimension(requests, RequestLayout.row, 0, 0);
assertReportRequestDimension(requests, RequestLayout.row, 1, 0);
- assertReportRequestDimension(requests, RequestLayout.row, 2, 0);
}
}
=====================================
core/services/test/src/main/resources/fixtures/fr/ird/observe/services/service/ReportService-psLogbookWellPlanCheck.properties
=====================================
@@ -25,7 +25,7 @@ syntax.rows=-1
syntax.columns=20
syntax.columnsHeader=Code bateau^Nom bateau^Date départ^Date arrivée^Date de route^Numéro activité^Heure activité^Logbook YFT^Logbook SKJ^Logbook BET^Logbook ALB^Logbook Autres^Plan de cuves YFT^Plan de cuves SKJ^Plan de cuves BET^Plan de cuves ALB^Plan de cuves Autres^Logbook Total^Plan de cuves Total^Différence
syntax.rowsHeader=
-syntax.nbRequests=5
+syntax.nbRequests=1
result.columns=20
result.rows=4
result.0=483^CAP BOJADOR^30/03/2019^08/04/2019^30/03/2019^1^15:12^0.0^123.0^43.0^0.0^0.0^0.0^0.0^12.0^0.0^0.0^166.0^12.0^154.0
=====================================
core/services/test/src/main/resources/fixtures/fr/ird/observe/services/service/ReportService-psObservationFobUsageExtended.properties
=====================================
@@ -19,14 +19,14 @@
# <http://www.gnu.org/licenses/gpl-3.0.html>.
# #L%
###
-result.0=FOB - FOB^0^1^0^0^0^0^0^0^0^0^0^0^0^0^0^0^null
-result.1=DFAD - DFAD (FAD dérivant)^1^15^1^27^0^0^0^0^0^0^0^0^0^0^0^0^null
+result.0=DFAD - DFAD (FAD dérivant)^1^15^1^27^0^0^0^0^0^0^0^0^0^0^0^0^0
+result.1=FOB - FOB^0^1^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0
result.columns=18
result.rows=2
syntax.columns=18
syntax.columnsHeader=Type de FOB^Visités Pêchés^Visités non Pêchés^Déploiement après Pêches^Déploiement seul^Modifiés Pêchés^Modifiés non Pêchés^Retirés Pêchés^Retirés non Pêchés^Abandonnés Pêchés^Abandonnés non Pêchés^Coulés Pêchés^Coulés non Pêchés^Remplacés Pêchés^Remplacés non Pêchés^Autre Pêchés^Autre non Pêchés^Tortues associées
syntax.description=Tableau récapitulatif des FOB rencontrés, par types CECOFAD et types d’actions (déploiements, simples visites, modifications, diverses modalités de retraits), avec et sans pêche, et nombres de tortues observées
syntax.name=Observations - Utilisation des FOB, tableau détaillé
-syntax.nbRequests=18
+syntax.nbRequests=2
syntax.rows=-1
syntax.rowsHeader=
=====================================
core/services/test/src/main/resources/fixtures/fr/ird/observe/services/service/ReportService-psObservationFobUsageMinimal.properties
=====================================
@@ -19,14 +19,14 @@
# <http://www.gnu.org/licenses/gpl-3.0.html>.
# #L%
###
-result.0=FOB - FOB^0^1^0^null
-result.1=DFAD - DFAD (FAD dérivant)^1^15^28^null
+result.0=DFAD - DFAD (FAD dérivant)^1^15^28^0
+result.1=FOB - FOB^0^1^0^0
result.columns=5
result.rows=2
syntax.columns=5
syntax.columnsHeader=Type de FOB^Rencontrés pêchés^Rencontrés non pêchés^Déployés^Tortues associées
syntax.description=Tableau récapitulatif des FOB rencontrés, par types CECOFAD et types d’actions regroupés (rencontrés et pêchés, rencontrés non pêchés, déployés), et nombres de tortues observées
syntax.name=Observations - Utilisation des FOB, tableau simplifiée
-syntax.nbRequests=5
+syntax.nbRequests=2
syntax.rows=-1
syntax.rowsHeader=
=====================================
toolkit/api-report/src/main/java/fr/ird/observe/report/ReportRequestExecutor.java
=====================================
@@ -107,7 +107,9 @@ public interface ReportRequestExecutor {
String variableName = variable.getName();
if (variable.isValuesLoaded()) {
// variable already loaded
- log.debug(String.format("Do not populate variable %s, variable already loaded.", variableName));
+ if (log.isDebugEnabled()) {
+ log.debug(String.format("Do not populate variable %s, variable already loaded.", variableName));
+ }
continue;
}
Map<String, Object> vars = new TreeMap<>();
@@ -178,64 +180,84 @@ public interface ReportRequestExecutor {
}
// remplissage des variables de répétition si nécessaire
populateRepeatVariables(report, tripId);
- log.debug(String.format("Build result for report [%s] on %s", report.getName(), tripId));
+ if (log.isDebugEnabled()) {
+ log.debug(String.format("Build result for report [%s] on %s", report.getName(), tripId));
+ }
int rows = report.getRows();
int columns = report.getColumns();
- log.debug(String.format("Dimension : [%d,%d]", rows, columns));
+ if (log.isDebugEnabled()) {
+ log.debug(String.format("Dimension : [%d,%d]", rows, columns));
+ }
// lancement de la première opération et la matrice de résultat
DataMatrix result = ReportOperationConsumers.executeReportOperation(this, ExecuteRequests.OPERATION, report, tripId, new DataMatrix());
// lancement des opérations supplémentaires
for (ReportOperationDefinition operation : report.getOperations()) {
DataMatrix tmp = result;
- log.debug(String.format("Apply operation %s to %s", operation, tmp));
+ if (log.isDebugEnabled()) {
+ log.debug(String.format("Apply operation %s to %s", operation, tmp));
+ }
result = ReportOperationConsumers.executeReportOperation(this, operation, report, tripId, tmp);
}
- log.debug(String.format("Final result : %s", result));
+ if (log.isDebugEnabled()) {
+ log.debug(String.format("Final result : %s", result));
+ }
return result;
}
default DataMatrix executeReportRequest(ReportRequestDefinition request, Report report, Set<String> dataId) {
- Map<String, Object> params = extractParams(report, dataId);
- ReportDefinition reportDefinition = report.definition();
- String hql = i18nContext().translateRequest(reportDefinition, request);
- for (ReportRepeatVariable<?> repeatVariable : report.getRepeatVariables()) {
- if (isVariableUsed(hql, repeatVariable.getName())) {
- // add this repeat variable values to parameters
- params.put(repeatVariable.getName(), repeatVariable.computeIndexList());
+ long t0 = TimeLog.getTime();
+ try {
+ Map<String, Object> params = extractParams(report, dataId);
+ ReportDefinition reportDefinition = report.definition();
+ String hql = i18nContext().translateRequest(reportDefinition, request);
+ for (ReportRepeatVariable<?> repeatVariable : report.getRepeatVariables()) {
+ if (isVariableUsed(hql, repeatVariable.getName())) {
+ // add this repeat variable values to parameters
+ params.put(repeatVariable.getName(), repeatVariable.computeIndexList());
+ }
}
+ return executeReportRequest(reportDefinition, request, params);
+ } finally {
+ TIME_LOG.log(t0, "executeReportRequest", request.toString());
}
- return executeReportRequest(reportDefinition, request, params);
}
default DataMatrix executeReportRequest(ReportRequestDefinition request, Report report, Set<String> dataId, ReportRepeatVariable<?> repeatValues) {
- Map<String, Object> params = extractParams(report, dataId);
- DataMatrix result = new DataMatrix();
- RequestRepeatVariableDefinition requestRepeatVariable = request.getRepeat();
- RequestLayout requestRepeatVariableLayout = requestRepeatVariable.getLayout();
- String repeatVariableName = requestRepeatVariable.getVariableName();
- ReportDefinition reportDefinition = report.definition();
- for (Object repeatValue : repeatValues.getValues()) {
- params.put(repeatVariableName, repeatValue);
- DataMatrix tmp = executeReportRequest(reportDefinition, request, params);
- switch (requestRepeatVariableLayout) {
- case row:
- // add current result on the same row (at the right of the current result)
- tmp.setX(result.getX() + result.getWidth());
- tmp.setY(result.getY());
- break;
- case column:
- // add current result on the same column (at the bottom of the current result)
- tmp.setX(result.getX());
- tmp.setY(result.getY() + result.getHeight());
- break;
+ long t0 = TimeLog.getTime();
+ try {
+ Map<String, Object> params = extractParams(report, dataId);
+ DataMatrix result = new DataMatrix();
+ RequestRepeatVariableDefinition requestRepeatVariable = request.getRepeat();
+ RequestLayout requestRepeatVariableLayout = requestRepeatVariable.getLayout();
+ String repeatVariableName = requestRepeatVariable.getVariableName();
+ ReportDefinition reportDefinition = report.definition();
+ for (Object repeatValue : repeatValues.getValues()) {
+ params.put(repeatVariableName, repeatValue);
+ DataMatrix tmp = executeReportRequest(reportDefinition, request, params);
+ switch (requestRepeatVariableLayout) {
+ case row:
+ // add current result on the same row (at the right of the current result)
+ tmp.setX(result.getX() + result.getWidth());
+ tmp.setY(result.getY());
+ break;
+ case column:
+ // add current result on the same column (at the bottom of the current result)
+ tmp.setX(result.getX());
+ tmp.setY(result.getY() + result.getHeight());
+ break;
+ }
+ result = DataMatrix.merge(result, tmp);
}
- result = DataMatrix.merge(result, tmp);
+ result.setX(request.getX());
+ result.setY(request.getY());
+ if (log.isDebugEnabled()) {
+ log.debug(String.format("Result location : %s", result.getLocation()));
+ log.debug(String.format("Result data :\n%s", result.getClipboardContent(true, true, false, '\t')));
+ }
+ return result;
+ } finally {
+ TIME_LOG.log(t0, "executeReportRequest", request.toString());
}
- result.setX(request.getX());
- result.setY(request.getY());
- log.debug(String.format("Result location : %s", result.getLocation()));
- log.debug(String.format("Result data :\n%s", result.getClipboardContent(true, true, false, '\t')));
- return result;
}
default DataMatrix executeReportRequest(ReportDefinition reportDefinition, ReportRequestDefinition reportRequestDefinition, Map<String, Object> params) {
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/compare/b5ef9ebc78e3cab2442d0bb8…
--
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/compare/b5ef9ebc78e3cab2442d0bb8…
You're receiving this email because of your account on gitlab.com.
1
0
[Git][ultreiaio/ird-observe] Pushed new branch feature/issue-2848
by Tony CHEMIT (@tchemit) March 15, 2024
by Tony CHEMIT (@tchemit) March 15, 2024
March 15, 2024
Tony CHEMIT pushed new branch feature/issue-2848 at ultreiaio / ird-observe
--
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/tree/feature/issue-2848
You're receiving this email because of your account on gitlab.com.
1
0