Byd_Dg_Java/youchain-system/src/test/java/com/youchain/EladminSystemApplicationTes...

220 lines
7.6 KiB
Java
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

package com.youchain;
import com.youchain.basicdata.domain.BigItem;
import com.youchain.basicdata.vo.BarCodeVo;
import com.youchain.businessdata.domain.PickDetail;
import com.youchain.utils.BaseStatus;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;
import java.util.*;
import java.util.concurrent.*;
import java.util.stream.Collectors;
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
public class EladminSystemApplicationTests {
@Test
public void contextLoads() {
}
public static void main(String[] args) {
GdDetail gdDetail1 = new GdDetail();
gdDetail1.setBigItem(null);
gdDetail1.setOrderType("单品");
GdDetail gdDetail2 = new GdDetail();
BigItem bigItem2 = new BigItem();
bigItem2.setCode("CT_001");
gdDetail2.setBigItem(bigItem2);
gdDetail2.setOrderType("成品");
gdDetail2.setBigItemQty(1d);
gdDetail2.setStation("OP1070-2");
GdDetail gdDetail3 = new GdDetail();
BigItem bigItem3 = new BigItem();
bigItem3.setCode("CT_001");
gdDetail3.setBigItem(bigItem3);
gdDetail3.setOrderType("成品");
gdDetail3.setBigItemQty(2d);
gdDetail3.setStation("OP1070-1");
GdDetail gdDetail4 = new GdDetail();
BigItem bigItem4 = new BigItem();
bigItem4.setCode("CT_002");
gdDetail4.setBigItem(bigItem4);
gdDetail4.setOrderType("成品");
gdDetail4.setBigItemQty(3d);
gdDetail4.setStation("OP2060");
GdDetail gdDetail5 = new GdDetail();
BigItem bigItem5 = new BigItem();
bigItem5.setCode("CT_002");
gdDetail5.setBigItem(bigItem5);
gdDetail5.setOrderType("成品");
gdDetail5.setBigItemQty(4d);
gdDetail5.setStation("OP1030");
List<GdDetail> gdDetailList = new ArrayList<>();
gdDetailList.add(gdDetail1);
gdDetailList.add(gdDetail2);
gdDetailList.add(gdDetail3);
gdDetailList.add(gdDetail4);
gdDetailList.add(gdDetail5);
Map<String, Map<String, List<GdDetail>>> groupedGdDetailMap = gdDetailList.stream()
.filter(gdDetail -> BaseStatus.GD_TYPE_CT.equals(gdDetail.getOrderType()))
.filter(gdDetail -> gdDetail.getBigItem() != null)
.collect(Collectors.groupingBy(
gdDetail -> gdDetail.getBigItem().getCode(),
Collectors.groupingBy(GdDetail::getStation)
));
groupedGdDetailMap.forEach((code, stationMap) -> {
stationMap.forEach((station, gdDetails) -> {
gdDetails.forEach(gdDetail -> {
System.out.println("Code: " + code + ", Station: " + station + ", GdDetail: " + gdDetail);
});
});
});
}
private static final int MAX_TASK_COUNT = 4;
private static final long TIMEOUT_MS = 600000; // 10分钟以毫秒为单位
private long lastTaskTime = System.currentTimeMillis();
private List<Integer> taskQueue = new ArrayList<>(MAX_TASK_COUNT);
void aa() {
List<String> list = new ArrayList<>();
list.add("物料库存不足,请先补充库存!");
list.add("数量已分配!");
list.add("托盘有任务,请先完成任务!");
boolean containsSuccess = list.stream().anyMatch(s -> s.contains("分配成功"));
if (containsSuccess) {
System.out.println("集合中存在分配成功的信息!");
} else {
System.out.println("集合中不存在分配成功的信息!");
}
CompletableFuture<Void> asnDetailFuture = CompletableFuture.runAsync(() -> {
System.out.println("新增asnDetail");
});
CompletableFuture<Void> itemKeyFuture = asnDetailFuture.thenRunAsync(() -> {
System.out.println("新增itemKey");
});
CompletableFuture<Void> taskFuture = itemKeyFuture.thenRunAsync(() -> {
System.out.println("新增task");
});
taskFuture.join();
Set<BarCodeVo> barCodeVos = new HashSet<>();
BarCodeVo barCodeVo = new BarCodeVo();
barCodeVo.setItemCode("123");
barCodeVo.setBoxNumber("1");
barCodeVos.add(barCodeVo);
BarCodeVo barCodeVo2 = new BarCodeVo();
barCodeVo2.setItemCode("123");
barCodeVo2.setBoxNumber("2");
barCodeVos.add(barCodeVo2);
BarCodeVo barCodeVo3 = new BarCodeVo();
barCodeVo3.setItemCode("456");
barCodeVo3.setBoxNumber("3");
barCodeVos.add(barCodeVo3);
for (BarCodeVo vo : barCodeVos) {
System.out.println(vo.getItemCode());
}
String firstItemCode = barCodeVos.iterator().next().getItemCode();
boolean allSame = barCodeVos.stream()
.allMatch(vo -> vo.getItemCode().equals(firstItemCode));
if (allSame) {
System.out.println("全部匹配");
} else {
System.out.println("不匹配");
}
PickDetail pickDetail1 = new PickDetail();
pickDetail1.setId(1L);
pickDetail1.setOrderQty(2d);
pickDetail1.setAllocatedQty(2d);
PickDetail pickDetail2 = new PickDetail();
pickDetail2.setId(2L);
pickDetail2.setOrderQty(2d);
pickDetail2.setAllocatedQty(2d);
PickDetail pickDetail3 = new PickDetail();
pickDetail3.setId(2L);
pickDetail3.setOrderQty(2d);
pickDetail3.setAllocatedQty(0d);
List<PickDetail> pickDetails = new ArrayList<>();
pickDetails.add(pickDetail1);
pickDetails.add(pickDetail2);
pickDetails.add(pickDetail3);
boolean allAllocated = pickDetails.stream()
.allMatch(detail -> detail.getOrderQty().equals(detail.getAllocatedQty()));
boolean anyAllocated = pickDetails.stream()
.anyMatch(detail -> detail.getOrderQty().equals(detail.getAllocatedQty()));
if (allAllocated) {
System.out.println("全部已分配");
} else if (anyAllocated) {
System.out.println("部分已分配");
}
List<Integer> list1 = Arrays.asList();
List<Integer> list2 = Arrays.asList();
List<Integer> list3 = new ArrayList<>(list1);
list3.addAll(list2);
System.out.println(list3); // 输出: [1, 2, 3, 4, 5]
/*double taoQty=2;//基础套数
double xTaoQty=3;//需求套数
double ckdQty=Math.ceil(xTaoQty/taoQty);//生成出库单数量
System.out.println(ckdQty);*/
}
@Test
public void test() {
List<Integer> taskLists = new ArrayList<>();
taskLists.add(1);
taskLists.add(2);
taskLists.add(3);
taskLists.add(4);
taskLists.add(5);
taskLists.add(6);
for (Integer id : taskLists) {
try {
taskQueue.add(id);
if (taskQueue.size() >= MAX_TASK_COUNT) {
System.out.println("任务已满足,当前任务数:" + taskQueue.size());
taskQueue.clear();
lastTaskTime = System.currentTimeMillis();
} else if (System.currentTimeMillis() - lastTaskTime >= TIMEOUT_MS) {
System.out.println("超过10分钟未满足4个任务当前任务数" + taskQueue.size());
taskQueue.clear();
lastTaskTime = System.currentTimeMillis();
}
} catch (Exception e) {
throw new RuntimeException(e);
}
System.out.println(id);
}
}
}