From 140997994a76b920c6b565417a07630849b3b69d Mon Sep 17 00:00:00 2001 From: Qiuyi LI Date: Tue, 14 Nov 2023 14:26:05 +0100 Subject: [PATCH] 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; - } - }