113 lines
3.7 KiB
Java
113 lines
3.7 KiB
Java
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任务队列失败!");
|
||
}
|
||
|
||
}
|
||
|
||
}
|