TaskCancelController.java 3.85 KB
package com.huaheng.api.wcs.controller;

import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.huaheng.api.wcs.domain.TaskCancelDomain;
import com.huaheng.api.wcs.domain.TaskFinishDomain;
import com.huaheng.api.wcs.service.taskCancel.TaskCancelService;
import com.huaheng.api.wcs.service.taskFinish.TaskFinishService;
import com.huaheng.common.constant.QuantityConstant;
import com.huaheng.common.support.Convert;
import com.huaheng.common.utils.StringUtils;
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.framework.web.service.ConfigService;
import com.huaheng.pc.config.container.domain.Container;
import com.huaheng.pc.config.container.service.ContainerService;
import com.huaheng.pc.config.containerType.domain.ContainerType;
import com.huaheng.pc.config.containerType.service.ContainerTypeService;
import com.huaheng.pc.task.taskHeader.domain.TaskHeader;
import com.huaheng.pc.task.taskHeader.service.TaskHeaderService;
import com.huaheng.pc.task.taskHeader.service.WorkTaskService;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Value;
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 TaskCancelController extends BaseController {
    @Resource
    private TaskHeaderService taskHeaderService;
    @Resource
    private TaskCancelService taskCancelService;
    @Resource
    private ConfigService configService;
    @Resource
    private ContainerService containerService;
    @Resource
    private ContainerTypeService containerTypeService;

    @Log(title = "wcs任务q取消", action = BusinessType.INSERT)
    @PostMapping("/cancelTask")
    @ApiOperation("wcs任务取消")
    @ResponseBody
        public AjaxResult cancelTask(@RequestBody TaskCancelDomain taskCancelDomain)    {
        String ids= taskHeaderService.getId(taskCancelDomain.getTaskNo());
        String value = configService.getKey(QuantityConstant.RULE_CONNECT_WCS);
        int connectWCS = Integer.parseInt(value);
        if(connectWCS == QuantityConstant.RULE_WCS_CONNECT) {
            Integer[] idList = Convert.toIntArray(ids);
            for (int id : idList) {
                TaskHeader taskHeader = taskHeaderService.getById(id);
                if(taskHeader.getStatus().intValue()  <= QuantityConstant.TASK_STATUS_BUILD) {
                    continue;
                }
                String containerCode = taskHeader.getContainerCode();
                if (StringUtils.isEmpty(containerCode)) {
                    return AjaxResult.error("空托盘");
                }
                Container container = containerService.getContainerByCode(
                        containerCode, taskHeader.getWarehouseCode());
                LambdaQueryWrapper<ContainerType> containerTypeLambdaQueryWrapper = Wrappers.lambdaQuery();
                containerTypeLambdaQueryWrapper.eq(ContainerType::getCode, container.getContainerType());
                ContainerType containerType = containerTypeService.getContainerTypeByCode(
                        container.getContainerType(), container.getWarehouseCode());
                AjaxResult ajaxResult = taskCancelService.cancelTask(String.valueOf(id),
                        taskHeader.getWarehouseCode(), containerType.getArea(),"api");
                if (ajaxResult.hasErr()) {
                    return ajaxResult;
                }
            }
        }
        return AjaxResult.success(taskHeaderService.cancelTask(Convert.toIntArray(ids),"api"));
    }

}