no message
							parent
							
								
									63f799e345
								
							
						
					
					
						commit
						fff16759ea
					
				| 
						 | 
				
			
			@ -35,8 +35,8 @@ public interface AgvTaskRepository extends JpaRepository<AgvTask, Long>, JpaSpec
 | 
			
		|||
     *
 | 
			
		||||
     * @param stockCode 容器
 | 
			
		||||
     */
 | 
			
		||||
    @Query(value = " from AgvTask agv where agv.stockCode=:stockCode  and agv.status not in ('CANCEL','FINISH') ")
 | 
			
		||||
    List<AgvTask> findRepeat(String stockCode);
 | 
			
		||||
    @Query(value = " from AgvTask agv where agv.stockCode=:stockCode and agv.startSlotCode=:srcPointCode and agv.endSlotCode=:endPointCode  and agv.status not in ('CANCEL','FINISH') ")
 | 
			
		||||
    List<AgvTask> findRepeat(String stockCode,String srcPointCode,String endPointCode);
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 查询待执行的备料、叫料、叫料返库任务
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -106,7 +106,7 @@ public interface AgvTaskService {
 | 
			
		|||
     * 根据容器查询任务
 | 
			
		||||
     * @param stockCode 容器
 | 
			
		||||
     */
 | 
			
		||||
    List<AgvTask> findRepeat(String stockCode);
 | 
			
		||||
    List<AgvTask> findRepeat(String stockCode, String srcPointCode, String endPointCode);
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 查询打开的任务并轮询下发
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -135,8 +135,8 @@ public class AgvTaskServiceImpl implements AgvTaskService {
 | 
			
		|||
    }
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public List<AgvTask> findRepeat(String stockCode) {
 | 
			
		||||
        return agvTaskRepository.findRepeat(stockCode);
 | 
			
		||||
    public List<AgvTask> findRepeat(String stockCode, String srcPointCode, String endPointCode) {
 | 
			
		||||
        return agvTaskRepository.findRepeat(stockCode, srcPointCode, endPointCode);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -520,7 +520,7 @@ public class KMReServiceImpl implements KMReService {
 | 
			
		|||
     * @param agvTask 任务
 | 
			
		||||
     */
 | 
			
		||||
    private synchronized void handleResendTask(AgvTask agvTask) {
 | 
			
		||||
        List<AgvTask> repeatList = agvTaskService.findRepeat(agvTask.getStockCode());
 | 
			
		||||
        List<AgvTask> repeatList = agvTaskService.findRepeat(agvTask.getStockCode(),agvTask.getStartSlotCode(),agvTask.getEndSlotCode());
 | 
			
		||||
        if (!repeatList.isEmpty()) {
 | 
			
		||||
            throw new BadRequestException("任务已重新生成,请勿重复操作! ");
 | 
			
		||||
        }
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -253,7 +253,7 @@ public class MesServiceImpl implements MesService {
 | 
			
		|||
        return pickDetail;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    private void moveCpOffUp(String pointCode) {
 | 
			
		||||
    private synchronized void moveCpOffUp(String pointCode) {
 | 
			
		||||
 | 
			
		||||
        // 如果成品入库缓存区没有空车,则从入库区查询
 | 
			
		||||
        List<Stock> emptyStockList = stockService.findByKongStock(AreaNameDic.CPRKQ);
 | 
			
		||||
| 
						 | 
				
			
			@ -267,10 +267,10 @@ public class MesServiceImpl implements MesService {
 | 
			
		|||
        Point endPoint = pointService.validatePoint(pointCode);//终点
 | 
			
		||||
 | 
			
		||||
        // 创建并下发任务
 | 
			
		||||
        List<AgvTask> agvTaskList = agvTaskService.findRepeat(emptyStock.getCode());
 | 
			
		||||
        List<AgvTask> agvTaskList = agvTaskService.findRepeat(emptyStock.getCode(),srcPoint.getCode(),endPoint.getCode());
 | 
			
		||||
        if (agvTaskList.isEmpty()) {
 | 
			
		||||
            //生成任务
 | 
			
		||||
            AgvTask agvTask = agvTaskService.createAgvTask(BizStatus.EMPTY_IN, emptyStock, srcPoint, endPoint, "RACK_MOVE");
 | 
			
		||||
            AgvTask agvTask = agvTaskService.createAgvTask(BizStatus.Cp_Off_Up, emptyStock, srcPoint, endPoint, "RACK_MOVE");
 | 
			
		||||
 | 
			
		||||
            // 更新点位状态
 | 
			
		||||
            pointService.usedPoint(endPoint);
 | 
			
		||||
| 
						 | 
				
			
			@ -280,7 +280,7 @@ public class MesServiceImpl implements MesService {
 | 
			
		|||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    private void moveCpOffLine(TransTask transTask) {
 | 
			
		||||
    private synchronized void moveCpOffLine(TransTask transTask) {
 | 
			
		||||
        Point srcPoint = pointService.validatePoint(transTask.getPointCode());//起点
 | 
			
		||||
        Stock stock = stockService.findByPointCode(srcPoint.getCode());
 | 
			
		||||
        if (stock == null) {
 | 
			
		||||
| 
						 | 
				
			
			@ -291,14 +291,19 @@ public class MesServiceImpl implements MesService {
 | 
			
		|||
            throw new BadRequestException("成品入库区没有空闲点位!");
 | 
			
		||||
        }
 | 
			
		||||
        Point endPoint = endPointList.get(0);
 | 
			
		||||
        //生成任务
 | 
			
		||||
        AgvTask agvTask = agvTaskService.createAgvTask(BizStatus.Cp_Off_Line, stock, srcPoint, endPoint, "RACK_MOVE");
 | 
			
		||||
        // 创建并下发任务
 | 
			
		||||
        List<AgvTask> agvTaskList = agvTaskService.findRepeat(stock.getCode(),srcPoint.getCode(),endPoint.getCode());
 | 
			
		||||
        if (agvTaskList.isEmpty()) {
 | 
			
		||||
            AgvTask agvTask = agvTaskService.createAgvTask(BizStatus.Cp_Off_Line, stock, srcPoint, endPoint, "RACK_MOVE");
 | 
			
		||||
 | 
			
		||||
            //占用容器
 | 
			
		||||
            stockService.usedStock(stock, srcPoint, BaseStatus.USED);
 | 
			
		||||
 | 
			
		||||
            //下发任务
 | 
			
		||||
            kmReService.sendAgvTask(agvTask, kmReService.sendAgvTaskHjJson(agvTask));
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        //占用容器
 | 
			
		||||
        stockService.usedStock(stock, srcPoint, BaseStatus.USED);
 | 
			
		||||
 | 
			
		||||
        //下发任务
 | 
			
		||||
        kmReService.sendAgvTask(agvTask, kmReService.sendAgvTaskHjJson(agvTask));
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    private void moveFxOffLine(TransTask transTask) {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -211,7 +211,7 @@ public class TaskServiceImpl implements TaskService {
 | 
			
		|||
        List<Task> taskList = this.findByPickNotAllTask(pick.getId());
 | 
			
		||||
        for (Task task : taskList) {
 | 
			
		||||
            /*生成搬运任务*/
 | 
			
		||||
            List<AgvTask> agvTaskList = agvTaskService.findRepeat(task.getSrcStockCode());
 | 
			
		||||
            List<AgvTask> agvTaskList = agvTaskService.findRepeat(task.getSrcStockCode(),task.getSrcPointCode(),task.getDstPointCode());
 | 
			
		||||
            if (agvTaskList.isEmpty()) {
 | 
			
		||||
                //创建任务
 | 
			
		||||
                agvTask = agvTaskService.createAgvTask(BizStatus.PICK, task.getSrcStock(), task.getSrcPoint(), task.getDstPoint(), "FORKLIFT_MOVE");
 | 
			
		||||
| 
						 | 
				
			
			@ -248,12 +248,6 @@ public class TaskServiceImpl implements TaskService {
 | 
			
		|||
        //容器
 | 
			
		||||
        Stock stock = emptyStock.get(0);
 | 
			
		||||
 | 
			
		||||
        //有任务则直接返回
 | 
			
		||||
        List<AgvTask> agvTaskList = agvTaskService.findRepeat(stock.getCode());
 | 
			
		||||
        if (!agvTaskList.isEmpty()) {
 | 
			
		||||
            return;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        //起点
 | 
			
		||||
        Point srcPoint = stock.getPoint();
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -264,6 +258,14 @@ public class TaskServiceImpl implements TaskService {
 | 
			
		|||
        }
 | 
			
		||||
        Point endPoint = pointList.get(0);
 | 
			
		||||
 | 
			
		||||
        //有任务则直接返回
 | 
			
		||||
        List<AgvTask> agvTaskList = agvTaskService.findRepeat(stock.getCode(),srcPoint.getCode(),endPoint.getCode());
 | 
			
		||||
        if (!agvTaskList.isEmpty()) {
 | 
			
		||||
            return;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
        //创建任务
 | 
			
		||||
        agvTaskService.createAgvTask(BizStatus.CALL_RETURN, stock, srcPoint, endPoint, "RACK_MOVE");
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue