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

View File

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