|  |  | 
 |  |  |             // 遍历入库口 | 
 |  |  |             for (DevpSlave.Sta inSta : devp.getInSta()) { | 
 |  |  |                 // 获取入库站信息 | 
 |  |  |                 DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId()); | 
 |  |  |                 SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId()); | 
 |  |  |                 StaProtocol staProtocol = devpThread.getStation().get(inSta.getStaNo()); | 
 |  |  |                 if (staProtocol == null) { | 
 |  |  |                     continue; | 
 |  |  | 
 |  |  |                     staProtocol = staProtocol.clone(); | 
 |  |  |                 } | 
 |  |  |                 Short workNo = staProtocol.getWorkNo(); | 
 |  |  |  | 
 |  |  |                 //20230201. 2号堆垛机有出库任务时,禁止新板入库 | 
 |  |  |                 if (staProtocol.isLoading() && staProtocol.getWorkNo() == 9995) { | 
 |  |  |                     if ( inSta.getStaNo()==103 && devpThread.ioModeOf1F == IoModeType.PAKOUT_MODE) { | 
 |  |  |                         //有出库任务,退库到入库口 | 
 |  |  |                         staProtocol.setWorkNo((short) 9999); | 
 |  |  |                         staProtocol.setStaNo((short)100); | 
 |  |  |                         devpThread.setPakMk(staProtocol.getSiteId(), false); | 
 |  |  |                         boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol)); | 
 |  |  |                         News.error("MainServiceImpl  generateStoreWrkFile"+"103为出库模式,禁止入库,退回入库口。!!!"); | 
 |  |  |                         continue; | 
 |  |  |                     } | 
 |  |  |                     if ( inSta.getStaNo()==203 && devpThread.ioModeOf2F == IoModeType.PAKOUT_MODE) { | 
 |  |  |                         //有出库任务,退库到入库口 | 
 |  |  |                         staProtocol.setWorkNo((short) 9999); | 
 |  |  |                         staProtocol.setStaNo((short)200); | 
 |  |  |                         devpThread.setPakMk(staProtocol.getSiteId(), false); | 
 |  |  |                         boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol)); | 
 |  |  |                         News.error("MainServiceImpl  generateStoreWrkFile"+"203为出库模式,禁止入库,退回入库口。!!!"); | 
 |  |  |                         continue; | 
 |  |  |                     } | 
 |  |  |                 } | 
 |  |  |  | 
 |  |  |                 // 判断是否满足入库条件 | 
 |  |  |                 if (staProtocol.isAutoing() && staProtocol.isLoading() | 
 |  |  |                         && staProtocol.isInEnable() | 
 |  |  | 
 |  |  |                         Integer code = jsonObject.getInteger("code"); | 
 |  |  |                         if (code.equals(200)) { | 
 |  |  |                             StartupDto dto = jsonObject.getObject("data", StartupDto.class); | 
 |  |  |  | 
 |  |  |                             News.info("再入库获取新库位成功,返回数据===>>", JSON.toJSON(dto)); | 
 |  |  | //                            // 获取目标站 | 
 |  |  | //                            Wrapper<StaDesc> wrapper = new EntityWrapper<StaDesc>() | 
 |  |  | //                                    .eq("type_no", wrkMast.getIoType() - 50) | 
 |  |  | 
 |  |  |                             // 更新工作档数据状态 | 
 |  |  |                             wrkMast.setIoType(wrkMast.getIoType() - 50); // 入出库类型: 103->53,104->54,107->57 | 
 |  |  |                             wrkMast.setWrkSts(2L); // 工作状态: 2.设备上走 | 
 |  |  |                             wrkMast.setIoPri(13D); | 
 |  |  |                             wrkMast.setSourceStaNo(pickSta.getStaNo()); // 源站 | 
 |  |  |                             wrkMast.setStaNo(dto.getStaNo()); // 目标站 | 
 |  |  |                             wrkMast.setCrnNo(dto.getCrnNo()); | 
 |  |  | 
 |  |  |  | 
 |  |  |                             ledThread.errorReset(); | 
 |  |  |  | 
 |  |  |                             if(wrkMast.getIoType()>100){ | 
 |  |  |                                 throw new CoolException("再入库更新工作档失败,不能给PLC下发任务===>>" + wrkMast.getWrkNo()); | 
 |  |  |                             } | 
 |  |  |                             // 更新站点信息 且 下发plc命令 | 
 |  |  |                             staProtocol.setWorkNo(wrkMast.getWrkNo().shortValue()); | 
 |  |  |                             staProtocol.setStaNo(wrkMast.getStaNo().shortValue()); | 
 |  |  | 
 |  |  |                         // 更新工作档状态为 17.出库完成 | 
 |  |  |                         wrkMast.setWrkSts(17L); | 
 |  |  |                         wrkMast.setSteNo(0); | 
 |  |  |                         wrkMast.setIoPri(15D); | 
 |  |  |                         wrkMast.setCrnEndTime(new Date()); | 
 |  |  |                         if (wrkMastMapper.updateById(wrkMast) != 0) { | 
 |  |  |                             // 复位堆垛机 | 
 |  |  | 
 |  |  |                 continue; | 
 |  |  |             } | 
 |  |  |  | 
 |  |  |             //加强判断,只要存在移库任务,说明出库任务未完全结束,不执行入库任务 | 
 |  |  |             WrkMast one = wrkMastMapper.selectLocMoveData(slave.getId()); | 
 |  |  |             if(!Cools.isEmpty(one)){ | 
 |  |  |                 News.error("入库 ===>> 存在移库未完成任务,不能入库。移库任务号={},堆垛机号={}", one.getWrkNo(), slave.getId()); | 
 |  |  |                 continue; | 
 |  |  |             } | 
 |  |  |  | 
 |  |  |             // 获取工作状态为 2,3,4,5,6 的入库工作档 | 
 |  |  |             WrkMast wrkMast = wrkMastMapper.selectPakInStep23456(slave.getId(), staProtocol.getWorkNo().intValue(), crnStn.getStaNo()); | 
 |  |  |             if(null == wrkMast) { | 
 |  |  | //                News.error("{}站点查询无待入库数据 工作号={}", crnStn.getStaNo(), staProtocol.getWorkNo()); | 
 |  |  |                 continue; | 
 |  |  |             } | 
 |  |  |  | 
 |  |  |             //加强判断,只要存在移库任务,说明出库任务未完全结束,不执行入库任务 | 
 |  |  |             WrkMast one = wrkMastMapper.selectLocMoveData(slave.getId()); | 
 |  |  |             if(!Cools.isEmpty(one)){ | 
 |  |  |                 News.error("入库 ===>> 存在移库未完成任务,不能入库。移库任务号={},堆垛机号={}", one.getWrkNo(), slave.getId()); | 
 |  |  | //                continue; | 
 |  |  |             } | 
 |  |  |  | 
 |  |  |             // 判断是否已存在小车绑定任务 | 
 |  |  | 
 |  |  |                 continue; | 
 |  |  |             } | 
 |  |  |  | 
 |  |  |             // 获取堆垛机出库站信息 | 
 |  |  |             SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, crnStn.getDevpPlcId()); | 
 |  |  |             StaProtocol staProtocol = devpThread.getStation().get(crnStn.getStaNo()); | 
 |  |  |             if (staProtocol == null) { | 
 |  |  |                 continue; | 
 |  |  |             } else { | 
 |  |  |                 staProtocol = staProtocol.clone(); | 
 |  |  |             } | 
 |  |  |  | 
 |  |  |             if (wrkMast.getCrnNo().equals(2)){ | 
 |  |  |                 if (wrkMast.getStaNo() == 103 && devpThread.ioModeOf1F != IoModeType.PAKOUT_MODE) { | 
 |  |  |                     News.error("MainServiceImpl  locToCrnStn"+"103非出库模式,禁止出库。任务号:{}!!!",wrkMast.getWrkNo()); | 
 |  |  |                     continue; | 
 |  |  |                 } | 
 |  |  |                 if (wrkMast.getStaNo() == 203 && devpThread.ioModeOf2F != IoModeType.PAKOUT_MODE) { | 
 |  |  |                     News.error("MainServiceImpl  locToCrnStn"+"203非出库模式,禁止出库。任务号:{}!!!",wrkMast.getWrkNo()); | 
 |  |  |                     continue; | 
 |  |  |                 } | 
 |  |  |  | 
 |  |  |                 if (wrkMast.getWrkSts() == 11 && (wrkMast.getIoType() == 103 || wrkMast.getIoType() == 107)){ | 
 |  |  |                     Integer sour = wrkMast.getSourceStaNo(); | 
 |  |  |                     List<WrkMast> wrkMasts = wrkMastMapper.selectWrkStsAndIoType0(sour); | 
 |  |  |                     if (wrkMasts.size() > 0){ | 
 |  |  |                         News.error("MainServiceImpl  1028行"+"存在捡料、盘点未入库货物,2号堆垛机暂时禁止出库!!!"); | 
 |  |  |                         continue; | 
 |  |  |                     } | 
 |  |  |                 } | 
 |  |  |  | 
 |  |  |                 if (wrkMast.getWrkSts() == 11 && wrkMast.getIoType() == 101){ | 
 |  |  |                     Integer sour = wrkMast.getSourceStaNo(); | 
 |  |  |                     List<WrkMast> wrkMasts = wrkMastMapper.selectWrkStsAndIoType1(sour); | 
 |  |  |                     if (wrkMasts.size() > 0){ | 
 |  |  |                         News.error("MainServiceImpl  1028行"+"204存在全板出库中货物,2号堆垛机暂时禁止全板出库!!!"); | 
 |  |  |                         continue; | 
 |  |  |                     } | 
 |  |  |                 } | 
 |  |  | 
 |  |  |                                     if (wrkMastMapper.updateById(waitWrkMast) == 0) { | 
 |  |  |                                         News.error("调整工作档优先级失败!工作号={}", waitWrkMast.getWrkNo()); | 
 |  |  |                                     } | 
 |  |  |                                     flag = true; | 
 |  |  |                                     if (waitWrkMast.getWrkSts() != 17) { | 
 |  |  |                                         flag = true; | 
 |  |  |                                     } | 
 |  |  |                                     break; | 
 |  |  |                                 } | 
 |  |  |                             } | 
 |  |  | 
 |  |  |                                         .last(" and wrk_sts in (12,13,14,15,16)")); | 
 |  |  |                                 if(one2==null) { | 
 |  |  |                                     moveLocForDeepLoc(slave, shallowLoc); | 
 |  |  |                                 } else { | 
 |  |  |                                     News.error("浅库位阻塞时,且浅库位存在作业中出库任务!工作号={}", one2.getWrkNo()); | 
 |  |  |                                 } | 
 |  |  |                                 flag = true; | 
 |  |  |                                 break; | 
 |  |  | 
 |  |  |                             break; | 
 |  |  |                         } | 
 |  |  |  | 
 |  |  |                         //20230307 ADD,再加一次判断,当浅库位状态不为O时,不执行当前出库任务 | 
 |  |  |                         if(shallowLoc!=null && !shallowLoc.getLocSts().equals("O")){ | 
 |  |  |                             News.error("做了浅库位阻塞处理后反复判断,浅库位状态不为O ===>> 浅库位库位状态为入库预约!出库库位={},浅库位号={}", wrkMast.getSourceLocNo(), shallowLoc.getLocNo()); | 
 |  |  |                             flag = true; | 
 |  |  |                             break; | 
 |  |  |                         } | 
 |  |  |                     } | 
 |  |  |                 } | 
 |  |  |             } | 
 |  |  | 
 |  |  |             // 获取源库位信息 | 
 |  |  |             LocMast sourceSta = locMastService.selectById(wrkMast.getSourceLocNo()); | 
 |  |  |             if (!sourceSta.getLocSts().equals("R") &&!sourceSta.getLocSts().equals("P")) { | 
 |  |  |                 News.error("出库操作库位状态不符合--状态, 库位号={},库位状态={}", wrkMast.getLocNo(), sourceSta.getLocSts()); | 
 |  |  |                 News.error("出库操作库位状态不符合--状态, 库位号={},库位状态={}", wrkMast.getSourceLocNo(), sourceSta.getLocSts()); | 
 |  |  |                 continue; | 
 |  |  |             } | 
 |  |  |             // 获取堆垛机出库站信息 | 
 |  |  |             DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, crnStn.getDevpPlcId()); | 
 |  |  |             StaProtocol staProtocol = devpThread.getStation().get(crnStn.getStaNo()); | 
 |  |  |             if (staProtocol == null) { | 
 |  |  |                 continue; | 
 |  |  |             } else { | 
 |  |  |                 staProtocol = staProtocol.clone(); | 
 |  |  |             } | 
 |  |  |  | 
 |  |  |             // 查询站点详细信息 | 
 |  |  |             BasDevp staDetl = basDevpService.selectById(crnStn.getStaNo()); | 
 |  |  |             if (staDetl == null) { | 
 |  |  | 
 |  |  |                     if(deepLoc != null && !deepLoc.getLocSts().equals("F") | 
 |  |  |                             && !deepLoc.getLocSts().equals("D") | 
 |  |  |                             && !deepLoc.getLocSts().equals("O") | 
 |  |  |                             && (waitWrkMast!=null && waitWrkMast.getWrkSts()<17)){ | 
 |  |  |                             && (waitWrkMast!=null && waitWrkMast.getWrkSts()<18)){ | 
 |  |  |                         News.error("移库再回库时,深库位组深库位状态为作业中 ===>> deepLoc={},loc_sts={}", deepLoc.getLocNo(), deepLoc.getLocSts()); | 
 |  |  |                         if(waitWrkMast.getIoPri()<9999) {//调高优先级 | 
 |  |  |                             waitWrkMast.setIoPri(waitWrkMast.getIoPri() + 1); | 
 |  |  |                             wrkMastService.updateById(waitWrkMast); | 
 |  |  |                         } | 
 |  |  |                         flag = true; | 
 |  |  |                         break; | 
 |  |  |                     } | 
 |  |  | 
 |  |  |                             } | 
 |  |  |                         } | 
 |  |  |                         LocMast sourceLoc = locMastService.selectById(wrkMast.getSourceLocNo()); | 
 |  |  |                         if(sourceLoc.getLocSts().equals("F") || sourceLoc.getLocSts().equals("D")){ | 
 |  |  |                         if(sourceLoc.getLocSts().equals("R") || sourceLoc.getLocSts().equals("D")){ | 
 |  |  |                             sourceLoc.setLocSts("R"); // R.出库预约 | 
 |  |  |                             sourceLoc.setModiTime(new Date()); | 
 |  |  |                             if (!locMastService.updateById(sourceLoc)) { | 
 |  |  | 
 |  |  |         SteThread steThread = (SteThread) SlaveConnection.get(SlaveType.Ste, steNo); | 
 |  |  |         SteProtocol steProtocol = steThread.getSteProtocol(); | 
 |  |  |         if (steProtocol == null) { return; } | 
 |  |  |         if(steProtocol.getLoad() == 1){ | 
 |  |  |             News.error("小车上方有货,无法下发任务===>>{}", steNo); | 
 |  |  |             return; | 
 |  |  |         } | 
 |  |  |         if (steProtocol.isIdle() && steProtocol.getLoad() == 0) { | 
 |  |  |             // 堆垛机空闲 | 
 |  |  |             if (crnProtocol.getStatusType().equals(CrnStatusType.IDLE) || crnProtocol.getTaskNo() == 0) { | 
 |  |  | 
 |  |  |                             SteCommand steCommand = new SteCommand(); | 
 |  |  |                             steCommand.setSteNo(wrkMast.getSteNo()); // 穿梭车编号 | 
 |  |  |                             steCommand.setTaskNo(9999); // 工作号 | 
 |  |  |                             steCommand.setTaskMode(SteTaskModeType.findWaiting(basSte.getRow())); // 任务模式:  去近点 等待堆垛机叉取 | 
 |  |  |                             steCommand.setTaskMode(SteTaskModeType.findWaiting(basSte.getRow())); // 任务模式:  去待机位避让 | 
 |  |  | //                        steCommand.setRow(Utils.getGroupRow(steProtocol.getRow().intValue()).shortValue()); | 
 |  |  | //                        steCommand.setBay(steProtocol.getBay()); | 
 |  |  | //                        steCommand.setLev(steProtocol.getLev()); | 
 |  |  | 
 |  |  |                             String locSts = ""; | 
 |  |  |                             // 库位移转判断是否为空板移转 | 
 |  |  |                             if (wrkMast.getEmptyMk().equals("N")) { | 
 |  |  |                                 locSts = "F"; | 
 |  |  |                                 locSts = "R"; | 
 |  |  |                                 // 转移库存明细数据: 库存号 由工作档源库位变为目标库位 | 
 |  |  |                                 if (!locDetlService.updateLocNo(wrkMast.getLocNo(), wrkMast.getSourceLocNo())) { | 
 |  |  |                                     News.error("库位移转 ===>> 转移库存明细数据失败;[源库位={}],[目标库位={}]", wrkMast.getSourceLocNo(), wrkMast.getLocNo()); | 
 |  |  | 
 |  |  |             // 遍历空板入库口 | 
 |  |  |             for (DevpSlave.Sta emptyInSta : devp.getEmptyInSta()) { | 
 |  |  |                 // 获取空板入库站信息 | 
 |  |  |                 DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId()); | 
 |  |  |                 SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId()); | 
 |  |  |                 StaProtocol staProtocol = devpThread.getStation().get(emptyInSta.getStaNo()); | 
 |  |  |                 if (staProtocol == null) { | 
 |  |  |                     continue; | 
 |  |  |                 } else { | 
 |  |  |                     staProtocol = staProtocol.clone(); | 
 |  |  |                 } | 
 |  |  |  | 
 |  |  |                 //20230201. 2号堆垛机有出库任务时,禁止新板入库 | 
 |  |  |                 if (staProtocol.isLoading() && staProtocol.getWorkNo() == 9995) { | 
 |  |  |                     if ( emptyInSta.getStaNo()==103 && devpThread.ioModeOf1F == IoModeType.PAKOUT_MODE) { | 
 |  |  |                         //有出库任务,退库到入库口 | 
 |  |  |                         staProtocol.setWorkNo((short) 9999); | 
 |  |  |                         staProtocol.setStaNo((short)100); | 
 |  |  |                         devpThread.setPakMk(staProtocol.getSiteId(), false); | 
 |  |  |                         boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol)); | 
 |  |  |                         News.error("MainServiceImpl  storeEmptyPlt"+"103为出库模式,禁止入库,退回入库口。!!!"); | 
 |  |  |                         continue; | 
 |  |  |                     } | 
 |  |  |                     if ( emptyInSta.getStaNo()==203 && devpThread.ioModeOf2F == IoModeType.PAKOUT_MODE) { | 
 |  |  |                         //有出库任务,退库到入库口 | 
 |  |  |                         staProtocol.setWorkNo((short) 9999); | 
 |  |  |                         staProtocol.setStaNo((short)200); | 
 |  |  |                         devpThread.setPakMk(staProtocol.getSiteId(), false); | 
 |  |  |                         boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol)); | 
 |  |  |                         News.error("MainServiceImpl  storeEmptyPlt"+"203为出库模式,禁止入库,退回入库口。!!!"); | 
 |  |  |                         continue; | 
 |  |  |                     } | 
 |  |  |                 } | 
 |  |  |  | 
 |  |  |                 // 站点条件判断 | 
 |  |  |                 if (staProtocol.isAutoing() | 
 |  |  |                         && staProtocol.isLoading() | 
 |  |  | 
 |  |  |                 } | 
 |  |  |                 ledCommand.setSourceLocNo(wrkMast.getSourceLocNo()); | 
 |  |  |                 ledCommand.setStaNo(wrkMast.getStaNo()); | 
 |  |  |                 ledCommand.setBarcode(wrkMast.getBarcode()); | 
 |  |  |                 if (wrkMast.getIoType() != 110) { | 
 |  |  |                     List<WrkDetl> wrkDetls = wrkDetlService.findByWorkNo(wrkMast.getWrkNo()); | 
 |  |  |                     wrkDetls.forEach(wrkDetl -> { | 
 |  |  | 
 |  |  |                 if(Utils.getGroupRow(one.getLocNo()) != Utils.getGroupRow(shallowLoc.getLocNo()) | 
 |  |  |                     || Utils.getBay(one.getLocNo()) != Utils.getBay(shallowLoc.getLocNo()) | 
 |  |  |                     || Utils.getLev(one.getLocNo()) != Utils.getLev(shallowLoc.getLocNo())){ | 
 |  |  |                     loc = one; | 
 |  |  |                     break; | 
 |  |  |  | 
 |  |  |                     boolean success = true; | 
 |  |  |                     List<String> insideLoc = Utils.getGroupInsideLoc(one.getLocNo()); | 
 |  |  |                     for (String inside : insideLoc) { | 
 |  |  |                         LocMast locMast = locMastService.selectById(inside); | 
 |  |  |                         if(Cools.isEmpty(locMast)){ | 
 |  |  |                             continue; | 
 |  |  |                         } | 
 |  |  |                         if (locMast.getLocSts().equals("P") | 
 |  |  |                                 || locMastService.selectById(inside).getLocSts().equals("R") | 
 |  |  |                                 || locMastService.selectById(inside).getLocSts().equals("S") | 
 |  |  |                                 || locMastService.selectById(inside).getLocSts().equals("Q")) { | 
 |  |  |                             success = false; break; | 
 |  |  |                         } | 
 |  |  |                     } | 
 |  |  |  | 
 |  |  |                     Integer steNo = this.hasCar(one.getLocNo()); | 
 |  |  |                     if (steNo != null) { | 
 |  |  |                         continue; | 
 |  |  |                     } | 
 |  |  |  | 
 |  |  |                     if (success) { | 
 |  |  |                         loc = one; | 
 |  |  |                         break; | 
 |  |  |                     } | 
 |  |  |                 } | 
 |  |  |             } | 
 |  |  |  | 
 |  |  | 
 |  |  |         } | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     /** | 
 |  |  |      * 入出库模式切换函数 | 
 |  |  |      */ | 
 |  |  |     public synchronized void ioConvert() { | 
 |  |  |         try { | 
 |  |  |             // 根据输送线plc遍历 | 
 |  |  |             for (DevpSlave devp : slaveProperties.getDevp()) { | 
 |  |  |                 SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId()); | 
 |  |  |  | 
 |  |  |                 for (DevpSlave.Sta inSta : devp.getInSta()) { | 
 |  |  |                     Integer sourceStaNo = inSta.getStaNo()==103 ? 104 : 204; | 
 |  |  |                     WrkMast pakout = wrkMastMapper.selectWorkingPakout(sourceStaNo); | 
 |  |  |                     switch (inSta.getStaNo()) { | 
 |  |  |                         case 103://1F | 
 |  |  |                             if (pakout != null) { | 
 |  |  |                                 if (devpThread.ioModeOf1F != IoModeType.PAKOUT_MODE) { | 
 |  |  |                                     // 出库切换中 | 
 |  |  | //                                    devpThread.ioModeOf1F = IoModeType.PAKOUT_BOOTING; | 
 |  |  | //                                    WrkMast pakin = wrkMastMapper.selectWorkingPakin(inSta.getStaNo()); | 
 |  |  | //                                    if (pakin == null && !devpThread.getStation().get(inSta.getStaNo()).isLoading() | 
 |  |  | //                                            && !devpThread.getStation().get(inSta.getStaNo()+1).isLoading() | 
 |  |  | //                                            && devpThread.getStation().get(inSta.getStaNo()+1).getWorkNo()==0) { | 
 |  |  | //                                        // 出库模式 | 
 |  |  |                                         devpThread.ioModeOf1F = IoModeType.PAKOUT_MODE; | 
 |  |  | //                                    } | 
 |  |  |                                 } | 
 |  |  |                             } else { | 
 |  |  |                                 // 入库模式 | 
 |  |  |                                 devpThread.ioModeOf1F = IoModeType.PAKIN_MODE; | 
 |  |  |                             } | 
 |  |  |                             break; | 
 |  |  |                         case 203://2F | 
 |  |  |                             if (pakout != null) { | 
 |  |  |                                 if (devpThread.ioModeOf2F != IoModeType.PAKOUT_MODE) { | 
 |  |  |                                     // 出库切换中 | 
 |  |  | //                                    devpThread.ioModeOf2F = IoModeType.PAKOUT_BOOTING; | 
 |  |  | //                                    WrkMast pakin = wrkMastMapper.selectWorkingPakin(inSta.getStaNo()); | 
 |  |  | //                                    if (pakin == null && !devpThread.getStation().get(inSta.getStaNo()).isLoading() | 
 |  |  | //                                            && !devpThread.getStation().get(inSta.getStaNo()-1).isLoading() | 
 |  |  | //                                            && devpThread.getStation().get(inSta.getStaNo()-1).getWorkNo()==0) { | 
 |  |  | //                                        // 出库模式 | 
 |  |  |                                         devpThread.ioModeOf2F = IoModeType.PAKOUT_MODE; | 
 |  |  | //                                    } | 
 |  |  |                                 } | 
 |  |  |                             } else { | 
 |  |  |                                 // 入库模式 | 
 |  |  |                                 devpThread.ioModeOf2F = IoModeType.PAKIN_MODE; | 
 |  |  |                             } | 
 |  |  |                             break; | 
 |  |  |                     } | 
 |  |  |                 } | 
 |  |  |  | 
 |  |  |             } | 
 |  |  |  | 
 |  |  |         } catch (Exception e) { | 
 |  |  |             e.printStackTrace(); | 
 |  |  |         } | 
 |  |  |     } | 
 |  |  |  | 
 |  |  | } |