Tony CHEMIT pushed to branch develop at ultreiaio / ird-observe
Commits:
-
f6992669
by tchemit at 2019-06-08T13:01:26Z
5 changed files:
- services-local/src/main/java/fr/ird/observe/services/local/service/data/ll/common/TripLonglineServiceLocal.java
- services-local/src/main/java/fr/ird/observe/services/local/service/data/ll/logbook/ActivityLonglineLogbookSampleServiceLocal.java
- services-local/src/main/java/fr/ird/observe/services/local/service/data/ll/logbook/ActivityLonglineLogbookServiceLocal.java
- services-local/src/main/java/fr/ird/observe/services/local/service/data/ll/logbook/TripLonglineSampleLogbookServiceLocal.java
- services-local/src/main/java/fr/ird/observe/services/local/service/data/ll/observation/ActivityLonglineObsServiceLocal.java
Changes:
| ... | ... | @@ -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) {
|
| ... | ... | @@ -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
|
| ... | ... | @@ -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 |
|
| ... | ... | @@ -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 |
|
| ... | ... | @@ -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 |
|