| | |
| | | this.crnStnToLocDemo(crn, crnProtocol); // 入库 |
| | | crnProtocol.setLastIo("O"); |
| | | } else if (basCrnp.getOutEnable().equals("Y")) { |
| | | this.locToCrnStnDemo(crn, crnProtocol); // 出库 |
| | | if (!Cools.isEmpty(basCrnp.getHpMk()) && basCrnp.getHpMk().equals("Y")) { |
| | | this.locToCrnStnDemo(crn, crnProtocol); // 出库 |
| | | } |
| | | crnProtocol.setLastIo("I"); |
| | | } |
| | | } |
| | | // 如果最近一次是出库模式 |
| | | else if (crnProtocol.getLastIo().equals("O")) { |
| | | if (basCrnp.getOutEnable().equals("Y")) { |
| | | this.locToCrnStnDemo(crn, crnProtocol); // 出库 |
| | | if (!Cools.isEmpty(basCrnp.getHpMk()) && basCrnp.getHpMk().equals("Y")) { |
| | | this.locToCrnStnDemo(crn, crnProtocol); // 出库 |
| | | } |
| | | crnProtocol.setLastIo("I"); |
| | | } else if (basCrnp.getInEnable().equals("Y")) { |
| | | this.crnStnToLocDemo(crn, crnProtocol); // 入库 |
| | |
| | | } |
| | | } |
| | | |
| | | |
| | | |
| | | public synchronized void taskStartDemo() { |
| | | for (RgvSlave rgvSlave : slaveProperties.getRgv()) { |
| | | try { |
| | | if (rgvDetection(rgvSlave)) { |
| | | String taskNoNow = rgvOtherTaskWrk(rgvSlave); |
| | | List<BasDevpPosition> basDevpPositions = basDevpPositionService.selectList(new EntityWrapper<BasDevpPosition>().orderBy("PLC_POSITION", true)); |
| | | boolean itSmall = new TrackRangeUtils().IsItSmall(rgvSlave); |
| | | if (basDevpPositions.isEmpty()) { |
| | | log.error("获取所有站点信息异常"); |
| | | try{ |
| | | DeviceErrorService deviceErrorService = SpringUtils.getBean(DeviceErrorService.class); |
| | | deviceErrorService.addDeviceError("rgvErr", rgvSlave.getId(), "指令生成:获取所有站点信息异常"); |
| | | } catch (Exception e2){ |
| | | } |
| | | continue; |
| | | } |
| | | List<TaskWrk> taskWrkList = new ArrayList<>(); |
| | | List<Integer> staList = new ArrayList<>(); |
| | | for (RgvSlave.RgvStn inSta : rgvSlave.getRgvInSta()) { |
| | | TaskWrk taskWrk = deviceDetection(inSta); |
| | | if (taskWrk != null) { |
| | | if (taskWrk.getWrkNo().toString().equals(taskNoNow)) continue; |
| | | taskWrkList.add(taskWrk); |
| | | staList.add(inSta.getStaNo()); |
| | | } |
| | | } |
| | | |
| | | if (taskWrkList.isEmpty() || staList.isEmpty()) continue; |
| | | |
| | | boolean sign = false; |
| | | |
| | | if (!sign){ |
| | | //可用区域就近取货 |
| | | //就近排序 |
| | | RgvProtocol rgvProtocol = RgvStatusCache.getRgvStatus(rgvSlave.getId()); |
| | | List<Integer> rangeList = RouteUtils.SortNearby(staList, rgvProtocol.RgvPos, basDevpPositions); |
| | | // 半边区域内取货任务 |
| | | for (Integer staNoNow : rangeList) { |
| | | for (RgvSlave.RgvStn rgvStn : rgvSlave.getRgvInSta()) { |
| | | if (rgvStn.getStaNo().equals(staNoNow)) { |
| | | TaskWrk taskWrk = deviceDetection(rgvStn); |
| | | if (taskWrk != null) { |
| | | Integer outStaNo = BarcodeUtils.getOutStaNo(taskWrk.getOriginTargetPoint()); |
| | | for (RgvSlave.RgvStn rgvStnOut : rgvSlave.getRgvOutSta()) { |
| | | if (rgvStnOut.getStaNo().equals(outStaNo)) { |
| | | sign = taskGenerate(rgvSlave, rgvStn, 0); |
| | | break; |
| | | } |
| | | } |
| | | } |
| | | break; |
| | | } |
| | | } |
| | | if (sign) { |
| | | break; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } catch (Exception e) { |
| | | log.error("任务生成失败===》异常信息:{}", e.getMessage()); |
| | | try{ |
| | | DeviceErrorService deviceErrorService = SpringUtils.getBean(DeviceErrorService.class); |
| | | deviceErrorService.addDeviceError("rgvErr", rgvSlave.getId(), "指令生成失败"); |
| | | } catch (Exception e2){ |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | } |