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

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.support.Convert;
import static com.huaheng.pc.receipt.receiptHeader.controller.ReceiptHeaderController .PassbackMap;
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 io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.apache.commons.collections.MapUtils;
import org.springframework.cache.annotation.Cacheable;
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;

    @Log(title = "wcs任务完成", action = BusinessType.INSERT)
    @PostMapping("/complete")
    @ApiOperation("wcs任务完成")
    @ApiLogger(apiName = "wcs任务完成", from="WCS")
    @ResponseBody
    @Cacheable(cacheNames = "complete#10", key = "#taskFinishDomain.taskNo",unless = "#result == null ")
    public AjaxResult complete(@RequestBody TaskFinishDomain taskFinishDomain)
    {
        String taskKey = "PassBackMap";
        if (MapUtils.getBoolean(PassbackMap, taskKey, false)) {
            return AjaxResult.error("不能同时访问");
        }
        PassbackMap.put(taskKey, true);
        AjaxResult ajaxResult = handleMultiProcess("complete",new MultiProcessListener() {
            @Override
            public AjaxResult doProcess() {
                try {
                    AjaxResult ajaxResult = taskFinishService.completeTaskByWCS(taskFinishDomain);
                    return ajaxResult;
                } catch (Exception e) {
                    return AjaxResult.error(e.getMessage());
                }finally {
                    PassbackMap.put(taskKey, false);
                }
            }
        });
        return ajaxResult;
    }

}