From 1b9e9f54bf084aaa6befe16cacac4092d71442fa Mon Sep 17 00:00:00 2001 From: LSH Date: 星期五, 05 一月 2024 12:35:33 +0800 Subject: [PATCH] # --- src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 116 +++++++++++++++++++++++++++++++++++++++++++++++++++++++--- 1 files changed, 110 insertions(+), 6 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 27a1be0..f5a33ad 100644 --- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java @@ -129,8 +129,8 @@ } String barcode11 = barcodeThread.getBarcode(); if (Cools.isEmpty(barcode11)){ - if (staProtocol.isAutoing() && staProtocol.getWorkNo() == 9999 && staProtocol.isPakMk() && staProtocol.getStamp()>=2){ - staProtocol.setStamp(0); + if (staProtocol.isAutoing()&& !staProtocol.isEmptyMk() && staProtocol.getWorkNo() == 9999 && staProtocol.isPakMk() && staProtocol.getStamp()==2){ + staProtocol.setStamp(3); News.info(""+mark+" - 7"+" - 鎵爜澶辫触2 ===>> {}鍙锋潯鐮佹壂鎻忓櫒妫�娴嬫潯鐮佷俊鎭細{},绔欑偣:{}", inSta.getBarcode(), barcode11, inSta.getStaNo()); staProtocol.setWorkNo((short) 9989); staProtocol.setStaNo(inSta.getBackSta().shortValue()); @@ -141,12 +141,12 @@ String errorMsg = "鎵爜澶辫触锛岃閲嶈瘯"; MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(5, errorMsg)); } - + continue; } } if (staProtocol.isAutoing() && staProtocol.isInEnable() && !staProtocol.isEmptyMk() && (staProtocol.getWorkNo() == 0 || staProtocol.getWorkNo() > 9990) - && staProtocol.isPakMk() && staProtocol.getStamp()>=2) {// && !Cools.isEmpty(barcode)) { + && staProtocol.isPakMk() && staProtocol.getStamp()>=2 && staProtocol.getStamp()!=3) {// && !Cools.isEmpty(barcode)) { News.warnNoLog(""+mark+" - 0"+" - 寮�濮嬫墽琛�"); // try { // Thread.sleep(300); @@ -417,6 +417,17 @@ StaDesc staDesc = staDescService.selectOne(wrapper); if (Cools.isEmpty(staDesc)) { News.error(""+mark+" - 2"+" - 鍏ュ簱璺緞涓嶅瓨鍦紒type_no={},stn_no={},crn_no={}", wrkMast.getIoType(), pickSta.getStaNo(), wrkMast.getCrnNo()); + staProtocol.setWorkNo((short) 9989); + staProtocol.setStaNo((short) (pickSta.getStaNo().shortValue()-(short)1)); + devpThread.setPakMk(staProtocol.getSiteId(), false); + MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol)); + //LED + LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, pickSta.getLed()); + // led 寮傚父鏄剧ず + if (ledThread != null) { + String errorMsg = "姝や负鎷f枡銆佸苟鏉裤�佺洏鐐瑰啀鍏ュ簱.璇锋斁鍦�"+pickSta.getBackSta().shortValue()+"绔欑偣"; + MessageQueue.offer(SlaveType.Led, pickSta.getLed(), new Task(5, errorMsg)); + } continue; } @@ -605,6 +616,7 @@ // 搴撲綅绉昏浆 //mark - 3 - .... this.locToLoc(crn, crnProtocol,mark); + this.locToLoc111(crn, crnProtocol,mark); // this.crnRebackHp(crnProtocol, crnThread); } @@ -1159,6 +1171,89 @@ } /** + * 搴撲綅绉昏浆 + */ + public synchronized void locToLoc111(CrnSlave slave, CrnProtocol crnProtocol,Integer mark) { + // 鑾峰彇宸ヤ綔妗d俊鎭� + WrkMast wrkMast = wrkMastMapper.selectLocMove111(slave.getId()); + if (null == wrkMast) { + return; + } + News.warnNoLog(""+mark+" - 3"+" - 0"+" - 鍫嗗灈鏈哄叆鍑哄簱浣滀笟涓嬪彂锛氭墽琛屽簱浣嶇Щ杞�"); + // 鑾峰彇婧愬簱浣嶄俊鎭� + LocMast sourceLoc = locMastService.selectById(wrkMast.getSourceLocNo()); + if (null == sourceLoc) { + News.error(""+mark+" - 3"+" - 1"+" - 宸ヤ綔妗e簱浣嶇Щ杞け璐ワ紝鍘熷洜锛氭绱㈡簮搴撲綅澶辫触锛佸伐浣滃彿={}锛屾簮搴撲綅={}", wrkMast.getWrkNo(), wrkMast.getSourceLocNo()); + return; + } + // 婧愬簱浣� 搴撲綅鐘舵�佸垽鏂� + if (!sourceLoc.getLocSts().equals("R")) { + News.error(""+mark+" - 3"+" - 11"+" - 宸ヤ綔妗e簱浣嶇Щ杞け璐ワ紝鍘熷洜锛氭簮搴撲綅鐘舵�佷笉涓篟锛佸伐浣滃彿={}锛屾簮搴撲綅={}", wrkMast.getWrkNo(), wrkMast.getSourceLocNo()); + return; + } + + if(wrkMast.getIoType() != 111) { + // 鑾峰彇鐩爣搴撲綅淇℃伅 + LocMast loc = locMastService.selectById(wrkMast.getLocNo()); + if (null == loc) { + News.error("" + mark + " - 3" + " - 2" + " - 宸ヤ綔妗e簱浣嶇Щ杞け璐ワ紝鍘熷洜锛氭绱㈢洰鏍囧簱浣嶅け璐ワ紒宸ヤ綔鍙�={}锛屾簮搴撲綅={}", wrkMast.getWrkNo(), wrkMast.getLocNo()); + return; + } + // 婧愬簱浣� 搴撲綅鐘舵�佸垽鏂� + if (!loc.getLocSts().equals("S")) { + News.error(""+mark+" - 3"+" - 21"+" - 宸ヤ綔妗e簱浣嶇Щ杞け璐ワ紝鍘熷洜锛氱洰鏍囧簱浣嶇姸鎬佷笉涓篟锛佸伐浣滃彿={}锛屾簮搴撲綅={}", wrkMast.getWrkNo(), wrkMast.getLocNo()); + return; + } + } + // 鑾峰彇鍫嗗灈鏈轰俊鎭� 骞� 鍒ゆ柇鏄惁鍙叆鍑� + BasCrnp basCrnp = basCrnpService.selectById(slave.getId()); + if (!basCrnp.getInEnable().equals("Y") && !basCrnp.getOutEnable().equals("Y")) { + return; + } + + // 鍫嗗灈鏈烘帶鍒惰繃婊� + if (!crnProtocol.getStatusType().equals(CrnStatusType.IDLE) || crnProtocol.getTaskNo() != 0) { + return; + } + + // 宸茬粡瀛樺湪鍚婅溅鎵ц浠诲姟鏃讹紝鍒欒繃婊� + if (wrkMastMapper.selectWorking(slave.getId()) != null) { + return; + } + + News.warnNoLog(""+mark+" - 3"+" - 3"+" - 鍛戒护涓嬪彂 : 宸ヤ綔鍙�={},婧愭帓={},婧愬垪={},婧愬眰={},鐩爣鎺�={},鐩爣鍒�={},鐩爣灞�={}",wrkMast.getWrkNo().shortValue() + ,sourceLoc.getRow1().shortValue(),sourceLoc.getBay1().shortValue(),sourceLoc.getLev1().shortValue() + ,sourceLoc.getRow1().shortValue(),sourceLoc.getBay1().shortValue(),sourceLoc.getLev1().shortValue()); + + // 鍛戒护涓嬪彂鍖� -------------------------------------------------------------------------- + CrnCommand crnCommand = new CrnCommand(); + crnCommand.setCrnNo(slave.getId()); // 鍫嗗灈鏈虹紪鍙� + crnCommand.setTaskNo(wrkMast.getWrkNo().shortValue()); // 宸ヤ綔鍙� + crnCommand.setAckFinish((short) 0); // 浠诲姟瀹屾垚纭浣� + crnCommand.setTaskMode(CrnTaskModeType.LOC_MOVE); // 浠诲姟妯″紡: 搴撲綅绉昏浆 + crnCommand.setSourcePosX(sourceLoc.getRow1().shortValue()); // 婧愬簱浣嶆帓 + crnCommand.setSourcePosY(sourceLoc.getBay1().shortValue()); // 婧愬簱浣嶅垪 + crnCommand.setSourcePosZ(sourceLoc.getLev1().shortValue()); // 婧愬簱浣嶅眰 + crnCommand.setDestinationPosX(sourceLoc.getRow1().shortValue()); // 鐩爣搴撲綅鎺� + crnCommand.setDestinationPosY(sourceLoc.getBay1().shortValue()); // 鐩爣搴撲綅鍒� + crnCommand.setDestinationPosZ(sourceLoc.getLev1().shortValue()); // 鐩爣搴撲綅灞� + if (!MessageQueue.offer(SlaveType.Crn, wrkMast.getCrnNo(), new Task(2, crnCommand))) { + News.error(""+mark+" - 3"+" - 4"+" - 鍫嗗灈鏈哄懡浠や笅鍙戝け璐ワ紝鍫嗗灈鏈哄彿={}锛屼换鍔℃暟鎹�={}", wrkMast.getCrnNo(), JSON.toJSON(crnCommand)); + } else { + // 淇敼宸ヤ綔妗g姸鎬� 11.鐢熸垚鍑哄簱ID => 12.鍚婅溅鍑哄簱涓� + Date now = new Date(); + wrkMast.setWrkSts(12L); + wrkMast.setCrnStrTime(now); + wrkMast.setModiTime(now); + if (wrkMastMapper.updateById(wrkMast) == 0) { + News.error(""+mark+" - 3"+" - 5"+" - 銆愬簱浣嶇Щ杞�� 淇敼宸ヤ綔妗g姸鎬� 11.鐢熸垚鍑哄簱ID => 12.鍚婅溅鍑哄簱涓� 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkMast.getWrkNo()); + } + } + News.infoNoLog(""+mark+" - 3"+" - 0"+" - 鍫嗗灈鏈哄叆鍑哄簱浣滀笟涓嬪彂锛氬簱浣嶇Щ杞畬鎴�"); + + } + + /** * 鎵ц瀵瑰伐浣滄。鐨勫畬鎴愭搷浣� */ public synchronized void storeFinished(Integer mark) { @@ -1184,7 +1279,7 @@ continue; } // 鍏ュ簱 + 搴撲綅杞Щ ==> 4.鍏ュ簱瀹屾垚 - if (wrkMast.getWrkSts() == 3 || (wrkMast.getWrkSts() == 12 && wrkMast.getIoType() == 11)) { + if (wrkMast.getWrkSts() == 3 || (wrkMast.getWrkSts() == 12 && (wrkMast.getIoType() == 11 || wrkMast.getIoType()==111))) { wrkMast.setWrkSts(4L); } else { continue; @@ -1361,7 +1456,7 @@ && staProtocol.isInEnable() && staProtocol.isEmptyMk() && (staProtocol.getWorkNo() > 9990 && staProtocol.getWorkNo() <= 9999) - && staProtocol.isPakMk()) { + && staProtocol.isPakMk()&& staProtocol.getStamp()>=2) { News.warnNoLog(""+mark+" - 0"+" - 寮�濮嬫墽琛岋細绌烘爤鏉垮垵濮嬪寲鍏ュ簱,鍙夎溅鍏ュ簱绔欐斁璐�"); try { @@ -1494,6 +1589,15 @@ ledCommand.setTitle("绌烘澘鍑哄簱"); ledCommand.setEmptyMk(true); break; + case 53: + ledCommand.setTitle("鎷f枡鍏ュ簱"); + break; + case 57: + ledCommand.setTitle("鐩樼偣鍏ュ簱"); + break; + case 54: + ledCommand.setTitle("骞舵澘鍏ュ簱"); + break; default: News.error(""+mark+" - 1"+" - 浠诲姟鍏ュ嚭搴撶被鍨嬮敊璇紒锛侊紒[宸ヤ綔鍙凤細{}] [鍏ュ嚭搴撶被鍨嬶細{}]", wrkMast.getWrkNo(), wrkMast.getIoType()); break; -- Gitblit v1.9.1