AGV任务执行通知请求接口

This commit is contained in:
lsymicc
2025-07-01 17:41:59 +08:00
parent f3a7bf26d1
commit b39af89e2e
7 changed files with 322 additions and 23 deletions

View File

@@ -7,6 +7,7 @@ import com.alibaba.fastjson2.JSON;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.ruoyi.common.Constant;
import com.ruoyi.common.TaskStatusCode;
import com.ruoyi.common.TaskType;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.common.utils.uuid.UUID;
import com.ruoyi.device.agv.domain.ResponseBase;
@@ -64,33 +65,67 @@ public class Execution {
//无【待执行】任务
if (tasks.size() == 0) return;
//请求agv/ctu下发指令
GenAgvSchedulingTaskRequest request = new GenAgvSchedulingTaskRequest();
for (int i = 0; i < tasks.size(); i++) {
//请求agv/ctu下发指令
GenAgvSchedulingTaskRequest request = new GenAgvSchedulingTaskRequest();
request.setReqCode(UUID.randomUUID().toString().replace("-", ""));
//入库类型
//判断任务类型
switch (tasks.get(i).getTaskType()) {
case "1":
request.setTaskTyp("F12");
case TaskType.CONV_STOCKIN:
//todo 是否要处理输送线取货工位有多个料箱的情况
//todo 是否要处理输送线取货工位有多个料箱的情况
request.setReqCode(UUID.randomUUID().toString().replace("-", ""));
//设备执行任务内置任务类型初始化
switch (tasks.get(i).getTaskType()) {
case "1":
request.setTaskTyp("F12");
break;
case "2":
request.setTaskTyp("F11");
break;
default:
log.warn("【向设备下发任务请求】TaskTyp:{},生成任务的请求参数错误,异常的任务类型!", request.getTaskTyp());
return;
}
//todo 了解CTU货架与工作台输送过程中是否需要另外下发取放料箱的任务
//todo 了解CTU货架与工作台输送过程中是否需要另外下发取放料箱的任务
//添加路径(未测试)
//todo 了解AGV/CTU路径的格式/规则
//todo 了解AGV/CTU路径的格式/规则
List<PositionCodeData> path = new ArrayList<>();
path.add(new PositionCodeData(tasks.get(i).getSourceLocation(),"05"));
path.add(new PositionCodeData(tasks.get(i).getTargetLocation(),"05"));
request.setPositionCodePath(path);
//wcs任务号---设备任务编号
request.setTaskCode(tasks.get(i).getTaskId());
//todo 上层平台是否有【校验料箱是否可入库】接口可用
//todo 上层平台是否有【校验料箱是否可入库】接口可用
//todo 是否需要单独请求取放料箱接口
//todo 是否需要单独请求取放料箱接口
break;
case "2":
request.setTaskTyp("F11");
case TaskType.CONV_STOCKOUT_SINGLE_GROUP:
break;
case TaskType.CONV_STOCKOUT_SEQUENCE:
break;
case TaskType.AGV_MOVE:
break;
default:
log.warn("【向设备下发任务请求】TaskTyp:{},生成任务的请求参数错误,异常的任务类型!", request.getTaskTyp());
return;
}
//添加路径(未测试)
List<PositionCodeData> path = new ArrayList<>();
path.add(new PositionCodeData(tasks.get(i).getSourceLocation(),"05"));
path.add(new PositionCodeData(tasks.get(i).getTargetLocation(),"05"));
request.setPositionCodePath(path);
//wcs任务号---设备任务编号
request.setTaskCode(tasks.get(i).getTaskId());
//下发成功---更新【任务状态】为下发成功
if (sendCommand(request)){

View File

@@ -13,7 +13,6 @@ import com.ruoyi.schedule.task.domain.WcsTask;
import com.ruoyi.schedule.task.mapper.WcsTaskMapper;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
import java.time.LocalDateTime;

View File

@@ -34,8 +34,8 @@ public class Timer {
execution.executeTask();
Thread.sleep(200);
statusUpdate.statusUpdate();
Thread.sleep(200);
//statusUpdate.statusUpdate();
//Thread.sleep(200);
taskFinish.taskFinish();
Thread.sleep(200);