r90 - in trunk/magalie-services/src: main/java/com/franciaflex/magalie/services/service test/java/com/franciaflex/magalie/services/service
Author: bleny Date: 2013-04-11 23:40:01 +0200 (Thu, 11 Apr 2013) New Revision: 90 Url: http://forge.codelutin.com/projects/franciaflex-magalie/repository/revisions... Log: introduce BookArticleRequest Added: trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/service/BookArticleRequest.java Modified: trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/service/ArticleStorageService.java trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/service/FulfilKanbanService.java trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/service/RequestedArticleService.java trunk/magalie-services/src/test/java/com/franciaflex/magalie/services/service/ArticleStorageServiceTest.java Modified: trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/service/ArticleStorageService.java =================================================================== --- trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/service/ArticleStorageService.java 2013-04-11 21:07:14 UTC (rev 89) +++ trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/service/ArticleStorageService.java 2013-04-11 21:40:01 UTC (rev 90) @@ -45,52 +45,26 @@ this.serviceContext = serviceContext; } - public StorageMovementOrder bookArticle(MagalieUser magalieUser, Building building, Article article, double requestedQuantity) throws UnavailableArticleException, RequiredDriverLicenceException { - - return bookArticle(magalieUser, building, article, requestedQuantity, null); - - } - - public StorageMovementOrder bookArticleWithBestEffortPolicy( - MagalieUser magalieUser, Building building, Article article, double requestedQuantity, Location destinationLocation) - throws RequiredDriverLicenceException, UnavailableArticleException { - - return bookArticle(magalieUser, building, article ,requestedQuantity, destinationLocation, true); - - } - - public StorageMovementOrder bookArticle( - MagalieUser magalieUser, Building building, Article article, double requestedQuantity, Location destinationLocation) + public StorageMovementOrder bookArticle(BookArticleRequest bookArticleRequest) throws UnavailableArticleException, RequiredDriverLicenceException { - return bookArticle(magalieUser, building, article ,requestedQuantity, destinationLocation, false); + Preconditions.checkNotNull(bookArticleRequest.getMagalieUser()); - } + Preconditions.checkNotNull(bookArticleRequest.getBuilding()); - protected StorageMovementOrder bookArticle( - MagalieUser magalieUser, Building building, Article article, double requestedQuantity, Location destinationLocation, boolean bestEffortPolicy) - throws UnavailableArticleException, RequiredDriverLicenceException { + Preconditions.checkNotNull(bookArticleRequest.getArticle()); - Preconditions.checkNotNull(magalieUser); + Preconditions.checkArgument(bookArticleRequest.getRequestedQuantity() > 0.); - Preconditions.checkNotNull(building); - - Preconditions.checkNotNull(article); - - Preconditions.checkArgument(requestedQuantity > 0.); - if (log.isInfoEnabled()) { - log.info("will process article request" - + ": requested = " + requestedQuantity - ); + log.info("will process article request" + bookArticleRequest); } - List<StoredArticle> storedArticles = getStoredArticles(building, article); + List<StoredArticle> storedArticles = getStoredArticles(bookArticleRequest.getBuilding(), bookArticleRequest.getArticle()); Queue<StoredArticle> sortedStoredArticles = sortStoredArticlesByPriority(storedArticles); - StorageMovementOrder storageMovementOrder = buildStorageMovementOrder( - magalieUser, article, requestedQuantity, destinationLocation, bestEffortPolicy, sortedStoredArticles); + StorageMovementOrder storageMovementOrder = buildStorageMovementOrder(bookArticleRequest, sortedStoredArticles); MagaliePersistenceContext persistenceContext = serviceContext.getPersistenceContext(); @@ -104,8 +78,14 @@ } - protected StorageMovementOrder buildStorageMovementOrder(MagalieUser magalieUser, Article article, double requestedQuantity, Location destinationLocation, boolean bestEffortPolicy, Queue<StoredArticle> sortedStoredArticles) throws RequiredDriverLicenceException, UnavailableArticleException { + protected StorageMovementOrder buildStorageMovementOrder(BookArticleRequest bookArticleRequest, Queue<StoredArticle> sortedStoredArticles) throws RequiredDriverLicenceException, UnavailableArticleException { + Article article = bookArticleRequest.getArticle(); + + MagalieUser magalieUser = bookArticleRequest.getMagalieUser(); + + double requestedQuantity = bookArticleRequest.getRequestedQuantity(); + StorageMovementOrder storageMovementOrder = new StorageMovementOrder(); double quantity = 0; @@ -138,7 +118,7 @@ newStorageMovement.setOriginLocation(originLocation); - newStorageMovement.setDestinationLocation(destinationLocation); + newStorageMovement.setDestinationLocation(bookArticleRequest.getDestinationLocation()); newStorageMovement.setExpectedQuantity(quantityWithdrawn); @@ -147,7 +127,7 @@ } } - if (bestEffortPolicy) { + if (bookArticleRequest.isBestEffortPolicy()) { log.debug("best effort policy, requested quantity was " + requestedQuantity + " but only " + quantity + Added: trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/service/BookArticleRequest.java =================================================================== --- trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/service/BookArticleRequest.java (rev 0) +++ trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/service/BookArticleRequest.java 2013-04-11 21:40:01 UTC (rev 90) @@ -0,0 +1,60 @@ +package com.franciaflex.magalie.services.service; + +import com.franciaflex.magalie.persistence.entity.Article; +import com.franciaflex.magalie.persistence.entity.Building; +import com.franciaflex.magalie.persistence.entity.Location; +import com.franciaflex.magalie.persistence.entity.MagalieUser; +import org.apache.commons.lang3.builder.ReflectionToStringBuilder; + +public class BookArticleRequest { + + protected MagalieUser magalieUser; + + protected Building building; + + protected Article article; + + protected double requestedQuantity; + + protected Location destinationLocation; + + protected boolean bestEffortPolicy; + + public BookArticleRequest(MagalieUser magalieUser, Building building, Article article, double requestedQuantity, Location destinationLocation, boolean bestEffortPolicy) { + this.magalieUser = magalieUser; + this.building = building; + this.article = article; + this.requestedQuantity = requestedQuantity; + this.destinationLocation = destinationLocation; + this.bestEffortPolicy = bestEffortPolicy; + } + + public MagalieUser getMagalieUser() { + return magalieUser; + } + + public Building getBuilding() { + return building; + } + + public Article getArticle() { + return article; + } + + public double getRequestedQuantity() { + return requestedQuantity; + } + + public Location getDestinationLocation() { + return destinationLocation; + } + + public boolean isBestEffortPolicy() { + return bestEffortPolicy; + } + + @Override + public String toString() { + return ReflectionToStringBuilder.reflectionToString(this); + } +} Modified: trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/service/FulfilKanbanService.java =================================================================== --- trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/service/FulfilKanbanService.java 2013-04-11 21:07:14 UTC (rev 89) +++ trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/service/FulfilKanbanService.java 2013-04-11 21:40:01 UTC (rev 90) @@ -70,13 +70,13 @@ Location destinationLocation = getDestinationLocation(destinationWarehouse); + BookArticleRequest bookArticleRequest = + new BookArticleRequest( + magalieUser, building, article, + quantityInKanban, destinationLocation, true); + StorageMovementOrder storageMovementOrder = - articleStorageService.bookArticleWithBestEffortPolicy( - magalieUser, - building, - article, - quantityInKanban, - destinationLocation); + articleStorageService.bookArticle(bookArticleRequest); return storageMovementOrder; Modified: trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/service/RequestedArticleService.java =================================================================== --- trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/service/RequestedArticleService.java 2013-04-11 21:07:14 UTC (rev 89) +++ trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/service/RequestedArticleService.java 2013-04-11 21:40:01 UTC (rev 90) @@ -118,9 +118,11 @@ double quantity = requestedArticle.getQuantity(); + BookArticleRequest bookArticleRequest = new BookArticleRequest(magalieUser, building, article, quantity, null, false); + try { - storageMovementOrder = articleStorageService.bookArticle(magalieUser, building, article, quantity, null); + storageMovementOrder = articleStorageService.bookArticle(bookArticleRequest); everythingIsUnavailable = false; Modified: trunk/magalie-services/src/test/java/com/franciaflex/magalie/services/service/ArticleStorageServiceTest.java =================================================================== --- trunk/magalie-services/src/test/java/com/franciaflex/magalie/services/service/ArticleStorageServiceTest.java 2013-04-11 21:07:14 UTC (rev 89) +++ trunk/magalie-services/src/test/java/com/franciaflex/magalie/services/service/ArticleStorageServiceTest.java 2013-04-11 21:40:01 UTC (rev 90) @@ -40,6 +40,24 @@ } + protected StorageMovementOrder bookArticle(MagalieUser magalieUser, Building building, Article article, double requestedQuantity) throws UnavailableArticleException, RequiredDriverLicenceException { + + BookArticleRequest bookArticleRequest = new BookArticleRequest(magalieUser, building, article, requestedQuantity, null, false); + + return service.bookArticle(bookArticleRequest); + + } + + public StorageMovementOrder bookArticleWithBestEffortPolicy( + MagalieUser magalieUser, Building building, Article article, double requestedQuantity, Location destinationLocation) + throws RequiredDriverLicenceException, UnavailableArticleException { + + BookArticleRequest bookArticleRequest = new BookArticleRequest(magalieUser, building, article, requestedQuantity, null, true); + + return service.bookArticle(bookArticleRequest); + + } + @Test public void testThrowUnavailableArticle() throws Exception { @@ -48,7 +66,7 @@ StorageMovementOrder storageMovementOrder; try { - storageMovementOrder = service.bookArticle(alexandre, building, article, 100.); + storageMovementOrder = bookArticle(alexandre, building, article, 100.); if (log.isDebugEnabled()) { log.debug("storageMovementOrder = " + storageMovementOrder); } @@ -70,7 +88,7 @@ StorageMovementOrder storageMovementOrder; try { - storageMovementOrder = service.bookArticle(basile, building, article, 70.); + storageMovementOrder = bookArticle(basile, building, article, 70.); if (log.isDebugEnabled()) { log.debug("storageMovementOrder = " + storageMovementOrder); } @@ -91,7 +109,7 @@ StorageMovementOrder storageMovementOrder = null; try { - storageMovementOrder = service.bookArticle(basile, building, article, 5.); + storageMovementOrder = bookArticle(basile, building, article, 5.); if (log.isDebugEnabled()) { log.debug("storageMovementOrder = " + storageMovementOrder); } @@ -118,7 +136,7 @@ StorageMovementOrder storageMovementOrder = null; try { - storageMovementOrder = service.bookArticle(alexandre, building, article, 50.); + storageMovementOrder = bookArticle(alexandre, building, article, 50.); if (log.isDebugEnabled()) { log.debug("storageMovementOrder = " + storageMovementOrder); } @@ -152,7 +170,7 @@ StorageMovementOrder storageMovementOrder = null; try { - storageMovementOrder = service.bookArticle(alexandre, building, article, 30.); + storageMovementOrder = bookArticle(alexandre, building, article, 30.); if (log.isDebugEnabled()) { log.debug("storageMovementOrder = " + storageMovementOrder); } @@ -176,7 +194,7 @@ } try { - storageMovementOrder = service.bookArticle(cathy, building, article, 30.); + storageMovementOrder = bookArticle(cathy, building, article, 30.); if (log.isDebugEnabled()) { log.debug("storageMovementOrder = " + storageMovementOrder); } @@ -211,7 +229,7 @@ locationErrorsService.reportError(location2, alexandre); try { - StorageMovementOrder storageMovementOrder = service.bookArticle(cathy, building, article, 30.); + StorageMovementOrder storageMovementOrder = bookArticle(cathy, building, article, 30.); if (log.isDebugEnabled()) { log.debug("storageMovementOrder = " + storageMovementOrder); } @@ -242,7 +260,7 @@ Location location1 = fixture("location1"); try { - StorageMovementOrder storageMovementOrder = service.bookArticleWithBestEffortPolicy(alexandre, building, article, 30., null); + StorageMovementOrder storageMovementOrder = bookArticleWithBestEffortPolicy(alexandre, building, article, 30., null); if (log.isDebugEnabled()) { log.debug("storageMovementOrder = " + storageMovementOrder); }
participants (1)
-
bleny@users.forge.codelutin.com