Tony CHEMIT pushed to branch develop at ultreiaio / ird-observe Commits: f6992669 by tchemit at 2019-06-08T13:01:26Z Déplacement de groupes de données - Closes #918 - - - - - 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: ===================================== 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; import fr.ird.observe.services.service.data.ll.common.TripLonglineService; import fr.ird.observe.services.service.sql.DeleteSqlScriptProducerRequest; import fr.ird.observe.services.service.sql.SqlScriptProducerService; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; import org.hashids.Hashids; import org.nuiton.topia.persistence.script.SqlScriptConsumer; import org.nuiton.topia.persistence.script.TopiaSqlScript; @@ -63,6 +65,34 @@ import java.util.List; public class TripLonglineServiceLocal extends ObserveServiceLocal implements TripLonglineService { private SqlScriptProducerService sqlScriptProducerService; + private static final Logger log = LogManager.getLogger(TripLonglineServiceLocal.class); + + public static boolean copyTripLogbookMetaData(TripLongline oldTripLongline, TripLongline newTripLongline) { + if (!newTripLongline.isLogbookAvailability()) { + // copy logbook meta-data to new trip + log.info(String.format("Add logbook metadata to trip: %s", newTripLongline.getTopiaId())); + newTripLongline.setLogbookAvailability(true); + newTripLongline.setLogbookComment(oldTripLongline.getLogbookComment()); + newTripLongline.setLogbookDataEntryOperator(oldTripLongline.getLogbookDataEntryOperator()); + newTripLongline.setLogbookDataQuality(oldTripLongline.getLogbookDataQuality()); + return true; + } + return false; + } + + public static boolean copyTripObservationMetaData(TripLongline oldTripLongline, TripLongline newTripLongline) { + if (!newTripLongline.isObservationsAvailability()) { + // copy observation meta-data to new trip + log.info(String.format("Add observation metadata to trip: %s", newTripLongline.getTopiaId())); + newTripLongline.setObservationsAvailability(true); + newTripLongline.setObservationsComment(oldTripLongline.getObservationsComment()); + newTripLongline.setObservationMethod(oldTripLongline.getObservationMethod()); + newTripLongline.setObservationsDataEntryOperator(oldTripLongline.getObservationsDataEntryOperator()); + newTripLongline.setObservationsDataQuality(oldTripLongline.getObservationsDataQuality()); + return true; + } + return false; + } @Override 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; import fr.ird.observe.entities.data.ll.logbook.ActivityLonglineLogbook; import fr.ird.observe.entities.data.ll.logbook.SampleLogbook; import fr.ird.observe.services.local.service.ObserveServiceLocal; +import fr.ird.observe.services.local.service.data.ll.common.TripLonglineServiceLocal; import fr.ird.observe.services.service.data.ll.logbook.ActivityLonglineLogbookSampleService; +import java.util.Objects; + /** * @author Tony Chemit - dev@tchemit.fr */ @@ -81,11 +84,13 @@ public class ActivityLonglineLogbookSampleServiceLocal extends ObserveServiceLoc if (!sampleLogbookId.equals(sampleLogbook.getTopiaId())) { throw new DataNotFoundException(SampleLogbookDto.class, sampleLogbookId); } - TripLongline tripLongline = TRIP_LONGLINE_SPI.loadEntity(getTopiaPersistenceContext(), newTripId); + TripLongline oldTripLongline = getTopiaPersistenceContext().getMultipleAssociationParent(TripLongline.class, TripLongline.PROPERTY_ACTIVITY_LONGLINE_LOGBOOK, oldActivity.getTopiaId()); + TripLongline newTripLongline = TRIP_LONGLINE_SPI.loadEntity(getTopiaPersistenceContext(), newTripId); oldActivity.setSample(null); - tripLongline.addSample(sampleLogbook); + newTripLongline.addSample(sampleLogbook); + TripLonglineServiceLocal.copyTripLogbookMetaData(oldTripLongline, newTripLongline); saveEntity(oldActivity); - saveEntity(tripLongline); + saveEntity(newTripLongline); } @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; import fr.ird.observe.entities.data.ll.logbook.ActivityLonglineLogbookTopiaDao; import fr.ird.observe.entities.referential.common.DataQuality; import fr.ird.observe.services.local.service.ObserveServiceLocal; +import fr.ird.observe.services.local.service.data.ll.common.TripLonglineServiceLocal; import fr.ird.observe.services.service.data.ll.logbook.ActivityLonglineLogbookService; import java.util.Calendar; import java.util.Date; import java.util.List; +import java.util.Objects; /** * @author Tony Chemit - dev@tchemit.fr @@ -143,13 +145,8 @@ public class ActivityLonglineLogbookServiceLocal extends ObserveServiceLocal imp ActivityLonglineLogbook activityLongline = ACTIVITY_LONGLINE_LOGBOOK_SPI.loadEntity(getTopiaPersistenceContext(), activityId); newTripLongline.addActivityLonglineLogbook(activityLongline); } - if (oldTripLongline != null && !newTripLongline.isLogbookAvailability()) { - // copy logbook meta-data to new trip - newTripLongline.setLogbookAvailability(true); - newTripLongline.setLogbookComment(oldTripLongline.getLogbookComment()); - newTripLongline.setLogbookDataEntryOperator(oldTripLongline.getLogbookDataEntryOperator()); - newTripLongline.setLogbookDataQuality(oldTripLongline.getLogbookDataQuality()); - } + TripLonglineServiceLocal.copyTripLogbookMetaData(Objects.requireNonNull(oldTripLongline), newTripLongline); + saveEntity(newTripLongline); } ===================================== 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; import fr.ird.observe.entities.data.ll.logbook.ActivityLonglineLogbook; import fr.ird.observe.entities.data.ll.logbook.SampleLogbook; import fr.ird.observe.services.local.service.ObserveServiceLocal; +import fr.ird.observe.services.local.service.data.ll.common.TripLonglineServiceLocal; import fr.ird.observe.services.service.data.ll.logbook.TripLonglineSampleLogbookService; import java.util.Calendar; @@ -133,13 +134,17 @@ public class TripLonglineSampleLogbookServiceLocal extends ObserveServiceLocal i @Override public void moveToActivityLongline(String newActivityId, String sampleLogbookId) { - TripLongline tripLongline = getTopiaPersistenceContext().getMultipleAssociationParent(TripLongline.class, TripLongline.PROPERTY_SAMPLE, sampleLogbookId); + TripLongline oldTripLongline = getTopiaPersistenceContext().getMultipleAssociationParent(TripLongline.class, TripLongline.PROPERTY_SAMPLE, sampleLogbookId); + TripLongline newTripLongline = getTopiaPersistenceContext().getMultipleAssociationParent(TripLongline.class, TripLongline.PROPERTY_ACTIVITY_LONGLINE_LOGBOOK, newActivityId); SampleLogbook sampleLogbook = SAMPLE_LOGBOOK_SPI.loadEntity(getTopiaPersistenceContext(), sampleLogbookId); - tripLongline.removeSample(sampleLogbook); + oldTripLongline.removeSample(sampleLogbook); ActivityLonglineLogbook newActivity = ACTIVITY_LONGLINE_LOGBOOK_SPI.loadEntity(getTopiaPersistenceContext(), newActivityId); //WARNING need to recreate entity, so the topia id will change! newActivity.setSample(getTopiaPersistenceContext().getSampleLogbookDao().create(sampleLogbook)); - saveEntity(tripLongline); + if (TripLonglineServiceLocal.copyTripLogbookMetaData(oldTripLongline, newTripLongline)) { + saveEntity(newTripLongline); + } + saveEntity(oldTripLongline); saveEntity(newActivity); } ===================================== 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; import fr.ird.observe.entities.data.ll.observation.ActivityLonglineObs; import fr.ird.observe.entities.data.ll.observation.ActivityLonglineObsTopiaDao; import fr.ird.observe.services.local.service.ObserveServiceLocal; +import fr.ird.observe.services.local.service.data.ll.common.TripLonglineServiceLocal; import fr.ird.observe.services.service.data.ll.observation.ActivityLonglineObsService; import java.util.Calendar; import java.util.Date; import java.util.List; +import java.util.Objects; /** * @author Tony Chemit - dev@tchemit.fr @@ -147,14 +149,8 @@ public class ActivityLonglineObsServiceLocal extends ObserveServiceLocal impleme if (activityUsed) { saveEntity(oldTripLongline); } - if (oldTripLongline != null && !newTripLongline.isObservationsAvailability()) { - // copy observation meta-data to new trip - newTripLongline.setObservationsAvailability(true); - newTripLongline.setObservationsComment(oldTripLongline.getObservationsComment()); - newTripLongline.setObservationMethod(oldTripLongline.getObservationMethod()); - newTripLongline.setObservationsDataEntryOperator(oldTripLongline.getObservationsDataEntryOperator()); - newTripLongline.setObservationsDataQuality(oldTripLongline.getObservationsDataQuality()); - } + TripLonglineServiceLocal.copyTripObservationMetaData(Objects.requireNonNull(oldTripLongline), newTripLongline); + saveEntity(newTripLongline); } View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/commit/f6992669d827035a661d8ff2ec12... -- View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/commit/f6992669d827035a661d8ff2ec12... You're receiving this email because of your account on gitlab.com.