From 4747e5dcb4066161b42a7a54cab542949ad5826c Mon Sep 17 00:00:00 2001 From: 1 <1> Date: 星期一, 29 九月 2025 13:36:00 +0800 Subject: [PATCH] #和得服务器 --- src/main/java/com/zy/asrs/controller/RgvController.java | 123 ++++++++++++++++++++++------------------ 1 files changed, 67 insertions(+), 56 deletions(-) diff --git a/src/main/java/com/zy/asrs/controller/RgvController.java b/src/main/java/com/zy/asrs/controller/RgvController.java index 085fc48..380b8ca 100644 --- a/src/main/java/com/zy/asrs/controller/RgvController.java +++ b/src/main/java/com/zy/asrs/controller/RgvController.java @@ -22,6 +22,7 @@ import com.zy.core.cache.SlaveConnection; import com.zy.core.enums.RgvModeType; import com.zy.core.enums.RgvTaskModeType; +import com.zy.core.enums.RgvTaskStatusType; import com.zy.core.enums.SlaveType; import com.zy.core.model.RgvSlave; import com.zy.core.model.Task; @@ -89,16 +90,16 @@ if (rgvProtocol == null) continue; vo.setStatusType(rgvProtocol.modeType.desc); // 妯″紡鐘舵�� -// vo.setStatus(rgvProtocol.getMode().desc); // 鐘舵�� + vo.setStatus(String.valueOf(rgvProtocol.getMode())); // 鐘舵�� vo.setWorkNo1(rgvProtocol.getTaskNo1()); // 宸ヤ綅1浠诲姟鍙� vo.setStatus1(rgvProtocol.getStatusType1().desc); // 宸ヤ綅1鐘舵�� vo.setLoading1(rgvProtocol.getLoaded1() ? "鏈夌墿" : "鏃犵墿"); // 宸ヤ綅1鏈夌墿 vo.setRgvPos(rgvProtocol.getRgvPos()); - vo.setRgvPos1(rgvProtocol.getRgvPosI()); + vo.setRgvPos1(rgvProtocol.getRgvPosI2()); vo.setWalkPos(Objects.equals(rgvProtocol.getWalkPos(), 1) ? "鍦ㄥ畾浣�" : "涓嶅湪瀹氫綅"); vo.setPakMk(rgvThread.isPakMk() ? "鏃犻攣" : "閿佸畾"); vo.setWorkNo2(rgvProtocol.getTaskNo2()); // 宸ヤ綅2浠诲姟鍙� - vo.setStatus2(rgvProtocol.getStatusType2().desc); // 宸ヤ綅2鐘舵�� +// vo.setStatus2(rgvProtocol.getStatusType2().desc); // 宸ヤ綅2鐘舵�� vo.setLoading2(rgvProtocol.getLoaded2() ? "鏈夌墿" : "鏃犵墿"); // 宸ヤ綅2鏈夌墿 // --- 閬嶅巻 errX 瀛楁鐢熸垚 warnCode 鍜� alarm --- @@ -152,22 +153,11 @@ continue; } - vo.setWorkNo(rgvProtocol.getTaskNo1()); // 浠诲姟鍙� - if (rgvProtocol.getTaskNo1()>0) { - WrkMast wrkMast = wrkMastService.selectById(rgvProtocol.getTaskNo1()); - if (wrkMast != null) { - vo.setStatus(RgvStatusType.process(wrkMast.getIoType()).getDesc()); // 妯″紡鐘舵�� - vo.setSourceStaNo(wrkMast.getSourceStaNo$()); // 婧愮珯 - vo.setStaNo(wrkMast.getStaNo$()); // 鐩爣绔� - vo.setSourceLocNo(wrkMast.getSourceLocNo()); // 婧愬簱浣� - vo.setLocNo(wrkMast.getLocNo()); // 鐩爣搴撲綅 - } - } else { - vo.setStatus(rgvProtocol.modeType.equals(RgvModeType.AUTO)? rgvProtocol.modeType.desc: RgvModeType.HAND.desc); // 妯″紡鐘舵�� - } - vo.setXspeed(rgvProtocol.getXSpeed()); // 璧拌閫熷害锛坢/min) - vo.setXdistance(rgvProtocol.getXDistance()); // 璧拌璺濈(Km) - vo.setXduration(rgvProtocol.getXDuration()); // 璧拌鏃堕暱(H) + vo.setWorkNo1(rgvProtocol.getTaskNo1()); // 宸ヤ綅1宸ヤ綔鍙� + vo.setWorkNo2(rgvProtocol.getTaskNo2()); //宸ヤ綅2 宸ヤ綔鍙� + vo.setStaNo(String.valueOf(rgvProtocol.getRgvPosDestination())); //灏忚溅鐩爣绔� + vo.setStatus(rgvProtocol.modeType.equals(RgvModeType.AUTO)? rgvProtocol.modeType.desc: RgvModeType.HAND.desc); // 妯″紡鐘舵�� + } return R.ok().add(list); } @@ -195,15 +185,15 @@ RgvCommand command = new RgvCommand(); command.setRgvNo(param.getRgvNo()); // RGV缂栧彿 command.setAckFinish1(false); // 浠诲姟瀹屾垚纭浣� - command.setTaskNo1(0); // 宸ヤ綔鍙� + command.setTaskNo(0); // 宸ヤ綔鍙� command.setTaskMode1(RgvTaskModeType.FETCH_PUT); // 浠诲姟妯″紡: 鍙栨斁璐� command.setSourceStaNo1(param.getSourceStaNo1()); // 婧愮珯 - command.setDestinationStaNo1(param.getStaNo1()); // 鐩爣绔� +// command.setDestinationStaNo1(param.getStaNo1()); // 鐩爣绔� command.setAckFinish2(false); // 浠诲姟瀹屾垚纭浣� command.setTaskNo2(0); // 宸ヤ綔鍙� command.setTaskMode2(RgvTaskModeType.FETCH_PUT); // 浠诲姟妯″紡: 鍙栨斁璐� command.setSourceStaNo2(param.getSourceStaNo2()); // 婧愮珯 - command.setDestinationStaNo2(param.getStaNo2()); // 鐩爣绔� +// command.setDestinationStaNo2(param.getStaNo2()); // 鐩爣绔� command.setCommand(true); return rgvControl(command)? R.ok(): R.error(); @@ -214,16 +204,17 @@ public R rgvFetch(RgvOperatorParam param){ RgvCommand command = new RgvCommand(); command.setRgvNo(param.getRgvNo()); // RGV缂栧彿 - command.setAckFinish1(false); // 浠诲姟瀹屾垚纭浣� - command.setTaskNo1(0); // 宸ヤ綔鍙� - command.setTaskMode1(RgvTaskModeType.FETCH); // 浠诲姟妯″紡: 鍙栬揣 - command.setSourceStaNo1(param.getSourceStaNo1()); // 婧愮珯 - command.setDestinationStaNo1(param.getStaNo1()); // 鐩爣绔� - command.setAckFinish2(false); // 浠诲姟瀹屾垚纭浣� - command.setTaskNo2( 0); // 宸ヤ綔鍙� - command.setTaskMode2(RgvTaskModeType.FETCH); // 浠诲姟妯″紡: 鍙栨斁璐� - command.setSourceStaNo2(param.getSourceStaNo2()); // 婧愮珯 - command.setDestinationStaNo2(param.getStaNo2()); // 鐩爣绔� + command.setWrkTaskPri(param.getWorkSta()); //鎵ц宸ヤ綅 + command.setTaskNo(Math.toIntExact(param.getWorkNo())); // 宸ヤ綔鍙� + command.setTaskStatus(RgvTaskStatusType.FETCH); // 浠诲姟妯″紡: 鍙栬揣 + command.setTargetPosition(Integer.valueOf(param.getStaNo())); // 鐩爣绔� +// command.setTaskMode2(RgvTaskModeType.FETCH); // 浠诲姟妯″紡: 鍙栨斁璐� +// command.setAckFinish1(false); // 浠诲姟瀹屾垚纭浣� +// command.setSourceStaNo1(param.getSourceStaNo1()); // 婧愮珯 +// command.setAckFinish2(false); // 浠诲姟瀹屾垚纭浣� +// command.setTaskNo2( 0); // 宸ヤ綔鍙� +// command.setSourceStaNo2(param.getSourceStaNo2()); // 婧愮珯 +// command.setDestinationStaNo2(param.getStaNo2()); // 鐩爣绔� command.setCommand(true); return rgvControl(command)? R.ok(): R.error(); @@ -234,16 +225,17 @@ public R rgvPut(RgvOperatorParam param){ RgvCommand command = new RgvCommand(); command.setRgvNo(param.getRgvNo()); // RGV缂栧彿 - command.setAckFinish1(false); // 浠诲姟瀹屾垚纭浣� - command.setTaskNo1(0); // 宸ヤ綔鍙� - command.setTaskMode1(RgvTaskModeType.PUT); // 浠诲姟妯″紡: 鏀捐揣 - command.setSourceStaNo1(param.getSourceStaNo1()); // 婧愮珯 - command.setDestinationStaNo1(param.getStaNo1()); // 鐩爣绔� - command.setAckFinish2(false); // 浠诲姟瀹屾垚纭浣� - command.setTaskNo2( 0); // 宸ヤ綔鍙� - command.setTaskMode2(RgvTaskModeType.FETCH_PUT); // 浠诲姟妯″紡: 鍙栨斁璐� - command.setSourceStaNo2(param.getSourceStaNo2()); // 婧愮珯 - command.setDestinationStaNo2(param.getStaNo2()); // 鐩爣绔� + command.setWrkTaskPri(param.getWorkSta()); //鎵ц宸ヤ綅 + command.setTaskNo(Math.toIntExact(param.getWorkNo())); // 宸ヤ綔鍙� + command.setTaskStatus(RgvTaskStatusType.PUT); // 浠诲姟妯″紡: 鍙栬揣 + command.setTargetPosition(Integer.valueOf(param.getStaNo())); // 鐩爣绔� +// command.setAckFinish1(false); // 浠诲姟瀹屾垚纭浣� +// command.setSourceStaNo1(param.getSourceStaNo1()); // 婧愮珯 +// command.setAckFinish2(false); // 浠诲姟瀹屾垚纭浣� +// command.setTaskNo2( 0); // 宸ヤ綔鍙� +// command.setTaskMode2(RgvTaskModeType.FETCH); // 浠诲姟妯″紡: 鍙栨斁璐� +// command.setSourceStaNo2(param.getSourceStaNo2()); // 婧愮珯 +// command.setDestinationStaNo2(param.getStaNo2()); // 鐩爣绔� command.setCommand(true); return rgvControl(command)? R.ok(): R.error(); @@ -257,7 +249,7 @@ RgvCommand command = new RgvCommand(); command.setRgvNo(param.getRgvNo()); // RGV缂栧彿 command.setAckFinish1(true); // 浠诲姟瀹屾垚纭浣� - command.setTaskNo1(0); // 宸ヤ綔鍙� +// command.setTaskNo1(0); // 宸ヤ綔鍙� command.setTaskMode1(RgvTaskModeType.NONE); // 浠诲姟妯″紡 command.setSourceStaNo1((short) 0); // 婧愮珯 command.setDestinationStaNo1((short) 0); // 鐩爣绔� @@ -279,19 +271,12 @@ } RgvCommand command = new RgvCommand(); command.setRgvNo(param.getRgvNo()); // RGV缂栧彿 - command.setAckFinish1(true); // 浠诲姟瀹屾垚纭浣� - command.setTaskNo1( 0); // 宸ヤ綔鍙� - command.setTaskMode1(RgvTaskModeType.NONE); // 浠诲姟妯″紡 - command.setSourceStaNo1((short) 0); // 婧愮珯 - command.setDestinationStaNo1((short) 0); // 鐩爣绔� - command.setAckFinish2(true); // 浠诲姟瀹屾垚纭浣� - command.setTaskNo2(0); // 宸ヤ綔鍙� - command.setTaskMode2(RgvTaskModeType.NONE); // 浠诲姟妯″紡 - command.setSourceStaNo2((short) 0); // 婧愮珯 - command.setDestinationStaNo2((short) 0); // 鐩爣绔� - command.setCommand(true); + command.setWrkTaskPri(0); //鎵ц宸ヤ綅 + command.setTaskNo(Math.toIntExact(0)); // 宸ヤ綔鍙� + command.setTaskStatus((short)0); // 浠诲姟妯″紡: 鍙栬揣 + command.setTargetPosition(0); // 鐩爣绔� - return rgvControl(command)? R.ok(): R.error(); + return rgvClear(command)? R.ok(): R.error(); } @ManagerAuth(memo = "鎵嬪姩澶嶄綅") @@ -346,7 +331,7 @@ if (rgvProtocol == null) { throw new CoolException("RGV涓嶅湪绾�"); } - if (MessageQueue.offer(SlaveType.Rgv, rgv.getId(), new Task(4, command))) { + if (MessageQueue.offer(SlaveType.Rgv, rgv.getId(), new Task(2, command))) { return true; } else { throw new CoolException("鍛戒护涓嬪彂澶辫触"); @@ -356,4 +341,30 @@ return false; } + private boolean rgvClear(RgvCommand command){ + if (command.getRgvNo() == null) { + throw new CoolException("璇烽�夋嫨RGV"); + } + for (RgvSlave rgv : slaveProperties.getRgv()) { + // 鑾峰彇RGV淇℃伅 + if (command.getRgvNo().equals(rgv.getId())) { + RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgv.getId()); + if (rgvThread == null) { + throw new CoolException("RGV涓嶅湪绾�"); + } + RgvProtocol rgvProtocol = rgvThread.getRgvProtocol(); + if (rgvProtocol == null) { + throw new CoolException("RGV涓嶅湪绾�"); + } + if (MessageQueue.offer(SlaveType.Rgv, rgv.getId(), new Task(3, command))) { + return true; + } else { + throw new CoolException("鍛戒护涓嬪彂澶辫触"); + } + } + } + return false; + + } + } \ No newline at end of file -- Gitblit v1.9.1