From 83f222c9eebcee8db94d41a081596506f60f9775 Mon Sep 17 00:00:00 2001 From: lty <876263681@qq.com> Date: 星期二, 05 八月 2025 16:59:45 +0800 Subject: [PATCH] # --- src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 193 +++++++++++++++++++++++++++-------------------- 1 files changed, 111 insertions(+), 82 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 0298d74..a93a7c6 100644 --- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java @@ -213,20 +213,20 @@ log.error("杈撻�佺嚎涓嬪彂1锛�"+wrkNo+","+inSta.getBackSta()); continue; } - if (staProtocol.getSiteId()!= 159){ - if( Cools.isEmpty(barcodeMat) || "NG".endsWith(barcodeMat) || "NoRead".equals(barcodeMat) || "00000000".equals(barcodeMat)) { - News.info("{}鍙锋潯鐮佹壂鎻忓櫒妫�娴嬫潯鐮佷俊鎭細{}", inSta.getBarcodeMat(), barcodeMat); - - staProtocol.setWorkNo(wrkNo); - News.info("{}鍏ュ簱鍥為��锛歿}锛屼换鍔″彿锛歿}", inSta.getStaNo(), errMsg,wrkNo); - wrkNo++; - staProtocol.setStaNo(inSta.getBackSta().shortValue()); - devpThread.setPakMk(staProtocol.getSiteId(), false); - MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol)); - log.error("杈撻�佺嚎涓嬪彂1锛�"+wrkNo+","+inSta.getBackSta()); - continue; - } - } +// if (staProtocol.getSiteId()!= 159){ +// if( Cools.isEmpty(barcodeMat) || "NG".endsWith(barcodeMat) || "NoRead".equals(barcodeMat) || "00000000".equals(barcodeMat)) { +// News.info("{}鍙锋潯鐮佹壂鎻忓櫒妫�娴嬫潯鐮佷俊鎭細{}", inSta.getBarcodeMat(), barcodeMat); +// +// staProtocol.setWorkNo(wrkNo); +// News.info("{}鍏ュ簱鍥為��锛歿}锛屼换鍔″彿锛歿}", inSta.getStaNo(), errMsg,wrkNo); +// wrkNo++; +// staProtocol.setStaNo(inSta.getBackSta().shortValue()); +// devpThread.setPakMk(staProtocol.getSiteId(), false); +// MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol)); +// log.error("杈撻�佺嚎涓嬪彂1锛�"+wrkNo+","+inSta.getBackSta()); +// continue; +// } +// } // 鍒ゆ柇閲嶅宸ヤ綔妗� WrkMast wrkMast = wrkMastMapper.selectPakInStep1(inSta.getStaNo(), barcode); if (wrkMast != null) { @@ -2505,9 +2505,9 @@ } } -// /** -// * 鑷姩鐢熸垚RGV鎺ラ┏浠诲姟 -// */ + /** + * 鑷姩鐢熸垚RGV鎺ラ┏浠诲姟锛堟绱�4妤间换鍔★紝闈�3鍙峰爢鍨涙満锛屽垯鐢熸垚瀵瑰簲鎺ラ┏浠诲姟锛� + */ // public synchronized void rgvCreateWrkMastSta(){ // try{ // @@ -2543,17 +2543,17 @@ ){ log.info("{}鍙峰皬杞︾瓑寰厀cs纭锛岀姸鎬亄}锛屽弬鏁皗}",rgvProtocol.getRgvNo(),rgvProtocol.getStatusType(),rgvProtocol); if (rgvProtocol.getTaskNo1()!=0){ - if (rgvProtocol.getTaskNo1()==32222){ - boolean rgvComplete = rgvComplete(rgvProtocol.getRgvNo()); - if (!rgvComplete){ - log.error("灏忚溅澶嶄綅澶辫触锛屽皬杞﹀彿{}锛�",rgvProtocol.getRgvNo()); - } - BasRgvMap basRgvMap = basRgvMapMapper.selectById(rgvProtocol.getRgvNo()); - basRgvMap.setNowRoute(rgvProtocol.getRgvPosI()); - rgvMapUpdate(basRgvMap,basRgvMap.getStartRoute(),basRgvMap.getStartRoute(),"2415"); - rgvThread.setPakMk(true); - break; - } +// if (rgvProtocol.getTaskNo1()==32222){ +// boolean rgvComplete = rgvComplete(rgvProtocol.getRgvNo()); +// if (!rgvComplete){ +// log.error("灏忚溅澶嶄綅澶辫触锛屽皬杞﹀彿{}锛�",rgvProtocol.getRgvNo()); +// } +// BasRgvMap basRgvMap = basRgvMapMapper.selectById(rgvProtocol.getRgvNo()); +// basRgvMap.setNowRoute(rgvProtocol.getRgvPosI()); +// rgvMapUpdate(basRgvMap,basRgvMap.getStartRoute(),basRgvMap.getStartRoute(),"2415"); +// rgvThread.setPakMk(true); +// break; +// } WrkMastSta wrkMastSta = wrkMastStaMapper.selectByWrkNo(rgvProtocol.getTaskNo1().intValue()); if (Cools.isEmpty(wrkMastSta) || wrkMastSta.getWrkSts()!=1){ log.error("鏈煡鍒板皬杞︽墽琛屼换鍔℃垨鑰呮墽琛屼换鍔$姸鎬佷笉绗﹀悎锛�"+wrkMastSta); @@ -2583,22 +2583,31 @@ if (!MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol))) { continue; } - }else { - log.error("rgv浠诲姟瀹屾垚缁欒緭閫佺嚎涓嬪彂鍛戒护,浣嗘湭鏌ヨ鍒板伐浣滄。"); - // 涓嬪彂绔欑偣淇℃伅 - Map<Integer,Integer> map = new HashMap<>(); - map.put(101,102);map.put(112,111); - map.put(100,100); - staProtocol.setWorkNo(rgvProtocol.getTaskNo1().intValue()); - staProtocol.setStaNo(map.get(rgvProtocol.getRgvPosI()).shortValue()); - devpThread.setPakMk(staProtocol.getSiteId(), false); -// log.error("rgv浠诲姟瀹屾垚缁欒緭閫佺嚎涓嬪彂鍛戒护锛�"+wrkMast.getWrkNo()+","+wrkMast.getStaNo()); - if (!MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol))) { - continue; - } } - boolean rgvComplete = rgvComplete(rgvProtocol.getRgvNo()); -// boolean rgvComplete = true; +// else { +// log.error("rgv浠诲姟瀹屾垚缁欒緭閫佺嚎涓嬪彂鍛戒护,浣嗘湭鏌ヨ鍒板伐浣滄。"); +// // 涓嬪彂绔欑偣淇℃伅 +// Map<Integer,Integer> map = new HashMap<>(); +// map.put(101,102);map.put(112,111); +// map.put(100,100); +// staProtocol.setWorkNo(rgvProtocol.getTaskNo1().intValue()); +// staProtocol.setStaNo(map.get(rgvProtocol.getRgvPosI()).shortValue()); +// devpThread.setPakMk(staProtocol.getSiteId(), false); +//// log.error("rgv浠诲姟瀹屾垚缁欒緭閫佺嚎涓嬪彂鍛戒护锛�"+wrkMast.getWrkNo()+","+wrkMast.getStaNo()); +// if (!MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol))) { +// continue; +// } +// } + int sourceSta = wrkMast.getSourceStaNo(); + boolean rgvComplete = false; + + //鍙屽伐浣嶅嚭鍏ュ簱涓嶅悓宸ヤ綅澶嶄綅 + if((sourceSta >= 1001 && sourceSta <= 1035) || (sourceSta >= 2001 && sourceSta <= 2030)){ + rgvComplete = rgvComplete(rgvProtocol.getRgvNo(),6); + }else{ + rgvComplete = rgvComplete(rgvProtocol.getRgvNo(),3); + + } if (!rgvComplete){ log.error("灏忚溅澶嶄綅澶辫触锛屽皬杞﹀彿{}锛�",rgvProtocol.getRgvNo()); break; @@ -2667,31 +2676,31 @@ continue; } //鍒ゆ柇宸ヤ綔缁撴潫浣嶇疆鐘舵�� - boolean signDev = false; - BasDevp devNo = basDevpService.selectOne(new EntityWrapper<BasDevp>().eq("dev_no", wrkMastSta.getStaEnd())); - if (devNo.getDevNo()==113){ - BasDevp devNo114 = basDevpService.selectOne(new EntityWrapper<BasDevp>().eq("dev_no", 114)); - if (!Cools.isEmpty(devNo114)){ - if (devNo114.getOutEnable().equals("Y")){ - signDev = true; - } - } - } - if (!Cools.isEmpty(devNo)){ - if (devNo.getAutoing().equals("Y") && !devNo.getWrkNo().equals(0) && !devNo.getLoading().equals("N")){ - continue; - } - if (!signDev && devNo.getDevNo()==113){ - if (!devNo.getAutoing().equals("Y") || !devNo.getWrkNo().equals(0) || !devNo.getLoading().equals("N")){ - wrkEnable = true; - continue; - } - if (!devNo.getOutEnable().equals("Y")){ - wrkEnable = true; - continue; - } - } - } +// boolean signDev = false; +// BasDevp devNo = basDevpService.selectOne(new EntityWrapper<BasDevp>().eq("dev_no", wrkMastSta.getStaEnd())); +// if (devNo.getDevNo()==113){ +// BasDevp devNo114 = basDevpService.selectOne(new EntityWrapper<BasDevp>().eq("dev_no", 114)); +// if (!Cools.isEmpty(devNo114)){ +// if (devNo114.getOutEnable().equals("Y")){ +// signDev = true; +// } +// } +// } +// if (!Cools.isEmpty(devNo)){ +// if (devNo.getAutoing().equals("Y") && !devNo.getWrkNo().equals(0) && !devNo.getLoading().equals("N")){ +// continue; +// } +// if (!signDev && devNo.getDevNo()==113){ +// if (!devNo.getAutoing().equals("Y") || !devNo.getWrkNo().equals(0) || !devNo.getLoading().equals("N")){ +// wrkEnable = true; +// continue; +// } +// if (!devNo.getOutEnable().equals("Y")){ +// wrkEnable = true; +// continue; +// } +// } +// } boolean sign = rgvTakeFullAll(basRgvMap.getRgvNo(), wrkMastSta); //鍛戒护涓嬪彂 wrkEnable = true; if (sign){ @@ -2969,21 +2978,41 @@ * */ public synchronized boolean rgvTakeFullAll(Integer rgvId,WrkMastSta wrkMastSta){ try{ + int startSta = wrkMastSta.getStaStart(); // 鍛戒护涓嬪彂鍖� -------------------------------------------------------------------------- RgvCommand rgvCommand = new RgvCommand(); rgvCommand.setRgvNo(rgvId); // RGV缂栧彿 - rgvCommand.setAckFinish1((short) 0); // 宸ヤ綅1浠诲姟瀹屾垚纭浣� - rgvCommand.setTaskNo1(wrkMastSta.getWrkNo().shortValue()); // 宸ヤ綅1宸ヤ綔鍙� - rgvCommand.setTaskMode1(RgvTaskModeType.FETCH_PUT); // 宸ヤ綅1浠诲姟妯″紡: 鍙栨斁璐� - rgvCommand.setSourceStaNo1(wrkMastSta.getStaStart().shortValue()); //宸ヤ綅1璧风偣 - rgvCommand.setDestinationStaNo1(wrkMastSta.getStaEnd().shortValue()); //宸ヤ綅1鐩爣绔欑偣 - rgvCommand.setCommand((short) 1); //宸ヤ綅1浠诲姟纭 - if (!MessageQueue.offer(SlaveType.Rgv, rgvId, new Task(4, rgvCommand))) { - //step=2,宸ヤ綅1銆�2鍐欎换鍔★紱 step=4锛屽伐浣�1鍐欎换鍔★紱 step=5锛屽伐浣�2鍐欎换鍔� - log.error("RGV鍛戒护涓嬪彂澶辫触锛孯GV鍙�={}锛屼换鍔℃暟鎹�={}", rgvId, JSON.toJSON(rgvCommand)); - return false; - } else { - return true; + if((startSta >= 1001 && startSta <= 1035) || (startSta >= 2001 && startSta <= 2030)){//鍑哄簱RGV鍙栬揣 + rgvCommand.setAckFinish2((short) 0); // 宸ヤ綅1浠诲姟瀹屾垚纭浣� + rgvCommand.setTaskNo2(wrkMastSta.getWrkNo().shortValue()); // 宸ヤ綅2宸ヤ綔鍙� + rgvCommand.setTaskMode2(RgvTaskModeType.FETCH_PUT); // 宸ヤ綅2浠诲姟妯″紡: 鍙栨斁璐� + rgvCommand.setSourceStaNo2(wrkMastSta.getStaStart().shortValue()); //宸ヤ綅2璧风偣 + rgvCommand.setDestinationStaNo2(wrkMastSta.getStaEnd().shortValue()); //宸ヤ綅2鐩爣绔欑偣 + rgvCommand.setCommand((short) 2); //宸ヤ綅1浠诲姟纭 + }else{ //鍏ュ簱RGV鍙栬揣 + rgvCommand.setAckFinish1((short) 0); // 宸ヤ綅1浠诲姟瀹屾垚纭浣� + rgvCommand.setTaskNo1(wrkMastSta.getWrkNo().shortValue()); // 宸ヤ綅1宸ヤ綔鍙� + rgvCommand.setTaskMode1(RgvTaskModeType.FETCH_PUT); // 宸ヤ綅1浠诲姟妯″紡: 鍙栨斁璐� + rgvCommand.setSourceStaNo1(wrkMastSta.getStaStart().shortValue()); //宸ヤ綅1璧风偣 + rgvCommand.setDestinationStaNo1(wrkMastSta.getStaEnd().shortValue()); //宸ヤ綅1鐩爣绔欑偣 + rgvCommand.setCommand((short) 1); //宸ヤ綅1浠诲姟纭 + } + if(rgvCommand.getCommand() == 1){ + if (!MessageQueue.offer(SlaveType.Rgv, rgvId, new Task(4, rgvCommand))) { + //step=2,宸ヤ綅1銆�2鍐欎换鍔★紱 step=4锛屽伐浣�1鍐欎换鍔★紱 step=5锛屽伐浣�2鍐欎换鍔� + log.error("RGV鍛戒护涓嬪彂澶辫触锛孯GV鍙�={}锛屼换鍔℃暟鎹�={}", rgvId, JSON.toJSON(rgvCommand)); + return false; + } else { + return true; + } + }else{ + if (!MessageQueue.offer(SlaveType.Rgv, rgvId, new Task(5, rgvCommand))) { + //step=2,宸ヤ綅1銆�2鍐欎换鍔★紱 step=4锛屽伐浣�1鍐欎换鍔★紱 step=5锛屽伐浣�2鍐欎换鍔� + log.error("RGV鍛戒护涓嬪彂澶辫触锛孯GV鍙�={}锛屼换鍔℃暟鎹�={}", rgvId, JSON.toJSON(rgvCommand)); + return false; + } else { + return true; + } } }catch (Exception e){ return false; @@ -3093,10 +3122,10 @@ /* * 灏忚溅澶嶄綅 * */ - public synchronized boolean rgvComplete(Integer rgvId){ + public synchronized boolean rgvComplete(Integer rgvId,Integer step){ try{ // 鍛戒护涓嬪彂鍖� -------------------------------------------------------------------------- - if (!MessageQueue.offer(SlaveType.Rgv, rgvId, new Task(3, new RgvCommand()))) { + if (!MessageQueue.offer(SlaveType.Rgv, rgvId, new Task(step, new RgvCommand()))) { //step=2,宸ヤ綅1銆�2鍐欎换鍔★紱 step=4锛屽伐浣�1鍐欎换鍔★紱 step=5锛屽伐浣�2鍐欎换鍔� log.error("RGV鍛戒护涓嬪彂澶辫触锛孯GV鍙�={}",rgvId); return false; -- Gitblit v1.9.1