| | |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Service; |
| | | |
| | | import java.util.ArrayList; |
| | | import java.util.Collections; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | import java.util.*; |
| | | |
| | | /** |
| | | * Created by vincent on 8/12/2024 |
| | |
| | | public synchronized Agv execute(Task task) { |
| | | List<Agv> availableAgvList = getAvailableAgv(); |
| | | if (Cools.isEmpty(availableAgvList)) { |
| | | log.warn("No available agv to assign the task[{}]", task.getSeqNum()); |
| | | return null; |
| | | } |
| | | |
| | | Integer maxAgvCountInLane = configService.getVal("maxAgvCountInLane", Integer.class); |
| | | |
| | | |
| | | /** |
| | | * 1. 判断task的起始点和目的点所在的巷道承载任务数量, |
| | | * 如果数量已经达到负载,则判断负载任务的AGV是否还有空背篓,如果有则优先派发给它, |
| | | * 如果没有了,那么则阻塞任务,直到该巷道释放 |
| | | * |
| | | * 2. 轮询空闲小车,目标是让每台小车都动起来 |
| | | * 判断逻辑:背篓数量最少的小车轮询的时候,优先级最高 |
| | | */ |
| | | |
| | | return null; |
| | | } |