| | |
| | | new EntityWrapper<BasCrnp>().eq("crn_no", crnProtocol.getCrnNo()) |
| | | ); |
| | | boolean result = true; |
| | | if(crnProtocol.getCrnNo() != 5){ |
| | | if(crnProtocol.getCrnNo() != 3 ){ |
| | | return; |
| | | } |
| | | for (CrnSlave.CrnStn crnStn : slave.getCrnInStn()) { |
| | | DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, crnStn.getDevpPlcId()); |
| | | if(crnStn.getStaNo() == 4001){ |
| | | continue; |
| | | } |
| | | StaProtocol staProtocol = devpThread.getStation().get(crnStn.getStaNo2()); |
| | | if (staProtocol == null) { |
| | | News.infoNoLog(" - 堆垛机入库站信息(staProtocol!=null继续执行):staProtocol="+staProtocol); |
| | |
| | | return; |
| | | } |
| | | } |
| | | if(crnProtocol.getCrnNo() != 5){ |
| | | return; |
| | | } |
| | | |
| | | // 已经存在吊车执行任务时,则过滤3,12 |
| | | if (wrkMastMapper.selectWorking(crnProtocol.getCrnNo()) != null) { |
| | | return; |
| | |
| | | } |
| | | if (wrkMast.getIoType() == 107){ |
| | | int count = wrkMastService.selectCount(new EntityWrapper<WrkMast>().eq("io_type", wrkMast.getIoType()).eq("wrk_sts", 14)); |
| | | if (count >= inventoryNumber) { |
| | | continue; |
| | | } |
| | | // if (count >= inventoryNumber) { |
| | | // continue; |
| | | // } |
| | | } |
| | | // 工作档状态判断 |
| | | if (wrkMast.getIoType() < 100 || wrkMast.getSourceStaNo() == null) { |
| | |
| | | } else { |
| | | total = locDetl.getAnfme(); |
| | | } |
| | | if (wrkMast.getIoType() == 101 || wrkMast.getIoType() == 1) { |
| | | if (wrkMast.getIoType() == 101 || wrkMast.getIoType() == 1 ||wrkMast.getIoType() == 57 || wrkMast.getIoType() == 53) { |
| | | ledCommand.getMatDtos().add(new MatDto(wrkDetl.getMatnr(), wrkDetl.getMaktx(), wrkDetl.getOrderNo(), wrkDetl.getBoxType3(), wrkDetl.getStandby1(), wrkDetl.getStandby2(), wrkDetl.getStandby3(),wrkDetl.getAnfme(),total)); |
| | | } |
| | | if (wrkMast.getIoType() == 103 && (null == wrkDetl.getInspect() || 0 == wrkDetl.getInspect())) { |
| | |
| | | rgvThread.setPakMk(false); //小车双工位锁定 |
| | | |
| | | } |
| | | } |
| | | } |
| | | |
| | | RgvThread rgvThread1 = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgv.getId()); |
| | | RgvProtocol rgvProtocol1 = rgvThread.getRgvProtocol(); |
| | | if (rgvProtocol1 == null) { |
| | | public synchronized void rgvIoExecuteScheduling() { |
| | | for (RgvSlave rgv : slaveProperties.getRgv()) { |
| | | RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgv.getId()); |
| | | RgvProtocol rgvProtocol = rgvThread.getRgvProtocol(); |
| | | if (rgvProtocol == null) { |
| | | continue; |
| | | } |
| | | if(rgvProtocol1.getStatusType1() == RgvStatusType.IDLE && |
| | | rgvProtocol1.getModeType() == RgvModeType.AUTO && rgvThread1.isPakMk() |
| | | && rgvThread1.isPaking() && basRgv.getPakAll().equals("1")){ |
| | | BasRgv basRgv = basRgvService.selectById(rgv.getId()); |
| | | if (basRgv == null) { |
| | | log.error("{}号RGV尚未在数据库进行维护!4", rgv.getId()); |
| | | continue; |
| | | } |
| | | if(rgvProtocol.getStatusType1() == RgvStatusType.WORKING){ |
| | | rgvThread.setPaking(true); |
| | | } |
| | | |
| | | if(rgvProtocol.isLoaded1ing() && rgvProtocol.isLoaded2ing()){ |
| | | basRgv.setPakAll("1"); |
| | | basRgvService.updateById(basRgv); |
| | | } |
| | | if(rgvProtocol.getStatusType1() == RgvStatusType.IDLE && |
| | | rgvProtocol.getModeType() == RgvModeType.AUTO && rgvThread.isPakMk() |
| | | && rgvThread.isPaking() && basRgv.getPakAll().equals("1")){ |
| | | if(basRgv.getPakOut().equals("1") && basRgv.getPakIn().equals("1")){ |
| | | rgvPreSchedulingIn(rgv, rgvProtocol);//若暂无下发任务预调度提前到取货点 |
| | | if (rgvProtocol.getLastIo().equals("I")) { |
| | |
| | | |
| | | sign = rgvTakeFullAll(basRgvMap.getRgvNo(), wrkMastSta); //命令下发 |
| | | if (sign){ |
| | | if(wrkMastSta.getMk() == 1){//若已执行 |
| | | if(wrkMastSta.getMk() != null && wrkMastSta.getMk() == 1){//若已执行 |
| | | basRgv.setPakAll("1"); |
| | | basRgvService.updateById(basRgv); |
| | | } |
| | |
| | | //遍历rgv入库取货站点 |
| | | DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, rgvStn.getDevpPlcId()); |
| | | StaProtocol staProtocol = devpThread.getStation().get(rgvStn.getStaNo2()); |
| | | StaProtocol staProtocol2 = devpThread.getStation().get(rgvStn.getStaNo()); |
| | | |
| | | RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, (int) rgvProtocol.getRgvNo()); |
| | | BasRgv basRgv = basRgvService.selectById(slave.getId()); |
| | | if (basRgv == null) { |
| | |
| | | if(staProtocol.getWorkNo() == 0){ |
| | | continue; |
| | | } |
| | | StaProtocol staProtocol2 = null; |
| | | if(staProtocol2.getWorkNo() != 0 ){ |
| | | continue; |
| | | } |
| | | WrkMastSta wrkMastSta3 = null; |
| | | |
| | | // if(rgvStn.getStaNo2()!= null ){ |
| | |
| | | } |
| | | EntityWrapper<BasRgvOpt> entityWrapper = new EntityWrapper<>(); |
| | | entityWrapper.eq("rgv_no", rgvId) |
| | | .orderBy("send_time"); // 按 send_time 降序排列 |
| | | .orderBy("send_time"); |
| | | BasRgvOpt basRgvOpt = basRgvOptService.selectOne(entityWrapper); |
| | | // 防止重复下发命令 |
| | | if (basRgvOpt != null) { |
| | | // 获取最新记录的 mode 对应的任务类型 |
| | | RgvTaskStatusType latestTaskStatus = RgvTaskStatusType.valueOf(basRgvOpt.getMode()); |
| | | // 判断当前命令与最新记录是否相同 |
| | | if (latestTaskStatus != null && latestTaskStatus == type && basRgvOpt.getPosSta().equals(wrkMastSta.getWorkSta())) { |
| | | if (latestTaskStatus == type && basRgvOpt.getPosSta().equals(wrkMastSta.getWorkSta())) { |
| | | // 如果最新记录的 mode 和 posSta 与当前命令相同,认为是重复命令 |
| | | log.error("命令重复下发,当前命令与最新记录相同,任务不下发!"); |
| | | return false; |
| | |
| | | continue; |
| | | } |
| | | List<BasArm> basArmList = basArmService.selectList(new EntityWrapper<BasArm>().eq("arm_no",armSta.getArmNo())); |
| | | boolean sign = true; |
| | | BasArmMast basArmMastFinal = null; |
| | | Integer num = 0; |
| | | for (BasArm basArm : basArmList){ |
| | | // if (basArm.getStaNo()==2){//NG |
| | | // continue; |
| | | // } |
| | | LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no", basArm.getStaNoSou())); |
| | | if (Cools.isEmpty(locMast) || !locMast.getLocSts().equals("D")){ |
| | | continue; |
| | |
| | | basArmMast.setArmNo(basArm.getArmNo()); |
| | | basArmMast.setStaNo(basArm.getStaNoSou()); |
| | | basArmMast.setSortingLine(basArm.getSortingLineSou()); |
| | | basArmMastService.insert(basArmMast); |
| | | sign = false; |
| | | if(basArmMastList2.size() > num){ |
| | | basArmMastFinal = basArmMast; |
| | | } |
| | | } |
| | | if(basArmMastFinal != null){ |
| | | basArmMastService.insert(basArmMastFinal); |
| | | break; |
| | | } |
| | | // if (sign){ |
| | | // for (BasArm basArm : basArmList){ |
| | | // if (basArm.getStaNo()==2){//NG |
| | | // LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no", basArm.getStaNoSou())); |
| | | // if (Cools.isEmpty(locMast) || !locMast.getLocSts().equals("D")){ |
| | | // continue; |
| | | // } |
| | | // BasArmMast basArmMast = new BasArmMast(armBarcodeTwoParam); |
| | | // basArmMast.setArmNo(basArm.getArmNo()); |
| | | // basArmMast.setStaNo(basArm.getStaNoSou()); |
| | | // basArmMast.setSortingLine(basArm.getSortingLineSou()); |
| | | // basArmMastService.insert(basArmMast); |
| | | // break; |
| | | // } |
| | | // } |
| | | // } |
| | | } |
| | | } |
| | | } catch (Exception e){ |
| | |
| | | SearchLocParam param = new SearchLocParam(); |
| | | param.setBarcode(staProtocol.getWorkNo().toString()); |
| | | param.setIoType(1); |
| | | param.setOutArea(wrkMast.getCtnKind()); |
| | | param.setSourceStaNo(outStaAgv.getStaNo()); |
| | | param.setLocType1(locTypeDto.getLocType1()); |
| | | String response = new HttpHandler.Builder() |
| | |
| | | SearchLocParam param = new SearchLocParam(); |
| | | param.setBarcode(wrkMast.getBarcode()); |
| | | param.setIoType(1); |
| | | param.setOutArea(wrkMast.getCtnKind()); |
| | | param.setSourceStaNo(outStaAgv.getStaNo()); |
| | | param.setLocType1(locTypeDto.getLocType1()); |
| | | String response = new HttpHandler.Builder() |