From e8f60d7055699454dd135ec2293019a44dc9f5f7 Mon Sep 17 00:00:00 2001 From: Junjie <fallin.jie@qq.com> Date: 星期五, 13 十月 2023 08:12:46 +0800 Subject: [PATCH] # --- src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 124 +++++++++++++++++++++++++++++++++++++--- src/main/webapp/views/console.html | 14 +++- src/main/java/com/zy/core/MainProcess.java | 2 3 files changed, 125 insertions(+), 15 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 309f246..d516740 100644 --- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java @@ -1190,16 +1190,6 @@ return false; } - NyShuttleProtocol shuttleProtocol = shuttleThread.getShuttleProtocol(); - if (shuttleProtocol.getCurrentLocNo().equals(wrkMast.getSourceLocNo())) { - //灏忚溅杩樺湪杈撻�佺珯鐐� - //璋冨害灏忚溅閬胯 - boolean result = Utils.searchEmptyGroupToMoveShuttle(Utils.getLev(wrkMast.getSourceLocNo()), wrkMast.getShuttleNo(), shuttleThread); - if (!result) { - return false; - } - } - //鑾峰彇鍑哄簱绔欑偣(鐩爣绔�) BasDevp basDevp = basDevpService.selectById(wrkMast.getStaNo()); if (basDevp == null) { @@ -1218,6 +1208,7 @@ if (liftProtocol == null) { return false; } + if (!liftProtocol.isIdle()) { return false; } @@ -1237,6 +1228,16 @@ return false;//鎵句笉鍒扮珯鐐� } Integer startSta = liftStaProtocol.getStaNo(); + + NyShuttleProtocol shuttleProtocol = shuttleThread.getShuttleProtocol(); + if (shuttleProtocol.getCurrentLocNo().equals(liftStaProtocol.getLocNo())) { + //灏忚溅杩樺湪杈撻�佺珯鐐� + //璋冨害灏忚溅閬胯 + boolean result = Utils.searchEmptyGroupToMoveShuttle(Utils.getLev(wrkMast.getSourceLocNo()), wrkMast.getShuttleNo(), shuttleThread); + if (!result) { + return false; + } + } //鑾风洰鏍囩珯婧愮珯瀵瑰簲鐨勮緭閫佺珯鐐� BasDevp targetBasDevp = basDevpService.selectById(wrkMast.getStaNo()); @@ -2003,6 +2004,40 @@ targetSta = (short) 317; if (wrkMast.getStaNo() != 303 && wrkMast.getStaNo() != 317) { + //鍚慉GV鍙戣捣缁勬墭璇锋眰 +// try { +// HashMap<String, Object> param = new HashMap<>(); +// param.put("wrkNo", wrkMast.getWrkNo()); +// String response = new HttpHandler.Builder() +// .setUri(wmsUrl) +// .setPath("/openAGV") +// .setJson(JSON.toJSONString(param)) +// .build() +// .doPost(); +// JSONObject jsonObject = JSON.parseObject(response); +// Integer code = jsonObject.getInteger("code"); +// if (code.equals(200)) {//AGV缁勬墭鎴愬姛 +// //瑕嗙洊宸ヤ綔妗g洰鏍囩珯 +// wrkMast.setStaNo(targetSta.intValue()); +// wrkMast.setShuttleNo(null);//閲婃斁灏忚溅 +// if (wrkMastMapper.updateById(wrkMast) > 0) { +// //鍚�300绔欏啓鍏ョ洰鏍囩珯 +// staProtocol = staProtocol.clone(); +// staProtocol.setStaNo(targetSta);//绉诲姩鍒扮洰鏍囩珯 +// boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol)); +// try { +// Thread.sleep(500); +// } catch (Exception e) { +// e.printStackTrace(); +// } +// continue; +// } +// } +// } catch (Exception e) { +// e.printStackTrace(); +// TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); +// } + //瑕嗙洊宸ヤ綔妗g洰鏍囩珯 wrkMast.setStaNo(targetSta.intValue()); wrkMast.setShuttleNo(null);//閲婃斁灏忚溅 @@ -2056,11 +2091,75 @@ if (wrkMast.getInvWh() == null) { wrkMast.setInvWh("Y");//鏍囪宸茬粡涓嬪彂鏈烘鑷備换鍔� if (wrkMastMapper.updateById(wrkMast) > 0) { - RobotUtils.sendTask(staProtocol303.getWorkNo().toString(), wrkDetls.size(), "317"); + RobotUtils.sendTask(staProtocol317.getWorkNo().toString(), wrkDetls.size(), "317"); } } } } + } + + /** + * AGV琛ヨ揣(閫氱煡AGV鍙栬揣) + */ + public void agvRestockInto() { + //妫�娴�309鍜�312绔欐槸鍚﹁嚜鍔ㄣ�佹湁鐗� + for (DevpSlave devp : slaveProperties.getDevp()) { + // 鑾峰彇鍏ュ簱绔欎俊鎭� + DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId()); + StaProtocol staProtocol309 = devpThread.getStation().get(309); + StaProtocol staProtocol312 = devpThread.getStation().get(312); + if (staProtocol309 == null || staProtocol312 == null) { + continue; + } + + if (staProtocol309.isAutoing() && staProtocol309.isLoading()) { + // 鑾峰彇鏉$爜鎵弿浠俊鎭� + BarcodeThread barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, 11);//308绔欐潯鐮佸櫒 + if (barcodeThread == null) { + continue; + } + String barcode = barcodeThread.getBarcode(); + if(!Cools.isEmpty(barcode)) { + //閫氱煡AGV鍙栬揣 + agvRestockCall("CS-301-001-01@3", barcode); + } + } else if (staProtocol312.isAutoing() && staProtocol312.isLoading()) { + // 鑾峰彇鏉$爜鎵弿浠俊鎭� + BarcodeThread barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, 12);//311绔欐潯鐮佸櫒 + if (barcodeThread == null) { + continue; + } + String barcode = barcodeThread.getBarcode(); + if(!Cools.isEmpty(barcode)) { + //閫氱煡AGV鍙栬揣 + agvRestockCall("CS-302-001-01@3", barcode); + } + } + } + } + + //閫氱煡AGV鍙栬揣 + private boolean agvRestockCall(String staNo, String barcode) { + try { + HashMap<String, Object> param = new HashMap<>(); + param.put("staNo", staNo); + param.put("barcode", barcode); + String response = new HttpHandler.Builder() + .setUri(wmsUrl) + .setPath("/callAGV") + .setJson(JSON.toJSONString(param)) + .build() + .doPost(); + JSONObject jsonObject = JSON.parseObject(response); + Integer code = jsonObject.getInteger("code"); + if (code.equals(200)) {//鍛煎彨AGV + return true; + } + } catch (Exception e) { + e.printStackTrace(); + TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); + } + return false; } // 300绔欐嫞鏂� @@ -2991,6 +3090,9 @@ wrkMast.setModiTime(now); wrkMastMapper.updateById(wrkMast); + shuttleProtocol.setShuttleNo((short) 0);//閲婃斁灏忚溅 + shuttleProtocol.setToken(0);//閲婃斁灏忚溅 + if (wrkMast.getWrkSts() == 111) { // 淇濆瓨宸ヤ綔涓绘。鍘嗗彶妗� if (wrkMastLocMapper.save(wrkMast.getWrkNo()) <= 0) { diff --git a/src/main/java/com/zy/core/MainProcess.java b/src/main/java/com/zy/core/MainProcess.java index 1af7af5..117f541 100644 --- a/src/main/java/com/zy/core/MainProcess.java +++ b/src/main/java/com/zy/core/MainProcess.java @@ -72,6 +72,8 @@ mainService.storeEmptyPlt(); // AGV琛ヨ揣(鏈烘鑷傛嫞鏂�) mainService.agvRestockByRobot(); + // AGV琛ヨ揣(閫氱煡AGV鍙栬揣) + mainService.agvRestockInto(); // 300绔欐嫞鏂� mainService.pick300(); // 鍑哄簱 ===>> 宸ヤ綔妗d俊鎭啓鍏ed鏄剧ず鍣� diff --git a/src/main/webapp/views/console.html b/src/main/webapp/views/console.html index 37e92a7..f03c349 100644 --- a/src/main/webapp/views/console.html +++ b/src/main/webapp/views/console.html @@ -187,7 +187,7 @@ <li><span>鏉$爜鍚嶇О</span><span class="right">鎵爜鏃堕棿</span></li> </div> <div id="barcode1" class="table-body"> - <li v-for="(item,index) in codeList" :key="index"><span>{{item.barcode}}</span><span class="right">{{item.time}}</span></li> + <li v-for="(item,index) in codeList1" :key="index"><span>{{item.barcode}}</span><span class="right">{{item.time}}</span></li> </div> </div> <div class="tablebox"> @@ -195,7 +195,7 @@ <li><span>鏉$爜鍚嶇О</span><span class="right">鎵爜鏃堕棿</span></li> </div> <div id="barcode2" class="table-body"> - + <li v-for="(item,index) in codeList2" :key="index"><span>{{item.barcode}}</span><span class="right">{{item.time}}</span></li> </div> </div> </div> @@ -340,7 +340,8 @@ liftList: [], //鎻愬崌鏈洪泦鍚� systemStatus: true,//绯荤粺杩愯鐘舵�� consoleInterval: null,//瀹氭椂鍣ㄥ瓨鍌ㄥ彉閲� - codeList: [],//鏉$爜List + codeList1: [],//鏉$爜List + codeList2: [],//鏉$爜List }, created() { this.init() @@ -670,7 +671,12 @@ success:function (res) { if(res.code === 200){ let data = JSON.parse(res.data) - that.codeList = data + if(data.length<=5){ + that.codeList1 = data + } else { + tData1 = data.slice(0,5) + tData2 = data.splice(5,10) + } } } }) -- Gitblit v1.9.1