From 3d9d870ef185961c598943ea45ea71b66f299511 Mon Sep 17 00:00:00 2001 From: lsh <1> Date: 星期五, 12 一月 2024 21:11:02 +0800 Subject: [PATCH] # --- src/main/java/com/zy/core/model/protocol/StaProtocol.java | 3 + src/main/java/com/zy/core/thread/RgvThread.java | 2 src/main/java/com/zy/asrs/entity/BasDevp.java | 4 + src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 125 ++++++++++++++++++++++++++++++++++++++--- src/main/java/com/zy/core/MainProcess.java | 14 +++- src/main/resources/mapper/BasDevpMapper.xml | 1 src/main/java/com/zy/core/thread/SiemensDevpThread.java | 11 +-- src/main/resources/application.yml | 2 8 files changed, 141 insertions(+), 21 deletions(-) diff --git a/src/main/java/com/zy/asrs/entity/BasDevp.java b/src/main/java/com/zy/asrs/entity/BasDevp.java index 1e3d022..0f5c1c3 100644 --- a/src/main/java/com/zy/asrs/entity/BasDevp.java +++ b/src/main/java/com/zy/asrs/entity/BasDevp.java @@ -214,6 +214,10 @@ @TableField("cart_pos") private Integer cartPos; + @ApiModelProperty(value = "鎷嗗灈涓婁紶鍙犵洏鍥炲簱鏍囪") + @TableField("report_sign") + private Integer reportSign; + public String getIoTime$(){ if (Cools.isEmpty(this.ioTime)){ 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 93dec60..4ef4ce0 100644 --- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java @@ -148,13 +148,13 @@ && staProtocol.isLoading() && staProtocol.isInEnable() && !staProtocol.isEmptyMk() - && (staProtocol.getWorkNo() == 0 || staProtocol.getWorkNo() > 9990) + && (staProtocol.getWorkNo() == 0 || staProtocol.getWorkNo() > 9999) && staProtocol.isPakMk()) {// && !Cools.isEmpty(barcode)) { // if(Cools.isEmpty(barcode) || "NG".endsWith(barcode) || "NoRead".equals(barcode)) { // log.info("{}鍙锋潯鐮佹壂鎻忓櫒妫�娴嬫潯鐮佷俊鎭細{}", inSta.getBarcode(), barcode); // //鏉$爜涓虹┖鎴栬�呬笉绗﹀悎锛岄��搴撳埌172绔欑偣 -// staProtocol.setWorkNo((short)9999); +// staProtocol.setWorkNo((short)29999); // staProtocol.setStaNo((short)172); // devpThread.setPakMk(staProtocol.getSiteId(), false); // boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol)); @@ -252,7 +252,7 @@ // 鍒ゆ柇鏄惁婊¤冻鍏ュ簱鏉′欢 if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.isInEnable() - && !staProtocol.isEmptyMk() && (staProtocol.getWorkNo() == 0 || staProtocol.getWorkNo() == 9999) + && !staProtocol.isEmptyMk() && (staProtocol.getWorkNo() == 0 || staProtocol.getWorkNo() == 29999) && staProtocol.isPakMk()) { // 鍒ゆ柇閲嶅宸ヤ綔妗� WrkMast wrkMast = wrkMastMapper.selectPakInStep11(inSta.getStaNo()); @@ -423,6 +423,10 @@ continue; } else { staProtocol = staProtocol.clone(); + } + BasDevp basDevp = basDevpService.selectById(staProtocol.getSiteId()); + if (Cools.isEmpty(basDevp) || basDevp.getReportSign()!=1){ + continue; } if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.isPakMk() && staProtocol.getWorkNo()==0 && !staProtocol.isOutEnable() && staProtocol.isInEnable()) { @@ -1343,7 +1347,7 @@ // 鍛戒护涓嬪彂鍖� -------------------------------------------------------------------------- CrnCommand crnCommand = new CrnCommand(); crnCommand.setCrnNo(crnProtocol.getCrnNo()); // 鍫嗗灈鏈虹紪鍙� - crnCommand.setTaskNo((short) 9999); // 宸ヤ綔鍙� + crnCommand.setTaskNo((short) 29999); // 宸ヤ綔鍙� crnCommand.setAckFinish((short) 0); // 浠诲姟瀹屾垚纭浣� crnCommand.setTaskMode(CrnTaskModeType.GO_ORIGIN); // 浠诲姟妯″紡: 鍥炲師鐐� crnCommand.setSourcePosX((short) 0); // 婧愬簱浣嶆帓 @@ -2959,6 +2963,7 @@ */ public synchronized void storeEmptyPlt() { for (DevpSlave devp : slaveProperties.getDevp()) { + if (devp.getId()==1) continue; // 閬嶅巻绌烘澘鍏ュ簱鍙� for (DevpSlave.Sta emptyInSta : devp.getEmptyInSta()) { // 鑾峰彇绌烘澘鍏ュ簱绔欎俊鎭� @@ -2972,7 +2977,7 @@ // 绔欑偣鏉′欢鍒ゆ柇 if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.isInEnable() - && staProtocol.isEmptyMk() && (staProtocol.getWorkNo() > 9990 && staProtocol.getWorkNo() <= 9999) && staProtocol.isPakMk()) { + && staProtocol.isEmptyMk() && ((staProtocol.getWorkNo() > 29990 && staProtocol.getWorkNo() <= 29999) || staProtocol.getWorkNo()==0) && staProtocol.isPakMk()) { try { LocTypeDto locTypeDto = new LocTypeDto(staProtocol); @@ -3008,6 +3013,108 @@ } } } + } + } + + /** + * 鍏ュ簱 ===>> 绌烘爤鏉垮垵濮嬪寲鍏ュ簱,1妤煎彔鐩樻満鍙犵洏 + */ + public synchronized void storeEmptyPlt2() { + for (DevpSlave devp : slaveProperties.getDevp()) { + if (devp.getId()==2) continue; + // 閬嶅巻绌烘澘鍏ュ簱鍙� + for (DevpSlave.Sta emptyInSta : devp.getEmptyInSta()) { + // 鑾峰彇绌烘澘鍏ュ簱绔欎俊鎭� + SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId()); + StaProtocol staProtocol = devpThread.getStation().get(emptyInSta.getStaNo()); + if (staProtocol == null) { + continue; + } else { + staProtocol = staProtocol.clone(); + } + + // 绔欑偣鏉′欢鍒ゆ柇 + if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.isInEnable() + && staProtocol.isEmptyMk() && ((staProtocol.getWorkNo() > 29990 && staProtocol.getWorkNo() <= 29999) || staProtocol.getWorkNo()==0) && staProtocol.isPakMk()) { + try { + WrkMastSta wrkMastSta = wrkMastStaMapper.selectByWrkNo(staProtocol.getSiteId() + 9999L); + if (Cools.isEmpty(wrkMastSta)){ + WrkMastSta wrkMastSta1 = new WrkMastSta(new Date(),staProtocol.getSiteId()); + wrkMastSta1.setType(2); + wrkMastSta1.setWrkType(1);//宸ヤ綔绫诲瀷 1:鍙栵紙鍙犵洏锛� 2锛氭媶鐩� 3锛氬彇鏀� 5锛氭弧鍙� 6锛氭弧鏀� + wrkMastStaMapper.insert(wrkMastSta1); + } + } catch (Exception e) { + e.printStackTrace(); + TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); + } + } + } + } + } + + /** + * 绌烘爤鏉垮垵濮嬪寲鍏ュ簱,鍙夎溅鍏ュ簱绔欐斁璐� + */ + public synchronized void storeEmptyPlt3() { + try{ + for (RgvSlave rgvSlave:slaveProperties.getRgv()) { + RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgvSlave.getId()); + RgvProtocol rgvProtocol = rgvThread.getRgvProtocol(); + if (rgvProtocol == null) { + continue; + } + BasRgv basRgv = basRgvService.selectById(rgvSlave.getId()); + if (basRgv == null) { + log.error("{}鍙稲GV灏氭湭鍦ㄦ暟鎹簱杩涜缁存姢锛�", rgvSlave.getId()); + continue; + } + + // 鍙湁褰揜GV绌洪棽銆佽嚜鍔�,宸ヤ綅浜屾湁鐗�//rgv鍙敤 + if (rgvProtocol.getStatusType() == RgvStatusType.IDLE + && rgvProtocol.getModeType() == RgvModeType.AUTO + && (rgvProtocol.getLoaded2()==2 || rgvProtocol.getLoaded2()==3 ) ////0 鏃犵墿锛�1 涓�灞傛棤鐗╀簩灞傛湁鐗� 锛�2涓�灞傛湁鐗╀簩灞傛棤鐗� 锛堝彧鑳芥弧鏀撅級锛�3 1銆�2灞傞兘鏈夌墿 + ) { + try { + // 鑾峰彇绌烘澘鍏ュ簱绔欎俊鎭� + + SearchLocParam param = new SearchLocParam(); + param.setIoType(10); + param.setSourceStaNo(122); + param.setLocType1((short)1); + String response = new HttpHandler.Builder() + .setUri(wmsUrl) + .setPath("/rpc/pakin/empty/loc/v1") + .setJson(JSON.toJSONString(param)) + .build() + .doPost(); + JSONObject jsonObject = JSON.parseObject(response); + if (jsonObject.getInteger("code").equals(200)) { + StartupDto dto = jsonObject.getObject("data", StartupDto.class); + // 鏇存柊绔欑偣淇℃伅 涓� 涓嬪彂plc鍛戒护 + WrkMast wrkMast = wrkMastMapper.selectPakInStep3(dto.getWorkNo()); + if (!Cools.isEmpty(wrkMast) && wrkMast.getIoType()==10 && wrkMast.getWrkSts()==2){ + WrkMastSta wrkMastSta = wrkMastStaMapper.selectByWrkNo(wrkMast.getWrkNo().longValue()); + if (Cools.isEmpty(wrkMastSta)){ + WrkMastSta wrkMastSta1 = new WrkMastSta(new Date(),0); + wrkMastSta1.setWrkNo(wrkMast.getWrkNo().longValue()); + wrkMastSta1.setType(2); + wrkMastSta1.setWrkType(6);//宸ヤ綔绫诲瀷 1:鍙栵紙鍙犵洏锛� 2锛氭媶鐩� 3锛氬彇鏀� 5锛氭弧鍙� 6锛氭弧鏀� + wrkMastStaMapper.insert(wrkMastSta1); + } + } + } else { + log.error("璇锋眰鎺ュ彛澶辫触锛侊紒锛乽rl锛歿}锛況equest锛歿}锛況esponse锛歿}", wmsUrl + "/rpc/pakin/empty/loc/v1", JSON.toJSONString(param), response); + } + } catch (Exception e) { + e.printStackTrace(); + TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); + } + } + } + }catch (Exception e){ + log.error("3933琛屾墽琛屽皬杞︽斁绌烘澘浠诲姟涓嬪彂澶辫触"); + log.error("3933琛�"+e); } } @@ -4129,7 +4236,7 @@ && rgvProtocol.getLoaded1()==0 && rgvProtocol.getTaskNo1()==0 && rgvProtocol.getTaskNo2()==0 ) { - BasRgvMap basRgvMap = basRgvMapMapper.selectById(rgvProtocol.getRgvNo()); + BasRgvMap basRgvMap = basRgvMapMapper.selectById(basRgv.getRgvNo()); if (basRgvMap == null) { log.error("{}鍙稲GV灏氭湭鍦ㄦ暟鎹簱鍦板浘涓繘琛岀淮鎶わ紒", rgvProtocol.getRgvNo()); continue; @@ -4168,7 +4275,7 @@ } } /** - * 鎵ц灏忚溅鎼繍浠诲姟 + * 鎵ц灏忚溅鎼繍浠诲姟//鎷嗙洏 */ public synchronized void rgvRunWrkMastEmptyStaPut() {//鎷嗙洏 try{ @@ -4184,7 +4291,7 @@ continue; } - // 鍙湁褰揜GV绌洪棽銆佽嚜鍔�,宸ヤ綅浜屾湁鐗�//rgv鍙敤 + // 鍙湁褰揜GV绌洪棽銆佽嚜鍔�,宸ヤ綅浜屾湁鐗�//rgv鍙敤//鎷嗙洏 if (rgvProtocol.getStatusType() == RgvStatusType.IDLE && rgvProtocol.getModeType() == RgvModeType.AUTO && rgvProtocol.getTaskNo1()==0 && rgvProtocol.getTaskNo2()==0 @@ -4396,7 +4503,7 @@ continue; } boolean sign = false; - if (wrkMastSta.getStaEnd()==0 && wrkMastSta.getStaStart()!=0){//鍙� + if (wrkMastSta.getStaEnd()==0 && wrkMastSta.getStaStart()!=0){//婊″彇 sign = rgvTakeEmptyFull(rgvProtocol.getRgvNo(),wrkMastSta); }else { continue; diff --git a/src/main/java/com/zy/core/MainProcess.java b/src/main/java/com/zy/core/MainProcess.java index 4903b11..be9d963 100644 --- a/src/main/java/com/zy/core/MainProcess.java +++ b/src/main/java/com/zy/core/MainProcess.java @@ -56,7 +56,7 @@ // mainService.generateStoreWrkFile0(); // WMS鍏ュ簱 // 鎷f枡銆佸苟鏉裤�佺洏鐐瑰啀鍏ュ簱 mainService.stnToCrnStnPick(); - // 鎷f枡銆佸苟鏉裤�佺洏鐐瑰啀鍏ュ簱鎷嗙洏鍖� + // 鎷f枡銆佸苟鏉裤�佺洏鐐瑰啀鍏ュ簱鎷嗙洏鍖� 1妤兼媶鍨涗綅缃� mainService.stnToCrnStnPick2(); // 鍑哄簱 ===>> 鍫嗗灈鏈哄嚭搴撶珯鍒板嚭搴撶珯 mainService.crnStnToOutStn(); @@ -86,8 +86,10 @@ //鎵ц灏忚溅璐х墿鎼繍浠诲姟 mainService.rgvRunWrkMastFullSta(); //鎵ц灏忚溅绌烘澘鎼繍浠诲姟 - mainService.rgvRunWrkMastEmptyStaPut();//鏀� - mainService.rgvRunWrkMastEmptyStaTake();//鍙� + mainService.rgvRunWrkMastEmptyStaPut();//鏀�//鎷嗙洏 + mainService.rgvRunWrkMastEmptyStaPutFull();//婊℃斁 + mainService.rgvRunWrkMastEmptyStaTake();//鍙栧彔鐩� + mainService.rgvRunWrkMastEmptyStaTakeFull();////婊″彇 i++; if (i > 3) { mainService.rgvRunWrkMastEmptyStaAvoidance();//閬胯 @@ -97,8 +99,12 @@ // 寮傚父淇℃伅璁板綍 mainService.recErr(); - // 鍏ュ簱 ===>> 绌烘爤鏉垮垵濮嬪寲鍏ュ簱,鍙夎溅鍏ュ簱绔欐斁璐� + // 鍏ュ簱 ===>> 绌烘爤鏉垮垵濮嬪寲鍏ュ簱,鍙夎溅鍏ュ簱绔欐斁璐� 2妤� mainService.storeEmptyPlt(); + // 鍏ュ簱 ===>> 绌烘爤鏉垮垵濮嬪寲鍏ュ簱,1妤煎彔鐩樻満鍙犵洏 + mainService.storeEmptyPlt2(); + // 鍏ュ簱 ===>> 绌烘爤鏉垮垵濮嬪寲鍏ュ簱,1妤煎彔鐩樻満绌烘澘鍏ュ簱 + mainService.storeEmptyPlt3(); // 鍑哄簱 ===>> 宸ヤ綔妗d俊鎭啓鍏ed鏄剧ず鍣� mainService.ledExecute(); // 鍏朵粬 ===>> LED鏄剧ず鍣ㄥ浣嶏紝鏄剧ず榛樿淇℃伅 diff --git a/src/main/java/com/zy/core/model/protocol/StaProtocol.java b/src/main/java/com/zy/core/model/protocol/StaProtocol.java index 11c8f0a..1d0c7c9 100644 --- a/src/main/java/com/zy/core/model/protocol/StaProtocol.java +++ b/src/main/java/com/zy/core/model/protocol/StaProtocol.java @@ -61,6 +61,9 @@ basDevp.setWrkNo(workNo.intValue()); basDevp.setAutoing(autoing?"Y":"N"); basDevp.setLoading(loading?"Y":"N"); + if (basDevp.getLoading().equals("N")){ + basDevp.setReportSign(0); + } basDevp.setInEnable(inEnable?"Y":"N"); basDevp.setOutEnable(outEnable?"Y":"N"); basDevp.setLocType1((short) 0); // 楂樹綆绫诲瀷{0:鏈煡,1:浣庡簱浣�,2:楂樺簱浣峿 diff --git a/src/main/java/com/zy/core/thread/RgvThread.java b/src/main/java/com/zy/core/thread/RgvThread.java index ff27b04..d53239b 100644 --- a/src/main/java/com/zy/core/thread/RgvThread.java +++ b/src/main/java/com/zy/core/thread/RgvThread.java @@ -107,7 +107,7 @@ commandAvoidanceXY = new RgvCommand(); } commandAvoidanceXY.setRgvNo(slave.getId()); // RGV缂栧彿 - commandAvoidanceXY.setTaskNo1((short) 9999); // 宸ヤ綔鍙� + commandAvoidanceXY.setTaskNo1((short) 29999); // 宸ヤ綔鍙� commandAvoidanceXY.setAckFinish1((short) 1); // 浠诲姟瀹屾垚纭浣� commandAvoidanceXY.setTaskMode1(RgvTaskModeType.X_MOVE); // 浠诲姟妯″紡 commandAvoidanceXY.setSourceStaNo1((short)0); // 婧愮珯 diff --git a/src/main/java/com/zy/core/thread/SiemensDevpThread.java b/src/main/java/com/zy/core/thread/SiemensDevpThread.java index 92778f0..960da5e 100644 --- a/src/main/java/com/zy/core/thread/SiemensDevpThread.java +++ b/src/main/java/com/zy/core/thread/SiemensDevpThread.java @@ -63,16 +63,15 @@ add(200);add(201);add(202);add(203); add(204);add(205);add(206);add(207); add(208);add(209);add(210);add(211); - add(212); - add(213);add(214);add(215);add(216); - add(217);add(218);add(219);add(220); - add(221);add(222);add(2000); + add(212);add(213);add(214);add(215); + add(216);add(217);add(218);add(219); + add(220);add(221);add(222);add(2000); }}; /** * 鏉$爜鏁伴噺 */ - private int barcodeSize = 1; + private int barcodeSize = 3; /** * 鍏ュ嚭搴撴ā寮� @@ -237,7 +236,7 @@ //鏉$爜鎵弿鍣� Thread.sleep(200); - OperateResultExOne<byte[]> result2 = siemensS7Net.Read("DB101.102",(short)(barcodeSize*10)); + OperateResultExOne<byte[]> result2 = siemensS7Net.Read("DB101.288",(short)(barcodeSize*10)); if (result2.IsSuccess) { for (int i = 0; i < barcodeSize; i++) { String barcode = siemensS7Net.getByteTransform().TransString(result2.Content,i*10,6, "UTF-8"); diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index 0ba0842..0dafceb 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -345,7 +345,7 @@ barcode: ${wcs-slave.barcode[0].id} # 绌烘澘鍏ュ簱鍙�1 emptyInSta[0]: - staNo: 12 + staNo: 122 # 鍑哄簱鍙�1 outSta[0]: staNo: 11 diff --git a/src/main/resources/mapper/BasDevpMapper.xml b/src/main/resources/mapper/BasDevpMapper.xml index b00be22..1b38347 100644 --- a/src/main/resources/mapper/BasDevpMapper.xml +++ b/src/main/resources/mapper/BasDevpMapper.xml @@ -41,6 +41,7 @@ <result column="max_wt" property="maxWt" /> <result column="gross_wt" property="grossWt" /> <result column="cart_pos" property="cartPos" /> + <result column="report_sign" property="reportSign" /> </resultMap> -- Gitblit v1.9.1