@@ -1,7 +1,11 @@
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 ;
@@ -27,6 +31,7 @@ public class AgvController extends BaseController {
@Autowired
private IAgvQueueService agvQueueService ;
/**
* agv执行状态返回接口
* @param request
@@ -75,4 +80,33 @@ public class AgvController extends BaseController {
}
/**
* 前端手动操作完成/取消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 . getMessage ( ) ) & & cancelTaskResponse . getReqCode ( ) = = cancelTaskRequest . getReqCode ( ) ) {
return AjaxResult . success ( " AGV任务队列取消成功! " , cancelTaskResponse ) ;
}
return AjaxResult . error ( " 取消RCS-AGV任务队列失败! " ) ;
}
}
}