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,9 +266,11 @@ public class MesServiceImpl implements MesService {
|
|||
|
||||
Point endPoint = pointService.validatePoint(pointCode);//终点
|
||||
|
||||
// 创建并下发任务
|
||||
List<AgvTask> agvTaskList = agvTaskService.findRepeat(emptyStock.getCode(),srcPoint.getCode(),endPoint.getCode());
|
||||
if (agvTaskList.isEmpty()) {
|
||||
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");
|
||||
|
||||
|
|
@ -277,7 +279,7 @@ public class MesServiceImpl implements MesService {
|
|||
|
||||
//下发任务
|
||||
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