Tony CHEMIT pushed to branch develop at ultreiaio / ird-observe Commits: 88b13f8a by Tony Chemit at 2024-03-16T13:06:10+01:00 Add more TimeLog and fix log.debug issues in ReportRequestExecutor - - - - - 71e34b77 by Tony Chemit at 2024-03-16T13:15:56+01:00 Optimisation du rapport Livre de bord - Vérification des plan de cuves - Closes #2849 - - - - - 0a4cdf76 by Tony Chemit at 2024-03-16T13:33:34+01:00 Optimisation du rapport Livre de bord - Plan de cuves - Closes #2850 - - - - - d07f7bc5 by Tony Chemit at 2024-03-16T15:48:14+01:00 Optimisation du rapport Observations - Utilisation des FOB, tableau simplifiée - Closes #2851 - - - - - c375649a by Tony Chemit at 2024-03-16T15:48:14+01:00 Optimisation du rapport Observations - Utilisation des FOB, tableau détaillé - Closes #2852 - - - - - 10 changed files: - core/persistence/report/src/main/resources/META-INF/report/default/ps/psLogbookWellPlan.report - core/persistence/report/src/main/resources/META-INF/report/default/ps/psLogbookWellPlanCheck.report - core/persistence/report/src/main/resources/META-INF/report/default/ps/psObservationFobUsageExtended.report - core/persistence/report/src/main/resources/META-INF/report/default/ps/psObservationFobUsageMinimal.report - core/services/test/src/main/java/fr/ird/observe/services/service/report/ps/PsObservationFobUsageExtendedReportFixture.java - core/services/test/src/main/java/fr/ird/observe/services/service/report/ps/PsObservationFobUsageMinimalReportFixture.java - core/services/test/src/main/resources/fixtures/fr/ird/observe/services/service/ReportService-psLogbookWellPlanCheck.properties - core/services/test/src/main/resources/fixtures/fr/ird/observe/services/service/ReportService-psObservationFobUsageExtended.properties - core/services/test/src/main/resources/fixtures/fr/ird/observe/services/service/ReportService-psObservationFobUsageMinimal.properties - toolkit/api-report/src/main/java/fr/ird/observe/report/ReportRequestExecutor.java Changes: ===================================== core/persistence/report/src/main/resources/META-INF/report/default/ps/psLogbookWellPlan.report ===================================== @@ -39,19 +39,16 @@ w.well, \ r.date, \ a.number, \ Cast(a.time As java.sql.Time), \ -species.@i18nColumnName@, \ -weightCategory.@i18nColumnName@, \ +was.species.@i18nColumnName@, \ +was.weightCategory.@i18nColumnName@, \ was.weight \ From TripImpl t \ Join t.well w \ Join w.wellActivity wa \ Join wa.wellActivitySpecies was \ -Join was.species species \ -Join was.weightCategory weightCategory \ Join t.routeLogbook r \ Join r.activity a \ Join t.vessel vessel \ Left Join a.vesselActivity vesselActivity \ -Left Join a.schoolType schoolType \ Where t.id In :tripId and wa.activity = a \ Order By vessel.code,t.startDate,t.endDate,w.well,r.date,a.time ===================================== core/persistence/report/src/main/resources/META-INF/report/default/ps/psLogbookWellPlanCheck.report ===================================== @@ -29,16 +29,6 @@ description.es= columns=Code bateau,Nom bateau,Date départ,Date arrivée,Date de route,Numéro activité,Heure activité,Logbook YFT,Logbook SKJ,Logbook BET,Logbook ALB,Logbook Autres,Plan de cuves YFT,Plan de cuves SKJ,Plan de cuves BET,Plan de cuves ALB,Plan de cuves Autres,Logbook Total,Plan de cuves Total,Différence columns.en=Vessel code,Vessel name,Departure date,Landing date,Day of route,Activity number,Activity hour,Logbook YFT,Logbook SKJ,Logbook BET,Logbook ALB,Logbook others,Well plan YFT,Well plan SKJ,Well plan BET,Well plan ALB,Well plan others,Logbook Total,Well plan Total,Difference columns.es= -repeatVariable.1.name=activity -repeatVariable.1.type=fr.ird.observe.entities.data.ps.logbook.Activity -repeatVariable.1.request=Select a \ -From TripImpl t \ -Join t.routeLogbook r \ -Join r.activity a \ -Join t.vessel vessel \ -Left Join a.vesselActivity vesselActivity \ -Where t.id In :tripId and vesselActivity.id = 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586' \ -Order By vessel.code,t.startDate,r.date,a.number,a.time request.1.location=0,0 request.1.layout=row request.1.request=Select vessel.code,\ @@ -47,74 +37,33 @@ t.startDate, \ t.endDate, \ r.date, \ a.number, \ -Cast(a.time As java.sql.Time) \ -From TripImpl t \ -Join t.routeLogbook r \ -Join r.activity a \ -Join t.vessel vessel \ -Where t.id In :tripId and a = :activity -request.1.repeat.name=activity -request.1.repeat.layout=column -request.2.location=7,0 -request.2.layout=row -request.2.request=Select \ -Sum(CASE ct.species.id When 'fr.ird.referential.common.Species#1239832685474#0.8943253454598569' Then ct.weight Else 0.0 End), \ -Sum(CASE ct.species.id When 'fr.ird.referential.common.Species#1239832685474#0.975344121171992' Then ct.weight Else 0.0 End), \ -Sum(CASE ct.species.id When 'fr.ird.referential.common.Species#1239832685475#0.13349466123905152' Then ct.weight Else 0.0 End), \ -Sum(CASE ct.species.id When 'fr.ird.referential.common.Species#1239832685476#0.5618871286604711' Then ct.weight Else 0.0 End), \ -Sum(CASE ct.species.id When 'fr.ird.referential.common.Species#1239832685474#0.8943253454598569' Then 0.0 \ +Cast(a.time As java.sql.Time), \ +(Select Sum(CASE ct.species.id When 'fr.ird.referential.common.Species#1239832685474#0.8943253454598569' Then ct.weight Else 0.0 End) From fr.ird.observe.entities.data.ps.logbook.ActivityImpl aa Join a.catches ct Where aa = a), \ +(Select Sum(CASE ct.species.id When 'fr.ird.referential.common.Species#1239832685474#0.975344121171992' Then ct.weight Else 0.0 End) From fr.ird.observe.entities.data.ps.logbook.ActivityImpl aa Join a.catches ct Where aa = a), \ +(Select Sum(CASE ct.species.id When 'fr.ird.referential.common.Species#1239832685475#0.13349466123905152' Then ct.weight Else 0.0 End) From fr.ird.observe.entities.data.ps.logbook.ActivityImpl aa Join a.catches ct Where aa = a), \ +(Select Sum(CASE ct.species.id When 'fr.ird.referential.common.Species#1239832685476#0.5618871286604711' Then ct.weight Else 0.0 End) From fr.ird.observe.entities.data.ps.logbook.ActivityImpl aa Join a.catches ct Where aa = a), \ +(Select Sum(CASE ct.species.id When 'fr.ird.referential.common.Species#1239832685474#0.8943253454598569' Then 0.0 \ When 'fr.ird.referential.common.Species#1239832685474#0.975344121171992' Then 0.0 \ When 'fr.ird.referential.common.Species#1239832685475#0.13349466123905152' Then 0.0 \ When 'fr.ird.referential.common.Species#1239832685476#0.5618871286604711' Then 0.0 \ -Else ct.weight End) \ -From TripImpl t \ -Join t.routeLogbook r \ -Join r.activity a \ -Join a.catches ct \ -Where t.id In :tripId and a = :activity -request.2.repeat.name=activity -request.2.repeat.layout=column -request.3.location=12,0 -request.3.layout=row -request.3.request=Select \ -Sum(CASE was.species.id When 'fr.ird.referential.common.Species#1239832685474#0.8943253454598569' Then was.weight Else 0.0 End), \ -Sum(CASE was.species.id When 'fr.ird.referential.common.Species#1239832685474#0.975344121171992' Then was.weight Else 0.0 End), \ -Sum(CASE was.species.id When 'fr.ird.referential.common.Species#1239832685475#0.13349466123905152' Then was.weight Else 0.0 End), \ -Sum(CASE was.species.id When 'fr.ird.referential.common.Species#1239832685476#0.5618871286604711' Then was.weight Else 0.0 End), \ -Sum(CASE was.species.id When 'fr.ird.referential.common.Species#1239832685474#0.8943253454598569' Then 0.0 \ +Else ct.weight End) From fr.ird.observe.entities.data.ps.logbook.ActivityImpl aa Join a.catches ct Where aa = a), \ +(Select Sum(CASE was.species.id When 'fr.ird.referential.common.Species#1239832685474#0.8943253454598569' Then was.weight Else 0.0 End) From WellActivityImpl wa Join wa.wellActivitySpecies was Where wa.activity = a), \ +(Select Sum(CASE was.species.id When 'fr.ird.referential.common.Species#1239832685474#0.975344121171992' Then was.weight Else 0.0 End) From WellActivityImpl wa Join wa.wellActivitySpecies was Where wa.activity = a), \ +(Select Sum(CASE was.species.id When 'fr.ird.referential.common.Species#1239832685475#0.13349466123905152' Then was.weight Else 0.0 End) From WellActivityImpl wa Join wa.wellActivitySpecies was Where wa.activity = a), \ +(Select Sum(CASE was.species.id When 'fr.ird.referential.common.Species#1239832685476#0.5618871286604711' Then was.weight Else 0.0 End) From WellActivityImpl wa Join wa.wellActivitySpecies was Where wa.activity = a), \ +(Select Sum(CASE was.species.id When 'fr.ird.referential.common.Species#1239832685474#0.8943253454598569' Then 0.0 \ When 'fr.ird.referential.common.Species#1239832685474#0.975344121171992' Then 0.0 \ When 'fr.ird.referential.common.Species#1239832685475#0.13349466123905152' Then 0.0 \ When 'fr.ird.referential.common.Species#1239832685476#0.5618871286604711' Then 0.0 \ -Else was.weight End) \ -From TripImpl t \ -Join t.well w \ -Join w.wellActivity wa \ -Join wa.wellActivitySpecies was \ -Where t.id In :tripId and wa.activity = :activity -request.3.repeat.name=activity -request.3.repeat.layout=column -request.4.location=17,0 -request.4.layout=row -request.4.request=Select \ -Sum(ct.weight) \ +Else was.weight End) From WellActivityImpl wa Join wa.wellActivitySpecies was Where wa.activity = a), \ +(Select Sum(ct.weight) From fr.ird.observe.entities.data.ps.logbook.ActivityImpl aa Join a.catches ct Where aa = a), \ +(Select Sum(was.weight) From WellActivityImpl wa Join wa.wellActivitySpecies was Where wa.activity = a) \ From TripImpl t \ Join t.routeLogbook r \ -Join r.activity a \ -Join a.catches ct \ -Where t.id In :tripId and a = :activity -request.4.repeat.name=activity -request.4.repeat.layout=column -request.5.location=18,0 -request.5.layout=row -request.5.request=Select \ -Sum(was.weight) \ -From TripImpl t \ -Join t.well w \ -Join w.wellActivity wa \ -Join wa.wellActivitySpecies was \ -Where t.id In :tripId and wa.activity = :activity -request.5.repeat.name=activity -request.5.repeat.layout=column +Join r.activity a With a.vesselActivity.id = 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586' \ +Join t.vessel vessel \ +Where t.id In :tripId \ +Order By vessel.code,t.startDate,r.date,a.number,a.time operations.1.type=SubtractColum operations.1.parameters=17|18|19 operations.2.type=SumColumn ===================================== core/persistence/report/src/main/resources/META-INF/report/default/ps/psObservationFobUsageExtended.report ===================================== @@ -33,17 +33,20 @@ repeatVariable.1.name=typeObjetId repeatVariable.1.type=java.lang.String repeatVariable.1.request=Select distinct (om.standardCode) \ From ObjectMaterialImpl om \ -Where standardCode is not null \ -And standardCode != '' \ -And (Select Count(dcp) \ +Where om.standardCode is not null \ +And om.standardCode != '' \ +And (om.standardCode In (Select Distinct(dcp.computedWhenArrivingSimplifiedObjectType) \ From fr.ird.observe.entities.data.ps.common.TripImpl m \ Join m.routeObs r \ Join r.activity a \ -Join a.floatingObject dcp \ -Where \ -m.id In :tripId \ -and (dcp.computedWhenArrivingSimplifiedObjectType = om.standardCode Or dcp.computedWhenLeavingSimplifiedObjectType = om.standardCode) \ -) > 0 +Join a.floatingObject dcp With dcp.computedWhenArrivingSimplifiedObjectType Is Not Null \ +Where m.id In :tripId ) Or om.standardCode In (Select Distinct(dcp.computedWhenLeavingSimplifiedObjectType) \ +From fr.ird.observe.entities.data.ps.common.TripImpl m \ +Join m.routeObs r \ +Join r.activity a \ +Join a.floatingObject dcp With dcp.computedWhenLeavingSimplifiedObjectType Is Not Null \ +Where m.id In :tripId )) \ +Order by om.standardCode request.1.location=0,0 request.1.layout=row request.1.request=Select concat(str(om.standardCode) , ' - ', om.@i18nColumnName@) \ @@ -55,258 +58,30 @@ request.1.repeat.name=typeObjetId request.1.repeat.layout=column request.2.location=1,0 request.2.layout=row -request.2.request=Select Count(dcp) \ -From fr.ird.observe.entities.data.ps.common.TripImpl m \ -Join m.routeObs r \ -Join r.activity a \ -Join a.floatingObject dcp \ -Where \ -m.id In :tripId \ -and dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId \ -and dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#2' \ -and a.vesselActivity.id = 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586' +request.2.request=Select \ +Sum(Case When dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId And dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#2' And a.vesselActivity.id = 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586' Then 1 Else 0 End), \ +Sum(Case When dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId And dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#2' And a.vesselActivity.id != 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586' Then 1 Else 0 End), \ +Sum(Case When dcp.computedWhenLeavingSimplifiedObjectType = :typeObjetId And dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#1' And a.vesselActivity.id = 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586' Then 1 Else 0 End), \ +Sum(Case When dcp.computedWhenLeavingSimplifiedObjectType = :typeObjetId And dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#1' And a.vesselActivity.id != 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586' Then 1 Else 0 End), \ +Sum(Case When dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId And dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#8' And a.vesselActivity.id = 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586' Then 1 Else 0 End), \ +Sum(Case When dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId And dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#8' And a.vesselActivity.id != 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586' Then 1 Else 0 End), \ +Sum(Case When dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId And dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#4' And a.vesselActivity.id = 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586' Then 1 Else 0 End), \ +Sum(Case When dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId And dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#4' And a.vesselActivity.id != 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586' Then 1 Else 0 End), \ +Sum(Case When dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId And dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#5' And a.vesselActivity.id = 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586' Then 1 Else 0 End), \ +Sum(Case When dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId And dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#5' And a.vesselActivity.id != 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586' Then 1 Else 0 End), \ +Sum(Case When dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId And dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#7' And a.vesselActivity.id = 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586' Then 1 Else 0 End), \ +Sum(Case When dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId And dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#7' And a.vesselActivity.id != 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586' Then 1 Else 0 End), \ +Sum(Case When dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId And dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#9' And a.vesselActivity.id = 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586' Then 1 Else 0 End), \ +Sum(Case When dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId And dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#9' And a.vesselActivity.id != 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586' Then 1 Else 0 End), \ +Sum(Case When dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId And (dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#10' Or dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#3') And a.vesselActivity.id = 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586' Then 1 Else 0 End), \ +Sum(Case When dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId And (dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#10' Or dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#3') And a.vesselActivity.id != 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586' Then 1 Else 0 End), \ +Sum(Case When dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId And dcp.objectObservedSpecies Is Not Empty Then (Select Sum(efo.count) From fr.ird.observe.entities.data.ps.observation.FloatingObjectImpl dcp1 Join dcp1.objectObservedSpecies efo With efo.species.speciesGroup.id = 'fr.ird.referential.common.SpeciesGroup#1239832683690#0.24333033683679461' Where dcp1 = dcp) Else 0 End) \ +From fr.ird.observe.entities.data.ps.common.TripImpl m \ +Join m.routeObs r \ +Join r.activity a \ +Join a.floatingObject dcp With dcp.computedWhenLeavingSimplifiedObjectType = :typeObjetId Or dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId \ +Where \ +m.id In :tripId request.2.repeat.name=typeObjetId request.2.repeat.layout=column -request.2.comment=visite + peche -request.3.location=2,0 -request.3.layout=row -request.3.request=Select Count(dcp) \ -From fr.ird.observe.entities.data.ps.common.TripImpl m \ -Join m.routeObs r \ -Join r.activity a \ -Join a.floatingObject dcp \ -Where \ -m.id In :tripId \ -and dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId \ -and dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#2' \ -and a.vesselActivity.id != 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586' -request.3.repeat.name=typeObjetId -request.3.repeat.layout=column -request.3.comment=visite - peche -request.4.location=3,0 -request.4.layout=row -request.4.request=Select Count(dcp) \ -From fr.ird.observe.entities.data.ps.common.TripImpl m \ -Join m.routeObs r \ -Join r.activity a \ -Join a.floatingObject dcp \ -Where \ -m.id In :tripId \ -and dcp.computedWhenLeavingSimplifiedObjectType = :typeObjetId \ -and dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#1' \ -and a.vesselActivity.id = 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586' -request.4.repeat.name=typeObjetId -request.4.repeat.layout=column -request.4.comment=Deploiement + peche -request.5.location=4,0 -request.5.layout=row -request.5.request=Select Count(dcp) \ -From fr.ird.observe.entities.data.ps.common.TripImpl m \ -Join m.routeObs r \ -Join r.activity a \ -Join a.floatingObject dcp \ -Where \ -m.id In :tripId \ -and dcp.computedWhenLeavingSimplifiedObjectType = :typeObjetId \ -and dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#1' \ -and a.vesselActivity.id != 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586' -request.5.repeat.name=typeObjetId -request.5.repeat.layout=column -request.5.comment=Deploiement - peche -request.6.location=5,0 -request.6.layout=row -request.6.request=Select Count(dcp) \ -From fr.ird.observe.entities.data.ps.common.TripImpl m \ -Join m.routeObs r \ -Join r.activity a \ -Join a.floatingObject dcp \ -Where \ -m.id In :tripId \ -and dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId \ -and dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#8' \ -and a.vesselActivity.id = 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586' -request.6.repeat.name=typeObjetId -request.6.repeat.layout=column -request.6.comment=Modifie + peche -request.7.location=6,0 -request.7.layout=row -request.7.request=Select Count(dcp) \ -From fr.ird.observe.entities.data.ps.common.TripImpl m \ -Join m.routeObs r \ -Join r.activity a \ -Join a.floatingObject dcp \ -Where \ -m.id In :tripId \ -and dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId \ -and dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#8' \ -and a.vesselActivity.id != 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586' -request.7.repeat.name=typeObjetId -request.7.repeat.layout=column -request.7.comment=Modifie - peche -request.8.location=7,0 -request.8.layout=row -request.8.request=Select Count(dcp) \ -From fr.ird.observe.entities.data.ps.common.TripImpl m \ -Join m.routeObs r \ -Join r.activity a \ -Join a.floatingObject dcp \ -Where \ -m.id In :tripId \ -and dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId \ -and dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#4' \ -and a.vesselActivity.id = 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586' -request.8.repeat.name=typeObjetId -request.8.repeat.layout=column -request.8.comment=Retire + peche -request.9.location=8,0 -request.9.layout=row -request.9.request=Select Count(dcp) \ -From fr.ird.observe.entities.data.ps.common.TripImpl m \ -Join m.routeObs r \ -Join r.activity a \ -Join a.floatingObject dcp \ -Where \ -m.id In :tripId \ -and dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId \ -and dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#4' \ -and a.vesselActivity.id != 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586' -request.9.repeat.name=typeObjetId -request.9.repeat.layout=column -request.9.comment=Retire - peche -request.10.location=9,0 -request.10.layout=row -request.10.request=Select Count(dcp) \ -From fr.ird.observe.entities.data.ps.common.TripImpl m \ -Join m.routeObs r \ -Join r.activity a \ -Join a.floatingObject dcp \ -Where \ -m.id In :tripId \ -and dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId \ -and dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#5' \ -and a.vesselActivity.id = 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586' -request.10.repeat.name=typeObjetId -request.10.repeat.layout=column -request.10.comment=Abandonne + peche -request.11.location=10,0 -request.11.layout=row -request.11.request=Select Count(dcp) \ -From fr.ird.observe.entities.data.ps.common.TripImpl m \ -Join m.routeObs r \ -Join r.activity a \ -Join a.floatingObject dcp \ -Where \ -m.id In :tripId \ -and dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId \ -and dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#5' \ -and a.vesselActivity.id != 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586' -request.11.repeat.name=typeObjetId -request.11.repeat.layout=column -request.11.comment=Abandonne - peche -request.12.location=11,0 -request.12.layout=row -request.12.request=Select Count(dcp) \ -From fr.ird.observe.entities.data.ps.common.TripImpl m \ -Join m.routeObs r \ -Join r.activity a \ -Join a.floatingObject dcp \ -Where \ -m.id In :tripId \ -and dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId \ -and dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#7' \ -and a.vesselActivity.id = 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586' -request.12.repeat.name=typeObjetId -request.12.repeat.layout=column -request.12.comment=Coule + peche -request.13.location=12,0 -request.13.layout=row -request.13.request=Select Count(dcp) \ -From fr.ird.observe.entities.data.ps.common.TripImpl m \ -Join m.routeObs r \ -Join r.activity a \ -Join a.floatingObject dcp \ -Where \ -m.id In :tripId \ -and dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId \ -and dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#7' \ -and a.vesselActivity.id != 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586' -request.13.repeat.name=typeObjetId -request.13.repeat.layout=column -request.13.comment=Coule - peche -request.14.location=13,0 -request.14.layout=row -request.14.request=Select Count(dcp) \ -From fr.ird.observe.entities.data.ps.common.TripImpl m \ -Join m.routeObs r \ -Join r.activity a \ -Join a.floatingObject dcp \ -Where \ -m.id In :tripId \ -and dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId \ -and dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#9' \ -and a.vesselActivity.id = 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586' -request.14.repeat.name=typeObjetId -request.14.repeat.layout=column -request.14.comment=Remplace + peche -request.15.location=14,0 -request.15.layout=row -request.15.request=Select Count(dcp) \ -From fr.ird.observe.entities.data.ps.common.TripImpl m \ -Join m.routeObs r \ -Join r.activity a \ -Join a.floatingObject dcp \ -Where \ -m.id In :tripId \ -and dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId \ -and dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#9' \ -and a.vesselActivity.id != 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586' -request.15.repeat.name=typeObjetId -request.15.repeat.layout=column -request.15.comment=Remplace - peche -request.16.location=15,0 -request.16.layout=row -request.16.request=Select Count(dcp) \ -From fr.ird.observe.entities.data.ps.common.TripImpl m \ -Join m.routeObs r \ -Join r.activity a \ -Join a.floatingObject dcp \ -Where \ -m.id In :tripId \ -and dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId \ -and (dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#10' \ -or dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#3') \ -and a.vesselActivity.id = 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586' -request.16.repeat.name=typeObjetId -request.16.repeat.layout=column -request.16.comment=Autre ou ancien peche + peche -request.17.location=16,0 -request.17.layout=row -request.17.request=Select Count(dcp) \ -From fr.ird.observe.entities.data.ps.common.TripImpl m \ -Join m.routeObs r \ -Join r.activity a \ -Join a.floatingObject dcp \ -Where \ -m.id In :tripId \ -and dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId \ -and (dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#10' \ -or dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#3') \ -and a.vesselActivity.id != 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586' -request.17.repeat.name=typeObjetId -request.17.repeat.layout=column -request.17.comment=Autre ou ancien peche - peche -request.18.location=17,0 -request.18.layout=row -request.18.request=Select Sum(efo.count) \ -From fr.ird.observe.entities.data.ps.common.TripImpl m \ -Join m.routeObs r \ -Join r.activity a \ -Join a.floatingObject dcp \ -Join dcp.objectObservedSpecies efo \ -Where \ -m.id In :tripId \ -and dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId \ -and efo.species.speciesGroup.id = 'fr.ird.referential.common.SpeciesGroup#1239832683690#0.24333033683679461' -request.18.repeat.name=typeObjetId -request.18.repeat.layout=column -request.18.comment=Nombre de tortues +request.2.comment=visite + peche / visite - peche / Deploiement + peche / Deploiement - peche / Modifie + peche / Modifie - peche / Retire + peche / Retire - peche / Abandonne + peche / Abandonne - peche / Coule + peche / Coule - peche / Remplace + peche / Remplace - peche / Autre ou ancien peche + peche / Autre ou ancien peche - peche / Nombre de tortues ===================================== core/persistence/report/src/main/resources/META-INF/report/default/ps/psObservationFobUsageMinimal.report ===================================== @@ -33,17 +33,20 @@ repeatVariable.1.name=typeObjetId repeatVariable.1.type=java.lang.String repeatVariable.1.request=Select distinct (om.standardCode) \ From ObjectMaterialImpl om \ -Where standardCode is not null \ -And standardCode != '' \ -And (Select Count(dcp) \ +Where om.standardCode is not null \ +And om.standardCode != '' \ +And (om.standardCode In (Select Distinct(dcp.computedWhenArrivingSimplifiedObjectType) \ From fr.ird.observe.entities.data.ps.common.TripImpl m \ Join m.routeObs r \ Join r.activity a \ -Join a.floatingObject dcp \ -Where \ -m.id In :tripId \ -and (dcp.computedWhenArrivingSimplifiedObjectType = om.standardCode Or dcp.computedWhenLeavingSimplifiedObjectType = om.standardCode) \ -) > 0 +Join a.floatingObject dcp With dcp.computedWhenArrivingSimplifiedObjectType Is Not Null \ +Where m.id In :tripId ) Or om.standardCode In (Select Distinct(dcp.computedWhenLeavingSimplifiedObjectType) \ +From fr.ird.observe.entities.data.ps.common.TripImpl m \ +Join m.routeObs r \ +Join r.activity a \ +Join a.floatingObject dcp With dcp.computedWhenLeavingSimplifiedObjectType Is Not Null \ +Where m.id In :tripId )) \ +Order by om.standardCode repeatVariable.1.comment=liste des types CECOFAD en presence sur les donnees selectionnees request.1.location=0,0 request.1.layout=row @@ -56,74 +59,31 @@ request.1.repeat.name=typeObjetId request.1.repeat.layout=column request.2.location=1,0 request.2.layout=row -request.2.request=Select Count(dcp) \ -From fr.ird.observe.entities.data.ps.common.TripImpl m \ -Join m.routeObs r \ -Join r.activity a \ -Join a.floatingObject dcp \ -Where \ -m.id In :tripId \ -and dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId \ -and a.vesselActivity.id = 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586' \ -and (dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#2' \ +request.2.request=Select \ +Sum(Case When dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId And a.vesselActivity.id = 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586' And (dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#2' \ or dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#8' \ or dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#4' \ or dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#5' \ or dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#7' \ or dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#9' \ or dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#10' \ -or dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#3') -request.2.repeat.name=typeObjetId -request.2.repeat.layout=column -request.2.comment=rencontres + peches -request.3.location=2,0 -request.3.layout=row -request.3.request=Select Count(dcp) \ -From fr.ird.observe.entities.data.ps.common.TripImpl m \ -Join m.routeObs r \ -Join r.activity a \ -Join a.floatingObject dcp \ -Where \ -m.id In :tripId \ -and dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId \ -and a.vesselActivity.id != 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586' \ -and (dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#2' \ +or dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#3') Then 1 Else 0 End), \ +Sum(Case When dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId And a.vesselActivity.id != 'fr.ird.referential.ps.common.VesselActivity#1239832675369#0.12552908048322586' And (dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#2' \ or dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#8' \ or dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#4' \ or dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#5' \ or dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#7' \ or dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#9' \ or dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#10' \ -or dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#3') -request.3.repeat.name=typeObjetId -request.3.repeat.layout=column -request.3.comment=rencontres - peches -request.4.location=3,0 -request.4.layout=row -request.4.request=Select Count(dcp) \ -From fr.ird.observe.entities.data.ps.common.TripImpl m \ -Join m.routeObs r \ -Join r.activity a \ -Join a.floatingObject dcp \ -Where \ -m.id In :tripId \ -and dcp.computedWhenLeavingSimplifiedObjectType = :typeObjetId \ -and dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#1' -request.4.repeat.name=typeObjetId -request.4.repeat.layout=column -request.4.comment=deployes -request.5.location=4,0 -request.5.layout=row -request.5.request=Select Sum(efo.count) \ +or dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#3') Then 1 Else 0 End), \ +Sum(Case When dcp.computedWhenLeavingSimplifiedObjectType = :typeObjetId And dcp.objectOperation.id = 'fr.ird.referential.ps.common.ObjectOperation#0#1' Then 1 Else 0 End), \ +Sum(Case When dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId And dcp.objectObservedSpecies Is Not Empty Then (Select Sum(efo.count) From fr.ird.observe.entities.data.ps.observation.FloatingObjectImpl dcp1 Join dcp1.objectObservedSpecies efo With efo.species.speciesGroup.id = 'fr.ird.referential.common.SpeciesGroup#1239832683690#0.24333033683679461' Where dcp1 = dcp) Else 0 End) \ From fr.ird.observe.entities.data.ps.common.TripImpl m \ Join m.routeObs r \ Join r.activity a \ -Join a.floatingObject dcp \ -Join dcp.objectObservedSpecies efo \ +Join a.floatingObject dcp With dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId Or dcp.computedWhenLeavingSimplifiedObjectType = :typeObjetId \ Where \ -m.id In :tripId \ -and dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId \ -and efo.species.speciesGroup.id = 'fr.ird.referential.common.SpeciesGroup#1239832683690#0.24333033683679461' -request.5.repeat.name=typeObjetId -request.5.repeat.layout=column -request.5.comment=Nombre de tortues +m.id In :tripId +request.2.repeat.name=typeObjetId +request.2.repeat.layout=column +request.2.comment=rencontres + peches / rencontres - peches / deployes / Nombre de tortues ===================================== core/services/test/src/main/java/fr/ird/observe/services/service/report/ps/PsObservationFobUsageExtendedReportFixture.java ===================================== @@ -45,6 +45,5 @@ public class PsObservationFobUsageExtendedReportFixture extends ReportFixture { Iterator<ReportRequestDefinition> requests = getRequestIterator(report); assertReportRequestDimension(requests, RequestLayout.row, 0, 0); assertReportRequestDimension(requests, RequestLayout.row, 1, 0); - assertReportRequestDimension(requests, RequestLayout.row, 2, 0); } } ===================================== core/services/test/src/main/java/fr/ird/observe/services/service/report/ps/PsObservationFobUsageMinimalReportFixture.java ===================================== @@ -45,6 +45,5 @@ public class PsObservationFobUsageMinimalReportFixture extends ReportFixture { Iterator<ReportRequestDefinition> requests = getRequestIterator(report); assertReportRequestDimension(requests, RequestLayout.row, 0, 0); assertReportRequestDimension(requests, RequestLayout.row, 1, 0); - assertReportRequestDimension(requests, RequestLayout.row, 2, 0); } } ===================================== core/services/test/src/main/resources/fixtures/fr/ird/observe/services/service/ReportService-psLogbookWellPlanCheck.properties ===================================== @@ -25,7 +25,7 @@ syntax.rows=-1 syntax.columns=20 syntax.columnsHeader=Code bateau^Nom bateau^Date départ^Date arrivée^Date de route^Numéro activité^Heure activité^Logbook YFT^Logbook SKJ^Logbook BET^Logbook ALB^Logbook Autres^Plan de cuves YFT^Plan de cuves SKJ^Plan de cuves BET^Plan de cuves ALB^Plan de cuves Autres^Logbook Total^Plan de cuves Total^Différence syntax.rowsHeader= -syntax.nbRequests=5 +syntax.nbRequests=1 result.columns=20 result.rows=4 result.0=483^CAP BOJADOR^30/03/2019^08/04/2019^30/03/2019^1^15:12^0.0^123.0^43.0^0.0^0.0^0.0^0.0^12.0^0.0^0.0^166.0^12.0^154.0 ===================================== core/services/test/src/main/resources/fixtures/fr/ird/observe/services/service/ReportService-psObservationFobUsageExtended.properties ===================================== @@ -19,14 +19,14 @@ # <http://www.gnu.org/licenses/gpl-3.0.html>. # #L% ### -result.0=FOB - FOB^0^1^0^0^0^0^0^0^0^0^0^0^0^0^0^0^null -result.1=DFAD - DFAD (FAD dérivant)^1^15^1^27^0^0^0^0^0^0^0^0^0^0^0^0^null +result.0=DFAD - DFAD (FAD dérivant)^1^15^1^27^0^0^0^0^0^0^0^0^0^0^0^0^0 +result.1=FOB - FOB^0^1^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0 result.columns=18 result.rows=2 syntax.columns=18 syntax.columnsHeader=Type de FOB^Visités Pêchés^Visités non Pêchés^Déploiement après Pêches^Déploiement seul^Modifiés Pêchés^Modifiés non Pêchés^Retirés Pêchés^Retirés non Pêchés^Abandonnés Pêchés^Abandonnés non Pêchés^Coulés Pêchés^Coulés non Pêchés^Remplacés Pêchés^Remplacés non Pêchés^Autre Pêchés^Autre non Pêchés^Tortues associées syntax.description=Tableau récapitulatif des FOB rencontrés, par types CECOFAD et types d’actions (déploiements, simples visites, modifications, diverses modalités de retraits), avec et sans pêche, et nombres de tortues observées syntax.name=Observations - Utilisation des FOB, tableau détaillé -syntax.nbRequests=18 +syntax.nbRequests=2 syntax.rows=-1 syntax.rowsHeader= ===================================== core/services/test/src/main/resources/fixtures/fr/ird/observe/services/service/ReportService-psObservationFobUsageMinimal.properties ===================================== @@ -19,14 +19,14 @@ # <http://www.gnu.org/licenses/gpl-3.0.html>. # #L% ### -result.0=FOB - FOB^0^1^0^null -result.1=DFAD - DFAD (FAD dérivant)^1^15^28^null +result.0=DFAD - DFAD (FAD dérivant)^1^15^28^0 +result.1=FOB - FOB^0^1^0^0 result.columns=5 result.rows=2 syntax.columns=5 syntax.columnsHeader=Type de FOB^Rencontrés pêchés^Rencontrés non pêchés^Déployés^Tortues associées syntax.description=Tableau récapitulatif des FOB rencontrés, par types CECOFAD et types d’actions regroupés (rencontrés et pêchés, rencontrés non pêchés, déployés), et nombres de tortues observées syntax.name=Observations - Utilisation des FOB, tableau simplifiée -syntax.nbRequests=5 +syntax.nbRequests=2 syntax.rows=-1 syntax.rowsHeader= ===================================== toolkit/api-report/src/main/java/fr/ird/observe/report/ReportRequestExecutor.java ===================================== @@ -107,7 +107,9 @@ public interface ReportRequestExecutor { String variableName = variable.getName(); if (variable.isValuesLoaded()) { // variable already loaded - log.debug(String.format("Do not populate variable %s, variable already loaded.", variableName)); + if (log.isDebugEnabled()) { + log.debug(String.format("Do not populate variable %s, variable already loaded.", variableName)); + } continue; } Map<String, Object> vars = new TreeMap<>(); @@ -178,64 +180,84 @@ public interface ReportRequestExecutor { } // remplissage des variables de répétition si nécessaire populateRepeatVariables(report, tripId); - log.debug(String.format("Build result for report [%s] on %s", report.getName(), tripId)); + if (log.isDebugEnabled()) { + log.debug(String.format("Build result for report [%s] on %s", report.getName(), tripId)); + } int rows = report.getRows(); int columns = report.getColumns(); - log.debug(String.format("Dimension : [%d,%d]", rows, columns)); + if (log.isDebugEnabled()) { + log.debug(String.format("Dimension : [%d,%d]", rows, columns)); + } // lancement de la première opération et la matrice de résultat DataMatrix result = ReportOperationConsumers.executeReportOperation(this, ExecuteRequests.OPERATION, report, tripId, new DataMatrix()); // lancement des opérations supplémentaires for (ReportOperationDefinition operation : report.getOperations()) { DataMatrix tmp = result; - log.debug(String.format("Apply operation %s to %s", operation, tmp)); + if (log.isDebugEnabled()) { + log.debug(String.format("Apply operation %s to %s", operation, tmp)); + } result = ReportOperationConsumers.executeReportOperation(this, operation, report, tripId, tmp); } - log.debug(String.format("Final result : %s", result)); + if (log.isDebugEnabled()) { + log.debug(String.format("Final result : %s", result)); + } return result; } default DataMatrix executeReportRequest(ReportRequestDefinition request, Report report, Set<String> dataId) { - Map<String, Object> params = extractParams(report, dataId); - ReportDefinition reportDefinition = report.definition(); - String hql = i18nContext().translateRequest(reportDefinition, request); - for (ReportRepeatVariable<?> repeatVariable : report.getRepeatVariables()) { - if (isVariableUsed(hql, repeatVariable.getName())) { - // add this repeat variable values to parameters - params.put(repeatVariable.getName(), repeatVariable.computeIndexList()); + long t0 = TimeLog.getTime(); + try { + Map<String, Object> params = extractParams(report, dataId); + ReportDefinition reportDefinition = report.definition(); + String hql = i18nContext().translateRequest(reportDefinition, request); + for (ReportRepeatVariable<?> repeatVariable : report.getRepeatVariables()) { + if (isVariableUsed(hql, repeatVariable.getName())) { + // add this repeat variable values to parameters + params.put(repeatVariable.getName(), repeatVariable.computeIndexList()); + } } + return executeReportRequest(reportDefinition, request, params); + } finally { + TIME_LOG.log(t0, "executeReportRequest", request.toString()); } - return executeReportRequest(reportDefinition, request, params); } default DataMatrix executeReportRequest(ReportRequestDefinition request, Report report, Set<String> dataId, ReportRepeatVariable<?> repeatValues) { - Map<String, Object> params = extractParams(report, dataId); - DataMatrix result = new DataMatrix(); - RequestRepeatVariableDefinition requestRepeatVariable = request.getRepeat(); - RequestLayout requestRepeatVariableLayout = requestRepeatVariable.getLayout(); - String repeatVariableName = requestRepeatVariable.getVariableName(); - ReportDefinition reportDefinition = report.definition(); - for (Object repeatValue : repeatValues.getValues()) { - params.put(repeatVariableName, repeatValue); - DataMatrix tmp = executeReportRequest(reportDefinition, request, params); - switch (requestRepeatVariableLayout) { - case row: - // add current result on the same row (at the right of the current result) - tmp.setX(result.getX() + result.getWidth()); - tmp.setY(result.getY()); - break; - case column: - // add current result on the same column (at the bottom of the current result) - tmp.setX(result.getX()); - tmp.setY(result.getY() + result.getHeight()); - break; + long t0 = TimeLog.getTime(); + try { + Map<String, Object> params = extractParams(report, dataId); + DataMatrix result = new DataMatrix(); + RequestRepeatVariableDefinition requestRepeatVariable = request.getRepeat(); + RequestLayout requestRepeatVariableLayout = requestRepeatVariable.getLayout(); + String repeatVariableName = requestRepeatVariable.getVariableName(); + ReportDefinition reportDefinition = report.definition(); + for (Object repeatValue : repeatValues.getValues()) { + params.put(repeatVariableName, repeatValue); + DataMatrix tmp = executeReportRequest(reportDefinition, request, params); + switch (requestRepeatVariableLayout) { + case row: + // add current result on the same row (at the right of the current result) + tmp.setX(result.getX() + result.getWidth()); + tmp.setY(result.getY()); + break; + case column: + // add current result on the same column (at the bottom of the current result) + tmp.setX(result.getX()); + tmp.setY(result.getY() + result.getHeight()); + break; + } + result = DataMatrix.merge(result, tmp); } - result = DataMatrix.merge(result, tmp); + result.setX(request.getX()); + result.setY(request.getY()); + if (log.isDebugEnabled()) { + log.debug(String.format("Result location : %s", result.getLocation())); + log.debug(String.format("Result data :\n%s", result.getClipboardContent(true, true, false, '\t'))); + } + return result; + } finally { + TIME_LOG.log(t0, "executeReportRequest", request.toString()); } - result.setX(request.getX()); - result.setY(request.getY()); - log.debug(String.format("Result location : %s", result.getLocation())); - log.debug(String.format("Result data :\n%s", result.getClipboardContent(true, true, false, '\t'))); - return result; } default DataMatrix executeReportRequest(ReportDefinition reportDefinition, ReportRequestDefinition reportRequestDefinition, Map<String, Object> params) { View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/compare/b5ef9ebc78e3cab2442d0bb8f... -- View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/compare/b5ef9ebc78e3cab2442d0bb8f... You're receiving this email because of your account on gitlab.com.