Observe-commits
Threads by month
- ----- 2026 -----
- June
- May
- April
- March
- February
- January
- ----- 2025 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
December 2022
- 1 participants
- 58 discussions
[Git][ultreiaio/ird-observe][develop] Report - suppression des reports psObservationTargetCatchByAssociation et...
by Tony CHEMIT (@tchemit) 12 Dec '22
by Tony CHEMIT (@tchemit) 12 Dec '22
12 Dec '22
Tony CHEMIT pushed to branch develop at ultreiaio / ird-observe
Commits:
74681acf by Tony Chemit at 2022-12-12T15:05:18+01:00
Report - suppression des reports psObservationTargetCatchByAssociation et psObservationTargetDiscardedByAssociation
- - - - -
5 changed files:
- core/api/dto/src/main/resources/observe-reports.properties
- − core/services/test/src/main/java/fr/ird/observe/services/service/report/ps/PsObservationTargetCatchByAssociationReportFixture.java
- − core/services/test/src/main/java/fr/ird/observe/services/service/report/ps/PsObservationTargetDiscardedByAssociationReportFixture.java
- − core/services/test/src/main/resources/fixtures/fr/ird/observe/services/service/ReportService-psObservationTargetCatchByAssociation.properties
- − core/services/test/src/main/resources/fixtures/fr/ird/observe/services/service/ReportService-psObservationTargetDiscardedByAssociation.properties
Changes:
=====================================
core/api/dto/src/main/resources/observe-reports.properties
=====================================
@@ -827,274 +827,6 @@ report.psObservationCatchTotalCountByGroupAndSpeciesFateDiscardPerAssociation.re
Group by e
report.psObservationCatchTotalCountByGroupAndSpeciesFateDiscardPerAssociation.request.5.repeat=species|column
################################################################################
-## Captures thons selon le type d'association
-################################################################################
-report.psObservationTargetCatchByAssociation.modelType=PS
-report.psObservationTargetCatchByAssociation.name=Observations - Captures de thons selon le type d’association (en t)
-report.psObservationTargetCatchByAssociation.description=Afficher la répartitions des captures de thons selon le type d'association
-report.psObservationTargetCatchByAssociation.columns=YFT, SKJ, BET, LTA, FRI, Autres, Total
-report.psObservationTargetCatchByAssociation.rows=BL sans baleine, BL avec baleine, BO avec requin-baleine, BO sans requin-baleine, Total
-report.psObservationTargetCatchByAssociation.operations.1=SumRow
-report.psObservationTargetCatchByAssociation.operations.2=SumColumn
-# ligne 1
-report.psObservationTargetCatchByAssociation.request.1=0,0|row|\
- Select \
- Sum(CASE ct.species.topiaId When 'fr.ird.referential.common.Species#1239832685474#0.8943253454598569' Then ct.catchWeight \
- Else 0.0 End), \
- Sum(CASE ct.species.topiaId When 'fr.ird.referential.common.Species#1239832685474#0.975344121171992' Then ct.catchWeight \
- Else 0.0 End), \
- Sum(CASE ct.species.topiaId When 'fr.ird.referential.common.Species#1239832685475#0.13349466123905152' Then ct.catchWeight \
- Else 0.0 End), \
- Sum(CASE ct.species.topiaId When 'fr.ird.referential.common.Species#1239832685477#0.8024257002747615' Then ct.catchWeight \
- Else 0.0 End), \
- Sum(CASE ct.species.topiaId When 'fr.ird.referential.common.Species#1239832685477#0.3846921632590058' Then ct.catchWeight \
- Else 0.0 End), \
- Sum(CASE ct.species.topiaId 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#1239832685477#0.8024257002747615' Then 0.0 \
- When 'fr.ird.referential.common.Species#1239832685477#0.3846921632590058' Then 0.0 \
- Else ct.catchWeight End) \
- From TripImpl m \
- Join m.routeObs r \
- Join r.activity a \
- Join a.set c \
- with c.schoolType.id = 'fr.ird.referential.ps.common.SchoolType#0#2' \
- Join c.catches ct \
- Join ct.speciesFate sf with sf.discard = FALSE, \
- ObservedSystemImpl os \
- Where \
- m.id In :tripId \
- and os.topiaId = 'fr.ird.referential.ps.common.ObservedSystem#1239832686428#0.9395222812356602' \
- and os not in elements(a.observedSystem)
-# ligne 2
-report.psObservationTargetCatchByAssociation.request.7=0,1|row|\
- Select \
- Sum(CASE ct.species.topiaId When 'fr.ird.referential.common.Species#1239832685474#0.8943253454598569' Then ct.catchWeight \
- Else 0.0 End), \
- Sum(CASE ct.species.topiaId When 'fr.ird.referential.common.Species#1239832685474#0.975344121171992' Then ct.catchWeight \
- Else 0.0 End), \
- Sum(CASE ct.species.topiaId When 'fr.ird.referential.common.Species#1239832685475#0.13349466123905152' Then ct.catchWeight \
- Else 0.0 End), \
- Sum(CASE ct.species.topiaId When 'fr.ird.referential.common.Species#1239832685477#0.8024257002747615' Then ct.catchWeight \
- Else 0.0 End), \
- Sum(CASE ct.species.topiaId When 'fr.ird.referential.common.Species#1239832685477#0.3846921632590058' Then ct.catchWeight \
- Else 0.0 End), \
- Sum(CASE ct.species.topiaId 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#1239832685477#0.8024257002747615' Then 0.0 \
- When 'fr.ird.referential.common.Species#1239832685477#0.3846921632590058' Then 0.0 \
- Else ct.catchWeight End) \
- From TripImpl m \
- Join m.routeObs r \
- Join r.activity a \
- Join a.set c \
- with c.schoolType.id = 'fr.ird.referential.ps.common.SchoolType#0#2' \
- Join c.catches ct \
- Join ct.speciesFate sf with sf.discard = FALSE, \
- ObservedSystemImpl os \
- Where \
- m.id In :tripId \
- and os.topiaId = 'fr.ird.referential.ps.common.ObservedSystem#1239832686428#0.9395222812356602' \
- and os in elements(a.observedSystem)
-# ligne 3
-report.psObservationTargetCatchByAssociation.request.13=0,2|row|\
- Select \
- Sum(CASE ct.species.topiaId When 'fr.ird.referential.common.Species#1239832685474#0.8943253454598569' Then ct.catchWeight \
- Else 0.0 End), \
- Sum(CASE ct.species.topiaId When 'fr.ird.referential.common.Species#1239832685474#0.975344121171992' Then ct.catchWeight \
- Else 0.0 End), \
- Sum(CASE ct.species.topiaId When 'fr.ird.referential.common.Species#1239832685475#0.13349466123905152' Then ct.catchWeight \
- Else 0.0 End), \
- Sum(CASE ct.species.topiaId When 'fr.ird.referential.common.Species#1239832685477#0.8024257002747615' Then ct.catchWeight \
- Else 0.0 End), \
- Sum(CASE ct.species.topiaId When 'fr.ird.referential.common.Species#1239832685477#0.3846921632590058' Then ct.catchWeight \
- Else 0.0 End), \
- Sum(CASE ct.species.topiaId 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#1239832685477#0.8024257002747615' Then 0.0 \
- When 'fr.ird.referential.common.Species#1239832685477#0.3846921632590058' Then 0.0 \
- Else ct.catchWeight End) \
- From TripImpl m \
- Join m.routeObs r \
- Join r.activity a \
- Join a.set c \
- with c.schoolType.id = 'fr.ird.referential.ps.common.SchoolType#0#1' \
- Join c.catches ct \
- Join ct.speciesFate sf with sf.discard = FALSE, \
- ObservedSystemImpl os \
- Where \
- m.id In :tripId \
- and os.topiaId = 'fr.ird.referential.ps.common.ObservedSystem#1239832686428#0.9217864901728908' \
- and os in elements(a.observedSystem)
-# ligne 4
-report.psObservationTargetCatchByAssociation.request.19=0,3|row|\
- Select \
- Sum(CASE ct.species.topiaId When 'fr.ird.referential.common.Species#1239832685474#0.8943253454598569' Then ct.catchWeight \
- Else 0.0 End), \
- Sum(CASE ct.species.topiaId When 'fr.ird.referential.common.Species#1239832685474#0.975344121171992' Then ct.catchWeight \
- Else 0.0 End), \
- Sum(CASE ct.species.topiaId When 'fr.ird.referential.common.Species#1239832685475#0.13349466123905152' Then ct.catchWeight \
- Else 0.0 End), \
- Sum(CASE ct.species.topiaId When 'fr.ird.referential.common.Species#1239832685477#0.8024257002747615' Then ct.catchWeight \
- Else 0.0 End), \
- Sum(CASE ct.species.topiaId When 'fr.ird.referential.common.Species#1239832685477#0.3846921632590058' Then ct.catchWeight \
- Else 0.0 End), \
- Sum(CASE ct.species.topiaId 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#1239832685477#0.8024257002747615' Then 0.0 \
- When 'fr.ird.referential.common.Species#1239832685477#0.3846921632590058' Then 0.0 \
- Else ct.catchWeight End) \
- From TripImpl m \
- Join m.routeObs r \
- Join r.activity a \
- Join a.set c \
- with c.schoolType.id = 'fr.ird.referential.ps.common.SchoolType#0#1' \
- Join c.catches ct \
- Join ct.speciesFate sf with sf.discard = FALSE, \
- ObservedSystemImpl os \
- Where \
- m.id In :tripId \
- and os.topiaId = 'fr.ird.referential.ps.common.ObservedSystem#1239832686428#0.9217864901728908' \
- and os not in elements(a.observedSystem)
-################################################################################
-## Rejets thons selon le type d'association
-################################################################################
-report.psObservationTargetDiscardedByAssociation.modelType=PS
-report.psObservationTargetDiscardedByAssociation.name=Observations - Rejets de thons selon le type d’association (en t)
-report.psObservationTargetDiscardedByAssociation.description=Afficher la répartitions des rejets de thons selon le type d'association
-report.psObservationTargetDiscardedByAssociation.columns=YFT, SKJ, BET, LTA, FRI, Autres, Total
-report.psObservationTargetDiscardedByAssociation.rows=BL sans baleine, BL avec baleine, BO avec requin-baleine, BO sans requin-baleine, Total
-report.psObservationTargetDiscardedByAssociation.operations.1=SumRow
-report.psObservationTargetDiscardedByAssociation.operations.2=SumColumn
-# ligne 1
-report.psObservationTargetDiscardedByAssociation.request.1=0,0|row|\
- Select \
- Sum(CASE ct.species.topiaId When 'fr.ird.referential.common.Species#1239832685474#0.8943253454598569' Then ct.catchWeight \
- Else 0.0 End), \
- Sum(CASE ct.species.topiaId When 'fr.ird.referential.common.Species#1239832685474#0.975344121171992' Then ct.catchWeight \
- Else 0.0 End), \
- Sum(CASE ct.species.topiaId When 'fr.ird.referential.common.Species#1239832685475#0.13349466123905152' Then ct.catchWeight \
- Else 0.0 End), \
- Sum(CASE ct.species.topiaId When 'fr.ird.referential.common.Species#1239832685477#0.8024257002747615' Then ct.catchWeight \
- Else 0.0 End), \
- Sum(CASE ct.species.topiaId When 'fr.ird.referential.common.Species#1239832685477#0.3846921632590058' Then ct.catchWeight \
- Else 0.0 End), \
- Sum(CASE ct.species.topiaId 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#1239832685477#0.8024257002747615' Then 0.0 \
- When 'fr.ird.referential.common.Species#1239832685477#0.3846921632590058' Then 0.0 \
- Else ct.catchWeight End) \
- From TripImpl m \
- Join m.routeObs r \
- Join r.activity a \
- Join a.set c \
- with c.schoolType.id = 'fr.ird.referential.ps.common.SchoolType#0#2' \
- Join c.catches ct \
- Join ct.speciesFate sf with sf.discard = TRUE, \
- ObservedSystemImpl os \
- Where \
- m.id In :tripId \
- and os.topiaId = 'fr.ird.referential.ps.common.ObservedSystem#1239832686428#0.9395222812356602' \
- and os not in elements(a.observedSystem)
-# ligne 2
-report.psObservationTargetDiscardedByAssociation.request.7=0,1|row|\
- Select \
- Sum(CASE ct.species.topiaId When 'fr.ird.referential.common.Species#1239832685474#0.8943253454598569' Then ct.catchWeight \
- Else 0.0 End), \
- Sum(CASE ct.species.topiaId When 'fr.ird.referential.common.Species#1239832685474#0.975344121171992' Then ct.catchWeight \
- Else 0.0 End), \
- Sum(CASE ct.species.topiaId When 'fr.ird.referential.common.Species#1239832685475#0.13349466123905152' Then ct.catchWeight \
- Else 0.0 End), \
- Sum(CASE ct.species.topiaId When 'fr.ird.referential.common.Species#1239832685477#0.8024257002747615' Then ct.catchWeight \
- Else 0.0 End), \
- Sum(CASE ct.species.topiaId When 'fr.ird.referential.common.Species#1239832685477#0.3846921632590058' Then ct.catchWeight \
- Else 0.0 End), \
- Sum(CASE ct.species.topiaId 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#1239832685477#0.8024257002747615' Then 0.0 \
- When 'fr.ird.referential.common.Species#1239832685477#0.3846921632590058' Then 0.0 \
- Else ct.catchWeight End) \
- From TripImpl m \
- Join m.routeObs r \
- Join r.activity a \
- Join a.set c \
- with c.schoolType.id = 'fr.ird.referential.ps.common.SchoolType#0#2' \
- Join c.catches ct \
- Join ct.speciesFate sf with sf.discard = TRUE, \
- ObservedSystemImpl os \
- Where \
- m.id In :tripId \
- and os.topiaId = 'fr.ird.referential.ps.common.ObservedSystem#1239832686428#0.9395222812356602' \
- and os in elements(a.observedSystem)
-# ligne 3
-report.psObservationTargetDiscardedByAssociation.request.13=0,2|row|\
- Select \
- Sum(CASE ct.species.topiaId When 'fr.ird.referential.common.Species#1239832685474#0.8943253454598569' Then ct.catchWeight \
- Else 0.0 End), \
- Sum(CASE ct.species.topiaId When 'fr.ird.referential.common.Species#1239832685474#0.975344121171992' Then ct.catchWeight \
- Else 0.0 End), \
- Sum(CASE ct.species.topiaId When 'fr.ird.referential.common.Species#1239832685475#0.13349466123905152' Then ct.catchWeight \
- Else 0.0 End), \
- Sum(CASE ct.species.topiaId When 'fr.ird.referential.common.Species#1239832685477#0.8024257002747615' Then ct.catchWeight \
- Else 0.0 End), \
- Sum(CASE ct.species.topiaId When 'fr.ird.referential.common.Species#1239832685477#0.3846921632590058' Then ct.catchWeight \
- Else 0.0 End), \
- Sum(CASE ct.species.topiaId 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#1239832685477#0.8024257002747615' Then 0.0 \
- When 'fr.ird.referential.common.Species#1239832685477#0.3846921632590058' Then 0.0 \
- Else ct.catchWeight End) \
- From TripImpl m \
- Join m.routeObs r \
- Join r.activity a \
- Join a.set c \
- with c.schoolType.id = 'fr.ird.referential.ps.common.SchoolType#0#1' \
- Join c.catches ct \
- Join ct.speciesFate sf with sf.discard = TRUE, \
- ObservedSystemImpl os \
- Where \
- m.id In :tripId \
- and os.topiaId = 'fr.ird.referential.ps.common.ObservedSystem#1239832686428#0.9217864901728908' \
- and os in elements(a.observedSystem)
-# ligne 4
-report.psObservationTargetDiscardedByAssociation.request.19=0,3|row|\
- Select \
- Sum(CASE ct.species.topiaId When 'fr.ird.referential.common.Species#1239832685474#0.8943253454598569' Then ct.catchWeight \
- Else 0.0 End), \
- Sum(CASE ct.species.topiaId When 'fr.ird.referential.common.Species#1239832685474#0.975344121171992' Then ct.catchWeight \
- Else 0.0 End), \
- Sum(CASE ct.species.topiaId When 'fr.ird.referential.common.Species#1239832685475#0.13349466123905152' Then ct.catchWeight \
- Else 0.0 End), \
- Sum(CASE ct.species.topiaId When 'fr.ird.referential.common.Species#1239832685477#0.8024257002747615' Then ct.catchWeight \
- Else 0.0 End), \
- Sum(CASE ct.species.topiaId When 'fr.ird.referential.common.Species#1239832685477#0.3846921632590058' Then ct.catchWeight \
- Else 0.0 End), \
- Sum(CASE ct.species.topiaId 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#1239832685477#0.8024257002747615' Then 0.0 \
- When 'fr.ird.referential.common.Species#1239832685477#0.3846921632590058' Then 0.0 \
- Else ct.catchWeight End) \
- From TripImpl m \
- Join m.routeObs r \
- Join r.activity a \
- Join a.set c \
- with c.schoolType.id = 'fr.ird.referential.ps.common.SchoolType#0#1' \
- Join c.catches ct \
- Join ct.speciesFate sf with sf.discard = TRUE, \
- ObservedSystemImpl os \
- Where \
- m.id In :tripId \
- and os.topiaId = 'fr.ird.referential.ps.common.ObservedSystem#1239832686428#0.9217864901728908' \
- and os not in elements(a.observedSystem)
-################################################################################
## Captures observées
################################################################################
report.psObservationCatch.modelType=PS
=====================================
core/services/test/src/main/java/fr/ird/observe/services/service/report/ps/PsObservationTargetCatchByAssociationReportFixture.java deleted
=====================================
@@ -1,49 +0,0 @@
-/*
- * #%L
- * ObServe Core :: Services :: Test
- * %%
- * Copyright (C) 2008 - 2022 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%
- */
-package fr.ird.observe.services.service.report.ps;
-
-import com.google.auto.service.AutoService;
-import fr.ird.observe.dto.report.Report;
-import fr.ird.observe.dto.report.ReportRequest;
-import fr.ird.observe.services.service.ReportFixture;
-
-import java.util.Iterator;
-
-/**
- * Test le report {@code targetCatchByAssociation}.
- *
- * @author Tony Chemit - dev(a)tchemit.fr
- * @since 1.9
- */
-(a)AutoService(ReportFixture.class)
-public class PsObservationTargetCatchByAssociationReportFixture extends ReportFixture {
-
- @Override
- public void assertSyntax(Report report) {
- super.assertSyntax(report);
- Iterator<ReportRequest> requests = getRequestIterator(report);
- assertReportRequestDimension(requests, ReportRequest.RequestLayout.row, 0, 0);
- assertReportRequestDimension(requests, ReportRequest.RequestLayout.row, 0, 1);
- assertReportRequestDimension(requests, ReportRequest.RequestLayout.row, 0, 2);
- assertReportRequestDimension(requests, ReportRequest.RequestLayout.row, 0, 3);
- }
-}
=====================================
core/services/test/src/main/java/fr/ird/observe/services/service/report/ps/PsObservationTargetDiscardedByAssociationReportFixture.java deleted
=====================================
@@ -1,49 +0,0 @@
-/*
- * #%L
- * ObServe Core :: Services :: Test
- * %%
- * Copyright (C) 2008 - 2022 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%
- */
-package fr.ird.observe.services.service.report.ps;
-
-import com.google.auto.service.AutoService;
-import fr.ird.observe.dto.report.Report;
-import fr.ird.observe.dto.report.ReportRequest;
-import fr.ird.observe.services.service.ReportFixture;
-
-import java.util.Iterator;
-
-/**
- * Test le report {@code targetDiscardedByAssociation}.
- *
- * @author Tony Chemit - dev(a)tchemit.fr
- * @since 1.9
- */
-(a)AutoService(ReportFixture.class)
-public class PsObservationTargetDiscardedByAssociationReportFixture extends ReportFixture {
-
- @Override
- public void assertSyntax(Report report) {
- super.assertSyntax(report);
- Iterator<ReportRequest> requests = getRequestIterator(report);
- assertReportRequestDimension(requests, ReportRequest.RequestLayout.row, 0, 0);
- assertReportRequestDimension(requests, ReportRequest.RequestLayout.row, 0, 1);
- assertReportRequestDimension(requests, ReportRequest.RequestLayout.row, 0, 2);
- assertReportRequestDimension(requests, ReportRequest.RequestLayout.row, 0, 3);
- }
-}
=====================================
core/services/test/src/main/resources/fixtures/fr/ird/observe/services/service/ReportService-psObservationTargetCatchByAssociation.properties deleted
=====================================
@@ -1,35 +0,0 @@
-###
-# #%L
-# ObServe Core :: Services :: Test
-# %%
-# Copyright (C) 2008 - 2022 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 - Captures de thons selon le type d’association (en t)
-syntax.description=Afficher la répartitions des captures de thons selon le type d'association
-syntax.rows=5
-syntax.columns=7
-syntax.columnsHeader=YFT^SKJ^BET^LTA^FRI^Autres^Total
-syntax.rowsHeader=BL sans baleine^BL avec baleine^BO avec requin-baleine^BO sans requin-baleine^Total
-syntax.nbRequests=4
-result.columns=7
-result.rows=5
-result.0=175.0^0.0^7.0^0.0^0.0^0.0^182.0
-result.1=null^null^null^null^null^null^0.0
-result.2=null^null^null^null^null^null^0.0
-result.3=0.0^1.0^0.0^0.0^1.0^12.1406^14.1406
-result.4=175.0^1.0^7.0^0.0^1.0^12.1406^196.1406
\ No newline at end of file
=====================================
core/services/test/src/main/resources/fixtures/fr/ird/observe/services/service/ReportService-psObservationTargetDiscardedByAssociation.properties deleted
=====================================
@@ -1,35 +0,0 @@
-###
-# #%L
-# ObServe Core :: Services :: Test
-# %%
-# Copyright (C) 2008 - 2022 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=0.0^0.0^0.0^0.0^0.0^0.2882^0.2882
-result.1=null^null^null^null^null^null^0.0
-result.2=null^null^null^null^null^null^0.0
-result.3=0.0^0.0^5.0^0.0^0.0^148.303^153.303
-result.4=0.0^0.0^5.0^0.0^0.0^148.5912^153.5912
-result.columns=7
-result.rows=5
-syntax.columns=7
-syntax.columnsHeader=YFT^SKJ^BET^LTA^FRI^Autres^Total
-syntax.description=Afficher la répartitions des rejets de thons selon le type d'association
-syntax.name=Observations - Rejets de thons selon le type d’association (en t)
-syntax.nbRequests=4
-syntax.rows=5
-syntax.rowsHeader=BL sans baleine^BL avec baleine^BO avec requin-baleine^BO sans requin-baleine^Total
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/commit/74681acf4c75e2bbec212e57f…
--
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/commit/74681acf4c75e2bbec212e57f…
You're receiving this email because of your account on gitlab.com.
1
0
[Git][ultreiaio/ird-observe][develop-9.0.x] 2 commits: Une BD sql.gz qui génère une corruption de données systématique - Notre...
by Tony CHEMIT (@tchemit) 12 Dec '22
by Tony CHEMIT (@tchemit) 12 Dec '22
12 Dec '22
Tony CHEMIT pushed to branch develop-9.0.x at ultreiaio / ird-observe
Commits:
296bd417 by Tony Chemit at 2022-12-12T14:11:35+01:00
Une BD sql.gz qui génère une corruption de données systématique - Notre espoir de comprendre le problème ? - Closes #2571
- - - - -
5a4d1662 by Tony Chemit at 2022-12-12T14:57:16+01:00
Report - correction de certain totaux (exprimé en int au lieu d'en float pour les poids) + revue de certains libellés
- - - - -
8 changed files:
- core/api/dto/src/main/resources/observe-reports.properties
- core/services/test/src/main/resources/fixtures/fr/ird/observe/services/service/ReportService-psObservationCatchTotalCountByGroupPerReasonForDiscard.properties
- core/services/test/src/main/resources/fixtures/fr/ird/observe/services/service/ReportService-psObservationCatchTotalCountByGroupPerSpeciesFate.properties
- core/services/test/src/main/resources/fixtures/fr/ird/observe/services/service/ReportService-psObservationCatchWeightByGroupPerReasonForDiscard.properties
- core/services/test/src/main/resources/fixtures/fr/ird/observe/services/service/ReportService-psObservationCatchWeightByGroupPerSpeciesFate.properties
- toolkit/persistence/src/main/java/org/nuiton/topia/service/migration/TopiaMigrationServiceContext.java
- toolkit/persistence/src/main/java/org/nuiton/topia/service/migration/TopiaMigrationServiceImpl.java
- toolkit/persistence/src/main/java/org/nuiton/topia/service/migration/version/MigrationServiceSqlHelper.java
Changes:
=====================================
core/api/dto/src/main/resources/observe-reports.properties
=====================================
@@ -1151,7 +1151,7 @@ report.psObservationCatch.request.3.repeat=speciesId|column
################################################################################
report.psObservationCatchTotalCountByGroupPerSpeciesFate.modelType=PS
report.psObservationCatchTotalCountByGroupPerSpeciesFate.name=Observations - Dénombrement des captures par type de banc et devenir, filtrés par groupe
-report.psObservationCatchTotalCountByGroupPerSpeciesFate.description=Afficher les nombres de captures par groupe d'espèce selon le type de banc et le devenir, filtré par groupe
+report.psObservationCatchTotalCountByGroupPerSpeciesFate.description=Afficher les nombres de captures selon le type de banc et le devenir, filtré par groupe
report.psObservationCatchTotalCountByGroupPerSpeciesFate.variable.speciesGroup=fr.ird.observe.dto.referential.common.SpeciesGroupDto|\
Select distinct sg \
From TripImpl t \
@@ -1214,8 +1214,8 @@ report.psObservationCatchTotalCountByGroupPerSpeciesFate.operations.4=SumIntColu
## Poids des captures par groupe d'espèces
################################################################################
report.psObservationCatchWeightByGroupPerSpeciesFate.modelType=PS
-report.psObservationCatchWeightByGroupPerSpeciesFate.name=Observations - Poids des captures par type de banc et devenir, filtrés par groupe
-report.psObservationCatchWeightByGroupPerSpeciesFate.description=Afficher le poids de captures par groupe d'espèce selon le type de banc et le devenir, filtrés par groupe
+report.psObservationCatchWeightByGroupPerSpeciesFate.name=Observations - Poids des captures par type de banc et devenir, filtrés par groupe (en t)
+report.psObservationCatchWeightByGroupPerSpeciesFate.description=Afficher le poids de captures selon le type de banc et le devenir, filtrés par groupe (en t)
report.psObservationCatchWeightByGroupPerSpeciesFate.variable.speciesGroup=fr.ird.observe.dto.referential.common.SpeciesGroupDto|\
Select distinct sg \
From TripImpl t \
@@ -1272,13 +1272,13 @@ Where m.id In :tripId \
Group by s, sf \
Order By s.homeId
report.psObservationCatchWeightByGroupPerSpeciesFate.operations.2=ComputeDynamicHeader:Espèce,Total BL,Total BO|speciesFate
-report.psObservationCatchWeightByGroupPerSpeciesFate.operations.3=SumIntRow:1|3
-report.psObservationCatchWeightByGroupPerSpeciesFate.operations.4=SumIntColumn:1|1
+report.psObservationCatchWeightByGroupPerSpeciesFate.operations.3=SumRow:1|3
+report.psObservationCatchWeightByGroupPerSpeciesFate.operations.4=SumColumn:1|1
################################################################################
## Poids des captures par groupe d'espèces, type de banc et et raison de rejet
################################################################################
report.psObservationCatchWeightByGroupPerReasonForDiscard.modelType=PS
-report.psObservationCatchWeightByGroupPerReasonForDiscard.name=Observations - Poids des rejets par type de banc et raison de rejet, filtrés par groupe
+report.psObservationCatchWeightByGroupPerReasonForDiscard.name=Observations - Poids des rejets par type de banc et raison de rejet, filtrés par groupe (en t)
report.psObservationCatchWeightByGroupPerReasonForDiscard.description=Afficher le poids de captures rejetées par espèce selon le type de banc et type de rejet, filtrés par groupe
report.psObservationCatchWeightByGroupPerReasonForDiscard.variable.speciesGroup=fr.ird.observe.dto.referential.common.SpeciesGroupDto|\
Select distinct sg \
@@ -1336,14 +1336,14 @@ Where m.id In :tripId \
Group by s, sf \
Order By s.homeId
report.psObservationCatchWeightByGroupPerReasonForDiscard.operations.2=ComputeDynamicHeader:Espèce,Total BL,Total BO|reasonForDiscard
-report.psObservationCatchWeightByGroupPerReasonForDiscard.operations.3=SumIntRow:1|3
-report.psObservationCatchWeightByGroupPerReasonForDiscard.operations.4=SumIntColumn:1|1
+report.psObservationCatchWeightByGroupPerReasonForDiscard.operations.3=SumRow:1|3
+report.psObservationCatchWeightByGroupPerReasonForDiscard.operations.4=SumColumn:1|1
################################################################################
## Dénombrement des rejets par groupe d'espèces, type de banc et raison de rejet
################################################################################
report.psObservationCatchTotalCountByGroupPerReasonForDiscard.modelType=PS
-report.psObservationCatchTotalCountByGroupPerReasonForDiscard.name=Observations - Dénombrement des rejets par type de banc et raison de rejet, filtrés par groupe
-report.psObservationCatchTotalCountByGroupPerReasonForDiscard.description=Afficher le nombre de captures rejetées par espèce selon le type de banc et le type de rejet, filtrés par groupe
+report.psObservationCatchTotalCountByGroupPerReasonForDiscard.name=Observations - Dénombrement des rejets par type de banc et raison de rejet, filtrés par groupe (en t)
+report.psObservationCatchTotalCountByGroupPerReasonForDiscard.description=Afficher le nombre de captures rejetées par espèce selon le type de banc et le type de rejet, filtrés par groupe (en t)
report.psObservationCatchTotalCountByGroupPerReasonForDiscard.variable.speciesGroup=fr.ird.observe.dto.referential.common.SpeciesGroupDto|\
Select distinct sg \
From TripImpl t \
=====================================
core/services/test/src/main/resources/fixtures/fr/ird/observe/services/service/ReportService-psObservationCatchTotalCountByGroupPerReasonForDiscard.properties
=====================================
@@ -19,8 +19,8 @@
# <http://www.gnu.org/licenses/gpl-3.0.html>.
# #L%
###
-syntax.name=Observations - Dénombrement des rejets par type de banc et raison de rejet, filtrés par groupe
-syntax.description=Afficher le nombre de captures rejetées par espèce selon le type de banc et le type de rejet, filtrés par groupe
+syntax.name=Observations - Dénombrement des rejets par type de banc et raison de rejet, filtrés par groupe (en t)
+syntax.description=Afficher le nombre de captures rejetées par espèce selon le type de banc et le type de rejet, filtrés par groupe (en t)
syntax.rows=-1
syntax.columns=-1
syntax.columnsHeader=
=====================================
core/services/test/src/main/resources/fixtures/fr/ird/observe/services/service/ReportService-psObservationCatchTotalCountByGroupPerSpeciesFate.properties
=====================================
@@ -20,7 +20,7 @@
# #L%
###
syntax.name=Observations - Dénombrement des captures par type de banc et devenir, filtrés par groupe
-syntax.description=Afficher les nombres de captures par groupe d'espèce selon le type de banc et le devenir, filtré par groupe
+syntax.description=Afficher les nombres de captures selon le type de banc et le devenir, filtré par groupe
syntax.rows=-1
syntax.columns=-1
syntax.columnsHeader=
=====================================
core/services/test/src/main/resources/fixtures/fr/ird/observe/services/service/ReportService-psObservationCatchWeightByGroupPerReasonForDiscard.properties
=====================================
@@ -19,7 +19,7 @@
# <http://www.gnu.org/licenses/gpl-3.0.html>.
# #L%
###
-syntax.name=Observations - Poids des rejets par type de banc et raison de rejet, filtrés par groupe
+syntax.name=Observations - Poids des rejets par type de banc et raison de rejet, filtrés par groupe (en t)
syntax.description=Afficher le poids de captures rejetées par espèce selon le type de banc et type de rejet, filtrés par groupe
syntax.rows=-1
syntax.columns=-1
@@ -29,4 +29,4 @@ syntax.nbRequests=1
result.columns=9
result.rows=2
result.0=Espèce^Total BL^Total BO^Espèce non désirée ou protégée^Taille^Cuve pleine^Poisson abîmé ou impropre à la consommation humaine^Autre ( à préciser dans les notes )^Total
-result.1=[FAO]ALV [sc]Alopias vulpinus [fr]Renard^0.0^12.0^null^null^12.0^null^null^12
\ No newline at end of file
+result.1=[FAO]ALV [sc]Alopias vulpinus [fr]Renard^0.0^12.0^null^null^12.0^null^null^12.0
\ No newline at end of file
=====================================
core/services/test/src/main/resources/fixtures/fr/ird/observe/services/service/ReportService-psObservationCatchWeightByGroupPerSpeciesFate.properties
=====================================
@@ -19,8 +19,8 @@
# <http://www.gnu.org/licenses/gpl-3.0.html>.
# #L%
###
-syntax.name=Observations - Poids des captures par type de banc et devenir, filtrés par groupe
-syntax.description=Afficher le poids de captures par groupe d'espèce selon le type de banc et le devenir, filtrés par groupe
+syntax.name=Observations - Poids des captures par type de banc et devenir, filtrés par groupe (en t)
+syntax.description=Afficher le poids de captures selon le type de banc et le devenir, filtrés par groupe (en t)
syntax.rows=-1
syntax.columns=-1
syntax.columnsHeader=
@@ -29,4 +29,4 @@ syntax.nbRequests=1
result.columns=19
result.rows=2
result.0=Espèce^Total BL^Total BO^Ailerons seulements^Partiellement conservé (ex: ailerons de requin, poisson séché)^Autres (à préciser dans les notes)^Conservé pour raisons scientifiques^Conservé pour le marché local ou poisson séché/salé à bord^Conservé à destination de la conserverie^Utilisé en cuisine du bord^Echappe du filet (pour requin-baleine et cétacés)^Rejeté, statut non observé^Rejeté suffocant^Rejeté suffocant blessé^Sortie vivant du filet (pour requin-baleine et cétacés)^Sortie mort du filet (pour requin-baleine et cétacés)^Rejeté vivant^Rejeté mort^Total
-result.1=[FAO]ALV [sc]Alopias vulpinus [fr]Renard^0.0^12.0^null^null^null^null^null^null^null^12.0^null^null^null^null^null^null^null^12
\ No newline at end of file
+result.1=[FAO]ALV [sc]Alopias vulpinus [fr]Renard^0.0^12.0^null^null^null^null^null^null^null^12.0^null^null^null^null^null^null^null^12.0
\ No newline at end of file
=====================================
toolkit/persistence/src/main/java/org/nuiton/topia/service/migration/TopiaMigrationServiceContext.java
=====================================
@@ -279,8 +279,11 @@ public class TopiaMigrationServiceContext {
}
}
- public void saveModelVersion() {
- saveVersion(null, getModelVersion());
+ protected void saveModelVersionAndCommit() {
+ Version version = getModelVersion();
+ log.info(String.format("[ Version %s ] Saving persistence model database version and commit.", version));
+ sqlHelper.saveAndCommit(jdbcHelper, version.getVersion());
+ dbVersion = version;
}
public Optional<TopiaMigrationServiceAskUserToMigrate> getAskUserToMigrate() {
@@ -289,11 +292,7 @@ public class TopiaMigrationServiceContext {
protected void saveVersion(TopiaSqlSupport sqlSupport, Version version) {
log.info(String.format("[ Version %s ] Saving new database version.", version));
- if (sqlSupport != null) {
- sqlHelper.save(sqlSupport, version.getVersion());
- } else {
- sqlHelper.save(jdbcHelper, version.getVersion());
- }
+ sqlHelper.save(sqlSupport, version.getVersion());
dbVersion = version;
}
=====================================
toolkit/persistence/src/main/java/org/nuiton/topia/service/migration/TopiaMigrationServiceImpl.java
=====================================
@@ -91,7 +91,7 @@ public class TopiaMigrationServiceImpl implements TopiaMigrationService {
context.dropLegacyTable();
if (dbVersion.equals(modelVersion)) {
log.info("Database is up to date, but was coming from legacy migration table, fill new migration table.");
- context.saveModelVersion();
+ context.saveModelVersionAndCommit();
return;
}
}
@@ -103,7 +103,7 @@ public class TopiaMigrationServiceImpl implements TopiaMigrationService {
if (versionTableExist && dbNotVersioned) {
log.info("Database is empty, no migration needed.");
- context.saveModelVersion();
+ context.saveModelVersionAndCommit();
return;
}
@@ -113,8 +113,9 @@ public class TopiaMigrationServiceImpl implements TopiaMigrationService {
List<Version> versionsToApply = context.getResources().getVersionsAfter(dbVersion);
if (versionsToApply.isEmpty()) {
+ //TODO This case should never happen?
log.info("No version to apply, no migration needed.");
- context.saveModelVersion();
+ context.saveModelVersionAndCommit();
return;
}
=====================================
toolkit/persistence/src/main/java/org/nuiton/topia/service/migration/version/MigrationServiceSqlHelper.java
=====================================
@@ -149,9 +149,9 @@ public interface MigrationServiceSqlHelper {
return deleteTableSql() + fillVersionSql(version);
}
- default void save(JdbcHelper jdbcHelper, String version) {
+ default void saveAndCommit(JdbcHelper jdbcHelper, String version) {
try {
- jdbcHelper.runUpdate(saveTableSql(version));
+ jdbcHelper.runUpdate(saveTableSql(version) + "commit;");
} catch (Exception e) {
throw new TopiaException(String.format("Could not save version %s", version), e);
}
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/compare/20f4df02e0c3937943d6cdf7…
--
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/compare/20f4df02e0c3937943d6cdf7…
You're receiving this email because of your account on gitlab.com.
1
0
[Git][ultreiaio/ird-observe][develop] Report - correction de certain totaux (exprimé en int au lieu d'en float pour...
by Tony CHEMIT (@tchemit) 12 Dec '22
by Tony CHEMIT (@tchemit) 12 Dec '22
12 Dec '22
Tony CHEMIT pushed to branch develop at ultreiaio / ird-observe
Commits:
4c372f08 by Tony Chemit at 2022-12-12T15:00:28+01:00
Report - correction de certain totaux (exprimé en int au lieu d'en float pour les poids) + revue de certains libellés
- - - - -
5 changed files:
- core/api/dto/src/main/resources/observe-reports.properties
- core/services/test/src/main/resources/fixtures/fr/ird/observe/services/service/ReportService-psObservationCatchTotalCountByGroupPerReasonForDiscard.properties
- core/services/test/src/main/resources/fixtures/fr/ird/observe/services/service/ReportService-psObservationCatchTotalCountByGroupPerSpeciesFate.properties
- core/services/test/src/main/resources/fixtures/fr/ird/observe/services/service/ReportService-psObservationCatchWeightByGroupPerReasonForDiscard.properties
- core/services/test/src/main/resources/fixtures/fr/ird/observe/services/service/ReportService-psObservationCatchWeightByGroupPerSpeciesFate.properties
Changes:
=====================================
core/api/dto/src/main/resources/observe-reports.properties
=====================================
@@ -1151,7 +1151,7 @@ report.psObservationCatch.request.3.repeat=speciesId|column
################################################################################
report.psObservationCatchTotalCountByGroupPerSpeciesFate.modelType=PS
report.psObservationCatchTotalCountByGroupPerSpeciesFate.name=Observations - Dénombrement des captures par type de banc et devenir, filtrés par groupe
-report.psObservationCatchTotalCountByGroupPerSpeciesFate.description=Afficher les nombres de captures par groupe d'espèce selon le type de banc et le devenir, filtré par groupe
+report.psObservationCatchTotalCountByGroupPerSpeciesFate.description=Afficher les nombres de captures selon le type de banc et le devenir, filtré par groupe
report.psObservationCatchTotalCountByGroupPerSpeciesFate.variable.speciesGroup=fr.ird.observe.dto.referential.common.SpeciesGroupDto|\
Select distinct sg \
From TripImpl t \
@@ -1214,8 +1214,8 @@ report.psObservationCatchTotalCountByGroupPerSpeciesFate.operations.4=SumIntColu
## Poids des captures par groupe d'espèces
################################################################################
report.psObservationCatchWeightByGroupPerSpeciesFate.modelType=PS
-report.psObservationCatchWeightByGroupPerSpeciesFate.name=Observations - Poids des captures par type de banc et devenir, filtrés par groupe
-report.psObservationCatchWeightByGroupPerSpeciesFate.description=Afficher le poids de captures par groupe d'espèce selon le type de banc et le devenir, filtrés par groupe
+report.psObservationCatchWeightByGroupPerSpeciesFate.name=Observations - Poids des captures par type de banc et devenir, filtrés par groupe (en t)
+report.psObservationCatchWeightByGroupPerSpeciesFate.description=Afficher le poids de captures selon le type de banc et le devenir, filtrés par groupe (en t)
report.psObservationCatchWeightByGroupPerSpeciesFate.variable.speciesGroup=fr.ird.observe.dto.referential.common.SpeciesGroupDto|\
Select distinct sg \
From TripImpl t \
@@ -1272,13 +1272,13 @@ Where m.id In :tripId \
Group by s, sf \
Order By s.homeId
report.psObservationCatchWeightByGroupPerSpeciesFate.operations.2=ComputeDynamicHeader:Espèce,Total BL,Total BO|speciesFate
-report.psObservationCatchWeightByGroupPerSpeciesFate.operations.3=SumIntRow:1|3
-report.psObservationCatchWeightByGroupPerSpeciesFate.operations.4=SumIntColumn:1|1
+report.psObservationCatchWeightByGroupPerSpeciesFate.operations.3=SumRow:1|3
+report.psObservationCatchWeightByGroupPerSpeciesFate.operations.4=SumColumn:1|1
################################################################################
## Poids des captures par groupe d'espèces, type de banc et et raison de rejet
################################################################################
report.psObservationCatchWeightByGroupPerReasonForDiscard.modelType=PS
-report.psObservationCatchWeightByGroupPerReasonForDiscard.name=Observations - Poids des rejets par type de banc et raison de rejet, filtrés par groupe
+report.psObservationCatchWeightByGroupPerReasonForDiscard.name=Observations - Poids des rejets par type de banc et raison de rejet, filtrés par groupe (en t)
report.psObservationCatchWeightByGroupPerReasonForDiscard.description=Afficher le poids de captures rejetées par espèce selon le type de banc et type de rejet, filtrés par groupe
report.psObservationCatchWeightByGroupPerReasonForDiscard.variable.speciesGroup=fr.ird.observe.dto.referential.common.SpeciesGroupDto|\
Select distinct sg \
@@ -1336,14 +1336,14 @@ Where m.id In :tripId \
Group by s, sf \
Order By s.homeId
report.psObservationCatchWeightByGroupPerReasonForDiscard.operations.2=ComputeDynamicHeader:Espèce,Total BL,Total BO|reasonForDiscard
-report.psObservationCatchWeightByGroupPerReasonForDiscard.operations.3=SumIntRow:1|3
-report.psObservationCatchWeightByGroupPerReasonForDiscard.operations.4=SumIntColumn:1|1
+report.psObservationCatchWeightByGroupPerReasonForDiscard.operations.3=SumRow:1|3
+report.psObservationCatchWeightByGroupPerReasonForDiscard.operations.4=SumColumn:1|1
################################################################################
## Dénombrement des rejets par groupe d'espèces, type de banc et raison de rejet
################################################################################
report.psObservationCatchTotalCountByGroupPerReasonForDiscard.modelType=PS
-report.psObservationCatchTotalCountByGroupPerReasonForDiscard.name=Observations - Dénombrement des rejets par type de banc et raison de rejet, filtrés par groupe
-report.psObservationCatchTotalCountByGroupPerReasonForDiscard.description=Afficher le nombre de captures rejetées par espèce selon le type de banc et le type de rejet, filtrés par groupe
+report.psObservationCatchTotalCountByGroupPerReasonForDiscard.name=Observations - Dénombrement des rejets par type de banc et raison de rejet, filtrés par groupe (en t)
+report.psObservationCatchTotalCountByGroupPerReasonForDiscard.description=Afficher le nombre de captures rejetées par espèce selon le type de banc et le type de rejet, filtrés par groupe (en t)
report.psObservationCatchTotalCountByGroupPerReasonForDiscard.variable.speciesGroup=fr.ird.observe.dto.referential.common.SpeciesGroupDto|\
Select distinct sg \
From TripImpl t \
=====================================
core/services/test/src/main/resources/fixtures/fr/ird/observe/services/service/ReportService-psObservationCatchTotalCountByGroupPerReasonForDiscard.properties
=====================================
@@ -19,8 +19,8 @@
# <http://www.gnu.org/licenses/gpl-3.0.html>.
# #L%
###
-syntax.name=Observations - Dénombrement des rejets par type de banc et raison de rejet, filtrés par groupe
-syntax.description=Afficher le nombre de captures rejetées par espèce selon le type de banc et le type de rejet, filtrés par groupe
+syntax.name=Observations - Dénombrement des rejets par type de banc et raison de rejet, filtrés par groupe (en t)
+syntax.description=Afficher le nombre de captures rejetées par espèce selon le type de banc et le type de rejet, filtrés par groupe (en t)
syntax.rows=-1
syntax.columns=-1
syntax.columnsHeader=
=====================================
core/services/test/src/main/resources/fixtures/fr/ird/observe/services/service/ReportService-psObservationCatchTotalCountByGroupPerSpeciesFate.properties
=====================================
@@ -20,7 +20,7 @@
# #L%
###
syntax.name=Observations - Dénombrement des captures par type de banc et devenir, filtrés par groupe
-syntax.description=Afficher les nombres de captures par groupe d'espèce selon le type de banc et le devenir, filtré par groupe
+syntax.description=Afficher les nombres de captures selon le type de banc et le devenir, filtré par groupe
syntax.rows=-1
syntax.columns=-1
syntax.columnsHeader=
=====================================
core/services/test/src/main/resources/fixtures/fr/ird/observe/services/service/ReportService-psObservationCatchWeightByGroupPerReasonForDiscard.properties
=====================================
@@ -19,7 +19,7 @@
# <http://www.gnu.org/licenses/gpl-3.0.html>.
# #L%
###
-syntax.name=Observations - Poids des rejets par type de banc et raison de rejet, filtrés par groupe
+syntax.name=Observations - Poids des rejets par type de banc et raison de rejet, filtrés par groupe (en t)
syntax.description=Afficher le poids de captures rejetées par espèce selon le type de banc et type de rejet, filtrés par groupe
syntax.rows=-1
syntax.columns=-1
@@ -29,4 +29,4 @@ syntax.nbRequests=1
result.columns=9
result.rows=2
result.0=Espèce^Total BL^Total BO^Espèce non désirée ou protégée^Taille^Cuve pleine^Poisson abîmé ou impropre à la consommation humaine^Autre ( à préciser dans les notes )^Total
-result.1=[FAO]ALV [sc]Alopias vulpinus [fr]Renard^0.0^12.0^null^null^12.0^null^null^12
\ No newline at end of file
+result.1=[FAO]ALV [sc]Alopias vulpinus [fr]Renard^0.0^12.0^null^null^12.0^null^null^12.0
\ No newline at end of file
=====================================
core/services/test/src/main/resources/fixtures/fr/ird/observe/services/service/ReportService-psObservationCatchWeightByGroupPerSpeciesFate.properties
=====================================
@@ -19,8 +19,8 @@
# <http://www.gnu.org/licenses/gpl-3.0.html>.
# #L%
###
-syntax.name=Observations - Poids des captures par type de banc et devenir, filtrés par groupe
-syntax.description=Afficher le poids de captures par groupe d'espèce selon le type de banc et le devenir, filtrés par groupe
+syntax.name=Observations - Poids des captures par type de banc et devenir, filtrés par groupe (en t)
+syntax.description=Afficher le poids de captures selon le type de banc et le devenir, filtrés par groupe (en t)
syntax.rows=-1
syntax.columns=-1
syntax.columnsHeader=
@@ -29,4 +29,4 @@ syntax.nbRequests=1
result.columns=19
result.rows=2
result.0=Espèce^Total BL^Total BO^Ailerons seulements^Partiellement conservé (ex: ailerons de requin, poisson séché)^Autres (à préciser dans les notes)^Conservé pour raisons scientifiques^Conservé pour le marché local ou poisson séché/salé à bord^Conservé à destination de la conserverie^Utilisé en cuisine du bord^Echappe du filet (pour requin-baleine et cétacés)^Rejeté, statut non observé^Rejeté suffocant^Rejeté suffocant blessé^Sortie vivant du filet (pour requin-baleine et cétacés)^Sortie mort du filet (pour requin-baleine et cétacés)^Rejeté vivant^Rejeté mort^Total
-result.1=[FAO]ALV [sc]Alopias vulpinus [fr]Renard^0.0^12.0^null^null^null^null^null^null^null^12.0^null^null^null^null^null^null^null^12
\ No newline at end of file
+result.1=[FAO]ALV [sc]Alopias vulpinus [fr]Renard^0.0^12.0^null^null^null^null^null^null^null^12.0^null^null^null^null^null^null^null^12.0
\ No newline at end of file
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/commit/4c372f081456e2a50146b4554…
--
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/commit/4c372f081456e2a50146b4554…
You're receiving this email because of your account on gitlab.com.
1
0
[Git][ultreiaio/ird-observe] Pushed new branch feature/issue_avdth_dcp
by Tony CHEMIT (@tchemit) 11 Dec '22
by Tony CHEMIT (@tchemit) 11 Dec '22
11 Dec '22
Tony CHEMIT pushed new branch feature/issue_avdth_dcp at ultreiaio / ird-observe
--
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/tree/feature/issue_avdth_dcp
You're receiving this email because of your account on gitlab.com.
1
0
11 Dec '22
Tony CHEMIT deleted branch feature/issue_2574 at ultreiaio / ird-observe
--
You're receiving this email because of your account on gitlab.com.
1
0
[Git][ultreiaio/ird-observe] Pushed new branch feature/issue_2573
by Tony CHEMIT (@tchemit) 11 Dec '22
by Tony CHEMIT (@tchemit) 11 Dec '22
11 Dec '22
Tony CHEMIT pushed new branch feature/issue_2573 at ultreiaio / ird-observe
--
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/tree/feature/issue_2573
You're receiving this email because of your account on gitlab.com.
1
0
[Git][ultreiaio/ird-observe][develop-9.0.x] 5 commits: UI - When saving open data, only update reference once
by Tony CHEMIT (@tchemit) 11 Dec '22
by Tony CHEMIT (@tchemit) 11 Dec '22
11 Dec '22
Tony CHEMIT pushed to branch develop-9.0.x at ultreiaio / ird-observe
Commits:
da7e2c08 by Tony Chemit at 2022-12-11T20:12:32+01:00
UI - When saving open data, only update reference once
- - - - -
339a82ff by Tony Chemit at 2022-12-11T20:14:00+01:00
UI - Use now two method to fill NodeUpdater (using the same does not work for the after update since we just ask the property on dto, but we also need to know if there is a such data!)
- - - - -
3206ff59 by Tony Chemit at 2022-12-11T20:14:45+01:00
UI - Use correct property name in ps-logbook-Activity (use now catches instead of set)
- - - - -
59bb8013 by Tony Chemit at 2022-12-11T20:16:07+01:00
Service - Always add statistics in any Activity.set reference when using a such decorator
- - - - -
20f4df02 by Tony Chemit at 2022-12-11T20:41:37+01:00
Merge branch 'feature/issue_2574_tree' into develop-9.0.x
Lors de la sauvegarde d'une activité, l'arbre est replié mais surtout on perd sur ces fils les statistiques
- Closes #2574
- - - - -
16 changed files:
- client/datasource/editor/api/src/main/java/fr/ird/observe/client/datasource/editor/api/content/data/open/ContentOpenableUINavigationInitializer.java
- client/datasource/editor/api/src/main/java/fr/ird/observe/client/datasource/editor/api/content/data/open/ContentOpenableUINavigationNode.java
- client/datasource/editor/ll/src/main/java/fr/ird/observe/client/datasource/editor/ll/data/logbook/ActivityUIHandler.java
- client/datasource/editor/ll/src/main/java/fr/ird/observe/client/datasource/editor/ll/data/logbook/ActivityUISavePredicate.java
- client/datasource/editor/ll/src/main/java/fr/ird/observe/client/datasource/editor/ll/data/observation/ActivityUIHandler.java
- client/datasource/editor/ll/src/main/java/fr/ird/observe/client/datasource/editor/ll/data/observation/ActivityUISavePredicate.java
- client/datasource/editor/ps/src/main/capabilities/fr/ird/observe/client/datasource/editor/ps/data/logbook/ActivityUI.capabilities
- client/datasource/editor/ps/src/main/java/fr/ird/observe/client/datasource/editor/ps/data/logbook/ActivityUIHandler.java
- client/datasource/editor/ps/src/main/java/fr/ird/observe/client/datasource/editor/ps/data/logbook/ActivityUISavePredicate.java
- client/datasource/editor/ps/src/main/java/fr/ird/observe/client/datasource/editor/ps/data/observation/ActivityUIHandler.java
- client/datasource/editor/ps/src/main/java/fr/ird/observe/client/datasource/editor/ps/data/observation/ActivityUISavePredicate.java
- client/datasource/editor/spi/src/main/java/fr/ird/observe/client/datasource/editor/spi/content/CapabilityDescriptor.java
- client/datasource/editor/spi/src/main/java/fr/ird/observe/client/datasource/editor/spi/content/helper/ContentUINavigationCapabilityHelper.java
- core/persistence/java/src/main/java/fr/ird/observe/entities/data/ll/logbook/ActivitySpi.java
- core/persistence/java/src/main/java/fr/ird/observe/entities/data/ll/observation/ActivitySpi.java
- core/persistence/java/src/main/java/fr/ird/observe/entities/data/ps/observation/ActivitySpi.java
Changes:
=====================================
client/datasource/editor/api/src/main/java/fr/ird/observe/client/datasource/editor/api/content/data/open/ContentOpenableUINavigationInitializer.java
=====================================
@@ -135,9 +135,4 @@ public final class ContentOpenableUINavigationInitializer extends NavigationInit
}
getEditNode().setId(id);
}
-
- public DataDtoReference updateReference(ContentOpenableUINavigationContext context, String id) {
- this.reference = context.getReference(getReference().getReferenceType(), id, decorator);
- return getReference();
- }
}
=====================================
client/datasource/editor/api/src/main/java/fr/ird/observe/client/datasource/editor/api/content/data/open/ContentOpenableUINavigationNode.java
=====================================
@@ -79,13 +79,13 @@ public abstract class ContentOpenableUINavigationNode extends NavigationNode {
boolean notPersisted = getInitializer().isNotPersisted();
NavigationNode parent = getParent();
int oldPosition = parent.getIndex(this);
- DataDtoReference reference = getInitializer().updateReference(getContext(), id);
if (notPersisted) {
getInitializer().updateEditNodeId(id);
getInitializer().updateSelectNodeId(id);
}
// reload node data
reloadNodeData();
+ DataDtoReference reference = getInitializer().getReference();
if (notPersisted) {
dirty();
=====================================
client/datasource/editor/ll/src/main/java/fr/ird/observe/client/datasource/editor/ll/data/logbook/ActivityUIHandler.java
=====================================
@@ -29,6 +29,7 @@ import fr.ird.observe.client.datasource.editor.api.content.data.open.ContentOpen
import fr.ird.observe.client.datasource.editor.api.content.data.open.actions.SaveContentOpenableUIAdapter;
import fr.ird.observe.client.datasource.editor.api.navigation.NavigationTree;
import fr.ird.observe.dto.data.ll.logbook.ActivityDto;
+import fr.ird.observe.dto.data.ll.logbook.ActivityReference;
/**
* Created on 8/29/14.
@@ -46,7 +47,9 @@ class ActivityUIHandler extends GeneratedActivityUIHandler {
.then(new SaveContentOpenableUIAdapter<>(ActivityDto::isSetEnabled, ActivityUI::getAddSet) {
@Override
protected void afterNodeUpdated(DataSourceEditor dataSourceEditor, ActivityUI ui, NavigationTree tree, ContentOpenableUINavigationNode node, boolean notPersisted, ActivityDto bean) {
- ActivityUINavigationCapability.fillBuilder(NodeChildrenUpdate.afterUpdate(node, bean)).update();
+ ActivityReference reference = (ActivityReference) node.getReference();
+ bean.setStatistics(reference.statistics());
+ ActivityUINavigationCapability.fillAfterBuilder(NodeChildrenUpdate.afterUpdate(node, bean)).update();
super.afterNodeUpdated(dataSourceEditor, ui, tree, node, notPersisted, bean);
}
})
=====================================
client/datasource/editor/ll/src/main/java/fr/ird/observe/client/datasource/editor/ll/data/logbook/ActivityUISavePredicate.java
=====================================
@@ -51,7 +51,7 @@ public class ActivityUISavePredicate extends SavePredicateSupport<ActivityUIMode
}
public List<String> generateText(ActivityDto originalBean, ActivityDto editBean) {
- return ActivityUINavigationCapability.fillBuilder(NodeChildrenUpdate.beforeUpdate(states.source(), originalBean, editBean))
+ return ActivityUINavigationCapability.fillBeforeBuilder(NodeChildrenUpdate.beforeUpdate(states.source(), originalBean, editBean))
.getMessagesForNodesToRemove();
}
}
=====================================
client/datasource/editor/ll/src/main/java/fr/ird/observe/client/datasource/editor/ll/data/observation/ActivityUIHandler.java
=====================================
@@ -29,6 +29,7 @@ import fr.ird.observe.client.datasource.editor.api.content.data.open.ContentOpen
import fr.ird.observe.client.datasource.editor.api.content.data.open.actions.SaveContentOpenableUIAdapter;
import fr.ird.observe.client.datasource.editor.api.navigation.NavigationTree;
import fr.ird.observe.dto.data.ll.observation.ActivityDto;
+import fr.ird.observe.dto.data.ll.observation.ActivityReference;
/**
* Created on 8/29/14.
@@ -47,7 +48,9 @@ class ActivityUIHandler extends GeneratedActivityUIHandler {
.then(new SaveContentOpenableUIAdapter<>(ActivityDto::isSetEnabled, ActivityUI::getAddSet) {
@Override
protected void afterNodeUpdated(DataSourceEditor dataSourceEditor, ActivityUI ui, NavigationTree tree, ContentOpenableUINavigationNode node, boolean notPersisted, ActivityDto bean) {
- ActivityUINavigationCapability.fillBuilder(NodeChildrenUpdate.afterUpdate(node, bean)).update();
+ ActivityReference reference = (ActivityReference) node.getReference();
+ bean.setStatistics(reference.statistics());
+ ActivityUINavigationCapability.fillAfterBuilder(NodeChildrenUpdate.afterUpdate(node, bean)).update();
super.afterNodeUpdated(dataSourceEditor, ui, tree, node, notPersisted, bean);
}
})
=====================================
client/datasource/editor/ll/src/main/java/fr/ird/observe/client/datasource/editor/ll/data/observation/ActivityUISavePredicate.java
=====================================
@@ -51,7 +51,7 @@ public class ActivityUISavePredicate extends SavePredicateSupport<ActivityUIMode
}
public List<String> generateText(ActivityDto originalBean, ActivityDto editBean) {
- return ActivityUINavigationCapability.fillBuilder(NodeChildrenUpdate.beforeUpdate(states.source(), originalBean, editBean)).getMessagesForNodesToRemove();
+ return ActivityUINavigationCapability.fillBeforeBuilder(NodeChildrenUpdate.beforeUpdate(states.source(), originalBean, editBean)).getMessagesForNodesToRemove();
}
}
=====================================
client/datasource/editor/ps/src/main/capabilities/fr/ird/observe/client/datasource/editor/ps/data/logbook/ActivityUI.capabilities
=====================================
@@ -1,2 +1,2 @@
-0_setEnabled??=fr.ird.observe.client.datasource.editor.ps.data.logbook.ActivityCatchUINavigationNode
+0_catchesEnabled??=fr.ird.observe.client.datasource.editor.ps.data.logbook.ActivityCatchUINavigationNode
1*=fr.ird.observe.client.datasource.editor.ps.data.logbook.FloatingObjectUINavigationNode
\ No newline at end of file
=====================================
client/datasource/editor/ps/src/main/java/fr/ird/observe/client/datasource/editor/ps/data/logbook/ActivityUIHandler.java
=====================================
@@ -30,6 +30,7 @@ import fr.ird.observe.client.datasource.editor.api.content.data.open.actions.Sav
import fr.ird.observe.client.datasource.editor.api.navigation.NavigationTree;
import fr.ird.observe.client.datasource.editor.ps.ObservePsKeyStrokes;
import fr.ird.observe.dto.data.ps.logbook.ActivityDto;
+import fr.ird.observe.dto.data.ps.logbook.ActivityReference;
import fr.ird.observe.dto.referential.ps.common.VesselActivityReference;
import io.ultreia.java4all.i18n.I18n;
@@ -57,7 +58,9 @@ class ActivityUIHandler extends GeneratedActivityUIHandler {
@Override
protected void afterNodeUpdated(DataSourceEditor dataSourceEditor, ActivityUI ui, NavigationTree tree, ContentOpenableUINavigationNode node, boolean notPersisted, ActivityDto bean) {
- ActivityUINavigationCapability.fillBuilder(NodeChildrenUpdate.afterUpdate(node, bean)).update();
+ ActivityReference reference = (ActivityReference) node.getReference();
+ bean.setStatistics(reference.statistics());
+ ActivityUINavigationCapability.fillAfterBuilder(NodeChildrenUpdate.afterUpdate(node, bean)).update();
super.afterNodeUpdated(dataSourceEditor, ui, tree, node, notPersisted, bean);
}
})
=====================================
client/datasource/editor/ps/src/main/java/fr/ird/observe/client/datasource/editor/ps/data/logbook/ActivityUISavePredicate.java
=====================================
@@ -52,7 +52,7 @@ public class ActivityUISavePredicate extends SavePredicateSupport<ActivityUIMode
}
public List<String> generateText(ActivityDto originalBean, ActivityDto editBean) {
- return ActivityUINavigationCapability.fillBuilder(NodeChildrenUpdate.beforeUpdate(states.source(), originalBean, editBean))
+ return ActivityUINavigationCapability.fillBeforeBuilder(NodeChildrenUpdate.beforeUpdate(states.source(), originalBean, editBean))
.getMessagesForNodesToRemove();
}
}
=====================================
client/datasource/editor/ps/src/main/java/fr/ird/observe/client/datasource/editor/ps/data/observation/ActivityUIHandler.java
=====================================
@@ -29,6 +29,7 @@ import fr.ird.observe.client.datasource.editor.api.content.data.open.actions.Sav
import fr.ird.observe.client.datasource.editor.api.navigation.NavigationTree;
import fr.ird.observe.dto.ProtectedIdsPs;
import fr.ird.observe.dto.data.ps.observation.ActivityDto;
+import fr.ird.observe.dto.data.ps.observation.ActivityReference;
import fr.ird.observe.dto.referential.ps.common.VesselActivityReference;
import javax.swing.JLabel;
@@ -83,7 +84,9 @@ public class ActivityUIHandler extends GeneratedActivityUIHandler {
.then(new SaveContentOpenableUIAdapter<>(ActivityDto::isStrongSetOperation, ActivityUI::getAddSet) {
@Override
protected void afterNodeUpdated(DataSourceEditor dataSourceEditor, ActivityUI ui, NavigationTree tree, ContentOpenableUINavigationNode node, boolean notPersisted, ActivityDto bean) {
- ActivityUINavigationCapability.fillBuilder(NodeChildrenUpdate.afterUpdate(node, bean)).update();
+ ActivityReference reference = (ActivityReference) node.getReference();
+ bean.setStatistics(reference.statistics());
+ ActivityUINavigationCapability.fillAfterBuilder(NodeChildrenUpdate.afterUpdate(node, bean)).update();
super.afterNodeUpdated(dataSourceEditor, ui, tree, node, notPersisted, bean);
}
})
=====================================
client/datasource/editor/ps/src/main/java/fr/ird/observe/client/datasource/editor/ps/data/observation/ActivityUISavePredicate.java
=====================================
@@ -52,7 +52,7 @@ public class ActivityUISavePredicate extends SavePredicateSupport<ActivityUIMode
}
public List<String> generateText(ActivityDto originalBean, ActivityDto editBean) {
- return ActivityUINavigationCapability.fillBuilder(NodeChildrenUpdate.beforeUpdate(states.source(), originalBean, editBean))
+ return ActivityUINavigationCapability.fillBeforeBuilder(NodeChildrenUpdate.beforeUpdate(states.source(), originalBean, editBean))
.getMessagesForNodesToRemove();
}
}
=====================================
client/datasource/editor/spi/src/main/java/fr/ird/observe/client/datasource/editor/spi/content/CapabilityDescriptor.java
=====================================
@@ -367,7 +367,7 @@ public class CapabilityDescriptor {
}
- public String generateCapabilityUpdateNodeMethod(Class<?> mainDtoType, Set<String> availableProperties) {
+ public String generateCapabilityOnBeanToUpdateUpdateNodeMethod(Class<?> mainDtoType, Set<String> availableProperties) {
switch (capacityNodeType) {
case STATIC_WITH_PREDICATE: {
String beanPropertyName = getOptionalPredicate().orElseThrow();
@@ -384,6 +384,23 @@ public class CapabilityDescriptor {
return null;
}
}
+ public String generateCapabilityOnUpdatedBeanNodeUpdateNodeMethod(Class<?> mainDtoType, Set<String> availableProperties) {
+ switch (capacityNodeType) {
+ case STATIC_WITH_PREDICATE: {
+ String beanPropertyName = getOptionalPredicate().orElseThrow();
+ return String.format(" .onPredicate(d-> d.is%1$s() && d.get%2$sStatValue() > 0, %3$s.class)\n", beanPropertyName, Strings.removeEnd(beanPropertyName,"Enabled"), getNodeTypeSimpleName());
+ }
+ case REFERENCE_LIST:
+ case REFERENCE: {
+ String beanPropertyName = methodName.replace("UINavigationNode", "Enabled");
+ if (availableProperties.contains(Introspector.decapitalize(beanPropertyName))) {
+ return String.format(" .onPredicate(d-> d.is%1$s() && d.get%2$sStatValue() > 0, %3$s.class)\n", beanPropertyName, Strings.removeEnd(beanPropertyName,"Enabled"), getNodeTypeSimpleName());
+ }
+ }
+ default:
+ return null;
+ }
+ }
protected String getOptionalReferenceTypePackage() {
return optionalReferenceType.getPackage().getName();
=====================================
client/datasource/editor/spi/src/main/java/fr/ird/observe/client/datasource/editor/spi/content/helper/ContentUINavigationCapabilityHelper.java
=====================================
@@ -55,8 +55,14 @@ public class ContentUINavigationCapabilityHelper extends ContentUIHelperSupport
" super(node);\n" +
" }\n\n" +
"}\n";
- public static final String UPDATE_NODE_METHOD = "" +
- " public static NodeChildrenUpdate fillBuilder(NodeChildrenUpdate.BuilderStepAddPredicate<%1$s> builder) {\n" +
+ public static final String ON_BEAN_TO_UPDATE_NODE_METHOD = "" +
+ " public static NodeChildrenUpdate fillBeforeBuilder(NodeChildrenUpdate.BuilderOnBeanToUpdate<%1$s> builder) {\n" +
+ " return builder\n" +
+ "%2$s" +
+ " .build();\n" +
+ " }\n\n";
+ public static final String ON_UPDATED_BEAN_NODE_METHOD = "" +
+ " public static NodeChildrenUpdate fillAfterBuilder(NodeChildrenUpdate.BuilderOnUpdatedBean<%1$s> builder) {\n" +
" return builder\n" +
"%2$s" +
" .build();\n" +
@@ -139,7 +145,32 @@ public class ContentUINavigationCapabilityHelper extends ContentUIHelperSupport
return String.format(template, generator.cleanClassName, createChildrenMethodBuilder);
}
- public static String generateNodeUpdaterMethod(GenerateJavaFileSupport generator, List<String> imports) {
+ public static String generateOnBeanToUpdateNodeUpdaterMethod(GenerateJavaFileSupport generator, List<String> imports) {
+ if (generator.capabilitiesDescriptor == null) {
+ return "";
+ }
+ Class<? extends BusinessDto> dtoType = generator.scopeBuilder.dtoType;
+ StringBuilder createChildrenMethodBuilder = new StringBuilder();
+ JavaBeanDefinition javaBeanDefinition = JavaBeanDefinitionStore.getDefinition(dtoType).orElseThrow();
+ Set<String> availableProperties = javaBeanDefinition.readProperties().map(JavaBeanPropertyDefinition::propertyName).collect(Collectors.toSet());
+ boolean used = false;
+ for (CapabilityDescriptor capabilityDescriptor : generator.capabilitiesDescriptor) {
+ String addNodeMethod = capabilityDescriptor.generateCapabilityOnBeanToUpdateUpdateNodeMethod(dtoType, availableProperties);
+ if (addNodeMethod != null) {
+ used = true;
+ createChildrenMethodBuilder.append(addNodeMethod);
+ }
+ }
+ if (used) {
+ imports.add(NodeChildrenUpdate.class.getName());
+ imports.add(dtoType.getName());
+ return String.format(ON_BEAN_TO_UPDATE_NODE_METHOD, dtoType.getSimpleName(), createChildrenMethodBuilder);
+
+ }
+ return "";
+ }
+
+ public static String generateOnUpdatedBeanNodeUpdaterMethod(GenerateJavaFileSupport generator, List<String> imports) {
if (generator.capabilitiesDescriptor == null) {
return "";
}
@@ -149,7 +180,7 @@ public class ContentUINavigationCapabilityHelper extends ContentUIHelperSupport
Set<String> availableProperties = javaBeanDefinition.readProperties().map(JavaBeanPropertyDefinition::propertyName).collect(Collectors.toSet());
boolean used = false;
for (CapabilityDescriptor capabilityDescriptor : generator.capabilitiesDescriptor) {
- String addNodeMethod = capabilityDescriptor.generateCapabilityUpdateNodeMethod(dtoType, availableProperties);
+ String addNodeMethod = capabilityDescriptor.generateCapabilityOnUpdatedBeanNodeUpdateNodeMethod(dtoType, availableProperties);
if (addNodeMethod != null) {
used = true;
createChildrenMethodBuilder.append(addNodeMethod);
@@ -158,7 +189,7 @@ public class ContentUINavigationCapabilityHelper extends ContentUIHelperSupport
if (used) {
imports.add(NodeChildrenUpdate.class.getName());
imports.add(dtoType.getName());
- return String.format(UPDATE_NODE_METHOD, dtoType.getSimpleName(), createChildrenMethodBuilder);
+ return String.format(ON_UPDATED_BEAN_NODE_METHOD, dtoType.getSimpleName(), createChildrenMethodBuilder);
}
return "";
@@ -214,7 +245,7 @@ public class ContentUINavigationCapabilityHelper extends ContentUIHelperSupport
}
public String generateNodeUpdaterMethod(List<String> imports) {
- return generateNodeUpdaterMethod(generator, imports);
+ return generateOnBeanToUpdateNodeUpdaterMethod(generator, imports) + generateOnUpdatedBeanNodeUpdaterMethod(generator, imports);
}
public String generateGetModel() {
=====================================
core/persistence/java/src/main/java/fr/ird/observe/entities/data/ll/logbook/ActivitySpi.java
=====================================
@@ -33,6 +33,7 @@ import fr.ird.observe.dto.referential.ReferentialLocale;
import fr.ird.observe.entities.data.ll.common.Trip;
import fr.ird.observe.entities.referential.common.DataQuality;
import fr.ird.observe.entities.referential.common.Species;
+import fr.ird.observe.spi.decoration.DecoratorService;
import fr.ird.observe.spi.service.ServiceContext;
import io.ultreia.java4all.util.Dates;
import org.apache.logging.log4j.LogManager;
@@ -40,7 +41,6 @@ import org.apache.logging.log4j.Logger;
import java.util.Calendar;
import java.util.Date;
-import java.util.function.BiConsumer;
import java.util.stream.Collectors;
/**
@@ -68,6 +68,15 @@ public class ActivitySpi extends GeneratedActivitySpi {
}
}
+ @Override
+ public ActivityReference toReference(ReferentialLocale referentialLocale, Activity entity, String classifier) {
+ ActivityReference reference = super.toReference(referentialLocale, entity, classifier);
+ if (entity != null && DecoratorService.WITH_STATS_CLASSIFIER.equals(classifier) && reference.getSet() != null) {
+ entity.getSet().buildStatistics(reference.getSet());
+ }
+ return reference;
+ }
+
@Override
public Form<ActivityDto> preCreate(ServiceContext context, Trip parent, Activity preCreated) {
Activity lastActivity = Iterables.getLast(parent.getActivityLogbook(), null);
@@ -102,13 +111,4 @@ public class ActivitySpi extends GeneratedActivitySpi {
}
super.onSave(context, parent, entity, dto, needCopy);
}
-
- @Override
- protected BiConsumer<Activity, ActivityReference> getChildrenExtraConsumer(Trip parent) {
- return (e, r) -> {
- if (r.getSet() != null) {
- e.getSet().buildStatistics(r.getSet());
- }
- };
- }
}
=====================================
core/persistence/java/src/main/java/fr/ird/observe/entities/data/ll/observation/ActivitySpi.java
=====================================
@@ -26,14 +26,15 @@ import com.google.common.collect.Iterables;
import fr.ird.observe.dto.data.ll.observation.ActivityDto;
import fr.ird.observe.dto.data.ll.observation.ActivityReference;
import fr.ird.observe.dto.form.Form;
+import fr.ird.observe.dto.referential.ReferentialLocale;
import fr.ird.observe.entities.data.ll.common.Trip;
+import fr.ird.observe.spi.decoration.DecoratorService;
import fr.ird.observe.spi.service.ServiceContext;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import java.util.Calendar;
import java.util.Date;
-import java.util.function.BiConsumer;
/**
* Created on 10/05/2021.
@@ -44,6 +45,15 @@ import java.util.function.BiConsumer;
public class ActivitySpi extends GeneratedActivitySpi {
private static final Logger log = LogManager.getLogger(ActivitySpi.class);
+ @Override
+ public ActivityReference toReference(ReferentialLocale referentialLocale, Activity entity, String classifier) {
+ ActivityReference reference = super.toReference(referentialLocale, entity, classifier);
+ if (entity != null && DecoratorService.WITH_STATS_CLASSIFIER.equals(classifier) && reference.getSet() != null) {
+ entity.getSet().buildStatistics(reference.getSet());
+ }
+ return reference;
+ }
+
@Override
public Form<ActivityDto> preCreate(ServiceContext context, Trip parent, Activity preCreated) {
Activity lastActivity = Iterables.getLast(parent.getActivityObs(), null);
@@ -76,12 +86,4 @@ public class ActivitySpi extends GeneratedActivitySpi {
super.onSave(context, parent, entity, dto, needCopy);
}
- @Override
- protected BiConsumer<Activity, ActivityReference> getChildrenExtraConsumer(Trip parent) {
- return (e, r) -> {
- if (r.getSet() != null) {
- e.getSet().buildStatistics(r.getSet());
- }
- };
- }
}
=====================================
core/persistence/java/src/main/java/fr/ird/observe/entities/data/ps/observation/ActivitySpi.java
=====================================
@@ -30,6 +30,7 @@ import fr.ird.observe.dto.referential.ReferentialLocale;
import fr.ird.observe.dto.referential.common.SpeciesReference;
import fr.ird.observe.entities.referential.common.FpaZone;
import fr.ird.observe.entities.referential.common.Species;
+import fr.ird.observe.spi.decoration.DecoratorService;
import fr.ird.observe.spi.service.ServiceContext;
import io.ultreia.java4all.util.Dates;
import org.apache.logging.log4j.LogManager;
@@ -67,6 +68,9 @@ public class ActivitySpi extends GeneratedActivitySpi {
if (entity != null && entity.isFloatingObjectNotEmpty()) {
reference.setFloatingObject(FloatingObject.SPI.toReferenceSet(referentialLocale, entity.getFloatingObject(), new Date(), classifier).toList());
}
+ if (entity != null && DecoratorService.WITH_STATS_CLASSIFIER.equals(classifier) && reference.getSet() != null) {
+ entity.getSet().buildStatistics(reference.getSet());
+ }
return reference;
}
@@ -111,9 +115,9 @@ public class ActivitySpi extends GeneratedActivitySpi {
protected BiConsumer<Activity, ActivityReference> getChildrenExtraConsumer(Route parent) {
return (entity, reference) -> {
reference.setDate(parent.getDate());
- if (reference.getSet() != null) {
- entity.getSet().buildStatistics(reference.getSet());
- }
+// if (reference.getSet() != null) {
+// entity.getSet().buildStatistics(reference.getSet());
+// }
};
}
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/compare/a9c52d35095eb4ba4b8c956c…
--
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/compare/a9c52d35095eb4ba4b8c956c…
You're receiving this email because of your account on gitlab.com.
1
0
[Git][ultreiaio/ird-observe][develop] 5 commits: UI - When saving open data, only update reference once
by Tony CHEMIT (@tchemit) 11 Dec '22
by Tony CHEMIT (@tchemit) 11 Dec '22
11 Dec '22
Tony CHEMIT pushed to branch develop at ultreiaio / ird-observe
Commits:
5b30b91c by Tony Chemit at 2022-12-11T20:43:15+01:00
UI - When saving open data, only update reference once
- - - - -
181a2fda by Tony Chemit at 2022-12-11T20:43:16+01:00
UI - Use now two method to fill NodeUpdater (using the same does not work for the after update since we just ask the property on dto, but we also need to know if there is a such data!)
- - - - -
b7d77097 by Tony Chemit at 2022-12-11T20:43:17+01:00
UI - Use correct property name in ps-logbook-Activity (use now catches instead of set)
- - - - -
8a2124ce by Tony Chemit at 2022-12-11T20:43:17+01:00
Service - Always add statistics in any Activity.set reference when using a such decorator
- - - - -
c6bcf240 by Tony Chemit at 2022-12-11T20:43:35+01:00
Merge branch 'feature/issue_2574_tree' into develop
Lors de la sauvegarde d'une activité, l'arbre est replié mais surtout on perd sur ces fils les statistiques
- Closes #2574
- - - - -
16 changed files:
- client/datasource/editor/api/src/main/java/fr/ird/observe/client/datasource/editor/api/content/data/open/ContentOpenableUINavigationInitializer.java
- client/datasource/editor/api/src/main/java/fr/ird/observe/client/datasource/editor/api/content/data/open/ContentOpenableUINavigationNode.java
- client/datasource/editor/ll/src/main/java/fr/ird/observe/client/datasource/editor/ll/data/logbook/ActivityUIHandler.java
- client/datasource/editor/ll/src/main/java/fr/ird/observe/client/datasource/editor/ll/data/logbook/ActivityUISavePredicate.java
- client/datasource/editor/ll/src/main/java/fr/ird/observe/client/datasource/editor/ll/data/observation/ActivityUIHandler.java
- client/datasource/editor/ll/src/main/java/fr/ird/observe/client/datasource/editor/ll/data/observation/ActivityUISavePredicate.java
- client/datasource/editor/ps/src/main/capabilities/fr/ird/observe/client/datasource/editor/ps/data/logbook/ActivityUI.capabilities
- client/datasource/editor/ps/src/main/java/fr/ird/observe/client/datasource/editor/ps/data/logbook/ActivityUIHandler.java
- client/datasource/editor/ps/src/main/java/fr/ird/observe/client/datasource/editor/ps/data/logbook/ActivityUISavePredicate.java
- client/datasource/editor/ps/src/main/java/fr/ird/observe/client/datasource/editor/ps/data/observation/ActivityUIHandler.java
- client/datasource/editor/ps/src/main/java/fr/ird/observe/client/datasource/editor/ps/data/observation/ActivityUISavePredicate.java
- client/datasource/editor/spi/src/main/java/fr/ird/observe/client/datasource/editor/spi/content/CapabilityDescriptor.java
- client/datasource/editor/spi/src/main/java/fr/ird/observe/client/datasource/editor/spi/content/helper/ContentUINavigationCapabilityHelper.java
- core/persistence/java/src/main/java/fr/ird/observe/entities/data/ll/logbook/ActivitySpi.java
- core/persistence/java/src/main/java/fr/ird/observe/entities/data/ll/observation/ActivitySpi.java
- core/persistence/java/src/main/java/fr/ird/observe/entities/data/ps/observation/ActivitySpi.java
Changes:
=====================================
client/datasource/editor/api/src/main/java/fr/ird/observe/client/datasource/editor/api/content/data/open/ContentOpenableUINavigationInitializer.java
=====================================
@@ -135,9 +135,4 @@ public final class ContentOpenableUINavigationInitializer extends NavigationInit
}
getEditNode().setId(id);
}
-
- public DataDtoReference updateReference(ContentOpenableUINavigationContext context, String id) {
- this.reference = context.getReference(getReference().getReferenceType(), id, decorator);
- return getReference();
- }
}
=====================================
client/datasource/editor/api/src/main/java/fr/ird/observe/client/datasource/editor/api/content/data/open/ContentOpenableUINavigationNode.java
=====================================
@@ -79,13 +79,13 @@ public abstract class ContentOpenableUINavigationNode extends NavigationNode {
boolean notPersisted = getInitializer().isNotPersisted();
NavigationNode parent = getParent();
int oldPosition = parent.getIndex(this);
- DataDtoReference reference = getInitializer().updateReference(getContext(), id);
if (notPersisted) {
getInitializer().updateEditNodeId(id);
getInitializer().updateSelectNodeId(id);
}
// reload node data
reloadNodeData();
+ DataDtoReference reference = getInitializer().getReference();
if (notPersisted) {
dirty();
=====================================
client/datasource/editor/ll/src/main/java/fr/ird/observe/client/datasource/editor/ll/data/logbook/ActivityUIHandler.java
=====================================
@@ -29,6 +29,7 @@ import fr.ird.observe.client.datasource.editor.api.content.data.open.ContentOpen
import fr.ird.observe.client.datasource.editor.api.content.data.open.actions.SaveContentOpenableUIAdapter;
import fr.ird.observe.client.datasource.editor.api.navigation.NavigationTree;
import fr.ird.observe.dto.data.ll.logbook.ActivityDto;
+import fr.ird.observe.dto.data.ll.logbook.ActivityReference;
/**
* Created on 8/29/14.
@@ -46,7 +47,9 @@ class ActivityUIHandler extends GeneratedActivityUIHandler {
.then(new SaveContentOpenableUIAdapter<>(ActivityDto::isSetEnabled, ActivityUI::getAddSet) {
@Override
protected void afterNodeUpdated(DataSourceEditor dataSourceEditor, ActivityUI ui, NavigationTree tree, ContentOpenableUINavigationNode node, boolean notPersisted, ActivityDto bean) {
- ActivityUINavigationCapability.fillBuilder(NodeChildrenUpdate.afterUpdate(node, bean)).update();
+ ActivityReference reference = (ActivityReference) node.getReference();
+ bean.setStatistics(reference.statistics());
+ ActivityUINavigationCapability.fillAfterBuilder(NodeChildrenUpdate.afterUpdate(node, bean)).update();
super.afterNodeUpdated(dataSourceEditor, ui, tree, node, notPersisted, bean);
}
})
=====================================
client/datasource/editor/ll/src/main/java/fr/ird/observe/client/datasource/editor/ll/data/logbook/ActivityUISavePredicate.java
=====================================
@@ -51,7 +51,7 @@ public class ActivityUISavePredicate extends SavePredicateSupport<ActivityUIMode
}
public List<String> generateText(ActivityDto originalBean, ActivityDto editBean) {
- return ActivityUINavigationCapability.fillBuilder(NodeChildrenUpdate.beforeUpdate(states.source(), originalBean, editBean))
+ return ActivityUINavigationCapability.fillBeforeBuilder(NodeChildrenUpdate.beforeUpdate(states.source(), originalBean, editBean))
.getMessagesForNodesToRemove();
}
}
=====================================
client/datasource/editor/ll/src/main/java/fr/ird/observe/client/datasource/editor/ll/data/observation/ActivityUIHandler.java
=====================================
@@ -29,6 +29,7 @@ import fr.ird.observe.client.datasource.editor.api.content.data.open.ContentOpen
import fr.ird.observe.client.datasource.editor.api.content.data.open.actions.SaveContentOpenableUIAdapter;
import fr.ird.observe.client.datasource.editor.api.navigation.NavigationTree;
import fr.ird.observe.dto.data.ll.observation.ActivityDto;
+import fr.ird.observe.dto.data.ll.observation.ActivityReference;
/**
* Created on 8/29/14.
@@ -47,7 +48,9 @@ class ActivityUIHandler extends GeneratedActivityUIHandler {
.then(new SaveContentOpenableUIAdapter<>(ActivityDto::isSetEnabled, ActivityUI::getAddSet) {
@Override
protected void afterNodeUpdated(DataSourceEditor dataSourceEditor, ActivityUI ui, NavigationTree tree, ContentOpenableUINavigationNode node, boolean notPersisted, ActivityDto bean) {
- ActivityUINavigationCapability.fillBuilder(NodeChildrenUpdate.afterUpdate(node, bean)).update();
+ ActivityReference reference = (ActivityReference) node.getReference();
+ bean.setStatistics(reference.statistics());
+ ActivityUINavigationCapability.fillAfterBuilder(NodeChildrenUpdate.afterUpdate(node, bean)).update();
super.afterNodeUpdated(dataSourceEditor, ui, tree, node, notPersisted, bean);
}
})
=====================================
client/datasource/editor/ll/src/main/java/fr/ird/observe/client/datasource/editor/ll/data/observation/ActivityUISavePredicate.java
=====================================
@@ -51,7 +51,7 @@ public class ActivityUISavePredicate extends SavePredicateSupport<ActivityUIMode
}
public List<String> generateText(ActivityDto originalBean, ActivityDto editBean) {
- return ActivityUINavigationCapability.fillBuilder(NodeChildrenUpdate.beforeUpdate(states.source(), originalBean, editBean)).getMessagesForNodesToRemove();
+ return ActivityUINavigationCapability.fillBeforeBuilder(NodeChildrenUpdate.beforeUpdate(states.source(), originalBean, editBean)).getMessagesForNodesToRemove();
}
}
=====================================
client/datasource/editor/ps/src/main/capabilities/fr/ird/observe/client/datasource/editor/ps/data/logbook/ActivityUI.capabilities
=====================================
@@ -1,2 +1,2 @@
-0_setEnabled??=fr.ird.observe.client.datasource.editor.ps.data.logbook.ActivityCatchUINavigationNode
+0_catchesEnabled??=fr.ird.observe.client.datasource.editor.ps.data.logbook.ActivityCatchUINavigationNode
1*=fr.ird.observe.client.datasource.editor.ps.data.logbook.FloatingObjectUINavigationNode
\ No newline at end of file
=====================================
client/datasource/editor/ps/src/main/java/fr/ird/observe/client/datasource/editor/ps/data/logbook/ActivityUIHandler.java
=====================================
@@ -30,6 +30,7 @@ import fr.ird.observe.client.datasource.editor.api.content.data.open.actions.Sav
import fr.ird.observe.client.datasource.editor.api.navigation.NavigationTree;
import fr.ird.observe.client.datasource.editor.ps.ObservePsKeyStrokes;
import fr.ird.observe.dto.data.ps.logbook.ActivityDto;
+import fr.ird.observe.dto.data.ps.logbook.ActivityReference;
import fr.ird.observe.dto.referential.ps.common.VesselActivityReference;
import io.ultreia.java4all.i18n.I18n;
@@ -57,7 +58,9 @@ class ActivityUIHandler extends GeneratedActivityUIHandler {
@Override
protected void afterNodeUpdated(DataSourceEditor dataSourceEditor, ActivityUI ui, NavigationTree tree, ContentOpenableUINavigationNode node, boolean notPersisted, ActivityDto bean) {
- ActivityUINavigationCapability.fillBuilder(NodeChildrenUpdate.afterUpdate(node, bean)).update();
+ ActivityReference reference = (ActivityReference) node.getReference();
+ bean.setStatistics(reference.statistics());
+ ActivityUINavigationCapability.fillAfterBuilder(NodeChildrenUpdate.afterUpdate(node, bean)).update();
super.afterNodeUpdated(dataSourceEditor, ui, tree, node, notPersisted, bean);
}
})
=====================================
client/datasource/editor/ps/src/main/java/fr/ird/observe/client/datasource/editor/ps/data/logbook/ActivityUISavePredicate.java
=====================================
@@ -52,7 +52,7 @@ public class ActivityUISavePredicate extends SavePredicateSupport<ActivityUIMode
}
public List<String> generateText(ActivityDto originalBean, ActivityDto editBean) {
- return ActivityUINavigationCapability.fillBuilder(NodeChildrenUpdate.beforeUpdate(states.source(), originalBean, editBean))
+ return ActivityUINavigationCapability.fillBeforeBuilder(NodeChildrenUpdate.beforeUpdate(states.source(), originalBean, editBean))
.getMessagesForNodesToRemove();
}
}
=====================================
client/datasource/editor/ps/src/main/java/fr/ird/observe/client/datasource/editor/ps/data/observation/ActivityUIHandler.java
=====================================
@@ -29,6 +29,7 @@ import fr.ird.observe.client.datasource.editor.api.content.data.open.actions.Sav
import fr.ird.observe.client.datasource.editor.api.navigation.NavigationTree;
import fr.ird.observe.dto.ProtectedIdsPs;
import fr.ird.observe.dto.data.ps.observation.ActivityDto;
+import fr.ird.observe.dto.data.ps.observation.ActivityReference;
import fr.ird.observe.dto.referential.ps.common.VesselActivityReference;
import javax.swing.JLabel;
@@ -83,7 +84,9 @@ public class ActivityUIHandler extends GeneratedActivityUIHandler {
.then(new SaveContentOpenableUIAdapter<>(ActivityDto::isStrongSetOperation, ActivityUI::getAddSet) {
@Override
protected void afterNodeUpdated(DataSourceEditor dataSourceEditor, ActivityUI ui, NavigationTree tree, ContentOpenableUINavigationNode node, boolean notPersisted, ActivityDto bean) {
- ActivityUINavigationCapability.fillBuilder(NodeChildrenUpdate.afterUpdate(node, bean)).update();
+ ActivityReference reference = (ActivityReference) node.getReference();
+ bean.setStatistics(reference.statistics());
+ ActivityUINavigationCapability.fillAfterBuilder(NodeChildrenUpdate.afterUpdate(node, bean)).update();
super.afterNodeUpdated(dataSourceEditor, ui, tree, node, notPersisted, bean);
}
})
=====================================
client/datasource/editor/ps/src/main/java/fr/ird/observe/client/datasource/editor/ps/data/observation/ActivityUISavePredicate.java
=====================================
@@ -52,7 +52,7 @@ public class ActivityUISavePredicate extends SavePredicateSupport<ActivityUIMode
}
public List<String> generateText(ActivityDto originalBean, ActivityDto editBean) {
- return ActivityUINavigationCapability.fillBuilder(NodeChildrenUpdate.beforeUpdate(states.source(), originalBean, editBean))
+ return ActivityUINavigationCapability.fillBeforeBuilder(NodeChildrenUpdate.beforeUpdate(states.source(), originalBean, editBean))
.getMessagesForNodesToRemove();
}
}
=====================================
client/datasource/editor/spi/src/main/java/fr/ird/observe/client/datasource/editor/spi/content/CapabilityDescriptor.java
=====================================
@@ -367,7 +367,7 @@ public class CapabilityDescriptor {
}
- public String generateCapabilityUpdateNodeMethod(Class<?> mainDtoType, Set<String> availableProperties) {
+ public String generateCapabilityOnBeanToUpdateUpdateNodeMethod(Class<?> mainDtoType, Set<String> availableProperties) {
switch (capacityNodeType) {
case STATIC_WITH_PREDICATE: {
String beanPropertyName = getOptionalPredicate().orElseThrow();
@@ -384,6 +384,23 @@ public class CapabilityDescriptor {
return null;
}
}
+ public String generateCapabilityOnUpdatedBeanNodeUpdateNodeMethod(Class<?> mainDtoType, Set<String> availableProperties) {
+ switch (capacityNodeType) {
+ case STATIC_WITH_PREDICATE: {
+ String beanPropertyName = getOptionalPredicate().orElseThrow();
+ return String.format(" .onPredicate(d-> d.is%1$s() && d.get%2$sStatValue() > 0, %3$s.class)\n", beanPropertyName, Strings.removeEnd(beanPropertyName,"Enabled"), getNodeTypeSimpleName());
+ }
+ case REFERENCE_LIST:
+ case REFERENCE: {
+ String beanPropertyName = methodName.replace("UINavigationNode", "Enabled");
+ if (availableProperties.contains(Introspector.decapitalize(beanPropertyName))) {
+ return String.format(" .onPredicate(d-> d.is%1$s() && d.get%2$sStatValue() > 0, %3$s.class)\n", beanPropertyName, Strings.removeEnd(beanPropertyName,"Enabled"), getNodeTypeSimpleName());
+ }
+ }
+ default:
+ return null;
+ }
+ }
protected String getOptionalReferenceTypePackage() {
return optionalReferenceType.getPackage().getName();
=====================================
client/datasource/editor/spi/src/main/java/fr/ird/observe/client/datasource/editor/spi/content/helper/ContentUINavigationCapabilityHelper.java
=====================================
@@ -55,8 +55,14 @@ public class ContentUINavigationCapabilityHelper extends ContentUIHelperSupport
" super(node);\n" +
" }\n\n" +
"}\n";
- public static final String UPDATE_NODE_METHOD = "" +
- " public static NodeChildrenUpdate fillBuilder(NodeChildrenUpdate.BuilderStepAddPredicate<%1$s> builder) {\n" +
+ public static final String ON_BEAN_TO_UPDATE_NODE_METHOD = "" +
+ " public static NodeChildrenUpdate fillBeforeBuilder(NodeChildrenUpdate.BuilderOnBeanToUpdate<%1$s> builder) {\n" +
+ " return builder\n" +
+ "%2$s" +
+ " .build();\n" +
+ " }\n\n";
+ public static final String ON_UPDATED_BEAN_NODE_METHOD = "" +
+ " public static NodeChildrenUpdate fillAfterBuilder(NodeChildrenUpdate.BuilderOnUpdatedBean<%1$s> builder) {\n" +
" return builder\n" +
"%2$s" +
" .build();\n" +
@@ -139,7 +145,32 @@ public class ContentUINavigationCapabilityHelper extends ContentUIHelperSupport
return String.format(template, generator.cleanClassName, createChildrenMethodBuilder);
}
- public static String generateNodeUpdaterMethod(GenerateJavaFileSupport generator, List<String> imports) {
+ public static String generateOnBeanToUpdateNodeUpdaterMethod(GenerateJavaFileSupport generator, List<String> imports) {
+ if (generator.capabilitiesDescriptor == null) {
+ return "";
+ }
+ Class<? extends BusinessDto> dtoType = generator.scopeBuilder.dtoType;
+ StringBuilder createChildrenMethodBuilder = new StringBuilder();
+ JavaBeanDefinition javaBeanDefinition = JavaBeanDefinitionStore.getDefinition(dtoType).orElseThrow();
+ Set<String> availableProperties = javaBeanDefinition.readProperties().map(JavaBeanPropertyDefinition::propertyName).collect(Collectors.toSet());
+ boolean used = false;
+ for (CapabilityDescriptor capabilityDescriptor : generator.capabilitiesDescriptor) {
+ String addNodeMethod = capabilityDescriptor.generateCapabilityOnBeanToUpdateUpdateNodeMethod(dtoType, availableProperties);
+ if (addNodeMethod != null) {
+ used = true;
+ createChildrenMethodBuilder.append(addNodeMethod);
+ }
+ }
+ if (used) {
+ imports.add(NodeChildrenUpdate.class.getName());
+ imports.add(dtoType.getName());
+ return String.format(ON_BEAN_TO_UPDATE_NODE_METHOD, dtoType.getSimpleName(), createChildrenMethodBuilder);
+
+ }
+ return "";
+ }
+
+ public static String generateOnUpdatedBeanNodeUpdaterMethod(GenerateJavaFileSupport generator, List<String> imports) {
if (generator.capabilitiesDescriptor == null) {
return "";
}
@@ -149,7 +180,7 @@ public class ContentUINavigationCapabilityHelper extends ContentUIHelperSupport
Set<String> availableProperties = javaBeanDefinition.readProperties().map(JavaBeanPropertyDefinition::propertyName).collect(Collectors.toSet());
boolean used = false;
for (CapabilityDescriptor capabilityDescriptor : generator.capabilitiesDescriptor) {
- String addNodeMethod = capabilityDescriptor.generateCapabilityUpdateNodeMethod(dtoType, availableProperties);
+ String addNodeMethod = capabilityDescriptor.generateCapabilityOnUpdatedBeanNodeUpdateNodeMethod(dtoType, availableProperties);
if (addNodeMethod != null) {
used = true;
createChildrenMethodBuilder.append(addNodeMethod);
@@ -158,7 +189,7 @@ public class ContentUINavigationCapabilityHelper extends ContentUIHelperSupport
if (used) {
imports.add(NodeChildrenUpdate.class.getName());
imports.add(dtoType.getName());
- return String.format(UPDATE_NODE_METHOD, dtoType.getSimpleName(), createChildrenMethodBuilder);
+ return String.format(ON_UPDATED_BEAN_NODE_METHOD, dtoType.getSimpleName(), createChildrenMethodBuilder);
}
return "";
@@ -214,7 +245,7 @@ public class ContentUINavigationCapabilityHelper extends ContentUIHelperSupport
}
public String generateNodeUpdaterMethod(List<String> imports) {
- return generateNodeUpdaterMethod(generator, imports);
+ return generateOnBeanToUpdateNodeUpdaterMethod(generator, imports) + generateOnUpdatedBeanNodeUpdaterMethod(generator, imports);
}
public String generateGetModel() {
=====================================
core/persistence/java/src/main/java/fr/ird/observe/entities/data/ll/logbook/ActivitySpi.java
=====================================
@@ -33,6 +33,7 @@ import fr.ird.observe.dto.referential.ReferentialLocale;
import fr.ird.observe.entities.data.ll.common.Trip;
import fr.ird.observe.entities.referential.common.DataQuality;
import fr.ird.observe.entities.referential.common.Species;
+import fr.ird.observe.spi.decoration.DecoratorService;
import fr.ird.observe.spi.service.ServiceContext;
import io.ultreia.java4all.util.Dates;
import org.apache.logging.log4j.LogManager;
@@ -40,7 +41,6 @@ import org.apache.logging.log4j.Logger;
import java.util.Calendar;
import java.util.Date;
-import java.util.function.BiConsumer;
import java.util.stream.Collectors;
/**
@@ -68,6 +68,15 @@ public class ActivitySpi extends GeneratedActivitySpi {
}
}
+ @Override
+ public ActivityReference toReference(ReferentialLocale referentialLocale, Activity entity, String classifier) {
+ ActivityReference reference = super.toReference(referentialLocale, entity, classifier);
+ if (entity != null && DecoratorService.WITH_STATS_CLASSIFIER.equals(classifier) && reference.getSet() != null) {
+ entity.getSet().buildStatistics(reference.getSet());
+ }
+ return reference;
+ }
+
@Override
public Form<ActivityDto> preCreate(ServiceContext context, Trip parent, Activity preCreated) {
Activity lastActivity = Iterables.getLast(parent.getActivityLogbook(), null);
@@ -102,13 +111,4 @@ public class ActivitySpi extends GeneratedActivitySpi {
}
super.onSave(context, parent, entity, dto, needCopy);
}
-
- @Override
- protected BiConsumer<Activity, ActivityReference> getChildrenExtraConsumer(Trip parent) {
- return (e, r) -> {
- if (r.getSet() != null) {
- e.getSet().buildStatistics(r.getSet());
- }
- };
- }
}
=====================================
core/persistence/java/src/main/java/fr/ird/observe/entities/data/ll/observation/ActivitySpi.java
=====================================
@@ -26,14 +26,15 @@ import com.google.common.collect.Iterables;
import fr.ird.observe.dto.data.ll.observation.ActivityDto;
import fr.ird.observe.dto.data.ll.observation.ActivityReference;
import fr.ird.observe.dto.form.Form;
+import fr.ird.observe.dto.referential.ReferentialLocale;
import fr.ird.observe.entities.data.ll.common.Trip;
+import fr.ird.observe.spi.decoration.DecoratorService;
import fr.ird.observe.spi.service.ServiceContext;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import java.util.Calendar;
import java.util.Date;
-import java.util.function.BiConsumer;
/**
* Created on 10/05/2021.
@@ -44,6 +45,15 @@ import java.util.function.BiConsumer;
public class ActivitySpi extends GeneratedActivitySpi {
private static final Logger log = LogManager.getLogger(ActivitySpi.class);
+ @Override
+ public ActivityReference toReference(ReferentialLocale referentialLocale, Activity entity, String classifier) {
+ ActivityReference reference = super.toReference(referentialLocale, entity, classifier);
+ if (entity != null && DecoratorService.WITH_STATS_CLASSIFIER.equals(classifier) && reference.getSet() != null) {
+ entity.getSet().buildStatistics(reference.getSet());
+ }
+ return reference;
+ }
+
@Override
public Form<ActivityDto> preCreate(ServiceContext context, Trip parent, Activity preCreated) {
Activity lastActivity = Iterables.getLast(parent.getActivityObs(), null);
@@ -76,12 +86,4 @@ public class ActivitySpi extends GeneratedActivitySpi {
super.onSave(context, parent, entity, dto, needCopy);
}
- @Override
- protected BiConsumer<Activity, ActivityReference> getChildrenExtraConsumer(Trip parent) {
- return (e, r) -> {
- if (r.getSet() != null) {
- e.getSet().buildStatistics(r.getSet());
- }
- };
- }
}
=====================================
core/persistence/java/src/main/java/fr/ird/observe/entities/data/ps/observation/ActivitySpi.java
=====================================
@@ -30,6 +30,7 @@ import fr.ird.observe.dto.referential.ReferentialLocale;
import fr.ird.observe.dto.referential.common.SpeciesReference;
import fr.ird.observe.entities.referential.common.FpaZone;
import fr.ird.observe.entities.referential.common.Species;
+import fr.ird.observe.spi.decoration.DecoratorService;
import fr.ird.observe.spi.service.ServiceContext;
import io.ultreia.java4all.util.Dates;
import org.apache.logging.log4j.LogManager;
@@ -67,6 +68,9 @@ public class ActivitySpi extends GeneratedActivitySpi {
if (entity != null && entity.isFloatingObjectNotEmpty()) {
reference.setFloatingObject(FloatingObject.SPI.toReferenceSet(referentialLocale, entity.getFloatingObject(), new Date(), classifier).toList());
}
+ if (entity != null && DecoratorService.WITH_STATS_CLASSIFIER.equals(classifier) && reference.getSet() != null) {
+ entity.getSet().buildStatistics(reference.getSet());
+ }
return reference;
}
@@ -111,9 +115,9 @@ public class ActivitySpi extends GeneratedActivitySpi {
protected BiConsumer<Activity, ActivityReference> getChildrenExtraConsumer(Route parent) {
return (entity, reference) -> {
reference.setDate(parent.getDate());
- if (reference.getSet() != null) {
- entity.getSet().buildStatistics(reference.getSet());
- }
+// if (reference.getSet() != null) {
+// entity.getSet().buildStatistics(reference.getSet());
+// }
};
}
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/compare/8a2e9e77bb345467aef9f4eb…
--
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/compare/8a2e9e77bb345467aef9f4eb…
You're receiving this email because of your account on gitlab.com.
1
0
[Git][ultreiaio/ird-observe] Pushed new branch feature/issue_2574
by Tony CHEMIT (@tchemit) 10 Dec '22
by Tony CHEMIT (@tchemit) 10 Dec '22
10 Dec '22
Tony CHEMIT pushed new branch feature/issue_2574 at ultreiaio / ird-observe
--
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/tree/feature/issue_2574
You're receiving this email because of your account on gitlab.com.
1
0
[Git][ultreiaio/ird-observe][develop-9.0.x] 10 commits: update pom
by Tony CHEMIT (@tchemit) 10 Dec '22
by Tony CHEMIT (@tchemit) 10 Dec '22
10 Dec '22
Tony CHEMIT pushed to branch develop-9.0.x at ultreiaio / ird-observe
Commits:
50fba486 by Tony Chemit at 2022-12-11T00:53:28+01:00
update pom
- - - - -
ecdd2cb1 by Tony Chemit at 2022-12-11T00:54:29+01:00
Report - Fix SumColumn and SumRow total cell condition
- - - - -
1468180f by Tony Chemit at 2022-12-11T00:54:29+01:00
Report - Fix syntax.columnsHeader assert
- - - - -
5c2b1603 by Tony Chemit at 2022-12-11T00:54:29+01:00
Report - Fix SumColumn and SumRow total cell condition (on psLogbookWellPlanCheck report)
- - - - -
93400706 by Tony Chemit at 2022-12-11T00:54:29+01:00
Report - Improve how to detect a variable in a request (can have :xxx,)
- - - - -
44481e34 by Tony Chemit at 2022-12-11T00:54:49+01:00
Report - Add possible Boolean report variable
- - - - -
8e765653 by Tony Chemit at 2022-12-11T00:54:49+01:00
Report - Add report psObservationCatchWeightByGroupAndSpeciesFateDiscardPerAssociation
- - - - -
f17fd8a8 by Tony Chemit at 2022-12-11T00:54:49+01:00
Report - Add report psObservationCatchTotalCountByGroupAndSpeciesFateDiscardPerAssociation
- - - - -
cdb6a6f0 by Tony Chemit at 2022-12-11T00:54:49+01:00
Persistence - be able to add a null parameter in a query
- - - - -
a9c52d35 by Tony Chemit at 2022-12-11T00:55:31+01:00
Merge branch 'feature/issue_2552' into develop-9.0.x
Optimisation des rapports Captures de thons selon le type d'association et Rejets de thons selon le type d'association
- Closes #2552
- - - - -
15 changed files:
- client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/report/ReportUIHandler.java
- core/api/dto/src/main/resources/observe-reports.properties
- core/services/local/src/test/java/fr/ird/observe/services/local/service/ReportServiceLocalReadTest.java
- core/services/test/src/main/java/fr/ird/observe/services/service/ReportFixture.java
- + core/services/test/src/main/java/fr/ird/observe/services/service/report/ps/PsObservationCatchTotalCountByGroupAndSpeciesFateDiscardPerAssociationReportFixture.java
- + core/services/test/src/main/java/fr/ird/observe/services/service/report/ps/PsObservationCatchWeightByGroupAndSpeciesFateDiscardPerAssociationReportFixture.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-psObservationCatchTotalCountByGroupAndSpeciesFateDiscardPerAssociation.properties
- + core/services/test/src/main/resources/fixtures/fr/ird/observe/services/service/ReportService-psObservationCatchWeightByGroupAndSpeciesFateDiscardPerAssociation.properties
- pom.xml
- toolkit/api/src/main/java/fr/ird/observe/dto/report/Report.java
- toolkit/api/src/main/java/fr/ird/observe/dto/report/operations/SumColumn.java
- toolkit/api/src/main/java/fr/ird/observe/dto/report/operations/SumRow.java
- toolkit/persistence/src/main/java/fr/ird/observe/spi/report/DefaultReportRequestExecutor.java
- toolkit/persistence/src/main/java/org/nuiton/topia/persistence/internal/support/HibernateTopiaJpaSupport.java
Changes:
=====================================
client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/report/ReportUIHandler.java
=====================================
@@ -41,6 +41,7 @@ import fr.ird.observe.spi.module.BusinessProjectMapping;
import fr.ird.observe.spi.module.ObserveBusinessProject;
import io.ultreia.java4all.bean.JavaBean;
import io.ultreia.java4all.decoration.Decorator;
+import io.ultreia.java4all.jaxx.widgets.choice.BooleanEditor;
import io.ultreia.java4all.jaxx.widgets.combobox.FilterableComboBox;
import io.ultreia.java4all.util.TimeLog;
import org.apache.logging.log4j.LogManager;
@@ -220,43 +221,79 @@ public class ReportUIHandler extends AdminTabUIHandler<ReportUI> implements UIHa
for (ReportVariable variable : report.getVariables()) {
String variableName = variable.getName();
Set values = variable.getValues();
- List<JavaBean> universe = new ArrayList<>(values);
log.info("Variable type: " + variable.getType());
//FIXME Decorators, let's object deal with it and never ask at this level... Just do a toString()...
Decorator decorator;
Class type;
BusinessProjectMapping mapping = ObserveBusinessProject.get().getMapping();
- if (ReferentialDto.class.isAssignableFrom(variable.getType()) && !universe.isEmpty()) {
+ if (ReferentialDto.class.isAssignableFrom(variable.getType()) && !values.isEmpty()) {
type = mapping.getReferenceType(variable.getType());
decorator = getDecoratorService().getDecoratorByType(type);
- } else if (DataDto.class.isAssignableFrom(variable.getType()) && !universe.isEmpty()) {
+ } else if (DataDto.class.isAssignableFrom(variable.getType()) && !values.isEmpty()) {
type = mapping.getReferenceType(variable.getType());
decorator = getDecoratorService().getDecoratorByType(type);
+ } else if (Boolean.class.isAssignableFrom(variable.getType()) && !values.isEmpty()) {
+ type = variable.getType();
+ decorator = null;
} else {
type = variable.getType();
decorator = getDecoratorService().getDecoratorByType(type);
}
log.info(String.format("Variable real type: %s", type));
- FilterableComboBox<?> combo = UIHelper.newFilterableComboBox(type, decorator, universe);
- combo.setShowReset(true);
- JPanel p = new JPanel(new BorderLayout());
- p.add(new JLabel(t(I18nDecoratorHelper.getType(variable.getType()))), BorderLayout.WEST);
- p.add(combo, BorderLayout.CENTER);
- variablesPanel.add(p);
- JComboBox<?> jComboBox = combo.getCombobox();
- jComboBox.putClientProperty(VARIABLE_NAME, variableName);
- jComboBox.addItemListener(e -> {
- JComboBox<?> comboBox = (JComboBox<?>) e.getSource();
- if (e.getStateChange() == ItemEvent.DESELECTED) {
- // ne rien faire de l'évènement de déselection sauf si le modèle devient vide
- if (comboBox.getSelectedItem() == null) {
- updateVariable(comboBox, null);
- }
- return;
+ if (type.equals(Boolean.class)) {
+ BooleanEditor.Builder builder = BooleanEditor.newBuilder();
+ if (values.contains(false)) {
+ builder.addFalseEntry("conservé");
+ }
+ if (values.contains(true)) {
+ builder.addTrueEntry("rejeté");
}
- Object o = e.getItem();
- updateVariable(comboBox, o);
- });
+ if (values.contains(null)) {
+ builder.addNullEntry("inconnu");
+ }
+ BooleanEditor jComboBox = builder.build();
+ JPanel p = new JPanel(new BorderLayout());
+ //FIXME Add i18n from the reportName + reportVariableName
+ p.add(new JLabel("Mode (conservé/rejeté/inconnu)"), BorderLayout.WEST);
+ p.add(jComboBox, BorderLayout.CENTER);
+ variablesPanel.add(p);
+ jComboBox.putClientProperty(VARIABLE_NAME, variableName);
+ jComboBox.addItemListener(e -> {
+ JComboBox<?> comboBox = (JComboBox<?>) e.getSource();
+ if (e.getStateChange() == ItemEvent.DESELECTED) {
+ // ne rien faire de l'évènement de déselection sauf si le modèle devient vide
+ if (comboBox.getSelectedItem() == null) {
+ updateVariable(comboBox, null);
+ }
+ return;
+ }
+ Boolean booleanValue = jComboBox.getBooleanValue();
+ updateVariable(comboBox, booleanValue);
+ });
+ } else {
+ List<JavaBean> universe = new ArrayList<>(values);
+ FilterableComboBox<?> combo = UIHelper.newFilterableComboBox(type, decorator, universe);
+ combo.setShowReset(true);
+ JPanel p = new JPanel(new BorderLayout());
+ p.add(new JLabel(t(I18nDecoratorHelper.getType(variable.getType()))), BorderLayout.WEST);
+ p.add(combo, BorderLayout.CENTER);
+ variablesPanel.add(p);
+ JComboBox<?> jComboBox = combo.getCombobox();
+ jComboBox.putClientProperty(VARIABLE_NAME, variableName);
+ jComboBox.addItemListener(e -> {
+ JComboBox<?> comboBox = (JComboBox<?>) e.getSource();
+ if (e.getStateChange() == ItemEvent.DESELECTED) {
+ // ne rien faire de l'évènement de déselection sauf si le modèle devient vide
+ if (comboBox.getSelectedItem() == null) {
+ updateVariable(comboBox, null);
+ }
+ return;
+ }
+ Object o = e.getItem();
+ updateVariable(comboBox, o);
+ });
+ }
+
}
}
=====================================
core/api/dto/src/main/resources/observe-reports.properties
=====================================
@@ -567,6 +567,266 @@ report.psObservationSetByAssociation.request.8=3,1|column|\
and os.topiaId = 'fr.ird.referential.ps.common.ObservedSystem#1239832686428#0.9217864901728908' \
and os not in elements(a.observedSystem)
################################################################################
+## Observations - Poids des captures selon le type d'association, filtrées par groupe et rejet
+################################################################################
+report.psObservationCatchWeightByGroupAndSpeciesFateDiscardPerAssociation.modelType=PS
+report.psObservationCatchWeightByGroupAndSpeciesFateDiscardPerAssociation.name=Observations - Poids des captures selon le type d'association, filtrées par groupe et mode (rejeté/conservé) (en t)
+report.psObservationCatchWeightByGroupAndSpeciesFateDiscardPerAssociation.description=Afficher le poids de rejets par groupe d'espèces et mode (rejeté/conservé) selon le type d'association
+report.psObservationCatchWeightByGroupAndSpeciesFateDiscardPerAssociation.columns=Espèce,BL sans baleine,BL avec baleine,BO avec requin-baleine,BO sans requin-baleine,Total
+report.psObservationCatchWeightByGroupAndSpeciesFateDiscardPerAssociation.variable.1.speciesGroup=fr.ird.observe.dto.referential.common.SpeciesGroupDto|\
+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
+report.psObservationCatchWeightByGroupAndSpeciesFateDiscardPerAssociation.variable.2.discardMode=java.lang.Boolean|\
+Select distinct sf.discard \
+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.speciesFate sf \
+Where t.id In :tripId \
+Order By sf.discard
+report.psObservationCatchWeightByGroupAndSpeciesFateDiscardPerAssociation.repeatVariable.1.species=fr.ird.observe.entities.referential.common.Species|\
+Select distinct e \
+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.speciesFate.discard = :discardMode \
+Join ca.species e with e.speciesGroup.id = :speciesGroup \
+Where t.id In :tripId \
+Order By e.faoCode
+report.psObservationCatchWeightByGroupAndSpeciesFateDiscardPerAssociation.operations.1=SumRow:0|1
+report.psObservationCatchWeightByGroupAndSpeciesFateDiscardPerAssociation.operations.2=SumColumn:0|1
+# Colonne 1 (les espèces)
+report.psObservationCatchWeightByGroupAndSpeciesFateDiscardPerAssociation.request.1=0,0|row|\
+ Select \
+ concat(\
+ '[FAO]', (case when e.faoCode is not null then e.faoCode else '-' end), \
+ ' [sc]', (case when e.scientificLabel is not null then e.scientificLabel else '-' end), \
+ ' [fr]', (case when e.label2 is not null then e.label2 else '-' end)) \
+ From SpeciesImpl e \
+ Where e = :species
+report.psObservationCatchWeightByGroupAndSpeciesFateDiscardPerAssociation.request.1.repeat=species|column
+# colonne 2 (BL sans baleine)
+report.psObservationCatchWeightByGroupAndSpeciesFateDiscardPerAssociation.request.2=1,0|row|\
+ Select Sum(CASE When ca.species = :species Then ca.catchWeight Else 0.0 End) \
+ From TripImpl m \
+ Join m.routeObs r \
+ Join r.activity a \
+ Join a.set c with c.schoolType.id = 'fr.ird.referential.ps.common.SchoolType#0#2' \
+ Join c.catches ca with ca.catchWeight Is Not Null \
+ Join ca.speciesFate sf with sf.discard = :discardMode, \
+ ObservedSystemImpl os, \
+ SpeciesImpl e \
+ Where \
+ m.id In :tripId \
+ And e = :species \
+ And os.topiaId = 'fr.ird.referential.ps.common.ObservedSystem#1239832686428#0.9395222812356602' \
+ And os not in elements(a.observedSystem) \
+ Group by e
+report.psObservationCatchWeightByGroupAndSpeciesFateDiscardPerAssociation.request.2.repeat=species|column
+# colonne 3 (BL avec baleine)
+report.psObservationCatchWeightByGroupAndSpeciesFateDiscardPerAssociation.request.3=2,0|row|\
+ Select Sum(CASE When ca.species = :species Then ca.catchWeight Else 0.0 End) \
+ From TripImpl m \
+ Join m.routeObs r \
+ Join r.activity a \
+ Join a.set c with c.schoolType.id = 'fr.ird.referential.ps.common.SchoolType#0#2' \
+ Join c.catches ca with ca.catchWeight Is Not Null \
+ Join ca.speciesFate sf with sf.discard = :discardMode, \
+ ObservedSystemImpl os, \
+ SpeciesImpl e \
+ Where \
+ m.id In :tripId \
+ And e = :species \
+ And os.topiaId = 'fr.ird.referential.ps.common.ObservedSystem#1239832686428#0.9395222812356602' \
+ And os in elements(a.observedSystem) \
+ Group by e
+report.psObservationCatchWeightByGroupAndSpeciesFateDiscardPerAssociation.request.3.repeat=species|column
+# colonne 4 (BO avec requin-baleine)
+report.psObservationCatchWeightByGroupAndSpeciesFateDiscardPerAssociation.request.4=3,0|row|\
+ Select Sum(CASE When ca.species = :species Then ca.catchWeight Else 0.0 End) \
+ From TripImpl m \
+ Join m.routeObs r \
+ Join r.activity a \
+ Join a.set c with c.schoolType.id = 'fr.ird.referential.ps.common.SchoolType#0#1' \
+ Join c.catches ca with ca.catchWeight Is Not Null \
+ Join ca.speciesFate sf with sf.discard = :discardMode, \
+ ObservedSystemImpl os1, \
+ ObservedSystemImpl os2, \
+ ObservedSystemImpl os3, \
+ SpeciesImpl e \
+ Where \
+ m.id In :tripId \
+ And e = :species \
+ And os1.topiaId = 'fr.ird.referential.ps.common.ObservedSystem#1239832686428#0.9217864901728908' \
+ And os2.topiaId = 'fr.ird.referential.ps.common.ObservedSystem#0#1.0' \
+ And os3.topiaId = 'fr.ird.referential.ps.common.ObservedSystem#0#1.1' \
+ And ( os1 in elements(a.observedSystem) Or os2 in elements(a.observedSystem) Or os3 in elements(a.observedSystem) ) \
+ Group by e
+report.psObservationCatchWeightByGroupAndSpeciesFateDiscardPerAssociation.request.4.repeat=species|column
+# colonne 5 (BO sans requin-baleine)
+report.psObservationCatchWeightByGroupAndSpeciesFateDiscardPerAssociation.request.5=4,0|row|\
+ Select Sum(CASE When ca.species = :species Then ca.catchWeight Else 0.0 End) \
+ From TripImpl m \
+ Join m.routeObs r \
+ Join r.activity a \
+ Join a.set c with c.schoolType.id = 'fr.ird.referential.ps.common.SchoolType#0#1' \
+ Join c.catches ca with ca.catchWeight Is Not Null \
+ Join ca.speciesFate sf with sf.discard = :discardMode, \
+ ObservedSystemImpl os1, \
+ ObservedSystemImpl os2, \
+ ObservedSystemImpl os3, \
+ SpeciesImpl e \
+ Where \
+ m.id In :tripId \
+ And e = :species \
+ And os1.topiaId = 'fr.ird.referential.ps.common.ObservedSystem#1239832686428#0.9217864901728908' \
+ And os2.topiaId = 'fr.ird.referential.ps.common.ObservedSystem#0#1.0' \
+ And os3.topiaId = 'fr.ird.referential.ps.common.ObservedSystem#0#1.1' \
+ And os1 not in elements(a.observedSystem) And os2 not in elements(a.observedSystem) And os3 not in elements(a.observedSystem) \
+ Group by e
+report.psObservationCatchWeightByGroupAndSpeciesFateDiscardPerAssociation.request.5.repeat=species|column
+################################################################################
+## Observations - Dénombrement des captures selon le type d'association, filtrées par groupe et rejet
+################################################################################
+report.psObservationCatchTotalCountByGroupAndSpeciesFateDiscardPerAssociation.modelType=PS
+report.psObservationCatchTotalCountByGroupAndSpeciesFateDiscardPerAssociation.name=Observations - Dénombrement des captures selon le type d'association, filtrées par groupe et mode (rejeté/conservé)
+report.psObservationCatchTotalCountByGroupAndSpeciesFateDiscardPerAssociation.description=Afficher le dénombrement de rejets par groupe d'espèces et mode (rejeté/conservé) selon le type d'association
+report.psObservationCatchTotalCountByGroupAndSpeciesFateDiscardPerAssociation.columns=Espèce,BL sans baleine,BL avec baleine,BO avec requin-baleine,BO sans requin-baleine,Total
+report.psObservationCatchTotalCountByGroupAndSpeciesFateDiscardPerAssociation.variable.1.speciesGroup=fr.ird.observe.dto.referential.common.SpeciesGroupDto|\
+Select distinct sg \
+From TripImpl t \
+Join t.routeObs r \
+Join r.activity a \
+Join a.set c \
+Join c.catches ca with ca.totalCount Is Not Null \
+Join ca.species e \
+Join e.speciesGroup sg \
+Where t.id In :tripId \
+Order By sg.code
+report.psObservationCatchTotalCountByGroupAndSpeciesFateDiscardPerAssociation.variable.2.discardMode=java.lang.Boolean|\
+Select distinct sf.discard \
+From TripImpl t \
+Join t.routeObs r \
+Join r.activity a \
+Join a.set c \
+Join c.catches ca with ca.totalCount Is Not Null \
+Join ca.speciesFate sf \
+Where t.id In :tripId \
+Order By sf.discard
+report.psObservationCatchTotalCountByGroupAndSpeciesFateDiscardPerAssociation.repeatVariable.1.species=fr.ird.observe.entities.referential.common.Species|\
+Select distinct e \
+From TripImpl t \
+Join t.routeObs r \
+Join r.activity a \
+Join a.set c \
+Join c.catches ca with ca.totalCount Is Not Null And ca.speciesFate.discard = :discardMode \
+Join ca.species e with e.speciesGroup.id = :speciesGroup \
+Where t.id In :tripId \
+Order By e.faoCode
+report.psObservationCatchTotalCountByGroupAndSpeciesFateDiscardPerAssociation.operations.1=SumIntRow:0|1
+report.psObservationCatchTotalCountByGroupAndSpeciesFateDiscardPerAssociation.operations.2=SumIntColumn:0|1
+# Colonne 1 (les espèces)
+report.psObservationCatchTotalCountByGroupAndSpeciesFateDiscardPerAssociation.request.1=0,0|row|\
+ Select \
+ concat(\
+ '[FAO]', (case when e.faoCode is not null then e.faoCode else '-' end), \
+ ' [sc]', (case when e.scientificLabel is not null then e.scientificLabel else '-' end), \
+ ' [fr]', (case when e.label2 is not null then e.label2 else '-' end)) \
+ From SpeciesImpl e \
+ Where e = :species
+report.psObservationCatchTotalCountByGroupAndSpeciesFateDiscardPerAssociation.request.1.repeat=species|column
+# colonne 2 (BL sans baleine)
+report.psObservationCatchTotalCountByGroupAndSpeciesFateDiscardPerAssociation.request.2=1,0|row|\
+ Select Sum(CASE When ca.species = :species Then ca.totalCount Else 0.0 End) \
+ From TripImpl m \
+ Join m.routeObs r \
+ Join r.activity a \
+ Join a.set c with c.schoolType.id = 'fr.ird.referential.ps.common.SchoolType#0#2' \
+ Join c.catches ca with ca.totalCount Is Not Null \
+ Join ca.speciesFate sf with sf.discard = :discardMode, \
+ ObservedSystemImpl os, \
+ SpeciesImpl e \
+ Where \
+ m.id In :tripId \
+ And e = :species \
+ And os.topiaId = 'fr.ird.referential.ps.common.ObservedSystem#1239832686428#0.9395222812356602' \
+ And os not in elements(a.observedSystem) \
+ Group by e
+report.psObservationCatchTotalCountByGroupAndSpeciesFateDiscardPerAssociation.request.2.repeat=species|column
+# colonne 3 (BL avec baleine)
+report.psObservationCatchTotalCountByGroupAndSpeciesFateDiscardPerAssociation.request.3=2,0|row|\
+ Select Sum(CASE When ca.species = :species Then ca.totalCount Else 0.0 End) \
+ From TripImpl m \
+ Join m.routeObs r \
+ Join r.activity a \
+ Join a.set c with c.schoolType.id = 'fr.ird.referential.ps.common.SchoolType#0#2' \
+ Join c.catches ca with ca.totalCount Is Not Null \
+ Join ca.speciesFate sf with sf.discard = :discardMode, \
+ ObservedSystemImpl os, \
+ SpeciesImpl e \
+ Where \
+ m.id In :tripId \
+ And e = :species \
+ And os.topiaId = 'fr.ird.referential.ps.common.ObservedSystem#1239832686428#0.9395222812356602' \
+ And os in elements(a.observedSystem) \
+ Group by e
+report.psObservationCatchTotalCountByGroupAndSpeciesFateDiscardPerAssociation.request.3.repeat=species|column
+# colonne 4 (BO avec requin-baleine)
+report.psObservationCatchTotalCountByGroupAndSpeciesFateDiscardPerAssociation.request.4=3,0|row|\
+ Select Sum(CASE When ca.species = :species Then ca.totalCount Else 0.0 End) \
+ From TripImpl m \
+ Join m.routeObs r \
+ Join r.activity a \
+ Join a.set c with c.schoolType.id = 'fr.ird.referential.ps.common.SchoolType#0#1' \
+ Join c.catches ca with ca.totalCount Is Not Null \
+ Join ca.speciesFate sf with sf.discard = :discardMode, \
+ ObservedSystemImpl os1, \
+ ObservedSystemImpl os2, \
+ ObservedSystemImpl os3, \
+ SpeciesImpl e \
+ Where \
+ m.id In :tripId \
+ And e = :species \
+ And os1.topiaId = 'fr.ird.referential.ps.common.ObservedSystem#1239832686428#0.9217864901728908' \
+ And os2.topiaId = 'fr.ird.referential.ps.common.ObservedSystem#0#1.0' \
+ And os3.topiaId = 'fr.ird.referential.ps.common.ObservedSystem#0#1.1' \
+ And ( os1 in elements(a.observedSystem) Or os2 in elements(a.observedSystem) Or os3 in elements(a.observedSystem) ) \
+ Group by e
+report.psObservationCatchTotalCountByGroupAndSpeciesFateDiscardPerAssociation.request.4.repeat=species|column
+# colonne 5 (BO sans requin-baleine)
+report.psObservationCatchTotalCountByGroupAndSpeciesFateDiscardPerAssociation.request.5=4,0|row|\
+ Select Sum(CASE When ca.species = :species Then ca.totalCount Else 0.0 End) \
+ From TripImpl m \
+ Join m.routeObs r \
+ Join r.activity a \
+ Join a.set c with c.schoolType.id = 'fr.ird.referential.ps.common.SchoolType#0#1' \
+ Join c.catches ca with ca.totalCount Is Not Null \
+ Join ca.speciesFate sf with sf.discard = :discardMode, \
+ ObservedSystemImpl os1, \
+ ObservedSystemImpl os2, \
+ ObservedSystemImpl os3, \
+ SpeciesImpl e \
+ Where \
+ m.id In :tripId \
+ And e = :species \
+ And os1.topiaId = 'fr.ird.referential.ps.common.ObservedSystem#1239832686428#0.9217864901728908' \
+ And os2.topiaId = 'fr.ird.referential.ps.common.ObservedSystem#0#1.0' \
+ And os3.topiaId = 'fr.ird.referential.ps.common.ObservedSystem#0#1.1' \
+ And os1 not in elements(a.observedSystem) And os2 not in elements(a.observedSystem) And os3 not in elements(a.observedSystem) \
+ Group by e
+report.psObservationCatchTotalCountByGroupAndSpeciesFateDiscardPerAssociation.request.5.repeat=species|column
+################################################################################
## Captures thons selon le type d'association
################################################################################
report.psObservationTargetCatchByAssociation.modelType=PS
=====================================
core/services/local/src/test/java/fr/ird/observe/services/local/service/ReportServiceLocalReadTest.java
=====================================
@@ -59,4 +59,16 @@ public class ReportServiceLocalReadTest extends GeneratedReportServiceLocalReadT
ReportService service = getService();
fixtures.executeReport(getServicesProvider(), service, "psObservationCatchTotalCountByGroupPerReasonForDiscard");
}
+
+ @Test
+ public void executeReportPsObservationCatchWeightByGroupAndSpeciesFateDiscardPerAssociation() {
+ ReportService service = getService();
+ fixtures.executeReport(getServicesProvider(), service, "psObservationCatchWeightByGroupAndSpeciesFateDiscardPerAssociation");
+ }
+
+ @Test
+ public void executeReportPsObservationCatchTotalCountByGroupAndSpeciesFateDiscardPerAssociation() {
+ ReportService service = getService();
+ fixtures.executeReport(getServicesProvider(), service, "psObservationCatchTotalCountByGroupAndSpeciesFateDiscardPerAssociation");
+ }
}
=====================================
core/services/test/src/main/java/fr/ird/observe/services/service/ReportFixture.java
=====================================
@@ -35,6 +35,7 @@ import java.beans.Introspector;
import java.util.Arrays;
import java.util.Iterator;
import java.util.LinkedHashSet;
+import java.util.Objects;
import java.util.Set;
import static fr.ird.observe.test.ObserveFixtures.WITH_ASSERT;
@@ -107,6 +108,18 @@ public abstract class ReportFixture {
}
}
+ protected void setVariableValue(Report report, String variableName, Boolean id) {
+ for (ReportVariable variable : report.getVariables()) {
+ if (variableName.equals(variable.getName())) {
+ Boolean value = (Boolean) variable.getValues().stream()
+ .filter(f-> Objects.equals(f, id))
+ .findFirst()
+ .orElse(null);
+ variable.setSelectedValue(value);
+ }
+ }
+ }
+
public void assertSyntax(Report actual) {
Assert.assertNotNull(actual);
assertReportName(actual);
@@ -175,7 +188,7 @@ public abstract class ReportFixture {
} else {
ReportServiceFixtures.addAssert("syntax.rows", report.getRows());
ReportServiceFixtures.addAssert("syntax.columns", report.getColumns());
- if (report.getRowHeaders() == null) {
+ if (report.getColumnHeaders() == null) {
ReportServiceFixtures.writeArrayAssert("syntax.columnsHeader");
} else {
ReportServiceFixtures.writeArrayAssert("syntax.columnsHeader", (Object[]) report.getColumnHeaders());
=====================================
core/services/test/src/main/java/fr/ird/observe/services/service/report/ps/PsObservationCatchTotalCountByGroupAndSpeciesFateDiscardPerAssociationReportFixture.java
=====================================
@@ -0,0 +1,57 @@
+package fr.ird.observe.services.service.report.ps;
+
+/*-
+ * #%L
+ * ObServe Core :: Services :: Test
+ * %%
+ * Copyright (C) 2008 - 2022 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.dto.report.Report;
+import fr.ird.observe.dto.report.ReportRequest;
+import fr.ird.observe.services.service.ReportFixture;
+
+import java.util.Iterator;
+
+/**
+ * Created on 09/12/2022.
+ *
+ * @author Tony Chemit - dev(a)tchemit.fr
+ * @since 9.0.22
+ */
+(a)AutoService(ReportFixture.class)
+public class PsObservationCatchTotalCountByGroupAndSpeciesFateDiscardPerAssociationReportFixture extends ReportFixture {
+
+ @Override
+ public void assertSyntax(Report report) {
+ super.assertSyntax(report);
+ Iterator<ReportRequest> requests = getRequestIterator(report);
+ assertReportRequestDimension(requests, ReportRequest.RequestLayout.row, 0, 0);
+ assertReportRequestDimension(requests, ReportRequest.RequestLayout.row, 1, 0);
+ assertReportRequestDimension(requests, ReportRequest.RequestLayout.row, 2, 0);
+ assertReportRequestDimension(requests, ReportRequest.RequestLayout.row, 3, 0);
+ assertReportRequestDimension(requests, ReportRequest.RequestLayout.row, 4, 0);
+ }
+
+ @Override
+ protected void setVariables(Report report) {
+ setVariableValue(report, "speciesGroup", "fr.ird.referential.common.SpeciesGroup#1239832683689#0.17327457618202002");
+ setVariableValue(report, "discardMode", false);
+ }
+}
\ No newline at end of file
=====================================
core/services/test/src/main/java/fr/ird/observe/services/service/report/ps/PsObservationCatchWeightByGroupAndSpeciesFateDiscardPerAssociationReportFixture.java
=====================================
@@ -0,0 +1,58 @@
+package fr.ird.observe.services.service.report.ps;
+
+/*-
+ * #%L
+ * ObServe Core :: Services :: Test
+ * %%
+ * Copyright (C) 2008 - 2022 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.dto.report.Report;
+import fr.ird.observe.dto.report.ReportRequest;
+import fr.ird.observe.services.service.ReportFixture;
+
+import java.util.Iterator;
+
+/**
+ * Created on 09/12/2022.
+ *
+ * @author Tony Chemit - dev(a)tchemit.fr
+ * @since 9.0.22
+ */
+(a)AutoService(ReportFixture.class)
+public class PsObservationCatchWeightByGroupAndSpeciesFateDiscardPerAssociationReportFixture extends ReportFixture {
+
+ @Override
+ public void assertSyntax(Report report) {
+ super.assertSyntax(report);
+ Iterator<ReportRequest> requests = getRequestIterator(report);
+ assertReportRequestDimension(requests, ReportRequest.RequestLayout.row, 0, 0);
+ assertReportRequestDimension(requests, ReportRequest.RequestLayout.row, 1, 0);
+ assertReportRequestDimension(requests, ReportRequest.RequestLayout.row, 2, 0);
+ assertReportRequestDimension(requests, ReportRequest.RequestLayout.row, 3, 0);
+ assertReportRequestDimension(requests, ReportRequest.RequestLayout.row, 4, 0);
+ }
+
+ @Override
+ protected void setVariables(Report report) {
+ setVariableValue(report, "speciesGroup", "fr.ird.referential.common.SpeciesGroup#1433499401278#0.203439718578011");
+ setVariableValue(report, "discardMode", false);
+ }
+}
+
=====================================
core/services/test/src/main/resources/fixtures/fr/ird/observe/services/service/ReportService-psLogbookWellPlanCheck.properties
=====================================
@@ -20,7 +20,7 @@
# #L%
###
result.0=483^CAP BOJADOR^30/3/2019^8/4/2019^30/3/2019^1^15:12^0.0^123.0^43.0^0.0^0.0^0.0^0.0^24.0^0.0^0.0^166.0^24.0^142.0
-result.1=-^-^-^-^-^-^-^0^123^43^0^0^0^0^24^0^0^166^24^142
+result.1=Total^-^-^-^-^-^-^0^123^43^0^0^0^0^24^0^0^166^24^142
result.columns=20
result.rows=2
syntax.columns=20
=====================================
core/services/test/src/main/resources/fixtures/fr/ird/observe/services/service/ReportService-psObservationCatchTotalCountByGroupAndSpeciesFateDiscardPerAssociation.properties
=====================================
@@ -0,0 +1,31 @@
+###
+# #%L
+# ObServe Core :: Services :: Test
+# %%
+# Copyright (C) 2008 - 2022 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 - Dénombrement des captures selon le type d'association, filtrées par groupe et mode (rejeté/conservé)
+syntax.description=Afficher le dénombrement de rejets par groupe d'espèces et mode (rejeté/conservé) selon le type d'association
+syntax.rows=-1
+syntax.columns=6
+syntax.columnsHeader=Espèce^BL sans baleine^BL avec baleine^BO avec requin-baleine^BO sans requin-baleine^Total
+syntax.rowsHeader=
+syntax.nbRequests=5
+result.columns=6
+result.rows=1
+result.0=[FAO]SAI [sc]Istiophorus albicans [fr]Voilier de l'Atlantique^null^null^null^4^4
\ No newline at end of file
=====================================
core/services/test/src/main/resources/fixtures/fr/ird/observe/services/service/ReportService-psObservationCatchWeightByGroupAndSpeciesFateDiscardPerAssociation.properties
=====================================
@@ -0,0 +1,36 @@
+###
+# #%L
+# ObServe Core :: Services :: Test
+# %%
+# Copyright (C) 2008 - 2022 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 - Poids des captures selon le type d'association, filtrées par groupe et mode (rejeté/conservé) (en t)
+syntax.description=Afficher le poids de rejets par groupe d'espèces et mode (rejeté/conservé) selon le type d'association
+syntax.rows=-1
+syntax.columns=6
+syntax.columnsHeader=Espèce^BL sans baleine^BL avec baleine^BO avec requin-baleine^BO sans requin-baleine^Total
+syntax.rowsHeader=
+syntax.nbRequests=5
+result.columns=6
+result.rows=6
+result.0=[FAO]BET [sc]Thunnus obesus [fr]Patudo, thon obèse, thon gros yeux^7.0^null^null^0.0^7.0
+result.1=[FAO]FRI [sc]Auxis thazard [fr]Auxide^0.0^null^null^1.0^1.0
+result.2=[FAO]FRZ [sc]Auxis spp [fr]Auxis^0.0^null^null^12.0^12.0
+result.3=[FAO]SKJ [sc]Katsuwonus pelamis [fr]Listao, bonite à ventre rayé^0.0^null^null^1.0^1.0
+result.4=[FAO]YFT [sc]Thunnus albacares [fr]Albacore, thon à nageoires jaunes^175.0^null^null^0.0^175.0
+result.5=Total^182.0^0.0^0.0^14.0^196.0
\ No newline at end of file
=====================================
pom.xml
=====================================
@@ -23,7 +23,7 @@
<parent>
<groupId>io.ultreia.maven</groupId>
<artifactId>pom</artifactId>
- <version>2022.97</version>
+ <version>2022.98</version>
</parent>
<groupId>fr.ird.observe</groupId>
<artifactId>ird-observe</artifactId>
=====================================
toolkit/api/src/main/java/fr/ird/observe/dto/report/Report.java
=====================================
@@ -164,7 +164,10 @@ public class Report implements Serializable, JsonAware {
public boolean canExecute() {
for (ReportVariable<?> variable : getVariables()) {
-
+ if (variable.getType().equals(Boolean.class)) {
+ // Boolean type can be null
+ continue;
+ }
// on verifie qu'on a bien cette variable
String name = variable.getName();
if (variable.getSelectedValue() == null) {
@@ -180,7 +183,10 @@ public class Report implements Serializable, JsonAware {
public boolean canExecute(Map<String, Object> variables) {
for (ReportVariable<?> variable : getVariables()) {
-
+ if (variable.getType().equals(Boolean.class)) {
+ // Boolean type can be null
+ continue;
+ }
// on verifie qu'on a bien cette variable
String name = variable.getName();
if (variables.get(name) == null) {
=====================================
toolkit/api/src/main/java/fr/ird/observe/dto/report/operations/SumColumn.java
=====================================
@@ -66,7 +66,7 @@ public class SumColumn implements ReportOperationConsumer {
tmpMatrix.setValue(column, 0, sumColumn);
}
DataMatrix merge = DataMatrix.merge(incoming, tmpMatrix);
- if (report.getColumnHeaders() == null) {
+ if (report.getRowHeaders() == null) {
merge.setValue(0, height, "Total");
}
return merge;
=====================================
toolkit/api/src/main/java/fr/ird/observe/dto/report/operations/SumRow.java
=====================================
@@ -67,7 +67,7 @@ public class SumRow implements ReportOperationConsumer {
tmpMatrix.setValue(0, row, sumRow);
}
DataMatrix merge = DataMatrix.merge(incoming, tmpMatrix);
- if (report.getRowHeaders() == null) {
+ if (report.getColumnHeaders() == null) {
merge.setValue(width, 0, "Total");
}
return merge;
=====================================
toolkit/persistence/src/main/java/fr/ird/observe/spi/report/DefaultReportRequestExecutor.java
=====================================
@@ -131,7 +131,7 @@ public abstract class DefaultReportRequestExecutor implements ReportRequestExecu
Map<String, Object> paramsFixes = new HashMap<>();
for (Map.Entry<String, Object> entry : params.entrySet()) {
String name = entry.getKey();
- if (request.contains(":" + name + " ") || request.endsWith(":" + name)) {
+ if (request.contains(":" + name + " ") || request.contains(":" + name + ",") || request.endsWith(":" + name)) {
Object value = entry.getValue();
if (value instanceof DtoReference) {
DtoReference referenceDto = (DtoReference) value;
=====================================
toolkit/persistence/src/main/java/org/nuiton/topia/persistence/internal/support/HibernateTopiaJpaSupport.java
=====================================
@@ -85,7 +85,9 @@ public class HibernateTopiaJpaSupport implements TopiaJpaSupport {
for (Map.Entry<String, Object> entry : parameters.entrySet()) {
String name = entry.getKey();
Object value = entry.getValue();
- if (value.getClass().isArray()) {
+ if (value == null) {
+ query.setParameter(name, null);
+ } else if (value.getClass().isArray()) {
query.setParameterList(name, (Object[]) value);
} else if (value instanceof Collection<?>) {
query.setParameterList(name, (Collection<?>) value);
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/compare/b7a5669d0f09931b0e7e11e1…
--
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/compare/b7a5669d0f09931b0e7e11e1…
You're receiving this email because of your account on gitlab.com.
1
0