no message
							parent
							
								
									98ce06721a
								
							
						
					
					
						commit
						8d5654bd23
					
				| 
						 | 
				
			
			@ -108,6 +108,14 @@ public interface AgvTaskService {
 | 
			
		|||
     */
 | 
			
		||||
    List<AgvTask> findRepeat(String stockCode, String srcPointCode, String endPointCode);
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 根据终点查询是否有重复任务
 | 
			
		||||
     * @param stockCode 容器
 | 
			
		||||
     */
 | 
			
		||||
    Boolean findByEndSlotCode(String endSlotCode, String type, String jobType);
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 查询打开的任务并轮询下发
 | 
			
		||||
     */
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -34,6 +34,8 @@ import org.springframework.data.domain.Pageable;
 | 
			
		|||
import java.util.*;
 | 
			
		||||
import java.io.IOException;
 | 
			
		||||
import java.util.stream.Collectors;
 | 
			
		||||
import javax.persistence.EntityManager;
 | 
			
		||||
import javax.persistence.Query;
 | 
			
		||||
import javax.servlet.http.HttpServletResponse;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -50,6 +52,7 @@ public class AgvTaskServiceImpl implements AgvTaskService {
 | 
			
		|||
 | 
			
		||||
    private final AgvTaskRepository agvTaskRepository;
 | 
			
		||||
    private final AgvTaskMapper agvTaskMapper;
 | 
			
		||||
    private final EntityManager entityMapper;
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public Map<String, Object> queryAll(AgvTaskQueryCriteria criteria, Pageable pageable) {
 | 
			
		||||
| 
						 | 
				
			
			@ -139,6 +142,21 @@ public class AgvTaskServiceImpl implements AgvTaskService {
 | 
			
		|||
        return agvTaskRepository.findRepeat(stockCode, srcPointCode, endPointCode);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public Boolean findByEndSlotCode(String endSlotCode, String type, String jobType) {
 | 
			
		||||
        String hql = " from AgvTask agv " +
 | 
			
		||||
                " where  agv.endSlotCode='" + endSlotCode + "' " +
 | 
			
		||||
                " and agv.type='" + type + "' " +
 | 
			
		||||
                " and agv.jobType='" + jobType + "' " +
 | 
			
		||||
                " and agv.status in ('ATCALL','UP_CONTAINER') ";
 | 
			
		||||
        Query query = entityMapper.createQuery(hql);
 | 
			
		||||
        List<AgvTask> agvTaskList = query.getResultList();
 | 
			
		||||
        if (agvTaskList.isEmpty()) {
 | 
			
		||||
            return true;
 | 
			
		||||
        }
 | 
			
		||||
        return false;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public List<AgvTask> findOpenByAgvTask() {
 | 
			
		||||
        return agvTaskRepository.findOpenByAgvTask();
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -266,18 +266,20 @@ public class MesServiceImpl implements MesService {
 | 
			
		|||
 | 
			
		||||
        Point endPoint = pointService.validatePoint(pointCode);//终点
 | 
			
		||||
 | 
			
		||||
        // 创建并下发任务
 | 
			
		||||
        List<AgvTask> agvTaskList = agvTaskService.findRepeat(emptyStock.getCode(),srcPoint.getCode(),endPoint.getCode());
 | 
			
		||||
        if (agvTaskList.isEmpty()) {
 | 
			
		||||
            //生成任务
 | 
			
		||||
            AgvTask agvTask = agvTaskService.createAgvTask(BizStatus.Cp_Off_Up, emptyStock, srcPoint, endPoint, "RACK_MOVE");
 | 
			
		||||
 | 
			
		||||
            // 更新点位状态
 | 
			
		||||
            pointService.usedPoint(endPoint);
 | 
			
		||||
 | 
			
		||||
            //下发任务
 | 
			
		||||
            kmReService.sendAgvTask(agvTask, kmReService.sendAgvTaskHjJson(agvTask));
 | 
			
		||||
        if (!agvTaskService.findByEndSlotCode(endPoint.getCode(), BizStatus.Cp_Off_Up, "RACK_MOVE")) {
 | 
			
		||||
            // 直接在条件判断为false时抛出异常,表示该点位有任务
 | 
			
		||||
            throw new BadRequestException(endPoint.getCode() + "点位有任务,请稍后再试!");
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        //生成任务
 | 
			
		||||
        AgvTask agvTask = agvTaskService.createAgvTask(BizStatus.Cp_Off_Up, emptyStock, srcPoint, endPoint, "RACK_MOVE");
 | 
			
		||||
 | 
			
		||||
        // 更新点位状态
 | 
			
		||||
        pointService.usedPoint(endPoint);
 | 
			
		||||
 | 
			
		||||
        //下发任务
 | 
			
		||||
        kmReService.sendAgvTask(agvTask, kmReService.sendAgvTaskHjJson(agvTask));
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    private synchronized void moveCpOffLine(TransTask transTask) {
 | 
			
		||||
| 
						 | 
				
			
			@ -291,22 +293,20 @@ public class MesServiceImpl implements MesService {
 | 
			
		|||
            throw new BadRequestException("成品入库区没有空闲点位!");
 | 
			
		||||
        }
 | 
			
		||||
        Point endPoint = endPointList.get(0);
 | 
			
		||||
        // 创建并下发任务
 | 
			
		||||
        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);
 | 
			
		||||
 | 
			
		||||
            // 更新点位状态
 | 
			
		||||
            pointService.usedPoint(endPoint);
 | 
			
		||||
 | 
			
		||||
            //下发任务
 | 
			
		||||
            kmReService.sendAgvTask(agvTask, kmReService.sendAgvTaskHjJson(agvTask));
 | 
			
		||||
        if (!agvTaskService.findByEndSlotCode(endPoint.getCode(), BizStatus.Cp_Off_Line, "RACK_MOVE")) {
 | 
			
		||||
            // 直接在条件判断为false时抛出异常,表示该点位有任务
 | 
			
		||||
            throw new BadRequestException(endPoint.getCode() + "点位有任务,请稍后再试!");
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
        //创建并下发任务
 | 
			
		||||
        AgvTask agvTask = agvTaskService.createAgvTask(BizStatus.Cp_Off_Line, stock, srcPoint, endPoint, "RACK_MOVE");
 | 
			
		||||
        // 更新点位状态
 | 
			
		||||
        pointService.usedPoint(endPoint);
 | 
			
		||||
        //占用容器
 | 
			
		||||
        stockService.usedStock(stock, srcPoint, BaseStatus.USED);
 | 
			
		||||
        //下发任务
 | 
			
		||||
        kmReService.sendAgvTask(agvTask, kmReService.sendAgvTaskHjJson(agvTask));
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    private void moveFxOffLine(TransTask transTask) {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue