package com.huaheng.api.ACS.service; import com.alibaba.fastjson.JSON; import com.huaheng.api.ACS.domain.AvgTaskModel; import com.huaheng.common.utils.DataUtils; import com.huaheng.common.utils.http.HttpUtils; import com.huaheng.framework.aspectj.lang.annotation.Log; import com.huaheng.framework.aspectj.lang.constant.BusinessType; import com.huaheng.framework.web.domain.AjaxResult; import com.huaheng.pc.task.task.service.ITaskService; import com.huaheng.pc.task.taskDetail.domain.TaskDetail; import com.huaheng.pc.task.taskDetail.service.ITaskDetailService; import org.apache.shiro.authz.annotation.RequiresPermissions; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.ResponseBody; import java.util.HashMap; import java.util.Map; import java.util.UUID; @Service public class AcsService { @Autowired private ITaskService taskService; @Autowired private ITaskDetailService taskDetailService; final String interactionId = "6EAB7794-CFD7-449A-A754-FFDB98CE44C7"; /** * AGV 任务下发 */ // @RequiresPermissions("api:acs:TaskAssign") @Log(title = "AGV 任务下发", action = BusinessType.INSERT) @PostMapping("/TaskAssign") @ResponseBody public AjaxResult TaskAssign(String url) { TaskDetail taskDetail = new TaskDetail(); taskDetail.setZoneCode("AGV"); taskDetail.setDeleted(false); taskDetail = taskDetailService.selectFirstEntity(taskDetail); AvgTaskModel model = new AvgTaskModel(); model.setInteractionId(interactionId); model.setTaskHeaderId(taskDetail.getTaskId()); model.setTaskDetailId(taskDetail.getId()); model.setTaskType("putway"); model.setShelfNo(taskDetail.getContainerCode()); model.setState("0"); model.setFromLocationNo(taskDetail.getSourceLocation()); model.setToLocationNo(taskDetail.getDestinationLocation()); model.setOrientation("A"); model.setPlatform("wms"); String JsonParam = JSON.toJSONString(model); String result = HttpUtils.sendPost(url, JsonParam); AjaxResult ajaxResult = JSON.parseObject(result, AjaxResult.class); return ajaxResult; } /** * AGV 任务取消 */ // @RequiresPermissions("api:acs:TaskCancel") @Log(title = "AGV 任务取消", action = BusinessType.DELETE) @PostMapping("/TaskCancel") @ResponseBody public AjaxResult TaskCancel(String url) { Map<String, Object> map = new HashMap<>(); map.put("interactionId", interactionId); map.put("reason", "取消任务"); String JsonParam = JSON.toJSONString(map); String result = HttpUtils.sendPost(url, JsonParam); AjaxResult ajaxResult = JSON.parseObject(result, AjaxResult.class); return ajaxResult; } /** * AGV 信息查询 */ // @RequiresPermissions("api:acs:StateInfoGET") @Log(title = "AGV 信息查询", action = BusinessType.OTHER) @PostMapping("StateInfoGET") @ResponseBody public AjaxResult StateInfoGET(String url) { Map<String, String> map = new HashMap<>(); map.put("carNo", ""); map.put("interactionId", interactionId); String JsonParam = JSON.toJSONString(map); String result = HttpUtils.sendPost(url, JsonParam); AjaxResult ajaxResult = JSON.parseObject(result, AjaxResult.class); return ajaxResult; } /** * AGV 旋转方向 */ // @RequiresPermissions("api:acs:TurnOriention") @Log(title = "AGV 旋转方向", action = BusinessType.UPDATE) @PostMapping("/TurnOriention") @ResponseBody public AjaxResult TurnOriention(String url) { Map<String, String> map = new HashMap<>(); map.put("carNo", ""); map.put("orientation", interactionId); String JsonParam = JSON.toJSONString(map); String result = HttpUtils.sendPost(url, JsonParam); AjaxResult ajaxResult = JSON.parseObject(result, AjaxResult.class); return ajaxResult; } }