This is an automated email from the git hooks/post-receive script. New commit to branch feature/7458-LonglineTopiaService in repository observe. See http://git.codelutin.com/observe.git commit f193a5d8f597195665fdee63f880e9dfe290791f Author: Sylvain Bavencoff <bavencoff@codelutin.com> Date: Thu Aug 27 12:42:33 2015 +0200 implantation SetLonglineService (refs #7458). --- .../service/longline/SetLonglineService.java | 5 +- .../service/longline/SetLonglineServiceTopia.java | 112 +++++++++++++++++++++ 2 files changed, 113 insertions(+), 4 deletions(-) diff --git a/observe-services-api/src/main/java/fr/ird/observe/services/service/longline/SetLonglineService.java b/observe-services-api/src/main/java/fr/ird/observe/services/service/longline/SetLonglineService.java index b95c7ff..8f37657 100644 --- a/observe-services-api/src/main/java/fr/ird/observe/services/service/longline/SetLonglineService.java +++ b/observe-services-api/src/main/java/fr/ird/observe/services/service/longline/SetLonglineService.java @@ -2,7 +2,6 @@ package fr.ird.observe.services.service.longline; import fr.ird.observe.services.ObserveService; import fr.ird.observe.services.dto.FormDto; -import fr.ird.observe.services.dto.ReferenceDto; import fr.ird.observe.services.dto.longline.SetLonglineDto; import fr.ird.observe.services.spi.Write; @@ -11,8 +10,6 @@ import fr.ird.observe.services.spi.Write; */ public interface SetLonglineService extends ObserveService { - ReferenceDto<SetLonglineDto> getSetLonglineByActivityLongline(String activityLonglineId); - FormDto<SetLonglineDto> loadToRead(String setLonglineId); FormDto<SetLonglineDto> loadToEdit(String setLonglineId); @@ -20,7 +17,7 @@ public interface SetLonglineService extends ObserveService { FormDto<SetLonglineDto> preCreate(String activityLonglineId); @Write - String save(FormDto<SetLonglineDto> form); + String save(String activityLonglineId, FormDto<SetLonglineDto> form); @Write void delete(String activityLonglineId, String setLonglineId); diff --git a/observe-services-topia/src/main/java/fr/ird/observe/services/service/longline/SetLonglineServiceTopia.java b/observe-services-topia/src/main/java/fr/ird/observe/services/service/longline/SetLonglineServiceTopia.java new file mode 100644 index 0000000..de64f79 --- /dev/null +++ b/observe-services-topia/src/main/java/fr/ird/observe/services/service/longline/SetLonglineServiceTopia.java @@ -0,0 +1,112 @@ +package fr.ird.observe.services.service.longline; + +import fr.ird.observe.entities.longline.ActivityLongline; +import fr.ird.observe.entities.longline.SetLongline; +import fr.ird.observe.services.ObserveServiceTopia; +import fr.ird.observe.services.dto.FormDto; +import fr.ird.observe.services.dto.longline.ActivityLonglineDto; +import fr.ird.observe.services.dto.longline.SetLonglineDto; +import fr.ird.observe.services.service.DataNotFoundException; +import org.apache.commons.lang3.time.DateUtils; + +import java.util.Date; + +/** + * @author Sylvain Bavencoff - bavencoff@codelutin.com + */ +public class SetLonglineServiceTopia extends ObserveServiceTopia implements SetLonglineService { + + @Override + public FormDto<SetLonglineDto> loadToRead(String setLonglineId) { + + SetLongline setLongline = loadEntity(SetLonglineDto.class, SetLongline.class, setLonglineId); + + FormDto<SetLonglineDto> form = entityToReadFormDto(SetLonglineDto.class, SetLongline.class, setLongline); + + return form; + + } + + @Override + public FormDto<SetLonglineDto> loadToEdit(String setLonglineId) { + + SetLongline setLongline = loadEntity(SetLonglineDto.class, SetLongline.class, setLonglineId); + + FormDto<SetLonglineDto> form = entityToEditFormDto(SetLonglineDto.class, SetLongline.class, setLongline); + + return form; + + } + + @Override + public FormDto<SetLonglineDto> preCreate(String activityLonglineId) { + + ActivityLongline activityLongline = loadEntity(ActivityLonglineDto.class, ActivityLongline.class, activityLonglineId); + + SetLongline preCreated = newEntity(SetLongline.class); + + // on utilise la date - heure de l'activité pour initialiser les horodatages + // de l'opération de peche + Date timeStamp = activityLongline.getTimeStamp(); + preCreated.setSettingStartTimeStamp(timeStamp); + preCreated.setSettingEndTimeStamp(DateUtils.addHours(timeStamp, 1)); + preCreated.setHaulingStartTimeStamp(DateUtils.addHours(timeStamp, 2)); + preCreated.setHaulingEndTimeStamp(DateUtils.addHours(timeStamp, 3)); + + // on reporte la position de l'activité pour la position de début de filage + Float latitude = activityLongline.getLatitude(); + Float longitude = activityLongline.getLongitude(); + + // On enregistre deux fois les coordonnées car la première fois on perd le signe à cause de l'éditeur + preCreated.setSettingStartLatitude(latitude); + preCreated.setSettingStartLongitude(longitude); + preCreated.setSettingStartLatitude(latitude); + preCreated.setSettingStartLongitude(longitude); + + FormDto<SetLonglineDto> form = entityToEditFormDto(SetLonglineDto.class, SetLongline.class, preCreated); + + return form; + + } + + @Override + public String save(String activityLonglineId, FormDto<SetLonglineDto> form) { + + ActivityLongline activityLongline = loadEntity(ActivityLonglineDto.class, ActivityLongline.class, activityLonglineId); + + SetLonglineDto setLonglineDto = form.getForm(); + + SetLongline setLongline = dtoToEntity(SetLonglineDto.class, SetLongline.class, setLonglineDto); + + setLongline = saveEntity(SetLongline.class, setLongline); + + if (setLonglineDto.isNotPersisted()) { + + activityLongline.setSetLongline(setLongline); + + saveEntity(ActivityLongline.class, activityLongline); + + } + + return setLongline.getTopiaId(); + + } + + @Override + public void delete(String activityLonglineId, String setLonglineId) { + + ActivityLongline activityLongline = loadEntity(ActivityLonglineDto.class, ActivityLongline.class, activityLonglineId); + + SetLongline setLongline = loadEntity(SetLonglineDto.class, SetLongline.class, setLonglineId); + + if (!activityLongline.getSetLongline().equals(setLongline)) { + + throw new DataNotFoundException(SetLonglineDto.class, setLonglineId); + + } + + activityLongline.setSetLongline(null); + + } + +} -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@list.forge.codelutin.com>.