package com.youchain; import com.youchain.basicdata.domain.BigItem; import com.youchain.businessdata.domain.AgvTask; import com.youchain.businessdata.domain.GdDetail; import org.junit.jupiter.api.Test; import org.springframework.boot.test.context.SpringBootTest; import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.Map; import java.util.concurrent.ArrayBlockingQueue; import java.util.concurrent.BlockingQueue; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.atomic.AtomicInteger; import java.util.stream.Collectors; @SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT) public class EladminSystemApplicationTests { @Test public void contextLoads() { } public static void main(String[] args) { Map> concurrentMapMsg = new ConcurrentHashMap<>(); List list1 = Arrays.asList("001库存不足!","002库存不足!", "003分配成功"); concurrentMapMsg.put("GD202406261053", list1); System.out.println(list1); } private static final int MAX_TASK_COUNT = 4; private static final long TIMEOUT_MS = 600000; // 10分钟,以毫秒为单位 private long lastTaskTime = System.currentTimeMillis(); private List taskQueue = new ArrayList<>(MAX_TASK_COUNT); void aa(){ List list1 = Arrays.asList(); List list2 = Arrays.asList(); List 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);*/ GdDetail gdDetail=new GdDetail(); gdDetail.setBigItem(null); gdDetail.setOrderType("DP"); GdDetail gdDetail2=new GdDetail(); BigItem bigItem2=new BigItem(); bigItem2.setCode("CT_001"); gdDetail2.setBigItem(bigItem2); gdDetail2.setOrderType("CP"); gdDetail2.setBigItemQty(1d); GdDetail gdDetail3=new GdDetail(); BigItem bigItem3=new BigItem(); bigItem3.setCode("CT_001"); gdDetail3.setBigItem(bigItem3); gdDetail3.setOrderType("CP"); gdDetail3.setBigItemQty(2d); GdDetail gdDetail4=new GdDetail(); BigItem bigItem4=new BigItem(); bigItem4.setCode("CT_002"); gdDetail4.setBigItem(bigItem4); gdDetail4.setOrderType("CP"); gdDetail4.setBigItemQty(3d); GdDetail gdDetail5=new GdDetail(); BigItem bigItem5=new BigItem(); bigItem5.setCode("CT_002"); gdDetail5.setBigItem(bigItem5); gdDetail5.setOrderType("CP"); gdDetail5.setBigItemQty(4d); List list=new ArrayList<>(); list.add(gdDetail); list.add(gdDetail2); list.add(gdDetail3); list.add(gdDetail4); list.add(gdDetail5); for(GdDetail gd:list){ System.out.println("总集合:"+gd); } List cpList = list.stream() .filter(gd -> "CP".equals(gd.getOrderType())) .collect(Collectors.toList()); List dpList = list.stream() .filter(gd -> "DP".equals(gd.getOrderType())) .collect(Collectors.toList()); for(GdDetail gd:cpList){ System.out.println("成品集合:"+gd); } for(GdDetail gd:dpList){ System.out.println("单品集合:"+gd); } Map> groupedByCode = cpList.stream() .collect(Collectors.groupingBy(gd -> gd.getBigItem().getCode())); groupedByCode.forEach((code, details) -> { System.out.println("Code: " + code); details.forEach(System.out::println); }); } @Test public void test(){ List 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); } } }