| | |
| | | import com.zy.asrs.entity.*; |
| | | import com.zy.asrs.mapper.BasCrnErrorMapper; |
| | | import com.zy.asrs.mapper.BasRgvErrMapper; |
| | | import com.zy.asrs.mapper.WaitPakinMapper; |
| | | import com.zy.asrs.mapper.WrkMastMapper; |
| | | import com.zy.asrs.service.*; |
| | | import com.zy.asrs.utils.Utils; |
| | |
| | | private WrkMastMapper wrkMastMapper; |
| | | @Autowired |
| | | private WrkDetlService wrkDetlService; |
| | | @Autowired |
| | | private WaitPakinMapper waitPakinMapper; |
| | | @Autowired |
| | | private LocMastService locMastService; |
| | | @Autowired |
| | |
| | | LocTypeDto locTypeDto = new LocTypeDto(staProtocol); |
| | | |
| | | SearchLocParam param = new SearchLocParam(); |
| | | if (emptyInSta.getStaNo().equals(214)){ |
| | | //拆盘机处空板扫码,驱动托盘向码垛位,不入库 |
| | | param.setIoType(201); |
| | | }else { |
| | | param.setIoType(10); |
| | | } |
| | | param.setIoType(10); |
| | | param.setSourceStaNo(emptyInSta.getStaNo()); |
| | | param.setLocType1(locTypeDto.getLocType1()); |
| | | String response = new HttpHandler.Builder() |
| | |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 其他 ===>> 码垛位自动补充空板:驱动拆盘机输出托盘 |
| | | */ |
| | | public synchronized void dischargingMachineOutputTray() { |
| | | try { |
| | | List<WrkMast> wrkMasts = wrkMastMapper.selectDischargingMachineOutputTray(); |
| | | if (Cools.isEmpty(wrkMasts) || wrkMasts.size()>3){ |
| | | return; |
| | | } |
| | | // /** |
| | | // * 其他 ===>> 码垛位自动补充空板:驱动拆盘机输出托盘 |
| | | // */ |
| | | // public synchronized void dischargingMachineOutputTray() { |
| | | // try { |
| | | // List<WrkMast> wrkMasts = wrkMastMapper.selectDischargingMachineOutputTray(); |
| | | // if (Cools.isEmpty(wrkMasts) || wrkMasts.size()>3){ |
| | | // return; |
| | | // } |
| | | // |
| | | // // 获取入库站信息 |
| | | // SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, 1); |
| | | // StaProtocol staProtocol = devpThread.getStation().get(213); |
| | | // if (staProtocol == null) { |
| | | // log.error("码垛位自动补充空板:驱动拆盘机输出托盘,任务下发失败,站点查询失败"); |
| | | // return; |
| | | // } else { |
| | | // staProtocol = staProtocol.clone(); |
| | | // } |
| | | // |
| | | // if (!staProtocol.isLoading()){ |
| | | // log.info("码垛位自动补充空板:驱动拆盘机输出托盘,任务下发失败,站点无物,正在自动调出空板!"); |
| | | // int i = wrkMastMapper.selectConfigCount10468N(); |
| | | // if (i==1){ |
| | | // wrkMastMapper.updateConfig10468Y(); |
| | | // } |
| | | // return; |
| | | // }else { |
| | | // int i = wrkMastMapper.selectConfigCount10468N(); |
| | | // if (i==0){ |
| | | // return; |
| | | // } |
| | | // } |
| | | // StaProtocol staProtocol214 = devpThread.getStation().get(214); |
| | | // // 判断是否满足入库条件 |
| | | // if (staProtocol.isAutoing() && staProtocol.getWorkNo() == 0 && staProtocol.isPakMk() && staProtocol214.getWorkNo()==0) { |
| | | // staProtocol.setWorkNo((short)9999); |
| | | // staProtocol.setStaNo((short)214); |
| | | // devpThread.setPakMk(staProtocol.getSiteId(), false); |
| | | // boolean result = MessageQueue.offer(SlaveType.Devp, devpThread.getSlave().getId(), new Task(2, staProtocol)); |
| | | // if (!result) { |
| | | // throw new CoolException("更新plc站点信息失败==>码垛位自动补充空板:驱动拆盘机输出托盘!"); |
| | | // } |
| | | // log.info("码垛位自动补充空板:驱动拆盘机输出托盘,任务下发成功:工作号9999、目标站214!"); |
| | | // }else { |
| | | // log.error("码垛位自动补充空板:驱动拆盘机输出托盘,任务下发失败,站点状态不符合!"); |
| | | // } |
| | | // }catch (Exception e){ |
| | | // e.printStackTrace(); |
| | | // TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); |
| | | // } |
| | | // } |
| | | |
| | | // 获取入库站信息 |
| | | SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, 1); |
| | | StaProtocol staProtocol = devpThread.getStation().get(213); |
| | | if (staProtocol == null) { |
| | | log.error("码垛位自动补充空板:驱动拆盘机输出托盘,任务下发失败,站点查询失败"); |
| | | return; |
| | | } else { |
| | | staProtocol = staProtocol.clone(); |
| | | } |
| | | |
| | | if (!staProtocol.isLoading()){ |
| | | log.info("码垛位自动补充空板:驱动拆盘机输出托盘,任务下发失败,站点无物,正在自动调出空板!"); |
| | | int i = wrkMastMapper.selectConfigCount10468N(); |
| | | if (i==1){ |
| | | wrkMastMapper.updateConfig10468Y(); |
| | | } |
| | | return; |
| | | }else { |
| | | int i = wrkMastMapper.selectConfigCount10468N(); |
| | | if (i==0){ |
| | | return; |
| | | } |
| | | } |
| | | StaProtocol staProtocol214 = devpThread.getStation().get(214); |
| | | // 判断是否满足入库条件 |
| | | if (staProtocol.isAutoing() && staProtocol.getWorkNo() == 0 && staProtocol.isPakMk() && staProtocol214.getWorkNo()==0) { |
| | | staProtocol.setWorkNo((short)9999); |
| | | staProtocol.setStaNo((short)214); |
| | | devpThread.setPakMk(staProtocol.getSiteId(), false); |
| | | boolean result = MessageQueue.offer(SlaveType.Devp, devpThread.getSlave().getId(), new Task(2, staProtocol)); |
| | | if (!result) { |
| | | throw new CoolException("更新plc站点信息失败==>码垛位自动补充空板:驱动拆盘机输出托盘!"); |
| | | } |
| | | log.info("码垛位自动补充空板:驱动拆盘机输出托盘,任务下发成功:工作号9999、目标站214!"); |
| | | }else { |
| | | log.error("码垛位自动补充空板:驱动拆盘机输出托盘,任务下发失败,站点状态不符合!"); |
| | | } |
| | | }catch (Exception e){ |
| | | e.printStackTrace(); |
| | | TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); |
| | | } |
| | | } |
| | | // /** |
| | | // * 其他 ===>> 拆盘机处空板扫码,驱动托盘向码垛位,不入库 |
| | | // */ |
| | | // public synchronized void scanBarcodeEmptyBoard() { |
| | | // try { |
| | | // |
| | | // }catch (Exception e){ |
| | | // e.printStackTrace(); |
| | | // TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); |
| | | // } |
| | | // } |
| | | |
| | | /** |
| | | * 其他 ===>> 拆盘机处空板扫码,驱动托盘向码垛位,不入库 |
| | | */ |
| | | public synchronized void scanBarcodeEmptyBoard() { |
| | | try { |
| | | |
| | | }catch (Exception e){ |
| | | e.printStackTrace(); |
| | | TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 其他 ===>> 码垛完成驱动托盘下一步扫码入库 |
| | | * 其他 ===>> 码垛完成驱动托盘进入下一步(入库前扫码) |
| | | */ |
| | | public synchronized void stackingCompletionDriveTray() { |
| | | try { |
| | | List<WrkMast> wrkMasts = wrkMastMapper.selectStackingCompletionDriveTray(); |
| | | if (Cools.isEmpty(wrkMasts) || wrkMasts.size()==0){ |
| | | return; |
| | | } |
| | | |
| | | for (WrkMast wrkMast : wrkMasts){ |
| | | wrkMast.setWrkSts(44L); |
| | | int[] staNos=new int[]{216,220}; |
| | | for (int staNo : staNos){ |
| | | BasDevp basDevp = basDevpService.selectById(staNo); |
| | | if (basDevp.getWrkNo()!=9992 || Cools.isEmpty(basDevp.getBarcode())){ |
| | | continue; |
| | | } |
| | | Integer zpallet = waitPakinMapper.selectCount(new EntityWrapper<WaitPakin>().eq("zpallet", basDevp.getBarcode()).eq("status","N")); |
| | | if (zpallet<=0){ |
| | | continue; |
| | | } |
| | | // 获取入库站信息 |
| | | SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, 1); |
| | | StaProtocol staProtocol = devpThread.getStation().get(wrkMast.getStaNo()); |
| | | StaProtocol staProtocol = devpThread.getStation().get(staNo); |
| | | if (staProtocol == null) { |
| | | log.error("码垛位自动补充空板:驱动拆盘机输出托盘,任务下发失败,站点查询失败"); |
| | | return; |
| | | continue; |
| | | } else { |
| | | staProtocol = staProtocol.clone(); |
| | | } |
| | | |
| | | // 入出库模式判断 |
| | | // if ( inSta.getStaNo()==203 && devpThread.ioModeOf2F != IoModeType.PAKIN_MODE) { continue; } |
| | | // if (inSta.getStaNo() == 203 && devpThread.ioModeOf2F == IoModeType.PAKOUT_MODE) { |
| | | // continue; |
| | | // } |
| | | |
| | | if (!staProtocol.isLoading()){ |
| | | log.info("码垛位自动补充空板:驱动拆盘机输出托盘,任务下发失败,站点无物,正在自动调出空板!"); |
| | | return; |
| | | log.info("站点无物,正在自动调出空板!"); |
| | | continue; |
| | | } |
| | | // 判断是否满足入库条件 |
| | | if (staProtocol.isAutoing() && staProtocol.getWorkNo().equals(wrkMast.getWrkNo().shortValue()) && staProtocol.isPakMk()) { |
| | | if (staProtocol.isAutoing() |
| | | && staProtocol.isLoading() |
| | | && staProtocol.isInEnable() |
| | | && !staProtocol.isEmptyMk() |
| | | && staProtocol.getWorkNo() == 9992 |
| | | ) {//&& staProtocol.isPakMk() && !Cools.isEmpty(barcode)) { |
| | | |
| | | staProtocol.setWorkNo((short)9999); |
| | | int staNo = wrkMast.getStaNo() + 1; |
| | | staNo = staNo + 1; |
| | | staProtocol.setStaNo((short)staNo); |
| | | devpThread.setPakMk(staProtocol.getSiteId(), false); |
| | | boolean result = MessageQueue.offer(SlaveType.Devp, devpThread.getSlave().getId(), new Task(2, staProtocol)); |
| | | if (!result) { |
| | | throw new CoolException("更新plc站点信息失败==>码垛位自动补充空板:驱动拆盘机输出托盘!"); |
| | | throw new CoolException("更新plc站点信息失败==>驱动码垛位托盘前进失败!"); |
| | | } |
| | | log.info("码垛位自动补充空板:驱动拆盘机输出托盘,任务下发成功:工作号9999、目标站214!"); |
| | | wrkMastMapper.updateStackingCompletionDriveTray(wrkMast.getWrkNo()); |
| | | }else { |
| | | log.error("码垛位自动补充空板:驱动拆盘机输出托盘,任务下发失败,站点状态不符合!"); |
| | | |
| | | } |
| | | } |
| | | }catch (Exception e){ |