From 1d71c4a6ed388f4086fc1a7b1d99ceeb6ae728b0 Mon Sep 17 00:00:00 2001 From: Junjie <fallin.jie@qq.com> Date: 星期日, 22 十月 2023 17:29:26 +0800 Subject: [PATCH] #plc2 --- src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 69 +++++++++++++++++++++++++++++++--- 1 files changed, 63 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 ed89dab..42333be 100644 --- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java @@ -25,6 +25,8 @@ import com.zy.core.model.protocol.*; import com.zy.core.properties.SlaveProperties; import com.zy.core.thread.*; +import com.zy.system.entity.Config; +import com.zy.system.service.ConfigService; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; @@ -104,6 +106,8 @@ private WrkMastLocMapper wrkMastLocMapper; @Autowired private BasLiftOptService basLiftOptService; + @Autowired + private ConfigService configService; /** @@ -524,6 +528,7 @@ wrkMast.setStaNo(liftStaProtocol.getStaNo());//鐩爣绔� wrkMast.setLocNo(sourceLocNo); // 鐩爣搴撲綅 = 鍑哄簱鏃剁殑婧愬簱浣� wrkMast.setShuttleNo(null); // 绌挎杞︽竻绌� + wrkMast.setLiftNo(null);// 鎻愬崌鏈烘竻绌� wrkMast.setModiTime(new Date()); if (wrkMastMapper.updateById(wrkMast) == 0) { throw new CoolException(wrkMast.getWrkNo() + "鏇存柊宸ヤ綔妗f暟鎹姸鎬佸け璐�"); @@ -1323,6 +1328,8 @@ if (wrkMast.getMk() == null || !wrkMast.getMk().equals("Y")) { //涓嶉渶瑕佺敤鍒版満姊拌噦锛岀洿鎺ヨ浆29.鍑哄簱瀹屾垚 wrkMast.setWrkSts(29L); + wrkMast.setShuttleNo(null);//閲婃斁灏忚溅 + wrkMast.setLiftNo(null);//閲婃斁鎻愬崌鏈� } } @@ -1497,7 +1504,7 @@ } //鑾峰彇绌挎杞︽渶杩戜笖绌洪棽鐨勬彁鍗囨満杈撻�佺珯鐐� - LiftStaProtocol liftSta = shuttleDispatchUtils.getRecentLiftSta(shuttleThread.getSlave().getId()); + LiftStaProtocol liftSta = shuttleDispatchUtils.getRecentLiftSta(shuttleThread.getSlave().getId(), Utils.getLev(wrkMast.getLocNo())); if (liftSta == null) { return false;//娌℃湁鍙敤涓旂┖闂茬殑杈撻�佺珯鐐� } @@ -2060,6 +2067,7 @@ //瑕嗙洊宸ヤ綔妗g洰鏍囩珯 wrkMast.setStaNo(targetSta.intValue()); wrkMast.setShuttleNo(null);//閲婃斁灏忚溅 + wrkMast.setLiftNo(null);//閲婃斁鎻愬崌鏈� if (wrkMastMapper.updateById(wrkMast) > 0) { //鍚�300绔欏啓鍏ョ洰鏍囩珯 staProtocol = staProtocol.clone(); @@ -2081,6 +2089,7 @@ // //瑕嗙洊宸ヤ綔妗g洰鏍囩珯 // wrkMast.setStaNo(targetSta.intValue()); // wrkMast.setShuttleNo(null);//閲婃斁灏忚溅 +// wrkMast.setLiftNo(null);//閲婃斁鎻愬崌鏈� // if (wrkMastMapper.updateById(wrkMast) > 0) { // //鍚�300绔欏啓鍏ョ洰鏍囩珯 // staProtocol = staProtocol.clone(); @@ -2152,9 +2161,9 @@ continue; } - if (staProtocol309.isAutoing() && staProtocol309.isLoading()) { + if (staProtocol309.isAutoing() && staProtocol309.isLoading() && staProtocol309.isInEnable()) { // 鑾峰彇鏉$爜鎵弿浠俊鎭� - BarcodeThread barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, 11);//308绔欐潯鐮佸櫒 + BarcodeThread barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, 9);//308绔欐潯鐮佸櫒 if (barcodeThread == null) { continue; } @@ -2162,10 +2171,13 @@ if(!Cools.isEmpty(barcode)) { //閫氱煡AGV鍙栬揣 agvRestockCall("CS-301-001-01@3", barcode); + log.info("閫氱煡AGV鍙栬揣锛屾潯鐮佸彿锛�" + barcode); } - } else if (staProtocol312.isAutoing() && staProtocol312.isLoading()) { + } + + if (staProtocol312.isAutoing() && staProtocol312.isLoading() && staProtocol312.isInEnable()) { // 鑾峰彇鏉$爜鎵弿浠俊鎭� - BarcodeThread barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, 12);//311绔欐潯鐮佸櫒 + BarcodeThread barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, 10);//311绔欐潯鐮佸櫒 if (barcodeThread == null) { continue; } @@ -2173,6 +2185,7 @@ if(!Cools.isEmpty(barcode)) { //閫氱煡AGV鍙栬揣 agvRestockCall("CS-302-001-01@3", barcode); + log.info("閫氱煡AGV鍙栬揣锛屾潯鐮佸彿锛�" + barcode); } } } @@ -2219,7 +2232,7 @@ continue; } - if (wrkMast.getWrkSts() != 25) {//25.鎻愬崌鏈烘惉杩愬畬鎴� + if (wrkMast.getWrkSts() != 29) {//29.鍑哄簱瀹屾垚 continue; } @@ -2229,6 +2242,7 @@ //瑕嗙洊宸ヤ綔妗g洰鏍囩珯 wrkMast.setStaNo(sourceStaNo); wrkMast.setSourceStaNo(staNo); + wrkMast.setMk("N"); if (wrkMastMapper.updateById(wrkMast) > 0) { //鍚�300绔欏啓鍏ョ洰鏍囩珯 staProtocol = staProtocol.clone(); @@ -2540,7 +2554,16 @@ } } else if (wrkCharge.getWrkSts() == 52) { //妫�娴嬪皬杞︽槸鍚︽弧鐢� + + //鑾峰彇婊$數闃堝�� int maxPower = 95; + EntityWrapper<Config> wrapper = new EntityWrapper<>(); + wrapper.eq("code", "chargeMaxValue"); + Config config = configService.selectOne(wrapper); + if (config != null) { + maxPower = Integer.parseInt(config.getValue()); + } + if (shuttleProtocol.getPowerPercent() < maxPower) { continue; } @@ -2834,6 +2857,27 @@ return false; } + //*************灏濊瘯閿佸畾鐩爣绔欒矾寰�*************** + //鑾峰彇鐩爣绔� + LiftStaProtocol targetLiftSta = NyLiftUtils.getLiftStaByStaNo(wrkMast.getStaNo()); + if (targetLiftSta == null) { + return false;//鎵句笉鍒扮珯鐐� + } + NavigateNode targetNode = NavigatePositionConvert.locNoToNode(targetLiftSta.getLocNo());//鐩爣鑺傜偣 + NavigateMapData navigateMapData = new NavigateMapData(Utils.getLev(wrkMast.getLocNo())); + List<NavigateNode> targetNodes = new ArrayList<>(); + targetNodes.add(targetNode); + boolean checkPathIsAvailable = NavigateUtils.checkPathIsAvailable(targetNodes, shuttleProtocol.getShuttleNo().intValue(), Utils.getLev(wrkMast.getLocNo()), null); + if (!checkPathIsAvailable) { + return false;//妫�娴嬬洰鏍囩珯鐐硅矾寰勬槸鍚︽湭琚崰鐢� + } + //灏濊瘯閿佸畾鐩爣绔欒矾寰� + boolean result = navigateMapData.writeNavigateNodeToRedisMap(targetNodes, true);//鎵�浣跨敤鐨勮矾寰勮繘琛岄攣瀹氱鐢� + if (!result) { + return false;//璺緞閿佸畾澶辫触 + } + //*************灏濊瘯閿佸畾鐩爣绔欒矾寰�*************** + //绔欑偣鑺傜偣 NavigateNode staNode = NavigatePositionConvert.locNoToNode(sourceLiftSta.getLocNo()); @@ -3036,6 +3080,19 @@ if (basLift.getPoint() == null) { return false;//娌℃湁璁剧疆鎻愬崌鏈虹偣浣嶅潗鏍� } + + //*************灏濊瘯瑙i攣鐩爣绔欒矾寰�*************** + NavigateNode targetNode = NavigatePositionConvert.locNoToNode(liftSta.getLocNo());//鐩爣鑺傜偣 + NavigateMapData navigateMapData = new NavigateMapData(Utils.getLev(wrkMast.getLocNo())); + List<NavigateNode> targetNodes = new ArrayList<>(); + targetNodes.add(targetNode); + //灏濊瘯瑙i攣鐩爣绔欒矾寰� + boolean result = navigateMapData.writeNavigateNodeToRedisMap(targetNodes, false);//鎵�浣跨敤鐨勮矾寰勮繘琛岃В閿� + if (!result) { + return false;//璺緞瑙i攣澶辫触 + } + //*************灏濊瘯瑙i攣鐩爣绔欒矾寰�*************** + NavigateNode liftNode = new NavigateNode(basLift.getPoint$().getX(), basLift.getPoint$().getY()); liftNode.setZ(liftSta.getLev()); -- Gitblit v1.9.1