| | |
| | | import com.zy.core.thread.impl.FyDevpThread; |
| | | import com.zy.core.thread.impl.NormalLedThread; |
| | | import com.zy.system.service.ConfigService; |
| | | import io.swagger.models.auth.In; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.beans.factory.annotation.Value; |
| | | import org.springframework.stereotype.Service; |
| | | |
| | | import java.io.IOException; |
| | | import java.util.*; |
| | | |
| | | /** |
| | |
| | | if (staProtocol == null) { |
| | | continue; |
| | | } |
| | | |
| | | List<WrkMast> wrkMastList = wrkMastService.selectList(new EntityWrapper<WrkMast>().in("wrk_sts", WrkStsType.OUTBOUND_SHUTTLE_RUN.sts, WrkStsType.OUTBOUND_SHUTTLE_RUN_COMPLETE.sts).in("sta_no", 1013, 1024)); |
| | | if (wrkMastList != null && wrkMastList.size() >= 2) { |
| | | News.taskInfo(wrkMast.getWrkNo(), "{}任务,跳过,存在2条工作档", wrkMast.getWrkNo()); |
| | | continue; |
| | | } |
| | | if (!staProtocol.isAutoing()) { |
| | | News.info("{}任务,{}站点,不在自动状态", wrkMast.getWrkNo(), staProtocol.getSiteId()); |
| | | News.taskInfo(wrkMast.getWrkNo(), "{}任务,{}站点,不在自动状态", wrkMast.getWrkNo(), staProtocol.getSiteId()); |
| | | continue; |
| | | } |
| | | if (!isOutEnable(devpThread, wrkMast.getStaNo())) { |
| | | News.info("{}任务,{}站点,没有可出信号", wrkMast.getWrkNo(), staProtocol.getSiteId()); |
| | | News.taskInfo(wrkMast.getWrkNo(), "{}任务,{}站点,没有可出信号", wrkMast.getWrkNo(), staProtocol.getSiteId()); |
| | | continue; |
| | | } |
| | | StaProtocol staProtocol2 = station.get(wrkMast.getStaNo() + 2); |
| | | if (staProtocol2.isLoading()) { |
| | | News.taskInfo(wrkMast.getWrkNo(), "{}任务,{}号输送线有物222", wrkMast.getWrkNo(), wrkMast.getStaNo() + 2); |
| | | continue; |
| | | } |
| | | String locNo = "1200301"; |
| | |
| | | |
| | | boolean dispatchShuttle = shuttleDispatchUtils.searchDispatchShuttleNoLift(wrkMast.getWrkNo(), wrkMast.getSourceLocNo(), locNo, "TRANSPORT_DEVP"); |
| | | if (!dispatchShuttle) { |
| | | News.info("{}任务,调度小车失败", wrkMast.getWrkNo()); |
| | | News.taskInfo(wrkMast.getWrkNo(), "{}任务,调度小车失败", wrkMast.getWrkNo()); |
| | | continue; |
| | | } |
| | | WrkMast wrkMast2 = wrkMastService.selectByMainWrkNo(wrkMast.getWrkNo()); |
| | |
| | | continue;//小车未到达目标层 |
| | | } |
| | | wrkMast.setWrkSts(WrkStsType.MOVE_OUT_LIFT_COMPLETE.sts); |
| | | wrkMast.setLiftNo(null); |
| | | shuttleThread.setSyncTaskNo(0); |
| | | } else if (wrkMast.getWrkSts() == WrkStsType.MOVE_SHUTTLE.sts) { |
| | | //310.小车移动中 ==> 311.小车移动完成 |
| | |
| | | import java.util.ArrayList; |
| | | import java.util.Date; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | |
| | | @Slf4j |
| | | @Service("noLiftOutService") |
| | |
| | | |
| | | /** |
| | | * 从没有提升机侧出库,有两种情况,一种1,5库到同层,一种非1,5库到1,5,则需要提升机 |
| | | * |
| | | * @param wrkMast |
| | | */ |
| | | public void shuttleMoveExecute(WrkMast wrkMast, Integer staNo, Integer lev) { |
| | |
| | | return false; |
| | | } |
| | | |
| | | DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, 1); |
| | | Map<Integer, StaProtocol> station = devpThread.getStation(); |
| | | StaProtocol staProtocol2 = null; |
| | | if (Utils.getLev(shuttleThread.getStatus().getCurrentLocNo()) == 1) { |
| | | staProtocol2 = station.get(1015); |
| | | if (staProtocol2.isLoading()) { |
| | | News.taskInfo(wrkMast.getWrkNo(), "{}任务,{}号输送线有物12432", wrkMast.getWrkNo(), 1015); |
| | | return false; |
| | | } |
| | | } else { |
| | | staProtocol2 = station.get(1026); |
| | | if (staProtocol2.isLoading()) { |
| | | News.taskInfo(wrkMast.getWrkNo(), "{}任务,{}号输送线有物12341", wrkMast.getWrkNo(), 1026); |
| | | return false; |
| | | } |
| | | } |
| | | |
| | | ShuttleAssignCommand assignCommand = new ShuttleAssignCommand(); |
| | | assignCommand.setShuttleNo(shuttleProtocol.getShuttleNo()); // 四向穿梭车编号 |
| | | assignCommand.setTaskMode(ShuttleTaskModeType.MOVE_LOC_NO.id);//小车移库任务 |
| | |
| | | News.taskInfo(wrkMast.getWrkNo(), "{}任务,{}小车,小车忙碌中,禁止派发", wrkMast.getWrkNo(), shuttleProtocol.getShuttleNo()); |
| | | return false; |
| | | } |
| | | DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, 1); |
| | | Map<Integer, StaProtocol> station = devpThread.getStation(); |
| | | StaProtocol staProtocol2 = null; |
| | | if (Utils.getLev(shuttleThread.getStatus().getCurrentLocNo()) == 1) { |
| | | staProtocol2 = station.get(1015); |
| | | if (staProtocol2.isLoading()) { |
| | | News.taskInfo(wrkMast.getWrkNo(), "{}任务,{}号输送线有物12432", wrkMast.getWrkNo(), 1015); |
| | | return false; |
| | | } |
| | | } else { |
| | | staProtocol2 = station.get(1026); |
| | | if (staProtocol2.isLoading()) { |
| | | News.taskInfo(wrkMast.getWrkNo(), "{}任务,{}号输送线有物12341", wrkMast.getWrkNo(), 1026); |
| | | return false; |
| | | } |
| | | } |
| | | |
| | | |
| | | if (!shuttleProtocol.getCurrentLocNo().equals(wrkMast.getSourceLocNo())) { |
| | | return false; |
| | |
| | | } |
| | | |
| | | //入库任务 |
| | | public boolean createInTask(CreateInTaskParam param) { |
| | | public synchronized boolean createInTask(CreateInTaskParam param) { |
| | | Date now = new Date(); |
| | | LocMast locMast = locMastService.queryByLoc(param.getLocNo()); |
| | | if (null == locMast) { |
| | |
| | | } |
| | | |
| | | //出库任务 |
| | | public boolean createOutTask(CreateOutTaskParam param) { |
| | | public synchronized boolean createOutTask(CreateOutTaskParam param) { |
| | | Date now = new Date(); |
| | | LocMast locMast = locMastService.queryByLoc(param.getSourceLocNo()); |
| | | if (null == locMast) { |
| | |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | | |
| | | import javax.rmi.CORBA.Util; |
| | | import java.util.*; |
| | | |
| | | /** |
| | |
| | | /** |
| | | * 调度车辆 |
| | | */ |
| | | public boolean searchDispatchShuttleNoLift(Integer wrkNo, String sourceLocNo, String locNo, String flag) { |
| | | public synchronized boolean searchDispatchShuttleNoLift(Integer wrkNo, String sourceLocNo, String locNo, String flag) { |
| | | ArrayList<ShuttleThread> diffLev = new ArrayList<>();//不同楼层的穿梭车 |
| | | int lev1 = 0; |
| | | boolean tongLev = false; |
| | |
| | | continue;//小车被禁用 |
| | | } |
| | | } |
| | | WrkMast wrkMast = wrkMastService.selectByShuttleNo(basShuttle.getShuttleNo()); |
| | | if(wrkMast!=null){ |
| | | continue; |
| | | } |
| | | diffLev.add(shuttleThread); |
| | | if (lev1 != 0) { |
| | | if (lev1 == Utils.getLev(shuttleProtocol.getCurrentLocNo())) { |