集成oms服务模块

This commit is contained in:
hjx
2026-01-19 15:20:20 +08:00
parent 1837337488
commit 56356839bf
163 changed files with 16893 additions and 0 deletions
@@ -0,0 +1,80 @@
package com.mhd.oms.util;
import com.mhd.oms.domain.taskOrder.repository.po.PoTaskDetailPO;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.function.Function;
import java.util.stream.Collectors;
public class SetGroupUtil{
public static void main(String[] args) {
DateTimeFormatter df = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
// data list
List<PoTaskDetailPO> poTaskDetailPOS = new ArrayList<>();
PoTaskDetailPO poTaskDetailPO1 = new PoTaskDetailPO();
poTaskDetailPO1.setId(1L);
poTaskDetailPO1.setTaskNo("PO202405291113");
poTaskDetailPO1.setWarehouseId(1002L);
poTaskDetailPO1.setWarehouseName("测试仓库2");
poTaskDetailPO1.setShipperId(1001L);
poTaskDetailPO1.setShipper("测试货主1");
PoTaskDetailPO poTaskDetailPO2 = new PoTaskDetailPO();
poTaskDetailPO2.setId(1L);
poTaskDetailPO2.setTaskNo("PO202405291113");
poTaskDetailPO2.setWarehouseId(1001L);
poTaskDetailPO2.setWarehouseName("测试仓库1");
poTaskDetailPO2.setShipperId(1001L);
poTaskDetailPO2.setShipper("测试货主1");
PoTaskDetailPO poTaskDetailPO3 = new PoTaskDetailPO();
poTaskDetailPO3.setId(1L);
poTaskDetailPO3.setTaskNo("PO202405291113");
poTaskDetailPO3.setWarehouseId(1001L);
poTaskDetailPO3.setWarehouseName("测试仓库1");
poTaskDetailPO3.setShipperId(1001L);
poTaskDetailPO3.setShipper("测试货主1");
poTaskDetailPOS.add(poTaskDetailPO1);
poTaskDetailPOS.add(poTaskDetailPO2);
poTaskDetailPOS.add(poTaskDetailPO3);
// 进行分组,根据仓库和货主分组
Map<String, List<PoTaskDetailPO>> groupMap = groupingBy(poTaskDetailPOS, PoTaskDetailPO::getWarehouseId, PoTaskDetailPO::getShipperId);
//打印分组结果
groupMap.forEach((k, v) -> {
System.out.println(k);
System.out.println(v);
});
}
/**
* 将数据分组,根据方法引用(bean的get方法)
*
* @param list 为分组的数据
* @param functions get方法数组
*/
@SafeVarargs
public static <T, R> Map<String, List<T>> groupingBy(List<T> list, Function<T, R>... functions) {
return list.stream().collect(Collectors.groupingBy(t -> groupingBy(t, functions)));
}
/**
* 分组工具根据函数式接口使用分组,将数据根据分组结果进行拆分
*/
@SafeVarargs
public static <T, R> String groupingBy(T t, Function<T, R>... functions) {
if (functions == null || functions.length == 0) {
throw new NullPointerException("functions数组不可以为空");
} else if (functions.length == 1) {
return functions[0].apply(t).toString();
} else {
return Arrays.stream(functions).map(fun -> fun.apply(t).toString()).reduce((str1, str2) -> str1 + "|" + str2).get();
}
}
}