| 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); | 
|     } | 
| } |