no message
							parent
							
								
									6a6af5f0d9
								
							
						
					
					
						commit
						595af06b36
					
				| 
						 | 
				
			
			@ -191,4 +191,12 @@ public interface AgvTaskService {
 | 
			
		|||
     */
 | 
			
		||||
    boolean isEndPointAvailable(String endPointCode, String type, String jobType);
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 验证容器是否有任务
 | 
			
		||||
     *
 | 
			
		||||
     * @param stockCode 终点点位代码
 | 
			
		||||
     * @return boolean
 | 
			
		||||
     */
 | 
			
		||||
    boolean isStockAvailable(String stockCode, String type, String jobType);
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -234,6 +234,18 @@ public class AgvTaskServiceImpl implements AgvTaskService {
 | 
			
		|||
        return findByEndSlotCode(endPointCode, type, jobType);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public boolean isStockAvailable(String stockCode, String type, String jobType) {
 | 
			
		||||
        String hql = " from AgvTask agv " +
 | 
			
		||||
                " where  agv.stockCode='" + stockCode + "' " +
 | 
			
		||||
                " and agv.type='" + type + "' " +
 | 
			
		||||
                " and agv.jobType='" + jobType + "' " +
 | 
			
		||||
                " and agv.status in ('OPEN','ATCALL','UP_CONTAINER') ";
 | 
			
		||||
        Query query = entityMapper.createQuery(hql);
 | 
			
		||||
        List<AgvTask> agvTaskList = query.getResultList();
 | 
			
		||||
        return agvTaskList.isEmpty();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    public boolean isSrcPointAvailable(String startSlotCode, String type, String jobType) {
 | 
			
		||||
        return findByStartSlotCode(startSlotCode, type, jobType);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -275,27 +275,20 @@ public class TaskServiceImpl implements TaskService {
 | 
			
		|||
        Map<String, Point> pointMap = pointService.findByCodes(endPointList);
 | 
			
		||||
 | 
			
		||||
        List<String> endPoints = getValuesFromMap(endPointList, pointMap);
 | 
			
		||||
        int taskCount = 0;
 | 
			
		||||
        for (Task task : taskList) {
 | 
			
		||||
            for (String endPointCode : endPoints) {
 | 
			
		||||
                if (agvTaskService.isEndPointAvailable(endPointCode, BizStatus.CALL_PICK, "RACK_MOVE")) {
 | 
			
		||||
                    AgvTask agvTask = agvTaskService.createAgvTask(BizStatus.CALL_PICK, task.getDstStock(), task.getDstPointCode(), endPointCode, "RACK_MOVE");
 | 
			
		||||
                    agvTask.setLineSlotCode(pick.getCode());
 | 
			
		||||
                    agvTaskService.update(agvTask);
 | 
			
		||||
                    task.setCallAgvTaskId(agvTask.getId());
 | 
			
		||||
                    taskRepository.save(task);
 | 
			
		||||
            boolean isStockAvailable = agvTaskService.isStockAvailable(task.getDstStockCode(), BizStatus.CALL_PICK, "RACK_MOVE");
 | 
			
		||||
            if (isStockAvailable) {
 | 
			
		||||
                for (String endPointCode : endPoints) {
 | 
			
		||||
                    if (agvTaskService.findByEndSlotCode(endPointCode, BizStatus.CALL_PICK, "RACK_MOVE")) {
 | 
			
		||||
                        AgvTask agvTask = agvTaskService.createAgvTask(BizStatus.CALL_PICK, task.getDstStock(), task.getDstPointCode(), endPointCode, "RACK_MOVE");
 | 
			
		||||
                        agvTask.setLineSlotCode(pick.getCode());
 | 
			
		||||
                        agvTaskService.update(agvTask);
 | 
			
		||||
                        task.setCallAgvTaskId(agvTask.getId());
 | 
			
		||||
                        taskRepository.save(task);
 | 
			
		||||
                    }
 | 
			
		||||
                }
 | 
			
		||||
                taskCount++;
 | 
			
		||||
                if (taskCount >= taskList.size()) {
 | 
			
		||||
                    break; // 当处理的任务数量达到 taskList 的长度时,跳出内层循环
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
            if (taskCount >= taskList.size()) {
 | 
			
		||||
                break; // 当处理的任务数量达到 taskList 的长度时,跳出外层循环
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public static List<String> getValuesFromMap(Set<String> endPointList, Map<String, Point> map) {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue