TabletTaskApiServiceImpl.java 4.25 KB
package com.huaheng.api.tablet.service;

import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.huaheng.api.mes.domain.Cartons;
import com.huaheng.common.constant.QuantityConstant;
import com.huaheng.common.utils.StringUtils;
import com.huaheng.common.utils.security.ShiroUtils;
import com.huaheng.framework.web.domain.AjaxResult;
import com.huaheng.pc.task.taskHeader.domain.TaskHeader;
import com.huaheng.pc.task.taskHeader.service.TaskHeaderService;
import javafx.concurrent.Task;
import org.springframework.stereotype.Component;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

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

/**
 * 平板逻辑业务处理层
 * @author xcq
 */
@Component
@Transactional(rollbackFor = Exception.class)
@Service
public class TabletTaskApiServiceImpl {
    @Resource
    private TaskHeaderService taskHeaderService;
    public AjaxResult viewTasksServer(String port){
        if (StringUtils.isEmpty(port)){
            return AjaxResult.error("出库口不能为空!");
        }
        LambdaQueryWrapper<TaskHeader> lambdaQuery = Wrappers.lambdaQuery();
        lambdaQuery.isNotNull(TaskHeader::getStation)
                .eq(TaskHeader::getStatus, QuantityConstant.TASK_STATUS_COMPLETED)
                .eq(TaskHeader::getPort, port)
                .in(TaskHeader::getForkliftTaskStatus, QuantityConstant.FORKLIFT_TASK_NO, QuantityConstant.FORKLIFT_TASK_ACCEPTED);
        List<TaskHeader> taskHeaderList = taskHeaderService.list(lambdaQuery);
        AjaxResult result = AjaxResult.success("查询成功");
        result.setData(taskHeaderList);
        return result;
    }

    public AjaxResult acceptTaskServer(Integer id){
        if (id == null){
            return AjaxResult.error("请勿提交空数据!");
        }
        TaskHeader header = this.selectTaskHeader(id);
        if (header == null){
            return AjaxResult.error("查询出库任务失败,请检查任务id是否正确!");
        }
        // 判断叉车任务状态是否允许接取
        if (QuantityConstant.FORKLIFT_TASK_NO.equals(header.getForkliftTaskStatus())){
            // 修改叉车任务状态为已接取
            header.setForkliftTaskStatus(QuantityConstant.FORKLIFT_TASK_ACCEPTED);
            // 设置修改人
            header.setLastUpdatedBy(ShiroUtils.getLoginName());
            taskHeaderService.updateById(header);
            return AjaxResult.success("任务接取成功!");
        }
        return AjaxResult.error("该任务已被接取!");
    }

    public AjaxResult finishTaskServer(Integer id){
        if (id == null){
            return AjaxResult.error("任务id不能为空!");
        }
        TaskHeader header = this.selectTaskHeader(id);
        if (header == null){
            return AjaxResult.error("查询任务头表失败!");
        }
        // 判断任务状态是否正确
        if (QuantityConstant.FORKLIFT_TASK_ACCEPTED.equals(header.getForkliftTaskStatus())){
            header.setForkliftTaskStatus(QuantityConstant.FORKLIFT_TASK_FINISH);
            taskHeaderService.updateById(header);
            return AjaxResult.success("任务已完成!");
        }
        return AjaxResult.error("任务状态异常!");
    }

    public AjaxResult cancelTaskServer(Integer id){
        if (id == null){
            return AjaxResult.error("请勿提交空数据!");
        }
        TaskHeader header = this.selectTaskHeader(id);
        if (header == null){
            return AjaxResult.error("查询任务失败!");
        }
        // 判断任务状态是否正确
        if (QuantityConstant.FORKLIFT_TASK_ACCEPTED.equals(header.getForkliftTaskStatus())){
            header.setForkliftTaskStatus(QuantityConstant.FORKLIFT_TASK_NO);
            taskHeaderService.updateById(header);
            return AjaxResult.success("任务取消成功!");
        }
        return AjaxResult.error("任务状态异常!");
    }

    public TaskHeader selectTaskHeader(Integer id){
        LambdaQueryWrapper<TaskHeader> lambdaQuery = Wrappers.lambdaQuery();
        lambdaQuery.eq(TaskHeader::getId, id);
        return taskHeaderService.getOne(lambdaQuery);
    }
}