Tony CHEMIT pushed to branch develop-9.0.x at ultreiaio / ird-observe Commits: 63e0cfb5 by Tony Chemit at 2022-12-05T13:55:28+01:00 Gestion des codes AVDTH 40 et 41 par le migrateur AVDTH - Closes #2568 - - - - - 5 changed files: - core/persistence/resources/src/main/java/fr/ird/observe/persistence/avdth/data/ImportReferentialContext.java - core/persistence/resources/src/main/java/fr/ird/observe/persistence/avdth/data/logbook/FloatingObjectReader.java - core/persistence/resources/src/main/java/fr/ird/observe/persistence/avdth/referential/AvdthReferentialImportContext.java - core/persistence/resources/src/main/java/fr/ird/observe/persistence/avdth/referential/AvdthReferentialImportResult.java - core/persistence/resources/src/main/java/fr/ird/observe/persistence/avdth/referential/interceptors/VesselActivityInterceptor.java Changes: ===================================== core/persistence/resources/src/main/java/fr/ird/observe/persistence/avdth/data/ImportReferentialContext.java ===================================== @@ -46,6 +46,7 @@ import fr.ird.observe.entities.referential.ps.common.SampleType; import fr.ird.observe.entities.referential.ps.common.SchoolType; import fr.ird.observe.entities.referential.ps.common.SpeciesFate; import fr.ird.observe.entities.referential.ps.common.TransmittingBuoyOperation; +import fr.ird.observe.entities.referential.ps.common.TransmittingBuoyOwnership; import fr.ird.observe.entities.referential.ps.common.TransmittingBuoyType; import fr.ird.observe.entities.referential.ps.common.VesselActivity; import fr.ird.observe.entities.referential.ps.common.WeightCategory; @@ -99,6 +100,7 @@ public class ImportReferentialContext { private Map<String, ObservedSystem> observedSystem; private Map<String, ObjectOperation> objectOperation; private Map<String, TransmittingBuoyOperation> transmittingBuoyOperation; + private Map<String, TransmittingBuoyOwnership> transmittingBuoyOwnership; private Map<String, TransmittingBuoyType> transmittingBuoyType; private Map<String, SampleQuality> sampleQuality; private Map<String, SampleType> sampleType; @@ -213,6 +215,7 @@ public class ImportReferentialContext { Map<String, ObjectMaterial> objectMaterial = Maps.uniqueIndex(referential.getObjectMaterial(), ObjectMaterial::getTopiaId); transmittingBuoyOperation = Maps.uniqueIndex(referential.getTransmittingBuoyOperation(), TransmittingBuoyOperation::getCode); transmittingBuoyOperation1 = transmittingBuoyOperation.get("1"); + transmittingBuoyOwnership = Maps.uniqueIndex(referential.getTransmittingBuoyOwnership(), TransmittingBuoyOwnership::getCode); transmittingBuoyType = Maps.uniqueIndex(referential.getTransmittingBuoyType(), TransmittingBuoyType::getCode); transmittingBuoyType98 = transmittingBuoyType.get("98"); objectMaterialFOB = objectMaterial.get("fr.ird.referential.ps.common.ObjectMaterial#0#1.3"); @@ -551,6 +554,14 @@ public class ImportReferentialContext { return Objects.requireNonNull(transmittingBuoyType, String.format("Can't find transmittingBuoyType with code: %s", buoyTypeCode)); } + public TransmittingBuoyOwnership getTransmittingBuoyOwnershipByVesselActivityCode(String vesselActivityCode) { + String transmittingBuoyOwnershipCode = FloatingObjectReader.TRANSMITTING_BUOY_OWNERSHIP_CODE_MAPPING.get(vesselActivityCode); + if (transmittingBuoyOwnershipCode == null) { + return null; + } + return transmittingBuoyOwnership.get(transmittingBuoyOwnershipCode); + } + public ObservedSystem getObservedSystem(String objectTypeCode, String buoyTypeCode) { if (objectTypeCode.equals("999")) { if (buoyTypeCode.equals("999")) { ===================================== core/persistence/resources/src/main/java/fr/ird/observe/persistence/avdth/data/logbook/FloatingObjectReader.java ===================================== @@ -30,6 +30,7 @@ import fr.ird.observe.entities.referential.ps.common.ObjectMaterial; import fr.ird.observe.entities.referential.ps.common.ObjectOperation; import fr.ird.observe.entities.referential.ps.common.ObservedSystem; import fr.ird.observe.entities.referential.ps.common.TransmittingBuoyOperation; +import fr.ird.observe.entities.referential.ps.common.TransmittingBuoyOwnership; import fr.ird.observe.entities.referential.ps.common.TransmittingBuoyType; import fr.ird.observe.entities.referential.ps.common.VesselActivity; import fr.ird.observe.persistence.avdth.data.DataReader; @@ -80,6 +81,9 @@ public class FloatingObjectReader extends DataReader<FloatingObject> { .put("32", "8") .put("33", "11") .put("34", "4") + // See https://gitlab.com/ultreiaio/ird-observe/-/issues/2568 + .put("40", "11") + .put("41", "11") .build(); /** * To get TransmittingBuoy.TransmittingBuoyOperation code from avdth ACTIVITE.C_OPERA code. @@ -104,8 +108,11 @@ public class FloatingObjectReader extends DataReader<FloatingObject> { .put("26", "2") // Visite | 2 Récupération | W_ARRIVING | .put("29", "1") // Visite | 1 Visite | W_ARRIVING | .put("32", "3") // Modif ou renfor | 3 Mise à l'eau | W_ARR + W_LEA | - .put("33", "4") // Perte | 4 Perte signal | W_ARRIVING | codes 11 et 4 à créer ; matériaux sur W_ARRIVING par convention, comme pour Visite + .put("33", "4") // Perte | 4 Perte signal | W_ARRIVING | codes 11 et 4 à créer ; matériaux sur W_ARRIVING par convention, comme pour Visite + appartenance 3 - Ce bateau .put("34", "2") // Retrait | 2 Récupération | W_ARRIVING | rattacher cette balise à un FOB de type '2-2-4-4 Bouée émettrice seule' + // See https://gitlab.com/ultreiaio/ird-observe/-/issues/2568 + .put("40", "4") // Perte | 4 Perte signal | W_ARRIVING | rattacher cette balise à un FOB de type '1-1 DFAD' + appartenance 3 - Ce bateau + .put("41", "5") // Arret commandé de la transmission | 5 Fin d'utilisation | W_ARRIVING | rattacher cette balise à un FOB de type '1-1 DFAD' + appartenance 3 - Ce bateau .build(); /** * Is floatingObjectPart on leaving from avdth ACTIVITE.C_OPERA. @@ -135,7 +142,9 @@ public class FloatingObjectReader extends DataReader<FloatingObject> { "31", "32", "33", - "34"); + "34", + "40", + "41"); /** * To get TransmittingBuoy.TransmittingBuoyType code from avdth ACTIVITE.C_TYP_BALISE code. */ @@ -183,6 +192,14 @@ public class FloatingObjectReader extends DataReader<FloatingObject> { .put("98", "99") .put("99", "99") .build(); + /** + * To get TransmittingBuoy.transmittingBuoyOwnership code from avdth ACTIVITE.C_OPERA code. + */ + public static final Map<String, String> TRANSMITTING_BUOY_OWNERSHIP_CODE_MAPPING = Map.of( + "33", "3", + "40", "3", + "41", "3" + ); /** * To get associated observedSystem code from avdth ACTIVITE.C_TYP_OBJET code. */ @@ -318,6 +335,10 @@ public class FloatingObjectReader extends DataReader<FloatingObject> { transmittingBuoy.setLatitude(dataContext.getActivity().getLatitude()); transmittingBuoy.setLongitude(dataContext.getActivity().getLongitude()); } + TransmittingBuoyOwnership transmittingBuoyOwnership = dataContext.getTransmittingBuoyOwnershipByVesselActivityCode(vesselActivityCode); + if (transmittingBuoyOwnership != null) { + transmittingBuoy.setTransmittingBuoyOwnership(transmittingBuoyOwnership); + } entity.addTransmittingBuoy(transmittingBuoy); } } else if (addBuoyFromObservedSystem) { ===================================== core/persistence/resources/src/main/java/fr/ird/observe/persistence/avdth/referential/AvdthReferentialImportContext.java ===================================== @@ -22,7 +22,6 @@ package fr.ird.observe.persistence.avdth.referential; * #L% */ -import fr.ird.observe.services.service.data.ps.AvdthReferentialImportConfiguration; import fr.ird.observe.entities.ObserveTopiaApplicationContext; import fr.ird.observe.entities.ObserveTopiaPersistenceContext; import fr.ird.observe.entities.referential.ReferentialEntity; @@ -44,6 +43,7 @@ import fr.ird.observe.entities.referential.ps.common.SampleType; import fr.ird.observe.entities.referential.ps.common.SchoolType; import fr.ird.observe.entities.referential.ps.common.SpeciesFate; import fr.ird.observe.entities.referential.ps.common.TransmittingBuoyOperation; +import fr.ird.observe.entities.referential.ps.common.TransmittingBuoyOwnership; import fr.ird.observe.entities.referential.ps.common.TransmittingBuoyType; import fr.ird.observe.entities.referential.ps.common.VesselActivity; import fr.ird.observe.entities.referential.ps.common.WeightCategory; @@ -66,11 +66,12 @@ import fr.ird.observe.persistence.avdth.referential.interceptors.TransmittingBuo import fr.ird.observe.persistence.avdth.referential.interceptors.VesseInterceptor; import fr.ird.observe.persistence.avdth.referential.interceptors.VesselActivityInterceptor; import fr.ird.observe.persistence.avdth.referential.interceptors.WeightCategoryInterceptor; +import fr.ird.observe.services.service.data.ps.AvdthReferentialImportConfiguration; import fr.ird.observe.spi.context.ReferentialDtoEntityContext; import fr.ird.observe.spi.decoration.DecoratorService; +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.Closeable; import java.io.IOException; @@ -170,6 +171,7 @@ public class AvdthReferentialImportContext implements Closeable { prepare(ObservedSystem.SPI, persistenceContext, result::setObservedSystem); prepare(TransmittingBuoyOperation.SPI, persistenceContext, result::setTransmittingBuoyOperation); prepare(TransmittingBuoyType.SPI, persistenceContext, result::setTransmittingBuoyType); + prepare(TransmittingBuoyOwnership.SPI, persistenceContext, result::setTransmittingBuoyOwnership); prepare(AcquisitionStatus.SPI, persistenceContext, result::setAcquisitionStatus); prepare(Person.SPI, persistenceContext, result::setPerson); prepare(ReasonForNoFishing.SPI, persistenceContext, result::setReasonForNoFishing); ===================================== core/persistence/resources/src/main/java/fr/ird/observe/persistence/avdth/referential/AvdthReferentialImportResult.java ===================================== @@ -28,7 +28,6 @@ import fr.ird.observe.entities.referential.common.Harbour; import fr.ird.observe.entities.referential.common.LengthMeasureMethod; import fr.ird.observe.entities.referential.common.Ocean; import fr.ird.observe.entities.referential.common.Person; -import fr.ird.observe.entities.referential.ps.common.Program; import fr.ird.observe.entities.referential.common.SizeMeasureType; import fr.ird.observe.entities.referential.common.Species; import fr.ird.observe.entities.referential.common.Vessel; @@ -38,12 +37,14 @@ import fr.ird.observe.entities.referential.ps.common.AcquisitionStatus; import fr.ird.observe.entities.referential.ps.common.ObjectMaterial; import fr.ird.observe.entities.referential.ps.common.ObjectOperation; import fr.ird.observe.entities.referential.ps.common.ObservedSystem; +import fr.ird.observe.entities.referential.ps.common.Program; import fr.ird.observe.entities.referential.ps.common.ReasonForNoFishing; import fr.ird.observe.entities.referential.ps.common.ReasonForNullSet; import fr.ird.observe.entities.referential.ps.common.SampleType; import fr.ird.observe.entities.referential.ps.common.SchoolType; import fr.ird.observe.entities.referential.ps.common.SpeciesFate; import fr.ird.observe.entities.referential.ps.common.TransmittingBuoyOperation; +import fr.ird.observe.entities.referential.ps.common.TransmittingBuoyOwnership; import fr.ird.observe.entities.referential.ps.common.TransmittingBuoyType; import fr.ird.observe.entities.referential.ps.common.VesselActivity; import fr.ird.observe.entities.referential.ps.common.WeightCategory; @@ -99,6 +100,7 @@ public class AvdthReferentialImportResult { private List<ObjectOperation> objectOperation; private List<ObjectMaterial> objectMaterial; private List<TransmittingBuoyOperation> transmittingBuoyOperation; + private List<TransmittingBuoyOwnership> transmittingBuoyOwnership; private List<AcquisitionStatus> acquisitionStatus; private List<ReasonForNoFishing> reasonForNoFishing; private List<ReasonForNullSet> reasonForNullSet; @@ -321,6 +323,14 @@ public class AvdthReferentialImportResult { this.transmittingBuoyType = transmittingBuoyType; } + public List<TransmittingBuoyOwnership> getTransmittingBuoyOwnership() { + return transmittingBuoyOwnership; + } + + public void setTransmittingBuoyOwnership(List<TransmittingBuoyOwnership> transmittingBuoyOwnership) { + this.transmittingBuoyOwnership = transmittingBuoyOwnership; + } + public List<FpaZone> getFpaZone() { return fpaZone; } ===================================== core/persistence/resources/src/main/java/fr/ird/observe/persistence/avdth/referential/interceptors/VesselActivityInterceptor.java ===================================== @@ -85,6 +85,9 @@ public class VesselActivityInterceptor extends ReferentialInterceptor<VesselActi .put("35", "31") //FIXME .put("36", "99") + // See https://gitlab.com/ultreiaio/ird-observe/-/issues/2568 + .put("40", "13") + .put("41", "13") .build(); @SuppressWarnings("SpellCheckingInspection") View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/commit/63e0cfb5c2506990b1f18c1be3... -- View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/commit/63e0cfb5c2506990b1f18c1be3... You're receiving this email because of your account on gitlab.com.