Tony CHEMIT pushed to branch develop-7.x at ultreiaio / ird-observe

Commits:

8 changed files:

Changes:

  • client-core/src/main/java/fr/ird/observe/client/ui/admin/config/ConfigModel.java
    ... ... @@ -30,6 +30,7 @@ import fr.ird.observe.client.ui.admin.AdminActionModel;
    30 30
     import fr.ird.observe.client.ui.admin.AdminStep;
    
    31 31
     import fr.ird.observe.client.ui.admin.AdminUI;
    
    32 32
     import fr.ird.observe.client.ui.admin.AdminUIModel;
    
    33
    +import fr.ird.observe.client.ui.admin.report.ReportModel;
    
    33 34
     import fr.ird.observe.client.ui.storage.StorageUIModel;
    
    34 35
     import fr.ird.observe.client.ui.tree.selection.SelectionTreeModel;
    
    35 36
     import fr.ird.observe.services.configuration.ObserveDataSourceConfiguration;
    
    ... ... @@ -37,6 +38,7 @@ import fr.ird.observe.services.configuration.ObserveDataSourceInformation;
    37 38
     import fr.ird.observe.services.service.BabModelVersionException;
    
    38 39
     import fr.ird.observe.services.service.DatabaseConnexionNotAuthorizedException;
    
    39 40
     import fr.ird.observe.services.service.DatabaseNotFoundException;
    
    41
    +import fr.ird.observe.services.service.actions.report.Report;
    
    40 42
     import org.apache.commons.lang3.StringUtils;
    
    41 43
     import org.apache.logging.log4j.LogManager;
    
    42 44
     import org.apache.logging.log4j.Logger;
    
    ... ... @@ -44,6 +46,7 @@ import org.apache.logging.log4j.Logger;
    44 46
     import java.beans.PropertyChangeListener;
    
    45 47
     import java.io.File;
    
    46 48
     import java.util.EnumSet;
    
    49
    +import java.util.List;
    
    47 50
     import java.util.Objects;
    
    48 51
     
    
    49 52
     import static fr.ird.observe.client.constants.DbMode.USE_LOCAL;
    
    ... ... @@ -427,8 +430,10 @@ public class ConfigModel extends AdminActionModel {
    427 430
             if (uiModel.containsOperation(AdminStep.REPORT)) {
    
    428 431
     
    
    429 432
                 // il faut le fichier di'mport existe
    
    430
    -            File reportFile = uiModel.getReportModel().getReportFile();
    
    431
    -            validate &= reportFile != null && reportFile.exists();
    
    433
    +            ReportModel reportModel = uiModel.getReportModel();
    
    434
    +            File reportFile = reportModel.getReportFile();
    
    435
    +            List<Report> reports = reportModel.getReports();
    
    436
    +            validate &= reportFile != null && reportFile.exists() && reports!=null && !reports.isEmpty();
    
    432 437
             }
    
    433 438
     
    
    434 439
             return validate;
    

  • client-core/src/main/java/fr/ird/observe/client/ui/admin/report/ReportModel.java
    ... ... @@ -32,13 +32,15 @@ import fr.ird.observe.client.ui.tree.selection.SelectionTreeModel;
    32 32
     import fr.ird.observe.dto.ObserveModelType;
    
    33 33
     import fr.ird.observe.services.service.actions.report.Report;
    
    34 34
     import fr.ird.observe.services.service.actions.report.ReportBuilder;
    
    35
    -import org.apache.logging.log4j.Logger;
    
    36 35
     import org.apache.logging.log4j.LogManager;
    
    36
    +import org.apache.logging.log4j.Logger;
    
    37 37
     
    
    38 38
     import java.beans.PropertyChangeListener;
    
    39 39
     import java.io.File;
    
    40 40
     import java.io.IOException;
    
    41 41
     import java.net.URL;
    
    42
    +import java.nio.file.Files;
    
    43
    +import java.util.Collections;
    
    42 44
     import java.util.List;
    
    43 45
     import java.util.Map;
    
    44 46
     import java.util.TreeMap;
    
    ... ... @@ -200,15 +202,18 @@ public class ReportModel extends AdminActionModel {
    200 202
     
    
    201 203
         public List<Report> getAllReports() {
    
    202 204
             if (allReports == null) {
    
    203
    -            try {
    
    204
    -                URL resource = reportFile.toURI().toURL();
    
    205
    -                allReports = loadReports(resource);
    
    206
    -                if (log.isDebugEnabled()) {
    
    207
    -                    log.debug("Add loaded " + allReports.size() + " report(s).");
    
    205
    +            if (reportFile == null || Files.notExists(reportFile.toPath())) {
    
    206
    +                log.warn("No report file, no reports loaded.");
    
    207
    +                allReports = Collections.emptyList();
    
    208
    +            } else {
    
    209
    +                try {
    
    210
    +                    URL resource = reportFile.toURI().toURL();
    
    211
    +                    allReports = loadReports(resource);
    
    212
    +                    log.debug(String.format("Add loaded %d report(s).", allReports.size()));
    
    213
    +                } catch (IOException e) {
    
    214
    +                    throw new IllegalStateException(
    
    215
    +                            String.format("Could not load reports definition file (%s).", reportFile), e);
    
    208 216
                     }
    
    209
    -            } catch (IOException e) {
    
    210
    -                throw new IllegalStateException(
    
    211
    -                        "Could not load reports definition file (" + reportFile + ").", e);
    
    212 217
                 }
    
    213 218
             }
    
    214 219
             return allReports;
    
    ... ... @@ -276,6 +281,7 @@ public class ReportModel extends AdminActionModel {
    276 281
     
    
    277 282
         public void updateReports() {
    
    278 283
             setSelectedReport(null);
    
    284
    +        allReports=null;
    
    279 285
             reports = getAllReports().stream().filter(r -> modelType == r.getModelType()).collect(Collectors.toList());
    
    280 286
             firePropertyChange(REPORTS_PROPERTY_NAME, reports);
    
    281 287
             if (log.isInfoEnabled()) {
    
    ... ... @@ -290,15 +296,11 @@ public class ReportModel extends AdminActionModel {
    290 296
             File reportFile = ObserveResourceManager.Resource.report.getFile(config.getReportDirectory());
    
    291 297
     
    
    292 298
             if (reportFile.exists()) {
    
    293
    -            if (log.isInfoEnabled()) {
    
    294
    -                log.info("Will use report file : " + reportFile);
    
    295
    -            }
    
    296
    -
    
    297
    -            setReportFile(reportFile);
    
    299
    +            log.info(String.format("Will use default report file : %s", reportFile));
    
    298 300
             } else {
    
    299
    -            if (log.isWarnEnabled())
    
    300
    -                log.warn("Default report file " + reportFile + " does not exists.");
    
    301
    +            log.warn(String.format("Default report file %s does not exists.", reportFile));
    
    301 302
             }
    
    303
    +        setReportFile(reportFile);
    
    302 304
     
    
    303 305
             // on ecoute la modification du modèle
    
    304 306
             PropertyChangeListener listenReportModified = evt -> {
    

  • dto/pom.xml
    ... ... @@ -180,6 +180,12 @@
    180 180
                   <artifactId>templates</artifactId>
    
    181 181
                   <version>${observeToolkitVersion}</version>
    
    182 182
                 </dependency>
    
    183
    +            <dependency>
    
    184
    +              <groupId>io.ultreia.java4all.jaxx</groupId>
    
    185
    +              <artifactId>jaxx-runtime-spi</artifactId>
    
    186
    +              <version>${lib.version.java4all.jaxx}</version>
    
    187
    +            </dependency>
    
    188
    +
    
    183 189
               </dependencies>
    
    184 190
             </plugin>
    
    185 191
             <plugin>
    

  • persistence/pom.xml
    ... ... @@ -238,6 +238,11 @@
    238 238
                   <artifactId>templates</artifactId>
    
    239 239
                   <version>${observeToolkitVersion}</version>
    
    240 240
                 </dependency>
    
    241
    +            <dependency>
    
    242
    +              <groupId>io.ultreia.java4all.jaxx</groupId>
    
    243
    +              <artifactId>jaxx-runtime-spi</artifactId>
    
    244
    +              <version>${lib.version.java4all.jaxx}</version>
    
    245
    +            </dependency>
    
    241 246
               </dependencies>
    
    242 247
             </plugin>
    
    243 248
           </plugins>
    

  • pom.xml
    ... ... @@ -26,7 +26,7 @@
    26 26
       <parent>
    
    27 27
         <groupId>io.ultreia.maven</groupId>
    
    28 28
         <artifactId>pom</artifactId>
    
    29
    -    <version>2020.32</version>
    
    29
    +    <version>2020.36</version>
    
    30 30
       </parent>
    
    31 31
     
    
    32 32
       <groupId>fr.ird.observe</groupId>
    
    ... ... @@ -155,18 +155,19 @@
    155 155
         <maven.build.timestamp.format>dd/MM/yyyy HH:mm z</maven.build.timestamp.format>
    
    156 156
         <buildDate>${maven.build.timestamp}</buildDate>
    
    157 157
     
    
    158
    -    <observeToolkitVersion>3.7.28</observeToolkitVersion>
    
    159
    -    <!--<lib.version.java4all.http>1.0.13</lib.version.java4all.http>-->
    
    158
    +    <!--Fixed versions-->
    
    160 159
         <lib.version.nuiton.validation>3.1</lib.version.nuiton.validation>
    
    161
    -    <!--<lib.version.java4all.config>1.0.3</lib.version.java4all.config>-->
    
    162
    -
    
    163 160
         <!--can't use 1.4.197 (date has changed + blob also-->
    
    164 161
         <lib.version.h2>1.4.196</lib.version.h2>
    
    165 162
         <lib.version.java4all.eugene>3.0-alpha-26</lib.version.java4all.eugene>
    
    166
    -    <!--<lib.version.java4all.jaxx>3.0-alpha-69-SNAPSHOT</lib.version.java4all.jaxx>-->
    
    167
    -    <!--<lib.version.java4all.i18n>4.0-beta-8-SNAPSHOT</lib.version.java4all.i18n>-->
    
    168 163
         <lib.version.java4all.topia>1.1.17</lib.version.java4all.topia>
    
    169 164
         <lib.version.nuiton.utils>3.0</lib.version.nuiton.utils>
    
    165
    +
    
    166
    +    <observeToolkitVersion>3.7.29</observeToolkitVersion>
    
    167
    +    <!--<lib.version.java4all.http>1.0.13</lib.version.java4all.http>-->
    
    168
    +    <!--<lib.version.java4all.config>1.0.3</lib.version.java4all.config>-->
    
    169
    +    <!--<lib.version.java4all.jaxx>3.0-alpha-69-SNAPSHOT</lib.version.java4all.jaxx>-->
    
    170
    +    <!--<lib.version.java4all.i18n>4.0-beta-8-SNAPSHOT</lib.version.java4all.i18n>-->
    
    170 171
         <!--<lib.version.nuiton.topia>3.6-SNAPSHOT</lib.version.nuiton.topia>-->
    
    171 172
         <!--<lib.version.java4all.eugene>3.0-alpha-21</lib.version.java4all.eugene>-->
    
    172 173
         <!--<lib.version.java4all.config>1.0.9-SNAPSHOT</lib.version.java4all.config>-->
    

  • server-core/pom.xml
    ... ... @@ -247,6 +247,11 @@
    247 247
                 <artifactId>guava</artifactId>
    
    248 248
                 <version>${lib.version.google.guava}</version>
    
    249 249
               </dependency>
    
    250
    +          <dependency>
    
    251
    +            <groupId>io.ultreia.java4all.jaxx</groupId>
    
    252
    +            <artifactId>jaxx-runtime-spi</artifactId>
    
    253
    +            <version>${lib.version.java4all.jaxx}</version>
    
    254
    +          </dependency>
    
    250 255
             </dependencies>
    
    251 256
           </plugin>
    
    252 257
         </plugins>
    

  • services-client/pom.xml
    ... ... @@ -176,6 +176,11 @@
    176 176
                 <artifactId>services</artifactId>
    
    177 177
                 <version>${project.version}</version>
    
    178 178
               </dependency>
    
    179
    +          <dependency>
    
    180
    +            <groupId>io.ultreia.java4all.jaxx</groupId>
    
    181
    +            <artifactId>jaxx-runtime-spi</artifactId>
    
    182
    +            <version>${lib.version.java4all.jaxx}</version>
    
    183
    +          </dependency>
    
    179 184
             </dependencies>
    
    180 185
           </plugin>
    
    181 186
         </plugins>
    

  • services/src/main/resources/observe-reports.properties
    ... ... @@ -119,13 +119,19 @@ report.dailySetAndCatch.request.1=0,0|row|\
    119 119
       Group By r.date \
    
    120 120
       Order By r.date
    
    121 121
     ################################################################################
    
    122
    -## Utilisation des FOB
    
    122
    +## Utilisation des FOB, tableau simplifie
    
    123 123
     ################################################################################
    
    124
    -report.dcpUsage.modelType=PS
    
    125
    -report.dcpUsage.name=Utilisation des FOB
    
    126
    -report.dcpUsage.description=Tableau r\u00e9capitulatif du nombre de FOB visit\u00e9s selon l\u2019action effectu\u00e9e (visites avec et sans p\u00eache, mis \u00e0 l\u2019eau, r\u00e9cuperation), et tortues observ\u00e9es
    
    127
    -report.dcpUsage.columns=Type de FOB (Tableau 8),Visit\u00e9s sans p\u00eache,P\u00each\u00e9s,Mis \u00e0 l\u2019eau seuls,Modifi\u00e9s ou renforc\u00e9s,Retir\u00e9s,Abandonn\u00e9s (sans balise ou non d\u00e9truit ou non coul\u00e9),Coul\u00e9s,Remplac\u00e9s,Autre (p\u00e9ciser dans les notes),Tortues associ\u00e9es
    
    128
    -report.dcpUsage.repeatVariable.typeObjetId=java.lang.String|\
    
    124
    +report.fobUsageMinimal.modelType=PS
    
    125
    +report.fobUsageMinimal.name=Utilisation des FOB, tableau simplifi\u00e9e
    
    126
    +report.fobUsageMinimal.description=Tableau r\u00e9capitulatif des FOB rencontr\u00e9s, par types CECOFAD et types d\u2019actions regroup\u00e9s (rencontr\u00e9s et p\u00each\u00e9s, rencontr\u00e9s non p\u00each\u00e9s, d\u00e9ploy\u00e9s), et nombres de tortues observ\u00e9es
    
    127
    +report.fobUsageMinimal.columns=Type de FOB, \
    
    128
    +						Rencontr\u00e9s p\u00each\u00e9s, \
    
    129
    +						Rencontr\u00e9s non p\u00each\u00e9s, \
    
    130
    +						D\u00e9ploy\u00e9s, \
    
    131
    +						Tortues associ\u00e9es
    
    132
    +
    
    133
    +# liste des types CECOFAD en presence sur les donnees selectionnees
    
    134
    +report.fobUsageMinimal.repeatVariable.typeObjetId=java.lang.String|\
    
    129 135
       Select distinct (om.standardCode) \
    
    130 136
       From ObjectMaterialImpl om \
    
    131 137
       Where standardCode is not null \
    
    ... ... @@ -139,15 +145,37 @@ report.dcpUsage.repeatVariable.typeObjetId=java.lang.String|\
    139 145
                m.id In :tripId \
    
    140 146
                and (dcp.computedWhenArrivingSimplifiedObjectType = om.standardCode Or dcp.computedWhenLeavingSimplifiedObjectType = om.standardCode) \
    
    141 147
            ) > 0
    
    142
    -report.dcpUsage.request.1=0,0|row|\
    
    148
    +report.fobUsageMinimal.request.1=0,0|row|\
    
    143 149
       Select concat(str(om.standardCode) , ' - ', om.label2) \
    
    144 150
       From ObjectMaterialImpl om \
    
    145 151
       Where \
    
    146 152
           om.standardCode = :typeObjetId \
    
    147 153
           And om.status != 0
    
    148
    -report.dcpUsage.request.1.repeat=typeObjetId|column
    
    149
    -# visite
    
    150
    -report.dcpUsage.request.2=1,0|row|\
    
    154
    +report.fobUsageMinimal.request.1.repeat=typeObjetId|column
    
    155
    +
    
    156
    +# rencontres + peches
    
    157
    +report.fobUsageMinimal.request.2=1,0|row|\
    
    158
    +  Select Count(dcp) \
    
    159
    +  From TripSeineImpl m \
    
    160
    +  Join m.route r \
    
    161
    +  Join r.activitySeine a \
    
    162
    +  Join a.floatingObject dcp \
    
    163
    +  Where \
    
    164
    +      m.id In :tripId \
    
    165
    +      and dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId \
    
    166
    +	  and a.vesselActivitySeine.id = 'fr.ird.observe.entities.referentiel.seine.VesselActivitySeine#1239832675369#0.12552908048322586' \
    
    167
    +	  and (dcp.objectOperation.id = 'fr.ird.observe.entities.referentiel.seine.ObjectOperation#0#2' \
    
    168
    +	  	   or dcp.objectOperation.id = 'fr.ird.observe.entities.referentiel.seine.ObjectOperation#0#8' \
    
    169
    +	  	   or dcp.objectOperation.id = 'fr.ird.observe.entities.referentiel.seine.ObjectOperation#0#4' \
    
    170
    +	  	   or dcp.objectOperation.id = 'fr.ird.observe.entities.referentiel.seine.ObjectOperation#0#5' \
    
    171
    +	  	   or dcp.objectOperation.id = 'fr.ird.observe.entities.referentiel.seine.ObjectOperation#0#7' \
    
    172
    +	  	   or dcp.objectOperation.id = 'fr.ird.observe.entities.referentiel.seine.ObjectOperation#0#9' \
    
    173
    +	  	   or dcp.objectOperation.id = 'fr.ird.observe.entities.referentiel.seine.ObjectOperation#0#10' \
    
    174
    +      	   or dcp.objectOperation.id = 'fr.ird.observe.entities.referentiel.seine.ObjectOperation#0#3')
    
    175
    +report.fobUsageMinimal.request.2.repeat=typeObjetId|column
    
    176
    +
    
    177
    +# rencontres - peches
    
    178
    +report.fobUsageMinimal.request.3=2,0|row|\
    
    151 179
       Select Count(dcp) \
    
    152 180
       From TripSeineImpl m \
    
    153 181
       Join m.route r \
    
    ... ... @@ -156,23 +184,120 @@ report.dcpUsage.request.2=1,0|row|\
    156 184
       Where \
    
    157 185
           m.id In :tripId \
    
    158 186
           and dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId \
    
    159
    -      and dcp.objectOperation.id = 'fr.ird.observe.entities.referentiel.seine.ObjectOperation#0#2' \
    
    160 187
     	  and a.vesselActivitySeine.id != 'fr.ird.observe.entities.referentiel.seine.VesselActivitySeine#1239832675369#0.12552908048322586'
    
    161
    -report.dcpUsage.request.2.repeat=typeObjetId|column
    
    162
    -# peche
    
    163
    -report.dcpUsage.request.3=2,0|row|\
    
    188
    +and (dcp.objectOperation.id = 'fr.ird.observe.entities.referentiel.seine.ObjectOperation#0#2' \
    
    189
    +	  	   or dcp.objectOperation.id = 'fr.ird.observe.entities.referentiel.seine.ObjectOperation#0#8' \
    
    190
    +	  	   or dcp.objectOperation.id = 'fr.ird.observe.entities.referentiel.seine.ObjectOperation#0#4' \
    
    191
    +	  	   or dcp.objectOperation.id = 'fr.ird.observe.entities.referentiel.seine.ObjectOperation#0#5' \
    
    192
    +	  	   or dcp.objectOperation.id = 'fr.ird.observe.entities.referentiel.seine.ObjectOperation#0#7' \
    
    193
    +	  	   or dcp.objectOperation.id = 'fr.ird.observe.entities.referentiel.seine.ObjectOperation#0#9' \
    
    194
    +	  	   or dcp.objectOperation.id = 'fr.ird.observe.entities.referentiel.seine.ObjectOperation#0#10' \
    
    195
    +      	   or dcp.objectOperation.id = 'fr.ird.observe.entities.referentiel.seine.ObjectOperation#0#3')
    
    196
    +report.fobUsageMinimal.request.3.repeat=typeObjetId|column
    
    197
    +
    
    198
    +# deployes
    
    199
    +report.fobUsageMinimal.request.4=3,0|row|\
    
    164 200
       Select Count(dcp) \
    
    165 201
       From TripSeineImpl m \
    
    166 202
       Join m.route r \
    
    167 203
       Join r.activitySeine a \
    
    168 204
       Join a.floatingObject dcp \
    
    205
    +  Where \
    
    206
    +      m.id In :tripId \
    
    207
    +      and dcp.computedWhenLeavingSimplifiedObjectType = :typeObjetId \
    
    208
    +	  and dcp.objectOperation.id = 'fr.ird.observe.entities.referentiel.seine.ObjectOperation#0#1'
    
    209
    +report.fobUsageMinimal.request.4.repeat=typeObjetId|column
    
    210
    +
    
    211
    +# Nombre de tortues
    
    212
    +report.fobUsageMinimal.request.5=4,0|row| \
    
    213
    +  Select Sum(efo.count) \
    
    214
    +  From TripSeineImpl m \
    
    215
    +  Join m.route r \
    
    216
    +  Join r.activitySeine a \
    
    217
    +  Join a.floatingObject dcp \
    
    218
    +  Join dcp.objectObservedSpecies efo \
    
    169 219
       Where \
    
    170 220
           m.id In :tripId \
    
    171 221
           and dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId \
    
    172
    -      and (dcp.objectOperation.id = 'fr.ird.observe.entities.referentiel.seine.ObjectOperation#0#3' Or a.vesselActivitySeine.id = 'fr.ird.observe.entities.referentiel.seine.VesselActivitySeine#1239832675369#0.12552908048322586')
    
    173
    -report.dcpUsage.request.3.repeat=typeObjetId|column
    
    174
    -# mis a l'eau
    
    175
    -report.dcpUsage.request.4=3,0|row|\
    
    222
    +      and efo.species.speciesGroup.id = 'fr.ird.observe.entities.referentiel.SpeciesGroup#1239832683690#0.24333033683679461'
    
    223
    +report.fobUsageMinimal.request.5.repeat=typeObjetId|column
    
    224
    +################################################################################
    
    225
    +## Utilisation des FOB, tableau detaille
    
    226
    +################################################################################
    
    227
    +report.fobUsageExtended.modelType=PS
    
    228
    +report.fobUsageExtended.name=Utilisation des FOB, tableau d\u00e9taill\u00e9
    
    229
    +report.fobUsageExtended.description=Tableau r\u00e9capitulatif des FOB rencontr\u00e9s, par types CECOFAD et types d\u2019actions (d\u00e9ploiements, simples visites, modifications, diverses modalit\u00e9s de retraits), avec et sans p\u00eache, et nombres de tortues observ\u00e9es
    
    230
    +report.fobUsageExtended.columns=Type de FOB, \
    
    231
    +						Visit\u00e9s P\u00each\u00e9s, \
    
    232
    +						Visit\u00e9s non P\u00each\u00e9s, \
    
    233
    +						D\u00e9ploiement apr\u00e8s P\u00eaches, \
    
    234
    +						D\u00e9ploiement seul, \
    
    235
    +						Modifi\u00e9s P\u00each\u00e9s, \
    
    236
    +						Modifi\u00e9s non P\u00each\u00e9s, \
    
    237
    +						Retir\u00e9s P\u00each\u00e9s, \
    
    238
    +						Retir\u00e9s non P\u00each\u00e9s, \
    
    239
    +						Abandonn\u00e9s P\u00each\u00e9s, \
    
    240
    +						Abandonn\u00e9s non P\u00each\u00e9s, \
    
    241
    +						Coul\u00e9s P\u00each\u00e9s, \
    
    242
    +						Coul\u00e9s non P\u00each\u00e9s, \
    
    243
    +						Remplac\u00e9s P\u00each\u00e9s, \
    
    244
    +						Remplac\u00e9s non P\u00each\u00e9s, \
    
    245
    +						Autre P\u00each\u00e9s, \
    
    246
    +						Autre non P\u00each\u00e9s, \
    
    247
    +						Tortues associ\u00e9es
    
    248
    +
    
    249
    +report.fobUsageExtended.repeatVariable.typeObjetId=java.lang.String|\
    
    250
    +  Select distinct (om.standardCode) \
    
    251
    +  From ObjectMaterialImpl om \
    
    252
    +  Where standardCode is not null \
    
    253
    +  And standardCode != '' \
    
    254
    +  And (Select Count(dcp) \
    
    255
    +       From TripSeineImpl m \
    
    256
    +       Join m.route r \
    
    257
    +       Join r.activitySeine a \
    
    258
    +       Join a.floatingObject dcp \
    
    259
    +       Where \
    
    260
    +           m.id In :tripId \
    
    261
    +           and (dcp.computedWhenArrivingSimplifiedObjectType = om.standardCode Or dcp.computedWhenLeavingSimplifiedObjectType = om.standardCode) \
    
    262
    +       ) > 0
    
    263
    +report.fobUsageExtended.request.1=0,0|row|\
    
    264
    +  Select concat(str(om.standardCode) , ' - ', om.label2) \
    
    265
    +  From ObjectMaterialImpl om \
    
    266
    +  Where \
    
    267
    +      om.standardCode = :typeObjetId \
    
    268
    +      And om.status != 0
    
    269
    +report.fobUsageExtended.request.1.repeat=typeObjetId|column
    
    270
    +
    
    271
    +# visite + peche
    
    272
    +report.fobUsageExtended.request.2=1,0|row|\
    
    273
    +  Select Count(dcp) \
    
    274
    +  From TripSeineImpl m \
    
    275
    +  Join m.route r \
    
    276
    +  Join r.activitySeine a \
    
    277
    +  Join a.floatingObject dcp \
    
    278
    +  Where \
    
    279
    +      m.id In :tripId \
    
    280
    +      and dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId \
    
    281
    +      and dcp.objectOperation.id = 'fr.ird.observe.entities.referentiel.seine.ObjectOperation#0#2' \
    
    282
    +	  and a.vesselActivitySeine.id = 'fr.ird.observe.entities.referentiel.seine.VesselActivitySeine#1239832675369#0.12552908048322586'
    
    283
    +report.fobUsageExtended.request.2.repeat=typeObjetId|column
    
    284
    +
    
    285
    +# visite - peche
    
    286
    +report.fobUsageExtended.request.3=2,0|row|\
    
    287
    +  Select Count(dcp) \
    
    288
    +  From TripSeineImpl m \
    
    289
    +  Join m.route r \
    
    290
    +  Join r.activitySeine a \
    
    291
    +  Join a.floatingObject dcp \
    
    292
    +  Where \
    
    293
    +      m.id In :tripId \
    
    294
    +      and dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId \
    
    295
    +      and dcp.objectOperation.id = 'fr.ird.observe.entities.referentiel.seine.ObjectOperation#0#2' \
    
    296
    +	  and a.vesselActivitySeine.id != 'fr.ird.observe.entities.referentiel.seine.VesselActivitySeine#1239832675369#0.12552908048322586'
    
    297
    +report.fobUsageExtended.request.3.repeat=typeObjetId|column
    
    298
    +
    
    299
    +# Deploiement + peche
    
    300
    +report.fobUsageExtended.request.4=3,0|row|\
    
    176 301
       Select Count(dcp) \
    
    177 302
       From TripSeineImpl m \
    
    178 303
       Join m.route r \
    
    ... ... @@ -181,12 +306,110 @@ report.dcpUsage.request.4=3,0|row|\
    181 306
       Where \
    
    182 307
           m.id In :tripId \
    
    183 308
           and dcp.computedWhenLeavingSimplifiedObjectType = :typeObjetId \
    
    184
    -      and dcp.objectOperation.id = 'fr.ird.observe.entities.referentiel.seine.ObjectOperation#0#1'
    
    185
    -report.dcpUsage.request.4.repeat=typeObjetId|column
    
    186
    -# modification ou renforcement
    
    187
    -#FIXME Supprime de la requete du dessous
    
    188
    -#FIXME    and dcp.objectFate.id = 'fr.ird.observe.entities.referentiel.seine.ObjectFate#1396860761530#0.8869464242156488' \
    
    189
    -report.dcpUsage.request.5=4,0|row|\
    
    309
    +      and dcp.objectOperation.id = 'fr.ird.observe.entities.referentiel.seine.ObjectOperation#0#1' \
    
    310
    +	  and a.vesselActivitySeine.id = 'fr.ird.observe.entities.referentiel.seine.VesselActivitySeine#1239832675369#0.12552908048322586'
    
    311
    +report.fobUsageExtended.request.4.repeat=typeObjetId|column
    
    312
    +
    
    313
    +# Deploiement - peche
    
    314
    +report.fobUsageExtended.request.5=4,0|row|\
    
    315
    +  Select Count(dcp) \
    
    316
    +  From TripSeineImpl m \
    
    317
    +  Join m.route r \
    
    318
    +  Join r.activitySeine a \
    
    319
    +  Join a.floatingObject dcp \
    
    320
    +  Where \
    
    321
    +      m.id In :tripId \
    
    322
    +      and dcp.computedWhenLeavingSimplifiedObjectType = :typeObjetId \
    
    323
    +      and dcp.objectOperation.id = 'fr.ird.observe.entities.referentiel.seine.ObjectOperation#0#1' \
    
    324
    +	  and a.vesselActivitySeine.id != 'fr.ird.observe.entities.referentiel.seine.VesselActivitySeine#1239832675369#0.12552908048322586'
    
    325
    +report.fobUsageExtended.request.5.repeat=typeObjetId|column
    
    326
    +
    
    327
    +# Modifie + peche
    
    328
    +report.fobUsageExtended.request.6=5,0|row|\
    
    329
    +  Select Count(dcp) \
    
    330
    +  From TripSeineImpl m \
    
    331
    +  Join m.route r \
    
    332
    +  Join r.activitySeine a \
    
    333
    +  Join a.floatingObject dcp \
    
    334
    +  Where \
    
    335
    +      m.id In :tripId \
    
    336
    +      and dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId \
    
    337
    +      and dcp.objectOperation.id = 'fr.ird.observe.entities.referentiel.seine.ObjectOperation#0#8' \
    
    338
    +	  and a.vesselActivitySeine.id = 'fr.ird.observe.entities.referentiel.seine.VesselActivitySeine#1239832675369#0.12552908048322586'
    
    339
    +report.fobUsageExtended.request.6.repeat=typeObjetId|column
    
    340
    +
    
    341
    +# Modifie - peche
    
    342
    +report.fobUsageExtended.request.7=6,0|row|\
    
    343
    +  Select Count(dcp) \
    
    344
    +  From TripSeineImpl m \
    
    345
    +  Join m.route r \
    
    346
    +  Join r.activitySeine a \
    
    347
    +  Join a.floatingObject dcp \
    
    348
    +  Where \
    
    349
    +      m.id In :tripId \
    
    350
    +      and dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId \
    
    351
    +      and dcp.objectOperation.id = 'fr.ird.observe.entities.referentiel.seine.ObjectOperation#0#8' \
    
    352
    +	  and a.vesselActivitySeine.id != 'fr.ird.observe.entities.referentiel.seine.VesselActivitySeine#1239832675369#0.12552908048322586'
    
    353
    +report.fobUsageExtended.request.7.repeat=typeObjetId|column
    
    354
    +
    
    355
    +# Retire + peche
    
    356
    +report.fobUsageExtended.request.8=7,0|row|\
    
    357
    +  Select Count(dcp) \
    
    358
    +  From TripSeineImpl m \
    
    359
    +  Join m.route r \
    
    360
    +  Join r.activitySeine a \
    
    361
    +  Join a.floatingObject dcp \
    
    362
    +  Where \
    
    363
    +      m.id In :tripId \
    
    364
    +      and dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId \
    
    365
    +      and dcp.objectOperation.id = 'fr.ird.observe.entities.referentiel.seine.ObjectOperation#0#4' \
    
    366
    +	  and a.vesselActivitySeine.id = 'fr.ird.observe.entities.referentiel.seine.VesselActivitySeine#1239832675369#0.12552908048322586'
    
    367
    +report.fobUsageExtended.request.8.repeat=typeObjetId|column
    
    368
    +
    
    369
    +# Retire - peche
    
    370
    +report.fobUsageExtended.request.9=8,0|row|\
    
    371
    +  Select Count(dcp) \
    
    372
    +  From TripSeineImpl m \
    
    373
    +  Join m.route r \
    
    374
    +  Join r.activitySeine a \
    
    375
    +  Join a.floatingObject dcp \
    
    376
    +  Where \
    
    377
    +      m.id In :tripId \
    
    378
    +      and dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId \
    
    379
    +      and dcp.objectOperation.id = 'fr.ird.observe.entities.referentiel.seine.ObjectOperation#0#4' \
    
    380
    +	  and a.vesselActivitySeine.id != 'fr.ird.observe.entities.referentiel.seine.VesselActivitySeine#1239832675369#0.12552908048322586'
    
    381
    +report.fobUsageExtended.request.9.repeat=typeObjetId|column
    
    382
    +
    
    383
    +# Abandonne + peche
    
    384
    +report.fobUsageExtended.request.10=9,0|row|\
    
    385
    +  Select Count(dcp) \
    
    386
    +  From TripSeineImpl m \
    
    387
    +  Join m.route r \
    
    388
    +  Join r.activitySeine a \
    
    389
    +  Join a.floatingObject dcp \
    
    390
    +  Where \
    
    391
    +      m.id In :tripId \
    
    392
    +      and dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId \
    
    393
    +      and dcp.objectOperation.id = 'fr.ird.observe.entities.referentiel.seine.ObjectOperation#0#5' \
    
    394
    +	  and a.vesselActivitySeine.id = 'fr.ird.observe.entities.referentiel.seine.VesselActivitySeine#1239832675369#0.12552908048322586'
    
    395
    +report.fobUsageExtended.request.10.repeat=typeObjetId|column
    
    396
    +
    
    397
    +# Abandonne - peche
    
    398
    +report.fobUsageExtended.request.11=10,0|row|\
    
    399
    +  Select Count(dcp) \
    
    400
    +  From TripSeineImpl m \
    
    401
    +  Join m.route r \
    
    402
    +  Join r.activitySeine a \
    
    403
    +  Join a.floatingObject dcp \
    
    404
    +  Where \
    
    405
    +      m.id In :tripId \
    
    406
    +      and dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId \
    
    407
    +      and dcp.objectOperation.id = 'fr.ird.observe.entities.referentiel.seine.ObjectOperation#0#5' \
    
    408
    +	  and a.vesselActivitySeine.id != 'fr.ird.observe.entities.referentiel.seine.VesselActivitySeine#1239832675369#0.12552908048322586'
    
    409
    +report.fobUsageExtended.request.11.repeat=typeObjetId|column
    
    410
    +
    
    411
    +# Coule + peche
    
    412
    +report.fobUsageExtended.request.12=11,0|row|\
    
    190 413
       Select Count(dcp) \
    
    191 414
       From TripSeineImpl m \
    
    192 415
       Join m.route r \
    
    ... ... @@ -195,10 +418,12 @@ report.dcpUsage.request.5=4,0|row|\
    195 418
       Where \
    
    196 419
           m.id In :tripId \
    
    197 420
           and dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId \
    
    198
    -      and dcp.objectOperation.id = 'fr.ird.observe.entities.referentiel.seine.ObjectOperation#0#8'
    
    199
    -report.dcpUsage.request.5.repeat=typeObjetId|column
    
    200
    -# Retrait
    
    201
    -report.dcpUsage.request.6=5,0|row|\
    
    421
    +      and dcp.objectOperation.id = 'fr.ird.observe.entities.referentiel.seine.ObjectOperation#0#7' \
    
    422
    +	  and a.vesselActivitySeine.id = 'fr.ird.observe.entities.referentiel.seine.VesselActivitySeine#1239832675369#0.12552908048322586'
    
    423
    +report.fobUsageExtended.request.12.repeat=typeObjetId|column
    
    424
    +
    
    425
    +# Coule - peche
    
    426
    +report.fobUsageExtended.request.13=12,0|row|\
    
    202 427
       Select Count(dcp) \
    
    203 428
       From TripSeineImpl m \
    
    204 429
       Join m.route r \
    
    ... ... @@ -207,10 +432,12 @@ report.dcpUsage.request.6=5,0|row|\
    207 432
       Where \
    
    208 433
           m.id In :tripId \
    
    209 434
           and dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId \
    
    210
    -      and dcp.objectOperation.id = 'fr.ird.observe.entities.referentiel.seine.ObjectOperation#0#4'
    
    211
    -report.dcpUsage.request.6.repeat=typeObjetId|column
    
    212
    -# abondonne
    
    213
    -report.dcpUsage.request.7=6,0|row|\
    
    435
    +      and dcp.objectOperation.id = 'fr.ird.observe.entities.referentiel.seine.ObjectOperation#0#7' \
    
    436
    +	  and a.vesselActivitySeine.id != 'fr.ird.observe.entities.referentiel.seine.VesselActivitySeine#1239832675369#0.12552908048322586'
    
    437
    +report.fobUsageExtended.request.13.repeat=typeObjetId|column
    
    438
    +
    
    439
    +# Remplace + peche
    
    440
    +report.fobUsageExtended.request.14=13,0|row|\
    
    214 441
       Select Count(dcp) \
    
    215 442
       From TripSeineImpl m \
    
    216 443
       Join m.route r \
    
    ... ... @@ -219,10 +446,12 @@ report.dcpUsage.request.7=6,0|row|\
    219 446
       Where \
    
    220 447
           m.id In :tripId \
    
    221 448
           and dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId \
    
    222
    -      and dcp.objectOperation.id = 'fr.ird.observe.entities.referentiel.seine.ObjectOperation#0#5'
    
    223
    -report.dcpUsage.request.7.repeat=typeObjetId|column
    
    224
    -# coule
    
    225
    -report.dcpUsage.request.8=7,0|row|\
    
    449
    +      and dcp.objectOperation.id = 'fr.ird.observe.entities.referentiel.seine.ObjectOperation#0#9' \
    
    450
    +	  and a.vesselActivitySeine.id = 'fr.ird.observe.entities.referentiel.seine.VesselActivitySeine#1239832675369#0.12552908048322586'
    
    451
    +report.fobUsageExtended.request.14.repeat=typeObjetId|column
    
    452
    +
    
    453
    +# Remplace - peche
    
    454
    +report.fobUsageExtended.request.15=14,0|row|\
    
    226 455
       Select Count(dcp) \
    
    227 456
       From TripSeineImpl m \
    
    228 457
       Join m.route r \
    
    ... ... @@ -231,10 +460,12 @@ report.dcpUsage.request.8=7,0|row|\
    231 460
       Where \
    
    232 461
           m.id In :tripId \
    
    233 462
           and dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId \
    
    234
    -      and dcp.objectOperation.id = 'fr.ird.observe.entities.referentiel.seine.ObjectOperation#0#7'
    
    235
    -report.dcpUsage.request.8.repeat=typeObjetId|column
    
    236
    -# remplacement
    
    237
    -report.dcpUsage.request.9=8,0|row|\
    
    463
    +      and dcp.objectOperation.id = 'fr.ird.observe.entities.referentiel.seine.ObjectOperation#0#9' \
    
    464
    +	  and a.vesselActivitySeine.id != 'fr.ird.observe.entities.referentiel.seine.VesselActivitySeine#1239832675369#0.12552908048322586'
    
    465
    +report.fobUsageExtended.request.15.repeat=typeObjetId|column
    
    466
    +
    
    467
    +# Autre ou ancien peche + peche
    
    468
    +report.fobUsageExtended.request.16=15,0|row|\
    
    238 469
       Select Count(dcp) \
    
    239 470
       From TripSeineImpl m \
    
    240 471
       Join m.route r \
    
    ... ... @@ -243,10 +474,13 @@ report.dcpUsage.request.9=8,0|row|\
    243 474
       Where \
    
    244 475
           m.id In :tripId \
    
    245 476
           and dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId \
    
    246
    -      and dcp.objectOperation.id = 'fr.ird.observe.entities.referentiel.seine.ObjectOperation#0#09'
    
    247
    -report.dcpUsage.request.9.repeat=typeObjetId|column
    
    248
    -# autre
    
    249
    -report.dcpUsage.request.10=9,0|row|\
    
    477
    +      and (dcp.objectOperation.id = 'fr.ird.observe.entities.referentiel.seine.ObjectOperation#0#10' \
    
    478
    +      	   or dcp.objectOperation.id = 'fr.ird.observe.entities.referentiel.seine.ObjectOperation#0#3') \
    
    479
    +	  and a.vesselActivitySeine.id = 'fr.ird.observe.entities.referentiel.seine.VesselActivitySeine#1239832675369#0.12552908048322586'
    
    480
    +report.fobUsageExtended.request.16.repeat=typeObjetId|column
    
    481
    +
    
    482
    +# Autre ou ancien peche - peche
    
    483
    +report.fobUsageExtended.request.17=16,0|row|\
    
    250 484
       Select Count(dcp) \
    
    251 485
       From TripSeineImpl m \
    
    252 486
       Join m.route r \
    
    ... ... @@ -255,10 +489,13 @@ report.dcpUsage.request.10=9,0|row|\
    255 489
       Where \
    
    256 490
           m.id In :tripId \
    
    257 491
           and dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId \
    
    258
    -      and dcp.objectOperation.id = 'fr.ird.observe.entities.referentiel.seine.ObjectOperation#0#10'
    
    259
    -report.dcpUsage.request.10.repeat=typeObjetId|column
    
    260
    -# tortues
    
    261
    -report.dcpUsage.request.11=10,0|row| \
    
    492
    +      and (dcp.objectOperation.id = 'fr.ird.observe.entities.referentiel.seine.ObjectOperation#0#10' \
    
    493
    +      	   or dcp.objectOperation.id = 'fr.ird.observe.entities.referentiel.seine.ObjectOperation#0#3') \
    
    494
    +	  and a.vesselActivitySeine.id != 'fr.ird.observe.entities.referentiel.seine.VesselActivitySeine#1239832675369#0.12552908048322586'
    
    495
    +report.fobUsageExtended.request.17.repeat=typeObjetId|column
    
    496
    +
    
    497
    +# Nombre de tortues
    
    498
    +report.fobUsageExtended.request.18=17,0|row| \
    
    262 499
       Select Sum(efo.count) \
    
    263 500
       From TripSeineImpl m \
    
    264 501
       Join m.route r \
    
    ... ... @@ -269,8 +506,7 @@ report.dcpUsage.request.11=10,0|row| \
    269 506
           m.id In :tripId \
    
    270 507
           and dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId \
    
    271 508
           and efo.species.speciesGroup.id = 'fr.ird.observe.entities.referentiel.SpeciesGroup#1239832683690#0.24333033683679461'
    
    272
    -report.dcpUsage.request.11.repeat=typeObjetId|column
    
    273
    -
    
    509
    +report.fobUsageExtended.request.18.repeat=typeObjetId|column
    
    274 510
     ################################################################################
    
    275 511
     ## Nombre des cal\u00e9es selon le type d'association
    
    276 512
     ################################################################################