Tony CHEMIT pushed to branch develop-9.0.x at ultreiaio / ird-observe Commits: 118fdb99 by Tony Chemit at 2023-01-25T11:39:02+01:00 Procédure de calcul qui ne détecte pas les données modifiées - Closes #2615 - - - - - 56d21588 by Tony Chemit at 2023-01-25T11:39:02+01:00 Avdth - Review some Floating Object mappings (sort them and re-add some removed ones...) - See #2612 - - - - - e04df8f4 by Tony Chemit at 2023-01-25T11:39:02+01:00 Avdth - Improve code around adding observed system 102 on activity with at least on catch on baits - - - - - 123ae78e by Tony Chemit at 2023-01-25T11:47:47+01:00 Avdth - update documentation - - - - - 6 changed files: - core/persistence/avdth/src/main/java/fr/ird/observe/persistence/avdth/data/ImportEngineExecution.java - core/persistence/avdth/src/main/java/fr/ird/observe/persistence/avdth/data/ImportReferentialContext.java - core/persistence/avdth/src/main/java/fr/ird/observe/persistence/avdth/data/logbook/FloatingObjectReader.java - core/persistence/java/src/main/java/fr/ird/observe/entities/data/ps/common/TripConsolidateEngine.java - src/site/markdown/avdth/logbook.md - src/site/markdown/avdth/referential.md Changes: ===================================== core/persistence/avdth/src/main/java/fr/ird/observe/persistence/avdth/data/ImportEngineExecution.java ===================================== @@ -22,7 +22,6 @@ package fr.ird.observe.persistence.avdth.data; * #L% */ -import fr.ird.observe.services.service.data.ps.AvdthDataImportConfiguration; import fr.ird.observe.entities.ObserveTopiaApplicationContext; import fr.ird.observe.entities.data.ps.common.Trip; import fr.ird.observe.entities.data.ps.localmarket.Survey; @@ -36,10 +35,11 @@ import fr.ird.observe.entities.data.ps.logbook.WellPlan; import fr.ird.observe.persistence.avdth.Query; import fr.ird.observe.persistence.avdth.data.common.TripReader; import fr.ird.observe.persistence.avdth.data.logbook.ActivityReader; +import fr.ird.observe.services.service.data.ps.AvdthDataImportConfiguration; import io.ultreia.java4all.util.TimeLog; +import io.ultreia.java4all.util.sql.SqlScriptWriter; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; -import io.ultreia.java4all.util.sql.SqlScriptWriter; import java.io.IOException; import java.sql.ResultSet; @@ -191,18 +191,19 @@ public class ImportEngineExecution extends ImportEngine { protected void loadCatch(Activity activity, String activityId, List<Object> activityPrimaryKey) throws SQLException { int catchesCount = 0; tables.catchTableReader.setPrimaryKey(activityPrimaryKey); - boolean baitsFishingOnly = false; + // If one catch is on baits, then will add observed system 102 on activity + // See https://gitlab.com/ultreiaio/ird-observe/-/issues/1883#note_617802311 + boolean addBaitsFishingOnlyObservedSystem = false; while (tables.catchTableReader.hasNext()) { ResultSet catchRow = tables.catchTableReader.next(); int speciesCode = catchRow.getInt(6); if (speciesCode >= 700 && speciesCode < 720) { - baitsFishingOnly = true; + addBaitsFishingOnlyObservedSystem = true; } catchWriter.intercept(catchRow, activityId, catchesCount++); } - if (baitsFishingOnly) { - // See #1883 - context.addBaitOnlyObservedSystem(activity); + if (addBaitsFishingOnlyObservedSystem) { + activity.addObservedSystem(context.getObservedSystem102()); } } ===================================== core/persistence/avdth/src/main/java/fr/ird/observe/persistence/avdth/data/ImportReferentialContext.java ===================================== @@ -24,7 +24,6 @@ package fr.ird.observe.persistence.avdth.data; import com.google.common.collect.ImmutableMap; import com.google.common.collect.Maps; -import fr.ird.observe.entities.data.ps.logbook.Activity; import fr.ird.observe.entities.referential.common.DataQuality; import fr.ird.observe.entities.referential.common.FpaZone; import fr.ird.observe.entities.referential.common.Harbour; @@ -134,6 +133,7 @@ public class ImportReferentialContext { private ObservedSystem observedSystem0; private SpeciesCache speciesCache; private ObservedSystem observedSystem20; + private ObservedSystem observedSystem102; private ObservedSystem observedSystem103; private ObservedSystem observedSystem110; private VesselActivity vesselActivity6; @@ -207,6 +207,7 @@ public class ImportReferentialContext { observedSystem0 = observedSystem.get("0"); observedSystem20 = observedSystem.get("20"); observedSystem103 = observedSystem.get("103"); + observedSystem102 = observedSystem.get("102"); observedSystem110 = observedSystem.get("110"); // dcp @@ -502,6 +503,10 @@ public class ImportReferentialContext { return observedSystem0; } + public ObservedSystem getObservedSystem102() { + return observedSystem102; + } + public ObservedSystem getObservedSystem103() { return observedSystem103; } @@ -550,10 +555,6 @@ public class ImportReferentialContext { return code == null ? null : fpaZone.get(code); } - public void addBaitOnlyObservedSystem(Activity entity) { - entity.addObservedSystem(getObservedSystem("102")); - } - public ObjectOperation getObjectOperation(String objectOperationCode) { return objectOperation.get(objectOperationCode); } ===================================== core/persistence/avdth/src/main/java/fr/ird/observe/persistence/avdth/data/logbook/FloatingObjectReader.java ===================================== @@ -67,19 +67,21 @@ public class FloatingObjectReader extends DataReader<FloatingObject> { .put("0", "99") .put("1", "99") .put("2", "99") - .put("3", "99") - .put("4", "99") - .put("10", "99") - .put("14", "99") + + .put("3", "2") + .put("4", "2") + .put("5", "1") + .put("6", "4") + .put("7", "99") .put("8", "99") .put("9", "99") + .put("10", "99") .put("12", "99") .put("13", "99") + .put("14", "99") .put("15", "99") - .put("5", "1") - .put("6", "4") .put("22", "4") .put("23", "1") .put("24", "4") @@ -101,8 +103,16 @@ public class FloatingObjectReader extends DataReader<FloatingObject> { * If for a given {@code ACTIVITE.C_OPERA}, no value is found here, this means that there is no buoy to create. */ public static final Map<String, String> TRANSMITTING_BUOY_OPERATION_CODE_MAPPING = ImmutableMap.<String, String>builder() + .put("3", "1") // Visite | Visite + .put("4", "1") // Visite | Visite .put("5", "3") // Mise à l'eau | null ou 3 Mise à l'eau .put("6", "2") // Retrait | null ou 2 Récupération + .put("7", "1") // Visite | Visite + .put("10", "1")// Visite | Visite + .put("12", "1")// Visite | Visite + .put("13", "1")// Visite | Visite + .put("14", "1")// Visite | Visite + .put("15", "1")// Visite | Visite .put("23", "3") // Mise à l'eau | 3 Mise à l'eau .put("24", "2") // Retrait | 2 Récupération .put("25", "3") // Visite | 3 Mise à l'eau @@ -128,15 +138,15 @@ public class FloatingObjectReader extends DataReader<FloatingObject> { "2", "3", "4", + "6", + "7", + "8", "9", "10", "12", + "13", "14", "15", - "7", - "8", - "13", - "6", "22", "24", "25", ===================================== core/persistence/java/src/main/java/fr/ird/observe/entities/data/ps/common/TripConsolidateEngine.java ===================================== @@ -38,7 +38,6 @@ import fr.ird.observe.dto.data.ps.observation.consolidate.ActivityConsolidateRes import fr.ird.observe.dto.data.ps.observation.consolidate.FloatingObjectConsolidateRequest; import fr.ird.observe.dto.referential.I18nReferentialHelper; import fr.ird.observe.dto.referential.ReferentialLocale; -import fr.ird.observe.dto.referential.ps.common.VesselActivityReference; import fr.ird.observe.entities.ObserveTopiaDaoSupplier; import fr.ird.observe.entities.ToolkitTopiaPersistenceContextSupport; import fr.ird.observe.entities.data.ps.localmarket.Batch; @@ -178,9 +177,8 @@ public class TripConsolidateEngine { String activityPrefix = String.format("%s - Activity [%s/%s] ", routePrefix, ++activityIndex, activityMax); - boolean floatingObjectEmpty = activity.isFloatingObjectEmpty(); - if (!VesselActivityReference.isSetOperation(activity) && floatingObjectEmpty) { - log.debug(String.format("%s Skip activity (No set nor dcp found): %s", activityPrefix, activity.getTopiaId())); + if (activity.getSetSize() == 0 && activity.isFloatingObjectEmpty()) { + log.info(String.format("%s Skip activity (No set nor floating object found): %s", activityPrefix, activity.getTopiaId())); continue; } ===================================== src/site/markdown/avdth/logbook.md ===================================== @@ -69,11 +69,13 @@ On effecute la somme pour toutes les activités AVDTH du jour * Note 4 ### <a name="n_0_4"></a> -Voir mapping [REF_VESSEL_ACTIVITY_TYPE](./referential.html#REF_VESSEL_ACTIVITY_TYPE) si code 13 (dans ObServe) alors on ajoute un dcp +Voir mapping [REF_VESSEL_ACTIVITY_TYPE](./referential.html#REF_VESSEL_ACTIVITY_TYPE) * Note 5 ### <a name="n_0_5"></a> -Voir mapping [REF_SCHOOL_TYPE](./referential.html#REF_SCHOOL_TYPE) +Voir mapping [REF_SCHOOL_TYPE](./referential.html#REF_SCHOOL_TYPE). + +**À noter que cette donée est renseigné uniquement si ```ACTIVITE_C_OPERA in (0, 1, 2, 14)```** * Note 6 ### <a name="n_0_6"></a> @@ -103,6 +105,36 @@ Donnée non persistée dans ObServe, (voir https://gitlab.com/ultreiaio/ird-obse ### <a name="n_0_12"></a> Mapping sur le code. +### Cas des activités de pêche à partir de ```ACTIVITE.C_OPERA``` + +Pour les activités de pêche, on rajoute des données sur l'activité pour décrire la calée. + +| ACTIVITE.C_OPERA | SetSuccessStatus [1](#n_5_1) | ReasonForNullSet [1](#n_5_1) | SetCount | SchoolType | +|-----------------:|-----------------------------:|------------------------------:|:---------|:-----------| +| 0 | 0 | 0 | (1) | (2) | +| 1 | 1 | non renseigné | (1) | (2) | +| 2 | 2 | non renseigné | (1) | (2) | +| 14 (3) | 2 | non renseigné | (1) | (2) | + +* Note 1 +#### <a name="n_5_1"></a> + +On utilise le code du réferentiel ObServe + +* Note 2 +#### <a name="n_5_2"></a> + +* Note 3 +#### <a name="n_5_3"></a> + +* Note 4 +#### <a name="n_5_4"></a> + +0. +1. calculé depuis ```ACTIVITE.V_NB_OP``` +2. calculé depuis ```ACTIVITE.C_TBANC``` +3. dans ce cas on rajoute aussi le système observé ***110** + ### Ajout d'un DCP On ajoute un DCP uniquement pour une activité avec **vesselActivity.code == 13**. ===================================== src/site/markdown/avdth/referential.md ===================================== @@ -223,8 +223,8 @@ Mapping type d'activité | 1 | 6 (1) | | 2 | 6 (1) | | 14 | 6 (1) (3) | -| 3 | 2 | -| 4 | 1 | +| 3 | 2 (ou 102) (4) | +| 4 | 1 (ou 101) (4) | | 5 | 13 (2) | | 6 | 13 (2) | | 22 | 13 (2) | @@ -251,11 +251,13 @@ Mapping type d'activité | 19 | 29 | | 20 | 30 | | 35 | 31 | -| 36 | 99 **FIXME** | +| 36 | 36 (5) | 1. **Seule une activité de code 6 permet la création de captures**. 2. **Seule une activité de code 13 permet la création de DCP**.. 3. On ajoute en plus un système observé **110** et **setSuccessStatus** à **2**. +4. Si un dcp est trouvé alors on utilise un type d'activité introduit en version *9.1.0* qui permet l'ajout de dcp. +5. Le type d'activité a été ajouté lors de la migration de la version *9.1.0* (avant on utilisait *99*) ### REF_SCHOOL_TYPE View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/compare/a16389e169267c82132b980ad... -- View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/compare/a16389e169267c82132b980ad... You're receiving this email because of your account on gitlab.com.