package com.zy.asrs.service.impl; 
 | 
  
 | 
import com.baomidou.mybatisplus.mapper.EntityWrapper; 
 | 
import com.baomidou.mybatisplus.service.impl.ServiceImpl; 
 | 
import com.core.common.Cools; 
 | 
import com.core.exception.CoolException; 
 | 
import com.zy.asrs.entity.WrkMast; 
 | 
import com.zy.asrs.mapper.WrkMastMapper; 
 | 
import com.zy.asrs.service.WrkMastService; 
 | 
import com.zy.asrs.utils.Utils; 
 | 
import com.zy.core.enums.WrkIoType; 
 | 
import com.zy.core.enums.WrkStsType; 
 | 
import org.springframework.stereotype.Service; 
 | 
  
 | 
import java.util.ArrayList; 
 | 
import java.util.List; 
 | 
  
 | 
@Service("wrkMastService") 
 | 
public class WrkMastServiceImpl extends ServiceImpl<WrkMastMapper, WrkMast> implements WrkMastService { 
 | 
  
 | 
    @Override 
 | 
    public WrkMast selectByWorkNo(Integer workNo) { 
 | 
        return this.baseMapper.selectByWorkNo(workNo); 
 | 
    } 
 | 
  
 | 
    @Override 
 | 
    public Boolean judgeInbound(WrkMast wrkMast) { 
 | 
        switch (WrkStsType.query(wrkMast.getWrkSts())) { 
 | 
            case NEW_INBOUND: 
 | 
            case INBOUND_DEVICE_RUN: 
 | 
            case INBOUND_LIFT_RUN: 
 | 
            case INBOUND_LIFT_RUN_COMPLETE: 
 | 
            case INBOUND_SHUTTLE_RUN: 
 | 
            case INBOUND_SHUTTLE_RUN_COMPLETE: 
 | 
            case COMPLETE_INBOUND: 
 | 
            case SETTLE_INBOUND: 
 | 
                return Boolean.TRUE; 
 | 
            case NEW_OUTBOUND: 
 | 
            case OUTBOUND_SHUTTLE_RUN: 
 | 
            case OUTBOUND_SHUTTLE_RUN_COMPLETE: 
 | 
            case OUTBOUND_LIFT_RUN: 
 | 
            case OUTBOUND_LIFT_RUN_COMPLETE: 
 | 
            case COMPLETE_OUTBOUND: 
 | 
            case SETTLE_OUTBOUND: 
 | 
                return Boolean.FALSE; 
 | 
        } 
 | 
        return Boolean.TRUE; 
 | 
    } 
 | 
  
 | 
    @Override 
 | 
    public List<WrkMast> selectWrkByLev(Integer lev) { 
 | 
        ArrayList<WrkMast> currentLevList = new ArrayList<>(); 
 | 
        List<WrkMast> wrkMasts = this.baseMapper.selectList(new EntityWrapper<WrkMast>()); 
 | 
        for (WrkMast wrkMast : wrkMasts) { 
 | 
            int wrkLev; 
 | 
            if (wrkMast.getIoType() == WrkIoType.IN.id) { 
 | 
                wrkLev = Utils.getLev(wrkMast.getLocNo()); 
 | 
            } else if (wrkMast.getIoType() == WrkIoType.OUT.id) { 
 | 
                wrkLev = Utils.getLev(wrkMast.getSourceLocNo()); 
 | 
            } else if (wrkMast.getIoType() == WrkIoType.SHUTTLE_MOVE.id) { 
 | 
                wrkLev = Utils.getLev(wrkMast.getLocNo()); 
 | 
            } else if (wrkMast.getIoType() == WrkIoType.LOC_MOVE.id) { 
 | 
                wrkLev = Utils.getLev(wrkMast.getLocNo()); 
 | 
            } else if (wrkMast.getIoType() == WrkIoType.SHUTTLE_CHARGE.id) { 
 | 
                wrkLev = Utils.getLev(wrkMast.getLocNo()); 
 | 
            } else { 
 | 
                throw new CoolException("未知任务类型"); 
 | 
            } 
 | 
  
 | 
            if (wrkLev == lev) { 
 | 
                currentLevList.add(wrkMast); 
 | 
            } 
 | 
        } 
 | 
        return currentLevList; 
 | 
    } 
 | 
  
 | 
    @Override 
 | 
    public List<WrkMast> selectShuttleWrkByLev(Integer lev) { 
 | 
        return this.baseMapper.selectShuttleWrkByLev("%" + lev); 
 | 
    } 
 | 
  
 | 
    @Override 
 | 
    public List<WrkMast> selectShuttleOutWrkByLev(Integer lev) { 
 | 
        return this.baseMapper.selectShuttleOutWrkByLev("%" + lev); 
 | 
    } 
 | 
  
 | 
    @Override 
 | 
    public WrkMast selectChargeWorking(Integer shuttleNo) { 
 | 
        return this.baseMapper.selectChargeWorking(shuttleNo); 
 | 
    } 
 | 
  
 | 
    @Override 
 | 
    public WrkMast selectChargeWorkingByChargeSta(Integer chargeSta) { 
 | 
        return this.baseMapper.selectChargeWorkingByChargeSta(chargeSta); 
 | 
    } 
 | 
  
 | 
    @Override 
 | 
    public Boolean hasBusyByShuttle(Integer shuttleNo) { 
 | 
        List<WrkMast> wrkMasts = this.selectList(new EntityWrapper<WrkMast>().in("wrk_sts" 
 | 
                , WrkStsType.NEW_INBOUND.sts 
 | 
                , WrkStsType.INBOUND_DEVICE_RUN.sts 
 | 
                , WrkStsType.INBOUND_LIFT_RUN.sts 
 | 
                , WrkStsType.INBOUND_LIFT_RUN_COMPLETE.sts 
 | 
                , WrkStsType.INBOUND_SHUTTLE_RUN.sts 
 | 
                , WrkStsType.INBOUND_SHUTTLE_RUN_COMPLETE.sts 
 | 
  
 | 
                , WrkStsType.NEW_OUTBOUND.sts 
 | 
                , WrkStsType.OUTBOUND_SHUTTLE_RUN.sts 
 | 
                , WrkStsType.OUTBOUND_SHUTTLE_RUN_COMPLETE.sts 
 | 
                , WrkStsType.OUTBOUND_LIFT_RUN.sts 
 | 
                , WrkStsType.OUTBOUND_LIFT_RUN_COMPLETE.sts 
 | 
  
 | 
                , WrkStsType.NEW_MOVE.sts 
 | 
                , WrkStsType.MOVE_NEARBY.sts 
 | 
                , WrkStsType.MOVE_NEARBY_COMPLETE.sts 
 | 
                , WrkStsType.MOVE_IN_LIFT.sts 
 | 
                , WrkStsType.MOVE_IN_LIFT_COMPLETE.sts 
 | 
                , WrkStsType.MOVE_LIFT_RUN.sts 
 | 
                , WrkStsType.MOVE_LIFT_RUN_COMPLETE.sts 
 | 
                , WrkStsType.MOVE_OUT_LIFT.sts 
 | 
                , WrkStsType.MOVE_OUT_LIFT_COMPLETE.sts 
 | 
                , WrkStsType.MOVE_SHUTTLE.sts 
 | 
  
 | 
                , WrkStsType.NEW_CHARGE.sts 
 | 
                , WrkStsType.CHARGE_SHUTTLE_RUN.sts 
 | 
                , WrkStsType.CHARGE_SHUTTLE_WORKING.sts 
 | 
                , WrkStsType.CHARGE_SHUTTLE_COMPLETE.sts 
 | 
        ).eq("shuttle_no", shuttleNo)); 
 | 
        if (Cools.isEmpty(wrkMasts)) { 
 | 
            return false; 
 | 
        } 
 | 
        return true; 
 | 
    } 
 | 
  
 | 
    @Override 
 | 
    public WrkMast selectShuttleHasMoveWorking(Integer shuttleNo) { 
 | 
        return this.baseMapper.selectShuttleHasMoveWorking(shuttleNo); 
 | 
    } 
 | 
  
 | 
    @Override 
 | 
    public WrkMast selectShuttleWorking(Integer shuttleNo) { 
 | 
        return this.baseMapper.selectShuttleWorking(shuttleNo); 
 | 
    } 
 | 
  
 | 
    @Override 
 | 
    public List<WrkMast> selectShuttleMoveWrk() { 
 | 
        return this.baseMapper.selectShuttleMoveWrk(); 
 | 
    } 
 | 
  
 | 
    @Override 
 | 
    public List<WrkMast> selectLiftWrkMast(Integer liftNo) { 
 | 
        return this.baseMapper.selectLiftWrkMast(liftNo); 
 | 
    } 
 | 
} 
 |