From a2f27094c3e8b16d49732621c10020ccd646034f Mon Sep 17 00:00:00 2001 From: Qiuyi LI Date: Mon, 13 Nov 2023 16:10:22 +0100 Subject: [PATCH 1/3] Create a new method for finding adequate tubes and a main to test for regression --- .../domain/job/AddPortraitTubeJob.java | 235 +++++++++++++++++- 1 file changed, 232 insertions(+), 3 deletions(-) diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/domain/job/AddPortraitTubeJob.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/domain/job/AddPortraitTubeJob.java index 37553a4ac..b89caf958 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/domain/job/AddPortraitTubeJob.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/domain/job/AddPortraitTubeJob.java @@ -35,12 +35,13 @@ public class AddPortraitTubeJob implements Job { private static final List DEFAULT_SHOPS = Arrays.asList("JCH3", "JCH4", "JCH5"); private static final Integer DEFAULT_NUMBER_OF_THREADS = 10; + private static final String TUBE_30_SKU_SINGLE_DOUBLE = "PJ95310032-WIA"; private static final String TUBE_40_SKU_SINGLE = "PJ95430032-WIA"; private static final String TUBE_40_SKU_MULTIPLE = "PJ95430040-WIA"; private static final String TUBE_50_SKU_SINGLE = "PJ95530032-WIA"; private static final String TUBE_50_SKU_MULTIPLE = "PJ95530040-WIA"; - private static final List TUBE_SKUS = Arrays.asList(TUBE_50_SKU_MULTIPLE, TUBE_50_SKU_SINGLE, - TUBE_40_SKU_MULTIPLE, TUBE_40_SKU_SINGLE); + private static final List TUBE_SKUS = Arrays.asList(TUBE_30_SKU_SINGLE_DOUBLE, TUBE_50_SKU_MULTIPLE, + TUBE_50_SKU_SINGLE, TUBE_40_SKU_MULTIPLE, TUBE_40_SKU_SINGLE); private static final String PREFIX_50_CANVAS = "JJ2501"; private static final String PREFIX_40_CANVAS = "JJ2500"; private static final String PREFIX_30_CANVAS = "JJ2502"; @@ -153,7 +154,7 @@ public class AddPortraitTubeJob implements Job { * @param orderItems List of order items * @return Set of pairs */ - private Pair>, HashSet>> findCurrentAndAdequateTubes(List orderItems) { + private static Pair>, HashSet>> findCurrentAndAdequateTubes(List orderItems) { int canvas40Count = 0; int canvas50Count = 0; HashSet> currentTubes = new HashSet<>(); @@ -208,4 +209,232 @@ public class AddPortraitTubeJob implements Job { } return Pair.of(currentTubes, adequateTubes); } + + private static Pair>, HashSet>> newFindCurrentAndAdequateTubes(List orderItems) { + int canvas30Count = 0; + int canvas40Count = 0; + int canvas50Count = 0; + HashSet> currentTubes = new HashSet<>(); + HashSet> adequateTubes = new HashSet<>(); + for (OrderItem orderItem : orderItems) { + String sku = orderItem.getErpCode(); + int quantity = orderItem.getQuantity(); + if (TUBE_SKUS.contains(sku)) { + currentTubes.add(Pair.of(sku, quantity)); + } else if (sku.startsWith(PREFIX_50_CANVAS)) { + canvas50Count += quantity; + } else if (sku.startsWith(PREFIX_40_CANVAS)) { + canvas40Count += quantity; + } else if (sku.startsWith(PREFIX_30_CANVAS)) { + canvas30Count += quantity; + } + } + + int canvas30RemainderCount = canvas30Count % MAXIMUM_CANVAS_IN_TUBE.intValue(); + int canvas40RemainderCount = canvas40Count % MAXIMUM_CANVAS_IN_TUBE.intValue(); + int canvas50RemainderCount = canvas50Count % MAXIMUM_CANVAS_IN_TUBE.intValue(); + int totalRemainderCount = canvas30RemainderCount + canvas40RemainderCount + canvas50RemainderCount; + int tube50SingleCount = 0; + int tube50MultipleCount = (int) Math.floor(canvas50Count / MAXIMUM_CANVAS_IN_TUBE); + int tube40SingleCount = 0; + int tube40MultipleCount = (int) Math.floor(canvas40Count / MAXIMUM_CANVAS_IN_TUBE); + int tube30SingleDoubleCount = 0; + // 3 canvas of 30cm also go into 40 multiple tubes + tube40MultipleCount += (int) Math.floor(canvas30Count / MAXIMUM_CANVAS_IN_TUBE); + // When remaining 1 to 3 canvases + if (totalRemainderCount > 0 && totalRemainderCount < 4) { + if (canvas50RemainderCount > 0) { + // It only takes one 50cm canvas with any other canvas to impose the use of 50cm multiple tube + if (totalRemainderCount > 1) { + tube50MultipleCount++; + } else { + tube50SingleCount++; + } + } else { + if (totalRemainderCount > 1) { + tube40MultipleCount++; + } else { + if (canvas40RemainderCount > 0) { + tube40SingleCount++; + } else if (canvas30RemainderCount > 0){ + tube30SingleDoubleCount++; + } + } + } + } else if (totalRemainderCount >= 4) { + // When remaining 4 to 6 canvases, one 50cm canvas imposes one 50cm multiple tube + if (canvas50RemainderCount > 0) { + tube50MultipleCount++; + // If we have two 50cm canvases and a total of 5 of 6 canvases, then we have to use 2 50cm multiple tubes + if (totalRemainderCount > 4) { + tube50MultipleCount++; + } else { + // There's one remaining canvas, an adequate single tube suffices + if (canvas50RemainderCount > 1) { + tube50SingleCount++; + } else if (canvas40RemainderCount > 0) { + tube40SingleCount++; + } else if (canvas30RemainderCount > 0){ + tube30SingleDoubleCount++; + } + } + } else { + // No 50cm canvases means only one combination possible: two 40cm canvases and two 30cm canvases + tube40MultipleCount++; + tube30SingleDoubleCount++; + } + } + + if (tube50SingleCount > 0) { + adequateTubes.add(Pair.of(TUBE_50_SKU_SINGLE, tube50SingleCount)); + } + if (tube50MultipleCount > 0) { + adequateTubes.add(Pair.of(TUBE_50_SKU_MULTIPLE, tube50MultipleCount)); + } + if (tube40SingleCount > 0) { + adequateTubes.add(Pair.of(TUBE_40_SKU_SINGLE, tube40SingleCount)); + } + if (tube40MultipleCount > 0) { + adequateTubes.add(Pair.of(TUBE_40_SKU_MULTIPLE, tube40MultipleCount)); + } + if (tube30SingleDoubleCount > 0) { + adequateTubes.add(Pair.of(TUBE_30_SKU_SINGLE_DOUBLE, tube30SingleDoubleCount)); + } + return Pair.of(currentTubes, adequateTubes); + } + + public static void main(String[] args) { + List orderItems = buildOrderItems(1, 0); + compare(orderItems); + + orderItems = buildOrderItems(0, 1); + compare(orderItems); + + orderItems = buildOrderItems(1, 1); + compare(orderItems); + + orderItems = buildOrderItems(2, 0); + compare(orderItems); + + orderItems = buildOrderItems(0, 2); + compare(orderItems); + + orderItems = buildOrderItems(2, 1); + compare(orderItems); + + orderItems = buildOrderItems(1, 2); + compare(orderItems); + + orderItems = buildOrderItems(2, 2); + compare(orderItems); + + orderItems = buildOrderItems(3, 0); + compare(orderItems); + + orderItems = buildOrderItems(0, 3); + compare(orderItems); + + orderItems = buildOrderItems(3, 1); + compare(orderItems); + + orderItems = buildOrderItems(1, 3); + compare(orderItems); + + orderItems = buildOrderItems(3, 2); + compare(orderItems); + + orderItems = buildOrderItems(2, 3); + compare(orderItems); + + orderItems = buildOrderItems(3, 3); + compare(orderItems); + + orderItems = buildOrderItems(4, 0); + compare(orderItems); + + orderItems = buildOrderItems(0, 4); + compare(orderItems); + + orderItems = buildOrderItems(4, 1); + compare(orderItems); + + orderItems = buildOrderItems(1, 4); + compare(orderItems); + + orderItems = buildOrderItems(4, 2); + compare(orderItems); + + orderItems = buildOrderItems(2, 4); + compare(orderItems); + + orderItems = buildOrderItems(4, 3); + compare(orderItems); + + orderItems = buildOrderItems(3, 4); + compare(orderItems); + + orderItems = buildOrderItems(4, 4); + compare(orderItems); + + orderItems = buildOrderItems(5, 0); + compare(orderItems); + + orderItems = buildOrderItems(0, 5); + compare(orderItems); + + orderItems = buildOrderItems(5, 1); + compare(orderItems); + + orderItems = buildOrderItems(1, 5); + compare(orderItems); + + orderItems = buildOrderItems(5, 2); + compare(orderItems); + + orderItems = buildOrderItems(2, 5); + compare(orderItems); + + orderItems = buildOrderItems(5, 3); + compare(orderItems); + + orderItems = buildOrderItems(3, 5); + compare(orderItems); + + orderItems = buildOrderItems(5, 4); + compare(orderItems); + + orderItems = buildOrderItems(4, 5); + compare(orderItems); + + orderItems = buildOrderItems(5, 5); + compare(orderItems); + + } + + private static void compare(List orderItems) { + HashSet> tubesOldWay = findCurrentAndAdequateTubes(orderItems).getRight(); + HashSet> tubesNewWay = newFindCurrentAndAdequateTubes(orderItems).getRight(); + System.out.println("old way : " + tubesOldWay); + System.out.println("new way : " + tubesNewWay); + System.out.println(tubesOldWay.containsAll(tubesNewWay) && tubesNewWay.containsAll(tubesOldWay) ? "we're good" : "shit"); + } + + private static List buildOrderItems(Integer canvas40q, Integer canvas50q) { + List orderItems = new ArrayList<>(); + if (canvas40q != null) { + orderItems.add(buildOrderItem(PREFIX_40_CANVAS, canvas40q)); + } + if (canvas50q != null) { + orderItems.add(buildOrderItem(PREFIX_50_CANVAS, canvas50q)); + } + return orderItems; + } + + private static OrderItem buildOrderItem(String erpCode, Integer quantity) { + OrderItem orderItem = new OrderItem(); + orderItem.setErpCode(erpCode); + orderItem.setQuantity(quantity); + return orderItem; + } + } From 0c57d68a12b0941f0f6de76c9cea60f1e1391561 Mon Sep 17 00:00:00 2001 From: Qiuyi LI Date: Tue, 14 Nov 2023 14:20:23 +0100 Subject: [PATCH 2/3] Validate tests with improvement in case of two 40cm canvases and 50cm canvases --- .../domain/job/AddPortraitTubeJob.java | 118 ++++++++---------- 1 file changed, 53 insertions(+), 65 deletions(-) diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/domain/job/AddPortraitTubeJob.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/domain/job/AddPortraitTubeJob.java index b89caf958..c2e390267 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/domain/job/AddPortraitTubeJob.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/domain/job/AddPortraitTubeJob.java @@ -252,7 +252,11 @@ public class AddPortraitTubeJob implements Job { } } else { if (totalRemainderCount > 1) { - tube40MultipleCount++; + if (canvas40RemainderCount > 0) { + tube40MultipleCount++; + } else { + tube30SingleDoubleCount++; + } } else { if (canvas40RemainderCount > 0) { tube40SingleCount++; @@ -265,18 +269,23 @@ public class AddPortraitTubeJob implements Job { // When remaining 4 to 6 canvases, one 50cm canvas imposes one 50cm multiple tube if (canvas50RemainderCount > 0) { tube50MultipleCount++; - // If we have two 50cm canvases and a total of 5 of 6 canvases, then we have to use 2 50cm multiple tubes - if (totalRemainderCount > 4) { - tube50MultipleCount++; - } else { - // There's one remaining canvas, an adequate single tube suffices - if (canvas50RemainderCount > 1) { - tube50SingleCount++; - } else if (canvas40RemainderCount > 0) { - tube40SingleCount++; - } else if (canvas30RemainderCount > 0){ - tube30SingleDoubleCount++; + if (canvas50RemainderCount > 1) { + // If we have two 50cm canvases and a total of 5 of 6 canvases + if (totalRemainderCount > 4) { + if (canvas40RemainderCount > 1) { + tube40MultipleCount++; + } else { + tube30SingleDoubleCount++; + } + } else { + if (canvas40RemainderCount > 1) { + tube40SingleCount++; + } else { + tube30SingleDoubleCount++; + } } + } else { + tube30SingleDoubleCount++; } } else { // No 50cm canvases means only one combination possible: two 40cm canvases and two 30cm canvases @@ -304,111 +313,86 @@ public class AddPortraitTubeJob implements Job { } public static void main(String[] args) { - List orderItems = buildOrderItems(1, 0); + List orderItems = buildOrderItems(0,0,0); compare(orderItems); - orderItems = buildOrderItems(0, 1); + orderItems = buildOrderItems(0,0,1); compare(orderItems); - orderItems = buildOrderItems(1, 1); + orderItems = buildOrderItems(0,0,2); compare(orderItems); - orderItems = buildOrderItems(2, 0); + orderItems = buildOrderItems(0,1,0); compare(orderItems); - orderItems = buildOrderItems(0, 2); + orderItems = buildOrderItems(0,1,1); compare(orderItems); - orderItems = buildOrderItems(2, 1); + orderItems = buildOrderItems(0,1,2); compare(orderItems); - orderItems = buildOrderItems(1, 2); + orderItems = buildOrderItems(0,2,0); compare(orderItems); - orderItems = buildOrderItems(2, 2); + orderItems = buildOrderItems(0,2,1); compare(orderItems); - orderItems = buildOrderItems(3, 0); + orderItems = buildOrderItems(0,2,2); compare(orderItems); - orderItems = buildOrderItems(0, 3); + orderItems = buildOrderItems(1,0,0); compare(orderItems); - orderItems = buildOrderItems(3, 1); + orderItems = buildOrderItems(1,0,1); compare(orderItems); - orderItems = buildOrderItems(1, 3); + orderItems = buildOrderItems(1,0,2); compare(orderItems); - orderItems = buildOrderItems(3, 2); + orderItems = buildOrderItems(1,1,0); compare(orderItems); - orderItems = buildOrderItems(2, 3); + orderItems = buildOrderItems(1,1,1); compare(orderItems); - orderItems = buildOrderItems(3, 3); + orderItems = buildOrderItems(1,1,2); compare(orderItems); - orderItems = buildOrderItems(4, 0); + orderItems = buildOrderItems(1,2,0); compare(orderItems); - orderItems = buildOrderItems(0, 4); + orderItems = buildOrderItems(1,2,1); compare(orderItems); - orderItems = buildOrderItems(4, 1); + orderItems = buildOrderItems(1,2,2); compare(orderItems); - orderItems = buildOrderItems(1, 4); + orderItems = buildOrderItems(2,0,0); compare(orderItems); - orderItems = buildOrderItems(4, 2); + orderItems = buildOrderItems(2,0,1); compare(orderItems); - orderItems = buildOrderItems(2, 4); + orderItems = buildOrderItems(2,0,2); compare(orderItems); - orderItems = buildOrderItems(4, 3); + orderItems = buildOrderItems(2,1,0); compare(orderItems); - orderItems = buildOrderItems(3, 4); + orderItems = buildOrderItems(2,1,1); compare(orderItems); - orderItems = buildOrderItems(4, 4); + orderItems = buildOrderItems(2,1,2); compare(orderItems); - orderItems = buildOrderItems(5, 0); + orderItems = buildOrderItems(2,2,0); compare(orderItems); - orderItems = buildOrderItems(0, 5); + orderItems = buildOrderItems(2,2,1); compare(orderItems); - orderItems = buildOrderItems(5, 1); + orderItems = buildOrderItems(2,2,2); compare(orderItems); - - orderItems = buildOrderItems(1, 5); - compare(orderItems); - - orderItems = buildOrderItems(5, 2); - compare(orderItems); - - orderItems = buildOrderItems(2, 5); - compare(orderItems); - - orderItems = buildOrderItems(5, 3); - compare(orderItems); - - orderItems = buildOrderItems(3, 5); - compare(orderItems); - - orderItems = buildOrderItems(5, 4); - compare(orderItems); - - orderItems = buildOrderItems(4, 5); - compare(orderItems); - - orderItems = buildOrderItems(5, 5); - compare(orderItems); - } private static void compare(List orderItems) { @@ -419,14 +403,18 @@ public class AddPortraitTubeJob implements Job { System.out.println(tubesOldWay.containsAll(tubesNewWay) && tubesNewWay.containsAll(tubesOldWay) ? "we're good" : "shit"); } - private static List buildOrderItems(Integer canvas40q, Integer canvas50q) { + private static List buildOrderItems(Integer canvas30q, Integer canvas40q, Integer canvas50q) { List orderItems = new ArrayList<>(); + if (canvas30q != null) { + orderItems.add(buildOrderItem(PREFIX_30_CANVAS, canvas30q)); + } if (canvas40q != null) { orderItems.add(buildOrderItem(PREFIX_40_CANVAS, canvas40q)); } if (canvas50q != null) { orderItems.add(buildOrderItem(PREFIX_50_CANVAS, canvas50q)); } + System.out.println(canvas30q + " x 30cm " + canvas40q + " x 40cm " + canvas50q + " x 50cm"); return orderItems; } From 140997994a76b920c6b565417a07630849b3b69d Mon Sep 17 00:00:00 2001 From: Qiuyi LI Date: Tue, 14 Nov 2023 14:26:05 +0100 Subject: [PATCH 3/3] Replace old algo by new algo --- .../domain/job/AddPortraitTubeJob.java | 172 +----------------- 1 file changed, 1 insertion(+), 171 deletions(-) diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/domain/job/AddPortraitTubeJob.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/domain/job/AddPortraitTubeJob.java index c2e390267..95ee6fba1 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/domain/job/AddPortraitTubeJob.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/domain/job/AddPortraitTubeJob.java @@ -154,63 +154,7 @@ public class AddPortraitTubeJob implements Job { * @param orderItems List of order items * @return Set of pairs */ - private static Pair>, HashSet>> findCurrentAndAdequateTubes(List orderItems) { - int canvas40Count = 0; - int canvas50Count = 0; - HashSet> currentTubes = new HashSet<>(); - HashSet> adequateTubes = new HashSet<>(); - for (OrderItem orderItem : orderItems) { - String sku = orderItem.getErpCode(); - int quantity = orderItem.getQuantity(); - if (TUBE_SKUS.contains(sku)) { - currentTubes.add(Pair.of(sku, quantity)); - } else if (sku.startsWith(PREFIX_50_CANVAS)) { - canvas50Count += quantity; - } else if (sku.startsWith(PREFIX_40_CANVAS)) { - canvas40Count += quantity; - } else if (sku.startsWith(PREFIX_30_CANVAS)) { - canvas40Count += quantity; - } - } - - int canvas40RemainderCount = canvas40Count % MAXIMUM_CANVAS_IN_TUBE.intValue(); - int canvas50RemainderCount = canvas50Count % MAXIMUM_CANVAS_IN_TUBE.intValue(); - int tube50SingleCount = 0; - int tube50MultipleCount = (int) Math.floor(canvas50Count / MAXIMUM_CANVAS_IN_TUBE); - int tube40SingleCount = 0; - int tube40MultipleCount = (int) Math.floor(canvas40Count / MAXIMUM_CANVAS_IN_TUBE); - if (canvas50RemainderCount > 0 && canvas40RemainderCount > 0) { - tube50MultipleCount++; - if (canvas50RemainderCount == 2 && canvas40RemainderCount == 2) { - tube50SingleCount++; - } - } else { - if (canvas40RemainderCount == 1) { - tube40SingleCount++; - } else if (canvas40RemainderCount == 2) { - tube40MultipleCount++; - } else if (canvas50RemainderCount == 1) { - tube50SingleCount++; - } else if (canvas50RemainderCount == 2) { - tube50MultipleCount++; - } - } - if (tube50SingleCount > 0) { - adequateTubes.add(Pair.of(TUBE_50_SKU_SINGLE, tube50SingleCount)); - } - if (tube50MultipleCount > 0) { - adequateTubes.add(Pair.of(TUBE_50_SKU_MULTIPLE, tube50MultipleCount)); - } - if (tube40SingleCount > 0) { - adequateTubes.add(Pair.of(TUBE_40_SKU_SINGLE, tube40SingleCount)); - } - if (tube40MultipleCount > 0) { - adequateTubes.add(Pair.of(TUBE_40_SKU_MULTIPLE, tube40MultipleCount)); - } - return Pair.of(currentTubes, adequateTubes); - } - - private static Pair>, HashSet>> newFindCurrentAndAdequateTubes(List orderItems) { + private Pair>, HashSet>> findCurrentAndAdequateTubes(List orderItems) { int canvas30Count = 0; int canvas40Count = 0; int canvas50Count = 0; @@ -311,118 +255,4 @@ public class AddPortraitTubeJob implements Job { } return Pair.of(currentTubes, adequateTubes); } - - public static void main(String[] args) { - List orderItems = buildOrderItems(0,0,0); - compare(orderItems); - - orderItems = buildOrderItems(0,0,1); - compare(orderItems); - - orderItems = buildOrderItems(0,0,2); - compare(orderItems); - - orderItems = buildOrderItems(0,1,0); - compare(orderItems); - - orderItems = buildOrderItems(0,1,1); - compare(orderItems); - - orderItems = buildOrderItems(0,1,2); - compare(orderItems); - - orderItems = buildOrderItems(0,2,0); - compare(orderItems); - - orderItems = buildOrderItems(0,2,1); - compare(orderItems); - - orderItems = buildOrderItems(0,2,2); - compare(orderItems); - - orderItems = buildOrderItems(1,0,0); - compare(orderItems); - - orderItems = buildOrderItems(1,0,1); - compare(orderItems); - - orderItems = buildOrderItems(1,0,2); - compare(orderItems); - - orderItems = buildOrderItems(1,1,0); - compare(orderItems); - - orderItems = buildOrderItems(1,1,1); - compare(orderItems); - - orderItems = buildOrderItems(1,1,2); - compare(orderItems); - - orderItems = buildOrderItems(1,2,0); - compare(orderItems); - - orderItems = buildOrderItems(1,2,1); - compare(orderItems); - - orderItems = buildOrderItems(1,2,2); - compare(orderItems); - - orderItems = buildOrderItems(2,0,0); - compare(orderItems); - - orderItems = buildOrderItems(2,0,1); - compare(orderItems); - - orderItems = buildOrderItems(2,0,2); - compare(orderItems); - - orderItems = buildOrderItems(2,1,0); - compare(orderItems); - - orderItems = buildOrderItems(2,1,1); - compare(orderItems); - - orderItems = buildOrderItems(2,1,2); - compare(orderItems); - - orderItems = buildOrderItems(2,2,0); - compare(orderItems); - - orderItems = buildOrderItems(2,2,1); - compare(orderItems); - - orderItems = buildOrderItems(2,2,2); - compare(orderItems); - } - - private static void compare(List orderItems) { - HashSet> tubesOldWay = findCurrentAndAdequateTubes(orderItems).getRight(); - HashSet> tubesNewWay = newFindCurrentAndAdequateTubes(orderItems).getRight(); - System.out.println("old way : " + tubesOldWay); - System.out.println("new way : " + tubesNewWay); - System.out.println(tubesOldWay.containsAll(tubesNewWay) && tubesNewWay.containsAll(tubesOldWay) ? "we're good" : "shit"); - } - - private static List buildOrderItems(Integer canvas30q, Integer canvas40q, Integer canvas50q) { - List orderItems = new ArrayList<>(); - if (canvas30q != null) { - orderItems.add(buildOrderItem(PREFIX_30_CANVAS, canvas30q)); - } - if (canvas40q != null) { - orderItems.add(buildOrderItem(PREFIX_40_CANVAS, canvas40q)); - } - if (canvas50q != null) { - orderItems.add(buildOrderItem(PREFIX_50_CANVAS, canvas50q)); - } - System.out.println(canvas30q + " x 30cm " + canvas40q + " x 40cm " + canvas50q + " x 50cm"); - return orderItems; - } - - private static OrderItem buildOrderItem(String erpCode, Integer quantity) { - OrderItem orderItem = new OrderItem(); - orderItem.setErpCode(erpCode); - orderItem.setQuantity(quantity); - return orderItem; - } - }