From a6ae5a74d1de3db517526a3ba5db1e4a2a68cf65 Mon Sep 17 00:00:00 2001 From: pang.jiabao <pang_jiabao@163.com> Date: 星期四, 24 十月 2024 08:49:13 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/ghjtwcs' into ghjtwcs --- src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 115 ++++++++++++++++++++++++++++++++++++++++++++++++++++----- 1 files changed, 104 insertions(+), 11 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 46e5cee..4e10107 100644 --- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java @@ -12,6 +12,7 @@ import com.zy.asrs.utils.RouteUtils; import com.zy.asrs.utils.Utils; import com.zy.asrs.utils.VersionUtils; +import com.zy.common.constant.GhjtApiConstant; import com.zy.common.model.LocTypeDto; import com.zy.common.model.MatDto; import com.zy.common.model.SearchLocParam; @@ -37,6 +38,8 @@ import com.zy.core.thread.LedThread; import com.zy.core.thread.RgvThread; import com.zy.core.thread.SiemensDevpThread; +import com.zy.system.entity.Config; +import com.zy.system.mapper.ConfigMapper; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; @@ -44,6 +47,7 @@ import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.interceptor.TransactionAspectSupport; +import javax.annotation.Resource; import java.util.*; import java.util.concurrent.TimeUnit; import java.util.stream.Collectors; @@ -99,6 +103,9 @@ private BasRgvMapMapper basRgvMapMapper; @Autowired private RgvOneSignMapper rgvOneSignMapper; + + @Resource + private ConfigMapper configMapper; @Value("${wms.url}") private String wmsUrl; @@ -892,7 +899,7 @@ continue; } // 鍒ゆ柇宸ヤ綔妗f潯浠� - if (wrkMast.getIoType() < 100 || wrkMast.getStaNo() == null || wrkMast.getSourceStaNo() == null) { + if ((wrkMast.getIoType() < 100 && wrkMast.getIoType() != 12) || wrkMast.getStaNo() == null || wrkMast.getSourceStaNo() == null) { continue; } // 鍒ゆ柇鍚婅溅鏄惁瀹為檯宸插畬鎴愶紝涓旂數鑴戠姸鎬佸湪move涓紝浠ュ鐢佃剳杩涜鏇存柊宸ヤ綔妗� @@ -1591,8 +1598,10 @@ continue; } + log.info("{}鍙峰爢鍨涙満閫夊畾鐨勫嚭搴撳彛鏄瘂}",crnProtocol.getCrnNo(),crnStn.getPlatNo()); + // 宸ヤ綔妗g姸鎬佸垽鏂� - if (wrkMast.getIoType() < 100 || wrkMast.getSourceStaNo() == null) { + if ((wrkMast.getIoType() < 100 && wrkMast.getIoType()!=12) || wrkMast.getSourceStaNo() == null) { log.error("鏌ヨ宸ヤ綔妗f暟鎹笉绗﹀悎鏉′欢--鍏ュ嚭绫诲瀷/绔欑偣, 宸ヤ綔鍙�={}锛屾簮搴撲綅={}锛屽叆鍑虹被鍨�={}", wrkMast.getWrkNo(), wrkMast.getSourceLocNo(), wrkMast.getIoType()); continue; } @@ -1725,9 +1734,6 @@ */ private boolean crnEnabled(WrkMast wrkMast) { - String url = "http://192.168.14.249:8008"; - String path = "/api/Task/DockStatus"; - // 鑾峰彇璇锋眰澶� Map<String,Object> headers = new HashMap<>(); headers.put("digi-type","sync "); @@ -1744,8 +1750,8 @@ String response; try { response = new HttpHandler.Builder() - .setUri(url) - .setPath(path) + .setUri(GhjtApiConstant.GWCS_IP_PORT) + .setPath(GhjtApiConstant.GWCS_CKMT_URL) .setHeaders(headers) .setJson(body) .build() @@ -1758,8 +1764,8 @@ success = false; } } else { - log.error("璇锋眰鎺ュ彛澶辫触锛侊紒锛乽rl锛歿}锛況equest锛歿}锛況esponse锛歿}", url + path, body, response); - throw new CoolException("涓嬪彂鍑哄簱浠诲姟缁橤WCS(浠庡嚭搴撶爜澶村埌鍑哄簱鍙�)澶辫触"); + log.error("纭鍑哄簱鐮佸ご鏄惁鍙敤澶辫触锛侊紒锛乽rl锛歿}锛況equest锛歿}锛況esponse锛歿}", GhjtApiConstant.GWCS_IP_PORT + GhjtApiConstant.GWCS_CKMT_URL, body, response); + throw new CoolException("纭鍑哄簱鐮佸ご鏄惁鍙敤澶辫触"); } } catch (Exception e) { success = false; @@ -2020,6 +2026,9 @@ // 鍏ュ簱 + 搴撲綅杞Щ ==> 4.鍏ュ簱瀹屾垚 if (wrkMast.getWrkSts() == 3 || (wrkMast.getWrkSts() == 12 && wrkMast.getIoType() == 11)) { wrkMast.setWrkSts(4L); + if (wrkMast.getIoType() == 3) { + wrkMast.setWrkSts(13L); + } } else { continue; } @@ -2711,9 +2720,18 @@ try { List<Integer> rows = locMastService.queryDistinctRow(crn.getId()); LocMast loc = null; + + // 鑾峰彇澶囪揣鍖洪厤缃� + Config config = configMapper.selectConfigByCode("auto_stock_up"); + if (config == null) { + return; + } + // 澶囪揣鍙栨槸鍓嶅嚑鍒� + int bay1 = Integer.parseInt(config.getValue()); + for (Integer row : rows) { if (Utils.isDeepLoc(slaveProperties, row)) { - loc = locMastService.queryFreeLocMast(row, shallowLoc.getLocType1()); + loc = locMastService.queryFreeLocMastNotBay(row, shallowLoc.getLocType1(),bay1); if (loc != null) { if (Utils.isDeepLoc(slaveProperties, loc.getLocNo())) { @@ -2732,7 +2750,7 @@ if (null == loc) { for (Integer row : rows) { if (Utils.isShallowLoc(slaveProperties, row)) { - loc = locMastService.queryFreeLocMast(row, shallowLoc.getLocType1()); + loc = locMastService.queryFreeLocMastNotBay(row, shallowLoc.getLocType1(),bay1); if (null != loc) {//瀵瑰簲娣卞簱浣嶉潪鍦ㄥ簱鐘舵��,涓嶈兘绉诲簱 String deepLoc = Utils.getDeepLoc(slaveProperties, loc.getLocNo()); @@ -4613,4 +4631,79 @@ } } + /** + * 浜屾ゼ绌烘墭鍥炴祦鍒颁竴妤硷紝3.绔欏埌绔欎换鍔� + */ + public synchronized void emptyTrayReflux() { + for (CrnSlave crn : slaveProperties.getCrn()) { + List<WrkMast> wrkMastList = wrkMastMapper.selectList(new EntityWrapper<WrkMast>().eq("wrk_sts", 2) + .eq("crn_no",crn.getId()).eq("io_type", 3)); + for (WrkMast wrkMast : wrkMastList) { + CrnThread crnThread = (CrnThread) SlaveConnection.get(SlaveType.Crn, crn.getId()); + CrnProtocol crnProtocol = crnThread.getCrnProtocol(); + if (crnProtocol == null) { + continue; + } + if (crnProtocol.getStatusType() == CrnStatusType.IDLE + && crnProtocol.getTaskNo() == 0 + && crnProtocol.getModeType() == CrnModeType.AUTO + && crnProtocol.getLoaded() == 0 + && crnProtocol.getForkPos() == 0) { + + CrnSlave.CrnStn crnStn = null; + CrnSlave.CrnStn crnStn2 = null; + for (CrnSlave.CrnStn crnStn1 : crn.getCrnOutStn()){ + if(crnStn1.getStaNo().equals(wrkMast.getStaNo())){ + crnStn = crnStn1; + break; + } + } + for (CrnSlave.CrnStn crnStn1 : crn.getCrnInStn()){ + if(crnStn1.getStaNo().equals(wrkMast.getSourceStaNo())){ + crnStn2 = crnStn1; + break; + } + } + if(Cools.isEmpty(crnStn) || Cools.isEmpty(crnStn2)){ + continue; + } + + // 鍏ュ簱鍛戒护涓嬪彂鍖� -------------------------------------------------------------------------- + CrnCommand crnCommand = new CrnCommand(); + crnCommand.setCrnNo(crnProtocol.getCrnNo()); // 鍫嗗灈鏈虹紪鍙� + crnCommand.setTaskNo(wrkMast.getWrkNo().shortValue()); // 宸ヤ綔鍙� + crnCommand.setAckFinish((short) 0); // 浠诲姟瀹屾垚纭浣� + crnCommand.setTaskMode(CrnTaskModeType.LOC_MOVE); // 浠诲姟妯″紡: 搴撲綅绉昏浆 + crnCommand.setSourcePosX(crnStn2.getRow().shortValue()); // 婧愬簱浣嶆帓 + crnCommand.setSourcePosY(crnStn2.getBay().shortValue()); // 婧愬簱浣嶅垪 + crnCommand.setSourcePosZ(crnStn2.getLev().shortValue()); // 婧愬簱浣嶅眰 + crnCommand.setDestinationPosX(crnStn.getRow().shortValue()); // 鐩爣搴撲綅鎺� + crnCommand.setDestinationPosY(crnStn.getBay().shortValue()); // 鐩爣搴撲綅鍒� + crnCommand.setDestinationPosZ(crnStn.getLev().shortValue()); // 鐩爣搴撲綅灞� +// crnCommand.setSourceStaNo(crnStn.getPlatNo().shortValue()); // 婧愬簱浣嶆帓 + if (!MessageQueue.offer(SlaveType.Crn, wrkMast.getCrnNo(), new Task(2, crnCommand))) { + log.error("鍫嗗灈鏈哄懡浠や笅鍙戝け璐ワ紝鍫嗗灈鏈哄彿={}锛屼换鍔℃暟鎹�={}", wrkMast.getCrnNo(), JSON.toJSON(crnCommand)); + } else { + // 淇敼宸ヤ綔妗g姸鎬� 2.璁惧涓婅蛋 => 3.鍚婅溅鍏ュ簱涓� + Date now = new Date(); + wrkMast.setWrkSts(3L); + wrkMast.setCrnStrTime(now); + wrkMast.setModiTime(now); + if (wrkMastMapper.updateById(wrkMast) == 0) { + log.error("淇敼宸ヤ綔妗g姸鎬� 2.璁惧涓婅蛋 => 3.鍚婅溅鍏ュ簱涓� 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkMast.getWrkNo()); + } + } + break; + } + + } + } + } + + /** + * 12.璺ㄥ贩閬撶Щ搴� + */ + public synchronized void autoMoveLoc() { + + } } -- Gitblit v1.9.1