Tony CHEMIT pushed to branch develop at ultreiaio / ird-observe

Commits:

5 changed files:

Changes:

  • services-local/src/main/java/fr/ird/observe/services/local/service/data/ll/common/TripLonglineServiceLocal.java
    ... ... @@ -46,6 +46,8 @@ import fr.ird.observe.services.local.service.data.TripMapDtoFactory;
    46 46
     import fr.ird.observe.services.service.data.ll.common.TripLonglineService;
    
    47 47
     import fr.ird.observe.services.service.sql.DeleteSqlScriptProducerRequest;
    
    48 48
     import fr.ird.observe.services.service.sql.SqlScriptProducerService;
    
    49
    +import org.apache.logging.log4j.LogManager;
    
    50
    +import org.apache.logging.log4j.Logger;
    
    49 51
     import org.hashids.Hashids;
    
    50 52
     import org.nuiton.topia.persistence.script.SqlScriptConsumer;
    
    51 53
     import org.nuiton.topia.persistence.script.TopiaSqlScript;
    
    ... ... @@ -63,6 +65,34 @@ import java.util.List;
    63 65
     public class TripLonglineServiceLocal extends ObserveServiceLocal implements TripLonglineService {
    
    64 66
     
    
    65 67
         private SqlScriptProducerService sqlScriptProducerService;
    
    68
    +    private static final Logger log = LogManager.getLogger(TripLonglineServiceLocal.class);
    
    69
    +
    
    70
    +    public static boolean copyTripLogbookMetaData(TripLongline oldTripLongline, TripLongline newTripLongline) {
    
    71
    +        if (!newTripLongline.isLogbookAvailability()) {
    
    72
    +            // copy logbook meta-data to new trip
    
    73
    +            log.info(String.format("Add logbook metadata to trip: %s", newTripLongline.getTopiaId()));
    
    74
    +            newTripLongline.setLogbookAvailability(true);
    
    75
    +            newTripLongline.setLogbookComment(oldTripLongline.getLogbookComment());
    
    76
    +            newTripLongline.setLogbookDataEntryOperator(oldTripLongline.getLogbookDataEntryOperator());
    
    77
    +            newTripLongline.setLogbookDataQuality(oldTripLongline.getLogbookDataQuality());
    
    78
    +            return true;
    
    79
    +        }
    
    80
    +        return false;
    
    81
    +    }
    
    82
    +
    
    83
    +    public static boolean copyTripObservationMetaData(TripLongline oldTripLongline, TripLongline newTripLongline) {
    
    84
    +        if (!newTripLongline.isObservationsAvailability()) {
    
    85
    +            // copy observation meta-data to new trip
    
    86
    +            log.info(String.format("Add observation metadata to trip: %s", newTripLongline.getTopiaId()));
    
    87
    +            newTripLongline.setObservationsAvailability(true);
    
    88
    +            newTripLongline.setObservationsComment(oldTripLongline.getObservationsComment());
    
    89
    +            newTripLongline.setObservationMethod(oldTripLongline.getObservationMethod());
    
    90
    +            newTripLongline.setObservationsDataEntryOperator(oldTripLongline.getObservationsDataEntryOperator());
    
    91
    +            newTripLongline.setObservationsDataQuality(oldTripLongline.getObservationsDataQuality());
    
    92
    +            return true;
    
    93
    +        }
    
    94
    +        return false;
    
    95
    +    }
    
    66 96
     
    
    67 97
         @Override
    
    68 98
         public void setServiceContext(ObserveServiceContextLocal serviceContext) {
    

  • services-local/src/main/java/fr/ird/observe/services/local/service/data/ll/logbook/ActivityLonglineLogbookSampleServiceLocal.java
    ... ... @@ -30,8 +30,11 @@ import fr.ird.observe.entities.data.ll.common.TripLongline;
    30 30
     import fr.ird.observe.entities.data.ll.logbook.ActivityLonglineLogbook;
    
    31 31
     import fr.ird.observe.entities.data.ll.logbook.SampleLogbook;
    
    32 32
     import fr.ird.observe.services.local.service.ObserveServiceLocal;
    
    33
    +import fr.ird.observe.services.local.service.data.ll.common.TripLonglineServiceLocal;
    
    33 34
     import fr.ird.observe.services.service.data.ll.logbook.ActivityLonglineLogbookSampleService;
    
    34 35
     
    
    36
    +import java.util.Objects;
    
    37
    +
    
    35 38
     /**
    
    36 39
      * @author Tony Chemit - dev@tchemit.fr
    
    37 40
      */
    
    ... ... @@ -81,11 +84,13 @@ public class ActivityLonglineLogbookSampleServiceLocal extends ObserveServiceLoc
    81 84
             if (!sampleLogbookId.equals(sampleLogbook.getTopiaId())) {
    
    82 85
                 throw new DataNotFoundException(SampleLogbookDto.class, sampleLogbookId);
    
    83 86
             }
    
    84
    -        TripLongline tripLongline = TRIP_LONGLINE_SPI.loadEntity(getTopiaPersistenceContext(), newTripId);
    
    87
    +        TripLongline oldTripLongline = getTopiaPersistenceContext().getMultipleAssociationParent(TripLongline.class, TripLongline.PROPERTY_ACTIVITY_LONGLINE_LOGBOOK, oldActivity.getTopiaId());
    
    88
    +        TripLongline newTripLongline = TRIP_LONGLINE_SPI.loadEntity(getTopiaPersistenceContext(), newTripId);
    
    85 89
             oldActivity.setSample(null);
    
    86
    -        tripLongline.addSample(sampleLogbook);
    
    90
    +        newTripLongline.addSample(sampleLogbook);
    
    91
    +        TripLonglineServiceLocal.copyTripLogbookMetaData(oldTripLongline, newTripLongline);
    
    87 92
             saveEntity(oldActivity);
    
    88
    -        saveEntity(tripLongline);
    
    93
    +        saveEntity(newTripLongline);
    
    89 94
         }
    
    90 95
     
    
    91 96
         @Override
    

  • services-local/src/main/java/fr/ird/observe/services/local/service/data/ll/logbook/ActivityLonglineLogbookServiceLocal.java
    ... ... @@ -37,11 +37,13 @@ import fr.ird.observe.entities.data.ll.logbook.ActivityLonglineLogbook;
    37 37
     import fr.ird.observe.entities.data.ll.logbook.ActivityLonglineLogbookTopiaDao;
    
    38 38
     import fr.ird.observe.entities.referential.common.DataQuality;
    
    39 39
     import fr.ird.observe.services.local.service.ObserveServiceLocal;
    
    40
    +import fr.ird.observe.services.local.service.data.ll.common.TripLonglineServiceLocal;
    
    40 41
     import fr.ird.observe.services.service.data.ll.logbook.ActivityLonglineLogbookService;
    
    41 42
     
    
    42 43
     import java.util.Calendar;
    
    43 44
     import java.util.Date;
    
    44 45
     import java.util.List;
    
    46
    +import java.util.Objects;
    
    45 47
     
    
    46 48
     /**
    
    47 49
      * @author Tony Chemit - dev@tchemit.fr
    
    ... ... @@ -143,13 +145,8 @@ public class ActivityLonglineLogbookServiceLocal extends ObserveServiceLocal imp
    143 145
                 ActivityLonglineLogbook activityLongline = ACTIVITY_LONGLINE_LOGBOOK_SPI.loadEntity(getTopiaPersistenceContext(), activityId);
    
    144 146
                 newTripLongline.addActivityLonglineLogbook(activityLongline);
    
    145 147
             }
    
    146
    -        if (oldTripLongline != null && !newTripLongline.isLogbookAvailability()) {
    
    147
    -            // copy logbook meta-data to new trip
    
    148
    -            newTripLongline.setLogbookAvailability(true);
    
    149
    -            newTripLongline.setLogbookComment(oldTripLongline.getLogbookComment());
    
    150
    -            newTripLongline.setLogbookDataEntryOperator(oldTripLongline.getLogbookDataEntryOperator());
    
    151
    -            newTripLongline.setLogbookDataQuality(oldTripLongline.getLogbookDataQuality());
    
    152
    -        }
    
    148
    +        TripLonglineServiceLocal.copyTripLogbookMetaData(Objects.requireNonNull(oldTripLongline), newTripLongline);
    
    149
    +
    
    153 150
             saveEntity(newTripLongline);
    
    154 151
         }
    
    155 152
     
    

  • services-local/src/main/java/fr/ird/observe/services/local/service/data/ll/logbook/TripLonglineSampleLogbookServiceLocal.java
    ... ... @@ -37,6 +37,7 @@ import fr.ird.observe.entities.data.ll.common.TripLonglineTopiaDao;
    37 37
     import fr.ird.observe.entities.data.ll.logbook.ActivityLonglineLogbook;
    
    38 38
     import fr.ird.observe.entities.data.ll.logbook.SampleLogbook;
    
    39 39
     import fr.ird.observe.services.local.service.ObserveServiceLocal;
    
    40
    +import fr.ird.observe.services.local.service.data.ll.common.TripLonglineServiceLocal;
    
    40 41
     import fr.ird.observe.services.service.data.ll.logbook.TripLonglineSampleLogbookService;
    
    41 42
     
    
    42 43
     import java.util.Calendar;
    
    ... ... @@ -133,13 +134,17 @@ public class TripLonglineSampleLogbookServiceLocal extends ObserveServiceLocal i
    133 134
     
    
    134 135
         @Override
    
    135 136
         public void moveToActivityLongline(String newActivityId, String sampleLogbookId) {
    
    136
    -        TripLongline tripLongline = getTopiaPersistenceContext().getMultipleAssociationParent(TripLongline.class, TripLongline.PROPERTY_SAMPLE, sampleLogbookId);
    
    137
    +        TripLongline oldTripLongline = getTopiaPersistenceContext().getMultipleAssociationParent(TripLongline.class, TripLongline.PROPERTY_SAMPLE, sampleLogbookId);
    
    138
    +        TripLongline newTripLongline = getTopiaPersistenceContext().getMultipleAssociationParent(TripLongline.class, TripLongline.PROPERTY_ACTIVITY_LONGLINE_LOGBOOK, newActivityId);
    
    137 139
             SampleLogbook sampleLogbook = SAMPLE_LOGBOOK_SPI.loadEntity(getTopiaPersistenceContext(), sampleLogbookId);
    
    138
    -        tripLongline.removeSample(sampleLogbook);
    
    140
    +        oldTripLongline.removeSample(sampleLogbook);
    
    139 141
             ActivityLonglineLogbook newActivity = ACTIVITY_LONGLINE_LOGBOOK_SPI.loadEntity(getTopiaPersistenceContext(), newActivityId);
    
    140 142
             //WARNING need to recreate entity, so the topia id will change!
    
    141 143
             newActivity.setSample(getTopiaPersistenceContext().getSampleLogbookDao().create(sampleLogbook));
    
    142
    -        saveEntity(tripLongline);
    
    144
    +        if (TripLonglineServiceLocal.copyTripLogbookMetaData(oldTripLongline, newTripLongline)) {
    
    145
    +            saveEntity(newTripLongline);
    
    146
    +        }
    
    147
    +        saveEntity(oldTripLongline);
    
    143 148
             saveEntity(newActivity);
    
    144 149
         }
    
    145 150
     
    

  • services-local/src/main/java/fr/ird/observe/services/local/service/data/ll/observation/ActivityLonglineObsServiceLocal.java
    ... ... @@ -37,11 +37,13 @@ import fr.ird.observe.entities.data.ll.logbook.ActivityLonglineLogbook;
    37 37
     import fr.ird.observe.entities.data.ll.observation.ActivityLonglineObs;
    
    38 38
     import fr.ird.observe.entities.data.ll.observation.ActivityLonglineObsTopiaDao;
    
    39 39
     import fr.ird.observe.services.local.service.ObserveServiceLocal;
    
    40
    +import fr.ird.observe.services.local.service.data.ll.common.TripLonglineServiceLocal;
    
    40 41
     import fr.ird.observe.services.service.data.ll.observation.ActivityLonglineObsService;
    
    41 42
     
    
    42 43
     import java.util.Calendar;
    
    43 44
     import java.util.Date;
    
    44 45
     import java.util.List;
    
    46
    +import java.util.Objects;
    
    45 47
     
    
    46 48
     /**
    
    47 49
      * @author Tony Chemit - dev@tchemit.fr
    
    ... ... @@ -147,14 +149,8 @@ public class ActivityLonglineObsServiceLocal extends ObserveServiceLocal impleme
    147 149
             if (activityUsed) {
    
    148 150
                 saveEntity(oldTripLongline);
    
    149 151
             }
    
    150
    -        if (oldTripLongline != null && !newTripLongline.isObservationsAvailability()) {
    
    151
    -            // copy observation meta-data to new trip
    
    152
    -            newTripLongline.setObservationsAvailability(true);
    
    153
    -            newTripLongline.setObservationsComment(oldTripLongline.getObservationsComment());
    
    154
    -            newTripLongline.setObservationMethod(oldTripLongline.getObservationMethod());
    
    155
    -            newTripLongline.setObservationsDataEntryOperator(oldTripLongline.getObservationsDataEntryOperator());
    
    156
    -            newTripLongline.setObservationsDataQuality(oldTripLongline.getObservationsDataQuality());
    
    157
    -        }
    
    152
    +        TripLonglineServiceLocal.copyTripObservationMetaData(Objects.requireNonNull(oldTripLongline), newTripLongline);
    
    153
    +
    
    158 154
             saveEntity(newTripLongline);
    
    159 155
         }
    
    160 156