From 72c06d5800d3a99dbd7002a6946be749d9264b15 Mon Sep 17 00:00:00 2001 From: zhang <zc857179121@qq.com> Date: 星期四, 26 六月 2025 10:44:26 +0800 Subject: [PATCH] 1 --- src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 228 ++++++++++++++++++++++++++++++--------------------------- 1 files changed, 120 insertions(+), 108 deletions(-) diff --git a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java index 4f9173a..4c9d443 100644 --- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java @@ -104,15 +104,12 @@ @Value("${loc-move.enable}") private boolean enable; - @Value("${loc-move.crn1}") - private boolean crn1; - @Value("${loc-move.crn2}") - private boolean crn2; - @Value("${loc-move.crn3}") - private boolean crn3; + + @Value("${config.outloading}") + private boolean outloading; - public void generateStoreWrkFile() throws IOException, InterruptedException { + public synchronized void generateStoreWrkFile() { try { // 鏍规嵁杈撻�佺嚎plc閬嶅巻 for (DevpSlave devp : slaveProperties.getDevp()) { @@ -161,57 +158,51 @@ back = true; } // 鍒ゆ柇鏄惁婊¤冻鍏ュ簱鏉′欢 - if (staProtocol.isAutoing() && staProtocol.isLoading() - && staProtocol.isInEnable() - && !staProtocol.isEmptyMk() && workNo >= 9790 - && staProtocol.isPakMk()) { + if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.isInEnable() + && !staProtocol.isEmptyMk() && workNo >= 9000 && staProtocol.isPakMk()) { // 鑾峰彇鏉$爜鎵弿浠俊鎭� BarcodeThread barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, inSta.getBarcode()); if (barcodeThread == null) { continue; } String BoxNo = barcodeThread.getBarcode(); + if (Cools.isEmpty(BoxNo)) { + log.error("{}鍙锋潯鐮佹壂鎻忓け璐ワ紝鍊硷細{}", inSta.getBarcode(), BoxNo); + continue; + } TaskWrk taskWrk1 = taskWrkService.selectOne(new EntityWrapper<TaskWrk>().eq("barcode", BoxNo)); if (!Cools.isEmpty(taskWrk1)) { log.info("鎵樼洏鐮侊細" + BoxNo + "浠诲姟妗e瓨鍦�"); - if (taskWrk1.getIoType() == 1 && taskWrk1.getStartPoint().equals(staProtocol.getSiteId().toString())) { - StaDesc staDesc = staDescService.selectOne(new EntityWrapper<StaDesc>() - .eq("crn_no", taskWrk1.getCrnNo()).eq("type_no", 1).eq("stn_no", staProtocol.getSiteId())); - if (Cools.isEmpty(staDesc)) { - return; - } else { - continue; - } - } + continue; } if (back) { storageEscalationParam.setWCSStatus(1); storageEscalationParam.setWCSErrorMessage(storageEscalationParam.getWCSErrorMessage() + errMsg); } storageEscalationParam.setBarcode(BoxNo); + storageEscalationParam.setMatIdList(staProtocol.getMatIdList()); log.info("缁勬墭鍏ュ簱={}", storageEscalationParam); TaskWrk taskWrk = toWmsService.getLocNoFromWms(storageEscalationParam); + if (taskWrk == null) { + log.error("鍏ュ簱璇锋眰wms鍒涘缓浠诲姟宸ヤ綔妗d负绌猴細{}", storageEscalationParam); + continue; + } if (back) { - log.info("鎵樼洏閫�鍥�==>{}锛寋}", BoxNo, errMsg); staProtocol.setStaNo(inSta.getBackSta().shortValue()); devpThread.setPakMk(staProtocol.getSiteId(), false); MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol)); + log.info("缁勬墭鍏ュ簱鎵樼洏閫�鍥炲懡浠ゆ帹閫佽緭閫佺嚎闃熷垪鎴愬姛==>{}锛寋}", BoxNo, errMsg); } else { - if (!Cools.isEmpty(taskWrk)) { - StaDesc staDesc = staDescService.selectOne(new EntityWrapper<StaDesc>() - .eq("crn_no", taskWrk.getCrnNo()).eq("type_no", 1).eq("stn_no", staProtocol.getSiteId())); - staProtocol.setWorkNo(taskWrk.getWrkNo().shortValue()); - staProtocol.setStaNo(staDesc.getCrnStn().shortValue()); - MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol)); - //娣诲姞涓婃姤鏃ュ織 - toWmsService.addReportLog(taskWrk); - } else { - log.info("鍒涘缓宸ヤ綔妗eけ璐�==>{}", taskWrk.getTaskNo()); - staProtocol.setStaNo(inSta.getBackSta().shortValue()); - devpThread.setPakMk(staProtocol.getSiteId(), false); - MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol)); + StaDesc staDesc = staDescService.selectOne(new EntityWrapper<StaDesc>() + .eq("crn_no", taskWrk.getCrnNo()).eq("type_no", 1).eq("stn_no", staProtocol.getSiteId())); + if (staDesc == null) { + log.error("缁勬墭鍏ュ簱璺緞涓嶅瓨鍦紝wrkNo={},crn={},stn_no={}", taskWrk.getWrkNo(), taskWrk.getCrnNo(), staProtocol.getSiteId()); + continue; } - + staProtocol.setWorkNo(taskWrk.getWrkNo().shortValue()); + staProtocol.setStaNo(staDesc.getCrnStn().shortValue()); + MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol)); + log.info("缁勬墭鍏ュ簱鍛戒护鎺ㄩ�佽緭閫佺嚎闃熷垪鎴愬姛:{}", staProtocol); } } @@ -231,47 +222,50 @@ for (CrnSlave crnSlave : slaveProperties.getCrn()) { // 閬嶅巻鍫嗗灈鏈哄嚭搴撶珯 for (CrnSlave.CrnStn crnStn : crnSlave.getCrnOutStn()) { - List<StaDesc> staDescs = staDescMapper.selectList(new EntityWrapper<StaDesc>().eq("crn_no", crnSlave.getId()).eq("crn_stn", crnStn.getStaNo())); - for (StaDesc staDesc : staDescs) { - try { - // 鑾峰彇鍫嗗灈鏈哄嚭搴撶珯淇℃伅 - DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, crnStn.getDevpPlcId()); - StaProtocol staProtocol = devpThread.getStation().get(crnStn.getStaNo()); - if (staProtocol == null) { - continue; - } else { - staProtocol = staProtocol.clone(); - } - if (staProtocol.isAutoing() && staProtocol.isLoading() && (staProtocol.getWorkNo() == 0 || staProtocol.getStaNo() == 0)) { - // 鏌ヨ宸ヤ綔妗� - TaskWrk taskWrk = taskWrkMapper.selectCrnStaWorking(crnSlave.getId(), staDesc.getStnNo().toString()); - if (taskWrk == null) { - continue; - } - log.info("涓嬪彂杈撻�佺嚎浠诲姟锛歵askWrk:" + JSON.toJSONString(taskWrk)); - staProtocol.setWorkNo(taskWrk.getWrkNo().shortValue()); - staProtocol.setStaNo(staDesc.getStnNo().shortValue()); - boolean offer = false; - try { - offer = MessageQueue.offer(SlaveType.Devp, 1, new Task(2, staProtocol)); - } catch (Exception e) { - log.error("涓嬪彂杈撻�佺嚎浠诲姟澶辫触锛氬紓甯�:" + e); - log.error("涓嬪彂杈撻�佺嚎浠诲姟澶辫触锛氬紓甯�:offer:" + offer); - } - if (offer) { - log.info("涓嬪彂杈撻�佺嚎浠诲姟鎴愬姛锛歵askWrk:" + JSON.toJSONString(taskWrk)); - taskWrk.setStatus(5); - taskWrk.setWrkSts(14); - taskWrkService.updateById(taskWrk); - - } else { - log.error("涓嬪彂杈撻�佺嚎浠诲姟澶辫触锛歵askWrk:" + JSON.toJSONString(taskWrk)); - } - } - } catch (Exception e) { - log.error("鍑哄簱鍒板嚭搴撶珯寮傚父:寮傚父淇℃伅锛�" + e); + try { + // 鑾峰彇鍫嗗灈鏈哄嚭搴撶珯淇℃伅 + DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, crnStn.getDevpPlcId()); + StaProtocol staProtocol = devpThread.getStation().get(crnStn.getStaNo()); + if (staProtocol == null) { + continue; + } else { + staProtocol = staProtocol.clone(); } + if (staProtocol.isAutoing() && staProtocol.isLoading() && (staProtocol.getWorkNo() == 0 || staProtocol.getStaNo() == 0)) { + // 鏌ヨ宸ヤ綔妗� + TaskWrk taskWrk = taskWrkMapper.selectCrnStaWorking(crnSlave.getId(), String.valueOf(crnStn.getStaNo() - 1)); + if (taskWrk == null) { + continue; + } + log.info("涓嬪彂杈撻�佺嚎浠诲姟锛歵askWrk:" + JSON.toJSONString(taskWrk)); + staProtocol.setWorkNo(taskWrk.getWrkNo().shortValue()); + staProtocol.setStaNo(Short.valueOf(taskWrk.getTargetPoint())); + if (!Cools.isEmpty(taskWrk.getType())) { + staProtocol.setHeight(taskWrk.getType()); + } + boolean offer = false; + try { + offer = MessageQueue.offer(SlaveType.Devp, 1, new Task(2, staProtocol)); + } catch (Exception e) { + log.error("涓嬪彂杈撻�佺嚎浠诲姟澶辫触锛氬紓甯�:" + e); + log.error("涓嬪彂杈撻�佺嚎浠诲姟澶辫触锛氬紓甯�:offer:" + offer); + } + if (offer) { + log.info("涓嬪彂杈撻�佺嚎浠诲姟鎴愬姛锛歵askWrk:" + JSON.toJSONString(taskWrk)); + taskWrk.setStatus(5); + taskWrk.setWrkSts(14); + taskWrk.setCompleteTime(new Date()); + taskWrkService.updateById(taskWrk); + + } else { + log.error("涓嬪彂杈撻�佺嚎浠诲姟澶辫触锛歵askWrk:" + JSON.toJSONString(taskWrk)); + } +// } + } + } catch (Exception e) { + log.error("鍑哄簱鍒板嚭搴撶珯寮傚父:寮傚父淇℃伅锛�" + e); } +// } } } @@ -360,6 +354,17 @@ continue; } + LocMast locMast = locMastService.selectByLocNo(taskWrk.getTargetPoint()); + if (!locMast.getLocSts().equals("O")) { + if (taskWrk.getWrkSts() == 2) { + log.error("鍏ュ簱WMS鍒嗛厤搴撲綅{}鏈夎锛屽簱浣嶇姸鎬佷负{}", locMast.getLocNo(), locMast.getLocSts()); + taskWrk.setWrkSts(5); + taskWrk.setMemo("WMS鍒嗛厤搴撲綅鏈夎"); + taskWrkService.updateById(taskWrk); + } + continue; + } + // 鍫嗗灈鏈烘帶鍒惰繃婊� if (!crnProtocol.getStatusType().equals(CrnStatusType.IDLE) || crnProtocol.getTaskNo() != 0) { continue; @@ -373,11 +378,12 @@ // int workNo = commonService.getWorkNo(WorkNoType.PAKIN.type);//鑾峰彇鍏ュ簱宸ヤ綔鍙� // taskWrk.setWrkNo(workNo);//宸ヤ綔鍙� taskWrk.setStatus(TaskStatusType.DISTRIBUTE.id);//娲惧彂鐘舵�� - taskWrk.setAssignTime(new Date());//娲惧彂鏃堕棿 + taskWrk.setExecuteTime(new Date()); +// taskWrk.setAssignTime(new Date());//娲惧彂鏃堕棿 taskWrk.setWrkSts(3);//宸ヤ綔鐘舵�� 3.鍚婅溅鍏ュ簱 taskWrk.setCrnNo(staDesc.getCrnNo());//鍫嗗灈鏈哄彿 - taskWrk.setModiTime(new Date()); - taskWrk.setModiUser(9988L); +// taskWrk.setModiTime(new Date()); +// taskWrk.setModiUser(9988L); // 鍛戒护涓嬪彂鍖� -------------------------------------------------------------------------- CrnCommand crnCommand = new CrnCommand(); @@ -398,6 +404,8 @@ throw new CoolException("鍫嗗灈鏈哄懡浠ょ敓鎴愬け璐�"); } else { try { + // 涓婃姤鎵ц鐘舵�� + toWmsService.executionStatusReport(taskWrk.getTaskNo(), taskWrk.getWrkSts()); taskWrkService.updateById(taskWrk); } catch (Exception e) { log.error("淇敼宸ヤ綔妗g姸鎬� 2.璁惧涓婅蛋 => 3.鍚婅溅鍏ュ簱涓� 澶辫触锛侊紒锛屽伐浣滃彿={}", taskWrk.getWrkNo()); @@ -434,24 +442,24 @@ LocMast locMast = locMastService.selectByLocNo(taskWrk.getStartPoint()); //鍒ゆ柇鍏跺簱浣嶆槸鍚︿负娣卞簱浣嶏紝濡傛灉涓烘繁搴撲綅鎵惧叾娴呭簱浣嶆槸閮芥湁璐� - boolean flag = false; + int flag = 0; if (locMast.getRow1() == 1 || locMast.getRow1() == 5 || locMast.getRow1() == 9) { - flag = true; + flag = 1; } else if (locMast.getRow1() == 4 || locMast.getRow1() == 8 || locMast.getRow1() == 12) { - flag = true; + flag = 2; } - if (flag) { + if (flag == 1) { LocMast locMast1 = locMastService.selectOne(new EntityWrapper<LocMast>() - .eq("row1", (locMast.getRow1() - 1)) + .eq("row1", (locMast.getRow1() + 1)) .eq("bay1", locMast.getBay1()) .eq("lev1", locMast.getLev1()).eq("loc_sts", "F")); if (!Cools.isEmpty(locMast1)) { log.info(locMast.getLocNo() + "鍑烘繁搴撲綅锛屾祬搴撲綅鏈夎揣"); continue; } - } else { + } else if (flag == 2) { LocMast locMast1 = locMastService.selectOne(new EntityWrapper<LocMast>() - .eq("row1", (locMast.getRow1() + 1)) + .eq("row1", (locMast.getRow1() - 1)) .eq("bay1", locMast.getBay1()) .eq("lev1", locMast.getLev1()).eq("loc_sts", "F")); if (!Cools.isEmpty(locMast1)) { @@ -478,7 +486,7 @@ } // 鍒ゆ柇鍫嗗灈鏈哄嚭搴撶珯鐘舵�� - if (staProtocol.isAutoing() && !staProtocol.isLoading() && staDetl.getCanouting() != null && staDetl.getCanouting().equals("Y") + if (staProtocol.isAutoing() && (outloading || !staProtocol.isLoading()) && staDetl.getCanouting() != null && staDetl.getCanouting().equals("Y") && staProtocol.getWorkNo() == 0 && staProtocol.isOutEnable()) { // 鍛戒护涓嬪彂鍖� -------------------------------------------------------------------------- @@ -518,10 +526,12 @@ Date now = new Date(); taskWrk.setWrkSts(12); taskWrk.setStatus(2); - taskWrk.setModiTime(now); + taskWrk.setExecuteTime(now); if (taskWrkMapper.updateById(taskWrk) == 0) { log.error("淇敼宸ヤ綔妗g姸鎬� 11.鐢熸垚鍑哄簱ID => 12.鍚婅溅鍑哄簱涓� 澶辫触锛侊紒锛屽伐浣滃彿={}", taskWrk.getWrkNo()); } + // 涓婃姤鎵ц鐘舵�� + toWmsService.executionStatusReport(taskWrk.getTaskNo(), taskWrk.getWrkSts()); } catch (Exception e) { log.error("淇敼宸ヤ綔妗g姸鎬� 11.鐢熸垚鍑哄簱ID => 12.鍚婅溅鍑哄簱涓� 澶辫触锛侊紒锛屽伐浣滃彿={}", taskWrk.getWrkNo()); log.error("淇敼宸ヤ綔妗g姸鎬� 11.鐢熸垚鍑哄簱ID => 12.鍚婅溅鍑哄簱涓� 澶辫触锛侊紒锛屽紓甯革細" + e); @@ -589,6 +599,7 @@ Date now = new Date(); taskWrk.setWrkSts(12); taskWrk.setStatus(2); + taskWrk.setExecuteTime(now); taskWrk.setModiTime(now); if (taskWrkMapper.updateById(taskWrk) == 0) { log.error("淇敼宸ヤ綔妗g姸鎬� 11.鐢熸垚鍑哄簱ID => 12.鍚婅溅鍑哄簱涓� 澶辫触锛侊紒锛屽伐浣滃彿={}", taskWrk.getWrkNo()); @@ -669,6 +680,7 @@ locMast1.setModiUser(9999L); locMastService.updateById(locMast1); } + taskWrk.setCompleteTime(new Date()); taskWrkService.updateById(taskWrk); } @@ -867,14 +879,14 @@ } SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId()); for (DevpSlave.Sta inSta : devp.getInSta()) { - WrkMast pakout = wrkMastMapper.selectWorkingPakout(inSta.getBackSta()); + TaskWrk taskWrk = taskWrkService.selectByTargetPoint(inSta.getBackSta() + ""); switch (inSta.getBackSta()) { - case 116: - if (pakout != null) { + case 101: + if (taskWrk != null) { if (devpThread.ioModeOf1F1 != IoModeType.PAKOUT_MODE) { // 鍑哄簱鍒囨崲涓� devpThread.ioModeOf1F1 = IoModeType.PAKOUT_BOOTING; - WrkMast pakin = wrkMastMapper.selectWorkingPakin(inSta.getStaNo()); + TaskWrk pakin = taskWrkService.selectByStartPoint(inSta.getStaNo() + ""); if (pakin == null && !devpThread.getStation().get(inSta.getStaNo()).isLoading() && !devpThread.getStation().get(inSta.getBackSta()).isLoading() && devpThread.getStation().get(inSta.getBackSta()).getWorkNo() == 0) { @@ -887,12 +899,12 @@ devpThread.ioModeOf1F1 = IoModeType.PAKIN_MODE; } break; - case 117: - if (pakout != null) { + case 104: + if (taskWrk != null) { if (devpThread.ioModeOf1F2 != IoModeType.PAKOUT_MODE) { // 鍑哄簱鍒囨崲涓� devpThread.ioModeOf1F2 = IoModeType.PAKOUT_BOOTING; - WrkMast pakin = wrkMastMapper.selectWorkingPakin(inSta.getStaNo()); + TaskWrk pakin = taskWrkService.selectByStartPoint(inSta.getStaNo() + ""); if (pakin == null && !devpThread.getStation().get(inSta.getStaNo()).isLoading() && !devpThread.getStation().get(inSta.getBackSta()).isLoading() && devpThread.getStation().get(inSta.getBackSta()).getWorkNo() == 0) { @@ -905,12 +917,12 @@ devpThread.ioModeOf1F2 = IoModeType.PAKIN_MODE; } break; - case 118: - if (pakout != null) { + case 107: + if (taskWrk != null) { if (devpThread.ioModeOf1F3 != IoModeType.PAKOUT_MODE) { // 鍑哄簱鍒囨崲涓� devpThread.ioModeOf1F3 = IoModeType.PAKOUT_BOOTING; - WrkMast pakin = wrkMastMapper.selectWorkingPakin(inSta.getStaNo()); + TaskWrk pakin = taskWrkService.selectByStartPoint(inSta.getStaNo() + ""); if (pakin == null && !devpThread.getStation().get(inSta.getStaNo()).isLoading() && !devpThread.getStation().get(inSta.getBackSta()).isLoading() && devpThread.getStation().get(inSta.getBackSta()).getWorkNo() == 0) { @@ -923,12 +935,12 @@ devpThread.ioModeOf1F3 = IoModeType.PAKIN_MODE; } break; - case 119: - if (pakout != null) { + case 110: + if (taskWrk != null) { if (devpThread.ioModeOf1F4 != IoModeType.PAKOUT_MODE) { // 鍑哄簱鍒囨崲涓� devpThread.ioModeOf1F4 = IoModeType.PAKOUT_BOOTING; - WrkMast pakin = wrkMastMapper.selectWorkingPakin(inSta.getStaNo()); + TaskWrk pakin = taskWrkService.selectByStartPoint(inSta.getStaNo() + ""); if (pakin == null && !devpThread.getStation().get(inSta.getStaNo()).isLoading() && !devpThread.getStation().get(inSta.getBackSta()).isLoading() && devpThread.getStation().get(inSta.getBackSta()).getWorkNo() == 0) { @@ -941,12 +953,12 @@ devpThread.ioModeOf1F4 = IoModeType.PAKIN_MODE; } break; - case 120: - if (pakout != null) { + case 113: + if (taskWrk != null) { if (devpThread.ioModeOf1F5 != IoModeType.PAKOUT_MODE) { // 鍑哄簱鍒囨崲涓� devpThread.ioModeOf1F5 = IoModeType.PAKOUT_BOOTING; - WrkMast pakin = wrkMastMapper.selectWorkingPakin(inSta.getStaNo()); + TaskWrk pakin = taskWrkService.selectByStartPoint(inSta.getStaNo() + ""); if (pakin == null && !devpThread.getStation().get(inSta.getStaNo()).isLoading() && !devpThread.getStation().get(inSta.getBackSta()).isLoading() && devpThread.getStation().get(inSta.getBackSta()).getWorkNo() == 0) { @@ -960,11 +972,11 @@ } break; case 203: - if (pakout != null) { + if (taskWrk != null) { if (devpThread.ioModeOf2F1 != IoModeType.PAKOUT_MODE) { // 鍑哄簱鍒囨崲涓� devpThread.ioModeOf2F1 = IoModeType.PAKOUT_BOOTING; - WrkMast pakin = wrkMastMapper.selectWorkingPakin(inSta.getStaNo()); + TaskWrk pakin = taskWrkService.selectByStartPoint(inSta.getStaNo() + ""); if (pakin == null && !devpThread.getStation().get(inSta.getStaNo()).isLoading() && !devpThread.getStation().get(inSta.getBackSta()).isLoading() && devpThread.getStation().get(inSta.getBackSta()).getWorkNo() == 0) { @@ -979,11 +991,11 @@ break; case 207: - if (pakout != null) { + if (taskWrk != null) { if (devpThread.ioModeOf2F2 != IoModeType.PAKOUT_MODE) { // 鍑哄簱鍒囨崲涓� devpThread.ioModeOf2F2 = IoModeType.PAKOUT_BOOTING; - WrkMast pakin = wrkMastMapper.selectWorkingPakin(inSta.getStaNo()); + TaskWrk pakin = taskWrkService.selectByStartPoint(inSta.getStaNo() + ""); if (pakin == null && !devpThread.getStation().get(inSta.getStaNo()).isLoading() && !devpThread.getStation().get(inSta.getBackSta()).isLoading() && devpThread.getStation().get(inSta.getBackSta()).getWorkNo() == 0) { @@ -998,11 +1010,11 @@ break; case 212: - if (pakout != null) { + if (taskWrk != null) { if (devpThread.ioModeOf2F3 != IoModeType.PAKOUT_MODE) { // 鍑哄簱鍒囨崲涓� devpThread.ioModeOf2F3 = IoModeType.PAKOUT_BOOTING; - WrkMast pakin = wrkMastMapper.selectWorkingPakin(inSta.getStaNo()); + TaskWrk pakin = taskWrkService.selectByStartPoint(inSta.getStaNo() + ""); if (pakin == null && !devpThread.getStation().get(inSta.getStaNo()).isLoading() && !devpThread.getStation().get(inSta.getBackSta()).isLoading() && devpThread.getStation().get(inSta.getBackSta()).getWorkNo() == 0) { -- Gitblit v1.9.1