From be99dea0c47c9a86eae906b46d67e14081191ad8 Mon Sep 17 00:00:00 2001 From: zhangc <zc@123> Date: 星期六, 12 四月 2025 12:53:45 +0800 Subject: [PATCH] 1 --- src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 202 +++++++++++++++++++++++--------------------------- 1 files changed, 94 insertions(+), 108 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 1c9de47..c60f1f9 100644 --- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java @@ -1,7 +1,6 @@ package com.zy.asrs.service.impl; import com.alibaba.fastjson.JSON; -import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.core.common.Cools; import com.zy.asrs.domain.enums.NotifyMsgType; @@ -10,8 +9,6 @@ import com.zy.asrs.utils.NotifyUtils; import com.zy.asrs.utils.Utils; import com.zy.common.model.MapNode; -import com.zy.common.model.SearchLocParam; -import com.zy.common.model.StartupDto; import com.zy.common.model.enums.NavigationMapType; import com.zy.common.service.CommonService; import com.zy.common.utils.*; @@ -38,7 +35,6 @@ import java.util.ArrayList; import java.util.Date; -import java.util.HashMap; import java.util.List; /** @@ -92,6 +88,11 @@ @Autowired private NoLiftOutServiceImpl noLiftOutService; + + public static List<Integer> staNosIn = new ArrayList<Integer>() {{ + add(1015); + add(1026); + }}; private boolean isInEnable(DevpThread devpThread, Integer staNo) { if (staNo == null) { @@ -216,32 +217,33 @@ continue; } // 鍒ゆ柇鏄惁婊¤冻鍏ュ簱鏉′欢 - if (staProtocol.isAutoing() && staProtocol.isLoading() - && isInEnable(devpThread, inSta.getStaNo()) - && !staProtocol.isEmptyMk() && (workNo == 0 || (workNo >= 9990 && workNo <= 9999)) - && staProtocol.isPakMk() - ) { + if (staProtocol.isAutoing() && staProtocol.isLoading() && isInEnable(devpThread, inSta.getStaNo()) && !staProtocol.isEmptyMk() && (workNo == 0 || (workNo >= 9990 && workNo <= 9999)) && staProtocol.isPakMk()) { String barcode = staProtocol.getBarcode(); if (!Cools.isEmpty(barcode)) { News.info("鏉$爜鎵弿鍣ㄦ娴嬫潯鐮佷俊鎭細{}", barcode); } // 鍒ゆ柇閲嶅宸ヤ綔妗� - WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>() - .eq("source_sta_no", inSta.getStaNo()) - .eq("wrk_sts", WrkStsType.NEW_INBOUND) - .eq("barcode", barcode)); + WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("source_sta_no", inSta.getStaNo()).eq("wrk_sts", WrkStsType.NEW_INBOUND).eq("barcode", barcode)); if (wrkMast != null) { News.error("宸ヤ綔妗e凡瀛樺湪,宸ヤ綔鍙�={}", wrkMast.getWrkNo()); if (staProtocol.getWorkNo().intValue() != wrkMast.getWrkNo()) { - MessageQueue.offer(SlaveType.Devp, devpSlave.getId(), new Task(2, staProtocol)); - devpThread.setPakMk(staProtocol.getSiteId(), false); - News.info("杈撻�佺嚎鍏ュ簱鍛戒护涓嬪彂锛屼换鍔℃暟鎹�={}", JSON.toJSON(wrkMast)); + //鍒ゆ柇鏃舵彁鍗囨満渚э紝杩樻槸鏃犳彁鍗囨満娴� + if (inSta.getStaNo() == 1014 || inSta.getStaNo() == 1025) { + staProtocol.setWorkNo(Short.parseShort(String.valueOf(wrkMast.getWrkNo()))); + staProtocol.setStaNo(Short.parseShort(String.valueOf(wrkMast.getStaNo()))); + MessageQueue.offer(SlaveType.Devp, devpSlave.getId(), new Task(2, staProtocol)); + News.info("杈撻�佺嚎鍏ュ簱鍛戒护涓嬪彂锛屼换鍔℃暟鎹�={}", JSON.toJSON(wrkMast)); + wrkMast.setWrkSts(WrkStsType.INBOUND_DEVICE_RUN.sts); + wrkMast.setModiTime(new Date()); + wrkMastService.updateById(wrkMast); + } else { + + } } continue; } - try { - String wmsUrl = "127.0.0.1:8080/fyxcwms"; + /*String wmsUrl = "127.0.0.1:8080/fyxcwms"; SearchLocParam param = new SearchLocParam(); param.setBarcode(barcode); param.setIoType(1); @@ -256,10 +258,6 @@ JSONObject jsonObject = JSON.parseObject(response); Integer code = jsonObject.getInteger("code"); if (code.equals(200)) { - MessageQueue.offer(SlaveType.Devp, devpSlave.getId(), new Task(2, staProtocol)); - devpThread.setPakMk(staProtocol.getSiteId(), false); - News.info("杈撻�佺嚎鍏ュ簱鍛戒护涓嬪彂锛屼换鍔℃暟鎹�={}", JSON.toJSON(wrkMast)); - StartupDto dto = jsonObject.getObject("data", StartupDto.class); // String wmsLocNo = dto.getLocNo(); @@ -304,7 +302,7 @@ .build() .doPost(); News.error("鍏ュ簱鐢宠澶辫触锛屼换鍔℃暟鎹�={}锛岃姹傚搷搴�={}", JSON.toJSON(param), JSON.toJSON(jsonObject)); - } + }*/ } catch (Exception e) { e.printStackTrace(); } @@ -315,6 +313,38 @@ } } + public synchronized void generateInboundWrk2() { + DevpSlave devpSlave = slaveProperties.getDevp().get(0); + // 閬嶅巻鍫嗗灈鏈哄嚭搴撶珯 + for (DevpSlave.Sta inSta : devpSlave.getInSta()) { + DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, 1); + StaProtocol staProtocol = devpThread.getStation().get(inSta); + if (staProtocol == null) { + return; + } else { + staProtocol = staProtocol.clone(); + } + Short finishWorkNo = staProtocol.getFinishWorkNo(); + WrkMast wrkMast = wrkMastService.selectByWorkNo(Integer.valueOf(finishWorkNo)); + if (wrkMast != null) { + if (wrkMast.getSourceStaNo() == 1015 || wrkMast.getSourceStaNo() == 1026) { + + //璋冨害杞﹁締 +// boolean dispatchShuttle = shuttleDispatchUtils.dispatchShuttle(null, staProtocol.getLocNo(), wrkMast.getLocNo(), param.getShuttleNo(), "TRANSPORT_DEVP"); +// if (!dispatchShuttle) { +// News.taskInfo(wrkMast.getWrkNo(), "{}浠诲姟锛寋}灏忚溅锛岃皟搴﹁嚦鍙栬揣鐐瑰け璐�", wrkMast.getWrkNo(), shuttleProtocol.getShuttleNo()); +// return; +// } + } else { + //鍒ゆ柇鎻愬崌鏈� + + + } + } + } + + } + /** * 鍑哄簱鍒板嚭搴撳彛 @@ -322,62 +352,33 @@ public synchronized void stnToOutStn() { DevpSlave devpSlave = slaveProperties.getDevp().get(0); // 閬嶅巻鍫嗗灈鏈哄嚭搴撶珯 - for (DevpSlave.Sta outSta : devpSlave.getOutSta()) { - // 鑾峰彇鍫嗗灈鏈哄嚭搴撶珯淇℃伅 - DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, devpSlave.getId()); - StaProtocol staProtocol = devpThread.getStation().get(outSta.getStaNo()); - if (staProtocol == null) { - continue; - } else { - staProtocol = staProtocol.clone(); - } - if (staProtocol.isAutoing() && staProtocol.isLoading() && (staProtocol.getWorkNo() == 0 || staProtocol.getStaNo() == null)) { - // 鏌ヨ宸ヤ綔妗� -// WrkMast wrkMast = wrkMastMapper.selectPakOutStep2(staProtocol.getSiteId()); -// if (wrkMast == null) { -// continue; -// } -// // 鍒ゆ柇宸ヤ綔妗f潯浠� -// if (wrkMast.getIoType() < 100 || wrkMast.getStaNo() == null || wrkMast.getSourceStaNo() == null) { -// -// } + for (DevpSlave.Sta inSta : devpSlave.getInSta()) { + if (inSta.getStaNo() == 1014 || inSta.getStaNo() == 1025) { + DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, devpSlave.getId()); + List<WrkMast> wrkSts = wrkMastService.selectList(new EntityWrapper<WrkMast>().eq("wrk_sts", WrkStsType.OUTBOUND_LIFT_RUN_COMPLETE.sts)); + for (WrkMast wrkMast : wrkSts) { + StaProtocol staProtocol = devpThread.getStation().get(inSta.getStaNo()); + if (staProtocol == null) { + continue; + } else { + staProtocol = staProtocol.clone(); + } + if (staProtocol.isAutoing() && !staProtocol.isLoading() && (staProtocol.getWorkNo() == 0 || staProtocol.getStaNo() == null)) { + // 鏌ヨ宸ヤ綔妗� + if (wrkMast == null) { + continue; + } + staProtocol.setWorkNo(Short.parseShort(String.valueOf(wrkMast.getWrkNo()))); + staProtocol.setStaNo(Short.parseShort(String.valueOf(wrkMast.getStaNo()))); + MessageQueue.offer(SlaveType.Devp, devpSlave.getId(), new Task(2, staProtocol)); + News.info("杈撻�佺嚎鍏ュ簱鍛戒护涓嬪彂锛屼换鍔℃暟鎹�={}", JSON.toJSON(wrkMast)); + wrkMast.setWrkSts(WrkStsType.COMPLETE_OUTBOUND.sts); + wrkMast.setModiTime(new Date()); + wrkMastService.updateById(wrkMast); - // 鍒ゆ柇杈撻�佺嚎鍜屽皬杞︾姸鎬佺姸鎬佺瓑寰呯‘璁� -// if (crnProtocol.modeType == CrnModeType.AUTO && crnProtocol.getTaskNo().equals(wrkMast.getWrkNo().shortValue()) -// && crnProtocol.statusType == CrnStatusType.WAITING -// && crnProtocol.forkPosType == CrnForkPosType.HOME) { -// log.info("鍫嗗灈鏈哄嚭搴撳畬鎴� - 寮�濮嬫墽琛�"); -// -// // 鍛戒护涓嬪彂鍖� -------------------------------------------------------------------------- -// -// // 涓嬪彂绔欑偣淇℃伅 -// staProtocol.setWorkNo(wrkMast.getWrkNo()); -// staProtocol.setStaNo(RouteUtils.CrnStaEnd(wrkMast.getStaNo(), wrkMast.getSourceStaNo())); -// if (!MessageQueue.offer(SlaveType.Devp, crnStn.getDevpPlcId(), new Task(2, staProtocol))) { -// log.info(staProtocol.getWorkNo() + "," + staProtocol.getStaNo() + "杈撻�佺嚎鍑哄簱鍛戒护涓嬪彂澶辫触"); -// continue; -// } else { -// log.info(staProtocol.getWorkNo() + "," + staProtocol.getStaNo() + "杈撻�佺嚎鍑哄簱鍛戒护涓嬪彂鎴愬姛"); -// } -// -// // 鏇存柊宸ヤ綔妗g姸鎬佷负14澶辫触 -// wrkMast.setWrkSts(14L); -// wrkMast.setCrnEndTime(new Date()); -// if (wrkMastMapper.updateById(wrkMast) != 0) { -// // 澶嶄綅鍫嗗灈鏈� -// log.error("鍑哄簱浠诲姟瀹屾垚涓嬪彂鍫嗗灈鏈哄浣�,{}", wrkMast.getWrkNo()); -// crnThread.setResetFlag(true); -// } else { -// News.error("" + mark + " - 1" + " - 鏇存柊宸ヤ綔妗g殑宸ヤ綔鐘舵�佷负14澶辫触锛侊紒锛� [宸ヤ綔鍙�:{}]", wrkMast.getWrkNo()); -// } -// -// } else { -// News.errorNoLog("" + mark + " - 6" + " - 鍫嗗灈鏈轰俊鎭笉绗﹀悎鍏ュ簱鏉′欢锛侊紒锛�" -// + " 鍫嗗灈鏈虹姸鎬侊細" + crnProtocol.modeType + "==鑷姩AUTO锛�" + CrnModeType.AUTO -// + "銆佸爢鍨涙満浠诲姟鍙凤細" + crnProtocol.getTaskNo() + "==宸ヤ綔妗d换鍔″彿锛�" + wrkMast.getWrkNo().shortValue() -// + "銆佺姸鎬佹灇涓撅細" + crnProtocol.statusType + "==WAITING锛�90 //浠诲姟瀹屾垚绛夊緟WCS纭)锛�" + CrnStatusType.WAITING -// + "銆佽揣鍙変綅缃細" + crnProtocol.forkPosType + "==HOME锛�0 // 璐у弶鍘熶綅锛�" + CrnForkPosType.HOME); -// } + } + } + } else { } } @@ -421,10 +422,7 @@ */ public synchronized void shuttleInExecute() { try { - List<WrkMast> wrkMasts = wrkMastService.selectList(new EntityWrapper<WrkMast>() - .in("wrk_sts" - , WrkStsType.INBOUND_LIFT_RUN_COMPLETE.sts - )); + List<WrkMast> wrkMasts = wrkMastService.selectList(new EntityWrapper<WrkMast>().in("wrk_sts", WrkStsType.INBOUND_LIFT_RUN_COMPLETE.sts)); for (WrkMast wrkMast : wrkMasts) { boolean step1 = this.shuttleInExecuteStep1(wrkMast);//灏忚溅鎼叆搴撲腑 if (!step1) { @@ -534,10 +532,7 @@ */ public synchronized void shuttleOutExecute() { try { - List<WrkMast> wrkMasts = wrkMastService.selectList(new EntityWrapper<WrkMast>() - .in("wrk_sts" - , WrkStsType.NEW_OUTBOUND.sts - )); + List<WrkMast> wrkMasts = wrkMastService.selectList(new EntityWrapper<WrkMast>().in("wrk_sts", WrkStsType.NEW_OUTBOUND.sts)); for (WrkMast wrkMast : wrkMasts) { boolean step1 = this.shuttleOutExecuteStep1(wrkMast);//灏忚溅鎼嚭搴撲腑 if (!step1) { @@ -720,8 +715,7 @@ //鍥涘悜绌挎杞︾姸鎬佷负绛夊緟纭銆佸皬杞﹀浜庣┖闂茬姸鎬� if (shuttleProtocol.getProtocolStatus() == ShuttleProtocolStatusType.WAITING.id //浠诲姟瀹屾垚绛夊緟纭 - && shuttleProtocol.getTaskNo() != 0 - ) { + && shuttleProtocol.getTaskNo() != 0) { //灏嗕换鍔℃。鏍囪涓哄畬鎴� WrkMast wrkMast = wrkMastService.selectByWorkNo(shuttleProtocol.getTaskNo()); if (wrkMast != null) { @@ -808,35 +802,31 @@ wrkMast.setWrkSts(WrkStsType.MOVE_IN_NO_LIFT_14.sts); shuttleThread.setSyncTaskNo(0); notifyUtils.notify(String.valueOf(SlaveType.Shuttle), shuttleProtocol.getShuttleNo(), String.valueOf(wrkMast.getWrkNo()), wrkMast.getWmsWrkNo(), NotifyMsgType.SHUTTLE_POWER_COMPLETE);//瑙﹀彂閫氱煡 - } else if (wrkMast.getWrkSts() == WrkStsType.MOVE_OUT_NO_LIFT_12.sts) { + } else if (wrkMast.getWrkSts() == WrkStsType.MOVE_OUT_NO_LIFT_12.sts) { wrkMast.setWrkSts(WrkStsType.MOVE_OUT_NO_LIFT_13.sts); shuttleThread.setSyncTaskNo(0); notifyUtils.notify(String.valueOf(SlaveType.Shuttle), shuttleProtocol.getShuttleNo(), String.valueOf(wrkMast.getWrkNo()), wrkMast.getWmsWrkNo(), NotifyMsgType.SHUTTLE_POWER_COMPLETE);//瑙﹀彂閫氱煡 - }else if (wrkMast.getWrkSts() == WrkStsType.MOVE_OUT_NO_LIFT_10.sts) { + } else if (wrkMast.getWrkSts() == WrkStsType.MOVE_OUT_NO_LIFT_10.sts) { wrkMast.setWrkSts(WrkStsType.MOVE_OUT_NO_LIFT_11.sts); shuttleThread.setSyncTaskNo(0); notifyUtils.notify(String.valueOf(SlaveType.Shuttle), shuttleProtocol.getShuttleNo(), String.valueOf(wrkMast.getWrkNo()), wrkMast.getWmsWrkNo(), NotifyMsgType.SHUTTLE_POWER_COMPLETE);//瑙﹀彂閫氱煡 - }else if (wrkMast.getWrkSts() == WrkStsType.MOVE_OUT_NO_LIFT_8.sts) { + } else if (wrkMast.getWrkSts() == WrkStsType.MOVE_OUT_NO_LIFT_8.sts) { wrkMast.setWrkSts(WrkStsType.MOVE_OUT_NO_LIFT_9.sts); shuttleThread.setSyncTaskNo(0); notifyUtils.notify(String.valueOf(SlaveType.Shuttle), shuttleProtocol.getShuttleNo(), String.valueOf(wrkMast.getWrkNo()), wrkMast.getWmsWrkNo(), NotifyMsgType.SHUTTLE_POWER_COMPLETE);//瑙﹀彂閫氱煡 - }else if (wrkMast.getWrkSts() == WrkStsType.MOVE_OUT_NO_LIFT_6.sts) { + } else if (wrkMast.getWrkSts() == WrkStsType.MOVE_OUT_NO_LIFT_6.sts) { wrkMast.setWrkSts(WrkStsType.MOVE_OUT_NO_LIFT_7.sts); shuttleThread.setSyncTaskNo(0); notifyUtils.notify(String.valueOf(SlaveType.Shuttle), shuttleProtocol.getShuttleNo(), String.valueOf(wrkMast.getWrkNo()), wrkMast.getWmsWrkNo(), NotifyMsgType.SHUTTLE_POWER_COMPLETE);//瑙﹀彂閫氱煡 - }else if (wrkMast.getWrkSts() == WrkStsType.MOVE_OUT_NO_LIFT_4.sts) { + } else if (wrkMast.getWrkSts() == WrkStsType.MOVE_OUT_NO_LIFT_4.sts) { wrkMast.setWrkSts(WrkStsType.MOVE_OUT_NO_LIFT_5.sts); shuttleThread.setSyncTaskNo(0); notifyUtils.notify(String.valueOf(SlaveType.Shuttle), shuttleProtocol.getShuttleNo(), String.valueOf(wrkMast.getWrkNo()), wrkMast.getWmsWrkNo(), NotifyMsgType.SHUTTLE_POWER_COMPLETE);//瑙﹀彂閫氱煡 - }else if (wrkMast.getWrkSts() == WrkStsType.MOVE_OUT_NO_LIFT_2.sts) { + } else if (wrkMast.getWrkSts() == WrkStsType.MOVE_OUT_NO_LIFT_2.sts) { wrkMast.setWrkSts(WrkStsType.MOVE_OUT_NO_LIFT_3.sts); shuttleThread.setSyncTaskNo(0); notifyUtils.notify(String.valueOf(SlaveType.Shuttle), shuttleProtocol.getShuttleNo(), String.valueOf(wrkMast.getWrkNo()), wrkMast.getWmsWrkNo(), NotifyMsgType.SHUTTLE_POWER_COMPLETE);//瑙﹀彂閫氱煡 - } - - - - else { + } else { continue; } @@ -1029,9 +1019,7 @@ } //鎻愬崌鏈轰负绛夊緟纭涓旂┖闂� - if (liftProtocol.getProtocolStatus() == LiftProtocolStatusType.WAITING.id - && liftProtocol.getTaskNo() != 0 - ) { + if (liftProtocol.getProtocolStatus() == LiftProtocolStatusType.WAITING.id && liftProtocol.getTaskNo() != 0) { //灏嗕换鍔℃。鏍囪涓哄畬鎴� WrkMast wrkMast = wrkMastService.selectByWorkNo(liftProtocol.getTaskNo()); if (wrkMast != null) { @@ -1061,10 +1049,10 @@ } else if (wrkMast.getWrkSts() == WrkStsType.MOVE_IN_NO_LIFT_9.sts) { //鎻愬崌鏈鸿嚦灏忚溅灞� ==> 鎻愬崌鏈鸿嚦灏忚溅灞傚畬鎴� wrkMast.setWrkSts(WrkStsType.MOVE_IN_NO_LIFT_10.sts); - }else if (wrkMast.getWrkSts() == WrkStsType.MOVE_OUT_NO_LIFT_8.sts) { + } else if (wrkMast.getWrkSts() == WrkStsType.MOVE_OUT_NO_LIFT_8.sts) { //鎻愬崌鏈鸿嚦灏忚溅灞� ==> 鎻愬崌鏈鸿嚦灏忚溅灞傚畬鎴� wrkMast.setWrkSts(WrkStsType.MOVE_OUT_NO_LIFT_9.sts); - }else if (wrkMast.getWrkSts() == WrkStsType.MOVE_OUT_NO_LIFT_4.sts) { + } else if (wrkMast.getWrkSts() == WrkStsType.MOVE_OUT_NO_LIFT_4.sts) { //鎻愬崌鏈鸿嚦灏忚溅灞� ==> 鎻愬崌鏈鸿嚦灏忚溅灞傚畬鎴� wrkMast.setWrkSts(WrkStsType.MOVE_OUT_NO_LIFT_5.sts); } @@ -1126,8 +1114,7 @@ int errorCode = Integer.parseInt(shuttleProtocol.getErrorCode()); BasShuttleErr basShuttleErr = basShuttleErrService.queryByCode(errorCode); String errName = basShuttleErr == null ? "鏈煡寮傚父" : basShuttleErr.getErrName(); - BasShuttleErrLog basShuttleErrLog = new BasShuttleErrLog( - null, // 缂栧彿 + BasShuttleErrLog basShuttleErrLog = new BasShuttleErrLog(null, // 缂栧彿 wrkMast.getWrkNo(), // 宸ヤ綔鍙� now, // 鍙戠敓鏃堕棿 null, // 缁撴潫鏃堕棿 @@ -1199,8 +1186,7 @@ BasLiftErr basLiftErr = basLiftErrService.queryByCode(Integer.parseInt(liftProtocol.getErrorCode())); String errName = basLiftErr == null ? "鏈煡寮傚父" : basLiftErr.getErrName(); - BasLiftErrLog basLiftErrLog = new BasLiftErrLog( - null, // 缂栧彿 + BasLiftErrLog basLiftErrLog = new BasLiftErrLog(null, // 缂栧彿 wrkMast.getWrkNo(), // 宸ヤ綔鍙� now, // 鍙戠敓鏃堕棿 null, // 缁撴潫鏃堕棿 -- Gitblit v1.9.1