From a454c4e3e56ed63a7676348f260a240fa18be481 Mon Sep 17 00:00:00 2001 From: lty <876263681@qq.com> Date: 星期四, 05 六月 2025 14:02:31 +0800 Subject: [PATCH] # --- src/main/java/com/zy/asrs/controller/CrnController.java | 101 ++++++++++++++++++++++++++------------------------ 1 files changed, 53 insertions(+), 48 deletions(-) diff --git a/src/main/java/com/zy/asrs/controller/CrnController.java b/src/main/java/com/zy/asrs/controller/CrnController.java index d1f80c2..387ea02 100644 --- a/src/main/java/com/zy/asrs/controller/CrnController.java +++ b/src/main/java/com/zy/asrs/controller/CrnController.java @@ -26,7 +26,6 @@ import com.zy.core.cache.MessageQueue; import com.zy.core.cache.OutputQueue; import com.zy.core.cache.SlaveConnection; -import com.zy.core.enums.CrnLiftPosType; import com.zy.core.enums.CrnModeType; import com.zy.core.enums.CrnTaskModeType; import com.zy.core.enums.SlaveType; @@ -36,6 +35,7 @@ import com.zy.core.model.protocol.CrnProtocol; import com.zy.core.properties.SlaveProperties; import com.zy.core.properties.SystemProperties; +import com.zy.core.thread.RgvThread; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; @@ -118,54 +118,23 @@ continue; } vo.setWorkNo(crnProtocol.getTaskNo()); // 浠诲姟鍙� -// if (crnProtocol.getTaskNo()>0) { -// WrkMast wrkMast = wrkMastService.selectById(crnProtocol.getTaskNo()); -// if (wrkMast != null) { -// vo.setStatusType(CrnStatusType.process(wrkMast.getIoType()).getDesc()); // 妯″紡鐘舵�� -// } -// } else { -// -// } vo.setStatusType(crnProtocol.modeType.desc); // 妯″紡鐘舵�� - if (crnProtocol.getTaskFinish() == 1) { - vo.setStatus("绛夊緟纭"); - } else { - vo.setStatus(crnProtocol.getStatusType().desc); // 鐘舵�� - } + vo.setStatus(crnProtocol.getStatusType().desc); // 鐘舵�� vo.setLoading(crnProtocol.getLoaded()==1?"鏈夌墿":"鏃犵墿"); // 鏈夌墿 vo.setBay(crnProtocol.getBay()); // 鍒� vo.setLev(crnProtocol.getLevel()); // 灞� - vo.setLiftPos(crnProtocol.getLiftPosType().desc); - if (crnProtocol.getPlatformHigh()) { - vo.setSitePos("绔欏彴楂樹綅"); - } - if (crnProtocol.getPlatformLow()) { - vo.setSitePos("绔欏彴楂樹綅"); - } - vo.setForkOffset(crnProtocol.getForkPosType().desc); // 璐у弶浣嶇疆 - vo.setXLocation(crnProtocol.getWalkPos() == 1?"鏄�":"鍚�"); // 璧拌瀹氫綅 - vo.setYLocation(crnProtocol.getLiftPosType().equals(CrnLiftPosType.NONE)?"鍚�":"鏄�"); // 鍗囬檷瀹氫綅 - if (crnProtocol.getAlarm1() > 0) { - BasCrnError crnError = basCrnErrorMapper.selectById(crnProtocol.getAlarm1()); - vo.setAlarm1(crnError==null?"鏈煡寮傚父":crnError.getErrName()); - } - if (crnProtocol.getAlarm2() > 0) { - BasCrnError crnError = basCrnErrorMapper.selectById(crnProtocol.getAlarm2()); - vo.setAlarm2(crnError==null?"鏈煡寮傚父":crnError.getErrName()); - } - if (crnProtocol.getAlarm3() > 0) { - BasCrnError crnError = basCrnErrorMapper.selectById(crnProtocol.getAlarm3()); - vo.setAlarm3(crnError==null?"鏈煡寮傚父":crnError.getErrName()); - } - if (crnProtocol.getAlarm4() > 0) { - BasCrnError crnError = basCrnErrorMapper.selectById(crnProtocol.getAlarm4()); - vo.setAlarm4(crnError==null?"鏈煡寮傚父":crnError.getErrName()); - } -// vo.setAlarm1(String.valueOf(crnProtocol.getAlarm1())); -// vo.setAlarm2(String.valueOf(crnProtocol.getAlarm2())); -// vo.setAlarm3(String.valueOf(crnProtocol.getAlarm3())); -// vo.setAlarm4(String.valueOf(crnProtocol.getAlarm4())); + vo.setForkOffset(crnProtocol.getForkPosType().desc); // 璐у弶浣嶇疆 + vo.setLiftPos(crnProtocol.getLiftPosType().desc); + vo.setWalkPos(crnProtocol.getWalkPos()==1?"涓嶅湪瀹氫綅":"鍦ㄥ畾浣�"); + if(crnProtocol.getAlarm() == 10){ + crnProtocol.setAlarm((short) 0); + } + vo.setWarnCode(String.valueOf(crnProtocol.getAlarm())); + if (crnProtocol.getAlarm() > 0) { + BasCrnError crnError = basCrnErrorMapper.selectById(crnProtocol.getAlarm()); + vo.setAlarm(crnError==null?"鏈煡寮傚父":crnError.getErrName()); + } } return R.ok().add(list); } @@ -283,6 +252,8 @@ command.setDestinationPosX(param.getRow()); // 鐩爣搴撲綅鎺� command.setDestinationPosY(param.getBay()); // 鐩爣搴撲綅鍒� command.setDestinationPosZ(param.getLev()); // 鐩爣搴撲綅灞� + boolean locSts = isLocSts(param.getRow().toString(), param.getBay().toString(), param.getLev().toString()); + command.setTraySize(locSts); return crnControl(command)?R.ok():R.error(); } @@ -300,6 +271,8 @@ command.setDestinationPosX(param.getRow()); // 鐩爣搴撲綅鎺� command.setDestinationPosY(param.getBay()); // 鐩爣搴撲綅鍒� command.setDestinationPosZ(param.getLev()); // 鐩爣搴撲綅灞� + boolean locSts = isLocSts(param.getSourceRow().toString(), param.getSourceBay().toString(), param.getSourceLev().toString()); + command.setTraySize(locSts); return crnControl(command)?R.ok():R.error(); } @@ -321,7 +294,11 @@ .eq("bay1", command.getSourcePosY()).eq("lev1", command.getSourcePosZ())); LocMast loc = locMastService.selectOne(new EntityWrapper<LocMast>().eq("row1", command.getDestinationPosX()) .eq("bay1", command.getDestinationPosY()).eq("lev1", command.getDestinationPosZ())); - VersionUtils.locMoveCheckLocType(sourceLoc, loc); + if (sourceLoc.getLocType1() != loc.getLocType1()){ + return R.error("搴撲綅绫诲瀷涓嶄竴鑷�"); + } + command.setTraySize(loc.getLocType1() == 2); +// VersionUtils.locMoveCheckLocType(sourceLoc, loc); return crnControl(command)?R.ok():R.error(); } @@ -332,7 +309,7 @@ command.setCrnNo(param.getCrnNo()); // 鍫嗗灈鏈虹紪鍙� command.setTaskNo((short) 0); // 宸ヤ綔鍙� command.setAckFinish((short) 0); // 浠诲姟瀹屾垚纭浣� - command.setTaskMode(CrnTaskModeType.SITE_MOVE); // 浠诲姟妯″紡 + command.setTaskMode(CrnTaskModeType.LOC_MOVE); // 浠诲姟妯″紡 command.setSourcePosX(param.getSourceStaNo()); // 婧愬簱浣嶆帓 command.setSourcePosY((short) 0); // 婧愬簱浣嶅垪 command.setSourcePosZ((short) 1); // 婧愬簱浣嶅眰 @@ -411,6 +388,8 @@ return crnControl(command)?R.ok():R.error(); } + + // @ManagerAuth(memo = "鏆傚仠") // @PostMapping("/operator/pause") // public R crnPause(CrnOperatorParam param){ @@ -429,8 +408,18 @@ if (param.getCrnNo() == null) { throw new CoolException("璇烽�夋嫨鍫嗗灈鏈�"); } - MessageQueue.clear(SlaveType.Crn, param.getCrnNo()); - return R.ok("娓呴櫎鍛戒护鎴愬姛"); + CrnCommand command = new CrnCommand(); + command.setCrnNo(param.getCrnNo()); // 鍫嗗灈鏈虹紪鍙� + command.setTaskNo((short) 0); // 宸ヤ綔鍙� + command.setAckFinish((short) 0); // 浠诲姟瀹屾垚纭浣� + command.setTaskMode(CrnTaskModeType.NONE); // 浠诲姟妯″紡 + command.setSourcePosX((short) 0); // 婧愬簱浣嶆帓 + command.setSourcePosY((short) 0); // 婧愬簱浣嶅垪 + command.setSourcePosZ((short) 0); // 婧愬簱浣嶅眰 + command.setDestinationPosX((short) 0); // 鐩爣搴撲綅鎺� + command.setDestinationPosY((short) 0); // 鐩爣搴撲綅鍒� + command.setDestinationPosZ((short) 0); // 鐩爣搴撲綅灞� + return crnControl(command)?R.ok():R.error(); } @ManagerAuth(memo = "鎵嬪姩澶嶄綅") @@ -455,6 +444,7 @@ crnCommand.setCrnNo(crn.getId()); // 鍫嗗灈鏈虹紪鍙� crnCommand.setTaskMode(CrnTaskModeType.CLEAR); crnCommand.setAckFinish((short) 0); // 浠诲姟瀹屾垚纭浣� + crnCommand.setCommand((short) 0); // 浠诲姟瀹屾垚纭浣� // 寤舵椂鍙戦�� Thread.sleep(1000L); if (MessageQueue.offer(SlaveType.Crn, crn.getId(), new Task(2, crnCommand))) { @@ -525,5 +515,20 @@ } } + private boolean isLocSts(String row,String bay,String lev){ + int rowInt = Integer.parseInt(row); + int bayInt = Integer.parseInt(bay); + int levInt = Integer.parseInt(lev); + String loc = String.format("%2d",rowInt)+String.format("%3d",bayInt)+String.format("%2d",levInt); + LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no", loc)); + if (Cools.isEmpty(locMast)){ + return false; + } + if (locMast.getLocType1() == 2){ + return true; + } + return false; + } + } -- Gitblit v1.9.1