From 23e35b6f2b7e933cf681102153af51e819e08635 Mon Sep 17 00:00:00 2001 From: OURY Sarah <sarah.oury@soprasteria.com> Date: Thu, 30 May 2024 14:20:35 +0000 Subject: [PATCH] =?UTF-8?q?[SOY]=20Qualit=C3=A9=20donn=C3=A9es?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 1 + e2e/5_assert.sh | 8 +- e2e/input_template/Application.csv | 4 +- e2e/input_template/DataCenter.csv | 10 +- .../EquipementPhysique_hors_serveur.csv | 202 +++++++++--------- .../EquipementPhysique_serveur.csv | 202 +++++++++--------- e2e/input_template/EquipementVirtuel.csv | 4 +- e2e/input_template/OperationNonIT.csv | 42 ++-- .../export/IndicateurController.java | 11 +- .../repository/ApplicationRepository.java | 1 + .../EquipementPhysiqueRepository.java | 5 +- .../EquipementVirtuelRepository.java | 1 + .../repository/IndicateurRepository.java | 20 +- .../repository/OperationNonITRepository.java | 1 + .../src/main/resources/schema.sql | 157 +++++++------- ...issementEquipementPhysiqueServiceTest.java | 5 +- ...richissementOperationNonITServiceTest.java | 5 +- .../EquipementPhysiqueIntegrationConfig.java | 5 +- .../OperationNonITIntegrationConfig.java | 1 + .../test/resources/sql/equipment_physique.sql | 4 +- .../test/resources/sql/operation_non_it.sql | 4 +- .../src/test/resources/sql/schema.sql | 71 +++--- .../domain/model/Application.java | 1 + .../domain/model/DataCenter.java | 2 +- .../domain/model/EquipementPhysique.java | 1 + .../domain/model/EquipementVirtuel.java | 1 + .../domain/model/OperationNonIT.java | 1 + .../impl/ImportDonneesEntreePortImpl.java | 79 +++++-- .../config/ApplicationPortConfig.java | 5 +- .../jpa/entity/ApplicationEntity.java | 96 ++++----- .../jpa/entity/DataCenterEntity.java | 12 +- .../jpa/entity/EquipementPhysiqueEntity.java | 2 + .../jpa/entity/EquipementVirtuelEntity.java | 2 + .../jpa/entity/OperationNonITEntity.java | 1 + .../service/ErrorManagementService.java | 30 ++- .../utils/Constants.java | 8 + .../src/main/resources/application.yaml | 1 + .../src/main/resources/schema.sql | 55 ++--- .../src/main/resources/static/openapi.yaml | 25 ++- .../ImportDonneesEntreePortImplTest.java | 4 +- .../service/ErrorManagementServiceTest.java | 19 ++ .../domain/data/entree/Application.java | 25 +-- .../domain/data/entree/DataCenter.java | 19 +- .../data/entree/EquipementPhysique.java | 1 + .../domain/data/entree/EquipementVirtuel.java | 31 +-- .../domain/data/entree/OperationNonIT.java | 2 +- .../data/indicateurs/ImpactApplication.java | 1 + .../indicateurs/ImpactEquipementPhysique.java | 1 + .../indicateurs/ImpactEquipementVirtuel.java | 1 + .../indicateurs/ImpactOperationNonIT.java | 1 + .../domain/data/indicateurs/ImpactReseau.java | 1 - .../CalculImpactApplicationServiceImpl.java | 2 + ...ulImpactEquipementPhysiqueServiceImpl.java | 2 + ...culImpactEquipementVirtuelServiceImpl.java | 2 + ...CalculImpactOperationNonITServiceImpl.java | 2 + .../api-event-calculs-async-openapi.yaml | 30 +++ .../static/api-event-calculs-openapi.yaml | 24 +++ .../static/asyncapi_equipement_physique.yaml | 6 + .../static/asyncapi_operation_non_it.yaml | 3 + 59 files changed, 739 insertions(+), 524 deletions(-) create mode 100644 services/api-expositiondonneesentrees/src/main/java/org/mte/numecoeval/expositiondonneesentrees/utils/Constants.java diff --git a/CHANGELOG.md b/CHANGELOG.md index ea92694a..a185239d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,7 @@ Tous les changements de ce projet seront documentés dans ce document. ## [Non livré] - Pouvoir charger et lancer un calcul sur les opérations non IT -> [Issue3](https://gitlab-forge.din.developpement-durable.gouv.fr/pub/numeco/m4g/numecoeval/-/issues/3) +- Pouvoir inclure dans l'évaluation d'impact des informations sur la qualité des données -> [Issue4](https://gitlab-forge.din.developpement-durable.gouv.fr/pub/numeco/m4g/numecoeval/-/issues/4) ## [1.3.0] - 2024-03-05 diff --git a/e2e/5_assert.sh b/e2e/5_assert.sh index 87adfefb..03c217fb 100644 --- a/e2e/5_assert.sh +++ b/e2e/5_assert.sh @@ -15,11 +15,11 @@ export_table() { if [ -d actual ]; then rm -rf actual; fi mkdir actual -export_table equipementPhysique conso_elec_moyenne,critere,etapeacv,impact_unitaire,nom_entite,nom_entite_discriminator,nom_equipement,nom_source_donnee,nom_source_donnee_discriminator,quantite,source,statut_equipement_physique,statut_indicateur,trace,type_equipement,unite,version_calcul -export_table equipementVirtuel cluster,conso_elec_moyenne,critere,etapeacv,impact_unitaire,nom_entite,nom_entite_discriminator,nom_equipement,nom_equipement_virtuel,nom_source_donnee,nom_source_donnee_discriminator,source,statut_indicateur,trace,unite,version_calcul -export_table application conso_elec_moyenne,critere,domaine,etapeacv,impact_unitaire,nom_application,nom_entite,nom_entite_discriminator,nom_equipement_physique,nom_equipement_virtuel,nom_source_donnee,nom_source_donnee_discriminator,source,sous_domaine,statut_indicateur,trace,type_environnement,unite,version_calcul +export_table equipementPhysique conso_elec_moyenne,critere,etapeacv,impact_unitaire,nom_entite,nom_entite_discriminator,nom_equipement,nom_source_donnee,nom_source_donnee_discriminator,quantite,source,statut_equipement_physique,statut_indicateur,trace,type_equipement,unite,version_calcul,qualite +export_table equipementVirtuel cluster,conso_elec_moyenne,critere,etapeacv,impact_unitaire,nom_entite,nom_entite_discriminator,nom_equipement,nom_equipement_virtuel,nom_source_donnee,nom_source_donnee_discriminator,source,statut_indicateur,trace,unite,version_calcul,qualite +export_table application conso_elec_moyenne,critere,domaine,etapeacv,impact_unitaire,nom_application,nom_entite,nom_entite_discriminator,nom_equipement_physique,nom_equipement_virtuel,nom_source_donnee,nom_source_donnee_discriminator,source,sous_domaine,statut_indicateur,trace,type_environnement,unite,version_calcul,qualite export_table reseau etapeacv,critere,source,statut_indicateur,trace,version_calcul,impact_unitaire,unite,nom_entite,nom_equipement -export_table operationNonIT conso_elec_moyenne,critere,etapeacv,impact_unitaire,nom_entite,nom_entite_discriminator,nom_item_non_it,nom_source_donnee,nom_source_donnee_discriminator,quantite,source,statut_indicateur,trace,type_item,unite,version_calcul +export_table operationNonIT conso_elec_moyenne,critere,etapeacv,impact_unitaire,nom_entite,nom_entite_discriminator,nom_item_non_it,nom_source_donnee,nom_source_donnee_discriminator,quantite,source,statut_indicateur,trace,type_item,unite,version_calcul,qualite ALL_OK=true for file in $(ls actual/); do diff --git a/e2e/input_template/Application.csv b/e2e/input_template/Application.csv index f6d03dcd..ffc0f610 100644 --- a/e2e/input_template/Application.csv +++ b/e2e/input_template/Application.csv @@ -1,2 +1,2 @@ -nomApplication;typeEnvironnement;nomEquipementVirtuel;nomSourceDonneeEquipementVirtuel;domaine;sousDomaine;nomEntite;nomEquipementPhysique;nomSourceDonnee -application-;##TYPE_ENV##;virtual-eq-;;Domain 1;Sub Domain 1;MY ENTERPRISE;physical-eq-srv-;; +nomApplication;typeEnvironnement;nomEquipementVirtuel;nomSourceDonneeEquipementVirtuel;domaine;sousDomaine;nomEntite;nomEquipementPhysique;nomSourceDonnee;qualite +application-;##TYPE_ENV##;virtual-eq-;;Domain 1;Sub Domain 1;MY ENTERPRISE;physical-eq-srv-;;haute diff --git a/e2e/input_template/DataCenter.csv b/e2e/input_template/DataCenter.csv index 11043f09..4a7e9258 100644 --- a/e2e/input_template/DataCenter.csv +++ b/e2e/input_template/DataCenter.csv @@ -1,8 +1,8 @@ -nomCourtDatacenter;nomLongDatacenter;pue;localisation;nomEntite; -default;Default;1.75;France;; -B1;B1;1.32;France;; -F1;F1;1.43;France;; -G1;G1;1.45;Spain;; +nomCourtDatacenter;nomLongDatacenter;pue;localisation;nomEntite;qualite +default;Default;1.75;France;;Haute +B1;B1;1.32;France;;bAsse +F1;F1;1.43;France;;Moyenne +G1;G1;1.45;Spain;;erreur X1;X1;1.42;Russia;; Y1;Y1;1.41;Germany;; Z2;Z2;1.75;France;; diff --git a/e2e/input_template/EquipementPhysique_hors_serveur.csv b/e2e/input_template/EquipementPhysique_hors_serveur.csv index f8963fae..557e28ba 100644 --- a/e2e/input_template/EquipementPhysique_hors_serveur.csv +++ b/e2e/input_template/EquipementPhysique_hors_serveur.csv @@ -1,101 +1,101 @@ -nomEquipementPhysique;modele;quantite;nomCourtDatacenter;dateAchat;dateRetrait;type;statut;paysDUtilisation;consoElecAnnuelle;utilisateur;nomSourceDonnee;nomEntite;nbCoeur;nbJourUtiliseAn;goTelecharge;modeUtilisation;tauxUtilisation -physical-eq-001;P2719;1;;2021-03-30;2023-06-16;Monitor;In use;France;;;;MY ENTERPRISE;;365;;COPE; -physical-eq-002;P2719;2;;2021-03-30;2023-06-16;Monitor;In use;France;;;;MY ENTERPRISE;;365;;BYOD; -physical-eq-003;P2719;4;;2021-03-30;2023-06-16;Monitor;In use;France;;;;MY ENTERPRISE;;365;;COB; -physical-eq-004;HUB USB;10;;2023-04-01;2023-06-16;Consumable;Consumed;France;;;;MY ENTERPRISE;;365;;BYOD;0.1 -physical-eq-005;P2720DC;2;;2022-11-04;2023-06-16;Monitor;In stock;France;;;;MY ENTERPRISE;;365;;BYOD;12.1 -physical-eq-006;PIXEL 6;1;;2022-10-18;2023-06-16;Communication Device;Missing;France;;;;MY ENTERPRISE;;365;;;test -physical-eq-007;UP2516D;1;;2022-07-31;2023-06-16;Monitor;Retired;France;;;;MY ENTERPRISE;;365;;;0.9 -physical-eq-008;UP2516D;2;;2022-03-10;2023-06-16;Monitor;In stock;France;;;;MY ENTERPRISE;;365;;COPE;0.6 -physical-eq-009;Unknown;3;;2021-08-09;2023-06-16;IP Router;In use;France;;;;MY ENTERPRISE;;365;;COPE;0 -physical-eq-010;Unknown;3;;2021-08-09;2023-06-16;IP Router;In use;France;;;;MY ENTERPRISE;;365;;; -physical-eq-011;HP 8440p;1;;2021-08-05;2023-06-16;Personal Computer;Missing;France;;;;MY ENTERPRISE;;365;;; -physical-eq-012;HP 8440p;1;;2023-04-27;2023-06-16;Personal Computer;Retired;France;;;;MY ENTERPRISE;;365;;; -physical-eq-013;HP 8470w;2;;2025-08-23;2023-06-16;Personal Computer;Retired;France;;;;MY ENTERPRISE;;365;;; -physical-eq-014;OPPO A72;1;;2023-08-07;2023-06-16;Communication Device;Retired;France;;;;MY ENTERPRISE;;365;;; -physical-eq-015;CROSSCALL;1;;2022-08-20;2023-06-16;Communication Device;Retired;France;;;;MY ENTERPRISE;;365;;; -physical-eq-016;CROSSCALL;11;;2022-05-20;2023-06-16;Communication Device;In stock;France;;;;MY ENTERPRISE;;365;;; -physical-eq-017;CROSSCALL;8;;2022-05-28;2023-06-16;Communication Device;In use;France;;;;MY ENTERPRISE;;365;;; -physical-eq-018;HUAWEI P9;11;;2021-01-28;2023-06-16;Communication Device;In stock;France;;;;MY ENTERPRISE;;365;;; -physical-eq-019;HUAWEI P9;4;;2022-08-18;2023-06-16;Communication Device;Retired;France;;;;MY ENTERPRISE;;365;;; -physical-eq-020;HUAWEI P9;1;;2023-06-18;2023-06-16;Communication Device;Missing;France;;;;MY ENTERPRISE;;365;;; -physical-eq-021;HUAWEI P9;32;;2021-01-28;2023-06-16;Communication Device;Missing;France;;;;MY ENTERPRISE;;365;;; -physical-eq-022;HUAWEI P9;9;;2024-08-18;2023-06-16;Communication Device;Retired;France;;;;MY ENTERPRISE;;365;;; -physical-eq-023;PRO MP242;50;;2022-06-21;2023-06-16;Monitor;In use;France;;;;MY ENTERPRISE;;365;;; -physical-eq-024;SAC A DOS;534;;2023-02-18;2023-06-16;Consumable;Consumed;France;;;;MY ENTERPRISE;;365;;; -physical-eq-025;SAC A DOS;1;;2023-02-18;2023-06-16;Consumable;Missing;France;;;;MY ENTERPRISE;;365;;; -physical-eq-026;SPIDER X1;2;;2022-10-17;2023-06-16;Communication Device;In stock;France;;;;MY ENTERPRISE;;365;;; -physical-eq-027;DELL 1909W;5;;2022-11-20;2023-06-16;Monitor;Retired;France;;;;MY ENTERPRISE;;365;;; -physical-eq-028;DELL 1909W;1;;2021-12-20;2023-06-16;Monitor;Missing;France;;;;MY ENTERPRISE;;365;;; -physical-eq-029;DELL 1909W;14;;2025-10-17;2023-06-16;Monitor;Retired;France;;;;MY ENTERPRISE;;365;;; -physical-eq-030;DELL 2412M;1;;2022-12-26;2023-06-16;Monitor;Retired;France;;;;MY ENTERPRISE;;365;;; -physical-eq-031;DELL 2717H;19;;2021-04-08;2023-06-16;Monitor;In use;France;;;;MY ENTERPRISE;;365;;; -physical-eq-032;DELL 2717H;1;;2024-11-23;2023-06-16;Monitor;Retired;France;;;;MY ENTERPRISE;;365;;; -physical-eq-033;DELL E7440;5;;2023-03-19;2023-06-16;Personal Computer;Retired;France;;;;MY ENTERPRISE;;365;;; -physical-eq-034;DELL E7440;31;;2025-10-27;2023-06-16;Personal Computer;Retired;France;;;;MY ENTERPRISE;;365;;; -physical-eq-035;DELL E7440;11;;2022-04-24;2023-06-16;Personal Computer;Missing;France;;;;MY ENTERPRISE;;365;;; -physical-eq-036;DELL E7450;2;;2022-12-21;2023-06-16;Personal Computer;Retired;France;;;;MY ENTERPRISE;;365;;; -physical-eq-037;DELL E7450;14;;2025-10-31;2023-06-16;Personal Computer;Retired;France;;;;MY ENTERPRISE;;365;;; -physical-eq-038;DELL E7450;6;;2022-04-22;2023-06-16;Personal Computer;Missing;France;;;;MY ENTERPRISE;;365;;; -physical-eq-039;DELL E7470;33;;2023-02-11;2023-06-16;Personal Computer;Retired;France;;;;MY ENTERPRISE;;365;;; -physical-eq-040;DELL E7470;23;;2022-03-16;2023-06-16;Personal Computer;Missing;France;;;;MY ENTERPRISE;;365;;; -physical-eq-041;DELL E7470;9;;2022-03-16;2023-06-16;Personal Computer;In use;France;;;;MY ENTERPRISE;;365;;; -physical-eq-042;DELL E7470;4;;2022-03-16;2023-06-16;Personal Computer;In stock;France;;;;MY ENTERPRISE;;365;;; -physical-eq-043;DELL E7470;325;;2024-09-01;2023-06-16;Personal Computer;Retired;France;;;;MY ENTERPRISE;;365;;; -physical-eq-044;DELL E7470;2;;2025-03-03;2023-06-16;Personal Computer;In stock;France;;;;MY ENTERPRISE;;365;;; -physical-eq-045;DELL E7480;349;;2022-12-11;2023-06-16;Personal Computer;Retired;France;;;;MY ENTERPRISE;;365;;; -physical-eq-046;DELL E7480;49;;2021-10-26;2023-06-16;Personal Computer;Missing;France;;;;MY ENTERPRISE;;365;;; -physical-eq-047;DELL E7480;18;;2021-09-25;2023-06-16;Personal Computer;In stock;France;;;;MY ENTERPRISE;;365;;; -physical-eq-048;DELL E7480;141;;2023-11-04;2023-06-16;Personal Computer;Retired;France;;;;MY ENTERPRISE;;365;;; -physical-eq-049;DELL E7480;70;;2021-09-30;2023-06-16;Personal Computer;In use;France;;;;MY ENTERPRISE;;365;;; -physical-eq-050;DELL E7480;1;;2025-06-03;2023-06-16;Personal Computer;Missing;France;;;;MY ENTERPRISE;;365;;; -physical-eq-051;DELL E7490;248;;2022-03-21;2023-06-16;Personal Computer;Retired;France;;;;MY ENTERPRISE;;365;;; -physical-eq-052;DELL E7490;52;;2021-06-17;2023-06-16;Personal Computer;In stock;France;;;;MY ENTERPRISE;;365;;; -physical-eq-053;DELL E7490;421;;2021-06-01;2023-06-16;Personal Computer;In use;France;;;;MY ENTERPRISE;;365;;; -physical-eq-054;DELL E7490;51;;2021-06-19;2023-06-16;Personal Computer;Missing;France;;;;MY ENTERPRISE;;365;;; -physical-eq-055;DELL E7490;6;;2024-04-20;2023-06-16;Personal Computer;Retired;France;;;;MY ENTERPRISE;;365;;; -physical-eq-056;DELL P1911;8;;2022-07-25;2023-06-16;Monitor;Retired;France;;;;MY ENTERPRISE;;365;;; -physical-eq-057;DELL P1911;6;;2025-01-04;2023-06-16;Monitor;Retired;France;;;;MY ENTERPRISE;;365;;; -physical-eq-058;DELL P1913;4;;2022-11-02;2023-06-16;Monitor;Retired;France;;;;MY ENTERPRISE;;365;;; -physical-eq-059;DELL P1913;2;;2024-04-12;2023-06-16;Monitor;Retired;France;;;;MY ENTERPRISE;;365;;; -physical-eq-060;HUAWEI P20;1;;2021-12-24;2023-06-16;Communication Device;Retired;France;;;;MY ENTERPRISE;;365;;; -physical-eq-061;LENOVO M73;13;;2024-01-25;2023-06-16;Personal Computer;Retired;France;;;;MY ENTERPRISE;;365;;; -physical-eq-062;LENOVO M73;13;;2022-01-25;2023-06-16;Personal Computer;In Use;France;;;;MY ENTERPRISE;;365;;; -physical-eq-063;ANTIVOL MAC;1;;2023-01-14;2023-06-16;Consumable;Missing;France;;;;MY ENTERPRISE;;365;;; -physical-eq-064;ANTIVOL MAC;1;;2023-01-14;2023-06-16;Consumable;In stock;France;;;;MY ENTERPRISE;;365;;; -physical-eq-065;ANTIVOL MAC;10;;2023-01-14;2023-06-16;Consumable;Consumed;France;;;;MY ENTERPRISE;;365;;; -physical-eq-066;AOC U2879VF;10;;2022-11-27;2023-06-16;Monitor;In use;France;;;;MY ENTERPRISE;;365;;; -physical-eq-067;DELL P2210T;1;;2022-12-29;2023-06-16;Monitor;Retired;France;;;;MY ENTERPRISE;;365;;; -physical-eq-068;DELL P2217H;286;;2021-03-13;2023-06-16;Monitor;In use;France;;;;MY ENTERPRISE;;365;;; -physical-eq-069;DELL P2217H;1;;2021-03-13;2023-06-16;Monitor;Missing;France;;;;MY ENTERPRISE;;365;;; -physical-eq-070;DELL P2217H;5;;2022-01-14;2023-06-16;Monitor;Retired;France;;;;MY ENTERPRISE;;365;;; -physical-eq-071;DELL P2217H;6;;2021-03-13;2023-06-16;Monitor;In stock;France;;;;MY ENTERPRISE;;365;;; -physical-eq-072;DELL P2217H;3;;2023-10-15;2023-06-16;Monitor;Retired;France;;;;MY ENTERPRISE;;365;;; -physical-eq-073;DELL P2319H;1;;2022-12-19;2023-06-16;Monitor;In stock;France;;;;MY ENTERPRISE;;365;;; -physical-eq-074;DELL P2319H;49;;2022-12-19;2023-06-16;Monitor;In use;France;;;;MY ENTERPRISE;;365;;; -physical-eq-075;DELL P2412H;1;;2022-03-25;2023-06-16;Monitor;Retired;France;;;;MY ENTERPRISE;;365;;; -physical-eq-076;DELL P2412H;1;;2025-06-01;2023-06-16;Monitor;Retired;France;;;;MY ENTERPRISE;;365;;; -physical-eq-077;DELL P2415Q;7;;2022-03-13;2023-06-16;Monitor;In use;France;;;;MY ENTERPRISE;;365;;; -physical-eq-078;DELL P2415Q;1;;2022-03-13;2023-06-16;Monitor;In stock;France;;;;MY ENTERPRISE;;365;;; -physical-eq-079;DELL P2417H;371;;2021-03-18;2023-06-16;Monitor;In use;France;;;;MY ENTERPRISE;;365;;; -physical-eq-080;DELL P2417H;7;;2022-07-16;2023-06-16;Monitor;Retired;France;;;;MY ENTERPRISE;;365;;; -physical-eq-081;DELL P2417H;4;;2024-07-02;2023-06-16;Monitor;Retired;France;;;;MY ENTERPRISE;;365;;; -physical-eq-082;DELL P2417H;5;;2021-03-18;2023-06-16;Monitor;In stock;France;;;;MY ENTERPRISE;;365;;; -physical-eq-083;DELL P2419H;11;;2021-09-01;2023-06-16;Monitor;In stock;France;;;;MY ENTERPRISE;;365;;; -physical-eq-084;DELL P2419H;11;;2022-10-18;2023-06-16;Monitor;Retired;France;;;;MY ENTERPRISE;;365;;; -physical-eq-085;DELL P2419H;847;;2021-09-01;2023-06-16;Monitor;In use;France;;;;MY ENTERPRISE;;365;;; -physical-eq-086;DELL P2419H;1;;2021-09-01;2023-06-16;Monitor;Missing;France;;;;MY ENTERPRISE;;365;;; -physical-eq-087;DELL P2419H;32;;2024-05-15;2023-06-16;Monitor;Retired;France;;;;MY ENTERPRISE;;365;;; -physical-eq-088;DELL P2422H;7;;2023-04-23;2023-06-16;Monitor;Retired;France;;;;MY ENTERPRISE;;365;;; -physical-eq-089;DELL P2422H;2;;2023-09-30;2023-06-16;Monitor;Retired;France;;;;MY ENTERPRISE;;365;;; -physical-eq-090;DELL P2422H;588;;2022-09-25;2023-06-16;Monitor;In use;France;;;;MY ENTERPRISE;;365;;; -physical-eq-091;DELL P2719H;1;;2022-04-04;2023-06-16;Monitor;Retired;France;;;;MY ENTERPRISE;;365;;; -physical-eq-092;DELL P2719H;43;;2021-07-29;2023-06-16;Monitor;In use;France;;;;MY ENTERPRISE;;365;;; -physical-eq-093;DELL P2719H;2;;2021-07-29;2023-06-16;Monitor;In stock;France;;;;MY ENTERPRISE;;365;;; -physical-eq-094;DELL P2721Q;2;;2023-02-24;2023-06-16;Monitor;In use;France;;;;MY ENTERPRISE;;365;;; -physical-eq-095;DELL S2216H;2;;2024-11-27;2023-06-16;Monitor;Retired;France;;;;MY ENTERPRISE;;365;;; -physical-eq-096;DELL S2216H;17;;2021-05-21;2023-06-16;Monitor;In use;France;;;;MY ENTERPRISE;;365;;; -physical-eq-097;DELL S2216H;1;;2022-11-22;2023-06-16;Monitor;Retired;France;;;;MY ENTERPRISE;;365;;; -physical-eq-098;DELL S2240L;28;;2021-06-26;2023-06-16;Monitor;In use;France;;;;MY ENTERPRISE;;365;;; -physical-eq-099;DELL S2240L;8;;2022-12-04;2023-06-16;Monitor;Retired;France;;;;MY ENTERPRISE;;365;;; -physical-eq-100;DELL S2240L;4;;2024-12-09;2023-06-16;Monitor;Retired;France;;;;MY ENTERPRISE;;365;;; +nomEquipementPhysique;modele;quantite;nomCourtDatacenter;dateAchat;dateRetrait;type;statut;paysDUtilisation;consoElecAnnuelle;utilisateur;nomSourceDonnee;nomEntite;nbCoeur;nbJourUtiliseAn;goTelecharge;modeUtilisation;tauxUtilisation;qualite +physical-eq-001;P2719;1;;2021-03-30;2023-06-16;Monitor;In use;France;;;;MY ENTERPRISE;;365;;COPE;;Haute +physical-eq-002;P2719;2;;2021-03-30;2023-06-16;Monitor;In use;France;;;;MY ENTERPRISE;;365;;BYOD;;Basse +physical-eq-003;P2719;4;;2021-03-30;2023-06-16;Monitor;In use;France;;;;MY ENTERPRISE;;365;;COB;;Moyenne +physical-eq-004;HUB USB;10;;2023-04-01;2023-06-16;Consumable;Consumed;France;;;;MY ENTERPRISE;;365;;BYOD;0.1;erreur +physical-eq-005;P2720DC;2;;2022-11-04;2023-06-16;Monitor;In stock;France;;;;MY ENTERPRISE;;365;;BYOD;12.1;moyenne +physical-eq-006;PIXEL 6;1;;2022-10-18;2023-06-16;Communication Device;Missing;France;;;;MY ENTERPRISE;;365;;;test;haute +physical-eq-007;UP2516D;1;;2022-07-31;2023-06-16;Monitor;Retired;France;;;;MY ENTERPRISE;;365;;;0.9;basse +physical-eq-008;UP2516D;2;;2022-03-10;2023-06-16;Monitor;In stock;France;;;;MY ENTERPRISE;;365;;COPE;0.6; +physical-eq-009;Unknown;3;;2021-08-09;2023-06-16;IP Router;In use;France;;;;MY ENTERPRISE;;365;;COPE;0; +physical-eq-010;Unknown;3;;2021-08-09;2023-06-16;IP Router;In use;France;;;;MY ENTERPRISE;;365;;;; +physical-eq-011;HP 8440p;1;;2021-08-05;2023-06-16;Personal Computer;Missing;France;;;;MY ENTERPRISE;;365;;;; +physical-eq-012;HP 8440p;1;;2023-04-27;2023-06-16;Personal Computer;Retired;France;;;;MY ENTERPRISE;;365;;;; +physical-eq-013;HP 8470w;2;;2025-08-23;2023-06-16;Personal Computer;Retired;France;;;;MY ENTERPRISE;;365;;;; +physical-eq-014;OPPO A72;1;;2023-08-07;2023-06-16;Communication Device;Retired;France;;;;MY ENTERPRISE;;365;;;; +physical-eq-015;CROSSCALL;1;;2022-08-20;2023-06-16;Communication Device;Retired;France;;;;MY ENTERPRISE;;365;;;; +physical-eq-016;CROSSCALL;11;;2022-05-20;2023-06-16;Communication Device;In stock;France;;;;MY ENTERPRISE;;365;;;; +physical-eq-017;CROSSCALL;8;;2022-05-28;2023-06-16;Communication Device;In use;France;;;;MY ENTERPRISE;;365;;;; +physical-eq-018;HUAWEI P9;11;;2021-01-28;2023-06-16;Communication Device;In stock;France;;;;MY ENTERPRISE;;365;;;; +physical-eq-019;HUAWEI P9;4;;2022-08-18;2023-06-16;Communication Device;Retired;France;;;;MY ENTERPRISE;;365;;;; +physical-eq-020;HUAWEI P9;1;;2023-06-18;2023-06-16;Communication Device;Missing;France;;;;MY ENTERPRISE;;365;;;; +physical-eq-021;HUAWEI P9;32;;2021-01-28;2023-06-16;Communication Device;Missing;France;;;;MY ENTERPRISE;;365;;;; +physical-eq-022;HUAWEI P9;9;;2024-08-18;2023-06-16;Communication Device;Retired;France;;;;MY ENTERPRISE;;365;;;; +physical-eq-023;PRO MP242;50;;2022-06-21;2023-06-16;Monitor;In use;France;;;;MY ENTERPRISE;;365;;;; +physical-eq-024;SAC A DOS;534;;2023-02-18;2023-06-16;Consumable;Consumed;France;;;;MY ENTERPRISE;;365;;;; +physical-eq-025;SAC A DOS;1;;2023-02-18;2023-06-16;Consumable;Missing;France;;;;MY ENTERPRISE;;365;;;; +physical-eq-026;SPIDER X1;2;;2022-10-17;2023-06-16;Communication Device;In stock;France;;;;MY ENTERPRISE;;365;;;; +physical-eq-027;DELL 1909W;5;;2022-11-20;2023-06-16;Monitor;Retired;France;;;;MY ENTERPRISE;;365;;;; +physical-eq-028;DELL 1909W;1;;2021-12-20;2023-06-16;Monitor;Missing;France;;;;MY ENTERPRISE;;365;;;; +physical-eq-029;DELL 1909W;14;;2025-10-17;2023-06-16;Monitor;Retired;France;;;;MY ENTERPRISE;;365;;;; +physical-eq-030;DELL 2412M;1;;2022-12-26;2023-06-16;Monitor;Retired;France;;;;MY ENTERPRISE;;365;;;; +physical-eq-031;DELL 2717H;19;;2021-04-08;2023-06-16;Monitor;In use;France;;;;MY ENTERPRISE;;365;;;; +physical-eq-032;DELL 2717H;1;;2024-11-23;2023-06-16;Monitor;Retired;France;;;;MY ENTERPRISE;;365;;;; +physical-eq-033;DELL E7440;5;;2023-03-19;2023-06-16;Personal Computer;Retired;France;;;;MY ENTERPRISE;;365;;;; +physical-eq-034;DELL E7440;31;;2025-10-27;2023-06-16;Personal Computer;Retired;France;;;;MY ENTERPRISE;;365;;;; +physical-eq-035;DELL E7440;11;;2022-04-24;2023-06-16;Personal Computer;Missing;France;;;;MY ENTERPRISE;;365;;;; +physical-eq-036;DELL E7450;2;;2022-12-21;2023-06-16;Personal Computer;Retired;France;;;;MY ENTERPRISE;;365;;;; +physical-eq-037;DELL E7450;14;;2025-10-31;2023-06-16;Personal Computer;Retired;France;;;;MY ENTERPRISE;;365;;;; +physical-eq-038;DELL E7450;6;;2022-04-22;2023-06-16;Personal Computer;Missing;France;;;;MY ENTERPRISE;;365;;;; +physical-eq-039;DELL E7470;33;;2023-02-11;2023-06-16;Personal Computer;Retired;France;;;;MY ENTERPRISE;;365;;;; +physical-eq-040;DELL E7470;23;;2022-03-16;2023-06-16;Personal Computer;Missing;France;;;;MY ENTERPRISE;;365;;;; +physical-eq-041;DELL E7470;9;;2022-03-16;2023-06-16;Personal Computer;In use;France;;;;MY ENTERPRISE;;365;;;; +physical-eq-042;DELL E7470;4;;2022-03-16;2023-06-16;Personal Computer;In stock;France;;;;MY ENTERPRISE;;365;;;; +physical-eq-043;DELL E7470;325;;2024-09-01;2023-06-16;Personal Computer;Retired;France;;;;MY ENTERPRISE;;365;;;; +physical-eq-044;DELL E7470;2;;2025-03-03;2023-06-16;Personal Computer;In stock;France;;;;MY ENTERPRISE;;365;;;; +physical-eq-045;DELL E7480;349;;2022-12-11;2023-06-16;Personal Computer;Retired;France;;;;MY ENTERPRISE;;365;;;; +physical-eq-046;DELL E7480;49;;2021-10-26;2023-06-16;Personal Computer;Missing;France;;;;MY ENTERPRISE;;365;;;; +physical-eq-047;DELL E7480;18;;2021-09-25;2023-06-16;Personal Computer;In stock;France;;;;MY ENTERPRISE;;365;;;; +physical-eq-048;DELL E7480;141;;2023-11-04;2023-06-16;Personal Computer;Retired;France;;;;MY ENTERPRISE;;365;;;; +physical-eq-049;DELL E7480;70;;2021-09-30;2023-06-16;Personal Computer;In use;France;;;;MY ENTERPRISE;;365;;;; +physical-eq-050;DELL E7480;1;;2025-06-03;2023-06-16;Personal Computer;Missing;France;;;;MY ENTERPRISE;;365;;;; +physical-eq-051;DELL E7490;248;;2022-03-21;2023-06-16;Personal Computer;Retired;France;;;;MY ENTERPRISE;;365;;;; +physical-eq-052;DELL E7490;52;;2021-06-17;2023-06-16;Personal Computer;In stock;France;;;;MY ENTERPRISE;;365;;;; +physical-eq-053;DELL E7490;421;;2021-06-01;2023-06-16;Personal Computer;In use;France;;;;MY ENTERPRISE;;365;;;; +physical-eq-054;DELL E7490;51;;2021-06-19;2023-06-16;Personal Computer;Missing;France;;;;MY ENTERPRISE;;365;;;; +physical-eq-055;DELL E7490;6;;2024-04-20;2023-06-16;Personal Computer;Retired;France;;;;MY ENTERPRISE;;365;;;; +physical-eq-056;DELL P1911;8;;2022-07-25;2023-06-16;Monitor;Retired;France;;;;MY ENTERPRISE;;365;;;; +physical-eq-057;DELL P1911;6;;2025-01-04;2023-06-16;Monitor;Retired;France;;;;MY ENTERPRISE;;365;;;; +physical-eq-058;DELL P1913;4;;2022-11-02;2023-06-16;Monitor;Retired;France;;;;MY ENTERPRISE;;365;;;; +physical-eq-059;DELL P1913;2;;2024-04-12;2023-06-16;Monitor;Retired;France;;;;MY ENTERPRISE;;365;;;; +physical-eq-060;HUAWEI P20;1;;2021-12-24;2023-06-16;Communication Device;Retired;France;;;;MY ENTERPRISE;;365;;;; +physical-eq-061;LENOVO M73;13;;2024-01-25;2023-06-16;Personal Computer;Retired;France;;;;MY ENTERPRISE;;365;;;; +physical-eq-062;LENOVO M73;13;;2022-01-25;2023-06-16;Personal Computer;In Use;France;;;;MY ENTERPRISE;;365;;;; +physical-eq-063;ANTIVOL MAC;1;;2023-01-14;2023-06-16;Consumable;Missing;France;;;;MY ENTERPRISE;;365;;;; +physical-eq-064;ANTIVOL MAC;1;;2023-01-14;2023-06-16;Consumable;In stock;France;;;;MY ENTERPRISE;;365;;;; +physical-eq-065;ANTIVOL MAC;10;;2023-01-14;2023-06-16;Consumable;Consumed;France;;;;MY ENTERPRISE;;365;;;; +physical-eq-066;AOC U2879VF;10;;2022-11-27;2023-06-16;Monitor;In use;France;;;;MY ENTERPRISE;;365;;;; +physical-eq-067;DELL P2210T;1;;2022-12-29;2023-06-16;Monitor;Retired;France;;;;MY ENTERPRISE;;365;;;; +physical-eq-068;DELL P2217H;286;;2021-03-13;2023-06-16;Monitor;In use;France;;;;MY ENTERPRISE;;365;;;; +physical-eq-069;DELL P2217H;1;;2021-03-13;2023-06-16;Monitor;Missing;France;;;;MY ENTERPRISE;;365;;;; +physical-eq-070;DELL P2217H;5;;2022-01-14;2023-06-16;Monitor;Retired;France;;;;MY ENTERPRISE;;365;;;; +physical-eq-071;DELL P2217H;6;;2021-03-13;2023-06-16;Monitor;In stock;France;;;;MY ENTERPRISE;;365;;;; +physical-eq-072;DELL P2217H;3;;2023-10-15;2023-06-16;Monitor;Retired;France;;;;MY ENTERPRISE;;365;;;; +physical-eq-073;DELL P2319H;1;;2022-12-19;2023-06-16;Monitor;In stock;France;;;;MY ENTERPRISE;;365;;;; +physical-eq-074;DELL P2319H;49;;2022-12-19;2023-06-16;Monitor;In use;France;;;;MY ENTERPRISE;;365;;;; +physical-eq-075;DELL P2412H;1;;2022-03-25;2023-06-16;Monitor;Retired;France;;;;MY ENTERPRISE;;365;;;; +physical-eq-076;DELL P2412H;1;;2025-06-01;2023-06-16;Monitor;Retired;France;;;;MY ENTERPRISE;;365;;;; +physical-eq-077;DELL P2415Q;7;;2022-03-13;2023-06-16;Monitor;In use;France;;;;MY ENTERPRISE;;365;;;; +physical-eq-078;DELL P2415Q;1;;2022-03-13;2023-06-16;Monitor;In stock;France;;;;MY ENTERPRISE;;365;;;; +physical-eq-079;DELL P2417H;371;;2021-03-18;2023-06-16;Monitor;In use;France;;;;MY ENTERPRISE;;365;;;; +physical-eq-080;DELL P2417H;7;;2022-07-16;2023-06-16;Monitor;Retired;France;;;;MY ENTERPRISE;;365;;;; +physical-eq-081;DELL P2417H;4;;2024-07-02;2023-06-16;Monitor;Retired;France;;;;MY ENTERPRISE;;365;;;; +physical-eq-082;DELL P2417H;5;;2021-03-18;2023-06-16;Monitor;In stock;France;;;;MY ENTERPRISE;;365;;;; +physical-eq-083;DELL P2419H;11;;2021-09-01;2023-06-16;Monitor;In stock;France;;;;MY ENTERPRISE;;365;;;; +physical-eq-084;DELL P2419H;11;;2022-10-18;2023-06-16;Monitor;Retired;France;;;;MY ENTERPRISE;;365;;;; +physical-eq-085;DELL P2419H;847;;2021-09-01;2023-06-16;Monitor;In use;France;;;;MY ENTERPRISE;;365;;;; +physical-eq-086;DELL P2419H;1;;2021-09-01;2023-06-16;Monitor;Missing;France;;;;MY ENTERPRISE;;365;;;; +physical-eq-087;DELL P2419H;32;;2024-05-15;2023-06-16;Monitor;Retired;France;;;;MY ENTERPRISE;;365;;;; +physical-eq-088;DELL P2422H;7;;2023-04-23;2023-06-16;Monitor;Retired;France;;;;MY ENTERPRISE;;365;;;; +physical-eq-089;DELL P2422H;2;;2023-09-30;2023-06-16;Monitor;Retired;France;;;;MY ENTERPRISE;;365;;;; +physical-eq-090;DELL P2422H;588;;2022-09-25;2023-06-16;Monitor;In use;France;;;;MY ENTERPRISE;;365;;;; +physical-eq-091;DELL P2719H;1;;2022-04-04;2023-06-16;Monitor;Retired;France;;;;MY ENTERPRISE;;365;;;; +physical-eq-092;DELL P2719H;43;;2021-07-29;2023-06-16;Monitor;In use;France;;;;MY ENTERPRISE;;365;;;; +physical-eq-093;DELL P2719H;2;;2021-07-29;2023-06-16;Monitor;In stock;France;;;;MY ENTERPRISE;;365;;;; +physical-eq-094;DELL P2721Q;2;;2023-02-24;2023-06-16;Monitor;In use;France;;;;MY ENTERPRISE;;365;;;; +physical-eq-095;DELL S2216H;2;;2024-11-27;2023-06-16;Monitor;Retired;France;;;;MY ENTERPRISE;;365;;;; +physical-eq-096;DELL S2216H;17;;2021-05-21;2023-06-16;Monitor;In use;France;;;;MY ENTERPRISE;;365;;;; +physical-eq-097;DELL S2216H;1;;2022-11-22;2023-06-16;Monitor;Retired;France;;;;MY ENTERPRISE;;365;;;; +physical-eq-098;DELL S2240L;28;;2021-06-26;2023-06-16;Monitor;In use;France;;;;MY ENTERPRISE;;365;;;; +physical-eq-099;DELL S2240L;8;;2022-12-04;2023-06-16;Monitor;Retired;France;;;;MY ENTERPRISE;;365;;;; +physical-eq-100;DELL S2240L;4;;2024-12-09;2023-06-16;Monitor;Retired;France;;;;MY ENTERPRISE;;365;;;; diff --git a/e2e/input_template/EquipementPhysique_serveur.csv b/e2e/input_template/EquipementPhysique_serveur.csv index 21333d8a..2c2e6f31 100644 --- a/e2e/input_template/EquipementPhysique_serveur.csv +++ b/e2e/input_template/EquipementPhysique_serveur.csv @@ -1,101 +1,101 @@ -nomEquipementPhysique;modele;quantite;nomCourtDatacenter;dateAchat;dateRetrait;type;statut;paysDUtilisation;consoElecAnnuelle;utilisateur;nomSourceDonnee;nomEntite;nbCoeur;nbJourUtiliseAn;goTelecharge;modeUtilisation;tauxUtilisation -physical-eq-srv-001;blade-server--28;7;default;2016-06-17;2023-06-16;Server;In use;;;;;;;365;;; -physical-eq-srv-002;DATACENTER;1;F1;2016-06-17;2023-06-16;Server;In use;;;;;;;365;10;; -physical-eq-srv-003;DATACENTER;1;F1;2016-06-17;2023-06-16;Server;In use;;;;;;;365;20;; -physical-eq-srv-004;DATACENTER;1;F1;2016-06-17;2023-06-16;Server;In use;;;;;;;365;30;; -physical-eq-srv-005;DATACENTER;1;F1;2016-06-17;2023-06-16;Server;In use;;;;;;;365;40;; -physical-eq-srv-006;DATACENTER;1;F1;2016-06-17;2023-06-16;Server;In use;;;;;;;365;50;; -physical-eq-srv-007;DATACENTER;1;F1;2016-06-17;2023-06-16;Server;In use;;;;;;;365;;; -physical-eq-srv-008;DATACENTER;1;F1;2016-06-17;2023-06-16;Server;In use;;;;;;;365;;; -physical-eq-srv-009;DATACENTER;1;F1;2016-06-17;2023-06-16;Server;In use;;;;;;;365;;; -physical-eq-srv-010;DATACENTER;2;F1;2016-06-17;2023-06-16;Server;In use;;;;;;;365;;; -physical-eq-srv-011;DATACENTER;1;F1;2016-06-17;2023-06-16;Server;In use;;;;;;;365;;; -physical-eq-srv-012;DATACENTER;1;F1;2016-06-17;2023-06-16;Server;In use;;;;;;;365;;; -physical-eq-srv-013;DATACENTER;1;F1;2016-06-17;2023-06-16;Server;In use;;;;;;;365;;; -physical-eq-srv-014;DATACENTER;1;G1;2016-06-17;2023-06-16;Server;In use;;;;;;;365;;; -physical-eq-srv-015;DATACENTER;1;G1;2016-06-17;2023-06-16;Server;In use;;;;;;;365;;; -physical-eq-srv-016;DATACENTER;1;G1;2016-06-17;2023-06-16;Server;In use;;;;;;;365;;; -physical-eq-srv-017;DATACENTER;1;X1;2016-06-17;2023-06-16;Server;In use;;;;;;;365;;; -physical-eq-srv-018;DATACENTER;1;X1;2016-06-17;2023-06-16;Server;In use;;;;;;;365;;; -physical-eq-srv-019;DATACENTER;1;X1;2016-06-17;2023-06-16;Server;In use;;;;;;;365;;; -physical-eq-srv-020;DATACENTER;8;X1;2016-06-17;2023-06-16;Server;In use;;;;;;;365;;; -physical-eq-srv-021;DATACENTER;1;X1;2016-06-17;2023-06-16;Server;In use;;;;;;;365;;; -physical-eq-srv-022;DATACENTER;1;X1;2016-06-17;2023-06-16;Server;In use;;;;;;;365;;; -physical-eq-srv-023;DATACENTER;1;X1;2016-06-17;2023-06-16;Server;In use;;;;;;;365;;; -physical-eq-srv-024;DATACENTER;1;X1;2016-06-17;2023-06-16;Server;In use;;;;;;;365;;; -physical-eq-srv-025;DATACENTER;1;X1;2016-06-17;2023-06-16;Server;In use;;;;;;;365;;; -physical-eq-srv-026;DATACENTER;1;X1;2016-06-17;2023-06-16;Server;In use;;;;;;;365;;; -physical-eq-srv-027;DATACENTER;1;X1;2016-06-17;2023-06-16;Server;In use;;;;;;;365;;; -physical-eq-srv-028;DATACENTER;1;X1;2016-06-17;2023-06-16;Server;In use;;;;;;;365;;; -physical-eq-srv-029;DATACENTER;1;X1;2016-06-17;2023-06-16;Server;In use;;;;;;;365;;; -physical-eq-srv-030;DATACENTER;1;X1;2016-06-17;2023-06-16;Server;In use;;;;;;;365;;; -physical-eq-srv-031;DATACENTER;1;X1;2016-06-17;2023-06-16;Server;In use;;;;;;;365;;; -physical-eq-srv-032;DATACENTER;1;X1;2016-06-17;2023-06-16;Server;In use;;;;;;;365;;; -physical-eq-srv-033;DATACENTER;1;X1;2016-06-17;2023-06-16;Server;In use;;;;;;;365;;; -physical-eq-srv-034;DATACENTER;1;X1;2016-06-17;2023-06-16;Server;In use;;;;;;;365;;; -physical-eq-srv-035;DATACENTER;1;Y1;2016-06-17;2023-06-16;Server;In use;Germany;;;;;;365;;; -physical-eq-srv-036;DATACENTER;1;Y1;2016-06-17;2023-06-16;Server;In use;Germany;;;;;;365;;; -physical-eq-srv-037;DATACENTER;1;Y1;2016-06-17;2023-06-16;Server;In use;Germany;;;;;;365;;; -physical-eq-srv-038;DATACENTER;1;Y1;2016-06-17;2023-06-16;Server;In use;Germany;;;;;;365;;; -physical-eq-srv-039;DATACENTER;1;Y1;2016-06-17;2023-06-16;Server;In use;Germany;;;;;;365;;; -physical-eq-srv-040;DATACENTER;1;Y1;2016-06-17;2023-06-16;Server;In use;Germany;;;;;;365;;; -physical-eq-srv-041;DATACENTER;1;Y1;2016-06-17;2023-06-16;Server;In use;Germany;;;;;;365;;; -physical-eq-srv-042;DATACENTER;1;Y1;2016-06-17;2023-06-16;Server;In use;Germany;;;;;;365;;; -physical-eq-srv-043;DATACENTER;1;Y1;2016-06-17;2023-06-16;Server;In use;Germany;;;;;;365;;; -physical-eq-srv-044;DATACENTER;1;Y1;2016-06-17;2023-06-16;Server;In use;Germany;;;;;;365;;; -physical-eq-srv-045;DATACENTER;26;Y1;2016-06-17;2023-06-16;Server;In use;Germany;;;;;;365;;; -physical-eq-srv-046;DATACENTER;1;Y1;2016-06-17;2023-06-16;Server;In use;Germany;;;;;;365;;; -physical-eq-srv-047;DATACENTER;1;Y1;2016-06-17;2023-06-16;Server;In use;Germany;;;;;;365;;; -physical-eq-srv-048;DATACENTER;1;Y1;2016-06-17;2023-06-16;Server;In use;Germany;;;;;;365;;; -physical-eq-srv-049;DATACENTER;1;Y1;2016-06-17;2023-06-16;Server;In use;Germany;;;;;;365;;; -physical-eq-srv-050;DATACENTER;1;Y1;2016-06-17;2023-06-16;Server;In use;Germany;;;;;;365;;; -physical-eq-srv-051;DATACENTER;1;Y1;2016-06-17;2023-06-16;Server;In use;Germany;;;;;;365;;; -physical-eq-srv-052;DATACENTER;1;Y1;2016-06-17;2023-06-16;Server;In use;Germany;;;;;;365;;; -physical-eq-srv-053;DATACENTER;1;Y1;2016-06-17;2023-06-16;Server;In use;Germany;;;;;;365;;; -physical-eq-srv-054;DATACENTER;1;Y1;2016-06-17;2023-06-16;Server;In use;Germany;;;;;;365;;; -physical-eq-srv-055;DATACENTER;1;Y1;2016-06-17;2023-06-16;Server;In use;Germany;;;;;;365;;; -physical-eq-srv-056;DATACENTER;1;Y1;2016-06-17;2023-06-16;Server;In use;Germany;;;;;;365;;; -physical-eq-srv-057;DATACENTER;1;Y1;2016-06-17;2023-06-16;Server;In use;Germany;;;;;;365;;; -physical-eq-srv-058;DATACENTER;1;Y1;2016-06-17;2023-06-16;Server;In use;Germany;;;;;;365;;; -physical-eq-srv-059;DATACENTER;1;Y1;2016-06-17;2023-06-16;Server;In use;Germany;;;;;;365;;; -physical-eq-srv-060;DATACENTER;1;Y1;2016-06-17;2023-06-16;Server;In use;Germany;;;;;;365;;; -physical-eq-srv-061;DATACENTER;1;Y1;2016-06-17;2023-06-16;Server;In use;Germany;;;;;;365;;; -physical-eq-srv-062;DATACENTER;1;Y1;2016-06-17;2023-06-16;Server;In use;Germany;;;;;;365;;; -physical-eq-srv-063;DATACENTER;1;Y1;2016-06-17;2023-06-16;Server;In use;Germany;;;;;;365;;; -physical-eq-srv-064;DATACENTER;1;Y1;2016-06-17;2023-06-16;Server;In use;Germany;;;;;;365;;; -physical-eq-srv-065;DATACENTER;1;Y1;2016-06-17;2023-06-16;Server;In use;Germany;;;;;;365;;; -physical-eq-srv-066;DATACENTER;1;Y1;2016-06-17;2023-06-16;Server;In use;Germany;;;;;;365;;; -physical-eq-srv-067;DATACENTER;1;Y1;2016-06-17;2023-06-16;Server;In use;Germany;;;;;;365;;; -physical-eq-srv-068;DATACENTER;1;Y1;2016-06-17;2023-06-16;Server;In use;Germany;;;;;;365;;; -physical-eq-srv-069;DATACENTER;1;Y1;2016-06-17;2023-06-16;Server;In use;Germany;;;;;;365;;; -physical-eq-srv-070;DATACENTER;1;Y1;2016-06-17;2023-06-16;Server;In use;Germany;;;;;;365;;; -physical-eq-srv-071;DATACENTER;1;Y1;2016-06-17;2023-06-16;Server;In use;Germany;;;;;;365;;; -physical-eq-srv-072;DATACENTER;1;Y1;2016-06-17;2023-06-16;Server;In use;Germany;;;;;;365;;; -physical-eq-srv-073;DATACENTER;1;Y1;2016-06-17;2023-06-16;Server;In use;Germany;;;;;;365;;; -physical-eq-srv-074;DATACENTER;1;Z2;2016-06-17;2023-06-16;Server;In use;France;;;;;;365;;; -physical-eq-srv-075;DATACENTER;122;Z2;2016-06-17;2023-06-16;Server;In use;France;;;;;;365;;; -physical-eq-srv-076;DATACENTER;1;Z2;2016-06-17;2023-06-16;Server;In use;France;;;;;;365;;; -physical-eq-srv-077;DATACENTER;1;Z2;2016-06-17;2023-06-16;Server;In use;France;;;;;;365;;; -physical-eq-srv-078;DATACENTER;1;Z2;2016-06-17;2023-06-16;Server;In use;France;;;;;;365;;; -physical-eq-srv-079;DATACENTER;1;Z2;2016-06-17;2023-06-16;Server;In use;France;;;;;;365;;; -physical-eq-srv-080;DATACENTER;1;Z2;2016-06-17;2023-06-16;Server;In use;France;;;;;;365;;; -physical-eq-srv-081;DATACENTER;1;Z2;2016-06-17;2023-06-16;Server;In use;France;;;;;;365;;; -physical-eq-srv-082;DATACENTER;1;Z2;2016-06-17;2023-06-16;Server;In use;France;;;;;;365;;; -physical-eq-srv-083;DATACENTER;1;Z2;2016-06-17;2023-06-16;Server;In use;France;;;;;;365;;; -physical-eq-srv-084;DATACENTER;1;Z2;2016-06-17;2023-06-16;Server;In use;France;;;;;;365;;; -physical-eq-srv-085;DATACENTER;1;Z2;2016-06-17;2023-06-16;Server;In use;France;;;;;;365;;; -physical-eq-srv-086;DATACENTER;1;Z2;2016-06-17;2023-06-16;Server;In use;France;;;;;;365;;; -physical-eq-srv-087;DATACENTER;1;Z2;2016-06-17;2023-06-16;Server;In use;France;;;;;;365;;; -physical-eq-srv-088;DATACENTER;1;Z2;2016-06-17;2023-06-16;Server;In use;France;;;;;;365;;; -physical-eq-srv-089;DATACENTER;1;Z2;2016-06-17;2023-06-16;Server;In use;France;;;;;;365;;; -physical-eq-srv-090;DATACENTER;1;Z2;2016-06-17;2023-06-16;Server;In use;France;;;;;;365;;; -physical-eq-srv-091;DATACENTER;1;Z2;2016-06-17;2023-06-16;Server;In use;France;;;;;;365;;; -physical-eq-srv-092;DATACENTER;1;Z2;2016-06-17;2023-06-16;Server;In use;France;;;;;;365;;; -physical-eq-srv-093;DATACENTER;1;Z2;2016-06-17;2023-06-16;Server;In use;France;;;;;;365;;; -physical-eq-srv-094;DATACENTER;1;Z2;2016-06-17;2023-06-16;Server;In use;France;;;;;;365;;; -physical-eq-srv-095;DATACENTER;1;Z2;2016-06-17;2023-06-16;Server;In use;France;;;;;;365;;; -physical-eq-srv-096;DATACENTER;1;Z2;2016-06-17;2023-06-16;Server;In use;France;;;;;;365;;; -physical-eq-srv-097;DATACENTER;1;Z2;2016-06-17;2023-06-16;Server;In use;France;;;;;;365;;; -physical-eq-srv-098;DATACENTER;1;Z2;2016-06-17;2023-06-16;Server;In use;France;;;;;;365;;; -physical-eq-srv-099;DATACENTER;1;Z2;2016-06-17;2023-06-16;Server;In use;France;;;;;;365;;; -physical-eq-srv-100;DATACENTER;1;Z2;2016-06-17;2023-06-16;Server;In use;France;;;;;;365;;; +nomEquipementPhysique;modele;quantite;nomCourtDatacenter;dateAchat;dateRetrait;type;statut;paysDUtilisation;consoElecAnnuelle;utilisateur;nomSourceDonnee;nomEntite;nbCoeur;nbJourUtiliseAn;goTelecharge;modeUtilisation;tauxUtilisation;qualite +physical-eq-srv-001;blade-server--28;7;default;2016-06-17;2023-06-16;Server;In use;;;;;;;365;;;;Haute +physical-eq-srv-002;DATACENTER;1;F1;2016-06-17;2023-06-16;Server;In use;;;;;;;365;10;;;Basse +physical-eq-srv-003;DATACENTER;1;F1;2016-06-17;2023-06-16;Server;In use;;;;;;;365;20;;;Moyenne +physical-eq-srv-004;DATACENTER;1;F1;2016-06-17;2023-06-16;Server;In use;;;;;;;365;30;;;erreur +physical-eq-srv-005;DATACENTER;1;F1;2016-06-17;2023-06-16;Server;In use;;;;;;;365;40;;; +physical-eq-srv-006;DATACENTER;1;F1;2016-06-17;2023-06-16;Server;In use;;;;;;;365;50;;; +physical-eq-srv-007;DATACENTER;1;F1;2016-06-17;2023-06-16;Server;In use;;;;;;;365;;;; +physical-eq-srv-008;DATACENTER;1;F1;2016-06-17;2023-06-16;Server;In use;;;;;;;365;;;; +physical-eq-srv-009;DATACENTER;1;F1;2016-06-17;2023-06-16;Server;In use;;;;;;;365;;;; +physical-eq-srv-010;DATACENTER;2;F1;2016-06-17;2023-06-16;Server;In use;;;;;;;365;;;; +physical-eq-srv-011;DATACENTER;1;F1;2016-06-17;2023-06-16;Server;In use;;;;;;;365;;;; +physical-eq-srv-012;DATACENTER;1;F1;2016-06-17;2023-06-16;Server;In use;;;;;;;365;;;; +physical-eq-srv-013;DATACENTER;1;F1;2016-06-17;2023-06-16;Server;In use;;;;;;;365;;;; +physical-eq-srv-014;DATACENTER;1;G1;2016-06-17;2023-06-16;Server;In use;;;;;;;365;;;; +physical-eq-srv-015;DATACENTER;1;G1;2016-06-17;2023-06-16;Server;In use;;;;;;;365;;;; +physical-eq-srv-016;DATACENTER;1;G1;2016-06-17;2023-06-16;Server;In use;;;;;;;365;;;; +physical-eq-srv-017;DATACENTER;1;X1;2016-06-17;2023-06-16;Server;In use;;;;;;;365;;;; +physical-eq-srv-018;DATACENTER;1;X1;2016-06-17;2023-06-16;Server;In use;;;;;;;365;;;; +physical-eq-srv-019;DATACENTER;1;X1;2016-06-17;2023-06-16;Server;In use;;;;;;;365;;;; +physical-eq-srv-020;DATACENTER;8;X1;2016-06-17;2023-06-16;Server;In use;;;;;;;365;;;; +physical-eq-srv-021;DATACENTER;1;X1;2016-06-17;2023-06-16;Server;In use;;;;;;;365;;;; +physical-eq-srv-022;DATACENTER;1;X1;2016-06-17;2023-06-16;Server;In use;;;;;;;365;;;; +physical-eq-srv-023;DATACENTER;1;X1;2016-06-17;2023-06-16;Server;In use;;;;;;;365;;;; +physical-eq-srv-024;DATACENTER;1;X1;2016-06-17;2023-06-16;Server;In use;;;;;;;365;;;; +physical-eq-srv-025;DATACENTER;1;X1;2016-06-17;2023-06-16;Server;In use;;;;;;;365;;;; +physical-eq-srv-026;DATACENTER;1;X1;2016-06-17;2023-06-16;Server;In use;;;;;;;365;;;; +physical-eq-srv-027;DATACENTER;1;X1;2016-06-17;2023-06-16;Server;In use;;;;;;;365;;;; +physical-eq-srv-028;DATACENTER;1;X1;2016-06-17;2023-06-16;Server;In use;;;;;;;365;;;; +physical-eq-srv-029;DATACENTER;1;X1;2016-06-17;2023-06-16;Server;In use;;;;;;;365;;;; +physical-eq-srv-030;DATACENTER;1;X1;2016-06-17;2023-06-16;Server;In use;;;;;;;365;;;; +physical-eq-srv-031;DATACENTER;1;X1;2016-06-17;2023-06-16;Server;In use;;;;;;;365;;;; +physical-eq-srv-032;DATACENTER;1;X1;2016-06-17;2023-06-16;Server;In use;;;;;;;365;;;; +physical-eq-srv-033;DATACENTER;1;X1;2016-06-17;2023-06-16;Server;In use;;;;;;;365;;;; +physical-eq-srv-034;DATACENTER;1;X1;2016-06-17;2023-06-16;Server;In use;;;;;;;365;;;; +physical-eq-srv-035;DATACENTER;1;Y1;2016-06-17;2023-06-16;Server;In use;Germany;;;;;;365;;;; +physical-eq-srv-036;DATACENTER;1;Y1;2016-06-17;2023-06-16;Server;In use;Germany;;;;;;365;;;; +physical-eq-srv-037;DATACENTER;1;Y1;2016-06-17;2023-06-16;Server;In use;Germany;;;;;;365;;;; +physical-eq-srv-038;DATACENTER;1;Y1;2016-06-17;2023-06-16;Server;In use;Germany;;;;;;365;;;; +physical-eq-srv-039;DATACENTER;1;Y1;2016-06-17;2023-06-16;Server;In use;Germany;;;;;;365;;;; +physical-eq-srv-040;DATACENTER;1;Y1;2016-06-17;2023-06-16;Server;In use;Germany;;;;;;365;;;; +physical-eq-srv-041;DATACENTER;1;Y1;2016-06-17;2023-06-16;Server;In use;Germany;;;;;;365;;;; +physical-eq-srv-042;DATACENTER;1;Y1;2016-06-17;2023-06-16;Server;In use;Germany;;;;;;365;;;; +physical-eq-srv-043;DATACENTER;1;Y1;2016-06-17;2023-06-16;Server;In use;Germany;;;;;;365;;;; +physical-eq-srv-044;DATACENTER;1;Y1;2016-06-17;2023-06-16;Server;In use;Germany;;;;;;365;;;; +physical-eq-srv-045;DATACENTER;26;Y1;2016-06-17;2023-06-16;Server;In use;Germany;;;;;;365;;;; +physical-eq-srv-046;DATACENTER;1;Y1;2016-06-17;2023-06-16;Server;In use;Germany;;;;;;365;;;; +physical-eq-srv-047;DATACENTER;1;Y1;2016-06-17;2023-06-16;Server;In use;Germany;;;;;;365;;;; +physical-eq-srv-048;DATACENTER;1;Y1;2016-06-17;2023-06-16;Server;In use;Germany;;;;;;365;;;; +physical-eq-srv-049;DATACENTER;1;Y1;2016-06-17;2023-06-16;Server;In use;Germany;;;;;;365;;;; +physical-eq-srv-050;DATACENTER;1;Y1;2016-06-17;2023-06-16;Server;In use;Germany;;;;;;365;;;; +physical-eq-srv-051;DATACENTER;1;Y1;2016-06-17;2023-06-16;Server;In use;Germany;;;;;;365;;;; +physical-eq-srv-052;DATACENTER;1;Y1;2016-06-17;2023-06-16;Server;In use;Germany;;;;;;365;;;; +physical-eq-srv-053;DATACENTER;1;Y1;2016-06-17;2023-06-16;Server;In use;Germany;;;;;;365;;;; +physical-eq-srv-054;DATACENTER;1;Y1;2016-06-17;2023-06-16;Server;In use;Germany;;;;;;365;;;; +physical-eq-srv-055;DATACENTER;1;Y1;2016-06-17;2023-06-16;Server;In use;Germany;;;;;;365;;;; +physical-eq-srv-056;DATACENTER;1;Y1;2016-06-17;2023-06-16;Server;In use;Germany;;;;;;365;;;; +physical-eq-srv-057;DATACENTER;1;Y1;2016-06-17;2023-06-16;Server;In use;Germany;;;;;;365;;;; +physical-eq-srv-058;DATACENTER;1;Y1;2016-06-17;2023-06-16;Server;In use;Germany;;;;;;365;;;; +physical-eq-srv-059;DATACENTER;1;Y1;2016-06-17;2023-06-16;Server;In use;Germany;;;;;;365;;;; +physical-eq-srv-060;DATACENTER;1;Y1;2016-06-17;2023-06-16;Server;In use;Germany;;;;;;365;;;; +physical-eq-srv-061;DATACENTER;1;Y1;2016-06-17;2023-06-16;Server;In use;Germany;;;;;;365;;;; +physical-eq-srv-062;DATACENTER;1;Y1;2016-06-17;2023-06-16;Server;In use;Germany;;;;;;365;;;; +physical-eq-srv-063;DATACENTER;1;Y1;2016-06-17;2023-06-16;Server;In use;Germany;;;;;;365;;;; +physical-eq-srv-064;DATACENTER;1;Y1;2016-06-17;2023-06-16;Server;In use;Germany;;;;;;365;;;; +physical-eq-srv-065;DATACENTER;1;Y1;2016-06-17;2023-06-16;Server;In use;Germany;;;;;;365;;;; +physical-eq-srv-066;DATACENTER;1;Y1;2016-06-17;2023-06-16;Server;In use;Germany;;;;;;365;;;; +physical-eq-srv-067;DATACENTER;1;Y1;2016-06-17;2023-06-16;Server;In use;Germany;;;;;;365;;;; +physical-eq-srv-068;DATACENTER;1;Y1;2016-06-17;2023-06-16;Server;In use;Germany;;;;;;365;;;; +physical-eq-srv-069;DATACENTER;1;Y1;2016-06-17;2023-06-16;Server;In use;Germany;;;;;;365;;;; +physical-eq-srv-070;DATACENTER;1;Y1;2016-06-17;2023-06-16;Server;In use;Germany;;;;;;365;;;; +physical-eq-srv-071;DATACENTER;1;Y1;2016-06-17;2023-06-16;Server;In use;Germany;;;;;;365;;;; +physical-eq-srv-072;DATACENTER;1;Y1;2016-06-17;2023-06-16;Server;In use;Germany;;;;;;365;;;; +physical-eq-srv-073;DATACENTER;1;Y1;2016-06-17;2023-06-16;Server;In use;Germany;;;;;;365;;;; +physical-eq-srv-074;DATACENTER;1;Z2;2016-06-17;2023-06-16;Server;In use;France;;;;;;365;;;; +physical-eq-srv-075;DATACENTER;122;Z2;2016-06-17;2023-06-16;Server;In use;France;;;;;;365;;;; +physical-eq-srv-076;DATACENTER;1;Z2;2016-06-17;2023-06-16;Server;In use;France;;;;;;365;;;; +physical-eq-srv-077;DATACENTER;1;Z2;2016-06-17;2023-06-16;Server;In use;France;;;;;;365;;;; +physical-eq-srv-078;DATACENTER;1;Z2;2016-06-17;2023-06-16;Server;In use;France;;;;;;365;;;; +physical-eq-srv-079;DATACENTER;1;Z2;2016-06-17;2023-06-16;Server;In use;France;;;;;;365;;;; +physical-eq-srv-080;DATACENTER;1;Z2;2016-06-17;2023-06-16;Server;In use;France;;;;;;365;;;; +physical-eq-srv-081;DATACENTER;1;Z2;2016-06-17;2023-06-16;Server;In use;France;;;;;;365;;;; +physical-eq-srv-082;DATACENTER;1;Z2;2016-06-17;2023-06-16;Server;In use;France;;;;;;365;;;; +physical-eq-srv-083;DATACENTER;1;Z2;2016-06-17;2023-06-16;Server;In use;France;;;;;;365;;;; +physical-eq-srv-084;DATACENTER;1;Z2;2016-06-17;2023-06-16;Server;In use;France;;;;;;365;;;; +physical-eq-srv-085;DATACENTER;1;Z2;2016-06-17;2023-06-16;Server;In use;France;;;;;;365;;;; +physical-eq-srv-086;DATACENTER;1;Z2;2016-06-17;2023-06-16;Server;In use;France;;;;;;365;;;; +physical-eq-srv-087;DATACENTER;1;Z2;2016-06-17;2023-06-16;Server;In use;France;;;;;;365;;;; +physical-eq-srv-088;DATACENTER;1;Z2;2016-06-17;2023-06-16;Server;In use;France;;;;;;365;;;; +physical-eq-srv-089;DATACENTER;1;Z2;2016-06-17;2023-06-16;Server;In use;France;;;;;;365;;;; +physical-eq-srv-090;DATACENTER;1;Z2;2016-06-17;2023-06-16;Server;In use;France;;;;;;365;;;; +physical-eq-srv-091;DATACENTER;1;Z2;2016-06-17;2023-06-16;Server;In use;France;;;;;;365;;;; +physical-eq-srv-092;DATACENTER;1;Z2;2016-06-17;2023-06-16;Server;In use;France;;;;;;365;;;; +physical-eq-srv-093;DATACENTER;1;Z2;2016-06-17;2023-06-16;Server;In use;France;;;;;;365;;;; +physical-eq-srv-094;DATACENTER;1;Z2;2016-06-17;2023-06-16;Server;In use;France;;;;;;365;;;; +physical-eq-srv-095;DATACENTER;1;Z2;2016-06-17;2023-06-16;Server;In use;France;;;;;;365;;;; +physical-eq-srv-096;DATACENTER;1;Z2;2016-06-17;2023-06-16;Server;In use;France;;;;;;365;;;; +physical-eq-srv-097;DATACENTER;1;Z2;2016-06-17;2023-06-16;Server;In use;France;;;;;;365;;;; +physical-eq-srv-098;DATACENTER;1;Z2;2016-06-17;2023-06-16;Server;In use;France;;;;;;365;;;; +physical-eq-srv-099;DATACENTER;1;Z2;2016-06-17;2023-06-16;Server;In use;France;;;;;;365;;;; +physical-eq-srv-100;DATACENTER;1;Z2;2016-06-17;2023-06-16;Server;In use;France;;;;;;365;;;; diff --git a/e2e/input_template/EquipementVirtuel.csv b/e2e/input_template/EquipementVirtuel.csv index c6754843..f3ca683e 100644 --- a/e2e/input_template/EquipementVirtuel.csv +++ b/e2e/input_template/EquipementVirtuel.csv @@ -1,2 +1,2 @@ -nomEquipementVirtuel;nomEquipementPhysique;nomSourceDonneeEquipementPhysique;cleRepartition;vCPU;cluster;consoElecAnnuelle;typeEqv;capaciteStockage;nomEntite;nomSourceDonnee -virtual-eq-;physical-eq-srv-;;;##VCPU##;##TYPE_EQV##;;calcul;;;; +nomEquipementVirtuel;nomEquipementPhysique;nomSourceDonneeEquipementPhysique;cleRepartition;vCPU;cluster;consoElecAnnuelle;typeEqv;capaciteStockage;nomEntite;nomSourceDonnee;qualite +virtual-eq-;physical-eq-srv-;;;##VCPU##;##TYPE_EQV##;;calcul;;;;basse diff --git a/e2e/input_template/OperationNonIT.csv b/e2e/input_template/OperationNonIT.csv index ae3e4ec3..1cee0eb0 100644 --- a/e2e/input_template/OperationNonIT.csv +++ b/e2e/input_template/OperationNonIT.csv @@ -1,21 +1,21 @@ -nomItemNonIT;quantite;type;dureeDeVie;localisation;nomEntite;nomSourceDonnee;nomCourtDatacenter;description;consoElecAnnuelle -reseau-fixe-1;100.0;Fixed Line FR ;;France;SSG;sourceTest;;description; -reseau-fixe-2;20.0;Fixed Line EU;;Hungary;Entite;sourceTest2;;description; -reseau-fixe-error;20.0;Fixed Line;;Hungary;Entite;sourceTest2;;description; -reseau-mobile-1;445.0;Mobile Line;;France;EntiteTest;sourceTest3;;description; -batiment-dsi-stMalo;1000.0;Batiment 1;45.0;France;EntiteTest;sourceTest4;;description; -batiment-dsi-Rennes;1200.0;Batiment 1;;France;EntiteTest;sourceTest5;;description; -batiment-dsi-Cesson;1060.0;Batiment 2;;France;EntiteTest;sourceTest6;;description; -batiment-dc-stMalo;836.0;Batiment DC;25.0;France;EntiteTest;sourceTest7;fakeName;description; -batiment-dc-Cesson;590.0;Batiment DC;;France;EntiteTest;sourceTest8;G1;description; -maintenance-1;30.0;Maintenance 1;;France;EntiteTest;sourceTest9;;description; -deplacement-velo;1230.0;Deplacement Velo;;France;EntiteTest;sourceTest10;;description; -deplacement-trotinette;60.0;Deplacement Trotinette;;France;EntiteTest;sourceTest11;;description; -deplacement-voiture-electrique;156.0;Deplacement Voiture Electrique;;France;EntiteTest;sourceTest12;;description; -deplacement-voiture-hybride;3457.0;Deplacement Voiture Hybride;;France;EntiteTest;sourceTest13;;description; -deplacement-voiture-essence;24678.0;Deplacement Voiture Essence;;France;EntiteTest;sourceTest14;;description; -deplacement-voiture-diesel;2355.0;Deplacement Voiture Diesel;;France;EntiteTest;sourceTest15;;description; -deplacement-avion;23000.0;Deplacement Avion;;France;EntiteTest;sourceTest16;;description; -deplacement-train;27000.0;Deplacement Train;;France;EntiteTest;sourceTest17;;description; -deplacement-bus-essence;352.0;Deplacement Bus Essence;;France;EntiteTest;sourceTest18;;description; -deplacement-bus-electrique;352.0;Deplacement Bus Electrique;;France;EntiteTest;sourceTest18;;description; +nomItemNonIT;quantite;type;dureeDeVie;localisation;nomEntite;nomSourceDonnee;nomCourtDatacenter;description;consoElecAnnuelle;qualite +reseau-fixe-1;100.0;Fixed Line FR ;;France;SSG;sourceTest;;description;;moyenne +reseau-fixe-2;20.0;Fixed Line EU;;Hungary;Entite;sourceTest2;;description;;haUte +reseau-fixe-error;20.0;Fixed Line;;Hungary;Entite;sourceTest2;;description;; +reseau-mobile-1;445.0;Mobile Line;;France;EntiteTest;sourceTest3;;description;;erreur +batiment-dsi-stMalo;1000.0;Batiment 1;45.0;France;EntiteTest;sourceTest4;;description;;HAUTE +batiment-dsi-Rennes;1200.0;Batiment 1;;France;EntiteTest;sourceTest5;;description;;bas +batiment-dsi-Cesson;1060.0;Batiment 2;;France;EntiteTest;sourceTest6;;description;;Basse +batiment-dc-stMalo;836.0;Batiment DC;25.0;France;EntiteTest;sourceTest7;fakeName;description;; +batiment-dc-Cesson;590.0;Batiment DC;;France;EntiteTest;sourceTest8;G1;description;; +maintenance-1;30.0;Maintenance 1;;France;EntiteTest;sourceTest9;;description;; +deplacement-velo;1230.0;Deplacement Velo;;France;EntiteTest;sourceTest10;;description;; +deplacement-trotinette;60.0;Deplacement Trotinette;;France;EntiteTest;sourceTest11;;description;; +deplacement-voiture-electrique;156.0;Deplacement Voiture Electrique;;France;EntiteTest;sourceTest12;;description;; +deplacement-voiture-hybride;3457.0;Deplacement Voiture Hybride;;France;EntiteTest;sourceTest13;;description;; +deplacement-voiture-essence;24678.0;Deplacement Voiture Essence;;France;EntiteTest;sourceTest14;;description;; +deplacement-voiture-diesel;2355.0;Deplacement Voiture Diesel;;France;EntiteTest;sourceTest15;;description;; +deplacement-avion;23000.0;Deplacement Avion;;France;EntiteTest;sourceTest16;;description;; +deplacement-train;27000.0;Deplacement Train;;France;EntiteTest;sourceTest17;;description;; +deplacement-bus-essence;352.0;Deplacement Bus Essence;;France;EntiteTest;sourceTest18;;description;; +deplacement-bus-electrique;352.0;Deplacement Bus Electrique;;France;EntiteTest;sourceTest18;;description;; diff --git a/services/api-event-calculs/src/main/java/org/mte/numecoeval/calculs/infrastructure/controller/export/IndicateurController.java b/services/api-event-calculs/src/main/java/org/mte/numecoeval/calculs/infrastructure/controller/export/IndicateurController.java index e3338c81..e3a93ebb 100644 --- a/services/api-event-calculs/src/main/java/org/mte/numecoeval/calculs/infrastructure/controller/export/IndicateurController.java +++ b/services/api-event-calculs/src/main/java/org/mte/numecoeval/calculs/infrastructure/controller/export/IndicateurController.java @@ -170,14 +170,9 @@ public class IndicateurController { rows++; List<String> values = new ArrayList<>(); for (int i = 1; i <= numCols; i++) { - try { - var value = rs.getDouble(i); - values.add(String.valueOf(value)); - } catch (Exception e) { - var value = rs.getString(i); - if (value == null) value = ""; - values.add(value); - } + var value = rs.getString(i); + if (value == null) value = ""; + values.add(value); } lines.add(String.join(",", values)); if (rows >= MAX_ROWS) break; diff --git a/services/api-event-calculs/src/main/java/org/mte/numecoeval/calculs/infrastructure/repository/ApplicationRepository.java b/services/api-event-calculs/src/main/java/org/mte/numecoeval/calculs/infrastructure/repository/ApplicationRepository.java index 574d0576..4e5220f5 100644 --- a/services/api-event-calculs/src/main/java/org/mte/numecoeval/calculs/infrastructure/repository/ApplicationRepository.java +++ b/services/api-event-calculs/src/main/java/org/mte/numecoeval/calculs/infrastructure/repository/ApplicationRepository.java @@ -53,6 +53,7 @@ public class ApplicationRepository { .domaine(rs.getString("domaine")) .sousDomaine(rs.getString("sous_domaine")) .nomSourceDonnee(rs.getString("nom_source_donnee")) + .qualite(rs.getString("qualite")) .build()); } } diff --git a/services/api-event-calculs/src/main/java/org/mte/numecoeval/calculs/infrastructure/repository/EquipementPhysiqueRepository.java b/services/api-event-calculs/src/main/java/org/mte/numecoeval/calculs/infrastructure/repository/EquipementPhysiqueRepository.java index 11864627..d29cb380 100644 --- a/services/api-event-calculs/src/main/java/org/mte/numecoeval/calculs/infrastructure/repository/EquipementPhysiqueRepository.java +++ b/services/api-event-calculs/src/main/java/org/mte/numecoeval/calculs/infrastructure/repository/EquipementPhysiqueRepository.java @@ -35,7 +35,8 @@ public class EquipementPhysiqueRepository { dc.localisation as dc_localisation, dc.nom_long_datacenter as dc_nom_long_datacenter, dc.pue as dc_pue, - dc.nom_entite as dc_nom_entite + dc.nom_entite as dc_nom_entite, + dc.qualite as dc_qualite FROM en_equipement_physique eqp LEFT JOIN en_data_center dc ON dc.nom_lot = eqp.nom_lot and dc.nom_court_datacenter = eqp.nom_court_datacenter WHERE eqp.id = ANY (?) @@ -69,6 +70,7 @@ public class EquipementPhysiqueRepository { .nomSourceDonnee(rs.getString("nom_source_donnee")) .modeUtilisation(rs.getString("mode_utilisation")) .tauxUtilisation(ResultSetUtils.getDouble(rs, "taux_utilisation")) + .qualite(rs.getString("qualite")) .dataCenter( DataCenterDTO.builder() .id(rs.getLong("dc_id")) @@ -79,6 +81,7 @@ public class EquipementPhysiqueRepository { .nomEntite(rs.getString("dc_nom_entite")) .nomOrganisation(rs.getString("nom_organisation")) .dateLot(ResultSetUtils.getLocalDate(rs, "date_lot")) + .qualite(rs.getString("dc_qualite")) .build() ) .build()); diff --git a/services/api-event-calculs/src/main/java/org/mte/numecoeval/calculs/infrastructure/repository/EquipementVirtuelRepository.java b/services/api-event-calculs/src/main/java/org/mte/numecoeval/calculs/infrastructure/repository/EquipementVirtuelRepository.java index 574c2c8c..14c8c91d 100644 --- a/services/api-event-calculs/src/main/java/org/mte/numecoeval/calculs/infrastructure/repository/EquipementVirtuelRepository.java +++ b/services/api-event-calculs/src/main/java/org/mte/numecoeval/calculs/infrastructure/repository/EquipementVirtuelRepository.java @@ -54,6 +54,7 @@ public class EquipementVirtuelRepository { .capaciteStockage(ResultSetUtils.getDouble(rs, "capacite_stockage")) .cleRepartition(ResultSetUtils.getDouble(rs, "cle_repartition")) .nomSourceDonnee(rs.getString("nom_source_donnee")) + .qualite(rs.getString("qualite")) .build()); } } diff --git a/services/api-event-calculs/src/main/java/org/mte/numecoeval/calculs/infrastructure/repository/IndicateurRepository.java b/services/api-event-calculs/src/main/java/org/mte/numecoeval/calculs/infrastructure/repository/IndicateurRepository.java index aa070003..a2148ebc 100644 --- a/services/api-event-calculs/src/main/java/org/mte/numecoeval/calculs/infrastructure/repository/IndicateurRepository.java +++ b/services/api-event-calculs/src/main/java/org/mte/numecoeval/calculs/infrastructure/repository/IndicateurRepository.java @@ -30,8 +30,8 @@ public class IndicateurRepository { critere, nom_equipement, nom_entite, nom_entite_discriminator, source, statut_indicateur, trace, version_calcul, conso_elec_moyenne, impact_unitaire, quantite, type_equipement, unite, - statut_equipement_physique, nom_lot, nom_source_donnee, nom_source_donnee_discriminator) - VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?,?, ?, ?, ?) + statut_equipement_physique, nom_lot, nom_source_donnee, nom_source_donnee_discriminator, qualite) + VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?,?, ?, ?, ?, ?) """; private static final String INSERT_EQUIPEMENT_VIRTUEL_QUERY = """ @@ -39,8 +39,8 @@ public class IndicateurRepository { (date_calcul, date_lot, date_lot_discriminator, nom_organisation, nom_organisation_discriminator, etapeacv, critere, nom_equipement, nom_equipement_virtuel, nom_entite, nom_entite_discriminator, source, statut_indicateur, trace, version_calcul, impact_unitaire, unite, conso_elec_moyenne, - cluster, nom_lot, nom_source_donnee, nom_source_donnee_discriminator ) - VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) + cluster, nom_lot, nom_source_donnee, nom_source_donnee_discriminator, qualite ) + VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?,?) """; private static final String INSERT_APPLICATION_QUERY = """ @@ -49,8 +49,8 @@ public class IndicateurRepository { nom_organisation_discriminator, nom_application, type_environnement, nom_equipement_physique, nom_equipement_virtuel, nom_entite, nom_entite_discriminator, source, statut_indicateur, trace, version_calcul, domaine, sous_domaine, impact_unitaire, unite, conso_elec_moyenne, nom_lot, - nom_source_donnee, nom_source_donnee_discriminator) - VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) + nom_source_donnee, nom_source_donnee_discriminator, qualite) + VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?,?) """; private static final String INSERT_OPERATION_NON_IT_QUERY = """ @@ -59,8 +59,8 @@ public class IndicateurRepository { critere, nom_item_non_it, nom_entite, nom_entite_discriminator, source, statut_indicateur, trace, version_calcul, conso_elec_moyenne, impact_unitaire, quantite, type_item, unite, - nom_lot, nom_source_donnee, nom_source_donnee_discriminator) - VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? ,? ,?) + nom_lot, nom_source_donnee, nom_source_donnee_discriminator,qualite) + VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? ,? ,?,?) """; private static final String INSERT_MESSAGERIE_QUERY = """ INSERT INTO ind_indicateur_impact_messagerie @@ -122,6 +122,7 @@ public class IndicateurRepository { ps.setString(21, indicateur.getNomLot()); ps.setString(22, indicateur.getNomSourceDonnee()); ps.setString(23, StringUtils.defaultString(indicateur.getNomSourceDonnee())); + ps.setString(24, indicateur.getQualite()); ps.addBatch(); } @@ -151,6 +152,7 @@ public class IndicateurRepository { ps.setString(20, indicateur.getNomLot()); ps.setString(21, indicateur.getNomSourceDonnee()); ps.setString(22, StringUtils.defaultString(indicateur.getNomSourceDonnee())); + ps.setString(23, indicateur.getQualite()); ps.addBatch(); } @@ -184,6 +186,7 @@ public class IndicateurRepository { ps.setString(23, indicateur.getNomLot()); ps.setString(24, indicateur.getNomSourceDonnee()); ps.setString(25, StringUtils.defaultString(indicateur.getNomSourceDonnee())); + ps.setString(26, indicateur.getQualite()); ps.addBatch(); } @@ -261,6 +264,7 @@ public class IndicateurRepository { ps.setString(20, indicateur.getNomLot()); ps.setString(21, indicateur.getNomSourceDonnee()); ps.setString(22, StringUtils.defaultString(indicateur.getNomSourceDonnee())); + ps.setString(23, indicateur.getQualite()); ps.addBatch(); } diff --git a/services/api-event-calculs/src/main/java/org/mte/numecoeval/calculs/infrastructure/repository/OperationNonITRepository.java b/services/api-event-calculs/src/main/java/org/mte/numecoeval/calculs/infrastructure/repository/OperationNonITRepository.java index a267c358..dfda5caf 100644 --- a/services/api-event-calculs/src/main/java/org/mte/numecoeval/calculs/infrastructure/repository/OperationNonITRepository.java +++ b/services/api-event-calculs/src/main/java/org/mte/numecoeval/calculs/infrastructure/repository/OperationNonITRepository.java @@ -51,6 +51,7 @@ public class OperationNonITRepository { .nomCourtDatacenter(rs.getString(COLUMN_NAME_NOM_COURT_DATACENTER)) .description(rs.getString("description")) .consoElecAnnuelle(ResultSetUtils.getDouble(rs, "conso_elec_annuelle")) + .qualite(rs.getString("qualite")) .build()); } } diff --git a/services/api-event-calculs/src/main/resources/schema.sql b/services/api-event-calculs/src/main/resources/schema.sql index 24e2e71f..e388cfc1 100644 --- a/services/api-event-calculs/src/main/resources/schema.sql +++ b/services/api-event-calculs/src/main/resources/schema.sql @@ -1,25 +1,26 @@ -- Creation des tables indicateurs CREATE TABLE IF NOT EXISTS ind_indicateur_impact_equipement_physique ( - date_calcul timestamp NULL, - date_lot date NULL, - nom_lot varchar(255) NULL, - etapeacv varchar(255) NULL, - critere varchar(255) NULL, - "source" varchar(255) NULL, - statut_indicateur varchar(255) NULL, - trace text NULL, - version_calcul varchar(255) NULL, - conso_elec_moyenne float8 NULL, - impact_unitaire float8 NULL, - quantite int4 NULL, - statut_equipement_physique varchar(255) NULL, - type_equipement varchar(255) NULL, - unite varchar(255) NULL, - nom_entite varchar(255) NULL, - nom_organisation varchar(255) NULL, - nom_source_donnee varchar(255) NULL, - nom_equipement varchar(255) NULL + date_calcul timestamp NULL, + date_lot date NULL, + nom_lot varchar(255) NULL, + etapeacv varchar(255) NULL, + critere varchar(255) NULL, + "source" varchar(255) NULL, + statut_indicateur varchar(255) NULL, + trace text NULL, + version_calcul varchar(255) NULL, + conso_elec_moyenne float8 NULL, + impact_unitaire float8 NULL, + quantite int4 NULL, + statut_equipement_physique varchar(255) NULL, + type_equipement varchar(255) NULL, + unite varchar(255) NULL, + nom_entite varchar(255) NULL, + nom_organisation varchar(255) NULL, + nom_source_donnee varchar(255) NULL, + nom_equipement varchar(255) NULL, + qualite varchar(255) NULL ); CREATE TABLE IF NOT EXISTS ind_indicateur_impact_equipement_virtuel @@ -41,54 +42,57 @@ CREATE TABLE IF NOT EXISTS ind_indicateur_impact_equipement_virtuel impact_unitaire float8 NULL, unite varchar(255) NULL, conso_elec_moyenne float8 NULL, - "cluster" varchar(255) NULL + "cluster" varchar(255) NULL, + qualite varchar(255) NULL ); CREATE TABLE IF NOT EXISTS ind_indicateur_impact_application ( - date_calcul timestamp NULL, - date_lot date NULL, - nom_lot varchar(255) NULL, - etapeacv varchar(255) NULL, - critere varchar(255) NULL, - nom_organisation varchar(255) NULL, - nom_source_donnee varchar(255) NULL, - nom_application varchar(255) NULL, - type_environnement varchar(255) NULL, - nom_equipement_physique varchar(255) NULL, - nom_equipement_virtuel varchar(255) NULL, - nom_entite varchar(255) NULL, - "source" varchar(255) NULL, - statut_indicateur varchar(255) NULL, - trace text NULL, - version_calcul varchar(255) NULL, - domaine varchar(255) NULL, - sous_domaine varchar(255) NULL, - impact_unitaire float8 NULL, - unite varchar(255) NULL, - conso_elec_moyenne float8 NULL + date_calcul timestamp NULL, + date_lot date NULL, + nom_lot varchar(255) NULL, + etapeacv varchar(255) NULL, + critere varchar(255) NULL, + nom_organisation varchar(255) NULL, + nom_source_donnee varchar(255) NULL, + nom_application varchar(255) NULL, + type_environnement varchar(255) NULL, + nom_equipement_physique varchar(255) NULL, + nom_equipement_virtuel varchar(255) NULL, + nom_entite varchar(255) NULL, + "source" varchar(255) NULL, + statut_indicateur varchar(255) NULL, + trace text NULL, + version_calcul varchar(255) NULL, + domaine varchar(255) NULL, + sous_domaine varchar(255) NULL, + impact_unitaire float8 NULL, + unite varchar(255) NULL, + conso_elec_moyenne float8 NULL, + qualite varchar(255) NULL ); CREATE TABLE IF NOT EXISTS ind_indicateur_impact_operation_non_it ( - date_calcul timestamp NULL, - date_lot date NULL, - nom_lot varchar(255) NULL, - etapeacv varchar(255) NULL, - critere varchar(255) NULL, - "source" varchar(255) NULL, - statut_indicateur varchar(255) NULL, - trace text NULL, - version_calcul varchar(255) NULL, - conso_elec_moyenne float8 NULL, - impact_unitaire float8 NULL, - quantite int4 NULL, - type_item varchar(255) NULL, - unite varchar(255) NULL, - nom_entite varchar(255) NULL, - nom_organisation varchar(255) NULL, - nom_source_donnee varchar(255) NULL, - nom_item_non_it varchar(255) NULL + date_calcul timestamp NULL, + date_lot date NULL, + nom_lot varchar(255) NULL, + etapeacv varchar(255) NULL, + critere varchar(255) NULL, + "source" varchar(255) NULL, + statut_indicateur varchar(255) NULL, + trace text NULL, + version_calcul varchar(255) NULL, + conso_elec_moyenne float8 NULL, + impact_unitaire float8 NULL, + quantite int4 NULL, + type_item varchar(255) NULL, + unite varchar(255) NULL, + nom_entite varchar(255) NULL, + nom_organisation varchar(255) NULL, + nom_source_donnee varchar(255) NULL, + nom_item_non_it varchar(255) NULL, + qualite varchar(255) NULL ); CREATE TABLE IF NOT EXISTS ind_indicateur_impact_messagerie @@ -113,23 +117,28 @@ CREATE TABLE IF NOT EXISTS ind_indicateur_impact_messagerie CREATE TABLE IF NOT EXISTS ind_indicateur_impact_reseau ( - date_calcul timestamp NULL, - date_lot date NULL, - nom_lot varchar(255) NULL, - etapeacv varchar(255) NULL, - critere varchar(255) NULL, - "source" varchar(255) NULL, - statut_indicateur varchar(255) NULL, - trace text NULL, - version_calcul varchar(255) NULL, - impact_unitaire float8 NULL, - unite varchar(255) NULL, - nom_entite varchar(255) NULL, - nom_organisation varchar(255) NULL, - nom_source_donnee varchar(255) NULL, - nom_equipement varchar(255) NULL + date_calcul timestamp NULL, + date_lot date NULL, + nom_lot varchar(255) NULL, + etapeacv varchar(255) NULL, + critere varchar(255) NULL, + "source" varchar(255) NULL, + statut_indicateur varchar(255) NULL, + trace text NULL, + version_calcul varchar(255) NULL, + impact_unitaire float8 NULL, + unite varchar(255) NULL, + nom_entite varchar(255) NULL, + nom_organisation varchar(255) NULL, + nom_source_donnee varchar(255) NULL, + nom_equipement varchar(255) NULL ); +ALTER TABLE IF EXISTS ind_indicateur_impact_equipement_physique ADD COLUMN IF NOT EXISTS qualite varchar(255) NULL DEFAULT ''; +ALTER TABLE IF EXISTS ind_indicateur_impact_application ADD COLUMN IF NOT EXISTS qualite varchar(255) NULL DEFAULT ''; +ALTER TABLE IF EXISTS ind_indicateur_impact_equipement_virtuel ADD COLUMN IF NOT EXISTS qualite varchar(255) NULL DEFAULT ''; +ALTER TABLE IF EXISTS ind_indicateur_impact_operation_non_it ADD COLUMN IF NOT EXISTS qualite varchar(255) NULL DEFAULT ''; + CREATE INDEX IF NOT EXISTS idx_ind_eq_p__nom_lot_nom_equipement ON ind_indicateur_impact_equipement_physique (nom_lot, nom_equipement); CREATE INDEX IF NOT EXISTS idx_ind_eq_v__nom_lot_nom_equipement ON ind_indicateur_impact_equipement_virtuel (nom_lot, nom_equipement); CREATE INDEX IF NOT EXISTS idx_ind_app__nom_lot_nom_equipement ON ind_indicateur_impact_application (nom_lot, nom_equipement_physique); diff --git a/services/api-event-calculs/src/test/java/org/mte/numecoeval/calculs/infrastructure/service/calcul/EnrichissementEquipementPhysiqueServiceTest.java b/services/api-event-calculs/src/test/java/org/mte/numecoeval/calculs/infrastructure/service/calcul/EnrichissementEquipementPhysiqueServiceTest.java index 791717ec..579474dc 100644 --- a/services/api-event-calculs/src/test/java/org/mte/numecoeval/calculs/infrastructure/service/calcul/EnrichissementEquipementPhysiqueServiceTest.java +++ b/services/api-event-calculs/src/test/java/org/mte/numecoeval/calculs/infrastructure/service/calcul/EnrichissementEquipementPhysiqueServiceTest.java @@ -70,7 +70,8 @@ class EnrichissementEquipementPhysiqueServiceTest { "localisation": "France", "dateLot": "2023-10-26", "nomOrganisation": "org" - } + }, + "qualite":"HAUTE" } """, EquipementPhysiqueDTO.class); @@ -144,6 +145,7 @@ class EnrichissementEquipementPhysiqueServiceTest { Assertions.assertEquals(1, actual.getMixElectriques().size()); Assertions.assertEquals("FR", actual.getMixElectriques().get(0).getPays()); Assertions.assertEquals(1.1, actual.getImpactsEquipement().get(0).getValeur()); + Assertions.assertEquals("HAUTE", actual.getEquipementPhysique().getQualite()); } @@ -171,5 +173,6 @@ class EnrichissementEquipementPhysiqueServiceTest { Assertions.assertEquals(1, actual.getMixElectriques().size()); Assertions.assertEquals("FR", actual.getMixElectriques().get(0).getPays()); Assertions.assertEquals(2.2, actual.getImpactsEquipement().get(0).getValeur()); + Assertions.assertEquals("HAUTE", actual.getEquipementPhysique().getQualite()); } } diff --git a/services/api-event-calculs/src/test/java/org/mte/numecoeval/calculs/infrastructure/service/calcul/EnrichissementOperationNonITServiceTest.java b/services/api-event-calculs/src/test/java/org/mte/numecoeval/calculs/infrastructure/service/calcul/EnrichissementOperationNonITServiceTest.java index 393ff04c..55f4b387 100644 --- a/services/api-event-calculs/src/test/java/org/mte/numecoeval/calculs/infrastructure/service/calcul/EnrichissementOperationNonITServiceTest.java +++ b/services/api-event-calculs/src/test/java/org/mte/numecoeval/calculs/infrastructure/service/calcul/EnrichissementOperationNonITServiceTest.java @@ -55,7 +55,8 @@ class EnrichissementOperationNonITServiceTest { "consoElecAnnuelle": null, "nomLot": "lot1", "dateLot": "2024-04-24", - "nomOrganisation": "org" + "nomOrganisation": "org", + "qualite":"BASSE" } """, OperationNonITDTO.class); @@ -146,5 +147,7 @@ class EnrichissementOperationNonITServiceTest { Assertions.assertEquals("France", actual.getFacteurCaracterisations().get(1).getLocalisation()); Assertions.assertEquals(0.0813225, actual.getFacteurCaracterisations().get(1).getValeur()); + Assertions.assertEquals("BASSE", actual.getOperationNonIT().getQualite()); + } } diff --git a/services/api-event-donneesentrees/src/main/java/org/mte/numecoeval/donneesentrees/infrastructure/config/EquipementPhysiqueIntegrationConfig.java b/services/api-event-donneesentrees/src/main/java/org/mte/numecoeval/donneesentrees/infrastructure/config/EquipementPhysiqueIntegrationConfig.java index f826d65e..392f44f6 100644 --- a/services/api-event-donneesentrees/src/main/java/org/mte/numecoeval/donneesentrees/infrastructure/config/EquipementPhysiqueIntegrationConfig.java +++ b/services/api-event-donneesentrees/src/main/java/org/mte/numecoeval/donneesentrees/infrastructure/config/EquipementPhysiqueIntegrationConfig.java @@ -97,7 +97,8 @@ public class EquipementPhysiqueIntegrationConfig { dc.localisation as dc_localisation, dc.nom_long_datacenter as dc_nom_long_datacenter, dc.pue as dc_pue, - dc.nom_entite as dc_nom_entite + dc.nom_entite as dc_nom_entite, + dc.qualite as dc_qualite FROM en_equipement_physique eqp LEFT JOIN en_data_center dc ON dc.nom_lot = eqp.nom_lot and dc.nom_court_datacenter = eqp.nom_court_datacenter WHERE eqp.statut_traitement = 'A_INGERER' @@ -130,6 +131,7 @@ public class EquipementPhysiqueIntegrationConfig { .utilisateur(rs.getString("utilisateur")) .nomCourtDatacenter(rs.getString(COLUMN_NAME_NOM_COURT_DATACENTER)) .nomSourceDonnee(rs.getString("nom_source_donnee")) + .qualite(rs.getString("qualite")) .dataCenter( DataCenterDTO.builder() .id(rs.getLong("dc_id")) @@ -140,6 +142,7 @@ public class EquipementPhysiqueIntegrationConfig { .nomEntite(rs.getString("dc_nom_entite")) .nomOrganisation(rs.getString("nom_organisation")) .dateLot(ResultSetUtils.getLocalDate(rs, "date_lot")) + .qualite(rs.getString("dc_qualite")) .build() ) .build() diff --git a/services/api-event-donneesentrees/src/main/java/org/mte/numecoeval/donneesentrees/infrastructure/config/OperationNonITIntegrationConfig.java b/services/api-event-donneesentrees/src/main/java/org/mte/numecoeval/donneesentrees/infrastructure/config/OperationNonITIntegrationConfig.java index a27c7c0f..bde9876c 100644 --- a/services/api-event-donneesentrees/src/main/java/org/mte/numecoeval/donneesentrees/infrastructure/config/OperationNonITIntegrationConfig.java +++ b/services/api-event-donneesentrees/src/main/java/org/mte/numecoeval/donneesentrees/infrastructure/config/OperationNonITIntegrationConfig.java @@ -113,6 +113,7 @@ public class OperationNonITIntegrationConfig { .nomCourtDatacenter(rs.getString(COLUMN_NAME_NOM_COURT_DATACENTER)) .description(rs.getString("description")) .consoElecAnnuelle(ResultSetUtils.getDouble(rs, "conso_elec_annuelle")) + .qualite(rs.getString("qualite")) .build() ); return adapter; diff --git a/services/api-event-donneesentrees/src/test/resources/sql/equipment_physique.sql b/services/api-event-donneesentrees/src/test/resources/sql/equipment_physique.sql index 4d532f98..b100c694 100644 --- a/services/api-event-donneesentrees/src/test/resources/sql/equipment_physique.sql +++ b/services/api-event-donneesentrees/src/test/resources/sql/equipment_physique.sql @@ -7,8 +7,8 @@ INSERT INTO en_equipement_physique (id, date_creation, nom_lot, date_lot, nom_or date_achat, date_retrait, duree_vie_defaut, go_telecharge, modele, nb_coeur, mode_utilisation, taux_utilisation, nb_jour_utilise_an, nom_court_datacenter, nom_entite, nom_equipement_physique, pays_utilisation, quantite, serveur, statut, "type", - utilisateur, statut_traitement, date_update, nom_source_donnee) + utilisateur, statut_traitement, date_update, nom_source_donnee, qualite) VALUES (376826, '2023-03-23 15:53:51.179031', 'ENTITE|2022-01-01', '2022-01-01', 'ENTITE', NULL, '2022-01-01', NULL, 8.0, 0.0, 'computer monitor-01-55', '','BYOD',0.4, 365.0, '', 'ENTITE', '2023-03-09-Ecran-105', 'France', 13.0, false, 'actif', 'Ecran', - '', 'EN_ATTENTE', NULL, 'SOURCE_A'); + '', 'EN_ATTENTE', NULL, 'SOURCE_A','HAUTE'); diff --git a/services/api-event-donneesentrees/src/test/resources/sql/operation_non_it.sql b/services/api-event-donneesentrees/src/test/resources/sql/operation_non_it.sql index 4960722a..f4da7a7a 100644 --- a/services/api-event-donneesentrees/src/test/resources/sql/operation_non_it.sql +++ b/services/api-event-donneesentrees/src/test/resources/sql/operation_non_it.sql @@ -1,4 +1,4 @@ INSERT INTO en_operation_non_it (id, date_creation, nom_lot, date_lot, nom_organisation,nom_item_non_it, quantite, type, -duree_de_vie, localisation, nom_entite,nom_source_donnee,nom_court_datacenter,description,conso_elec_annuelle,statut_traitement,date_update) +duree_de_vie, localisation, nom_entite,nom_source_donnee,nom_court_datacenter,description,conso_elec_annuelle,statut_traitement,date_update,qualite) VALUES (11002, '2023-03-23 15:53:37.073851', 'nomlot', '2022-01-01', 'nomOrga', 'nomitem', 32, 'type', 31, - 'Localisation', 'Entite', 'Source','nomCourtDatacenter','description',100,'EN_ATTENTE',NULL); + 'Localisation', 'Entite', 'Source','nomCourtDatacenter','description',100,'EN_ATTENTE',NULL,'HAUTE'); diff --git a/services/api-event-donneesentrees/src/test/resources/sql/schema.sql b/services/api-event-donneesentrees/src/test/resources/sql/schema.sql index 1460b631..27d5cb5e 100644 --- a/services/api-event-donneesentrees/src/test/resources/sql/schema.sql +++ b/services/api-event-donneesentrees/src/test/resources/sql/schema.sql @@ -28,6 +28,7 @@ CREATE TABLE IF NOT EXISTS en_data_center nom_entite varchar(255) NULL, nom_long_datacenter varchar(255) NULL, pue float8 NULL, + qualite varchar(255) NULL, CONSTRAINT en_data_center_pkey PRIMARY KEY (id) ); @@ -59,6 +60,7 @@ CREATE TABLE IF NOT EXISTS en_equipement_physique taux_utilisation float8 NULL, "type" varchar(255) NULL, utilisateur varchar(255) NULL, + qualite varchar(255) NULL, CONSTRAINT en_equipement_physique_pkey PRIMARY KEY (id) ); @@ -75,46 +77,49 @@ CREATE TABLE IF NOT EXISTS en_equipement_virtuel nom_equipement_physique varchar(255) NULL, nom_equipement_virtuel varchar(255) NULL, vcpu int4 NULL, + qualite varchar(255) NULL, CONSTRAINT en_equipement_virtuel_pkey PRIMARY KEY (id) ); CREATE TABLE IF NOT EXISTS en_application ( - id int8 NOT NULL, - date_creation timestamp NULL, - date_lot date NULL, - nom_lot varchar(255) NULL, - nom_organisation varchar(255) NULL, - nom_source_donnee varchar(255) NULL, - domaine varchar(255) NULL, - nom_application varchar(255) NULL, - nom_entite varchar(255) NULL, - nom_equipement_virtuel varchar(255) NULL, - nom_equipement_physique varchar(255) NULL, - sous_domaine varchar(255) NULL, - type_environnement varchar(255) NULL, + id int8 NOT NULL, + date_creation timestamp NULL, + date_lot date NULL, + nom_lot varchar(255) NULL, + nom_organisation varchar(255) NULL, + nom_source_donnee varchar(255) NULL, + domaine varchar(255) NULL, + nom_application varchar(255) NULL, + nom_entite varchar(255) NULL, + nom_equipement_virtuel varchar(255) NULL, + nom_equipement_physique varchar(255) NULL, + sous_domaine varchar(255) NULL, + type_environnement varchar(255) NULL, + qualite varchar(255) NULL, CONSTRAINT en_application_pkey PRIMARY KEY (id) ); CREATE TABLE IF NOT EXISTS en_operation_non_it ( - id int8 NOT NULL, - date_creation timestamp NULL, - date_update timestamp NULL, - date_lot date NULL, - nom_lot varchar(255) NULL, - nom_organisation varchar(255) NULL, - nom_source_donnee varchar(255) NULL, - nom_item_non_it varchar(255) NULL, - quantite float8 NULL, - type varchar(255) NULL, - duree_de_vie float8 NULL, - localisation varchar(255) NULL, - nom_entite varchar(255) NULL, - nom_court_datacenter varchar(255) NULL, - description varchar(255) NULL, - conso_elec_annuelle float8 NULL, - statut_traitement varchar(255) NULL, + id int8 NOT NULL, + date_creation timestamp NULL, + date_update timestamp NULL, + date_lot date NULL, + nom_lot varchar(255) NULL, + nom_organisation varchar(255) NULL, + nom_source_donnee varchar(255) NULL, + nom_item_non_it varchar(255) NULL, + quantite float8 NULL, + type varchar(255) NULL, + duree_de_vie float8 NULL, + localisation varchar(255) NULL, + nom_entite varchar(255) NULL, + nom_court_datacenter varchar(255) NULL, + description varchar(255) NULL, + conso_elec_annuelle float8 NULL, + statut_traitement varchar(255) NULL, + qualite varchar(255) NULL, CONSTRAINT en_operation_non_it_pkey PRIMARY KEY (id) ); @@ -157,3 +162,9 @@ ALTER TABLE IF EXISTS en_equipement_physique ADD COLUMN IF NOT EXISTS statut_tra ALTER TABLE IF EXISTS en_equipement_virtuel ADD COLUMN IF NOT EXISTS statut_traitement varchar(255); ALTER TABLE IF EXISTS en_application ADD COLUMN IF NOT EXISTS statut_traitement varchar(255); ALTER TABLE IF EXISTS en_messagerie ADD COLUMN IF NOT EXISTS statut_traitement varchar(255); + +ALTER TABLE IF EXISTS en_equipement_physique ADD COLUMN IF NOT EXISTS qualite varchar(255); +ALTER TABLE IF EXISTS en_application ADD COLUMN IF NOT EXISTS qualite varchar(255); +ALTER TABLE IF EXISTS en_operation_non_it ADD COLUMN IF NOT EXISTS qualite varchar(255); +ALTER TABLE IF EXISTS en_equipement_virtuel ADD COLUMN IF NOT EXISTS qualite varchar(255); +ALTER TABLE IF EXISTS en_data_center ADD COLUMN IF NOT EXISTS qualite varchar(255); \ No newline at end of file diff --git a/services/api-expositiondonneesentrees/src/main/java/org/mte/numecoeval/expositiondonneesentrees/domain/model/Application.java b/services/api-expositiondonneesentrees/src/main/java/org/mte/numecoeval/expositiondonneesentrees/domain/model/Application.java index cc7bb1c3..fed992c5 100644 --- a/services/api-expositiondonneesentrees/src/main/java/org/mte/numecoeval/expositiondonneesentrees/domain/model/Application.java +++ b/services/api-expositiondonneesentrees/src/main/java/org/mte/numecoeval/expositiondonneesentrees/domain/model/Application.java @@ -22,4 +22,5 @@ public class Application extends AbstractEntree { String sousDomaine; String nomEntite; String nomEquipementPhysique; + String qualite; } diff --git a/services/api-expositiondonneesentrees/src/main/java/org/mte/numecoeval/expositiondonneesentrees/domain/model/DataCenter.java b/services/api-expositiondonneesentrees/src/main/java/org/mte/numecoeval/expositiondonneesentrees/domain/model/DataCenter.java index cc5a9929..a533289d 100644 --- a/services/api-expositiondonneesentrees/src/main/java/org/mte/numecoeval/expositiondonneesentrees/domain/model/DataCenter.java +++ b/services/api-expositiondonneesentrees/src/main/java/org/mte/numecoeval/expositiondonneesentrees/domain/model/DataCenter.java @@ -20,5 +20,5 @@ public class DataCenter extends AbstractEntree { Double pue; String localisation; String nomEntite; - + String qualite; } diff --git a/services/api-expositiondonneesentrees/src/main/java/org/mte/numecoeval/expositiondonneesentrees/domain/model/EquipementPhysique.java b/services/api-expositiondonneesentrees/src/main/java/org/mte/numecoeval/expositiondonneesentrees/domain/model/EquipementPhysique.java index cab21acc..a596d24f 100644 --- a/services/api-expositiondonneesentrees/src/main/java/org/mte/numecoeval/expositiondonneesentrees/domain/model/EquipementPhysique.java +++ b/services/api-expositiondonneesentrees/src/main/java/org/mte/numecoeval/expositiondonneesentrees/domain/model/EquipementPhysique.java @@ -34,4 +34,5 @@ public class EquipementPhysique extends AbstractEntree { Double quantite; String modeUtilisation; Double tauxUtilisation; + String qualite; } diff --git a/services/api-expositiondonneesentrees/src/main/java/org/mte/numecoeval/expositiondonneesentrees/domain/model/EquipementVirtuel.java b/services/api-expositiondonneesentrees/src/main/java/org/mte/numecoeval/expositiondonneesentrees/domain/model/EquipementVirtuel.java index e93006d0..05adcde9 100644 --- a/services/api-expositiondonneesentrees/src/main/java/org/mte/numecoeval/expositiondonneesentrees/domain/model/EquipementVirtuel.java +++ b/services/api-expositiondonneesentrees/src/main/java/org/mte/numecoeval/expositiondonneesentrees/domain/model/EquipementVirtuel.java @@ -24,4 +24,5 @@ public class EquipementVirtuel extends AbstractEntree { String typeEqv; Double capaciteStockage; Double cleRepartition; + String qualite; } diff --git a/services/api-expositiondonneesentrees/src/main/java/org/mte/numecoeval/expositiondonneesentrees/domain/model/OperationNonIT.java b/services/api-expositiondonneesentrees/src/main/java/org/mte/numecoeval/expositiondonneesentrees/domain/model/OperationNonIT.java index 60c1ab2d..aaf89e26 100644 --- a/services/api-expositiondonneesentrees/src/main/java/org/mte/numecoeval/expositiondonneesentrees/domain/model/OperationNonIT.java +++ b/services/api-expositiondonneesentrees/src/main/java/org/mte/numecoeval/expositiondonneesentrees/domain/model/OperationNonIT.java @@ -23,4 +23,5 @@ public class OperationNonIT extends AbstractEntree { String nomCourtDatacenter; String description; Double consoElecAnnuelle; + String qualite; } diff --git a/services/api-expositiondonneesentrees/src/main/java/org/mte/numecoeval/expositiondonneesentrees/domain/ports/input/impl/ImportDonneesEntreePortImpl.java b/services/api-expositiondonneesentrees/src/main/java/org/mte/numecoeval/expositiondonneesentrees/domain/ports/input/impl/ImportDonneesEntreePortImpl.java index 7e0510ef..ef9066ef 100644 --- a/services/api-expositiondonneesentrees/src/main/java/org/mte/numecoeval/expositiondonneesentrees/domain/ports/input/impl/ImportDonneesEntreePortImpl.java +++ b/services/api-expositiondonneesentrees/src/main/java/org/mte/numecoeval/expositiondonneesentrees/domain/ports/input/impl/ImportDonneesEntreePortImpl.java @@ -16,7 +16,6 @@ import org.mte.numecoeval.expositiondonneesentrees.referentiels.generated.api.mo import org.mte.numecoeval.expositiondonneesentrees.referentiels.generated.api.model.TypeItemDTO; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Value; import org.springframework.web.multipart.MultipartFile; import java.io.FileNotFoundException; @@ -54,10 +53,6 @@ public class ImportDonneesEntreePortImpl implements ImportDonneesEntreePort { final Map<String, String> errorMessages; - @Value("#{'${constraints.mode-utilisation}'.split(',')}") - private List<String> modeUtilisationList; - - @Override public ResultatImport importCsv(String nomOrganisation, String nomLot, String dateLot, MultipartFile csvDataCenter, @@ -140,22 +135,33 @@ public class ImportDonneesEntreePortImpl implements ImportDonneesEntreePort { } else { String localisation = CSVHelper.safeString(csvRecord, "localisation"); String nomLongDataCenter = CSVHelper.safeString(csvRecord, "nomLongDatacenter"); + String nomCourtDataCenter = CSVHelper.safeString(csvRecord, "nomCourtDatacenter"); + + String qualite = CSVHelper.safeString(csvRecord, "qualite"); + if (qualite != null) qualite = qualite.toUpperCase(); + + String checkQualite = errorManagementService.checkQualiteDonnees(qualite, "Le datacenter", nomCourtDataCenter); + if (checkQualite != null) { + qualite = null; + rapportImport.getAvertissements().add(checkQualite); + } + var dataCenter = DataCenter.builder() .statutTraitement(STATUT_TRAITEMENT_EN_ATTENTE) .nomLot(nomLot) .dateLot(dateLot) .nomOrganisation(nomOrganisation) - .nomCourtDatacenter(CSVHelper.safeString(csvRecord, "nomCourtDatacenter")) + .nomCourtDatacenter(nomCourtDataCenter) .nomLongDatacenter(nomLongDataCenter) .pue(CSVHelper.safeDouble(csvRecord, "pue")) .localisation(localisation) .nomEntite(CSVHelper.safeString(csvRecord, HEADER_NOM_ENTITE)) .nomSourceDonnee(CSVHelper.safeString(csvRecord, HEADER_NOM_SOURCE_DONNEE)) + .qualite(qualite) .build(); domainModels.add(dataCenter); rapportImport.getErreurs().addAll(errorManagementService.checkDataCenter(dataCenter)); - } }); @@ -177,7 +183,6 @@ public class ImportDonneesEntreePortImpl implements ImportDonneesEntreePort { } rapportImport.setNbrLignesImportees(domainModels.size()); - return Pair.of(rapportImport, domainModels); } @@ -216,6 +221,16 @@ public class ImportDonneesEntreePortImpl implements ImportDonneesEntreePort { Float goTelecharge = goTelechargeStr == null ? null : NumberUtils.toFloat(goTelechargeStr); var tauxUtilisationStr = CSVHelper.safeString(csvRecord, "tauxUtilisation"); Double tauxUtilisation = NumberUtils.isCreatable(tauxUtilisationStr) ? NumberUtils.toDouble(tauxUtilisationStr) : null; + String nomEquipementPhysique = CSVHelper.safeString(csvRecord, LABEL_NOM_EQUIPEMENT_PHYSIQUE, "equipement"); + + String qualite = CSVHelper.safeString(csvRecord, "qualite"); + if (qualite != null) qualite = qualite.toUpperCase(); + + String checkQualite = errorManagementService.checkQualiteDonnees(qualite, "L'équipement physique", nomEquipementPhysique); + if (checkQualite != null) { + qualite = null; + avertissements.add(checkQualite); + } EquipementPhysique equipementToAdd = EquipementPhysique.builder() .statutTraitement(STATUT_TRAITEMENT_EN_ATTENTE) @@ -225,7 +240,7 @@ public class ImportDonneesEntreePortImpl implements ImportDonneesEntreePort { .modele(CSVHelper.safeString(csvRecord, "modele", "refEquipement")) .type(csvRecord.get("type")) .quantite(CSVHelper.safeDouble(csvRecord, "quantite")) - .nomEquipementPhysique(CSVHelper.safeString(csvRecord, LABEL_NOM_EQUIPEMENT_PHYSIQUE, "equipement")) + .nomEquipementPhysique(nomEquipementPhysique) .statut(CSVHelper.safeString(csvRecord, "statut")) .paysDUtilisation(CSVHelper.safeString(csvRecord, "paysDUtilisation")) .utilisateur(CSVHelper.safeString(csvRecord, "utilisateur")) @@ -241,6 +256,7 @@ public class ImportDonneesEntreePortImpl implements ImportDonneesEntreePort { .serveur(refTypeEquipementOpt.get().isServeur()) .nomEntite(CSVHelper.safeString(csvRecord, HEADER_NOM_ENTITE)) .nomSourceDonnee(CSVHelper.safeString(csvRecord, HEADER_NOM_SOURCE_DONNEE)) + .qualite(qualite) .build(); var erreurs = errorManagementService.checkEquipementPhysique(equipementToAdd, refTypeEquipementOpt.get().getRefEquipementParDefaut()); @@ -270,7 +286,6 @@ public class ImportDonneesEntreePortImpl implements ImportDonneesEntreePort { rapportImport.setNbrLignesImportees(domainModels.size()); rapportImport.setAvertissements(avertissements.stream().toList()); - return Pair.of(rapportImport, domainModels); } @@ -296,12 +311,22 @@ public class ImportDonneesEntreePortImpl implements ImportDonneesEntreePort { if (!isRecordOK) { rapportImport.getErreurs().add(errorMessages.get(LIGNE_INCONSISTENTE).formatted(csvEquipementVirtuel.getOriginalFilename(), csvRecord.getRecordNumber() + 1)); } else { + String nomEquipementVirtuel = CSVHelper.safeString(csvRecord, LABEL_NOM_EQUIPEMENT_VIRTUEL, LABEL_NOM_VM); + String qualite = CSVHelper.safeString(csvRecord, "qualite"); + if (qualite != null) qualite = qualite.toUpperCase(); + + String checkQualite = errorManagementService.checkQualiteDonnees(qualite, "L'équipement virtuel", nomEquipementVirtuel); + if (checkQualite != null) { + qualite = null; + rapportImport.getAvertissements().add(checkQualite); + } + EquipementVirtuel equipementVirtuel = EquipementVirtuel.builder() .statutTraitement(STATUT_TRAITEMENT_EN_ATTENTE) .nomLot(nomLot) .dateLot(dateLot) .nomOrganisation(nomOrganisation) - .nomEquipementVirtuel(CSVHelper.safeString(csvRecord, LABEL_NOM_EQUIPEMENT_VIRTUEL, LABEL_NOM_VM)) + .nomEquipementVirtuel(nomEquipementVirtuel) .nomEquipementPhysique(CSVHelper.safeString(csvRecord, LABEL_NOM_EQUIPEMENT_PHYSIQUE)) .nomSourceDonneeEquipementPhysique(CSVHelper.safeString(csvRecord, "nomSourceDonneeEquipementPhysique")) .vCPU(CSVHelper.safeInteger(csvRecord, "vCPU")) @@ -312,6 +337,7 @@ public class ImportDonneesEntreePortImpl implements ImportDonneesEntreePort { .cleRepartition(CSVHelper.safeDouble(csvRecord, "cleRepartition")) .nomEntite(CSVHelper.safeString(csvRecord, HEADER_NOM_ENTITE)) .nomSourceDonnee(CSVHelper.safeString(csvRecord, HEADER_NOM_SOURCE_DONNEE)) + .qualite(qualite) .build(); domainModels.add(equipementVirtuel); @@ -336,7 +362,6 @@ public class ImportDonneesEntreePortImpl implements ImportDonneesEntreePort { } rapportImport.setNbrLignesImportees(domainModels.size()); - return Pair.of(rapportImport, domainModels); } @@ -363,12 +388,21 @@ public class ImportDonneesEntreePortImpl implements ImportDonneesEntreePort { if (!isRecordOK) { rapportImport.getErreurs().add(errorMessages.get(LIGNE_INCONSISTENTE).formatted(csvApplication.getOriginalFilename(), csvRecord.getRecordNumber() + 1)); } else { + String nomApplication = CSVHelper.safeString(csvRecord, "nomApplication"); + String qualite = CSVHelper.safeString(csvRecord, "qualite"); + if (qualite != null) qualite = qualite.toUpperCase(); + + String checkQualite = errorManagementService.checkQualiteDonnees(qualite, "L'application", nomApplication); + if (checkQualite != null) { + qualite = null; + rapportImport.getAvertissements().add(checkQualite); + } Application application = Application.builder() .statutTraitement(STATUT_TRAITEMENT_EN_ATTENTE) .nomLot(nomLot) .dateLot(dateLot) .nomOrganisation(nomOrganisation) - .nomApplication(CSVHelper.safeString(csvRecord, "nomApplication")) + .nomApplication(nomApplication) .typeEnvironnement(CSVHelper.safeString(csvRecord, "typeEnvironnement")) .nomEquipementVirtuel(CSVHelper.safeString(csvRecord, LABEL_NOM_EQUIPEMENT_VIRTUEL, LABEL_NOM_VM)) .nomSourceDonneeEquipementVirtuel(CSVHelper.safeString(csvRecord, "nomSourceDonneeEquipementVirtuel")) @@ -377,6 +411,7 @@ public class ImportDonneesEntreePortImpl implements ImportDonneesEntreePort { .nomEntite(CSVHelper.safeString(csvRecord, HEADER_NOM_ENTITE)) .nomEquipementPhysique(CSVHelper.safeString(csvRecord, LABEL_NOM_EQUIPEMENT_PHYSIQUE)) .nomSourceDonnee(CSVHelper.safeString(csvRecord, HEADER_NOM_SOURCE_DONNEE)) + .qualite(qualite) .build(); domainModels.add(application); @@ -401,7 +436,6 @@ public class ImportDonneesEntreePortImpl implements ImportDonneesEntreePort { } rapportImport.setNbrLignesImportees(domainModels.size()); - return Pair.of(rapportImport, domainModels); } @@ -412,7 +446,6 @@ public class ImportDonneesEntreePortImpl implements ImportDonneesEntreePort { rapportImport.setFichier(csvOperationNonIT.getOriginalFilename()); rapportImport.setType("operation_non_it"); List<TypeItemDTO> typesItem = referentielServicePort.getAllTypesItem(); - Set<String> avertissements = new HashSet<>(); try (Reader reader = new InputStreamReader(csvOperationNonIT.getInputStream())) { Iterable<CSVRecord> records = CSVFormat.DEFAULT.builder() @@ -435,6 +468,16 @@ public class ImportDonneesEntreePortImpl implements ImportDonneesEntreePort { } else if (refTypeItemOpt.isEmpty()) { rapportImport.getErreurs().add(errorMessages.get("TYPE_ITEM_INCONNU").formatted(csvRecord.get("type"), nomItem)); } else { + + String qualite = CSVHelper.safeString(csvRecord, "qualite"); + if (qualite != null) qualite = qualite.toUpperCase(); + + String checkQualite = errorManagementService.checkQualiteDonnees(qualite, "L'item", nomItem); + if (checkQualite != null) { + qualite = null; + rapportImport.getAvertissements().add(checkQualite); + } + OperationNonIT operationToAdd = OperationNonIT.builder() .statutTraitement(STATUT_TRAITEMENT_EN_ATTENTE) .nomLot(nomLot) @@ -450,12 +493,13 @@ public class ImportDonneesEntreePortImpl implements ImportDonneesEntreePort { .nomCourtDatacenter(CSVHelper.safeString(csvRecord, "nomCourtDatacenter", "refDatacenter")) .description(CSVHelper.safeString(csvRecord, "description")) .consoElecAnnuelle(CSVHelper.safeDouble(csvRecord, "consoElecAnnuelle")) + .qualite(qualite) .build(); var erreurs = errorManagementService.checkOperationNonIT(operationToAdd, refTypeItemOpt.get().getRefItemParDefaut()); rapportImport.getErreurs().addAll(erreurs.getKey()); - avertissements.addAll(erreurs.getValue()); + rapportImport.getAvertissements().addAll(erreurs.getValue()); domainModels.add(operationToAdd); } @@ -477,7 +521,6 @@ public class ImportDonneesEntreePortImpl implements ImportDonneesEntreePort { ); } rapportImport.setNbrLignesImportees(domainModels.size()); - rapportImport.setAvertissements(avertissements.stream().toList()); return Pair.of(rapportImport, domainModels); } @@ -536,7 +579,6 @@ public class ImportDonneesEntreePortImpl implements ImportDonneesEntreePort { } rapportImport.setNbrLignesImportees(domainModels.size()); - return Pair.of(rapportImport, domainModels); } @@ -593,7 +635,6 @@ public class ImportDonneesEntreePortImpl implements ImportDonneesEntreePort { } rapportImport.setNbrLignesImportees(domainModels.size()); - return Pair.of(rapportImport, domainModels); } } diff --git a/services/api-expositiondonneesentrees/src/main/java/org/mte/numecoeval/expositiondonneesentrees/infrastructure/config/ApplicationPortConfig.java b/services/api-expositiondonneesentrees/src/main/java/org/mte/numecoeval/expositiondonneesentrees/infrastructure/config/ApplicationPortConfig.java index 3a321cd0..33a0df3c 100644 --- a/services/api-expositiondonneesentrees/src/main/java/org/mte/numecoeval/expositiondonneesentrees/infrastructure/config/ApplicationPortConfig.java +++ b/services/api-expositiondonneesentrees/src/main/java/org/mte/numecoeval/expositiondonneesentrees/infrastructure/config/ApplicationPortConfig.java @@ -10,8 +10,6 @@ import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.Configuration; -import java.util.List; - @Configuration @AllArgsConstructor @ComponentScan(basePackages = "org.mte.numecoeval.expositiondonneesentrees.infrastructure.adapters") @@ -21,10 +19,9 @@ public class ApplicationPortConfig { private ErrorManagementService errorManagementService; private DefaultValueService defaultValueService; private MessageProperties messageProperties; - private List<String> modeUtilisationList; @Bean public ImportDonneesEntreePort importDonneesEntreePort() { - return new ImportDonneesEntreePortImpl(referentielServicePort, errorManagementService, defaultValueService, messageProperties.getMessages(), modeUtilisationList); + return new ImportDonneesEntreePortImpl(referentielServicePort, errorManagementService, defaultValueService, messageProperties.getMessages()); } } diff --git a/services/api-expositiondonneesentrees/src/main/java/org/mte/numecoeval/expositiondonneesentrees/infrastructure/jpa/entity/ApplicationEntity.java b/services/api-expositiondonneesentrees/src/main/java/org/mte/numecoeval/expositiondonneesentrees/infrastructure/jpa/entity/ApplicationEntity.java index 687361b3..c492326e 100644 --- a/services/api-expositiondonneesentrees/src/main/java/org/mte/numecoeval/expositiondonneesentrees/infrastructure/jpa/entity/ApplicationEntity.java +++ b/services/api-expositiondonneesentrees/src/main/java/org/mte/numecoeval/expositiondonneesentrees/infrastructure/jpa/entity/ApplicationEntity.java @@ -1,17 +1,7 @@ package org.mte.numecoeval.expositiondonneesentrees.infrastructure.jpa.entity; -import jakarta.persistence.Column; -import jakarta.persistence.Entity; -import jakarta.persistence.GeneratedValue; -import jakarta.persistence.GenerationType; -import jakarta.persistence.Id; -import jakarta.persistence.SequenceGenerator; -import jakarta.persistence.Table; -import lombok.AllArgsConstructor; -import lombok.EqualsAndHashCode; -import lombok.Getter; -import lombok.NoArgsConstructor; -import lombok.Setter; +import jakarta.persistence.*; +import lombok.*; import lombok.experimental.SuperBuilder; /** @@ -25,50 +15,56 @@ import lombok.experimental.SuperBuilder; @EqualsAndHashCode @Table(name = "EN_APPLICATION") @Entity -public class ApplicationEntity extends AbstractEntreeEntity{ - @Id - @GeneratedValue(generator = "SEQ_EN_APPLICATION", strategy = GenerationType.SEQUENCE) - @SequenceGenerator(name = "SEQ_EN_APPLICATION", sequenceName="SEQ_EN_APPLICATION",allocationSize=1000) - @Column(nullable = false) - private Long id; +public class ApplicationEntity extends AbstractEntreeEntity { + @Id + @GeneratedValue(generator = "SEQ_EN_APPLICATION", strategy = GenerationType.SEQUENCE) + @SequenceGenerator(name = "SEQ_EN_APPLICATION", sequenceName = "SEQ_EN_APPLICATION", allocationSize = 1000) + @Column(nullable = false) + private Long id; - /** - * Nom de l'application - */ - private String nomApplication; + /** + * Nom de l'application + */ + private String nomApplication; - /** - * Type d'environnement de l'instance de l'application - */ - private String typeEnvironnement; + /** + * Type d'environnement de l'instance de l'application + */ + private String typeEnvironnement; - /** - * Référence de l'équipement virtuel rattaché - */ - private String nomEquipementVirtuel; + /** + * Référence de l'équipement virtuel rattaché + */ + private String nomEquipementVirtuel; - /** - * Référence de l'équipement physique rattaché - */ - private String nomEquipementPhysique; + /** + * Référence de l'équipement physique rattaché + */ + private String nomEquipementPhysique; - /** - * Nom de la source de données pour l'équipement physique rattaché - */ - private String nomSourceDonneeEquipementVirtuel; + /** + * Nom de la source de données pour l'équipement physique rattaché + */ + private String nomSourceDonneeEquipementVirtuel; - /** - * Domaine ou catégorie principale de l'application - */ - private String domaine; + /** + * Domaine ou catégorie principale de l'application + */ + private String domaine; - /** - * Domaine ou catégorie secondaire de l'application - */ - private String sousDomaine; + /** + * Domaine ou catégorie secondaire de l'application + */ + private String sousDomaine; + + /** + * Nom de l'entité rattachée à l'application + */ + private String nomEntite; + + /** + * Qualité de la donnée collectée + */ + private String qualite; - /** - * Nom de l'entité rattachée à l'application - */ - private String nomEntite; } diff --git a/services/api-expositiondonneesentrees/src/main/java/org/mte/numecoeval/expositiondonneesentrees/infrastructure/jpa/entity/DataCenterEntity.java b/services/api-expositiondonneesentrees/src/main/java/org/mte/numecoeval/expositiondonneesentrees/infrastructure/jpa/entity/DataCenterEntity.java index 6f9a6f4b..c354056a 100644 --- a/services/api-expositiondonneesentrees/src/main/java/org/mte/numecoeval/expositiondonneesentrees/infrastructure/jpa/entity/DataCenterEntity.java +++ b/services/api-expositiondonneesentrees/src/main/java/org/mte/numecoeval/expositiondonneesentrees/infrastructure/jpa/entity/DataCenterEntity.java @@ -1,12 +1,6 @@ package org.mte.numecoeval.expositiondonneesentrees.infrastructure.jpa.entity; -import jakarta.persistence.Column; -import jakarta.persistence.Entity; -import jakarta.persistence.GeneratedValue; -import jakarta.persistence.GenerationType; -import jakarta.persistence.Id; -import jakarta.persistence.SequenceGenerator; -import jakarta.persistence.Table; +import jakarta.persistence.*; import lombok.AllArgsConstructor; import lombok.Getter; import lombok.NoArgsConstructor; @@ -24,7 +18,7 @@ public class DataCenterEntity extends AbstractEntreeEntity { @Id @GeneratedValue(generator = "SEQ_EN_DATA_CENTER", strategy = GenerationType.SEQUENCE) - @SequenceGenerator(name = "SEQ_EN_DATA_CENTER", sequenceName="SEQ_EN_DATA_CENTER",allocationSize=1000) + @SequenceGenerator(name = "SEQ_EN_DATA_CENTER", sequenceName = "SEQ_EN_DATA_CENTER", allocationSize = 1000) @Column(nullable = false) protected Long id; @@ -33,6 +27,6 @@ public class DataCenterEntity extends AbstractEntreeEntity { private Double pue; private String localisation; private String nomEntite; - + private String qualite; } diff --git a/services/api-expositiondonneesentrees/src/main/java/org/mte/numecoeval/expositiondonneesentrees/infrastructure/jpa/entity/EquipementPhysiqueEntity.java b/services/api-expositiondonneesentrees/src/main/java/org/mte/numecoeval/expositiondonneesentrees/infrastructure/jpa/entity/EquipementPhysiqueEntity.java index 75cd3f41..addeb447 100644 --- a/services/api-expositiondonneesentrees/src/main/java/org/mte/numecoeval/expositiondonneesentrees/infrastructure/jpa/entity/EquipementPhysiqueEntity.java +++ b/services/api-expositiondonneesentrees/src/main/java/org/mte/numecoeval/expositiondonneesentrees/infrastructure/jpa/entity/EquipementPhysiqueEntity.java @@ -49,4 +49,6 @@ public class EquipementPhysiqueEntity extends AbstractEntreeEntity { private Double quantite; private String modeUtilisation; private Double tauxUtilisation; + private String qualite; + } diff --git a/services/api-expositiondonneesentrees/src/main/java/org/mte/numecoeval/expositiondonneesentrees/infrastructure/jpa/entity/EquipementVirtuelEntity.java b/services/api-expositiondonneesentrees/src/main/java/org/mte/numecoeval/expositiondonneesentrees/infrastructure/jpa/entity/EquipementVirtuelEntity.java index 3fb7ec06..77a29ffc 100644 --- a/services/api-expositiondonneesentrees/src/main/java/org/mte/numecoeval/expositiondonneesentrees/infrastructure/jpa/entity/EquipementVirtuelEntity.java +++ b/services/api-expositiondonneesentrees/src/main/java/org/mte/numecoeval/expositiondonneesentrees/infrastructure/jpa/entity/EquipementVirtuelEntity.java @@ -30,4 +30,6 @@ public class EquipementVirtuelEntity extends AbstractEntreeEntity { private String typeEqv; private Double capaciteStockage; private Double cleRepartition; + private String qualite; + } diff --git a/services/api-expositiondonneesentrees/src/main/java/org/mte/numecoeval/expositiondonneesentrees/infrastructure/jpa/entity/OperationNonITEntity.java b/services/api-expositiondonneesentrees/src/main/java/org/mte/numecoeval/expositiondonneesentrees/infrastructure/jpa/entity/OperationNonITEntity.java index 07915c7b..4fee9d7d 100644 --- a/services/api-expositiondonneesentrees/src/main/java/org/mte/numecoeval/expositiondonneesentrees/infrastructure/jpa/entity/OperationNonITEntity.java +++ b/services/api-expositiondonneesentrees/src/main/java/org/mte/numecoeval/expositiondonneesentrees/infrastructure/jpa/entity/OperationNonITEntity.java @@ -32,5 +32,6 @@ public class OperationNonITEntity extends AbstractEntreeEntity { private String nomCourtDatacenter; private String description; private Double consoElecAnnuelle; + private String qualite; } diff --git a/services/api-expositiondonneesentrees/src/main/java/org/mte/numecoeval/expositiondonneesentrees/infrastructure/service/ErrorManagementService.java b/services/api-expositiondonneesentrees/src/main/java/org/mte/numecoeval/expositiondonneesentrees/infrastructure/service/ErrorManagementService.java index 89a8ee0a..4d499bb4 100644 --- a/services/api-expositiondonneesentrees/src/main/java/org/mte/numecoeval/expositiondonneesentrees/infrastructure/service/ErrorManagementService.java +++ b/services/api-expositiondonneesentrees/src/main/java/org/mte/numecoeval/expositiondonneesentrees/infrastructure/service/ErrorManagementService.java @@ -9,10 +9,12 @@ import org.mte.numecoeval.expositiondonneesentrees.domain.model.OperationNonIT; import org.mte.numecoeval.expositiondonneesentrees.domain.ports.output.ReferentielServicePort; import org.mte.numecoeval.expositiondonneesentrees.infrastructure.config.MessageProperties; import org.mte.numecoeval.expositiondonneesentrees.referentiels.generated.api.model.CorrespondanceRefEquipementDTO; +import org.mte.numecoeval.expositiondonneesentrees.utils.Constants; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import java.util.ArrayList; +import java.util.HashSet; import java.util.List; @@ -27,6 +29,22 @@ public class ErrorManagementService { @Value("#{'${constraints.mode-utilisation}'.split(',')}") private List<String> modeUtilisationList; + /** + * Vérifie si la qualité de la donnée d'un item d'un inventaire fait partie de cette enum (BASSE, MOYENNE, HAUTE) + * si ce n'est pas le cas, on lance un avertissement + * la valeur qualite est déjà en majuscule + * + * @param qualite la qualité en majuscule + * @param type le type d'item + * @param nom le nom de l'équipement + * @return l'avertissement associé ou null + */ + public String checkQualiteDonnees(String qualite, String type, String nom) { + if (qualite == null) return null; + if (Constants.QUALITES_DONNEES.contains(qualite)) return null; + return messageProperties.getMessages().get("QUALITE_INVALIDE").formatted(type, nom, qualite); + } + /** * Vérifie si la localisation du datacenter existe dans la table ref_MixElec.pays * @@ -97,13 +115,13 @@ public class ErrorManagementService { erreurs.add(messageProperties.getMessages().get("EQUIPEMENT_DATE_INCOHERENTE").formatted(equipementPhysique.getNomEquipementPhysique())); } - //CA 4.1 - //L'ajout d'un équipement dont le mode d'utilisation est autre que COPE, BYOD ou null + // CA 4.1 + // L'ajout d'un équipement dont le mode d'utilisation est autre que COPE, BYOD ou null if (equipementPhysique.getModeUtilisation() != null && !modeUtilisationList.contains(equipementPhysique.getModeUtilisation())) { avertissements.add(messageProperties.getMessages().get("EQUIPEMENT_MODE_UTILISATION_INCONNU").formatted(equipementPhysique.getModeUtilisation())); } - //CA 5.1 - //L'ajout d'un équipement dont le taux d'utilisation n'est pas compris entre 0 et 1 + // CA 5.1 + // L'ajout d'un équipement dont le taux d'utilisation n'est pas compris entre 0 et 1 Double taux = equipementPhysique.getTauxUtilisation(); if (taux != null && (taux < 0 || taux > 1)) { avertissements.add(messageProperties.getMessages().get("EQUIPEMENT_TAUX_UTILISATION_INVALIDE").formatted(taux)); @@ -121,7 +139,7 @@ public class ErrorManagementService { */ public Pair<List<String>, List<String>> checkOperationNonIT(OperationNonIT operationNonIT, String type) { var erreurs = new ArrayList<String>(); - var avertissements = new ArrayList<String>(); + var avertissements = new HashSet<String>(); // L'ajout d'une operation non it dont le type n'est pas renseigné sort une erreur if (StringUtils.isBlank(type)) { erreurs.add(messageProperties.getMessages().get("ITEM_CORRESPONDANCE_INCONNUE").formatted(operationNonIT.getNomItemNonIT(), operationNonIT.getType())); @@ -138,7 +156,7 @@ public class ErrorManagementService { } } } - return Pair.of(erreurs, avertissements); + return Pair.of(erreurs, avertissements.stream().toList()); } } diff --git a/services/api-expositiondonneesentrees/src/main/java/org/mte/numecoeval/expositiondonneesentrees/utils/Constants.java b/services/api-expositiondonneesentrees/src/main/java/org/mte/numecoeval/expositiondonneesentrees/utils/Constants.java new file mode 100644 index 00000000..ca102130 --- /dev/null +++ b/services/api-expositiondonneesentrees/src/main/java/org/mte/numecoeval/expositiondonneesentrees/utils/Constants.java @@ -0,0 +1,8 @@ +package org.mte.numecoeval.expositiondonneesentrees.utils; + +import java.util.List; + +public class Constants { + public static final List<String> QUALITES_DONNEES = List.of("BASSE", "MOYENNE", "HAUTE"); + +} diff --git a/services/api-expositiondonneesentrees/src/main/resources/application.yaml b/services/api-expositiondonneesentrees/src/main/resources/application.yaml index 2f720681..5bb0c2c1 100644 --- a/services/api-expositiondonneesentrees/src/main/resources/application.yaml +++ b/services/api-expositiondonneesentrees/src/main/resources/application.yaml @@ -90,5 +90,6 @@ messages: EQUIPEMENT_VIRTUEL_INCONNU: "L'équipement virtuel %s n'est supporté par aucun équipement physique" APPLICATION_AVEC_EQUIPEMENT_PHYSIQUE_INCONNU: "L'application %s n'est supporté par aucun équipement physique" APPLICATION_AVEC_EQUIPEMENT_VIRTUEL_INCONNU: "L'application %s n'est supporté par aucun équipement virtuel" + QUALITE_INVALIDE: "%s '%s' possède une valeur de qualité invalide renseignée. La valeur '%s' est ignorée car elle n'est pas l'une de ces valeurs: BASSE, MOYENNE, HAUTE" constraints: mode-utilisation: "BYOD,COPE" diff --git a/services/api-expositiondonneesentrees/src/main/resources/schema.sql b/services/api-expositiondonneesentrees/src/main/resources/schema.sql index da79c386..0e8d5631 100644 --- a/services/api-expositiondonneesentrees/src/main/resources/schema.sql +++ b/services/api-expositiondonneesentrees/src/main/resources/schema.sql @@ -16,18 +16,19 @@ CREATE TABLE IF NOT EXISTS en_donnees_entrees CREATE TABLE IF NOT EXISTS en_data_center ( - id int8 NOT NULL, - date_creation timestamp NULL, - date_update timestamp NULL, - date_lot date NULL, - nom_lot varchar(255) NULL, - nom_organisation varchar(255) NULL, - nom_source_donnee varchar(255) NULL, - localisation varchar(255) NULL, - nom_court_datacenter varchar(255) NULL, - nom_entite varchar(255) NULL, - nom_long_datacenter varchar(255) NULL, - pue float8 NULL, + id int8 NOT NULL, + date_creation timestamp NULL, + date_update timestamp NULL, + date_lot date NULL, + nom_lot varchar(255) NULL, + nom_organisation varchar(255) NULL, + nom_source_donnee varchar(255) NULL, + localisation varchar(255) NULL, + nom_court_datacenter varchar(255) NULL, + nom_entite varchar(255) NULL, + nom_long_datacenter varchar(255) NULL, + pue float8 NULL, + qualite varchar(255) NULL, CONSTRAINT en_data_center_pkey PRIMARY KEY (id) ); @@ -59,6 +60,7 @@ CREATE TABLE IF NOT EXISTS en_equipement_physique utilisateur varchar(255) NULL, mode_utilisation varchar(255) NULL, taux_utilisation float8 NULL, + qualite varchar(255) NULL, CONSTRAINT en_equipement_physique_pkey PRIMARY KEY (id) ); @@ -75,24 +77,26 @@ CREATE TABLE IF NOT EXISTS en_equipement_virtuel nom_equipement_physique varchar(255) NULL, nom_equipement_virtuel varchar(255) NULL, vcpu int4 NULL, + qualite varchar(255) NULL, CONSTRAINT en_equipement_virtuel_pkey PRIMARY KEY (id) ); CREATE TABLE IF NOT EXISTS en_application ( - id int8 NOT NULL, - date_creation timestamp NULL, - date_lot date NULL, - nom_lot varchar(255) NULL, - nom_organisation varchar(255) NULL, - nom_source_donnee varchar(255) NULL, - domaine varchar(255) NULL, - nom_application varchar(255) NULL, - nom_entite varchar(255) NULL, - nom_equipement_virtuel varchar(255) NULL, - nom_equipement_physique varchar(255) NULL, - sous_domaine varchar(255) NULL, - type_environnement varchar(255) NULL, + id int8 NOT NULL, + date_creation timestamp NULL, + date_lot date NULL, + nom_lot varchar(255) NULL, + nom_organisation varchar(255) NULL, + nom_source_donnee varchar(255) NULL, + domaine varchar(255) NULL, + nom_application varchar(255) NULL, + nom_entite varchar(255) NULL, + nom_equipement_virtuel varchar(255) NULL, + nom_equipement_physique varchar(255) NULL, + sous_domaine varchar(255) NULL, + type_environnement varchar(255) NULL, + qualite varchar(255) NULL, CONSTRAINT en_application_pkey PRIMARY KEY (id) ); @@ -116,6 +120,7 @@ CREATE TABLE IF NOT EXISTS en_operation_non_it description varchar(255) NULL, conso_elec_annuelle float8 NULL, statut_traitement varchar(255) NULL, + qualite varchar(255) NULL, CONSTRAINT en_operation_non_it_pkey PRIMARY KEY (id) ); diff --git a/services/api-expositiondonneesentrees/src/main/resources/static/openapi.yaml b/services/api-expositiondonneesentrees/src/main/resources/static/openapi.yaml index e7627b35..afe64246 100644 --- a/services/api-expositiondonneesentrees/src/main/resources/static/openapi.yaml +++ b/services/api-expositiondonneesentrees/src/main/resources/static/openapi.yaml @@ -176,15 +176,15 @@ paths: Les colonnes facultatives sont notées entre parenthèses, toutes les autres sont obligatoires ! <br/> - Le Header du CSV des data centers est : nomCourtDatacenter;nomLongDatacenter;pue;localisation;(nomEntite). <br/> + Le Header du CSV des data centers est : nomCourtDatacenter;nomLongDatacenter;pue;localisation;(nomEntite);(qualite). <br/> - Le Header du CSV des équipements physiques est : nomEquipementPhysique,modele;quantite;nomCourtDatacenter;dateAchat;dateRetrait;type;statut;paysDUtilisation;consoElecAnnuelle;utilisateur;(nomSourceDonnee);(nomEntite);nbCoeur;nbJourUtiliseAn;goTelecharge;(modeUtilisation);(tauxUtilisation). <br/> + Le Header du CSV des équipements physiques est : nomEquipementPhysique,modele;quantite;nomCourtDatacenter;dateAchat;dateRetrait;type;statut;paysDUtilisation;consoElecAnnuelle;utilisateur;(nomSourceDonnee);(nomEntite);nbCoeur;nbJourUtiliseAn;goTelecharge;(modeUtilisation);(tauxUtilisation);(qualite). <br/> - Le Header du CSV des équipements virtuels est : nomEquipementVirtuel;nomEquipementPhysique;(nomSourceDonneeEquipementPhysique);(cleRepartition);vCPU;cluster;(consoElecAnnuelle);(typeEqv);(capaciteStockage);(nomEntite). <br/> + Le Header du CSV des équipements virtuels est : nomEquipementVirtuel;nomEquipementPhysique;(nomSourceDonneeEquipementPhysique);(cleRepartition);vCPU;cluster;(consoElecAnnuelle);(typeEqv);(capaciteStockage);(nomEntite);(qualite). <br/> - Le Header du CSV des application est : nomApplication;typeEnvironnement;(nomEquipementVirtuel);(nomSourceEquipementVirtuel);domaine;sousDomaine;(nomEntite);nomEquipementPhysique;(nomSourceDonnee). <br/> + Le Header du CSV des application est : nomApplication;typeEnvironnement;(nomEquipementVirtuel);(nomSourceEquipementVirtuel);domaine;sousDomaine;(nomEntite);nomEquipementPhysique;(nomSourceDonnee);(qualite). <br/> - Le Header du CSV des opérations non IT est : nomItemNonIT;quantite;type;dureeDeVie;localisation;(nomEntite);(nomSourceDonnee);nomCourtDatacenter;description;consoElecAnnuelle. <br/> + Le Header du CSV des opérations non IT est : nomItemNonIT;quantite;type;dureeDeVie;localisation;(nomEntite);(nomSourceDonnee);nomCourtDatacenter;description;consoElecAnnuelle;(qualite). <br/> Le Header du CSV de la messagerie est : nombreMailEmis;nombreMailEmisXDestinataires;volumeTotalMailEmis;MoisAnnee;(nomEntite). <br/> @@ -422,6 +422,9 @@ components: nomSourceDonnee: description: "Nom de la source de la donnée" type: string + qualite: + description: "Qualite de la donnée collectée (BASSE, MOYENNE ou HAUTE)" + type: string EquipementPhysiqueRest: description: Représentation d'un équipement physique dans NumEcoEval properties: @@ -485,6 +488,9 @@ components: description: "" items: $ref: "#/components/schemas/EquipementVirtuelRest" + qualite: + description: "Qualite de la donnée collectée (BASSE, MOYENNE ou HAUTE)" + type: string EquipementVirtuelRest: description: Représentation d'un équipement virtuel dans NumEcoEval properties: @@ -534,6 +540,9 @@ components: Consommation électrique annuelle de l'équipement virtuel. type: number format: double + qualite: + description: "Qualite de la donnée collectée (BASSE, MOYENNE ou HAUTE)" + type: string ApplicationRest: description: Représentation d'une application dans NumEcoEval properties: @@ -561,6 +570,9 @@ components: nomSourceDonneeEquipementVirtuel: description: "Nom de la source de la donnée pour l'équipement virtuel" type: string + qualite: + description: "Qualite de la donnée collectée (BASSE, MOYENNE ou HAUTE)" + type: string OperationNonITRest: description: Représentation d'une opération non IT dans NumEcoEval properties: @@ -595,6 +607,9 @@ components: description: "" type: number format: double + qualite: + description: "Qualite de la donnée collectée (BASSE, MOYENNE ou HAUTE)" + type: string MessagerieRest: description: Représentation d'éléments de messagerie dans NumEcoEval properties: diff --git a/services/api-expositiondonneesentrees/src/test/java/org/mte/numecoeval/expositiondonneesentrees/domain/port/input/ImportDonneesEntreePortImplTest.java b/services/api-expositiondonneesentrees/src/test/java/org/mte/numecoeval/expositiondonneesentrees/domain/port/input/ImportDonneesEntreePortImplTest.java index 1bad50ad..d76085c3 100644 --- a/services/api-expositiondonneesentrees/src/test/java/org/mte/numecoeval/expositiondonneesentrees/domain/port/input/ImportDonneesEntreePortImplTest.java +++ b/services/api-expositiondonneesentrees/src/test/java/org/mte/numecoeval/expositiondonneesentrees/domain/port/input/ImportDonneesEntreePortImplTest.java @@ -34,12 +34,10 @@ class ImportDonneesEntreePortImplTest { ErrorManagementService errorManagementService; DefaultValueService defaultValueService; - private List<String> modeUtilisationList; - @BeforeEach public void init() { MockitoAnnotations.openMocks(this); - importDonneesEntreePort = new ImportDonneesEntreePortImpl(referentielServicePort, errorManagementService, defaultValueService, errorMessages, modeUtilisationList); + importDonneesEntreePort = new ImportDonneesEntreePortImpl(referentielServicePort, errorManagementService, defaultValueService, errorMessages); } @Test diff --git a/services/api-expositiondonneesentrees/src/test/java/org/mte/numecoeval/expositiondonneesentrees/infrastructure/service/ErrorManagementServiceTest.java b/services/api-expositiondonneesentrees/src/test/java/org/mte/numecoeval/expositiondonneesentrees/infrastructure/service/ErrorManagementServiceTest.java index dc59827e..0a12a87f 100644 --- a/services/api-expositiondonneesentrees/src/test/java/org/mte/numecoeval/expositiondonneesentrees/infrastructure/service/ErrorManagementServiceTest.java +++ b/services/api-expositiondonneesentrees/src/test/java/org/mte/numecoeval/expositiondonneesentrees/infrastructure/service/ErrorManagementServiceTest.java @@ -164,4 +164,23 @@ public class ErrorManagementServiceTest { Pair<List<String>, List<String>> actual = errorManagementService.checkOperationNonIT(eq1, eq1.getType()); Assertions.assertEquals(0, actual.getKey().size()); } + + @Test + void importDataCenter_with_QualiteGoodValue_shouldWork() { + Assertions.assertNull(errorManagementService.checkQualiteDonnees("BASSE", "L'équipement physique", "eq1")); + } + + @Test + void importDataCenter_with_QualiteNull_shouldNotReportWarning() { + Assertions.assertNull(errorManagementService.checkQualiteDonnees(null, "L'équipement physique", "eq1")); + } + + @Test + void importDataCenter_with_QualiteWrongValue_shouldReturnReportWith1Warning() { + Assertions.assertEquals( + "L'équipement physique 'eq1' possède une valeur de qualité invalide renseignée. La valeur 'SUPER BASSE' est ignorée car elle n'est pas l'une de ces valeurs: BASSE, MOYENNE, HAUTE", + errorManagementService.checkQualiteDonnees("SUPER BASSE", "L'équipement physique", "eq1") + ); + } + } diff --git a/services/calculs/src/main/java/org/mte/numecoeval/calculs/domain/data/entree/Application.java b/services/calculs/src/main/java/org/mte/numecoeval/calculs/domain/data/entree/Application.java index 74624e54..dfb8e864 100644 --- a/services/calculs/src/main/java/org/mte/numecoeval/calculs/domain/data/entree/Application.java +++ b/services/calculs/src/main/java/org/mte/numecoeval/calculs/domain/data/entree/Application.java @@ -8,17 +8,18 @@ import java.time.LocalDate; @Data @Builder public class Application { - private String nomApplication; - private String typeEnvironnement; - private String nomEquipementVirtuel; - private String nomSourceDonneeEquipementVirtuel; + private String nomApplication; + private String typeEnvironnement; + private String nomEquipementVirtuel; + private String nomSourceDonneeEquipementVirtuel; - private String nomEquipementPhysique; - private String domaine; - private String sousDomaine; - private String nomLot; - private LocalDate dateLot; - private String nomOrganisation; - private String nomEntite; - private String nomSourceDonnee; + private String nomEquipementPhysique; + private String domaine; + private String sousDomaine; + private String nomLot; + private LocalDate dateLot; + private String nomOrganisation; + private String nomEntite; + private String nomSourceDonnee; + private String qualite; } diff --git a/services/calculs/src/main/java/org/mte/numecoeval/calculs/domain/data/entree/DataCenter.java b/services/calculs/src/main/java/org/mte/numecoeval/calculs/domain/data/entree/DataCenter.java index 48255278..ace69d69 100644 --- a/services/calculs/src/main/java/org/mte/numecoeval/calculs/domain/data/entree/DataCenter.java +++ b/services/calculs/src/main/java/org/mte/numecoeval/calculs/domain/data/entree/DataCenter.java @@ -9,13 +9,14 @@ import java.time.LocalDate; @Builder public class DataCenter { - private String nomCourtDatacenter; - private String nomLongDatacenter; - private Double pue; - private String localisation; - private String nomLot; - private LocalDate dateLot; - private String nomOrganisation; - private String nomEntite; - private String nomSourceDonnee; + private String nomCourtDatacenter; + private String nomLongDatacenter; + private Double pue; + private String localisation; + private String nomLot; + private LocalDate dateLot; + private String nomOrganisation; + private String nomEntite; + private String nomSourceDonnee; + private String qualite; } diff --git a/services/calculs/src/main/java/org/mte/numecoeval/calculs/domain/data/entree/EquipementPhysique.java b/services/calculs/src/main/java/org/mte/numecoeval/calculs/domain/data/entree/EquipementPhysique.java index 5a054b52..d3fa26e6 100644 --- a/services/calculs/src/main/java/org/mte/numecoeval/calculs/domain/data/entree/EquipementPhysique.java +++ b/services/calculs/src/main/java/org/mte/numecoeval/calculs/domain/data/entree/EquipementPhysique.java @@ -36,4 +36,5 @@ public class EquipementPhysique { private Integer nbTotalVCPU; private String modeUtilisation; private Double tauxUtilisation; + private String qualite; } diff --git a/services/calculs/src/main/java/org/mte/numecoeval/calculs/domain/data/entree/EquipementVirtuel.java b/services/calculs/src/main/java/org/mte/numecoeval/calculs/domain/data/entree/EquipementVirtuel.java index dad80c1a..6b9efa6f 100644 --- a/services/calculs/src/main/java/org/mte/numecoeval/calculs/domain/data/entree/EquipementVirtuel.java +++ b/services/calculs/src/main/java/org/mte/numecoeval/calculs/domain/data/entree/EquipementVirtuel.java @@ -9,19 +9,20 @@ import java.time.LocalDate; @Data @Builder public class EquipementVirtuel { - private Long id; - private String nomEquipementVirtuel; - private String nomEquipementPhysique; - private String nomSourceDonneeEquipementPhysique; - private Integer vCPU; - private String cluster; - private String nomLot; - private LocalDate dateLot; - private String nomOrganisation; - private String nomEntite; - private String nomSourceDonnee; - private Double consoElecAnnuelle; - private String typeEqv; - private Double capaciteStockage; - private Double cleRepartition; + private Long id; + private String nomEquipementVirtuel; + private String nomEquipementPhysique; + private String nomSourceDonneeEquipementPhysique; + private Integer vCPU; + private String cluster; + private String nomLot; + private LocalDate dateLot; + private String nomOrganisation; + private String nomEntite; + private String nomSourceDonnee; + private Double consoElecAnnuelle; + private String typeEqv; + private Double capaciteStockage; + private Double cleRepartition; + private String qualite; } diff --git a/services/calculs/src/main/java/org/mte/numecoeval/calculs/domain/data/entree/OperationNonIT.java b/services/calculs/src/main/java/org/mte/numecoeval/calculs/domain/data/entree/OperationNonIT.java index c20ed65c..0c9f54e2 100644 --- a/services/calculs/src/main/java/org/mte/numecoeval/calculs/domain/data/entree/OperationNonIT.java +++ b/services/calculs/src/main/java/org/mte/numecoeval/calculs/domain/data/entree/OperationNonIT.java @@ -24,5 +24,5 @@ public class OperationNonIT { private String nomOrganisation; private String nomSourceDonnee; private String statut; - + private String qualite; } diff --git a/services/calculs/src/main/java/org/mte/numecoeval/calculs/domain/data/indicateurs/ImpactApplication.java b/services/calculs/src/main/java/org/mte/numecoeval/calculs/domain/data/indicateurs/ImpactApplication.java index 7f615258..37eac607 100644 --- a/services/calculs/src/main/java/org/mte/numecoeval/calculs/domain/data/indicateurs/ImpactApplication.java +++ b/services/calculs/src/main/java/org/mte/numecoeval/calculs/domain/data/indicateurs/ImpactApplication.java @@ -35,4 +35,5 @@ public class ImpactApplication { Double impactUnitaire; Double consoElecMoyenne; Long idEntree; + String qualite; } diff --git a/services/calculs/src/main/java/org/mte/numecoeval/calculs/domain/data/indicateurs/ImpactEquipementPhysique.java b/services/calculs/src/main/java/org/mte/numecoeval/calculs/domain/data/indicateurs/ImpactEquipementPhysique.java index 610d6bd2..84ef4b30 100644 --- a/services/calculs/src/main/java/org/mte/numecoeval/calculs/domain/data/indicateurs/ImpactEquipementPhysique.java +++ b/services/calculs/src/main/java/org/mte/numecoeval/calculs/domain/data/indicateurs/ImpactEquipementPhysique.java @@ -33,4 +33,5 @@ public class ImpactEquipementPhysique { Double consoElecMoyenne; Double quantite; String statutEquipementPhysique; + String qualite; } diff --git a/services/calculs/src/main/java/org/mte/numecoeval/calculs/domain/data/indicateurs/ImpactEquipementVirtuel.java b/services/calculs/src/main/java/org/mte/numecoeval/calculs/domain/data/indicateurs/ImpactEquipementVirtuel.java index 03965dc4..9eae4a74 100644 --- a/services/calculs/src/main/java/org/mte/numecoeval/calculs/domain/data/indicateurs/ImpactEquipementVirtuel.java +++ b/services/calculs/src/main/java/org/mte/numecoeval/calculs/domain/data/indicateurs/ImpactEquipementVirtuel.java @@ -32,4 +32,5 @@ public class ImpactEquipementVirtuel { Double impactUnitaire; Double consoElecMoyenne; Long idEntree; + String qualite; } diff --git a/services/calculs/src/main/java/org/mte/numecoeval/calculs/domain/data/indicateurs/ImpactOperationNonIT.java b/services/calculs/src/main/java/org/mte/numecoeval/calculs/domain/data/indicateurs/ImpactOperationNonIT.java index deb3ee08..2177daec 100644 --- a/services/calculs/src/main/java/org/mte/numecoeval/calculs/domain/data/indicateurs/ImpactOperationNonIT.java +++ b/services/calculs/src/main/java/org/mte/numecoeval/calculs/domain/data/indicateurs/ImpactOperationNonIT.java @@ -32,4 +32,5 @@ public class ImpactOperationNonIT { Double impactUnitaire; Double consoElecMoyenne; Double quantite; + String qualite; } diff --git a/services/calculs/src/main/java/org/mte/numecoeval/calculs/domain/data/indicateurs/ImpactReseau.java b/services/calculs/src/main/java/org/mte/numecoeval/calculs/domain/data/indicateurs/ImpactReseau.java index b439f953..5922d030 100644 --- a/services/calculs/src/main/java/org/mte/numecoeval/calculs/domain/data/indicateurs/ImpactReseau.java +++ b/services/calculs/src/main/java/org/mte/numecoeval/calculs/domain/data/indicateurs/ImpactReseau.java @@ -31,5 +31,4 @@ public class ImpactReseau { String unite; Double impactUnitaire; String reference; - } diff --git a/services/calculs/src/main/java/org/mte/numecoeval/calculs/domain/port/input/service/impl/CalculImpactApplicationServiceImpl.java b/services/calculs/src/main/java/org/mte/numecoeval/calculs/domain/port/input/service/impl/CalculImpactApplicationServiceImpl.java index a73c5271..f4da1f2f 100644 --- a/services/calculs/src/main/java/org/mte/numecoeval/calculs/domain/port/input/service/impl/CalculImpactApplicationServiceImpl.java +++ b/services/calculs/src/main/java/org/mte/numecoeval/calculs/domain/port/input/service/impl/CalculImpactApplicationServiceImpl.java @@ -72,6 +72,7 @@ public class CalculImpactApplicationServiceImpl implements CalculImpactApplicati .sousDomaine(demandeCalcul.getApplication().getSousDomaine()) .impactUnitaire(null) .consoElecMoyenne(null) + .qualite(demandeCalcul.getApplication().getQualite()) .build(); } @@ -117,6 +118,7 @@ public class CalculImpactApplicationServiceImpl implements CalculImpactApplicati .trace(TraceUtils.getTraceFromTraceur(TraceCalculImpactApplicationUtils.buildTrace(demandeCalcul))) .impactUnitaire(resultCalcul.valeurImpact) .consoElecMoyenne(resultCalcul.consoElecMoyenne) + .qualite(demandeCalcul.getApplication().getQualite()) .build(); } diff --git a/services/calculs/src/main/java/org/mte/numecoeval/calculs/domain/port/input/service/impl/CalculImpactEquipementPhysiqueServiceImpl.java b/services/calculs/src/main/java/org/mte/numecoeval/calculs/domain/port/input/service/impl/CalculImpactEquipementPhysiqueServiceImpl.java index 91a7cd60..5c0d96c4 100644 --- a/services/calculs/src/main/java/org/mte/numecoeval/calculs/domain/port/input/service/impl/CalculImpactEquipementPhysiqueServiceImpl.java +++ b/services/calculs/src/main/java/org/mte/numecoeval/calculs/domain/port/input/service/impl/CalculImpactEquipementPhysiqueServiceImpl.java @@ -132,6 +132,7 @@ public class CalculImpactEquipementPhysiqueServiceImpl implements CalculImpactEq .dateLot(demandeCalcul.getEquipementPhysique().getDateLot()) .nomEntite(demandeCalcul.getEquipementPhysique().getNomEntite()) .nomOrganisation(demandeCalcul.getEquipementPhysique().getNomOrganisation()) + .qualite(demandeCalcul.getEquipementPhysique().getQualite()) .build(); } @@ -156,6 +157,7 @@ public class CalculImpactEquipementPhysiqueServiceImpl implements CalculImpactEq .dateLot(demandeCalcul.getEquipementPhysique().getDateLot()) .nomEntite(demandeCalcul.getEquipementPhysique().getNomEntite()) .nomOrganisation(demandeCalcul.getEquipementPhysique().getNomOrganisation()) + .qualite(demandeCalcul.getEquipementPhysique().getQualite()) .trace(TraceUtils.getTraceFromTraceur(TraceCalculImpactEquipementPhysiqueUtils.buildTraceErreur(exception))) .build(); } diff --git a/services/calculs/src/main/java/org/mte/numecoeval/calculs/domain/port/input/service/impl/CalculImpactEquipementVirtuelServiceImpl.java b/services/calculs/src/main/java/org/mte/numecoeval/calculs/domain/port/input/service/impl/CalculImpactEquipementVirtuelServiceImpl.java index f06f606d..06915a5d 100644 --- a/services/calculs/src/main/java/org/mte/numecoeval/calculs/domain/port/input/service/impl/CalculImpactEquipementVirtuelServiceImpl.java +++ b/services/calculs/src/main/java/org/mte/numecoeval/calculs/domain/port/input/service/impl/CalculImpactEquipementVirtuelServiceImpl.java @@ -86,6 +86,7 @@ public class CalculImpactEquipementVirtuelServiceImpl implements CalculImpactEqu .impactUnitaire(result.valeurImpactUnitaire()) .consoElecMoyenne(result.consoElecMoyenne()) .idEntree(demandeCalcul.getEquipementVirtuel().getId()) + .qualite(demandeCalcul.getEquipementVirtuel().getQualite()) .build(); } @@ -109,6 +110,7 @@ public class CalculImpactEquipementVirtuelServiceImpl implements CalculImpactEqu .impactUnitaire(null) .consoElecMoyenne(null) .idEntree(demandeCalcul.getEquipementVirtuel().getId()) + .qualite(demandeCalcul.getEquipementVirtuel().getQualite()) .build(); } diff --git a/services/calculs/src/main/java/org/mte/numecoeval/calculs/domain/port/input/service/impl/CalculImpactOperationNonITServiceImpl.java b/services/calculs/src/main/java/org/mte/numecoeval/calculs/domain/port/input/service/impl/CalculImpactOperationNonITServiceImpl.java index 2b4449e2..c7e4414b 100644 --- a/services/calculs/src/main/java/org/mte/numecoeval/calculs/domain/port/input/service/impl/CalculImpactOperationNonITServiceImpl.java +++ b/services/calculs/src/main/java/org/mte/numecoeval/calculs/domain/port/input/service/impl/CalculImpactOperationNonITServiceImpl.java @@ -193,6 +193,7 @@ public class CalculImpactOperationNonITServiceImpl implements CalculImpactOperat .dateLot(demandeCalcul.getOperationNonIT().getDateLot()) .nomEntite(demandeCalcul.getOperationNonIT().getNomEntite()) .nomOrganisation(demandeCalcul.getOperationNonIT().getNomOrganisation()) + .qualite(demandeCalcul.getOperationNonIT().getQualite()) .build(); if (traceCalculImpactOperationNonIT.getConsoElecAnMoyenne() != null) { result.setConsoElecMoyenne(traceCalculImpactOperationNonIT.getConsoElecAnMoyenne().getValeur()); @@ -221,6 +222,7 @@ public class CalculImpactOperationNonITServiceImpl implements CalculImpactOperat .nomEntite(demandeCalcul.getOperationNonIT().getNomEntite()) .nomOrganisation(demandeCalcul.getOperationNonIT().getNomOrganisation()) .trace(TraceUtils.getTraceFromTraceur(TraceCalculImpactOperationNonITUtils.buildTraceErreur(exception))) + .qualite(demandeCalcul.getOperationNonIT().getQualite()) .build(); } diff --git a/services/common/src/main/resources/static/api-event-calculs-async-openapi.yaml b/services/common/src/main/resources/static/api-event-calculs-async-openapi.yaml index c5c6fe06..80d49ce7 100644 --- a/services/common/src/main/resources/static/api-event-calculs-async-openapi.yaml +++ b/services/common/src/main/resources/static/api-event-calculs-async-openapi.yaml @@ -296,6 +296,9 @@ components: type: number format: double default: 1.0 + qualite: + description: "Qualité de la donnée" + type: string consoElecAnnuelle: description: "" type: number @@ -324,6 +327,9 @@ components: localisation: description: "" type: string + qualite: + description: "Qualité de la donnée" + type: string EquipementVirtuelRest: description: Représentation d'un équipement virtuel dans NumEcoEval properties: @@ -359,6 +365,9 @@ components: Consommation électrique annuelle de l'équipement virtuel. type: number format: double + qualite: + description: "Qualité de la donnée" + type: string ApplicationRest: description: Représentation d'une application dans NumEcoEval properties: @@ -380,6 +389,9 @@ components: sousDomaine: description: "" type: string + qualite: + description: "Qualité de la donnée" + type: string OperationNonITRest: description: Représentation d'opérations non IT dans NumEcoEval properties: @@ -416,6 +428,9 @@ components: description: "" type: number format: double + qualite: + description: "Qualité de la donnée" + type: string MessagerieRest: description: Représentation d'éléments de messagerie dans NumEcoEval properties: @@ -649,6 +664,9 @@ components: format: int32 statutEquipementPhysique: type: string + qualite: + description: "Qualité de la donnée" + type: string IndicateurImpactReseauRest: type: object properties: @@ -680,6 +698,9 @@ components: impactUnitaire: type: number format: double + qualite: + description: "Qualité de la donnée" + type: string IndicateurImpactEquipementVirtuelRest: description: Indicateur d'impact écologique d'un équipement virtuel type: object @@ -723,6 +744,9 @@ components: consoElecMoyenne: type: number format: double + qualite: + description: "Qualité de la donnée" + type: string IndicateurImpactApplicationRest: description: Impact d'application properties: @@ -771,6 +795,9 @@ components: consoElecMoyenne: type: number format: double + qualite: + description: "Qualité de la donnée" + type: string IndicateurImpactOperationNonITRest: type: object properties: @@ -814,6 +841,9 @@ components: format: int32 statutItem: type: string + qualite: + description: "Qualité de la donnée" + type: string IndicateurImpactMessagerieRest: description: Indicateur d'impact de messagerie properties: diff --git a/services/common/src/main/resources/static/api-event-calculs-openapi.yaml b/services/common/src/main/resources/static/api-event-calculs-openapi.yaml index 05125bcc..b066c967 100644 --- a/services/common/src/main/resources/static/api-event-calculs-openapi.yaml +++ b/services/common/src/main/resources/static/api-event-calculs-openapi.yaml @@ -264,6 +264,9 @@ components: nbTotalVCPU: description: "Nombre total de VCPU (correspond à la somme des vCPU définis dans les équipements virtuels) ou null si un des équipements virtuels n'a pas de vCPU - Utilisé dans les traitements" type: integer + qualite: + description: "Qualité de la donnée" + type: string dataCenter: $ref: "#/components/schemas/DataCenterRest" DataCenterRest: @@ -282,6 +285,9 @@ components: localisation: description: "" type: string + qualite: + description: "Qualité de la donnée" + type: string EquipementVirtuelRest: description: Représentation d'un équipement virtuel dans NumEcoEval properties: @@ -317,6 +323,9 @@ components: Consommation électrique annuelle de l'équipement virtuel. type: number format: double + qualite: + description: "Qualité de la donnée" + type: string ApplicationRest: description: Représentation d'une application dans NumEcoEval properties: @@ -338,6 +347,9 @@ components: sousDomaine: description: "" type: string + qualite: + description: "Qualité de la donnée" + type: string MessagerieRest: description: Représentation d'éléments de messagerie dans NumEcoEval properties: @@ -520,6 +532,9 @@ components: format: int32 statutEquipementPhysique: type: string + qualite: + description: "Qualité de la donnée" + type: string IndicateurImpactReseauRest: type: object properties: @@ -551,6 +566,9 @@ components: impactUnitaire: type: number format: double + qualite: + description: "Qualité de la donnée" + type: string IndicateurImpactEquipementVirtuelRest: description: Indicateur d'impact écologique d'un équipement virtuel type: object @@ -594,6 +612,9 @@ components: consoElecMoyenne: type: number format: double + qualite: + description: "Qualité de la donnée" + type: string IndicateurImpactApplicationRest: description: Impact d'application properties: @@ -642,6 +663,9 @@ components: consoElecMoyenne: type: number format: double + qualite: + description: "Qualité de la donnée" + type: string IndicateurImpactMessagerieRest: description: Indicateur d'impact de messagerie properties: diff --git a/services/common/src/main/resources/static/asyncapi_equipement_physique.yaml b/services/common/src/main/resources/static/asyncapi_equipement_physique.yaml index 704d8b3c..ce45ab1f 100644 --- a/services/common/src/main/resources/static/asyncapi_equipement_physique.yaml +++ b/services/common/src/main/resources/static/asyncapi_equipement_physique.yaml @@ -154,6 +154,9 @@ components: nomSourceDonnee: description: "Nom de la source de la donnée" type: string + qualite: + description: "Qualité de la donnée" + type: string nomLot: description: "Nom du lot rattaché" type: string @@ -215,6 +218,9 @@ components: nomOrganisation: description: "" type: string + qualite: + description: "Qualité de la donnée" + type: string CorrespondanceRefEquipementDTO: type: object properties: diff --git a/services/common/src/main/resources/static/asyncapi_operation_non_it.yaml b/services/common/src/main/resources/static/asyncapi_operation_non_it.yaml index 594eb70c..bd130605 100644 --- a/services/common/src/main/resources/static/asyncapi_operation_non_it.yaml +++ b/services/common/src/main/resources/static/asyncapi_operation_non_it.yaml @@ -120,6 +120,9 @@ components: nomOrganisation: description: "" type: string + qualite: + description: "Qualité de la donnée" + type: string TypeItemDTO: type: object properties: -- GitLab