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