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.Collections; import java.util.List; @Service("taskService") public class TaskServiceImpl extends ServiceImpl 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 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 selectByAnalyzeSts() { return this.baseMapper.selectByAnalyzeSts(); } @Override public List selectByExecuteSts() { return this.baseMapper.selectByExecuteSts(); } @Override public List selectChargeByAnalyzeSts() { return this.baseMapper.selectChargeByAnalyzeSts(); } @Override public List selectChargeByExecuteSts() { return this.baseMapper.selectChargeByExecuteSts(); } @Override public List selectManualByAnalyzeSts() { return this.baseMapper.selectManualByAnalyzeSts(); } @Override public List selectManualByExecuteSts() { return this.baseMapper.selectManualByExecuteSts(); } @Override public List selectWaitAnalyzeInBoundTask() { return this.baseMapper.selectWaitAnalyzeInBoundTask(); } @Override public List selectPakOut() { return this.baseMapper.selectPakOut(); } @Override public List hasChargeInLoc(String locNo) { return this.baseMapper.hasChargeInLoc(locNo); } @Override public Task selectMoveWorking(Integer shuttleNo) { return this.baseMapper.selectMoveWorking(shuttleNo); } @Override public List selectWorkingByShuttle(Integer shuttleNo) { return this.baseMapper.selectWorkingByShuttle(shuttleNo); } @Override public Task selectChargeWorking(Integer shuttleNo) { return this.baseMapper.selectChargeWorking(shuttleNo); } }