r416 - in trunk: magalie-persistence/src/main/java/com/franciaflex/magalie/persistence magalie-persistence/src/main/xmi magalie-services/src/main/java/com/franciaflex/magalie/services/service magalie-services/src/main/resources magalie-services/src/test/java/com/franciaflex/magalie/services/service magalie-web/src/main/java/com/franciaflex/magalie/web/action
Author: bleny Date: 2013-09-11 17:58:28 +0200 (Wed, 11 Sep 2013) New Revision: 416 Url: http://forge.codelutin.com/projects/franciaflex-magalie/repository/revisions... Log: fixes #3203 sort articles in reception by receptionPriority Modified: trunk/magalie-persistence/src/main/java/com/franciaflex/magalie/persistence/StoredArticles.java trunk/magalie-persistence/src/main/xmi/magalie.zargo trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/service/ReceptionService.java trunk/magalie-services/src/main/resources/fixtures.yaml trunk/magalie-services/src/test/java/com/franciaflex/magalie/services/service/ReceptionServiceTest.java trunk/magalie-web/src/main/java/com/franciaflex/magalie/web/action/PrepareArticleReceptionAction.java Modified: trunk/magalie-persistence/src/main/java/com/franciaflex/magalie/persistence/StoredArticles.java =================================================================== --- trunk/magalie-persistence/src/main/java/com/franciaflex/magalie/persistence/StoredArticles.java 2013-09-11 15:57:42 UTC (rev 415) +++ trunk/magalie-persistence/src/main/java/com/franciaflex/magalie/persistence/StoredArticles.java 2013-09-11 15:58:28 UTC (rev 416) @@ -40,6 +40,14 @@ public class StoredArticles { + public static Ordering<StoredArticle> receptionPriorityComparator() { + return Ordering.natural().onResultOf(getReceptionPriority()); + } + + public static Function<StoredArticle, String> getReceptionPriority() { + return new GetReceptionPriority(); + } + /** * Put fixed sites for given article first, or ignore it according to the value of * {@link com.franciaflex.magalie.persistence.entity.Article#isFixedLocationsFirst()} @@ -171,4 +179,12 @@ return Predicates.compose(Locations.barcodeEquals(originLocationBarcode), getLocationFunction()); } + protected static class GetReceptionPriority implements Function<StoredArticle, String> { + + @Override + public String apply(StoredArticle input) { + return input.getReceptionPriority(); + } + } + } Modified: trunk/magalie-persistence/src/main/xmi/magalie.zargo =================================================================== (Binary files differ) Modified: trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/service/ReceptionService.java =================================================================== --- trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/service/ReceptionService.java 2013-09-11 15:57:42 UTC (rev 415) +++ trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/service/ReceptionService.java 2013-09-11 15:58:28 UTC (rev 416) @@ -84,7 +84,7 @@ public SuppliersToReceive getReceivedSuppliers(Building building) { - List<StoredArticle> allReceivedArticles = getReceivedArticles(building, null); + Set<StoredArticle> allReceivedArticles = getReceivedArticles(building, null); Iterable<Supplier> suppliers = Sets.newHashSet( // to prevent multiple occurrence of the same supplier @@ -100,7 +100,7 @@ } - public List<StoredArticle> getReceivedArticles(Building building, String supplierId) { + public Set<StoredArticle> getReceivedArticles(Building building, String supplierId) { JpaMagaliePersistenceContext persistenceContext = serviceContext.getPersistenceContext(); @@ -133,15 +133,18 @@ receivedArticles = articleStorageService.computeActualQuantities(receivedArticles, allStorageMovementsInReception); - List<StoredArticle> result = Lists.newArrayList(receivedArticles); + Set<StoredArticle> storedArticlesByPriority = + Sets.newTreeSet(StoredArticles.receptionPriorityComparator()); + Iterables.addAll(storedArticlesByPriority, receivedArticles); + if (log.isTraceEnabled()) { - log.trace(result.size() + " stored articles found in reception for building " + log.trace(storedArticlesByPriority.size() + " stored articles found in reception for building " + building + " and supplierId " + supplierId + ": " - + result); + + storedArticlesByPriority); } - return result; + return storedArticlesByPriority; } Modified: trunk/magalie-services/src/main/resources/fixtures.yaml =================================================================== --- trunk/magalie-services/src/main/resources/fixtures.yaml 2013-09-11 15:57:42 UTC (rev 415) +++ trunk/magalie-services/src/main/resources/fixtures.yaml 2013-09-11 15:58:28 UTC (rev 416) @@ -515,6 +515,7 @@ location: *locationRecU01 quantity: 30 batchCode: lot 1 + receptionPriority: BBB222 storedArticle6: &storedArticle6 !stored-article @@ -579,6 +580,7 @@ location: *locationRecU01 quantity: 10 batchCode: lot 2 + receptionPriority: AAA111 storedArticles: - *storedArticle1 Modified: trunk/magalie-services/src/test/java/com/franciaflex/magalie/services/service/ReceptionServiceTest.java =================================================================== --- trunk/magalie-services/src/test/java/com/franciaflex/magalie/services/service/ReceptionServiceTest.java 2013-09-11 15:57:42 UTC (rev 415) +++ trunk/magalie-services/src/test/java/com/franciaflex/magalie/services/service/ReceptionServiceTest.java 2013-09-11 15:58:28 UTC (rev 416) @@ -112,12 +112,12 @@ @Test public void testGetArticlesForSupplier() { - List<StoredArticle> receivedArticles = + Set<StoredArticle> receivedArticles = service.getReceivedArticles(building, supplier.getId()); Assert.assertEquals(1, receivedArticles.size()); - Assert.assertEquals(article, receivedArticles.get(0).getArticle()); + Assert.assertEquals(article, Iterables.get(receivedArticles, 0).getArticle()); receivedArticles = service.getReceivedArticles(building, null); // null = all suppliers @@ -128,7 +128,7 @@ @Test public void testGetReceptionTask() { - List<StoredArticle> receivedArticles = + Set<StoredArticle> receivedArticles = service.getReceivedArticles(building, supplier.getId()); StoredArticle receivedArticle = @@ -180,7 +180,7 @@ @Test public void testConfirmReception() { - List<StoredArticle> receivedArticles = + Set<StoredArticle> receivedArticles = service.getReceivedArticles(building, supplier.getId()); StoredArticle storedArticle = @@ -210,7 +210,7 @@ testConfirmReception(); - List<StoredArticle> receivedArticles = + Set<StoredArticle> receivedArticles = service.getReceivedArticles(building, supplier.getId()); Assert.assertTrue(receivedArticles.isEmpty()); @@ -341,7 +341,7 @@ transaction.commit(); - List<StoredArticle> receivedArticles = + Set<StoredArticle> receivedArticles = service.getReceivedArticles(building, supplier.getId()); StoredArticle receivedArticle = @@ -397,4 +397,14 @@ // just check that there is no exception, user can check is order is OK } + @Test + public void testPriorities() { + + Set<StoredArticle> receivedArticles = + service.getReceivedArticles(building, null); + + Assert.assertEquals("AAA111", Iterables.get(receivedArticles, 0).getReceptionPriority()); + Assert.assertEquals("BBB222", Iterables.get(receivedArticles, 1).getReceptionPriority()); + + } } Modified: trunk/magalie-web/src/main/java/com/franciaflex/magalie/web/action/PrepareArticleReceptionAction.java =================================================================== --- trunk/magalie-web/src/main/java/com/franciaflex/magalie/web/action/PrepareArticleReceptionAction.java 2013-09-11 15:57:42 UTC (rev 415) +++ trunk/magalie-web/src/main/java/com/franciaflex/magalie/web/action/PrepareArticleReceptionAction.java 2013-09-11 15:58:28 UTC (rev 416) @@ -32,7 +32,7 @@ import com.franciaflex.magalie.web.MagalieSession; import com.google.common.base.Strings; -import java.util.List; +import java.util.Set; public class PrepareArticleReceptionAction extends MagalieActionSupport { @@ -42,7 +42,7 @@ protected MagalieSession session; - protected List<StoredArticle> receivedArticles; + protected Set<StoredArticle> receivedArticles; protected SuppliersToReceive suppliersToReceive; @@ -98,7 +98,7 @@ return suppliersToReceive; } - public List<StoredArticle> getReceivedArticles() { + public Set<StoredArticle> getReceivedArticles() { return receivedArticles; }
participants (1)
-
bleny@users.forge.codelutin.com