From 09ce6308a5dd9fd8572b8d66adcebf072912a4a3 Mon Sep 17 00:00:00 2001 From: Junjie <fallin.jie@qq.com> Date: 星期二, 31 十月 2023 08:21:50 +0800 Subject: [PATCH] # --- src/main/java/com/zy/asrs/controller/CrnController.java | 110 +++++++++++++++++++++++++++++++++++++++---------------- 1 files changed, 78 insertions(+), 32 deletions(-) diff --git a/src/main/java/com/zy/asrs/controller/CrnController.java b/src/main/java/com/zy/asrs/controller/CrnController.java index 0c202b1..2d23c46 100644 --- a/src/main/java/com/zy/asrs/controller/CrnController.java +++ b/src/main/java/com/zy/asrs/controller/CrnController.java @@ -14,16 +14,18 @@ import com.zy.asrs.domain.vo.CrnStateTableVo; import com.zy.asrs.entity.BasCrnError; import com.zy.asrs.entity.BasCrnp; +import com.zy.asrs.entity.LocMast; import com.zy.asrs.entity.WrkMast; import com.zy.asrs.mapper.BasCrnErrorMapper; import com.zy.asrs.service.BasCrnpService; +import com.zy.asrs.service.LocMastService; import com.zy.asrs.service.WrkMastService; import com.zy.asrs.service.impl.MainServiceImpl; +import com.zy.asrs.utils.VersionUtils; import com.zy.core.CrnThread; 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; @@ -35,12 +37,15 @@ import com.zy.core.properties.SystemProperties; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import java.util.ArrayList; +import java.util.HashMap; import java.util.List; +import java.util.Map; /** * 鍫嗗灈鏈烘帴鍙� @@ -61,6 +66,8 @@ private BasCrnpService basCrnpService; @Autowired private MainServiceImpl mainService; + @Autowired + private LocMastService locMastService; @ManagerAuth(memo = "杩涜涓殑鍛戒护") @@ -110,31 +117,20 @@ 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.setXOrigin(crnProtocol.getBay()==1?"鏄�":"鍚�"); // 璧拌鍘熺偣 - vo.setYOrigin(crnProtocol.getLevel()==1?"鏄�":"鍚�"); // 鍗囬檷鍘熺偣 - vo.setForkOffset(crnProtocol.getForkPosType().desc); // 璐у弶浣嶇疆 - vo.setXLocation(crnProtocol.getWalkPos() == 1?"鏄�":"鍚�"); // 璧拌瀹氫綅 - vo.setYLocation(crnProtocol.getLiftPosType().equals(CrnLiftPosType.NONE)?"鍚�":"鏄�"); // 鍗囬檷瀹氫綅 -// vo.setStop(crnProtocol.getCrnError1().controlStop||crnProtocol.getCrnError1().mainStop||crnProtocol.getCrnError1().remoteStop?"鏄�":"鍚�"); // 鎬ュ仠 - vo.setWarnCode(String.valueOf(crnProtocol.getAlarm1())); // 寮傚父鐮� + vo.setForkOffset(crnProtocol.getForkPosType().desc); // 璐у弶浣嶇疆 + vo.setLiftPos(crnProtocol.getLiftPosType().desc); + vo.setWalkPos(crnProtocol.getWalkPos()==1?"涓嶅湪瀹氫綅":"鍦ㄥ畾浣�"); + 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); } @@ -160,10 +156,6 @@ } vo.setWorkNo(crnProtocol.getTaskNo()); // 浠诲姟鍙� - BasCrnError crnError = basCrnErrorMapper.selectById(crnProtocol.getAlarm1()); - if (null != crnError) { - vo.setError(crnError.getErrName()); - } if (crnProtocol.getTaskNo()>0) { WrkMast wrkMast = wrkMastService.selectById(crnProtocol.getTaskNo()); if (wrkMast != null) { @@ -178,7 +170,7 @@ } vo.setXspeed(crnProtocol.getXSpeed()); // 璧拌閫熷害锛坢/min) vo.setYspeed(crnProtocol.getYSpeed()); // 鍗囬檷閫熷害锛坢/min) - vo.setZspeed(crnProtocol.getZSpeed()); // 鍙夌墮閫熷害锛坢/min) +// vo.setZspeed(crnProtocol.getZSpeed()); // 鍙夌墮閫熷害锛坢/min) vo.setXdistance(crnProtocol.getXDistance()); // 璧拌璺濈(Km) vo.setYdistance(crnProtocol.getYDistance()); // 鍗囬檷璺濈(Km) vo.setXduration(crnProtocol.getXDuration()); // 璧拌鏃堕暱(H) @@ -200,6 +192,20 @@ return R.ok().add(str.toString()); } + + @GetMapping("/demo/status") + public R demoStatus(){ + List<Map<String, Object>> res = new ArrayList<>(); + for (CrnSlave crnSlave : slaveProperties.getCrn()) { + Map<String, Object> map = new HashMap<>(); + map.put("crnNo", crnSlave.getId()); + map.put("demo", crnSlave.getDemo()); + res.add(map); + } + return R.ok().add(res); + } + + @PostMapping("/demo/switch") @ManagerAuth(memo = "鍫嗗灈鏈烘紨绀�") public R crnDemo(CrnDemoParam param) throws InterruptedException { @@ -213,9 +219,15 @@ return R.error("鍙d护閿欒"); } Thread.sleep(200L); - mainService.crnDemoOfLocMove(param.getCrnId()); + for (CrnSlave crnSlave : slaveProperties.getCrn()) { + if (crnSlave.getId().equals(param.getCrnId())) { + crnSlave.setDemo(param.getOpt()); + } + } +// mainService.crnDemoOfLocMove(param.getCrnId()); return R.ok(); } + /****************************************************************/ @@ -236,7 +248,6 @@ command.setDestinationPosX(param.getRow()); // 鐩爣搴撲綅鎺� command.setDestinationPosY(param.getBay()); // 鐩爣搴撲綅鍒� command.setDestinationPosZ(param.getLev()); // 鐩爣搴撲綅灞� - staNoProcess(param, command); return crnControl(command)?R.ok():R.error(); } @@ -254,7 +265,6 @@ command.setDestinationPosX(param.getRow()); // 鐩爣搴撲綅鎺� command.setDestinationPosY(param.getBay()); // 鐩爣搴撲綅鍒� command.setDestinationPosZ(param.getLev()); // 鐩爣搴撲綅灞� - staNoProcess(param, command); return crnControl(command)?R.ok():R.error(); } @@ -272,7 +282,28 @@ command.setDestinationPosX(param.getRow()); // 鐩爣搴撲綅鎺� command.setDestinationPosY(param.getBay()); // 鐩爣搴撲綅鍒� command.setDestinationPosZ(param.getLev()); // 鐩爣搴撲綅灞� - staNoProcess(param, command); + LocMast sourceLoc = locMastService.selectOne(new EntityWrapper<LocMast>().eq("row1", command.getSourcePosX()) + .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); + return crnControl(command)?R.ok():R.error(); + } + + @ManagerAuth(memo = "绉昏溅") + @PostMapping("/operator/steMove") + public R crnSteMove(CrnOperatorParam param){ + CrnCommand command = new CrnCommand(); + command.setCrnNo(param.getCrnNo()); // 鍫嗗灈鏈虹紪鍙� + command.setTaskNo((short) 0); // 宸ヤ綔鍙� + command.setAckFinish((short) 0); // 浠诲姟瀹屾垚纭浣� + command.setTaskMode(CrnTaskModeType.STE_MOVE); // 浠诲姟妯″紡 + command.setSourcePosX(param.getSourceRow()); // 婧愬簱浣嶆帓 + command.setSourcePosY(param.getSourceBay()); // 婧愬簱浣嶅垪 + command.setSourcePosZ(param.getSourceLev()); // 婧愬簱浣嶅眰 + command.setDestinationPosX(param.getRow()); // 鐩爣搴撲綅鎺� + command.setDestinationPosY(param.getBay()); // 鐩爣搴撲綅鍒� + command.setDestinationPosZ(param.getLev()); // 鐩爣搴撲綅灞� return crnControl(command)?R.ok():R.error(); } @@ -283,14 +314,13 @@ 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); // 婧愬簱浣嶅眰 command.setDestinationPosX(param.getStaNo()); // 鐩爣搴撲綅鎺� command.setDestinationPosY((short) 0); // 鐩爣搴撲綅鍒� command.setDestinationPosZ((short) 1); // 鐩爣搴撲綅灞� - staNoProcess(param, command); return crnControl(command)?R.ok():R.error(); } @@ -349,6 +379,21 @@ @ManagerAuth(memo = "浠诲姟瀹屾垚") @PostMapping("/operator/taskComplete") public R crnTaskComplete(CrnOperatorParam param){ + + // 鑾峰彇鍫嗗灈鏈轰俊鎭� + CrnThread crnThread = (CrnThread) SlaveConnection.get(SlaveType.Crn, param.getCrnNo()); + if (crnThread == null) { + return R.error(); + } + CrnProtocol crnProtocol = crnThread.getCrnProtocol(); + if (crnProtocol == null) { + return R.error(); + } + + //鍫嗗灈鏈虹姸鎬佷笉鏄瓑寰匴CS纭鏃讹紝涓嶈兘涓嬪彂纭浣� + if (!crnProtocol.getStatusType().equals(com.zy.core.enums.CrnStatusType.WAITING)){ + return R.error("鍫嗗灈鏈轰笉鏄瓑寰匴CS纭鐘舵��"); + } CrnCommand command = new CrnCommand(); command.setCrnNo(param.getCrnNo()); // 鍫嗗灈鏈虹紪鍙� command.setTaskNo((short) 0); // 宸ヤ綔鍙� @@ -407,6 +452,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))) { -- Gitblit v1.9.1