package com.zy.asrs.wcs.core.service.impl; 
 | 
  
 | 
import com.zy.asrs.framework.common.Cools; 
 | 
import com.zy.asrs.wcs.core.mapper.TaskMapper; 
 | 
import com.zy.asrs.wcs.core.entity.Task; 
 | 
import com.zy.asrs.wcs.core.model.enums.DeviceCtgType; 
 | 
import com.zy.asrs.wcs.core.model.enums.TaskStsType; 
 | 
import com.zy.asrs.wcs.core.service.TaskService; 
 | 
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; 
 | 
import com.zy.asrs.wcs.core.service.MotionService; 
 | 
import org.springframework.beans.factory.annotation.Autowired; 
 | 
import org.springframework.stereotype.Service; 
 | 
  
 | 
import java.util.List; 
 | 
  
 | 
@Service("taskService") 
 | 
public class TaskServiceImpl extends ServiceImpl<TaskMapper, Task> implements TaskService { 
 | 
  
 | 
    @Autowired 
 | 
    private MotionService motionService; 
 | 
  
 | 
    @Override 
 | 
    public Boolean judgeInbound(Task task) { 
 | 
        switch (TaskStsType.query(task.getTaskSts())) { 
 | 
            case NEW_INBOUND: 
 | 
            case ANALYZE_INBOUND: 
 | 
            case EXECUTE_INBOUND: 
 | 
            case COMPLETE_INBOUND: 
 | 
            case SETTLE_INBOUND: 
 | 
                return Boolean.TRUE; 
 | 
            case NEW_OUTBOUND: 
 | 
            case ANALYZE_OUTBOUND: 
 | 
            case EXECUTE_OUTBOUND: 
 | 
            case COMPLETE_OUTBOUND: 
 | 
            case SETTLE_OUTBOUND: 
 | 
                return Boolean.FALSE; 
 | 
        } 
 | 
        return Boolean.TRUE; 
 | 
    } 
 | 
  
 | 
    @Override 
 | 
    public Boolean hasBusyOutboundByShuttle(Integer shuttleNo) { 
 | 
        List<Task> tasks = this.baseMapper.selectOutboundByShuttleNo(shuttleNo); 
 | 
        if (Cools.isEmpty(tasks)) { 
 | 
            return false; 
 | 
        } 
 | 
        for (Task task : tasks) { 
 | 
            if (task.getTaskSts().equals(TaskStsType.NEW_OUTBOUND.sts) || task.getTaskSts().equals(TaskStsType.ANALYZE_OUTBOUND.sts)) { 
 | 
                return true; 
 | 
            } 
 | 
            if (!Cools.isEmpty(motionService.selectUnCompleteByUuidAndDeviceCtg(task.getUuid(), DeviceCtgType.SHUTTLE))) { 
 | 
                return true; 
 | 
            } 
 | 
        } 
 | 
        return false; 
 | 
    } 
 | 
  
 | 
    @Override 
 | 
    public List<Task> selectByAnalyzeSts() { 
 | 
        return this.baseMapper.selectByAnalyzeSts(); 
 | 
    } 
 | 
  
 | 
    @Override 
 | 
    public List<Task> selectByExecuteSts() { 
 | 
        return this.baseMapper.selectByExecuteSts(); 
 | 
    } 
 | 
  
 | 
    @Override 
 | 
    public List<Task> selectWaitAnalyzeInBoundTask() { 
 | 
        return this.baseMapper.selectWaitAnalyzeInBoundTask(); 
 | 
    } 
 | 
} 
 |