From a3457fec2098d42166adba326c1d7f197cb59b16 Mon Sep 17 00:00:00 2001 From: pang.jiabao <pang_jiabao@163.com> Date: 星期日, 27 四月 2025 08:28:00 +0800 Subject: [PATCH] 米多泉州rgv调度程序完成 --- src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 87 ++++++++++++------------------------------- 1 files changed, 24 insertions(+), 63 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 fa18b85..143e3a4 100644 --- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java @@ -1,26 +1,24 @@ 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.core.common.R; -import com.core.exception.CoolException; -import com.zy.asrs.entity.*; +import com.zy.asrs.entity.BasCircularShuttle; +import com.zy.asrs.entity.BasDevpPosition; +import com.zy.asrs.entity.BasRgv; +import com.zy.asrs.entity.WrkMast; import com.zy.asrs.service.BasCircularShuttleService; import com.zy.asrs.service.BasDevpPositionService; import com.zy.asrs.service.WrkMastService; -import com.zy.asrs.task.core.ReturnT; -import com.zy.asrs.task.escalationParam.RgvTaskReportingParam; -import com.zy.asrs.utils.PostMesDataUtils; import com.zy.asrs.utils.SortTheExecutionOfTheCarUtil; import com.zy.asrs.utils.TimeCalculatorUtils; -import com.zy.common.CodeRes; import com.zy.common.service.CommonService; -import com.zy.common.utils.HttpHandler; import com.zy.core.cache.MessageQueue; import com.zy.core.cache.SlaveConnection; -import com.zy.core.enums.*; +import com.zy.core.enums.RgvModeType; +import com.zy.core.enums.RgvStatusType; +import com.zy.core.enums.RgvTaskModeType; +import com.zy.core.enums.SlaveType; import com.zy.core.model.RgvSlave; import com.zy.core.model.Task; import com.zy.core.model.command.RgvCommand; @@ -34,7 +32,9 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import java.util.*; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; /** * 绔嬩綋浠撳簱WCS绯荤粺涓绘祦绋嬩笟鍔� @@ -98,7 +98,7 @@ */ public synchronized void updateStePositionNearby() { try { - List<WrkMast> wrkMasts = wrkMastService.selectList(new EntityWrapper<WrkMast>().eq("wrk_sts", 1L)); + List<WrkMast> wrkMasts = wrkMastService.selectList(new EntityWrapper<WrkMast>().eq("wrk_sts", 2L)); if (wrkMasts.isEmpty()) { return; } @@ -225,7 +225,7 @@ */ public synchronized void DevpTaskNoRun() { try { - List<WrkMast> wrkMasts = wrkMastService.selectList(new EntityWrapper<WrkMast>().eq("wrk_sts", 1L).orderBy("modi_time", true)); + List<WrkMast> wrkMasts = wrkMastService.selectList(new EntityWrapper<WrkMast>().eq("rgv_no", 0).orderBy("modi_time", true)); if (wrkMasts.isEmpty()) { return; } @@ -259,7 +259,7 @@ List<WrkMast> wrkMastlistA = new ArrayList<>(); List<WrkMast> wrkMastlistB = new ArrayList<>(); for (BasDevpPosition basDevpPosition : basDevpPositionsListUN) { - List<WrkMast> wrkMastList = wrkMastService.selectList(new EntityWrapper<WrkMast>().eq("sta_no", basDevpPosition.getDevNo()).eq("wrk_sts", 1L).orderBy("modi_time", true)); + List<WrkMast> wrkMastList = wrkMastService.selectList(new EntityWrapper<WrkMast>().eq("sta_no", basDevpPosition.getDevNo()).eq("rgv_no", 0).orderBy("modi_time", true)); for (WrkMast wrkMast : wrkMastList) { if (!Cools.isEmpty(wrkMast)) { if (SortTheExecutionOfTheCarUtil.devpNoSortbj(basDevpPositionsListUN, wrkMast.getSourceStaNo(), wrkMast.getStaNo())) { @@ -300,12 +300,11 @@ continue; } - List<WrkMast> wrkMasts = wrkMastService.selectList(new EntityWrapper<WrkMast>().eq("rgv_no", rgvProtocol.getRgvNo()).eq("wrk_sts", 2L)); + List<WrkMast> wrkMasts = wrkMastService.selectList(new EntityWrapper<WrkMast>().eq("rgv_no", rgvProtocol.getRgvNo())); if (!wrkMasts.isEmpty()) { continue; } - if (rgvProtocol != null - && rgvProtocol.modeType == RgvModeType.AUTO + if (rgvProtocol.modeType == RgvModeType.AUTO && (rgvProtocol.getStatusType() == RgvStatusType.IDLE || rgvProtocol.getStatusType() == RgvStatusType.ROAM) && rgvProtocol.getTaskNo1() == 0 && rgvProtocol.getAlarm() == 0) { @@ -331,8 +330,8 @@ rgvCommand.setAckFinish1((short) 0); // 宸ヤ綅1浠诲姟瀹屾垚纭浣� rgvCommand.setTaskNo1(wrkMast.getWrkNo().shortValue()); rgvCommand.setTaskMode1(RgvTaskModeType.FETCH_PUT); // 宸ヤ綅1浠诲姟妯″紡: 鍙栨斁璐� - rgvCommand.setSourceStaNo1(wrkMast.getSourceStaNo().shortValue()); //宸ヤ綅1璧风偣 - rgvCommand.setDestinationStaNo1(wrkMast.getStaNo().shortValue()); //宸ヤ綅1鐩爣绔欑偣 + rgvCommand.setSourceStaNo1(wrkMast.getRgvSstaNo().shortValue()); //宸ヤ綅1璧风偣 + rgvCommand.setDestinationStaNo1(wrkMast.getRgvDstaNo().shortValue()); //宸ヤ綅1鐩爣绔欑偣 rgvCommand.setCommand((short) 1); //宸ヤ綅1浠诲姟纭 if (!MessageQueue.offer(SlaveType.Rgv, rgvProtocol.getRgvNo(), new Task(2, rgvCommand))) { // @@ -341,7 +340,6 @@ } log.info("RGV鍛戒护涓嬪彂鎴愬姛锛孯GV鍙�={}锛屼换鍔℃暟鎹�={}", rgvId, JSON.toJSON(rgvCommand)); - wrkMast.setWrkSts(2L); wrkMast.setRgvNo(rgvProtocol.getRgvNo()); wrkMast.setAppeTime(new Date()); try { @@ -360,7 +358,7 @@ } //浠诲姟瀹屾垚 - public synchronized void rgvCompleteWrkMastSta() { + public synchronized void rgvCompleteWrkMastSta(int[] autoZ) { try { for (RgvSlave rgvSlave : slaveProperties.getRgv()) { RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgvSlave.getId()); @@ -381,10 +379,10 @@ && rgvProtocol.getModeType() == RgvModeType.AUTO && rgvProtocol.getTaskNo1() != 0 ) { -// log.info("{}鍙峰皬杞︾瓑寰厀cs纭锛岀姸鎬亄}锛屽弬鏁皗}",rgvProtocol.getRgvNo(),rgvProtocol.getStatusType(),rgvProtocol); + log.info("{}鍙峰皬杞︾瓑寰厀cs纭锛岀姸鎬亄}锛屽弬鏁皗}",rgvProtocol.getRgvNo(),rgvProtocol.getStatusType(),rgvProtocol); WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("wrk_no", rgvProtocol.getTaskNo1().longValue())); - if (Cools.isEmpty(wrkMast) || !wrkMast.getWrkSts().equals(2L)) { - log.error("鏈煡鍒板皬杞︽墽琛屼换鍔℃垨鑰呮墽琛屼换鍔$姸鎬佷笉绗﹀悎锛�" + wrkMast); + if (Cools.isEmpty(wrkMast) && (wrkMast.getWrkSts() == 2 || wrkMast.getWrkSts() == 15) && (wrkMast.getRgvNo() == 0 || wrkMast.getRgvNo() > 10)) { + log.error("鏈煡鍒板皬杞︽墽琛屼换鍔℃垨鑰呮墽琛屼换鍔$姸鎬佷笉绗﹀悎锛�" + rgvProtocol.getTaskNo1()); continue; } boolean rgvComplete = rgvComplete(rgvProtocol.getRgvNo()); @@ -392,46 +390,9 @@ log.error("灏忚溅澶嶄綅澶辫触锛屽皬杞﹀彿{}锛�", rgvProtocol.getRgvNo()); break; } - wrkMast.setWrkSts(3L); + wrkMast.setRgvNo(10+rgvProtocol.getRgvNo()); Date now = new Date(); - wrkMast.setAppeTime(now); - try{ - try{ - if (reportSwitch){ - RgvTaskReportingParam rgvTaskReportingParam = new RgvTaskReportingParam(wrkMast); - ReturnT<String> result = new PostMesDataUtils().postMesDataWcs(wmsUrl, wmsOutPath, rgvTaskReportingParam); - if (result.getCode()==200){ - wrkMast.setWrkSts(4L); - wrkMast.setAppeTime(now); - wrkMastService.updateById(wrkMast); - continue; - }else { - log.error("宸ヤ綔鍙�"+wrkMast.getWrkNo()+"浠诲姟瀹屾垚淇℃伅涓婁紶澶勭悊澶辫触"); - } - } else { - //娴嬭瘯鐢� - wrkMast.setWrkSts(4L); - wrkMast.setAppeTime(now); - wrkMastService.updateById(wrkMast); - if (reportSwitchAuto) { - WrkMast wrkMast1 = new WrkMast(); - int workNo = commonService.getWorkNo(0); - wrkMast1.setWrkNo((long) workNo); - wrkMast1.setSourceStaNo(wrkMast.getSourceNoCs()); - wrkMast1.setStaNo(wrkMast.getStaNoCs()); - wrkMast1.setWrkSts(1L); - wrkMast1.setIoType(1); - wrkMast1.setModiTime(now); - wrkMast1.setAppeTime(now); - wrkMast1.setMemo("娴嬭瘯鏁版嵁"); - wrkMastService.insert(wrkMast1); - } - continue; - } - } catch (Exception e){ - log.error("宸ヤ綔鍙�"+wrkMast.getWrkNo()+"浠诲姟瀹屾垚淇℃伅涓婁紶澶勭悊澶辫触锛屽紓甯镐俊鎭細"+e); - } - } catch (Exception e){} + wrkMast.setModiTime(now); wrkMastService.updateById(wrkMast); } } -- Gitblit v1.9.1