Tony CHEMIT pushed to branch feature/issue-2848 at ultreiaio / ird-observe Commits: 88b13f8a by Tony Chemit at 2024-03-16T13:06:10+01:00 Add more TimeLog and fix log.debug issues in ReportRequestExecutor - - - - - 71e34b77 by Tony Chemit at 2024-03-16T13:15:56+01:00 Optimisation du rapport Livre de bord - Vérification des plan de cuves - Closes #2849 - - - - - 0a4cdf76 by Tony Chemit at 2024-03-16T13:33:34+01:00 Optimisation du rapport Livre de bord - Plan de cuves - Closes #2850 - - - - - d07f7bc5 by Tony Chemit at 2024-03-16T15:48:14+01:00 Optimisation du rapport Observations - Utilisation des FOB, tableau simplifiée - Closes #2851 - - - - - c375649a by Tony Chemit at 2024-03-16T15:48:14+01:00 Optimisation du rapport Observations - Utilisation des FOB, tableau détaillé - Closes #2852 - - - - - 327f2a86 by Tony Chemit at 2024-03-16T15:49:36+01:00 Mise à jour du rapport psObservationAllActivities - - - - - 8b17856e by Tony Chemit at 2024-03-16T15:59:00+01:00 Ajout du rapport psObservationActivitiesByZone - - - - - 19 changed files: - core/persistence/report/src/main/resources/META-INF/report/default/ps/psLogbookWellPlan.report - core/persistence/report/src/main/resources/META-INF/report/default/ps/psLogbookWellPlanCheck.report - + core/persistence/report/src/main/resources/META-INF/report/default/ps/psObservationActivitiesByZone.report - core/persistence/report/src/main/resources/META-INF/report/default/ps/psObservationAllActivities.report - core/persistence/report/src/main/resources/META-INF/report/default/ps/psObservationFobUsageExtended.report - core/persistence/report/src/main/resources/META-INF/report/default/ps/psObservationFobUsageMinimal.report - core/persistence/report/src/main/resources/META-INF/report/embedded.list - core/persistence/report/src/test/java/fr/ird/observe/report/ToolsTest.java - + core/services/test/src/main/java/fr/ird/observe/services/service/report/ps/PsObservationActivitiesByZoneReportFixture.java - core/services/test/src/main/java/fr/ird/observe/services/service/report/ps/PsObservationFobUsageExtendedReportFixture.java - core/services/test/src/main/java/fr/ird/observe/services/service/report/ps/PsObservationFobUsageMinimalReportFixture.java - core/services/test/src/main/resources/fixtures/fr/ird/observe/services/service/ReportService-psLogbookWellPlanCheck.properties - + core/services/test/src/main/resources/fixtures/fr/ird/observe/services/service/ReportService-psObservationActivitiesByZone.properties - core/services/test/src/main/resources/fixtures/fr/ird/observe/services/service/ReportService-psObservationAllActivities.properties - core/services/test/src/main/resources/fixtures/fr/ird/observe/services/service/ReportService-psObservationFobUsageExtended.properties - core/services/test/src/main/resources/fixtures/fr/ird/observe/services/service/ReportService-psObservationFobUsageMinimal.properties - core/services/test/src/main/resources/fixtures/fr/ird/observe/services/service/ReportService.properties - src/site/markdown/report/embedded-reports.md - toolkit/api-report/src/main/java/fr/ird/observe/report/ReportRequestExecutor.java Changes: ===================================== core/persistence/report/src/main/resources/META-INF/report/default/ps/psLogbookWellPlan.report ===================================== @@ -39,19 +39,16 @@ w.well, \ r.date, \ a.number, \ Cast(a.time As java.sql.Time), \ -species.@i18nColumnName@, \ -weightCategory.@i18nColumnName@, \ +was.species.@i18nColumnName@, \ +was.weightCategory.@i18nColumnName@, \ was.weight \ From TripImpl t \ Join t.well w \ Join w.wellActivity wa \ Join wa.wellActivitySpecies was \ -Join was.species species \ -Join was.weightCategory weightCategory \ Join t.routeLogbook r \ Join r.activity a \ Join t.vessel vessel \ Left Join a.vesselActivity vesselActivity \ -Left Join a.schoolType schoolType \ Where t.id In :tripId and wa.activity = a \ Order By vessel.code,t.startDate,t.endDate,w.well,r.date,a.time ===================================== core/persistence/report/src/main/resources/META-INF/report/default/ps/psLogbookWellPlanCheck.report ===================================== @@ -29,16 +29,6 @@ description.es= columns=Code bateau,Nom bateau,Date départ,Date arrivée,Date de route,Numéro activité,Heure activité,Logbook YFT,Logbook SKJ,Logbook BET,Logbook ALB,Logbook Autres,Plan de cuves YFT,Plan de cuves SKJ,Plan de cuves BET,Plan de cuves ALB,Plan de cuves Autres,Logbook Total,Plan de cuves Total,Différence columns.en=Vessel code,Vessel name,Departure date,Landing date,Day of route,Activity number,Activity hour,Logbook YFT,Logbook SKJ,Logbook BET,Logbook ALB,Logbook others,Well plan YFT,Well plan SKJ,Well plan BET,Well plan ALB,Well plan others,Logbook Total,Well plan Total,Difference columns.es= -repeatVariable.1.name=activity -repeatVariable.1.type=fr.ird.observe.entities.data.ps.logbook.Activity -repeatVariable.1.request=Select a \ -From TripImpl t \ -Join t.routeLogbook r \ -Join r.activity a \ -Join t.vessel vessel \ -Left Join a.vesselActivity vesselActivity \ -Where t.id In :tripId and vesselActivity.id = 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586' \ -Order By vessel.code,t.startDate,r.date,a.number,a.time request.1.location=0,0 request.1.layout=row request.1.request=Select vessel.code,\ @@ -47,74 +37,33 @@ t.startDate, \ t.endDate, \ r.date, \ a.number, \ -Cast(a.time As java.sql.Time) \ -From TripImpl t \ -Join t.routeLogbook r \ -Join r.activity a \ -Join t.vessel vessel \ -Where t.id In :tripId and a = :activity -request.1.repeat.name=activity -request.1.repeat.layout=column -request.2.location=7,0 -request.2.layout=row -request.2.request=Select \ -Sum(CASE ct.species.id When 'fr.ird.referential.common.Species#1239832685474#0.8943253454598569' Then ct.weight Else 0.0 End), \ -Sum(CASE ct.species.id When 'fr.ird.referential.common.Species#1239832685474#0.975344121171992' Then ct.weight Else 0.0 End), \ -Sum(CASE ct.species.id When 'fr.ird.referential.common.Species#1239832685475#0.13349466123905152' Then ct.weight Else 0.0 End), \ -Sum(CASE ct.species.id When 'fr.ird.referential.common.Species#1239832685476#0.5618871286604711' Then ct.weight Else 0.0 End), \ -Sum(CASE ct.species.id When 'fr.ird.referential.common.Species#1239832685474#0.8943253454598569' Then 0.0 \ +Cast(a.time As java.sql.Time), \ +(Select Sum(CASE ct.species.id When 'fr.ird.referential.common.Species#1239832685474#0.8943253454598569' Then ct.weight Else 0.0 End) From fr.ird.observe.entities.data.ps.logbook.ActivityImpl aa Join a.catches ct Where aa = a), \ +(Select Sum(CASE ct.species.id When 'fr.ird.referential.common.Species#1239832685474#0.975344121171992' Then ct.weight Else 0.0 End) From fr.ird.observe.entities.data.ps.logbook.ActivityImpl aa Join a.catches ct Where aa = a), \ +(Select Sum(CASE ct.species.id When 'fr.ird.referential.common.Species#1239832685475#0.13349466123905152' Then ct.weight Else 0.0 End) From fr.ird.observe.entities.data.ps.logbook.ActivityImpl aa Join a.catches ct Where aa = a), \ +(Select Sum(CASE ct.species.id When 'fr.ird.referential.common.Species#1239832685476#0.5618871286604711' Then ct.weight Else 0.0 End) From fr.ird.observe.entities.data.ps.logbook.ActivityImpl aa Join a.catches ct Where aa = a), \ +(Select Sum(CASE ct.species.id When 'fr.ird.referential.common.Species#1239832685474#0.8943253454598569' Then 0.0 \ When 'fr.ird.referential.common.Species#1239832685474#0.975344121171992' Then 0.0 \ When 'fr.ird.referential.common.Species#1239832685475#0.13349466123905152' Then 0.0 \ When 'fr.ird.referential.common.Species#1239832685476#0.5618871286604711' Then 0.0 \ -Else ct.weight End) \ -From TripImpl t \ -Join t.routeLogbook r \ -Join r.activity a \ -Join a.catches ct \ -Where t.id In :tripId and a = :activity -request.2.repeat.name=activity -request.2.repeat.layout=column -request.3.location=12,0 -request.3.layout=row -request.3.request=Select \ -Sum(CASE was.species.id When 'fr.ird.referential.common.Species#1239832685474#0.8943253454598569' Then was.weight Else 0.0 End), \ -Sum(CASE was.species.id When 'fr.ird.referential.common.Species#1239832685474#0.975344121171992' Then was.weight Else 0.0 End), \ -Sum(CASE was.species.id When 'fr.ird.referential.common.Species#1239832685475#0.13349466123905152' Then was.weight Else 0.0 End), \ -Sum(CASE was.species.id When 'fr.ird.referential.common.Species#1239832685476#0.5618871286604711' Then was.weight Else 0.0 End), \ -Sum(CASE was.species.id When 'fr.ird.referential.common.Species#1239832685474#0.8943253454598569' Then 0.0 \ +Else ct.weight End) From fr.ird.observe.entities.data.ps.logbook.ActivityImpl aa Join a.catches ct Where aa = a), \ +(Select Sum(CASE was.species.id When 'fr.ird.referential.common.Species#1239832685474#0.8943253454598569' Then was.weight Else 0.0 End) From WellActivityImpl wa Join wa.wellActivitySpecies was Where wa.activity = a), \ +(Select Sum(CASE was.species.id When 'fr.ird.referential.common.Species#1239832685474#0.975344121171992' Then was.weight Else 0.0 End) From WellActivityImpl wa Join wa.wellActivitySpecies was Where wa.activity = a), \ +(Select Sum(CASE was.species.id When 'fr.ird.referential.common.Species#1239832685475#0.13349466123905152' Then was.weight Else 0.0 End) From WellActivityImpl wa Join wa.wellActivitySpecies was Where wa.activity = a), \ +(Select Sum(CASE was.species.id When 'fr.ird.referential.common.Species#1239832685476#0.5618871286604711' Then was.weight Else 0.0 End) From WellActivityImpl wa Join wa.wellActivitySpecies was Where wa.activity = a), \ +(Select Sum(CASE was.species.id When 'fr.ird.referential.common.Species#1239832685474#0.8943253454598569' Then 0.0 \ When 'fr.ird.referential.common.Species#1239832685474#0.975344121171992' Then 0.0 \ When 'fr.ird.referential.common.Species#1239832685475#0.13349466123905152' Then 0.0 \ When 'fr.ird.referential.common.Species#1239832685476#0.5618871286604711' Then 0.0 \ -Else was.weight End) \ -From TripImpl t \ -Join t.well w \ -Join w.wellActivity wa \ -Join wa.wellActivitySpecies was \ -Where t.id In :tripId and wa.activity = :activity -request.3.repeat.name=activity -request.3.repeat.layout=column -request.4.location=17,0 -request.4.layout=row -request.4.request=Select \ -Sum(ct.weight) \ +Else was.weight End) From WellActivityImpl wa Join wa.wellActivitySpecies was Where wa.activity = a), \ +(Select Sum(ct.weight) From fr.ird.observe.entities.data.ps.logbook.ActivityImpl aa Join a.catches ct Where aa = a), \ +(Select Sum(was.weight) From WellActivityImpl wa Join wa.wellActivitySpecies was Where wa.activity = a) \ From TripImpl t \ Join t.routeLogbook r \ -Join r.activity a \ -Join a.catches ct \ -Where t.id In :tripId and a = :activity -request.4.repeat.name=activity -request.4.repeat.layout=column -request.5.location=18,0 -request.5.layout=row -request.5.request=Select \ -Sum(was.weight) \ -From TripImpl t \ -Join t.well w \ -Join w.wellActivity wa \ -Join wa.wellActivitySpecies was \ -Where t.id In :tripId and wa.activity = :activity -request.5.repeat.name=activity -request.5.repeat.layout=column +Join r.activity a With a.vesselActivity.id = 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586' \ +Join t.vessel vessel \ +Where t.id In :tripId \ +Order By vessel.code,t.startDate,r.date,a.number,a.time operations.1.type=SubtractColum operations.1.parameters=17|18|19 operations.2.type=SumColumn ===================================== core/persistence/report/src/main/resources/META-INF/report/default/ps/psObservationActivitiesByZone.report ===================================== @@ -0,0 +1,60 @@ +modelType=PS +name=Observations - Types d'activités par zones FPA +name.en= +name.es= +description=Tableau récapitulatif des types d'activités par zone FPA traversée +description.en= +description.es= +columns=Zone,Visités Pêchés,Visités non Pêchés,Déploiement après Pêches,Déploiement seul,Modifiés Pêchés,Modifiés non Pêchés,Retirés Pêchés,Retirés non Pêchés,Abandonnés Pêchés,Abandonnés non Pêchés,Coulés Pêchés,Coulés non Pêchés,Remplacés Pêchés,Remplacés non Pêchés,Autre Pêchés,Autre non Pêchés,Tortues associées,Total +columns.en= +columns.es= +repeatVariable.1.name=zoneFpaId +repeatVariable.1.type=java.lang.String +repeatVariable.1.request=Select z.id \ +From FpaZoneImpl z \ +Where z.id In (Select distinct (a.currentFpaZone.id) \ + From fr.ird.observe.entities.data.ps.common.TripImpl m \ + Join m.routeObs r \ + Join r.activity a With a.currentFpaZone Is Not NULL \ + Where m.id In :tripId And a.floatingObject Is Not Empty) \ +Order By z.code, z.@i18nColumnName@ +request.1.location=0,0 +request.1.layout=row +request.1.request=Select concat(str(z.code) , ' - ', z.@i18nColumnName@) \ +From FpaZoneImpl z \ +Where \ +z.id = :zoneFpaId +request.1.repeat.name=zoneFpaId +request.1.repeat.layout=column +request.2.location=1,0 +request.2.layout=row +request.2.request=Select \ +SUM(CASE When dcp.objectOperation = 'fr.ird.referential.ps.common.ObjectOperation#0#2' And a.vesselActivity = 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586' Then 1 Else 0 End), \ +SUM(CASE When dcp.objectOperation = 'fr.ird.referential.ps.common.ObjectOperation#0#2' And a.vesselActivity != 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586' Then 1 Else 0 End), \ +SUM(CASE When dcp.objectOperation = 'fr.ird.referential.ps.common.ObjectOperation#0#1' And a.vesselActivity = 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586' Then 1 Else 0 End), \ +SUM(CASE When dcp.objectOperation = 'fr.ird.referential.ps.common.ObjectOperation#0#1' And a.vesselActivity != 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586' Then 1 Else 0 End), \ +SUM(CASE When dcp.objectOperation = 'fr.ird.referential.ps.common.ObjectOperation#0#8' And a.vesselActivity = 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586' Then 1 Else 0 End), \ +SUM(CASE When dcp.objectOperation = 'fr.ird.referential.ps.common.ObjectOperation#0#8' And a.vesselActivity != 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586' Then 1 Else 0 End), \ +SUM(CASE When dcp.objectOperation = 'fr.ird.referential.ps.common.ObjectOperation#0#4' And a.vesselActivity = 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586' Then 1 Else 0 End), \ +SUM(CASE When dcp.objectOperation = 'fr.ird.referential.ps.common.ObjectOperation#0#4' And a.vesselActivity != 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586' Then 1 Else 0 End), \ +SUM(CASE When dcp.objectOperation = 'fr.ird.referential.ps.common.ObjectOperation#0#5' And a.vesselActivity = 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586' Then 1 Else 0 End), \ +SUM(CASE When dcp.objectOperation = 'fr.ird.referential.ps.common.ObjectOperation#0#5' And a.vesselActivity != 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586' Then 1 Else 0 End), \ +SUM(CASE When dcp.objectOperation = 'fr.ird.referential.ps.common.ObjectOperation#0#7' And a.vesselActivity = 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586' Then 1 Else 0 End), \ +SUM(CASE When dcp.objectOperation = 'fr.ird.referential.ps.common.ObjectOperation#0#7' And a.vesselActivity != 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586' Then 1 Else 0 End), \ +SUM(CASE When dcp.objectOperation = 'fr.ird.referential.ps.common.ObjectOperation#0#9' And a.vesselActivity = 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586' Then 1 Else 0 End), \ +SUM(CASE When dcp.objectOperation = 'fr.ird.referential.ps.common.ObjectOperation#0#9' And a.vesselActivity != 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586' Then 1 Else 0 End), \ +SUM(CASE When ( dcp.objectOperation = 'fr.ird.referential.ps.common.ObjectOperation#0#10' Or dcp.objectOperation = 'fr.ird.referential.ps.common.ObjectOperation#0#3' ) And a.vesselActivity = 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586' Then 1 Else 0 End), \ +SUM(CASE When ( dcp.objectOperation = 'fr.ird.referential.ps.common.ObjectOperation#0#10' Or dcp.objectOperation = 'fr.ird.referential.ps.common.ObjectOperation#0#3' ) And a.vesselActivity != 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586' Then 1 Else 0 End), \ +Sum(Case When dcp.objectObservedSpecies Is Not Empty Then (Select Sum(efo.count) From fr.ird.observe.entities.data.ps.observation.FloatingObjectImpl dcp1 Join dcp1.objectObservedSpecies efo With efo.species.speciesGroup.id = 'fr.ird.referential.common.SpeciesGroup#1239832683690#0.24333033683679461' Where dcp1 = dcp) Else 0 End) \ +From fr.ird.observe.entities.data.ps.common.TripImpl m \ +Join m.routeObs r \ +Join r.activity a With a.currentFpaZone.id = :zoneFpaId \ +Join a.floatingObject dcp \ +Where m.id In :tripId +request.2.repeat.name=zoneFpaId +request.2.repeat.layout=column +request.2.comment=visite + peche / visite - peche / Deploiement + peche / Deploiement - peche / Modifie + peche / Modifie - peche / Retire + peche / Retire - peche / Abandonne + peche / Abandonne - peche / Coule + peche / Coule - peche / Remplace + peche / Remplace - peche / Autre ou ancien peche + peche / Autre ou ancien peche - peche / Nombre de tortues +operations.1.type=SumIntRow +operations.1.parameters=0|1 +operations.2.type=SumIntColumn +operations.2.parameters=0|1 ===================================== core/persistence/report/src/main/resources/META-INF/report/default/ps/psObservationAllActivities.report ===================================== @@ -20,22 +20,25 @@ # #L% ### modelType=PS -name=Observations - Toutes les activités et leurs positions -name.en=Observations - Activities with their geographic position +name=Observations - Toutes les activités, leurs positions et zones FPA +name.en=Observations - Activities with their geographic position and FPA zones name.es= description=Afficher toutes les activités et leurs positions géographiques description.en=Display activities with their geographic position description.es= -columns=Jour,Heure observation,Latitude,Longitude,Activité,Commentaire -columns.en=Date,Hour,Latitude,Longitude,Activity,Comment +columns=Jour,Heure observation,Latitude,Longitude,Activité (code),Activité (nom),Zone FPA (code),Zone FPA (nom),Commentaire +columns.en=Date,Hour,Latitude,Longitude,Activity (code), Activity (label),FPA zone (code), FPA zone (label), Comment columns.es= request.1.location=0,0 request.1.layout=row -request.1.request=Select r.date, Cast(a.time As java.sql.Time), a.latitude, a.longitude, ab.@i18nColumnName@, a.comment \ +request.1.request=Select r.date, Cast(a.time As java.sql.Time), a.latitude, a.longitude, ab.code, ab.@i18nColumnName@, z.code, z.@i18nColumnName@, a.comment \ From TripImpl m \ Join m.routeObs r \ Join r.activity a \ Join a.vesselActivity ab \ +Left Join a.currentFpaZone z \ Where \ m.id In :tripId \ Order By r.date, a.time + + ===================================== core/persistence/report/src/main/resources/META-INF/report/default/ps/psObservationFobUsageExtended.report ===================================== @@ -33,17 +33,20 @@ repeatVariable.1.name=typeObjetId repeatVariable.1.type=java.lang.String repeatVariable.1.request=Select distinct (om.standardCode) \ From ObjectMaterialImpl om \ -Where standardCode is not null \ -And standardCode != '' \ -And (Select Count(dcp) \ +Where om.standardCode is not null \ +And om.standardCode != '' \ +And (om.standardCode In (Select Distinct(dcp.computedWhenArrivingSimplifiedObjectType) \ From fr.ird.observe.entities.data.ps.common.TripImpl m \ Join m.routeObs r \ Join r.activity a \ -Join a.floatingObject dcp \ -Where \ -m.id In :tripId \ -and (dcp.computedWhenArrivingSimplifiedObjectType = om.standardCode Or dcp.computedWhenLeavingSimplifiedObjectType = om.standardCode) \ -) > 0 +Join a.floatingObject dcp With dcp.computedWhenArrivingSimplifiedObjectType Is Not Null \ +Where m.id In :tripId ) Or om.standardCode In (Select Distinct(dcp.computedWhenLeavingSimplifiedObjectType) \ +From fr.ird.observe.entities.data.ps.common.TripImpl m \ +Join m.routeObs r \ +Join r.activity a \ +Join a.floatingObject dcp With dcp.computedWhenLeavingSimplifiedObjectType Is Not Null \ +Where m.id In :tripId )) \ +Order by om.standardCode request.1.location=0,0 request.1.layout=row request.1.request=Select concat(str(om.standardCode) , ' - ', om.@i18nColumnName@) \ @@ -55,258 +58,30 @@ request.1.repeat.name=typeObjetId request.1.repeat.layout=column request.2.location=1,0 request.2.layout=row -request.2.request=Select Count(dcp) \ -From fr.ird.observe.entities.data.ps.common.TripImpl m \ -Join m.routeObs r \ -Join r.activity a \ -Join a.floatingObject dcp \ -Where \ -m.id In :tripId \ -and dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId \ -and dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#2' \ -and a.vesselActivity.id = 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586' +request.2.request=Select \ +Sum(Case When dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId And dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#2' And a.vesselActivity.id = 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586' Then 1 Else 0 End), \ +Sum(Case When dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId And dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#2' And a.vesselActivity.id != 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586' Then 1 Else 0 End), \ +Sum(Case When dcp.computedWhenLeavingSimplifiedObjectType = :typeObjetId And dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#1' And a.vesselActivity.id = 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586' Then 1 Else 0 End), \ +Sum(Case When dcp.computedWhenLeavingSimplifiedObjectType = :typeObjetId And dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#1' And a.vesselActivity.id != 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586' Then 1 Else 0 End), \ +Sum(Case When dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId And dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#8' And a.vesselActivity.id = 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586' Then 1 Else 0 End), \ +Sum(Case When dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId And dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#8' And a.vesselActivity.id != 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586' Then 1 Else 0 End), \ +Sum(Case When dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId And dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#4' And a.vesselActivity.id = 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586' Then 1 Else 0 End), \ +Sum(Case When dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId And dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#4' And a.vesselActivity.id != 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586' Then 1 Else 0 End), \ +Sum(Case When dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId And dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#5' And a.vesselActivity.id = 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586' Then 1 Else 0 End), \ +Sum(Case When dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId And dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#5' And a.vesselActivity.id != 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586' Then 1 Else 0 End), \ +Sum(Case When dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId And dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#7' And a.vesselActivity.id = 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586' Then 1 Else 0 End), \ +Sum(Case When dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId And dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#7' And a.vesselActivity.id != 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586' Then 1 Else 0 End), \ +Sum(Case When dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId And dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#9' And a.vesselActivity.id = 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586' Then 1 Else 0 End), \ +Sum(Case When dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId And dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#9' And a.vesselActivity.id != 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586' Then 1 Else 0 End), \ +Sum(Case When dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId And (dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#10' Or dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#3') And a.vesselActivity.id = 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586' Then 1 Else 0 End), \ +Sum(Case When dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId And (dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#10' Or dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#3') And a.vesselActivity.id != 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586' Then 1 Else 0 End), \ +Sum(Case When dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId And dcp.objectObservedSpecies Is Not Empty Then (Select Sum(efo.count) From fr.ird.observe.entities.data.ps.observation.FloatingObjectImpl dcp1 Join dcp1.objectObservedSpecies efo With efo.species.speciesGroup.id = 'fr.ird.referential.common.SpeciesGroup#1239832683690#0.24333033683679461' Where dcp1 = dcp) Else 0 End) \ +From fr.ird.observe.entities.data.ps.common.TripImpl m \ +Join m.routeObs r \ +Join r.activity a \ +Join a.floatingObject dcp With dcp.computedWhenLeavingSimplifiedObjectType = :typeObjetId Or dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId \ +Where \ +m.id In :tripId request.2.repeat.name=typeObjetId request.2.repeat.layout=column -request.2.comment=visite + peche -request.3.location=2,0 -request.3.layout=row -request.3.request=Select Count(dcp) \ -From fr.ird.observe.entities.data.ps.common.TripImpl m \ -Join m.routeObs r \ -Join r.activity a \ -Join a.floatingObject dcp \ -Where \ -m.id In :tripId \ -and dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId \ -and dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#2' \ -and a.vesselActivity.id != 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586' -request.3.repeat.name=typeObjetId -request.3.repeat.layout=column -request.3.comment=visite - peche -request.4.location=3,0 -request.4.layout=row -request.4.request=Select Count(dcp) \ -From fr.ird.observe.entities.data.ps.common.TripImpl m \ -Join m.routeObs r \ -Join r.activity a \ -Join a.floatingObject dcp \ -Where \ -m.id In :tripId \ -and dcp.computedWhenLeavingSimplifiedObjectType = :typeObjetId \ -and dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#1' \ -and a.vesselActivity.id = 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586' -request.4.repeat.name=typeObjetId -request.4.repeat.layout=column -request.4.comment=Deploiement + peche -request.5.location=4,0 -request.5.layout=row -request.5.request=Select Count(dcp) \ -From fr.ird.observe.entities.data.ps.common.TripImpl m \ -Join m.routeObs r \ -Join r.activity a \ -Join a.floatingObject dcp \ -Where \ -m.id In :tripId \ -and dcp.computedWhenLeavingSimplifiedObjectType = :typeObjetId \ -and dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#1' \ -and a.vesselActivity.id != 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586' -request.5.repeat.name=typeObjetId -request.5.repeat.layout=column -request.5.comment=Deploiement - peche -request.6.location=5,0 -request.6.layout=row -request.6.request=Select Count(dcp) \ -From fr.ird.observe.entities.data.ps.common.TripImpl m \ -Join m.routeObs r \ -Join r.activity a \ -Join a.floatingObject dcp \ -Where \ -m.id In :tripId \ -and dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId \ -and dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#8' \ -and a.vesselActivity.id = 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586' -request.6.repeat.name=typeObjetId -request.6.repeat.layout=column -request.6.comment=Modifie + peche -request.7.location=6,0 -request.7.layout=row -request.7.request=Select Count(dcp) \ -From fr.ird.observe.entities.data.ps.common.TripImpl m \ -Join m.routeObs r \ -Join r.activity a \ -Join a.floatingObject dcp \ -Where \ -m.id In :tripId \ -and dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId \ -and dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#8' \ -and a.vesselActivity.id != 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586' -request.7.repeat.name=typeObjetId -request.7.repeat.layout=column -request.7.comment=Modifie - peche -request.8.location=7,0 -request.8.layout=row -request.8.request=Select Count(dcp) \ -From fr.ird.observe.entities.data.ps.common.TripImpl m \ -Join m.routeObs r \ -Join r.activity a \ -Join a.floatingObject dcp \ -Where \ -m.id In :tripId \ -and dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId \ -and dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#4' \ -and a.vesselActivity.id = 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586' -request.8.repeat.name=typeObjetId -request.8.repeat.layout=column -request.8.comment=Retire + peche -request.9.location=8,0 -request.9.layout=row -request.9.request=Select Count(dcp) \ -From fr.ird.observe.entities.data.ps.common.TripImpl m \ -Join m.routeObs r \ -Join r.activity a \ -Join a.floatingObject dcp \ -Where \ -m.id In :tripId \ -and dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId \ -and dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#4' \ -and a.vesselActivity.id != 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586' -request.9.repeat.name=typeObjetId -request.9.repeat.layout=column -request.9.comment=Retire - peche -request.10.location=9,0 -request.10.layout=row -request.10.request=Select Count(dcp) \ -From fr.ird.observe.entities.data.ps.common.TripImpl m \ -Join m.routeObs r \ -Join r.activity a \ -Join a.floatingObject dcp \ -Where \ -m.id In :tripId \ -and dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId \ -and dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#5' \ -and a.vesselActivity.id = 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586' -request.10.repeat.name=typeObjetId -request.10.repeat.layout=column -request.10.comment=Abandonne + peche -request.11.location=10,0 -request.11.layout=row -request.11.request=Select Count(dcp) \ -From fr.ird.observe.entities.data.ps.common.TripImpl m \ -Join m.routeObs r \ -Join r.activity a \ -Join a.floatingObject dcp \ -Where \ -m.id In :tripId \ -and dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId \ -and dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#5' \ -and a.vesselActivity.id != 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586' -request.11.repeat.name=typeObjetId -request.11.repeat.layout=column -request.11.comment=Abandonne - peche -request.12.location=11,0 -request.12.layout=row -request.12.request=Select Count(dcp) \ -From fr.ird.observe.entities.data.ps.common.TripImpl m \ -Join m.routeObs r \ -Join r.activity a \ -Join a.floatingObject dcp \ -Where \ -m.id In :tripId \ -and dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId \ -and dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#7' \ -and a.vesselActivity.id = 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586' -request.12.repeat.name=typeObjetId -request.12.repeat.layout=column -request.12.comment=Coule + peche -request.13.location=12,0 -request.13.layout=row -request.13.request=Select Count(dcp) \ -From fr.ird.observe.entities.data.ps.common.TripImpl m \ -Join m.routeObs r \ -Join r.activity a \ -Join a.floatingObject dcp \ -Where \ -m.id In :tripId \ -and dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId \ -and dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#7' \ -and a.vesselActivity.id != 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586' -request.13.repeat.name=typeObjetId -request.13.repeat.layout=column -request.13.comment=Coule - peche -request.14.location=13,0 -request.14.layout=row -request.14.request=Select Count(dcp) \ -From fr.ird.observe.entities.data.ps.common.TripImpl m \ -Join m.routeObs r \ -Join r.activity a \ -Join a.floatingObject dcp \ -Where \ -m.id In :tripId \ -and dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId \ -and dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#9' \ -and a.vesselActivity.id = 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586' -request.14.repeat.name=typeObjetId -request.14.repeat.layout=column -request.14.comment=Remplace + peche -request.15.location=14,0 -request.15.layout=row -request.15.request=Select Count(dcp) \ -From fr.ird.observe.entities.data.ps.common.TripImpl m \ -Join m.routeObs r \ -Join r.activity a \ -Join a.floatingObject dcp \ -Where \ -m.id In :tripId \ -and dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId \ -and dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#9' \ -and a.vesselActivity.id != 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586' -request.15.repeat.name=typeObjetId -request.15.repeat.layout=column -request.15.comment=Remplace - peche -request.16.location=15,0 -request.16.layout=row -request.16.request=Select Count(dcp) \ -From fr.ird.observe.entities.data.ps.common.TripImpl m \ -Join m.routeObs r \ -Join r.activity a \ -Join a.floatingObject dcp \ -Where \ -m.id In :tripId \ -and dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId \ -and (dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#10' \ -or dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#3') \ -and a.vesselActivity.id = 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586' -request.16.repeat.name=typeObjetId -request.16.repeat.layout=column -request.16.comment=Autre ou ancien peche + peche -request.17.location=16,0 -request.17.layout=row -request.17.request=Select Count(dcp) \ -From fr.ird.observe.entities.data.ps.common.TripImpl m \ -Join m.routeObs r \ -Join r.activity a \ -Join a.floatingObject dcp \ -Where \ -m.id In :tripId \ -and dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId \ -and (dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#10' \ -or dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#3') \ -and a.vesselActivity.id != 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586' -request.17.repeat.name=typeObjetId -request.17.repeat.layout=column -request.17.comment=Autre ou ancien peche - peche -request.18.location=17,0 -request.18.layout=row -request.18.request=Select Sum(efo.count) \ -From fr.ird.observe.entities.data.ps.common.TripImpl m \ -Join m.routeObs r \ -Join r.activity a \ -Join a.floatingObject dcp \ -Join dcp.objectObservedSpecies efo \ -Where \ -m.id In :tripId \ -and dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId \ -and efo.species.speciesGroup.id = 'fr.ird.referential.common.SpeciesGroup#1239832683690#0.24333033683679461' -request.18.repeat.name=typeObjetId -request.18.repeat.layout=column -request.18.comment=Nombre de tortues +request.2.comment=visite + peche / visite - peche / Deploiement + peche / Deploiement - peche / Modifie + peche / Modifie - peche / Retire + peche / Retire - peche / Abandonne + peche / Abandonne - peche / Coule + peche / Coule - peche / Remplace + peche / Remplace - peche / Autre ou ancien peche + peche / Autre ou ancien peche - peche / Nombre de tortues ===================================== core/persistence/report/src/main/resources/META-INF/report/default/ps/psObservationFobUsageMinimal.report ===================================== @@ -33,17 +33,20 @@ repeatVariable.1.name=typeObjetId repeatVariable.1.type=java.lang.String repeatVariable.1.request=Select distinct (om.standardCode) \ From ObjectMaterialImpl om \ -Where standardCode is not null \ -And standardCode != '' \ -And (Select Count(dcp) \ +Where om.standardCode is not null \ +And om.standardCode != '' \ +And (om.standardCode In (Select Distinct(dcp.computedWhenArrivingSimplifiedObjectType) \ From fr.ird.observe.entities.data.ps.common.TripImpl m \ Join m.routeObs r \ Join r.activity a \ -Join a.floatingObject dcp \ -Where \ -m.id In :tripId \ -and (dcp.computedWhenArrivingSimplifiedObjectType = om.standardCode Or dcp.computedWhenLeavingSimplifiedObjectType = om.standardCode) \ -) > 0 +Join a.floatingObject dcp With dcp.computedWhenArrivingSimplifiedObjectType Is Not Null \ +Where m.id In :tripId ) Or om.standardCode In (Select Distinct(dcp.computedWhenLeavingSimplifiedObjectType) \ +From fr.ird.observe.entities.data.ps.common.TripImpl m \ +Join m.routeObs r \ +Join r.activity a \ +Join a.floatingObject dcp With dcp.computedWhenLeavingSimplifiedObjectType Is Not Null \ +Where m.id In :tripId )) \ +Order by om.standardCode repeatVariable.1.comment=liste des types CECOFAD en presence sur les donnees selectionnees request.1.location=0,0 request.1.layout=row @@ -56,74 +59,31 @@ request.1.repeat.name=typeObjetId request.1.repeat.layout=column request.2.location=1,0 request.2.layout=row -request.2.request=Select Count(dcp) \ -From fr.ird.observe.entities.data.ps.common.TripImpl m \ -Join m.routeObs r \ -Join r.activity a \ -Join a.floatingObject dcp \ -Where \ -m.id In :tripId \ -and dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId \ -and a.vesselActivity.id = 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586' \ -and (dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#2' \ +request.2.request=Select \ +Sum(Case When dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId And a.vesselActivity.id = 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586' And (dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#2' \ or dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#8' \ or dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#4' \ or dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#5' \ or dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#7' \ or dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#9' \ or dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#10' \ -or dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#3') -request.2.repeat.name=typeObjetId -request.2.repeat.layout=column -request.2.comment=rencontres + peches -request.3.location=2,0 -request.3.layout=row -request.3.request=Select Count(dcp) \ -From fr.ird.observe.entities.data.ps.common.TripImpl m \ -Join m.routeObs r \ -Join r.activity a \ -Join a.floatingObject dcp \ -Where \ -m.id In :tripId \ -and dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId \ -and a.vesselActivity.id != 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586' \ -and (dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#2' \ +or dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#3') Then 1 Else 0 End), \ +Sum(Case When dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId And a.vesselActivity.id != 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586' And (dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#2' \ or dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#8' \ or dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#4' \ or dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#5' \ or dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#7' \ or dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#9' \ or dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#10' \ -or dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#3') -request.3.repeat.name=typeObjetId -request.3.repeat.layout=column -request.3.comment=rencontres - peches -request.4.location=3,0 -request.4.layout=row -request.4.request=Select Count(dcp) \ -From fr.ird.observe.entities.data.ps.common.TripImpl m \ -Join m.routeObs r \ -Join r.activity a \ -Join a.floatingObject dcp \ -Where \ -m.id In :tripId \ -and dcp.computedWhenLeavingSimplifiedObjectType = :typeObjetId \ -and dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#1' -request.4.repeat.name=typeObjetId -request.4.repeat.layout=column -request.4.comment=deployes -request.5.location=4,0 -request.5.layout=row -request.5.request=Select Sum(efo.count) \ +or dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#3') Then 1 Else 0 End), \ +Sum(Case When dcp.computedWhenLeavingSimplifiedObjectType = :typeObjetId And dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#1' Then 1 Else 0 End), \ +Sum(Case When dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId And dcp.objectObservedSpecies Is Not Empty Then (Select Sum(efo.count) From fr.ird.observe.entities.data.ps.observation.FloatingObjectImpl dcp1 Join dcp1.objectObservedSpecies efo With efo.species.speciesGroup.id = 'fr.ird.referential.common.SpeciesGroup#1239832683690#0.24333033683679461' Where dcp1 = dcp) Else 0 End) \ From fr.ird.observe.entities.data.ps.common.TripImpl m \ Join m.routeObs r \ Join r.activity a \ -Join a.floatingObject dcp \ -Join dcp.objectObservedSpecies efo \ +Join a.floatingObject dcp With dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId Or dcp.computedWhenLeavingSimplifiedObjectType = :typeObjetId \ Where \ -m.id In :tripId \ -and dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId \ -and efo.species.speciesGroup.id = 'fr.ird.referential.common.SpeciesGroup#1239832683690#0.24333033683679461' -request.5.repeat.name=typeObjetId -request.5.repeat.layout=column -request.5.comment=Nombre de tortues +m.id In :tripId +request.2.repeat.name=typeObjetId +request.2.repeat.layout=column +request.2.comment=rencontres + peches / rencontres - peches / deployes / Nombre de tortues ===================================== core/persistence/report/src/main/resources/META-INF/report/embedded.list ===================================== @@ -17,6 +17,7 @@ default/ps/psLogbookSampleSpeciesMeasuresCount.report default/ps/psLogbookTrip.report default/ps/psLogbookWellPlan.report default/ps/psLogbookWellPlanCheck.report +default/ps/psObservationActivitiesByZone.report default/ps/psObservationActivityWithComment.report default/ps/psObservationAllActivities.report default/ps/psObservationCatch.report ===================================== core/persistence/report/src/test/java/fr/ird/observe/report/ToolsTest.java ===================================== @@ -47,7 +47,7 @@ import java.util.Objects; public class ToolsTest { - public static final int REPORTS_COUNT_COUNT = 34; + public static final int REPORTS_COUNT_COUNT = 35; private static Path reportsPath(Path basedir) { return basedir.resolve("src").resolve("main").resolve("resources").resolve("META-INF").resolve("report"); ===================================== core/services/test/src/main/java/fr/ird/observe/services/service/report/ps/PsObservationActivitiesByZoneReportFixture.java ===================================== @@ -0,0 +1,48 @@ +package fr.ird.observe.services.service.report.ps; + +/*- + * #%L + * ObServe Core :: Services :: Test + * %% + * Copyright (C) 2008 - 2024 IRD, Ultreia.io + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program. If not, see + * <http://www.gnu.org/licenses/gpl-3.0.html>. + * #L% + */ + +import com.google.auto.service.AutoService; +import fr.ird.observe.report.Report; +import fr.ird.observe.report.definition.ReportRequestDefinition; +import fr.ird.observe.report.definition.RequestLayout; +import fr.ird.observe.services.service.ReportFixture; + +import java.util.Iterator; + +/** + * Created at 15/03/2024. + * + * @author Tony Chemit - dev@tchemit.fr + * @since 9.3.0 + */ +@AutoService(ReportFixture.class) +public class PsObservationActivitiesByZoneReportFixture extends ReportFixture { + @Override + public void assertSyntax(Report report) { + super.assertSyntax(report); + Iterator<ReportRequestDefinition> requests = getRequestIterator(report); + assertReportRequestDimension(requests, RequestLayout.row, 0, 0); + assertReportRequestDimension(requests, RequestLayout.row, 1, 0); + } +} ===================================== core/services/test/src/main/java/fr/ird/observe/services/service/report/ps/PsObservationFobUsageExtendedReportFixture.java ===================================== @@ -45,6 +45,5 @@ public class PsObservationFobUsageExtendedReportFixture extends ReportFixture { Iterator<ReportRequestDefinition> requests = getRequestIterator(report); assertReportRequestDimension(requests, RequestLayout.row, 0, 0); assertReportRequestDimension(requests, RequestLayout.row, 1, 0); - assertReportRequestDimension(requests, RequestLayout.row, 2, 0); } } ===================================== core/services/test/src/main/java/fr/ird/observe/services/service/report/ps/PsObservationFobUsageMinimalReportFixture.java ===================================== @@ -45,6 +45,5 @@ public class PsObservationFobUsageMinimalReportFixture extends ReportFixture { Iterator<ReportRequestDefinition> requests = getRequestIterator(report); assertReportRequestDimension(requests, RequestLayout.row, 0, 0); assertReportRequestDimension(requests, RequestLayout.row, 1, 0); - assertReportRequestDimension(requests, RequestLayout.row, 2, 0); } } ===================================== core/services/test/src/main/resources/fixtures/fr/ird/observe/services/service/ReportService-psLogbookWellPlanCheck.properties ===================================== @@ -25,7 +25,7 @@ syntax.rows=-1 syntax.columns=20 syntax.columnsHeader=Code bateau^Nom bateau^Date départ^Date arrivée^Date de route^Numéro activité^Heure activité^Logbook YFT^Logbook SKJ^Logbook BET^Logbook ALB^Logbook Autres^Plan de cuves YFT^Plan de cuves SKJ^Plan de cuves BET^Plan de cuves ALB^Plan de cuves Autres^Logbook Total^Plan de cuves Total^Différence syntax.rowsHeader= -syntax.nbRequests=5 +syntax.nbRequests=1 result.columns=20 result.rows=4 result.0=483^CAP BOJADOR^30/03/2019^08/04/2019^30/03/2019^1^15:12^0.0^123.0^43.0^0.0^0.0^0.0^0.0^12.0^0.0^0.0^166.0^12.0^154.0 ===================================== core/services/test/src/main/resources/fixtures/fr/ird/observe/services/service/ReportService-psObservationActivitiesByZone.properties ===================================== @@ -0,0 +1,33 @@ +### +# #%L +# ObServe Core :: Services :: Test +# %% +# Copyright (C) 2008 - 2024 IRD, Ultreia.io +# %% +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public +# License along with this program. If not, see +# <http://www.gnu.org/licenses/gpl-3.0.html>. +# #L% +### +syntax.rows=-1 +syntax.columns=19 +syntax.columnsHeader=Zone^Visités Pêchés^Visités non Pêchés^Déploiement après Pêches^Déploiement seul^Modifiés Pêchés^Modifiés non Pêchés^Retirés Pêchés^Retirés non Pêchés^Abandonnés Pêchés^Abandonnés non Pêchés^Coulés Pêchés^Coulés non Pêchés^Remplacés Pêchés^Remplacés non Pêchés^Autre Pêchés^Autre non Pêchés^Tortues associées^Total +syntax.rowsHeader= +syntax.nbRequests=2 +result.columns=19 +result.rows=3 +result.0=CIV - Côte d'Ivoire^1^9^1^0^0^0^0^0^0^0^0^0^0^0^0^0^0^11 +result.1=LBR - Libéria^0^7^0^27^0^0^0^0^0^0^0^0^0^0^0^0^0^34 +result.2=Total^1^16^1^27^0^0^0^0^0^0^0^0^0^0^0^0^0^45 +syntax.name=Observations - Types d'activités par zones FPA +syntax.description=Tableau récapitulatif des types d'activités par zone FPA traversée \ No newline at end of file ===================================== core/services/test/src/main/resources/fixtures/fr/ird/observe/services/service/ReportService-psObservationAllActivities.properties ===================================== @@ -19,152 +19,152 @@ # <http://www.gnu.org/licenses/gpl-3.0.html>. # #L% ### -result.0=30/03/2019^18:00^5.2833^-4.0^Au port^Départ du port de pêche pour la fin de la marée -result.1=30/03/2019^19:00^5.1667^-4.0^Transit (route sans recherche)^Route de nuit -result.2=31/03/2019^06:13^3.95^-5.2667^Recherche (général)^null -result.3=31/03/2019^06:54^3.95^-5.35^Thonier arrivant sur le système détecté^null -result.4=31/03/2019^07:50^3.9667^-5.35^Pêche (larguage du skiff)^null -result.5=31/03/2019^10:55^3.9833^-5.2833^Thonier arrivant sur le système détecté^null -result.6=31/03/2019^11:24^3.9833^-5.2667^Pêche (larguage du skiff)^null -result.7=31/03/2019^14:56^3.95^-5.3333^Thonier arrivant sur le système détecté^ -result.8=31/03/2019^15:05^3.95^-5.3333^Opération sur objet flottant (visite, pose, modification, récupération)^null -result.9=31/03/2019^16:11^3.8167^-5.4167^Thonier arrivant sur le système détecté^ -result.10=31/03/2019^16:22^3.8333^-5.4167^Opération sur objet flottant (visite, pose, modification, récupération)^null -result.11=31/03/2019^16:53^3.7833^-5.4833^Thonier arrivant sur le système détecté^ -result.12=31/03/2019^17:03^3.7833^-5.4833^Opération sur objet flottant (visite, pose, modification, récupération)^null -result.13=31/03/2019^18:03^3.7833^-5.4667^Recherche (général)^null -result.14=31/03/2019^18:44^3.8667^-5.4833^Fin de veille^null -result.15=31/03/2019^19:00^3.9^-5.5^En dérive de nuit (moteur stoppé)^null -result.16=01/04/2019^06:15^3.9833^-5.3167^Recherche (général)^null -result.17=01/04/2019^07:43^3.8333^-5.2667^Thonier arrivant sur le système détecté^ -result.18=01/04/2019^07:56^3.8333^-5.25^Opération sur objet flottant (visite, pose, modification, récupération)^null -result.19=01/04/2019^08:15^3.8833^-5.2333^Recherche (général)^null -result.20=01/04/2019^08:41^3.9333^-5.2833^Thonier arrivant sur le système détecté^null -result.21=01/04/2019^09:41^3.9167^-5.25^Pêche (larguage du skiff)^null -result.22=01/04/2019^09:41^3.9167^-5.25^Pêche (larguage du skiff)^null -result.23=01/04/2019^12:15^3.9^-5.2833^Recherche (général)^null -result.24=01/04/2019^12:34^3.9333^-5.3^Thonier arrivant sur le système détecté^null -result.25=01/04/2019^12:40^3.9333^-5.3^Pêche (larguage du skiff)^null -result.26=01/04/2019^16:15^3.8833^-5.2667^Recherche (général)^null -result.27=01/04/2019^16:38^3.9333^-5.3^Thonier arrivant sur le système détecté^null -result.28=01/04/2019^16:51^3.9333^-5.3^Pêche (larguage du skiff)^ -result.29=01/04/2019^21:17^3.95^-5.2167^Fin de veille^null -result.30=01/04/2019^21:18^3.95^-5.2167^Transit (route sans recherche)^Route jusqu'à 22H -result.31=02/04/2019^06:15^3.9^-5.1833^Recherche (général)^null -result.32=02/04/2019^06:57^3.9333^-5.25^Thonier arrivant sur le système détecté^null -result.33=02/04/2019^07:11^3.95^-5.25^Pêche (larguage du skiff)^ -result.34=02/04/2019^10:15^3.9167^-5.2167^Recherche (général)^null -result.35=02/04/2019^12:15^3.8833^-5.25^Recherche (général)^null -result.36=02/04/2019^13:58^3.9^-4.9333^Thonier arrivant sur le système détecté^ -result.37=02/04/2019^14:15^3.9^-4.9333^Thonier arrivant sur le système détecté^null -result.38=02/04/2019^14:22^3.9^-4.95^Pêche (larguage du skiff)^null -result.39=02/04/2019^18:44^3.8833^-4.95^Fin de veille^null -result.40=02/04/2019^19:12^3.8667^-5.0^En dérive de nuit (moteur stoppé)^null -result.41=03/04/2019^06:15^3.9^-4.9^Thonier arrivant sur le système détecté^ -result.42=03/04/2019^07:16^3.8833^-4.95^Thonier arrivant sur le système détecté^null -result.43=03/04/2019^07:51^3.8833^-4.9333^Pêche (larguage du skiff)^null -result.44=03/04/2019^10:15^3.8833^-4.9167^Thonier arrivant sur le système détecté^Banc sous autre senneur -result.45=03/04/2019^12:15^3.9^-4.9167^Thonier arrivant sur le système détecté^ -result.46=03/04/2019^14:15^3.9^-4.8833^Recherche (général)^null -result.47=03/04/2019^15:28^3.9667^-4.85^Thonier arrivant sur le système détecté^ -result.48=03/04/2019^15:36^3.9667^-4.85^Opération sur objet flottant (visite, pose, modification, récupération)^null -result.49=03/04/2019^16:15^3.8833^-4.9167^Recherche (général)^null -result.50=03/04/2019^18:15^3.8667^-4.9833^Recherche (général)^null -result.51=03/04/2019^18:42^3.8333^-5.05^Fin de veille^null -result.52=03/04/2019^18:50^3.8167^-5.05^En dérive de nuit (moteur stoppé)^null -result.53=04/04/2019^06:12^3.9^-4.8667^Recherche (général)^ -result.54=04/04/2019^08:12^3.8667^-4.8833^Recherche (général)^null -result.55=04/04/2019^10:12^3.6^-4.6167^Recherche (général)^null -result.56=04/04/2019^12:04^3.3^-4.4333^Thonier arrivant sur le système détecté^ -result.57=04/04/2019^12:12^3.3^-4.4333^Opération sur objet flottant (visite, pose, modification, récupération)^null -result.58=04/04/2019^14:12^3.05^-4.7^Recherche (général)^null -result.59=04/04/2019^15:43^2.8667^-4.9167^Thonier arrivant sur le système détecté^ -result.60=04/04/2019^15:46^2.8667^-4.9167^Opération sur objet flottant (visite, pose, modification, récupération)^null -result.61=04/04/2019^16:12^2.8167^-5.0^Recherche (général)^null -result.62=04/04/2019^18:12^2.6333^-5.3333^Recherche (général)^null -result.63=04/04/2019^18:41^2.6^-5.4167^Fin de veille^null -result.64=04/04/2019^18:42^2.6^-5.4167^Route de nuit vers objet^Route toute la nuit -result.65=05/04/2019^06:20^1.5167^-7.4^Thonier arrivant sur le système détecté^ -result.66=05/04/2019^06:28^1.5^-7.4167^Opération sur objet flottant (visite, pose, modification, récupération)^null -result.67=05/04/2019^07:02^1.5^-7.5333^Changement de zone FPA^null -result.68=05/04/2019^07:11^1.5^-7.55^Opération sur objet flottant (visite, pose, modification, récupération)^null -result.69=05/04/2019^07:34^1.5^-7.6333^Opération sur objet flottant (visite, pose, modification, récupération)^null -result.70=05/04/2019^08:03^1.4667^-7.6833^Opération sur objet flottant (visite, pose, modification, récupération)^null -result.71=05/04/2019^08:20^1.4333^-7.7167^Recherche (général)^null -result.72=05/04/2019^08:32^1.4^-7.7333^Opération sur objet flottant (visite, pose, modification, récupération)^null -result.73=05/04/2019^08:38^1.3833^-7.75^Thonier arrivant sur le système détecté^ -result.74=05/04/2019^08:50^1.3667^-7.7333^Opération sur objet flottant (visite, pose, modification, récupération)^null -result.75=05/04/2019^09:07^1.4^-7.7667^Opération sur objet flottant (visite, pose, modification, récupération)^null -result.76=05/04/2019^09:37^1.45^-7.8667^Opération sur objet flottant (visite, pose, modification, récupération)^null -result.77=05/04/2019^10:02^1.4833^-7.9167^Opération sur objet flottant (visite, pose, modification, récupération)^null -result.78=05/04/2019^10:20^1.5^-7.9667^Recherche (général)^null -result.79=05/04/2019^10:29^1.4833^-7.9833^Thonier arrivant sur le système détecté^ -result.80=05/04/2019^10:41^1.5^-8.0^Opération sur objet flottant (visite, pose, modification, récupération)^null -result.81=05/04/2019^11:03^1.5333^-8.05^Opération sur objet flottant (visite, pose, modification, récupération)^null -result.82=05/04/2019^11:31^1.5833^-8.1167^Opération sur objet flottant (visite, pose, modification, récupération)^null -result.83=05/04/2019^12:00^1.65^-8.1833^Opération sur objet flottant (visite, pose, modification, récupération)^null -result.84=05/04/2019^12:20^1.7333^-8.2333^Recherche (général)^null -result.85=05/04/2019^12:35^1.75^-8.2667^Opération sur objet flottant (visite, pose, modification, récupération)^null -result.86=05/04/2019^13:04^1.8167^-8.3167^Opération sur objet flottant (visite, pose, modification, récupération)^null -result.87=05/04/2019^13:30^1.85^-8.3333^Thonier arrivant sur le système détecté^ -result.88=05/04/2019^13:38^1.8667^-8.3333^Opération sur objet flottant (visite, pose, modification, récupération)^ -result.89=05/04/2019^14:00^1.9167^-8.3667^Opération sur objet flottant (visite, pose, modification, récupération)^null -result.90=05/04/2019^14:19^1.95^-8.4167^Thonier arrivant sur le système détecté^ -result.91=05/04/2019^14:26^1.95^-8.4167^Opération sur objet flottant (visite, pose, modification, récupération)^null -result.92=05/04/2019^15:05^2.0667^-8.4333^Opération sur objet flottant (visite, pose, modification, récupération)^null -result.93=05/04/2019^15:35^2.15^-8.4333^Opération sur objet flottant (visite, pose, modification, récupération)^null -result.94=05/04/2019^15:36^2.15^-8.4333^Thonier arrivant sur le système détecté^ -result.95=05/04/2019^15:46^2.15^-8.4333^Opération sur objet flottant (visite, pose, modification, récupération)^null -result.96=05/04/2019^16:02^2.2^-8.4333^Opération sur objet flottant (visite, pose, modification, récupération)^null -result.97=05/04/2019^16:20^2.2167^-8.4167^Recherche (général)^null -result.98=05/04/2019^16:36^2.2667^-8.4^Opération sur objet flottant (visite, pose, modification, récupération)^null -result.99=05/04/2019^16:46^2.2333^-8.3833^Thonier arrivant sur le système détecté^ -result.100=05/04/2019^16:53^2.2333^-8.3833^Opération sur objet flottant (visite, pose, modification, récupération)^null -result.101=05/04/2019^17:08^2.2667^-8.3667^Opération sur objet flottant (visite, pose, modification, récupération)^null -result.102=05/04/2019^17:17^2.2833^-8.35^Thonier arrivant sur le système détecté^ -result.103=05/04/2019^17:24^2.2833^-8.35^Opération sur objet flottant (visite, pose, modification, récupération)^ -result.104=05/04/2019^17:34^2.3^-8.3333^Opération sur objet flottant (visite, pose, modification, récupération)^null -result.105=05/04/2019^17:37^2.3167^-8.3333^Fin de veille^null -result.106=05/04/2019^18:00^2.3667^-8.3167^Thonier arrivant sur le système détecté^ -result.107=05/04/2019^18:15^2.35^-8.3167^Opération sur objet flottant (visite, pose, modification, récupération)^null -result.108=05/04/2019^18:40^2.3333^-8.35^En dérive de nuit (moteur stoppé)^null -result.109=06/04/2019^06:35^2.35^-8.3333^Avaries en mer^Avarie au niveau du moteur, navire stoppé (réparation en cours) -result.110=06/04/2019^12:05^2.3333^-8.3333^Avaries en mer^Avarie au niveau du moteur, navire stoppé (réparation en cours) -result.111=06/04/2019^17:55^2.3667^-8.2833^Transit (route sans recherche)^Réparation de l'avarie terminée. -result.112=06/04/2019^18:00^2.3667^-8.2833^Opération sur objet flottant (visite, pose, modification, récupération)^null -result.113=06/04/2019^18:16^2.3833^-8.25^Opération sur objet flottant (visite, pose, modification, récupération)^null -result.114=06/04/2019^18:26^2.4^-8.2167^Opération sur objet flottant (visite, pose, modification, récupération)^null -result.115=06/04/2019^18:36^2.4167^-8.2^Opération sur objet flottant (visite, pose, modification, récupération)^null -result.116=06/04/2019^18:46^2.45^-8.1833^Opération sur objet flottant (visite, pose, modification, récupération)^null -result.117=06/04/2019^18:57^2.4667^-8.15^Opération sur objet flottant (visite, pose, modification, récupération)^null -result.118=06/04/2019^19:05^2.4833^-8.1333^Opération sur objet flottant (visite, pose, modification, récupération)^null -result.119=06/04/2019^19:06^2.4833^-8.1333^Transit (route sans recherche)^Route de nuit -result.120=07/04/2019^06:24^3.4333^-6.2^Changement de zone FPA^Changement de zone effectué le 06/04/2019 à 22H35 T.U à la position 02°45N et 007°33 W -result.121=07/04/2019^08:24^3.65^-5.8667^Recherche (général)^null -result.122=07/04/2019^10:24^3.8167^-5.5^Recherche (général)^null -result.123=07/04/2019^12:24^3.9167^-5.1167^Thonier arrivant sur le système détecté^ -result.124=07/04/2019^12:43^3.9167^-5.1^Opération sur objet flottant (visite, pose, modification, récupération)^null -result.125=07/04/2019^12:52^3.9167^-5.0833^Thonier arrivant sur le système détecté^ -result.126=07/04/2019^14:18^3.9^-5.0833^Thonier arrivant sur le système détecté^null -result.127=07/04/2019^14:21^3.9^-5.0833^Pêche (larguage du skiff)^null -result.128=07/04/2019^18:24^3.9^-4.8833^Recherche (général)^null -result.129=07/04/2019^18:33^3.9^-4.8667^Fin de veille^Averse -result.130=07/04/2019^18:34^3.9^-4.8667^Transit (route sans recherche)^Route de nuit jusqu'à 1H -result.131=08/04/2019^06:30^4.0667^-3.45^Transit (route sans recherche)^navire en approche pour le début de l'aviataillement -result.132=08/04/2019^07:30^4.0667^-3.45^Autres (à préciser dans les notes)^Début de l'aviatillement en gasoil. -result.133=08/04/2019^11:34^4.1833^-3.3333^Autres (à préciser dans les notes)^Fin avitaillement en gasoil, poursuite de la route -result.134=08/04/2019^12:30^4.3167^-3.4167^Recherche (général)^null -result.135=08/04/2019^14:30^4.6^-3.6^Recherche (général)^null -result.136=08/04/2019^16:00^4.8167^-3.75^Fin de veille^null -result.137=08/04/2019^16:30^4.8833^-3.8167^Transit (route sans recherche)^ -result.138=08/04/2019^18:30^5.1^-3.95^Transit (route sans recherche)^null -result.139=08/04/2019^21:05^5.2833^-4.0167^Au port^Navire au port de pêche d'Abidjan. -syntax.name=Observations - Toutes les activités et leurs positions +result.0=30/03/2019^18:00^5.2833^-4.0^0^Au port^CIV^Côte d'Ivoire^Départ du port de pêche pour la fin de la marée +result.1=30/03/2019^19:00^5.1667^-4.0^1^Transit (route sans recherche)^CIV^Côte d'Ivoire^Route de nuit +result.2=31/03/2019^06:13^3.95^-5.2667^2^Recherche (général)^CIV^Côte d'Ivoire^null +result.3=31/03/2019^06:54^3.95^-5.35^5^Thonier arrivant sur le système détecté^CIV^Côte d'Ivoire^null +result.4=31/03/2019^07:50^3.9667^-5.35^6^Pêche (larguage du skiff)^CIV^Côte d'Ivoire^null +result.5=31/03/2019^10:55^3.9833^-5.2833^5^Thonier arrivant sur le système détecté^CIV^Côte d'Ivoire^null +result.6=31/03/2019^11:24^3.9833^-5.2667^6^Pêche (larguage du skiff)^CIV^Côte d'Ivoire^null +result.7=31/03/2019^14:56^3.95^-5.3333^5^Thonier arrivant sur le système détecté^CIV^Côte d'Ivoire^ +result.8=31/03/2019^15:05^3.95^-5.3333^13^Opération sur objet flottant (visite, pose, modification, récupération)^CIV^Côte d'Ivoire^null +result.9=31/03/2019^16:11^3.8167^-5.4167^5^Thonier arrivant sur le système détecté^CIV^Côte d'Ivoire^ +result.10=31/03/2019^16:22^3.8333^-5.4167^13^Opération sur objet flottant (visite, pose, modification, récupération)^CIV^Côte d'Ivoire^null +result.11=31/03/2019^16:53^3.7833^-5.4833^5^Thonier arrivant sur le système détecté^CIV^Côte d'Ivoire^ +result.12=31/03/2019^17:03^3.7833^-5.4833^13^Opération sur objet flottant (visite, pose, modification, récupération)^CIV^Côte d'Ivoire^null +result.13=31/03/2019^18:03^3.7833^-5.4667^2^Recherche (général)^CIV^Côte d'Ivoire^null +result.14=31/03/2019^18:44^3.8667^-5.4833^16^Fin de veille^CIV^Côte d'Ivoire^null +result.15=31/03/2019^19:00^3.9^-5.5^9^En dérive de nuit (moteur stoppé)^CIV^Côte d'Ivoire^null +result.16=01/04/2019^06:15^3.9833^-5.3167^2^Recherche (général)^CIV^Côte d'Ivoire^null +result.17=01/04/2019^07:43^3.8333^-5.2667^5^Thonier arrivant sur le système détecté^CIV^Côte d'Ivoire^ +result.18=01/04/2019^07:56^3.8333^-5.25^13^Opération sur objet flottant (visite, pose, modification, récupération)^CIV^Côte d'Ivoire^null +result.19=01/04/2019^08:15^3.8833^-5.2333^2^Recherche (général)^CIV^Côte d'Ivoire^null +result.20=01/04/2019^08:41^3.9333^-5.2833^5^Thonier arrivant sur le système détecté^CIV^Côte d'Ivoire^null +result.21=01/04/2019^09:41^3.9167^-5.25^6^Pêche (larguage du skiff)^CIV^Côte d'Ivoire^null +result.22=01/04/2019^09:41^3.9167^-5.25^6^Pêche (larguage du skiff)^CIV^Côte d'Ivoire^null +result.23=01/04/2019^12:15^3.9^-5.2833^2^Recherche (général)^CIV^Côte d'Ivoire^null +result.24=01/04/2019^12:34^3.9333^-5.3^5^Thonier arrivant sur le système détecté^CIV^Côte d'Ivoire^null +result.25=01/04/2019^12:40^3.9333^-5.3^6^Pêche (larguage du skiff)^CIV^Côte d'Ivoire^null +result.26=01/04/2019^16:15^3.8833^-5.2667^2^Recherche (général)^CIV^Côte d'Ivoire^null +result.27=01/04/2019^16:38^3.9333^-5.3^5^Thonier arrivant sur le système détecté^CIV^Côte d'Ivoire^null +result.28=01/04/2019^16:51^3.9333^-5.3^6^Pêche (larguage du skiff)^CIV^Côte d'Ivoire^ +result.29=01/04/2019^21:17^3.95^-5.2167^16^Fin de veille^CIV^Côte d'Ivoire^null +result.30=01/04/2019^21:18^3.95^-5.2167^1^Transit (route sans recherche)^CIV^Côte d'Ivoire^Route jusqu'à 22H +result.31=02/04/2019^06:15^3.9^-5.1833^2^Recherche (général)^CIV^Côte d'Ivoire^null +result.32=02/04/2019^06:57^3.9333^-5.25^5^Thonier arrivant sur le système détecté^CIV^Côte d'Ivoire^null +result.33=02/04/2019^07:11^3.95^-5.25^6^Pêche (larguage du skiff)^CIV^Côte d'Ivoire^ +result.34=02/04/2019^10:15^3.9167^-5.2167^2^Recherche (général)^CIV^Côte d'Ivoire^null +result.35=02/04/2019^12:15^3.8833^-5.25^2^Recherche (général)^CIV^Côte d'Ivoire^null +result.36=02/04/2019^13:58^3.9^-4.9333^5^Thonier arrivant sur le système détecté^CIV^Côte d'Ivoire^ +result.37=02/04/2019^14:15^3.9^-4.9333^5^Thonier arrivant sur le système détecté^CIV^Côte d'Ivoire^null +result.38=02/04/2019^14:22^3.9^-4.95^6^Pêche (larguage du skiff)^CIV^Côte d'Ivoire^null +result.39=02/04/2019^18:44^3.8833^-4.95^16^Fin de veille^CIV^Côte d'Ivoire^null +result.40=02/04/2019^19:12^3.8667^-5.0^9^En dérive de nuit (moteur stoppé)^CIV^Côte d'Ivoire^null +result.41=03/04/2019^06:15^3.9^-4.9^5^Thonier arrivant sur le système détecté^CIV^Côte d'Ivoire^ +result.42=03/04/2019^07:16^3.8833^-4.95^5^Thonier arrivant sur le système détecté^CIV^Côte d'Ivoire^null +result.43=03/04/2019^07:51^3.8833^-4.9333^6^Pêche (larguage du skiff)^CIV^Côte d'Ivoire^null +result.44=03/04/2019^10:15^3.8833^-4.9167^5^Thonier arrivant sur le système détecté^CIV^Côte d'Ivoire^Banc sous autre senneur +result.45=03/04/2019^12:15^3.9^-4.9167^5^Thonier arrivant sur le système détecté^CIV^Côte d'Ivoire^ +result.46=03/04/2019^14:15^3.9^-4.8833^2^Recherche (général)^CIV^Côte d'Ivoire^null +result.47=03/04/2019^15:28^3.9667^-4.85^5^Thonier arrivant sur le système détecté^CIV^Côte d'Ivoire^ +result.48=03/04/2019^15:36^3.9667^-4.85^13^Opération sur objet flottant (visite, pose, modification, récupération)^CIV^Côte d'Ivoire^null +result.49=03/04/2019^16:15^3.8833^-4.9167^2^Recherche (général)^CIV^Côte d'Ivoire^null +result.50=03/04/2019^18:15^3.8667^-4.9833^2^Recherche (général)^CIV^Côte d'Ivoire^null +result.51=03/04/2019^18:42^3.8333^-5.05^16^Fin de veille^CIV^Côte d'Ivoire^null +result.52=03/04/2019^18:50^3.8167^-5.05^9^En dérive de nuit (moteur stoppé)^CIV^Côte d'Ivoire^null +result.53=04/04/2019^06:12^3.9^-4.8667^2^Recherche (général)^CIV^Côte d'Ivoire^ +result.54=04/04/2019^08:12^3.8667^-4.8833^2^Recherche (général)^CIV^Côte d'Ivoire^null +result.55=04/04/2019^10:12^3.6^-4.6167^2^Recherche (général)^CIV^Côte d'Ivoire^null +result.56=04/04/2019^12:04^3.3^-4.4333^5^Thonier arrivant sur le système détecté^CIV^Côte d'Ivoire^ +result.57=04/04/2019^12:12^3.3^-4.4333^13^Opération sur objet flottant (visite, pose, modification, récupération)^CIV^Côte d'Ivoire^null +result.58=04/04/2019^14:12^3.05^-4.7^2^Recherche (général)^CIV^Côte d'Ivoire^null +result.59=04/04/2019^15:43^2.8667^-4.9167^5^Thonier arrivant sur le système détecté^CIV^Côte d'Ivoire^ +result.60=04/04/2019^15:46^2.8667^-4.9167^13^Opération sur objet flottant (visite, pose, modification, récupération)^CIV^Côte d'Ivoire^null +result.61=04/04/2019^16:12^2.8167^-5.0^2^Recherche (général)^CIV^Côte d'Ivoire^null +result.62=04/04/2019^18:12^2.6333^-5.3333^2^Recherche (général)^CIV^Côte d'Ivoire^null +result.63=04/04/2019^18:41^2.6^-5.4167^16^Fin de veille^CIV^Côte d'Ivoire^null +result.64=04/04/2019^18:42^2.6^-5.4167^18^Route de nuit vers objet^CIV^Côte d'Ivoire^Route toute la nuit +result.65=05/04/2019^06:20^1.5167^-7.4^5^Thonier arrivant sur le système détecté^CIV^Côte d'Ivoire^ +result.66=05/04/2019^06:28^1.5^-7.4167^13^Opération sur objet flottant (visite, pose, modification, récupération)^CIV^Côte d'Ivoire^null +result.67=05/04/2019^07:02^1.5^-7.5333^21^Changement de zone FPA^CIV^Côte d'Ivoire^null +result.68=05/04/2019^07:11^1.5^-7.55^13^Opération sur objet flottant (visite, pose, modification, récupération)^LBR^Libéria^null +result.69=05/04/2019^07:34^1.5^-7.6333^13^Opération sur objet flottant (visite, pose, modification, récupération)^LBR^Libéria^null +result.70=05/04/2019^08:03^1.4667^-7.6833^13^Opération sur objet flottant (visite, pose, modification, récupération)^LBR^Libéria^null +result.71=05/04/2019^08:20^1.4333^-7.7167^2^Recherche (général)^LBR^Libéria^null +result.72=05/04/2019^08:32^1.4^-7.7333^13^Opération sur objet flottant (visite, pose, modification, récupération)^LBR^Libéria^null +result.73=05/04/2019^08:38^1.3833^-7.75^5^Thonier arrivant sur le système détecté^LBR^Libéria^ +result.74=05/04/2019^08:50^1.3667^-7.7333^13^Opération sur objet flottant (visite, pose, modification, récupération)^LBR^Libéria^null +result.75=05/04/2019^09:07^1.4^-7.7667^13^Opération sur objet flottant (visite, pose, modification, récupération)^LBR^Libéria^null +result.76=05/04/2019^09:37^1.45^-7.8667^13^Opération sur objet flottant (visite, pose, modification, récupération)^LBR^Libéria^null +result.77=05/04/2019^10:02^1.4833^-7.9167^13^Opération sur objet flottant (visite, pose, modification, récupération)^LBR^Libéria^null +result.78=05/04/2019^10:20^1.5^-7.9667^2^Recherche (général)^LBR^Libéria^null +result.79=05/04/2019^10:29^1.4833^-7.9833^5^Thonier arrivant sur le système détecté^LBR^Libéria^ +result.80=05/04/2019^10:41^1.5^-8.0^13^Opération sur objet flottant (visite, pose, modification, récupération)^LBR^Libéria^null +result.81=05/04/2019^11:03^1.5333^-8.05^13^Opération sur objet flottant (visite, pose, modification, récupération)^LBR^Libéria^null +result.82=05/04/2019^11:31^1.5833^-8.1167^13^Opération sur objet flottant (visite, pose, modification, récupération)^LBR^Libéria^null +result.83=05/04/2019^12:00^1.65^-8.1833^13^Opération sur objet flottant (visite, pose, modification, récupération)^LBR^Libéria^null +result.84=05/04/2019^12:20^1.7333^-8.2333^2^Recherche (général)^LBR^Libéria^null +result.85=05/04/2019^12:35^1.75^-8.2667^13^Opération sur objet flottant (visite, pose, modification, récupération)^LBR^Libéria^null +result.86=05/04/2019^13:04^1.8167^-8.3167^13^Opération sur objet flottant (visite, pose, modification, récupération)^LBR^Libéria^null +result.87=05/04/2019^13:30^1.85^-8.3333^5^Thonier arrivant sur le système détecté^LBR^Libéria^ +result.88=05/04/2019^13:38^1.8667^-8.3333^13^Opération sur objet flottant (visite, pose, modification, récupération)^LBR^Libéria^ +result.89=05/04/2019^14:00^1.9167^-8.3667^13^Opération sur objet flottant (visite, pose, modification, récupération)^LBR^Libéria^null +result.90=05/04/2019^14:19^1.95^-8.4167^5^Thonier arrivant sur le système détecté^LBR^Libéria^ +result.91=05/04/2019^14:26^1.95^-8.4167^13^Opération sur objet flottant (visite, pose, modification, récupération)^LBR^Libéria^null +result.92=05/04/2019^15:05^2.0667^-8.4333^13^Opération sur objet flottant (visite, pose, modification, récupération)^LBR^Libéria^null +result.93=05/04/2019^15:35^2.15^-8.4333^13^Opération sur objet flottant (visite, pose, modification, récupération)^LBR^Libéria^null +result.94=05/04/2019^15:36^2.15^-8.4333^5^Thonier arrivant sur le système détecté^LBR^Libéria^ +result.95=05/04/2019^15:46^2.15^-8.4333^13^Opération sur objet flottant (visite, pose, modification, récupération)^LBR^Libéria^null +result.96=05/04/2019^16:02^2.2^-8.4333^13^Opération sur objet flottant (visite, pose, modification, récupération)^LBR^Libéria^null +result.97=05/04/2019^16:20^2.2167^-8.4167^2^Recherche (général)^LBR^Libéria^null +result.98=05/04/2019^16:36^2.2667^-8.4^13^Opération sur objet flottant (visite, pose, modification, récupération)^LBR^Libéria^null +result.99=05/04/2019^16:46^2.2333^-8.3833^5^Thonier arrivant sur le système détecté^LBR^Libéria^ +result.100=05/04/2019^16:53^2.2333^-8.3833^13^Opération sur objet flottant (visite, pose, modification, récupération)^LBR^Libéria^null +result.101=05/04/2019^17:08^2.2667^-8.3667^13^Opération sur objet flottant (visite, pose, modification, récupération)^LBR^Libéria^null +result.102=05/04/2019^17:17^2.2833^-8.35^5^Thonier arrivant sur le système détecté^LBR^Libéria^ +result.103=05/04/2019^17:24^2.2833^-8.35^13^Opération sur objet flottant (visite, pose, modification, récupération)^LBR^Libéria^ +result.104=05/04/2019^17:34^2.3^-8.3333^13^Opération sur objet flottant (visite, pose, modification, récupération)^LBR^Libéria^null +result.105=05/04/2019^17:37^2.3167^-8.3333^16^Fin de veille^LBR^Libéria^null +result.106=05/04/2019^18:00^2.3667^-8.3167^5^Thonier arrivant sur le système détecté^LBR^Libéria^ +result.107=05/04/2019^18:15^2.35^-8.3167^13^Opération sur objet flottant (visite, pose, modification, récupération)^LBR^Libéria^null +result.108=05/04/2019^18:40^2.3333^-8.35^9^En dérive de nuit (moteur stoppé)^LBR^Libéria^null +result.109=06/04/2019^06:35^2.35^-8.3333^11^Avaries en mer^LBR^Libéria^Avarie au niveau du moteur, navire stoppé (réparation en cours) +result.110=06/04/2019^12:05^2.3333^-8.3333^11^Avaries en mer^LBR^Libéria^Avarie au niveau du moteur, navire stoppé (réparation en cours) +result.111=06/04/2019^17:55^2.3667^-8.2833^1^Transit (route sans recherche)^LBR^Libéria^Réparation de l'avarie terminée. +result.112=06/04/2019^18:00^2.3667^-8.2833^13^Opération sur objet flottant (visite, pose, modification, récupération)^LBR^Libéria^null +result.113=06/04/2019^18:16^2.3833^-8.25^13^Opération sur objet flottant (visite, pose, modification, récupération)^LBR^Libéria^null +result.114=06/04/2019^18:26^2.4^-8.2167^13^Opération sur objet flottant (visite, pose, modification, récupération)^LBR^Libéria^null +result.115=06/04/2019^18:36^2.4167^-8.2^13^Opération sur objet flottant (visite, pose, modification, récupération)^LBR^Libéria^null +result.116=06/04/2019^18:46^2.45^-8.1833^13^Opération sur objet flottant (visite, pose, modification, récupération)^LBR^Libéria^null +result.117=06/04/2019^18:57^2.4667^-8.15^13^Opération sur objet flottant (visite, pose, modification, récupération)^LBR^Libéria^null +result.118=06/04/2019^19:05^2.4833^-8.1333^13^Opération sur objet flottant (visite, pose, modification, récupération)^LBR^Libéria^null +result.119=06/04/2019^19:06^2.4833^-8.1333^1^Transit (route sans recherche)^LBR^Libéria^Route de nuit +result.120=07/04/2019^06:24^3.4333^-6.2^21^Changement de zone FPA^null^null^Changement de zone effectué le 06/04/2019 à 22H35 T.U à la position 02°45N et 007°33 W +result.121=07/04/2019^08:24^3.65^-5.8667^2^Recherche (général)^CIV^Côte d'Ivoire^null +result.122=07/04/2019^10:24^3.8167^-5.5^2^Recherche (général)^CIV^Côte d'Ivoire^null +result.123=07/04/2019^12:24^3.9167^-5.1167^5^Thonier arrivant sur le système détecté^CIV^Côte d'Ivoire^ +result.124=07/04/2019^12:43^3.9167^-5.1^13^Opération sur objet flottant (visite, pose, modification, récupération)^CIV^Côte d'Ivoire^null +result.125=07/04/2019^12:52^3.9167^-5.0833^5^Thonier arrivant sur le système détecté^CIV^Côte d'Ivoire^ +result.126=07/04/2019^14:18^3.9^-5.0833^5^Thonier arrivant sur le système détecté^CIV^Côte d'Ivoire^null +result.127=07/04/2019^14:21^3.9^-5.0833^6^Pêche (larguage du skiff)^CIV^Côte d'Ivoire^null +result.128=07/04/2019^18:24^3.9^-4.8833^2^Recherche (général)^CIV^Côte d'Ivoire^null +result.129=07/04/2019^18:33^3.9^-4.8667^16^Fin de veille^CIV^Côte d'Ivoire^Averse +result.130=07/04/2019^18:34^3.9^-4.8667^1^Transit (route sans recherche)^CIV^Côte d'Ivoire^Route de nuit jusqu'à 1H +result.131=08/04/2019^06:30^4.0667^-3.45^1^Transit (route sans recherche)^CIV^Côte d'Ivoire^navire en approche pour le début de l'aviataillement +result.132=08/04/2019^07:30^4.0667^-3.45^99^Autres (à préciser dans les notes)^CIV^Côte d'Ivoire^Début de l'aviatillement en gasoil. +result.133=08/04/2019^11:34^4.1833^-3.3333^99^Autres (à préciser dans les notes)^CIV^Côte d'Ivoire^Fin avitaillement en gasoil, poursuite de la route +result.134=08/04/2019^12:30^4.3167^-3.4167^2^Recherche (général)^CIV^Côte d'Ivoire^null +result.135=08/04/2019^14:30^4.6^-3.6^2^Recherche (général)^CIV^Côte d'Ivoire^null +result.136=08/04/2019^16:00^4.8167^-3.75^16^Fin de veille^CIV^Côte d'Ivoire^null +result.137=08/04/2019^16:30^4.8833^-3.8167^1^Transit (route sans recherche)^CIV^Côte d'Ivoire^ +result.138=08/04/2019^18:30^5.1^-3.95^1^Transit (route sans recherche)^CIV^Côte d'Ivoire^null +result.139=08/04/2019^21:05^5.2833^-4.0167^0^Au port^CIV^Côte d'Ivoire^Navire au port de pêche d'Abidjan. +syntax.name=Observations - Toutes les activités, leurs positions et zones FPA syntax.description=Afficher toutes les activités et leurs positions géographiques syntax.rows=-1 -syntax.columns=6 -syntax.columnsHeader=Jour^Heure observation^Latitude^Longitude^Activité^Commentaire +syntax.columns=9 +syntax.columnsHeader=Jour^Heure observation^Latitude^Longitude^Activité (code)^Activité (nom)^Zone FPA (code)^Zone FPA (nom)^Commentaire syntax.rowsHeader= syntax.nbRequests=1 -result.columns=6 +result.columns=9 result.rows=140 \ No newline at end of file ===================================== core/services/test/src/main/resources/fixtures/fr/ird/observe/services/service/ReportService-psObservationFobUsageExtended.properties ===================================== @@ -19,14 +19,14 @@ # <http://www.gnu.org/licenses/gpl-3.0.html>. # #L% ### -result.0=FOB - FOB^0^1^0^0^0^0^0^0^0^0^0^0^0^0^0^0^null -result.1=DFAD - DFAD (FAD dérivant)^1^15^1^27^0^0^0^0^0^0^0^0^0^0^0^0^null +result.0=DFAD - DFAD (FAD dérivant)^1^15^1^27^0^0^0^0^0^0^0^0^0^0^0^0^0 +result.1=FOB - FOB^0^1^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0 result.columns=18 result.rows=2 syntax.columns=18 syntax.columnsHeader=Type de FOB^Visités Pêchés^Visités non Pêchés^Déploiement après Pêches^Déploiement seul^Modifiés Pêchés^Modifiés non Pêchés^Retirés Pêchés^Retirés non Pêchés^Abandonnés Pêchés^Abandonnés non Pêchés^Coulés Pêchés^Coulés non Pêchés^Remplacés Pêchés^Remplacés non Pêchés^Autre Pêchés^Autre non Pêchés^Tortues associées syntax.description=Tableau récapitulatif des FOB rencontrés, par types CECOFAD et types d’actions (déploiements, simples visites, modifications, diverses modalités de retraits), avec et sans pêche, et nombres de tortues observées syntax.name=Observations - Utilisation des FOB, tableau détaillé -syntax.nbRequests=18 +syntax.nbRequests=2 syntax.rows=-1 syntax.rowsHeader= ===================================== core/services/test/src/main/resources/fixtures/fr/ird/observe/services/service/ReportService-psObservationFobUsageMinimal.properties ===================================== @@ -19,14 +19,14 @@ # <http://www.gnu.org/licenses/gpl-3.0.html>. # #L% ### -result.0=FOB - FOB^0^1^0^null -result.1=DFAD - DFAD (FAD dérivant)^1^15^28^null +result.0=DFAD - DFAD (FAD dérivant)^1^15^28^0 +result.1=FOB - FOB^0^1^0^0 result.columns=5 result.rows=2 syntax.columns=5 syntax.columnsHeader=Type de FOB^Rencontrés pêchés^Rencontrés non pêchés^Déployés^Tortues associées syntax.description=Tableau récapitulatif des FOB rencontrés, par types CECOFAD et types d’actions regroupés (rencontrés et pêchés, rencontrés non pêchés, déployés), et nombres de tortues observées syntax.name=Observations - Utilisation des FOB, tableau simplifiée -syntax.nbRequests=5 +syntax.nbRequests=2 syntax.rows=-1 syntax.rowsHeader= ===================================== core/services/test/src/main/resources/fixtures/fr/ird/observe/services/service/ReportService.properties ===================================== @@ -19,4 +19,4 @@ # <http://www.gnu.org/licenses/gpl-3.0.html>. # #L% ### -report.count=34 +report.count=35 ===================================== src/site/markdown/report/embedded-reports.md ===================================== @@ -86,6 +86,10 @@ Livre de bord - Vérification des plan de cuves Observations - Activités avec comment et leurs positions +## psObservationActivitiesByZone + +Observations - Types d'activités par zones FPA + ### psObservationAllActivities Observations - Toutes les activités et leurs positions ===================================== toolkit/api-report/src/main/java/fr/ird/observe/report/ReportRequestExecutor.java ===================================== @@ -107,7 +107,9 @@ public interface ReportRequestExecutor { String variableName = variable.getName(); if (variable.isValuesLoaded()) { // variable already loaded - log.debug(String.format("Do not populate variable %s, variable already loaded.", variableName)); + if (log.isDebugEnabled()) { + log.debug(String.format("Do not populate variable %s, variable already loaded.", variableName)); + } continue; } Map<String, Object> vars = new TreeMap<>(); @@ -178,64 +180,84 @@ public interface ReportRequestExecutor { } // remplissage des variables de répétition si nécessaire populateRepeatVariables(report, tripId); - log.debug(String.format("Build result for report [%s] on %s", report.getName(), tripId)); + if (log.isDebugEnabled()) { + log.debug(String.format("Build result for report [%s] on %s", report.getName(), tripId)); + } int rows = report.getRows(); int columns = report.getColumns(); - log.debug(String.format("Dimension : [%d,%d]", rows, columns)); + if (log.isDebugEnabled()) { + log.debug(String.format("Dimension : [%d,%d]", rows, columns)); + } // lancement de la première opération et la matrice de résultat DataMatrix result = ReportOperationConsumers.executeReportOperation(this, ExecuteRequests.OPERATION, report, tripId, new DataMatrix()); // lancement des opérations supplémentaires for (ReportOperationDefinition operation : report.getOperations()) { DataMatrix tmp = result; - log.debug(String.format("Apply operation %s to %s", operation, tmp)); + if (log.isDebugEnabled()) { + log.debug(String.format("Apply operation %s to %s", operation, tmp)); + } result = ReportOperationConsumers.executeReportOperation(this, operation, report, tripId, tmp); } - log.debug(String.format("Final result : %s", result)); + if (log.isDebugEnabled()) { + log.debug(String.format("Final result : %s", result)); + } return result; } default DataMatrix executeReportRequest(ReportRequestDefinition request, Report report, Set<String> dataId) { - Map<String, Object> params = extractParams(report, dataId); - ReportDefinition reportDefinition = report.definition(); - String hql = i18nContext().translateRequest(reportDefinition, request); - for (ReportRepeatVariable<?> repeatVariable : report.getRepeatVariables()) { - if (isVariableUsed(hql, repeatVariable.getName())) { - // add this repeat variable values to parameters - params.put(repeatVariable.getName(), repeatVariable.computeIndexList()); + long t0 = TimeLog.getTime(); + try { + Map<String, Object> params = extractParams(report, dataId); + ReportDefinition reportDefinition = report.definition(); + String hql = i18nContext().translateRequest(reportDefinition, request); + for (ReportRepeatVariable<?> repeatVariable : report.getRepeatVariables()) { + if (isVariableUsed(hql, repeatVariable.getName())) { + // add this repeat variable values to parameters + params.put(repeatVariable.getName(), repeatVariable.computeIndexList()); + } } + return executeReportRequest(reportDefinition, request, params); + } finally { + TIME_LOG.log(t0, "executeReportRequest", request.toString()); } - return executeReportRequest(reportDefinition, request, params); } default DataMatrix executeReportRequest(ReportRequestDefinition request, Report report, Set<String> dataId, ReportRepeatVariable<?> repeatValues) { - Map<String, Object> params = extractParams(report, dataId); - DataMatrix result = new DataMatrix(); - RequestRepeatVariableDefinition requestRepeatVariable = request.getRepeat(); - RequestLayout requestRepeatVariableLayout = requestRepeatVariable.getLayout(); - String repeatVariableName = requestRepeatVariable.getVariableName(); - ReportDefinition reportDefinition = report.definition(); - for (Object repeatValue : repeatValues.getValues()) { - params.put(repeatVariableName, repeatValue); - DataMatrix tmp = executeReportRequest(reportDefinition, request, params); - switch (requestRepeatVariableLayout) { - case row: - // add current result on the same row (at the right of the current result) - tmp.setX(result.getX() + result.getWidth()); - tmp.setY(result.getY()); - break; - case column: - // add current result on the same column (at the bottom of the current result) - tmp.setX(result.getX()); - tmp.setY(result.getY() + result.getHeight()); - break; + long t0 = TimeLog.getTime(); + try { + Map<String, Object> params = extractParams(report, dataId); + DataMatrix result = new DataMatrix(); + RequestRepeatVariableDefinition requestRepeatVariable = request.getRepeat(); + RequestLayout requestRepeatVariableLayout = requestRepeatVariable.getLayout(); + String repeatVariableName = requestRepeatVariable.getVariableName(); + ReportDefinition reportDefinition = report.definition(); + for (Object repeatValue : repeatValues.getValues()) { + params.put(repeatVariableName, repeatValue); + DataMatrix tmp = executeReportRequest(reportDefinition, request, params); + switch (requestRepeatVariableLayout) { + case row: + // add current result on the same row (at the right of the current result) + tmp.setX(result.getX() + result.getWidth()); + tmp.setY(result.getY()); + break; + case column: + // add current result on the same column (at the bottom of the current result) + tmp.setX(result.getX()); + tmp.setY(result.getY() + result.getHeight()); + break; + } + result = DataMatrix.merge(result, tmp); } - result = DataMatrix.merge(result, tmp); + result.setX(request.getX()); + result.setY(request.getY()); + if (log.isDebugEnabled()) { + log.debug(String.format("Result location : %s", result.getLocation())); + log.debug(String.format("Result data :\n%s", result.getClipboardContent(true, true, false, '\t'))); + } + return result; + } finally { + TIME_LOG.log(t0, "executeReportRequest", request.toString()); } - result.setX(request.getX()); - result.setY(request.getY()); - log.debug(String.format("Result location : %s", result.getLocation())); - log.debug(String.format("Result data :\n%s", result.getClipboardContent(true, true, false, '\t'))); - return result; } default DataMatrix executeReportRequest(ReportDefinition reportDefinition, ReportRequestDefinition reportRequestDefinition, Map<String, Object> params) { View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/compare/b20c845634c72d83f97c19de3... -- View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/compare/b20c845634c72d83f97c19de3... You're receiving this email because of your account on gitlab.com.