This is an automated email from the git hooks/post-receive script. New commit to branch feature/7458-topiaServices in repository observe. See http://git.codelutin.com/observe.git commit 00f7dd67e26d2d2061f7192835f480d29c001ff9 Author: Sylvain Bavencoff <bavencoff@codelutin.com> Date: Wed Aug 26 15:15:42 2015 +0200 implantation SetSeineServiceTopia (refs #7458). --- .../services/service/seine/SetSeineService.java | 7 +- .../service/seine/SetSeineServiceTopia.java | 116 +++++++++++++++++++++ 2 files changed, 118 insertions(+), 5 deletions(-) diff --git a/observe-services-api/src/main/java/fr/ird/observe/services/service/seine/SetSeineService.java b/observe-services-api/src/main/java/fr/ird/observe/services/service/seine/SetSeineService.java index 34665f7..7b22313 100644 --- a/observe-services-api/src/main/java/fr/ird/observe/services/service/seine/SetSeineService.java +++ b/observe-services-api/src/main/java/fr/ird/observe/services/service/seine/SetSeineService.java @@ -2,7 +2,6 @@ package fr.ird.observe.services.service.seine; 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.seine.SetSeineDto; import fr.ird.observe.services.spi.Write; @@ -11,16 +10,14 @@ import fr.ird.observe.services.spi.Write; */ public interface SetSeineService extends ObserveService { - ReferenceDto<SetSeineDto> getSetSeineByActivitySeine(String activitySeineId); - FormDto<SetSeineDto> loadToRead(String setSeineId); FormDto<SetSeineDto> loadToEdit(String setSeineId); - FormDto<SetSeineDto> preCreate(String activitySeineId); + FormDto<SetSeineDto> preCreate(String routeId, String activitySeineId); @Write - String save(FormDto<SetSeineDto> form); + String save(String activitySeineId, FormDto<SetSeineDto> form); @Write void delete(String activitySeineId, String setSeineId); diff --git a/observe-services-topia/src/main/java/fr/ird/observe/services/service/seine/SetSeineServiceTopia.java b/observe-services-topia/src/main/java/fr/ird/observe/services/service/seine/SetSeineServiceTopia.java new file mode 100644 index 0000000..aedd910 --- /dev/null +++ b/observe-services-topia/src/main/java/fr/ird/observe/services/service/seine/SetSeineServiceTopia.java @@ -0,0 +1,116 @@ +package fr.ird.observe.services.service.seine; + +import fr.ird.observe.entities.constants.seine.SchoolType; +import fr.ird.observe.entities.seine.ActivitySeine; +import fr.ird.observe.entities.seine.Route; +import fr.ird.observe.entities.seine.SetSeine; +import fr.ird.observe.services.ObserveServiceTopia; +import fr.ird.observe.services.dto.FormDto; +import fr.ird.observe.services.dto.seine.ActivitySeineDto; +import fr.ird.observe.services.dto.seine.RouteDto; +import fr.ird.observe.services.dto.seine.SetSeineDto; +import fr.ird.observe.services.service.DataNotFoundException; +import org.nuiton.util.DateUtil; + +import java.util.Date; + +/** + * @author Sylvain Bavencoff - bavencoff@codelutin.com + */ +public class SetSeineServiceTopia extends ObserveServiceTopia implements SetSeineService { + + @Override + public FormDto<SetSeineDto> loadToRead(String setSeineId) { + + SetSeine setSeine = loadEntity(SetSeineDto.class, SetSeine.class, setSeineId); + + FormDto<SetSeineDto> form = entityToReadFormDto(SetSeineDto.class, SetSeine.class, setSeine); + + return form; + } + + @Override + public FormDto<SetSeineDto> loadToEdit(String setSeineId) { + + SetSeine setSeine = loadEntity(SetSeineDto.class, SetSeine.class, setSeineId); + + FormDto<SetSeineDto> form = entityToEditFormDto(SetSeineDto.class, SetSeine.class, setSeine); + + return form; + } + + @Override + public FormDto<SetSeineDto> preCreate(String routeId, String activitySeineId) { + + Route route = loadEntity(RouteDto.class, Route.class, routeId); + + ActivitySeine activitySeine = loadEntity(ActivitySeineDto.class, ActivitySeine.class, activitySeineId); + + if (! route.containsActivitySeine(activitySeine)) { + throw new DataNotFoundException(ActivitySeineDto.class, activitySeineId); + } + + + // on utilise l'heure de l'activité comme début de calée + Date date = DateUtil.getTime(activitySeine.getTime(), false, false); + + SetSeine preCreated = newEntity(SetSeine.class); + + preCreated.setStartTime(date); + + // pour les dates de fin on utilise la date de la route + Date routeDate = route.getDate(); + + preCreated.setEndSetTimeStamp(date); + preCreated.setEndPursingTimeStamp(date); + + preCreated.setEndSetDate(routeDate); + preCreated.setEndPursingDate(routeDate); + + // recuperation du type de set a partir de l'activity + SchoolType schoolType = activitySeine.getSchoolType(); + preCreated.setSchoolType(schoolType); + + FormDto<SetSeineDto> form = entityToEditFormDto(SetSeineDto.class, SetSeine.class, preCreated); + + return form; + + } + + @Override + public String save(String activitySeineId, FormDto<SetSeineDto> form) { + + ActivitySeine activitySeine = loadEntity(ActivitySeineDto.class, ActivitySeine.class, activitySeineId); + + SetSeineDto setSeineDto = form.getForm(); + + SetSeine setSeine = dtoToEntity(SetSeineDto.class, SetSeine.class, setSeineDto); + + setSeine = saveEntity(SetSeine.class, setSeine); + + if (setSeineDto.isNotPersisted()) { + + activitySeine.setSetSeine(setSeine); + + saveEntity(ActivitySeine.class, activitySeine); + + } + + return setSeine.getTopiaId(); + } + + @Override + public void delete(String activitySeineId, String setSeineId) { + + ActivitySeine activitySeine = loadEntity(ActivitySeineDto.class, ActivitySeine.class, activitySeineId); + + SetSeine setSeine = loadEntity(SetSeineDto.class, SetSeine.class, setSeineId); + + if (!activitySeine.getSetSeine().equals(setSeine)) { + throw new DataNotFoundException(SetSeineDto.class, setSeineId); + } + + activitySeine.setSetSeine(null); + + } +} -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@list.forge.codelutin.com>.