Files
FT577-WCS/ruoyi-admin/src/main/java/com/ruoyi/api/controller/AgvController.java
2026-09-08 22:23:58 +08:00

113 lines
3.7 KiB
Java
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
package com.ruoyi.api.controller;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.IdUtil;
import com.ruoyi.api.domain.agv.agvCallback.AgvCallbackRequest;
import com.ruoyi.api.domain.agv.agvCallback.AgvCallbackResponse;
import com.ruoyi.api.domain.agv.cancelTask.CancelTaskRequest;
import com.ruoyi.api.domain.agv.cancelTask.CancelTaskResponse;
import com.ruoyi.api.service.IApiService;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.queue.agv.domain.AgvQueue;
import com.ruoyi.queue.agv.service.IAgvQueueService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.Map;
/**
* Agv操作请求
*/
@RestController
@RequestMapping("/agv/api")
@Slf4j
public class AgvController extends BaseController {
@Autowired
private IApiService apiService;
@Autowired
private IAgvQueueService agvQueueService;
/**
* agv执行状态返回接口
* @param request
* @return
*/
@PostMapping("/agvCallback")
public AgvCallbackResponse agvCallback(@RequestBody AgvCallbackRequest request) {
return apiService.agvCallback(request);
}
/**
* agv搬运作业
* @param param{
* startPoint:起始点
* endPoint:结束点
* containerCode:容器编号
* taskNo:任务号
* }
* @return
*/
@PostMapping("/receiveAgvMoveJob")
public AjaxResult receiveAgvMoveJob(@RequestBody Map<String, String> param) {
return apiService.receiveAgvMoveJob(param);
}
@PostMapping("/deleteAgvTray")
public AjaxResult deleteAgvTray(@RequestBody Map<String, String> param) {
AgvQueue agvQueue = agvQueueService.selectAgvQueueByTaskCode(param.get("taskCode"));
if(agvQueue==null){
return AjaxResult.error("AGV任务队列不存在!");
}else{
return apiService.deleteAgvTray(agvQueue);
}
}
@PostMapping("/continueTask")
public AjaxResult continueTask(@RequestBody Map<String, String> param) {
AgvQueue agvQueue = agvQueueService.selectAgvQueueByTaskCode(param.get("taskCode"));
if(agvQueue==null){
return AjaxResult.error("AGV任务队列不存在!");
}else{
return apiService.continueTask(agvQueue);
}
}
/**
* 前端手动操作完成/取消AGV作业时,请求rcs,取消当前AGV正执行的作业
* @param param
* @return
*/
@PostMapping("/cancelTask")
public AjaxResult cancelTask(@RequestBody Map<String, String> param) {
AgvQueue agvQueue = agvQueueService.selectAgvQueueByTaskCode(param.get("taskCode"));
if(agvQueue==null){
return AjaxResult.error("AGV任务队列不存在!");
}else{
CancelTaskRequest cancelTaskRequest = new CancelTaskRequest();
cancelTaskRequest.setReqCode(IdUtil.fastSimpleUUID());
cancelTaskRequest.setReqTime(DateUtil.formatDateTime(DateUtil.date()));
cancelTaskRequest.setTaskCode(agvQueue.getTaskCode());
//取消rcs中指定的agv任务
CancelTaskResponse cancelTaskResponse = apiService.cancelTask(cancelTaskRequest);
if(cancelTaskResponse.getCode() == 0 && "成功".equals(cancelTaskResponse.getMsg()) && cancelTaskResponse.getReqCode() == cancelTaskRequest.getReqCode()){
return AjaxResult.success("AGV任务队列取消成功!", cancelTaskResponse);
}
return AjaxResult.error("取消RCS-AGV任务队列失败!");
}
}
}