no message

main
奥德彪本彪\92525 2024-11-22 22:35:45 +08:00
parent 98ce06721a
commit 8d5654bd23
3 changed files with 50 additions and 24 deletions

View File

@ -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);
/**
*
*/

View File

@ -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();

View File

@ -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) {