branch feature/7458-ActivitySeineService created (now f7342a2)
This is an automated email from the git hooks/post-receive script. New change to branch feature/7458-ActivitySeineService in repository observe. See http://git.codelutin.com/observe.git at f7342a2 implantation ActivitySeineService (refs #7458). This branch includes the following new commits: new f7342a2 implantation ActivitySeineService (refs #7458). The 1 revisions listed above as "new" are entirely new to this repository and will be described in separate emails. The revisions listed as "adds" were already present in the repository and have only been added to this reference. Detailed log of new commits: commit f7342a271f66c784a5a48638875578baf332406d Author: Sylvain Bavencoff <bavencoff@codelutin.com> Date: Wed Aug 26 13:48:07 2015 +0200 implantation ActivitySeineService (refs #7458). -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@list.forge.codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch feature/7458-ActivitySeineService in repository observe. See http://git.codelutin.com/observe.git commit f7342a271f66c784a5a48638875578baf332406d Author: Sylvain Bavencoff <bavencoff@codelutin.com> Date: Wed Aug 26 13:48:07 2015 +0200 implantation ActivitySeineService (refs #7458). --- .../service/seine/ActivitySeineService.java | 8 +- .../service/seine/ActivitySeineServiceTopia.java | 130 +++++++++++++++++++-- 2 files changed, 125 insertions(+), 13 deletions(-) diff --git a/observe-services-api/src/main/java/fr/ird/observe/services/service/seine/ActivitySeineService.java b/observe-services-api/src/main/java/fr/ird/observe/services/service/seine/ActivitySeineService.java index 26368d5..c7f60ae 100644 --- a/observe-services-api/src/main/java/fr/ird/observe/services/service/seine/ActivitySeineService.java +++ b/observe-services-api/src/main/java/fr/ird/observe/services/service/seine/ActivitySeineService.java @@ -2,8 +2,8 @@ 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.ActivitySeineDto; +import fr.ird.observe.services.dto.seine.ActivitySeineStubDto; import fr.ird.observe.services.spi.Write; import java.util.List; @@ -13,16 +13,16 @@ import java.util.List; */ public interface ActivitySeineService extends ObserveService { - FormDto<ActivitySeineDto> loadToRead(String activitySeineId); + List<ActivitySeineStubDto> getActivitySeineByRoute(String routeId); - List<ReferenceDto<ActivitySeineDto>> getActivitySeineByRoute(String routeId); + FormDto<ActivitySeineDto> loadToRead(String activitySeineId); FormDto<ActivitySeineDto> loadToEdit(String activitySeineId); FormDto<ActivitySeineDto> preCreate(String routeId); @Write - String save(FormDto<ActivitySeineDto> form); + String save(String routeId, FormDto<ActivitySeineDto> form); @Write void delete(String routeId, String activitySeineId); diff --git a/observe-services-topia/src/main/java/fr/ird/observe/services/service/seine/ActivitySeineServiceTopia.java b/observe-services-topia/src/main/java/fr/ird/observe/services/service/seine/ActivitySeineServiceTopia.java index 048309a..d17cb27 100644 --- a/observe-services-topia/src/main/java/fr/ird/observe/services/service/seine/ActivitySeineServiceTopia.java +++ b/observe-services-topia/src/main/java/fr/ird/observe/services/service/seine/ActivitySeineServiceTopia.java @@ -1,10 +1,22 @@ package fr.ird.observe.services.service.seine; +import com.google.common.collect.Iterables; +import com.google.common.collect.Lists; +import fr.ird.observe.entities.constants.ReferenceLocale; +import fr.ird.observe.entities.referentiel.FpaZone; +import fr.ird.observe.entities.seine.ActivitySeine; +import fr.ird.observe.entities.seine.Route; import fr.ird.observe.services.ObserveServiceTopia; import fr.ird.observe.services.dto.FormDto; -import fr.ird.observe.services.dto.ReferenceDto; import fr.ird.observe.services.dto.seine.ActivitySeineDto; +import fr.ird.observe.services.dto.seine.ActivitySeineStubDto; +import fr.ird.observe.services.dto.seine.RouteDto; +import fr.ird.observe.services.service.DataNotFoundException; +import fr.ird.type.CoordinateHelper; +import org.apache.commons.lang3.StringUtils; +import org.nuiton.util.DateUtil; +import java.util.Date; import java.util.List; /** @@ -14,32 +26,132 @@ public class ActivitySeineServiceTopia extends ObserveServiceTopia implements Ac @Override - public FormDto<ActivitySeineDto> loadToRead(String activitySeineId) { - return null; + public List<ActivitySeineStubDto> getActivitySeineByRoute(String routeId) { + + ReferenceLocale referenceLocale = getReferenceLocale(); + + Route route = loadEntity(RouteDto.class, Route.class, routeId); + + List<ActivitySeineStubDto> stubs = Lists.newLinkedList(); + + for (ActivitySeine activitySeine : route.getActivitySeine()) { + + ActivitySeineStubDto stub = new ActivitySeineStubDto(); + stub.setId(activitySeine.getTopiaId()); + stub.setTime(activitySeine.getTime()); + stub.setVesselActivitySeineLabel(referenceLocale.getLabel(activitySeine.getVesselActivitySeine())); + stub.setHasSetSeine(activitySeine.getSetSeine() != null); + + } + + return stubs; } @Override - public List<ReferenceDto<ActivitySeineDto>> getActivitySeineByRoute(String routeId) { - return null; + public FormDto<ActivitySeineDto> loadToRead(String activitySeineId) { + + ActivitySeine activitySeine = loadEntity(ActivitySeineDto.class, ActivitySeine.class, activitySeineId); + + FormDto<ActivitySeineDto> form = entityToReadFormDto(ActivitySeineDto.class, ActivitySeine.class, activitySeine); + + return form; } @Override public FormDto<ActivitySeineDto> loadToEdit(String activitySeineId) { - return null; + + ActivitySeine activitySeine = loadEntity(ActivitySeineDto.class, ActivitySeine.class, activitySeineId); + + FormDto<ActivitySeineDto> form = entityToEditFormDto(ActivitySeineDto.class, ActivitySeine.class, activitySeine); + + return form; } @Override public FormDto<ActivitySeineDto> preCreate(String routeId) { - return null; + + Route route = loadEntity(RouteDto.class, Route.class, routeId); + + ActivitySeine preCreated = newEntity(ActivitySeine.class); + + ActivitySeine lastActivitySeine = Iterables.getLast(route.getActivitySeine(), null); + + Date time; + + FpaZone currentFpaZone = null; + + if (lastActivitySeine == null) { + + // première activité, on utilise l'heure courante + time = serviceContext.now(); + + } else { + + // on recupère le quadrant de cette activity + // et on l'affecte à la nouvelle activity + Integer quadrant = CoordinateHelper.getQuadrant( + lastActivitySeine.getLongitude(), + lastActivitySeine.getLatitude()); + + if (quadrant != null) { + + preCreated.setQuadrant(quadrant); + + } + + // on reprend l'heure de la dernière activité + time = lastActivitySeine.getTime(); + + // utilisation des zones fpa de la dernière activité + currentFpaZone = lastActivitySeine.getNextFpaZone(); + if (currentFpaZone == null) { + currentFpaZone = lastActivitySeine.getCurrentFpaZone(); + } + + } + + preCreated.setTime(DateUtil.getTime(time, false, false)); + preCreated.setCurrentFpaZone(currentFpaZone); + + FormDto<ActivitySeineDto> form = entityToEditFormDto(ActivitySeineDto.class, ActivitySeine.class, preCreated); + + return form; } @Override - public String save(FormDto<ActivitySeineDto> form) { - return null; + public String save(String routeId, FormDto<ActivitySeineDto> form) { + + Route route = loadEntity(RouteDto.class, Route.class, routeId); + + ActivitySeineDto activitySeineDto = form.getForm(); + + ActivitySeine activitySeine = dtoToEntity(ActivitySeineDto.class, ActivitySeine.class, activitySeineDto); + + activitySeine = saveEntity(ActivitySeine.class, activitySeine); + + if (StringUtils.isBlank(activitySeineDto.getId())) { + + route.addActivitySeine(activitySeine); + + saveEntity(Route.class, route); + + } + + return activitySeine.getTopiaId(); } @Override public void delete(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); + } + + route.removeActivitySeine(activitySeine); + } } -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@list.forge.codelutin.com>.
participants (1)
-
codelutin.com scm