|  |  |  | 
|---|
|  |  |  | 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){ | 
|---|