TaskFinishController.java 3.32 KB
package com.huaheng.api.wcs.controller;

import com.huaheng.api.acs.service.AcsService;
import com.huaheng.api.wcs.domain.TaskFinishDomain;
import com.huaheng.api.wcs.domain.WcsTask;
import com.huaheng.api.wcs.service.taskFinish.TaskFinishService;
import com.huaheng.common.utils.StringUtils;
import com.huaheng.framework.aspectj.lang.annotation.ApiLogger;
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.agvTask.domain.AgvTask;
import com.huaheng.pc.task.taskHeader.domain.TaskHeader;
import com.huaheng.pc.task.taskHeader.service.TaskHeaderService;
import com.huaheng.pc.task.taskHeader.service.TaskSendService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.*;

import javax.annotation.Resource;

/**任务完成
 * wcs向wms传递数据
 * @author ricard
 * @date   2019/10/11
 *
 */

@RestController
@RequestMapping("/API/WMS/v2")
public class TaskFinishController extends BaseController {

    @Resource
    private TaskFinishService taskFinishService;
    @Resource
    private AcsService acsService;

    @Log(title = "wcs任务完成", action = BusinessType.INSERT)
    @PostMapping("/complete")
    @ApiOperation("wcs任务完成")
    @ApiLogger(apiName = "wcs任务完成", from="WCS")
    @ResponseBody
    public AjaxResult complete(@RequestBody TaskFinishDomain taskFinishDomain)
    {
        AjaxResult ajaxResult = handleMultiProcess(new MultiProcessListener() {
            @Override
            public AjaxResult doProcess() {
                AjaxResult ajaxResult = taskFinishService.completeTaskByWCS(taskFinishDomain);
                return ajaxResult;
            }
        });
        return ajaxResult;
    }

    @Log(title = "acs任务完成", action = BusinessType.INSERT)
    @PostMapping("/completeByAcs")
    @ApiOperation("acs任务完成")
    @ApiLogger(apiName = "acs任务完成", from="ACS")
    @ResponseBody
    public AjaxResult completeByAcs(@RequestBody AgvTask agvTask)
    {
        AjaxResult ajaxResult = handleMultiProcess(new MultiProcessListener() {
            @Override
            public AjaxResult doProcess() {
                if(agvTask == null) {
                    return AjaxResult.error("入库组盘信息为空");
                }
                if(StringUtils.isNull(agvTask.getTaskNo()) ) {
                    return AjaxResult.error("更新AGV状态,任务号为空");
                }
                String taskNo = agvTask.getTaskNo().toString();
                String carNo = agvTask.getAgvNo();
                int status = agvTask.getState();
                String updateBy = "acs";
                if(status == 0) {
                    return AjaxResult.error("更新AGV状态,状态信息为空");
                }
                if(StringUtils.isEmpty(updateBy)) {
                    return AjaxResult.error("更新AGV状态,更新者信息为空");
                }
                AjaxResult ajaxResult =acsService.notifyAGVTask(taskNo,carNo,status,updateBy);
                return ajaxResult;
            }
        });
        return ajaxResult;
    }

}