docs : catalogue des WS EDNOTIF et recommandation de priorisation
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
188
docs/ws-catalog.md
Normal file
188
docs/ws-catalog.md
Normal file
@@ -0,0 +1,188 @@
|
||||
# Catalogue des WebServices EDNOTIF
|
||||
|
||||
Inventaire des opérations exposées par les WSDL embarqués dans
|
||||
`resources/ednotif-ws/`, avec le statut d'implémentation et une
|
||||
recommandation de priorisation.
|
||||
|
||||
## Légende statut
|
||||
|
||||
- **Implémenté** — opération couverte par le bundle
|
||||
- **À faire** — opération pertinente non encore implémentée
|
||||
- **Optionnel** — opération hors périmètre probable, à confirmer selon le consommateur
|
||||
|
||||
---
|
||||
|
||||
## 1. wsIpBNotif — Notifications IPG Bovin
|
||||
|
||||
WS métier principal : déclarations réglementaires d'un cheptel bovin auprès de l'IPG.
|
||||
|
||||
### Lecture
|
||||
|
||||
| Opération | Statut | Description probable |
|
||||
|---|---|---|
|
||||
| `IpBGetDossierAnimal` | Implémenté | Dossier complet d'un bovin (identifications, mouvements, parents…) |
|
||||
| `IpBGetInventaire` | À faire | Inventaire des animaux présents sur l'exploitation |
|
||||
| `IpBGetRetourDossiers` | À faire | Retours de traitement des notifications envoyées |
|
||||
| `IpBGetSortiesPresumees` | À faire | Animaux sortis selon l'IPG mais non déclarés par l'éleveur |
|
||||
|
||||
### Écriture
|
||||
|
||||
| Opération | Statut | Description probable |
|
||||
|---|---|---|
|
||||
| `IpBCreateEntree` | À faire | Déclaration d'entrée d'un bovin sur l'exploitation |
|
||||
| `IpBCreateSortie` | À faire | Déclaration de sortie (vente, mort, abattage…) |
|
||||
| `IpBCreateNaissance` | À faire | Déclaration de naissance |
|
||||
| `IpBCreateMortNe` | À faire | Déclaration de mort-né |
|
||||
| `IpBCreateAnimalEchange` | À faire | Échange intra-UE |
|
||||
| `IpBCreateAnimalImporte` | À faire | Import pays tiers |
|
||||
| `IpBCreateAvisAnimalImporte` | À faire | Avis d'import |
|
||||
| `IpBCreateRebouclage` | À faire | Rebouclage / remplacement de boucle |
|
||||
| `IpBCreateCommandeBoucles` | À faire | Commande de boucles |
|
||||
| `IpBCreateInsemination` | À faire | Déclaration d'insémination |
|
||||
|
||||
---
|
||||
|
||||
## 2. wsDmB\* — Déclarations de Mouvement Bovin
|
||||
|
||||
Famille orientée gestion des mouvements / transporteurs.
|
||||
|
||||
### wsDmBConsultation
|
||||
- `DmBConsultationGetListeDonneesIT` — consultation de données (IT = identifiants traces ?)
|
||||
- `DmBConsultationGetListeStatutDeplacement` — statuts de déplacement
|
||||
|
||||
### wsDmBGestion
|
||||
- `DmBGestionCreateDroitAccesListeAnimalActeur` — gestion droits d'accès
|
||||
- `DmBGestionCreateListeICA` — création listes ICA (information chaîne alimentaire)
|
||||
|
||||
### wsDmBListe
|
||||
- `DmBListeCreateListeBovins` / `DmBListeGetListeBovins` — listes de bovins (lots)
|
||||
|
||||
### wsDmBTransport
|
||||
- `DmBTransportCreateChargement` — chargement camion
|
||||
- `DmBTransportCreateDechargement` — déchargement camion
|
||||
|
||||
---
|
||||
|
||||
## 3. wsMdBEdel — Maîtrise des Données Bovin (Edel)
|
||||
|
||||
Consultation en lecture seule : génétique, lactation, IA, races.
|
||||
|
||||
| Opération | Rôle |
|
||||
|---|---|
|
||||
| `MdBGetDonneesGenetiquesAnimales` | Données génétiques d'animaux |
|
||||
| `MdBGetDonneesMalesPublics` | Catalogue mâles reproducteurs publics |
|
||||
| `MdBGetDonneesOrganismeHabilite` | Référentiel organismes habilités |
|
||||
| `MdBGetDonneesOrganismeTiers` | Référentiel organismes tiers |
|
||||
| `ClBGetDonneesCL` | Contrôle laitier |
|
||||
| `CpBGetDonneesCPB` | Contrôle de performances bouchères |
|
||||
| `IaBGetDonneesIA` | Données d'insémination |
|
||||
| `OsBGetDonneesRAC` | Données race (RAC = race certifiée ?) |
|
||||
| `TkBGetDonneesTE` | Transfert embryonnaire |
|
||||
| `VaBGetDonneesCPV` | Contrôle performances veaux (?) |
|
||||
|
||||
---
|
||||
|
||||
## 4. wsMdCEdel — Maîtrise des Données Caprin
|
||||
|
||||
Équivalent caprin : CRUD + reproduction + lactation. 15 opérations (`MdCCreate*` pour l'écriture, `MdCGet*` avec variantes `MAJ` pour les deltas).
|
||||
|
||||
| Groupe | Opérations |
|
||||
|---|---|
|
||||
| Caprin | `MdCCreateCaprin`, `MdCGetDonneesCaprin`, `MdCGetDonneesCaprinMAJ` |
|
||||
| Reproduction | `MdCCreateSaillie`, `MdCCreateFinGestation`, `MdCGetFinGestation[/MAJ]`, `MdCGetEvenementReproduction[/MAJ]` |
|
||||
| Mouvement | `MdCCreateMouvement` |
|
||||
| Contrôle laitier | `MdCGetCLDonneesBrutes[/MAJ]`, `MdCGetCLDonneesElaborees[/MAJ]` |
|
||||
| Contrats | `MdCGetContratsExploitation` |
|
||||
|
||||
---
|
||||
|
||||
## 5. wsIpEdel — Identification Pérenne Edel
|
||||
|
||||
- `IpGetDonneesExploitation` — données descriptives de l'exploitation
|
||||
|
||||
---
|
||||
|
||||
## 6. wsMrAde — Échanges ICAR
|
||||
|
||||
Conforme aux standards ICAR (flux laitiers internationaux).
|
||||
|
||||
- `GetHerdList`
|
||||
- `UpdateAnimal`
|
||||
- `UpdateDevice`
|
||||
- `UpdateLivestockLocation`
|
||||
- `UpdateMilkingResults`
|
||||
|
||||
---
|
||||
|
||||
## 7. WsAnnuaire — Annuaire Guichet
|
||||
|
||||
Métadonnées techniques du guichet (pas du métier).
|
||||
|
||||
- `tkGetServices` — liste des WS disponibles
|
||||
- `tkGetVersionsService` — versions d'un WS
|
||||
- `tkGetOperationsServiceVersion` — opérations d'une version
|
||||
- `tkGetUrl` — URL d'un service
|
||||
|
||||
---
|
||||
|
||||
## Recommandation de priorisation
|
||||
|
||||
Proposition d'ordre, à valider selon le périmètre réel du consommateur.
|
||||
|
||||
### Phase 1 — Compléter le bovin (priorité haute)
|
||||
Continuer sur **wsIpBNotif**, en commençant par la **lecture** :
|
||||
|
||||
1. `IpBGetInventaire` — donne immédiatement la liste du cheptel, utile pour toute UI
|
||||
2. `IpBGetRetourDossiers` — indispensable pour savoir si les notifs passent côté IPG
|
||||
3. `IpBGetSortiesPresumees` — flux de rapprochement éleveur ↔ IPG
|
||||
|
||||
**Raison** : le dossier animal seul est peu utile sans l'inventaire qui permet de savoir *pour quels animaux* appeler `getAnimalFile`. Et sans `RetourDossiers`, toute écriture future est aveugle.
|
||||
|
||||
### Phase 2 — Écriture bovin (notifications obligatoires)
|
||||
Implémenter les déclarations **dans l'ordre des cycles de vie d'un animal** :
|
||||
|
||||
4. `IpBCreateNaissance`
|
||||
5. `IpBCreateEntree` / `IpBCreateSortie`
|
||||
6. `IpBCreateMortNe`
|
||||
7. `IpBCreateRebouclage` / `IpBCreateCommandeBoucles`
|
||||
8. `IpBCreateAnimalEchange` / `IpBCreateAnimalImporte` / `IpBCreateAvisAnimalImporte` (si imports/échanges dans le périmètre)
|
||||
9. `IpBCreateInsemination` (si non couvert par un autre outil)
|
||||
|
||||
### Phase 3 — Mouvements / transport
|
||||
Si le consommateur gère du transport ou des lots :
|
||||
|
||||
10. `wsDmBListe` (lots bovins)
|
||||
11. `wsDmBTransport` (chargement/déchargement)
|
||||
12. `wsDmBConsultation` et `wsDmBGestion` selon besoin
|
||||
|
||||
### Phase 4 — Référentiels génétiques (optionnel)
|
||||
Si le consommateur fait de la sélection / génétique :
|
||||
|
||||
13. `wsMdBEdel` — lectures ponctuelles, ne justifient une implémentation que s'il y a un usage métier concret
|
||||
|
||||
### Phase 5 — Caprin / ICAR (optionnel)
|
||||
À activer uniquement si multi-espèces ou conformité ICAR requise.
|
||||
|
||||
### Hors priorité
|
||||
- **wsIpEdel** : 1 op, à implémenter *en passant* si besoin ponctuel
|
||||
- **WsAnnuaire** : utile pour du diagnostic / supervision, pas pour le métier
|
||||
|
||||
---
|
||||
|
||||
## Découpage structurel proposé
|
||||
|
||||
Pour garder un code cohérent, reproduire le pattern existant (`src/Bovin/`) par domaine :
|
||||
|
||||
```
|
||||
src/
|
||||
├── Auth/ (existant)
|
||||
├── Bovin/ (IpBNotif + IpEdel exploitation)
|
||||
├── Mouvement/ (DmB*)
|
||||
├── Genetique/ (MdBEdel, optionnel)
|
||||
├── Caprin/ (MdCEdel, optionnel)
|
||||
├── Icar/ (MrAde, optionnel)
|
||||
├── Annuaire/ (WsAnnuaire, optionnel)
|
||||
└── Shared/ (existant)
|
||||
```
|
||||
|
||||
Chaque domaine expose une `*ApiInterface` publique + une implémentation `readonly`, avec ses DTOs et mappers dédiés. Le `TokenProvider` et `SoapClientFactory` restent partagés via `Shared/`.
|
||||
Reference in New Issue
Block a user