package com.zy.asrs.utils;
|
|
import com.zy.asrs.entity.OrderDetl;
|
import com.zy.asrs.entity.param.OrderToLine;
|
|
import java.util.ArrayList;
|
import java.util.List;
|
import java.util.regex.Pattern;
|
|
public class ToSortLineUtils {
|
private static final String sign_F = "|F|LABEL_";
|
|
public static void main(String[] args) {
|
int itemTypes = 5;
|
|
List<GroupedLockerOptimizerUtils.Item> items = new ArrayList<>();
|
|
for (int i = 0; i < itemTypes; i++) {
|
String name = i+"a";
|
int maxCapacity = i*10;
|
int stock = i*11;
|
items.add(new GroupedLockerOptimizerUtils.Item(name, maxCapacity, stock));
|
}
|
|
// 使用分组优先算法
|
GroupedLockerOptimizerUtils.PackingSolution solution = GroupedLockerOptimizerUtils.packItemsWithGrouping(items);
|
for (GroupedLockerOptimizerUtils.Locker locker:solution.lockers) {
|
for (String mantnr : locker.contents.keySet()){
|
System.out.println(mantnr+"<===>"+locker.contents.get(mantnr));
|
}
|
}
|
System.out.println("\n" + solution);
|
}
|
|
public static String MergerParameter(String sku,String po,String upc){
|
return sku+sign_F+po+sign_F+upc;
|
}
|
|
public static OrderToLine GetOrderToLine(List<GroupedLockerOptimizerUtils.Item> items,OrderToLine orderToLine){
|
Long bindingTag = System.currentTimeMillis();//混搭标记
|
List<OrderToLine.MatList> matLists = new ArrayList<>();
|
// 使用分组优先算法
|
GroupedLockerOptimizerUtils.PackingSolution solution = GroupedLockerOptimizerUtils.packItemsWithGrouping(items);
|
for (GroupedLockerOptimizerUtils.Locker locker:solution.lockers) {
|
for (String mantnr : locker.contents.keySet()){
|
System.out.println(mantnr+"<===>"+locker.contents.get(mantnr));
|
String[] split = mantnr.split(Pattern.quote(sign_F));
|
OrderToLine.MatList mat = new OrderToLine.MatList(
|
split[0], // matnr -> sku
|
split[1], // supp -> po -> s1
|
locker.contents.get(mantnr).doubleValue(), //整料
|
split[2], //barcode -> upc -> s2
|
1,
|
null, //origin -> supplier 货源
|
bindingTag
|
);
|
matLists.add(mat);
|
}
|
bindingTag++;
|
}
|
orderToLine.setMatList(matLists);
|
return orderToLine;
|
}
|
}
|