ACSApi.java 5.03 KB
package com.huaheng.api.ACS;

import com.alibaba.fastjson.JSON;
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.controller.BaseController;
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 io.swagger.annotations.Api;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;

import java.util.HashMap;
import java.util.Map;
import java.util.UUID;

@RestController
@RequestMapping("/api/ACS/v1")
@Api(tags = {"ACS"}, description = "登陆接口")
public class ACSApi extends BaseController {

    @Autowired
    private ITaskService taskService;
    @Autowired
    private ITaskDetailService taskDetailService;

    /**
     * AGV 任务下发
     */
    @RequiresPermissions("api:acs:TaskAssign")
    @Log(title = "AGV 任务下发", action = BusinessType.INSERT)
    @PostMapping("/TaskAssign")
    @ResponseBody
    public AjaxResult TaskAssign()
    {
        TaskDetail taskDetail = new TaskDetail();
        taskDetail.setZoneCode("AGV");
        taskDetail.setDeleted(false);
        taskDetail = taskDetailService.selectFirstEntity(taskDetail);

        String uid = UUID.randomUUID().toString().replaceAll("-", "");

        AvgTaskModel model = new AvgTaskModel();
        model.setInteractionId(DataUtils.getInteger(uid));
        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 url = "";
        String result = HttpUtils.sendPost(url, JsonParam);
        AjaxResult ajaxResult = JSON.parseObject(result, AjaxResult.class);
        return ajaxResult;
    }

    /**
     * AGV 任务回传
     */
    @RequiresPermissions("api:acs:TaskConfirm")
    @Log(title = "AGV 任务回传", action = BusinessType.UPDATE)
    @PostMapping("/TaskConfirm")
    @ResponseBody
    public AjaxResult TaskConfirm(AvgTaskModel model)
    {
        // DO Someshing
        return AjaxResult.success(model);
    }

    /**
     * AGV 任务取消
     */
    @RequiresPermissions("api:acs:TaskCancel")
    @Log(title = "AGV 任务取消", action = BusinessType.DELETE)
    @PostMapping("/TaskCancel")
    @ResponseBody
    public AjaxResult TaskCancel()
    {
        Map<String, Object> map = new HashMap<>();
        map.put("interactionId", 0);
        map.put("reason", "取消任务");
        String JsonParam = JSON.toJSONString(map);
        String url = "";
        String result = HttpUtils.sendPost(url, JsonParam);
        AjaxResult ajaxResult = JSON.parseObject(result, AjaxResult.class);
        return ajaxResult;
    }

    /**
     * AGV 信息上传
     */
    @RequiresPermissions("api:acs:StateInfoUpload")
    @Log(title = "AGV 信息上传", action = BusinessType.INSERT)
    @PostMapping("/StateInfoUpload")
    @ResponseBody
    public AjaxResult StateInfoUpload(StateInfoUploadModel model)
    {
        return AjaxResult.success("收到");
    }

    /**
     * AGV 信息查询
     */
    @RequiresPermissions("api:acs:StateInfoGET")
    @Log(title = "AGV 信息查询", action = BusinessType.OTHER)
    @PostMapping("StateInfoGET")
    @ResponseBody
    public AjaxResult StateInfoGET()
    {
        Map<String, String> map = new HashMap<>();
        map.put("carNo", "");
        map.put("interactionId", "");
        String JsonParam = JSON.toJSONString(map);
        String url = "";
        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()
    {
        Map<String, String> map = new HashMap<>();
        map.put("carNo", "");
        map.put("orientation", "");
        String JsonParam = JSON.toJSONString(map);
        String url = "";
        String result = HttpUtils.sendPost(url, JsonParam);
        AjaxResult ajaxResult = JSON.parseObject(result, AjaxResult.class);
        return ajaxResult;
    }



}