ReleaseNoticeController.java 2.94 KB
package com.huaheng.api.wcs.controller;


import com.huaheng.api.wcs.service.releaseNotice.ReleaseNoticeService;
import com.huaheng.common.constant.QuantityConstant;
import com.huaheng.framework.aspectj.lang.annotation.ApiLogger;
import com.huaheng.framework.web.controller.BaseController;
import com.huaheng.framework.web.domain.AjaxResult;
import com.huaheng.pc.task.taskHeader.domain.TaskHeader;
import com.huaheng.pc.task.taskHeader.service.TaskHeaderService;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.*;

import javax.annotation.Resource;
import java.util.Map;

/**
 * 铜箔仓 二楼出库时不能有入库任务堵
 * 放行通知
 * 2023年3月14日 :所有入库口都都通用。
 */

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

    @Resource
    private ReleaseNoticeService releaseNoticeService;
    @Resource
    private TaskHeaderService taskHeaderService;

    @PostMapping("/releasedNotice")
    @ApiOperation("放行通知")
    @ApiLogger(apiName = "放行通知", from = "WCS")
    @ResponseBody
    public AjaxResult releasedNotice(@RequestBody Map<String, String> map) {

        String area = map.get("area");
        String port = map.get("port");
        String barcode = map.get("barcode");
        AjaxResult ajaxResult = handleMultiProcess(new MultiProcessListener() {
            @Override
            public AjaxResult doProcess() {
                AjaxResult ajaxResult = releaseNoticeService.releasedNotice(area, port, barcode);
                return ajaxResult;
            }
        });
        return ajaxResult;
    }

    /**
     * 解锁站台 通知下发 assignTask
     *
     * @param map
     * @return
     */
    @PostMapping("/noticeAssign")
    @ApiOperation("解锁站台")
    @ApiLogger(apiName = "解锁站台", from = "WCS")
    @ResponseBody
    public AjaxResult noticeAssign(@RequestBody Map<String, String> map) {
        String taskId = map.get("TaskNo");
        TaskHeader taskHeader = taskHeaderService.getById(taskId);
        if (taskHeader == null) {
            return AjaxResult.error("任务号不存在");
        }
        //是否已经解锁站台
        if (1 == taskHeader.getReleased()) {
            return AjaxResult.success("已经解锁站台任务:" + taskId);
        }
        //分拣任务直接成功
        if (taskHeader.getTaskType() == QuantityConstant.TASK_TYPE_VIEW) {
            return AjaxResult.success("分拣任务直接成功:" + taskId);
        }
        if (taskHeader.getStatus() >= 100) {
            return AjaxResult.error("任务已完成");
        }
        AjaxResult ajaxResult = handleMultiProcess(new MultiProcessListener() {
            @Override
            public AjaxResult doProcess() {
                AjaxResult ajaxResult = releaseNoticeService.noticeAssign(taskId);
                return ajaxResult;
            }
        });
        return ajaxResult;
    }
}