Why make donate
google analytics

Avancement

author : Tony Chemit <chemit@codelutin.com>

1 Version 1

Réalisée en 2008-2009.

2 Version 2

Démarrage début 2010.

On reprend les points du contrat PC020922-04-IRD-ObServeV2

2.1 Amélioration du référentiel (partie 1)

Done.

2.2 Modification du référentiel, partie 2

done.

2.3 Externalisation des resources

Done.

2.4 Enrichissement des contrôles de niveau 1

done.

2.5 Amélioration de l'interface

done.

2.6 Qualification des données

Done.

2.7 Données spéciales

  • cette fonctionnalite n'est pas a faire

2.8 Gestion des données calculées de poids et de taille

done.

2.9 Aide à la rédaction du rapport de fin d'embarquement

  • requete 1 : Nombre de calée et capture journalière d'une marée

done.

  • requete 2 : Calendrier des opérations

TODO Il faut les colonnes du tableau a produire, trop vague.

  • requete 3 : Nombre de calées selon le type d’association

? [Un requete par colonne :]

Répartition des types d'association :

Sous banc libre (BL) : Toutes les calées sous BL (calee.typeBanc == 1 et sauf 11 ?) BL Avec baleine(s) : Mysticètes (Baleines) (11) activite.systemeObserve == 11 BO Avec requin(s)-baleine(s) : Requin baleine (12) activite.systemeObserve == 12 Sous épaves (BO) : Toutes les calées sous BO (calee.typeBanc == 2 et sauf 12)

Nombre de calées / systeme observe (variant) +, - , total

 Select Count(a1) as r1, Count(a2) as r2, r1 + r2
 From Maree m, Route r, Activite a1, Activite a2, SystemObserve so
 Where
     m.id = '%%'
     [and so.code ='%%']
     and r  in elements(m.route)
     and a1  in elements(r.activite)
     and a2  in elements(r.activite)
     and a1.calee is not null
     and a2.calee is not null
     and a1 != a2
     and so in elements(a1.calee.systemeObserve)
     and so in elements(a2.calee.systemeObserve)
     and a1.calee.causeNonCoupSenne=false
     and a2.calee.causeNonCoupSenne=true
 GroupBy so.code

 On devra calculer les totaux.

TODO A Revoir car compliqué...

  • requete 4 : Utilisation des DCP

Une requete par colonne :

Nombre de DCP / type objet (variant)

 Select ? [of.type.code,] count(of)
 From Maree m, Route r, Activite a, ObjetFlottant of, OperationObject oo
 Where
   m.id = '%%'
   and oo.code = '%%'
   and r  in elements(m.route)
   and a  in elements(r.activite)
   and of in elements(a.objetFlottant)
   and oo in elements(of.operation)
 ? GroupBy oo.type.code

Pour la derniere requete un fait un sum sur dcp.

 Select ? [of.type.code,] sum (efo.nombre)
 From Maree m, Route r, Activite a, ObjetFlottant of, OperationObject oo, EspeceFauneObservee efo
 Where
   m.id = '%%'
   and oo.code = '%%'
   and r  in elements(m.route)
   and a  in elements(r.activite)
   and of in elements(a.objetFlottant)
   and oo in elements(of.operation)
   and efo in elements(oo.especeFauneObservee)
   and efo.categorie.code='TORTUE'
 ? GroupBy oo.type.code

  • requete : Captures thons selon le type d’association

Un requete par colonne (pivot espece) :

 From Maree m, Route r, Activite a, CaptureThon ct, SystemeObserve so
 Select so.code, Sum( ct.poids ) 
 Where
     m.id = '%%'
     and r  in elements(m.route)
     and a  in elements(r.activite)
     and a.calee is not null
     and ct in elements(a.calee.captureThon)
     and so in elements(a.systemObserve)
     and ct.rejete=false
     and ct.categoriepoids.espece.code = '%%'
 groupBy so.code

La somme de chaque colonne est calculée

Pour l'avant dernier colonne :

 From Maree m, Route r, Activite a, CaptureThon ct, SystemeObserve so
 Select so.code, Sum( ct.poids )
 Where
     m.id = '%%'
     and r  in elements(m.route)
     and a  in elements(r.activite)
     and a.calee is not null
     and ct in elements(a.calee.captureThon)
     and so in elements(a.systemObserve)
     and ct.rejete=false
     and ct.categoriepoids.espece.code NOT in ('%%%,...)
 groupBy so.code

TODO Voir si le NOT IN fonctionne bien

Pour la dernière colonne, requete sans distinction espece :

 From Maree m, Route r, Activite a, CaptureThon ct, SystemeObserve so
 Select so.code, Sum( ct.poids )
 Where
     m.id = '%%'
     and r  in elements(m.route)
     and a  in elements(r.activite)
     and a.calee is not null
     and ct in elements(a.calee.captureThon)
     and so in elements(a.systemObserve)
     and ct.rejete=false
 groupBy so.code

  • requete : Rejets thons selon le type d’association

     From Maree m, Route r, Activite a, CaptureThon ct, SystemeObserve so
     Select so.code, Sum( ct.poids )
     Where
         m.id = '%%'
         and r  in elements(m.route)
         and a  in elements(r.activite)
         and a.calee is not null
         and ct in elements(a.calee.captureThon)
         and so in elements(a.systemObserve)
         and ct.rejete=true
         and ct.categoriepoids.espece.code = '%%'
     groupBy so.code
    
    

Voir captureThon pour les deux dernières colonnes.

  • requete : Fréquence des tailles de rejet Thon

Pas assez de données

  • requete : Captures accessoires - Liste des espèces

TODO Comment savoir si banc libre ou banc sur objet

TODO Il me faut plus d'info, je comprends pas tout.

  • requete : Captures accessoires - Résultats par groupe d’espèces

    Pour les devenirs, on doit pouvoir les sélectionner dans une liste

Pour chaque groupe espece faune, une requete par colonne

  • nombre (banc libre) TODO

  • nombre (banc objet) TODO

  • devenir : sorti vivant de la senne

 From Maree m, Route r, Activite a, CaptureFaune cf, EspeceFaune ef
 Select ef.code, Sum( cf.nombre )
 Where
     m.id = '%%'
     and ef.groupe = '%%'
     and r  in elements(m.route)
     and a  in elements(r.activite)
     and a.calee is not null
     and cf in elements(a.calee.captureFaune)
     and cf.espece.code = ef.code
     and cf.devenir.code = 2
 groupBy ef.code

 - devenir : rejet vivant a la mer

 From Maree m, Route r, Activite a, CaptureFaune cf, EspeceFaune ef
 Select ef.code, Sum( cf.nombre )
 Where
     m.id = '%%'
     and ef.groupe = '%%'
     and r  in elements(m.route)
     and a  in elements(r.activite)
     and a.calee is not null
     and cf in elements(a.calee.captureFaune)
     and cf.espece.code = ef.code
     and cf.devenir.code = 4
 groupBy ef.code

 - devenir : rejet mort a la mer

 From Maree m, Route r, Activite a, CaptureFaune cf, EspeceFaune ef
 Select ef.code, Sum( cf.nombre )
 Where
     m.id = '%%'
     and ef.groupe = '%%'
     and r  in elements(m.route)
     and a  in elements(r.activite)
     and a.calee is not null
     and cf in elements(a.calee.captureFaune)
     and cf.espece.code = ef.code
     and cf.devenir.code = 5
 groupBy ef.code

 - devenir : partiellement conservé à bord

 From Maree m, Route r, Activite a, CaptureFaune cf, EspeceFaune ef
 Select ef.code, Sum( cf.nombre )
 Where
     m.id = '%%'
     and ef.groupe = '%%'
     and r  in elements(m.route)
     and a  in elements(r.activite)
     and a.calee is not null
     and cf in elements(a.calee.captureFaune)
     and cf.espece.code = ef.code
     and cf.devenir.code = 7
 groupBy ef.code

 - devenir : autre

TODO Pour la colonne autre, on compte tous sauf les devenirs sélectionnés ?

 From Maree m, Route r, Activite a, CaptureFaune cf, EspeceFaune ef
 Select ef.code, Sum( cf.nombre )
 Where
     m.id = '%%'
     and ef.groupe = '%%'
     and r  in elements(m.route)
     and a  in elements(r.activite)
     and a.calee is not null
     and cf in elements(a.calee.captureFaune)
     and cf.espece.code = ef.code
     and cf.devenir.code = 7
 groupBy ef.code


  • requete :

  • requete :

TODO

2.10 Gestion des droits plus fine

Done.

2.11 Fonction d'import/export

Validation d'une maree

done.

Import de bases Obstuna Access (ancienne version) dans Observe

done.

Export de données de la base centrale vers une base H2

done.

Export de données de la base centrale vers des fichiers CSV

Pour pouvoir utiliser les données d'ObServe par l'IEO.

Cette fonctionnalité est en stand-by : Il semblerait que l'automatisation de l'export ne soit pas possible car pas assez générique...

2.12 Migration base centrale 1.0 vers 2.0

done.

2.13 Divers

  • essayer de trouver le pb de lock H2 si on change l'horloge système

TODO

  • les retours clients sont à examiner et à traiter en TMA

done.

  • bug de décalage des horaire d'activites

TODO

  • bug de non suppression de calee en standalone (juste la reference dans l'activite est supprimée)

done.

Maven JRst ReStructuredText JAXX ToPIA ArgoUML