no message
parent
63f799e345
commit
fff16759ea
|
|
@ -35,8 +35,8 @@ public interface AgvTaskRepository extends JpaRepository<AgvTask, Long>, JpaSpec
|
||||||
*
|
*
|
||||||
* @param stockCode 容器
|
* @param stockCode 容器
|
||||||
*/
|
*/
|
||||||
@Query(value = " from AgvTask agv where agv.stockCode=:stockCode and agv.status not in ('CANCEL','FINISH') ")
|
@Query(value = " from AgvTask agv where agv.stockCode=:stockCode and agv.startSlotCode=:srcPointCode and agv.endSlotCode=:endPointCode and agv.status not in ('CANCEL','FINISH') ")
|
||||||
List<AgvTask> findRepeat(String stockCode);
|
List<AgvTask> findRepeat(String stockCode,String srcPointCode,String endPointCode);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 查询待执行的备料、叫料、叫料返库任务
|
* 查询待执行的备料、叫料、叫料返库任务
|
||||||
|
|
|
||||||
|
|
@ -106,7 +106,7 @@ public interface AgvTaskService {
|
||||||
* 根据容器查询任务
|
* 根据容器查询任务
|
||||||
* @param stockCode 容器
|
* @param stockCode 容器
|
||||||
*/
|
*/
|
||||||
List<AgvTask> findRepeat(String stockCode);
|
List<AgvTask> findRepeat(String stockCode, String srcPointCode, String endPointCode);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 查询打开的任务并轮询下发
|
* 查询打开的任务并轮询下发
|
||||||
|
|
|
||||||
|
|
@ -135,8 +135,8 @@ public class AgvTaskServiceImpl implements AgvTaskService {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<AgvTask> findRepeat(String stockCode) {
|
public List<AgvTask> findRepeat(String stockCode, String srcPointCode, String endPointCode) {
|
||||||
return agvTaskRepository.findRepeat(stockCode);
|
return agvTaskRepository.findRepeat(stockCode, srcPointCode, endPointCode);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
||||||
|
|
@ -520,7 +520,7 @@ public class KMReServiceImpl implements KMReService {
|
||||||
* @param agvTask 任务
|
* @param agvTask 任务
|
||||||
*/
|
*/
|
||||||
private synchronized void handleResendTask(AgvTask agvTask) {
|
private synchronized void handleResendTask(AgvTask agvTask) {
|
||||||
List<AgvTask> repeatList = agvTaskService.findRepeat(agvTask.getStockCode());
|
List<AgvTask> repeatList = agvTaskService.findRepeat(agvTask.getStockCode(),agvTask.getStartSlotCode(),agvTask.getEndSlotCode());
|
||||||
if (!repeatList.isEmpty()) {
|
if (!repeatList.isEmpty()) {
|
||||||
throw new BadRequestException("任务已重新生成,请勿重复操作! ");
|
throw new BadRequestException("任务已重新生成,请勿重复操作! ");
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -253,7 +253,7 @@ public class MesServiceImpl implements MesService {
|
||||||
return pickDetail;
|
return pickDetail;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void moveCpOffUp(String pointCode) {
|
private synchronized void moveCpOffUp(String pointCode) {
|
||||||
|
|
||||||
// 如果成品入库缓存区没有空车,则从入库区查询
|
// 如果成品入库缓存区没有空车,则从入库区查询
|
||||||
List<Stock> emptyStockList = stockService.findByKongStock(AreaNameDic.CPRKQ);
|
List<Stock> emptyStockList = stockService.findByKongStock(AreaNameDic.CPRKQ);
|
||||||
|
|
@ -267,10 +267,10 @@ public class MesServiceImpl implements MesService {
|
||||||
Point endPoint = pointService.validatePoint(pointCode);//终点
|
Point endPoint = pointService.validatePoint(pointCode);//终点
|
||||||
|
|
||||||
// 创建并下发任务
|
// 创建并下发任务
|
||||||
List<AgvTask> agvTaskList = agvTaskService.findRepeat(emptyStock.getCode());
|
List<AgvTask> agvTaskList = agvTaskService.findRepeat(emptyStock.getCode(),srcPoint.getCode(),endPoint.getCode());
|
||||||
if (agvTaskList.isEmpty()) {
|
if (agvTaskList.isEmpty()) {
|
||||||
//生成任务
|
//生成任务
|
||||||
AgvTask agvTask = agvTaskService.createAgvTask(BizStatus.EMPTY_IN, emptyStock, srcPoint, endPoint, "RACK_MOVE");
|
AgvTask agvTask = agvTaskService.createAgvTask(BizStatus.Cp_Off_Up, emptyStock, srcPoint, endPoint, "RACK_MOVE");
|
||||||
|
|
||||||
// 更新点位状态
|
// 更新点位状态
|
||||||
pointService.usedPoint(endPoint);
|
pointService.usedPoint(endPoint);
|
||||||
|
|
@ -280,7 +280,7 @@ public class MesServiceImpl implements MesService {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void moveCpOffLine(TransTask transTask) {
|
private synchronized void moveCpOffLine(TransTask transTask) {
|
||||||
Point srcPoint = pointService.validatePoint(transTask.getPointCode());//起点
|
Point srcPoint = pointService.validatePoint(transTask.getPointCode());//起点
|
||||||
Stock stock = stockService.findByPointCode(srcPoint.getCode());
|
Stock stock = stockService.findByPointCode(srcPoint.getCode());
|
||||||
if (stock == null) {
|
if (stock == null) {
|
||||||
|
|
@ -291,14 +291,19 @@ public class MesServiceImpl implements MesService {
|
||||||
throw new BadRequestException("成品入库区没有空闲点位!");
|
throw new BadRequestException("成品入库区没有空闲点位!");
|
||||||
}
|
}
|
||||||
Point endPoint = endPointList.get(0);
|
Point endPoint = endPointList.get(0);
|
||||||
//生成任务
|
// 创建并下发任务
|
||||||
AgvTask agvTask = agvTaskService.createAgvTask(BizStatus.Cp_Off_Line, stock, srcPoint, endPoint, "RACK_MOVE");
|
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);
|
||||||
|
|
||||||
|
//下发任务
|
||||||
|
kmReService.sendAgvTask(agvTask, kmReService.sendAgvTaskHjJson(agvTask));
|
||||||
|
}
|
||||||
|
|
||||||
//占用容器
|
|
||||||
stockService.usedStock(stock, srcPoint, BaseStatus.USED);
|
|
||||||
|
|
||||||
//下发任务
|
|
||||||
kmReService.sendAgvTask(agvTask, kmReService.sendAgvTaskHjJson(agvTask));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void moveFxOffLine(TransTask transTask) {
|
private void moveFxOffLine(TransTask transTask) {
|
||||||
|
|
|
||||||
|
|
@ -211,7 +211,7 @@ public class TaskServiceImpl implements TaskService {
|
||||||
List<Task> taskList = this.findByPickNotAllTask(pick.getId());
|
List<Task> taskList = this.findByPickNotAllTask(pick.getId());
|
||||||
for (Task task : taskList) {
|
for (Task task : taskList) {
|
||||||
/*生成搬运任务*/
|
/*生成搬运任务*/
|
||||||
List<AgvTask> agvTaskList = agvTaskService.findRepeat(task.getSrcStockCode());
|
List<AgvTask> agvTaskList = agvTaskService.findRepeat(task.getSrcStockCode(),task.getSrcPointCode(),task.getDstPointCode());
|
||||||
if (agvTaskList.isEmpty()) {
|
if (agvTaskList.isEmpty()) {
|
||||||
//创建任务
|
//创建任务
|
||||||
agvTask = agvTaskService.createAgvTask(BizStatus.PICK, task.getSrcStock(), task.getSrcPoint(), task.getDstPoint(), "FORKLIFT_MOVE");
|
agvTask = agvTaskService.createAgvTask(BizStatus.PICK, task.getSrcStock(), task.getSrcPoint(), task.getDstPoint(), "FORKLIFT_MOVE");
|
||||||
|
|
@ -248,12 +248,6 @@ public class TaskServiceImpl implements TaskService {
|
||||||
//容器
|
//容器
|
||||||
Stock stock = emptyStock.get(0);
|
Stock stock = emptyStock.get(0);
|
||||||
|
|
||||||
//有任务则直接返回
|
|
||||||
List<AgvTask> agvTaskList = agvTaskService.findRepeat(stock.getCode());
|
|
||||||
if (!agvTaskList.isEmpty()) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
//起点
|
//起点
|
||||||
Point srcPoint = stock.getPoint();
|
Point srcPoint = stock.getPoint();
|
||||||
|
|
||||||
|
|
@ -264,6 +258,14 @@ public class TaskServiceImpl implements TaskService {
|
||||||
}
|
}
|
||||||
Point endPoint = pointList.get(0);
|
Point endPoint = pointList.get(0);
|
||||||
|
|
||||||
|
//有任务则直接返回
|
||||||
|
List<AgvTask> agvTaskList = agvTaskService.findRepeat(stock.getCode(),srcPoint.getCode(),endPoint.getCode());
|
||||||
|
if (!agvTaskList.isEmpty()) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//创建任务
|
//创建任务
|
||||||
agvTaskService.createAgvTask(BizStatus.CALL_RETURN, stock, srcPoint, endPoint, "RACK_MOVE");
|
agvTaskService.createAgvTask(BizStatus.CALL_RETURN, stock, srcPoint, endPoint, "RACK_MOVE");
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue