| | |
| | | // } |
| | | public synchronized void liftInExecute() { |
| | | try { |
| | | List<WrkMast> wrkMasts = wrkMastService.selectList(new EntityWrapper<WrkMast>().in("wrk_sts", WrkStsType.NEW_INBOUND.sts, WrkStsType.INBOUND_DEVICE_RUN.sts, WrkStsType.INBOUND_LIFT_RUN_COMPLETE.sts).in("source_sta_no", 1012, 1022)); |
| | | List<WrkMast> wrkMasts = wrkMastService.selectList(new EntityWrapper<WrkMast>().in("wrk_sts", WrkStsType.NEW_INBOUND.sts, WrkStsType.INBOUND_DEVICE_RUN.sts, WrkStsType.INBOUND_LIFT_RUN_COMPLETE.sts).in("source_sta_no", 1012, 1022, 1031)); |
| | | for (WrkMast wrkMast : wrkMasts) { |
| | | boolean step0 = this.liftInExecuteStep0(wrkMast);//设备上走 |
| | | if (!step0) { |
| | |
| | | News.info("{}任务,{}站点,无托盘", wrkMast.getWrkNo(), staProtocol.getSiteId()); |
| | | return false; |
| | | } |
| | | |
| | | if (!staProtocol.getBarcode().equals(wrkMast.getBarcode())) { |
| | | News.info("{}任务,{}站点,托盘码不匹配,站点托盘码:{},任务托盘码:{}", wrkMast.getWrkNo(), staProtocol.getSiteId(), staProtocol.getBarcode(), wrkMast.getBarcode()); |
| | | return false; |
| | | if (wrkMast.getSourceStaNo() != 1031) { |
| | | if (!staProtocol.getBarcode().equals(wrkMast.getBarcode())) { |
| | | News.info("{}任务,{}站点,托盘码不匹配,站点托盘码:{},任务托盘码:{}", wrkMast.getWrkNo(), staProtocol.getSiteId(), staProtocol.getBarcode(), wrkMast.getBarcode()); |
| | | return false; |
| | | } |
| | | } |
| | | |
| | | //判断提升机是否有其他任务 |
| | | WrkMast liftWrkMast = wrkMastService.selectLiftWrkMastAndWrkNo(1, wrkMast.getWrkNo(), wrkMast.getMainWrkNo()); |
| | | if (liftWrkMast != null) { |
| | |
| | | short staNo = 1012; |
| | | if (wrkMast.getSourceStaNo() == 1022) { |
| | | staNo = 1023; |
| | | } else if (wrkMast.getSourceStaNo() == 1032) { |
| | | } else if (wrkMast.getSourceStaNo() == 1031) { |
| | | staNo = 1032; |
| | | } |
| | | |
| | |
| | | Integer sourceStaNo = wrkMast.getSourceStaNo(); |
| | | if (wrkMast.getSourceStaNo() == 1022) { |
| | | sourceStaNo = 1023; |
| | | } else if (wrkMast.getSourceStaNo() == 1031) { |
| | | sourceStaNo = 1032; |
| | | } |
| | | |
| | | StaProtocol staProtocol = station.get(sourceStaNo); |
| | |
| | | return false; |
| | | } |
| | | } else if (sourceStaNo == 1032) { |
| | | if (staProtocol.getWorkNo().intValue() != wrkMast.getWrkNo()) { |
| | | if (staProtocol.getFinishWorkNo().intValue() != wrkMast.getWrkNo()) { |
| | | News.info("{}任务,{}站点,任务号不一致", wrkMast.getWrkNo(), staProtocol.getSiteId()); |
| | | return false; |
| | | } |
| | |
| | | |
| | | int lev = 101; |
| | | if (wrkMast.getSourceStaNo() == 1021) { |
| | | //TODO |
| | | // lev = 105; |
| | | lev = 1021; |
| | | lev = 100 + Utils.getLev(wrkMast.getLocNo()); |
| | | } else if (wrkMast.getSourceStaNo() == 1031) { |
| | | lev = 1031; |
| | | lev = 100 + Utils.getLev(wrkMast.getLocNo()); |
| | | } |
| | | //获取提升机命令 |
| | | List<LiftCommand> liftCommands = liftThread.getPalletInCommand(wrkMast.getWrkNo(), sourceStaNo, lev); |
| | |
| | | return false; |
| | | } |
| | | if (wrkMast.getStaNo() == 1031) { |
| | | //TODO |
| | | if (staProtocol.getOutInModel() != 1) { |
| | | News.info("{}任务,{}站点,没有可出信号", wrkMast.getWrkNo(), staProtocol.getSiteId()); |
| | | return false; |
| | | } |
| | | // if (staProtocol.getOutInModel() != 1) { |
| | | // News.info("{}任务,{}站点,没有可出信号", wrkMast.getWrkNo(), staProtocol.getSiteId()); |
| | | // return false; |
| | | // } |
| | | } else { |
| | | if (!isOutEnable(devpThread, wrkMast.getStaNo())) { |
| | | News.info("{}任务,{}站点,没有可出信号", wrkMast.getWrkNo(), staProtocol.getSiteId()); |
| | |
| | | //获取提升机命令 |
| | | List<LiftCommand> liftCommands = liftThread.getPalletOutCommand(wrkMast.getWrkNo(), sourceLev, wrkMast.getStaNo()); |
| | | LiftCommand liftCommand = liftCommands.get(0); |
| | | |
| | | int deviceWrk = commonService.getWorkNo(8);//生成提升机设备工作号 |
| | | liftCommand.setTaskNo(deviceWrk);//更换随机任务号 |
| | | if ( wrkMast.getStaNo()==1031){ |
| | | liftCommand.setTaskNo(wrkMast.getWrkNo()); |
| | | }else { |
| | | int deviceWrk = commonService.getWorkNo(8);//生成提升机设备工作号 |
| | | liftCommand.setTaskNo(deviceWrk);//更换随机任务号 |
| | | } |
| | | |
| | | ArrayList<LiftCommand> commands = new ArrayList<>(); |
| | | commands.add(liftCommand); |
| | |
| | | wrkMast.setLiftNo(liftProtocol.getLiftNo());//提前锁定提升机 |
| | | wrkMast.setSystemMsg("");//清空消息 |
| | | wrkMast.setModiTime(now); |
| | | |
| | | if (wrkMastService.updateById(wrkMast)) { |
| | | //下发任务 |
| | | liftAction.assignWork(wrkMast.getLiftNo(), assignCommand); |
| | |
| | | wrkMast.setWrkSts(WrkStsType.INBOUND_LIFT_RUN_COMPLETE.sts); |
| | | } else if (wrkMast.getWrkSts() == WrkStsType.OUTBOUND_LIFT_RUN.sts) { |
| | | //104.提升机搬运中 ==> 109.出库完成 |
| | | wrkMast.setWrkSts(WrkStsType.COMPLETE_OUTBOUND.sts); |
| | | if (wrkMast.getStaNo() == 1031) { |
| | | wrkMast.setWrkSts(WrkStsType.OUTBOUND_DEVP_RUN_2.sts); |
| | | } else { |
| | | wrkMast.setWrkSts(WrkStsType.COMPLETE_OUTBOUND.sts); |
| | | } |
| | | wrkMast.setLiftNo(null);//释放提升机 |
| | | } else if (wrkMast.getWrkSts() == WrkStsType.MOVE_LIFT_RUN.sts) { |
| | | //306.提升机搬运中 ==> 307.提升机搬运完成 |
| | |
| | | //提升机至小车层 ==> 提升机至小车层完成 |
| | | wrkMast.setWrkSts(WrkStsType.MOVE_OUT_NO_LIFT_5.sts); |
| | | } |
| | | |
| | | wrkMast.setModiTime(new Date()); |
| | | if (wrkMastService.updateById(wrkMast)) { |
| | | liftThread.setSyncTaskNo(0); |
| | |
| | | Map<Integer, StaProtocol> station = devpThread.getStation(); |
| | | WrkMast wrkMast = null; |
| | | for (StaProtocol staProtocol : station.values()) { |
| | | if (staProtocol.getSiteId() == 1013 || staProtocol.getSiteId() == 1024) { |
| | | if ((staProtocol.getSiteId() == 1013 || staProtocol.getSiteId() == 1024) && staProtocol.isLoading()) { |
| | | wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("wrk_no", staProtocol.getFinishWorkNo()).eq("wrk_sts", WrkStsType.OUTBOUND_DEVP_RUN.sts)); |
| | | if (wrkMast != null) { |
| | | wrkMast.setWrkSts(WrkStsType.COMPLETE_OUTBOUND.sts); |
| | | wrkMast.setModiTime(new Date()); |
| | | if (wrkMastService.updateById(wrkMast)) { |
| | | News.info("输送线已确认且任务完成状态。输送线号={},完结工作号={}", staProtocol.getSiteId(), staProtocol.getFinishWorkNo()); |
| | | } else { |
| | | News.error("输送线已确认且任务完成状态,复位失败,但未找到工作档。输送线号={},完结工作号={}", staProtocol.getSiteId(), staProtocol.getFinishWorkNo()); |
| | | } |
| | | } |
| | | } else if (staProtocol.getSiteId() == 1031 && staProtocol.isLoading()) { |
| | | wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("wrk_no", staProtocol.getFinishWorkNo()).eq("wrk_sts", WrkStsType.OUTBOUND_DEVP_RUN_2.sts)); |
| | | if (wrkMast != null) { |
| | | staProtocol.setWorkNo(Short.parseShort(String.valueOf(wrkMast.getWrkNo()))); |
| | | staProtocol.setStaNo(Short.parseShort(String.valueOf(1135))); |
| | | MessageQueue.offer(SlaveType.Devp, 1, new Task(2, staProtocol)); |
| | | News.info("输送线入库命令下发,任务数据={}", JSON.toJSON(wrkMast)); |
| | | wrkMast.setWrkSts(WrkStsType.COMPLETE_OUTBOUND.sts); |
| | | wrkMast.setModiTime(new Date()); |
| | | if (wrkMastService.updateById(wrkMast)) { |
| | |
| | | } |
| | | |
| | | private void shuttleMoveExecuteTransportLift(WrkMast wrkMast) { |
| | | LiftThread liftThread = LiftUtils.getRecentLift(wrkMast.getLocNo()); |
| | | if (liftThread == null) { |
| | | return; |
| | | WrkMast wrkMast1 = wrkMastService.selectByWorkNo(wrkMast.getMainWrkNo()); |
| | | LiftThread liftThread; |
| | | if (wrkMast1 != null && wrkMast1.getLiftNo() != null) { |
| | | liftThread = (LiftThread) SlaveConnection.get(SlaveType.Lift, 1); |
| | | } else { |
| | | liftThread = LiftUtils.getRecentLift(wrkMast.getLocNo()); |
| | | if (liftThread == null) { |
| | | return; |
| | | } |
| | | } |
| | | |
| | | //liftThread = (LiftThread) SlaveConnection.get(SlaveType.Lift, wrkMast1.getLiftNo()); |
| | | String liftLocNo = liftThread.getLiftLocNo(Utils.getLev(wrkMast.getLocNo())); |
| | | if (Utils.getRow(liftLocNo) == Utils.getRow(wrkMast.getSourceLocNo()) && Utils.getBay(liftLocNo) == Utils.getBay(wrkMast.getSourceLocNo())) { |
| | | //取货位置是提升机 |