| 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(); | 
|     } | 
|   | 
|     @Override | 
|     public List<Task> selectPakOut() { | 
|         return this.baseMapper.selectPakOut(); | 
|     } | 
| } |