no message
							parent
							
								
									6a6af5f0d9
								
							
						
					
					
						commit
						595af06b36
					
				| 
						 | 
					@ -191,4 +191,12 @@ public interface AgvTaskService {
 | 
				
			||||||
     */
 | 
					     */
 | 
				
			||||||
    boolean isEndPointAvailable(String endPointCode, String type, String jobType);
 | 
					    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);
 | 
					        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) {
 | 
					    public boolean isSrcPointAvailable(String startSlotCode, String type, String jobType) {
 | 
				
			||||||
        return findByStartSlotCode(startSlotCode, type, jobType);
 | 
					        return findByStartSlotCode(startSlotCode, type, jobType);
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -275,27 +275,20 @@ public class TaskServiceImpl implements TaskService {
 | 
				
			||||||
        Map<String, Point> pointMap = pointService.findByCodes(endPointList);
 | 
					        Map<String, Point> pointMap = pointService.findByCodes(endPointList);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        List<String> endPoints = getValuesFromMap(endPointList, pointMap);
 | 
					        List<String> endPoints = getValuesFromMap(endPointList, pointMap);
 | 
				
			||||||
        int taskCount = 0;
 | 
					 | 
				
			||||||
        for (Task task : taskList) {
 | 
					        for (Task task : taskList) {
 | 
				
			||||||
            for (String endPointCode : endPoints) {
 | 
					            boolean isStockAvailable = agvTaskService.isStockAvailable(task.getDstStockCode(), BizStatus.CALL_PICK, "RACK_MOVE");
 | 
				
			||||||
                if (agvTaskService.isEndPointAvailable(endPointCode, BizStatus.CALL_PICK, "RACK_MOVE")) {
 | 
					            if (isStockAvailable) {
 | 
				
			||||||
                    AgvTask agvTask = agvTaskService.createAgvTask(BizStatus.CALL_PICK, task.getDstStock(), task.getDstPointCode(), endPointCode, "RACK_MOVE");
 | 
					                for (String endPointCode : endPoints) {
 | 
				
			||||||
                    agvTask.setLineSlotCode(pick.getCode());
 | 
					                    if (agvTaskService.findByEndSlotCode(endPointCode, BizStatus.CALL_PICK, "RACK_MOVE")) {
 | 
				
			||||||
                    agvTaskService.update(agvTask);
 | 
					                        AgvTask agvTask = agvTaskService.createAgvTask(BizStatus.CALL_PICK, task.getDstStock(), task.getDstPointCode(), endPointCode, "RACK_MOVE");
 | 
				
			||||||
                    task.setCallAgvTaskId(agvTask.getId());
 | 
					                        agvTask.setLineSlotCode(pick.getCode());
 | 
				
			||||||
                    taskRepository.save(task);
 | 
					                        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) {
 | 
					    public static List<String> getValuesFromMap(Set<String> endPointList, Map<String, Point> map) {
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue