From 5aa831dffdfb0ca524362e8d649c28babc681ece Mon Sep 17 00:00:00 2001 From: cpT <1@123> Date: 星期一, 30 六月 2025 16:43:18 +0800 Subject: [PATCH] #改造 --- src/main/java/com/zy/asrs/controller/RgvController.java | 185 ++++++++++++++++++++++++++++++++++++++++++---- 1 files changed, 168 insertions(+), 17 deletions(-) diff --git a/src/main/java/com/zy/asrs/controller/RgvController.java b/src/main/java/com/zy/asrs/controller/RgvController.java index 4dca465..13e0f36 100644 --- a/src/main/java/com/zy/asrs/controller/RgvController.java +++ b/src/main/java/com/zy/asrs/controller/RgvController.java @@ -2,9 +2,12 @@ import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.core.annotations.ManagerAuth; +import com.core.common.Cools; import com.core.common.R; +import com.zy.asrs.domain.param.RingThroughParam; import com.zy.asrs.entity.BasDevpPosition; import com.zy.asrs.service.BasDevpPositionService; +import com.zy.core.cache.RgvErrCache; import com.zy.core.cache.RgvStatusCache; import com.zy.core.cache.SlaveConnection; import com.zy.core.cache.TaskProtocolCache; @@ -46,6 +49,7 @@ map2.put("rgvPos", rgvProtocol.getRgvPos()); map2.put("rgvPosDestination", rgvProtocol.getRgvPosDestination()); map2.put("loaded", rgvProtocol.getLoaded().equals((short)-1)? "鏈煡":rgvProtocol.getLoaded()==1? "鏈夌墿":"鏃犵墿"); + map2.put("errorRgv", RgvErrCache.getErrorDev(rgvProtocol.getRgvNo())); res.add(map2); } return R.ok().add(res); @@ -76,7 +80,7 @@ } @PostMapping("/run/del")//Take Put Walk - @ManagerAuth(memo = "灏忚溅琛岃蛋") + @ManagerAuth(memo = "娓呯┖浠诲姟") public R rgvRunDel(@RequestParam(defaultValue = "0") Integer rgvNo ) { if (rgvNo==null || rgvNo==0){ @@ -98,24 +102,41 @@ return R.ok("浠诲姟娓呯┖鎴愬姛"); } + @PostMapping("/run/del2")//Take Put Walk + @ManagerAuth(memo = "娓呴櫎浣滀笟鍚姩涓�") + public R rgvRunDel2(@RequestParam(defaultValue = "0") Integer rgvNo + ) { + if (rgvNo==null || rgvNo==0){ + return R.error("璇烽�夋嫨灏忚溅"); + } + RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgvNo); + try { + rgvThread.setWrkSign(); + } catch (Exception e) { + return R.error("娓呴櫎浣滀笟鍚姩涓け璐�"+e.getMessage()); + } + + return R.ok("浠诲姟娓呯┖鎴愬姛"); + } + @PostMapping("/run/walk")//Take Put Walk @ManagerAuth(memo = "灏忚溅琛岃蛋") public R rgvRunWalk(@RequestParam(defaultValue = "0") Integer rgvNo, - @RequestParam(defaultValue = "0") Integer taskNo, + @RequestParam(defaultValue = "9999") Integer taskNo, @RequestParam(defaultValue = "0") Integer rgvStaNoPut, @RequestParam(defaultValue = "0") Long rgvPosDestination ) { if (rgvNo==null || rgvNo==0){ return R.error("璇烽�夋嫨灏忚溅"); } - if (taskNo==null || taskNo==0){ - return R.error("浣滀笟鍙疯濉啓"); - } if ((rgvStaNoPut == null || rgvStaNoPut == 0) && (rgvPosDestination==null || rgvPosDestination==0L)){ return R.error("鐩爣绔欑偣璇峰~鍐�"); } if (rgvPosDestination == null || rgvPosDestination == 0){ BasDevpPosition basDevpPosition = basDevpPositionService.selectOne(new EntityWrapper<BasDevpPosition>().eq("DEV_NO", rgvStaNoPut)); + if (Cools.isEmpty(basDevpPosition)){ + return R.error("鐩爣绔欑偣涓嶅瓨鍦�"); + } rgvPosDestination = basDevpPosition.getPlcPosition(); } RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgvNo); @@ -149,15 +170,12 @@ @PostMapping("/run/put")//Take Put Walk @ManagerAuth(memo = "灏忚溅鏀捐揣") public R rgvPutWalk(@RequestParam(defaultValue = "0") Integer rgvNo, - @RequestParam(defaultValue = "0") Integer taskNo, + @RequestParam(defaultValue = "9999") Integer taskNo, @RequestParam(defaultValue = "0") Integer rgvStaNoPut, @RequestParam(defaultValue = "0") Long rgvPosDestination ) { if (rgvNo==null || rgvNo==0){ return R.error("璇烽�夋嫨灏忚溅"); - } - if (taskNo==null || taskNo==0){ - return R.error("浣滀笟鍙疯濉啓"); } if (rgvStaNoPut == null || rgvStaNoPut == 0){ return R.error("鐩爣绔欑偣璇峰~鍐�"); @@ -174,9 +192,14 @@ } BasDevpPosition basDevpPosition = basDevpPositionService.selectOne(new EntityWrapper<BasDevpPosition>().eq("DEV_NO", rgvStaNoPut)); + if (Cools.isEmpty(basDevpPosition)){ + return R.error("鐩爣绔欑偣涓嶅瓨鍦�"); + } //鎵ц issuedPut.setTaskNo(Long.valueOf(taskNo)); issuedPut.setTaskStatus(3); + issuedPut.setTargetPositionStaNo(basDevpPosition.getDevNo()); + issuedPut.setTargetPositionStaNoPlcId(basDevpPosition.getPlcId()); issuedPut.setTaskNoDirection(issuedPut.gettaskNoDirection$(issuedPut.getTaskNo(), issuedPut.getTaskStatus())); issuedPut.setTargetPosition(basDevpPosition.getPlcPosition()); issuedPut.setIsRunning(1); @@ -193,15 +216,12 @@ @PostMapping("/run/take")//Take Put Walk @ManagerAuth(memo = "灏忚溅鍙栬揣") public R rgvTakeWalk(@RequestParam(defaultValue = "0") Integer rgvNo, - @RequestParam(defaultValue = "0") Integer taskNo, + @RequestParam(defaultValue = "9999") Integer taskNo, @RequestParam(defaultValue = "0") Integer rgvStaNoTake, @RequestParam(defaultValue = "0") Long rgvPosDestination ) { if (rgvNo==null || rgvNo==0){ return R.error("璇烽�夋嫨灏忚溅"); - } - if (taskNo==null || taskNo==0){ - return R.error("浣滀笟鍙疯濉啓"); } if (rgvStaNoTake == null || rgvStaNoTake == 0){ return R.error("鍙栬揣绔欑偣璇峰~鍐�"); @@ -217,9 +237,14 @@ } BasDevpPosition basDevpPosition = basDevpPositionService.selectOne(new EntityWrapper<BasDevpPosition>().eq("DEV_NO", rgvStaNoTake)); + if (Cools.isEmpty(basDevpPosition)){ + return R.error("鍙栬揣绔欑偣涓嶅瓨鍦�"); + } //鎵ц issuedTake.setTaskNo(Long.valueOf(taskNo)); issuedTake.setTaskStatus(2); + issuedTake.setTargetPositionStaNo(basDevpPosition.getDevNo()); + issuedTake.setTargetPositionStaNoPlcId(basDevpPosition.getPlcId()); issuedTake.setTaskNoDirection(issuedTake.gettaskNoDirection$(issuedTake.getTaskNo(), issuedTake.getTaskStatus())); issuedTake.setTargetPosition(basDevpPosition.getPlcPosition()); issuedTake.setIsRunning(1); @@ -236,16 +261,13 @@ @PostMapping("/run/TakeAndPut")//Take Put Walk @ManagerAuth(memo = "灏忚溅鍙栬揣") public R rgvTakeAndPut(@RequestParam(defaultValue = "0") Integer rgvNo, - @RequestParam(defaultValue = "0") Integer taskNo, + @RequestParam(defaultValue = "9999") Integer taskNo, @RequestParam(defaultValue = "0") Integer rgvStaNoTake, @RequestParam(defaultValue = "0") Integer rgvStaNoPut, @RequestParam(defaultValue = "0") Long rgvPosDestination ) { if (rgvNo==null || rgvNo==0){ return R.error("璇烽�夋嫨灏忚溅"); - } - if (taskNo==null || taskNo==0){ - return R.error("浣滀笟鍙疯濉啓"); } if (rgvStaNoTake == null || rgvStaNoTake == 0){ return R.error("鍙栬揣绔欑偣璇峰~鍐�"); @@ -265,18 +287,28 @@ } BasDevpPosition basDevpPositionTake = basDevpPositionService.selectOne(new EntityWrapper<BasDevpPosition>().eq("DEV_NO", rgvStaNoTake)); + if (Cools.isEmpty(basDevpPositionTake)){ + return R.error("鍙栬揣绔欑偣涓嶅瓨鍦�"); + } //鎵ц issuedTake.setTaskNo(Long.valueOf(taskNo)); issuedTake.setTaskStatus(2); + issuedTake.setTargetPositionStaNo(basDevpPositionTake.getDevNo()); + issuedTake.setTargetPositionStaNoPlcId(basDevpPositionTake.getPlcId()); issuedTake.setTaskNoDirection(issuedTake.gettaskNoDirection$(issuedTake.getTaskNo(), issuedTake.getTaskStatus())); issuedTake.setTargetPosition(basDevpPositionTake.getPlcPosition()); issuedTake.setIsRunning(1); issuedTake.setDirection(basDevpPositionTake.getRgvSign()==1); BasDevpPosition basDevpPositionPut = basDevpPositionService.selectOne(new EntityWrapper<BasDevpPosition>().eq("DEV_NO", rgvStaNoPut)); + if (Cools.isEmpty(basDevpPositionPut)){ + return R.error("鐩爣绔欑偣涓嶅瓨鍦�"); + } //鎵ц issuedPut.setTaskNo(Long.valueOf(taskNo)); issuedPut.setTaskStatus(3); + issuedPut.setTargetPositionStaNo(basDevpPositionPut.getDevNo()); + issuedPut.setTargetPositionStaNoPlcId(basDevpPositionPut.getPlcId()); issuedPut.setTaskNoDirection(issuedPut.gettaskNoDirection$(issuedPut.getTaskNo(), issuedPut.getTaskStatus())); issuedPut.setTargetPosition(basDevpPositionPut.getPlcPosition()); issuedPut.setIsRunning(1); @@ -291,4 +323,123 @@ return R.ok("浠诲姟鐢熸垚鎴愬姛"); } + + @PostMapping("/run/delRgvTask")//Take Put Walk + @ManagerAuth(memo = "灏忚溅鍙栬揣") + public R rgvDelRgvTask(@RequestParam(defaultValue = "0") Integer rgvNo + ) { + if (rgvNo==null || rgvNo==0){ + return R.error("璇烽�夋嫨灏忚溅"); + } + + try { + RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgvNo); + rgvThread.setDelRgvTask(); + } catch (Exception e) { + return R.error("浠诲姟鐢熸垚澶辫触"+e.getMessage()); + } + + return R.ok("浠诲姟鐢熸垚鎴愬姛"); + } + + + + @PostMapping("/ring/through/rgv/position/data") +// @ManagerAuth(memo = "灏忚溅浣嶇疆淇℃伅") + public R ringThroughRgv(){ + List<RingThroughParam> result = new ArrayList<>(); + + ConcurrentHashMap<Integer, RgvProtocol> allRgvStatus = RgvStatusCache.getAllRgvStatus(); + for (RgvProtocol rgvProtocol : allRgvStatus.values()){ + RingThroughParam ringThroughParam = new RingThroughParam(); + + ringThroughParam.setIndex(rgvProtocol.getRgvNo()); +// ringThroughParam.setIndex(i); +// double[] doubles = Utils.RingThroughXY2(perimeter, NumUtils.GetRandomIntInRange(183)); +// double[] doubles = Utils.RingThroughXYRgv(perimeter, perimeter-rgvProtocol.RgvPos.doubleValue()); +// double[] doubles = Utils.getRgvPosNew(perimeter, rgvProtocol.RgvPos.doubleValue()); +// double[] doubles = Utils.RingThroughXY2(183.0, 100*i ); + + ringThroughParam.setValueX(rgvProtocol.getRgvNo()*100*1D); + ringThroughParam.setValueY(rgvProtocol.getRgvNo()*100*2D); + ringThroughParam.setModeColor(rgvProtocol.modeType.color); + ringThroughParam.setStatusColor(rgvProtocol.statusType.color); + result.add(ringThroughParam); + } + return R.ok().add(result); + } + + @PostMapping("/ring/through/dev/position/data") +// @ManagerAuth(memo = "绔欑偣淇℃伅") + // 绔欑偣浣嶇疆淇℃伅 + public R ringThroughDev(){ + List<RingThroughParam> result = new ArrayList<>(); + ArrayList<Integer> arrayList = new ArrayList<Integer>() {{ + add(1001); + add(1002); + add(1003); + add(1004); + add(1005); + add(1006); + add(1007); + add(1008); + add(1009); + add(1010); + add(1011); + add(1012); + add(1013); + add(1014); + add(1015); + add(1016); + add(1017); + add(1018); + add(1019); + add(1020); + add(1021); + add(1022); + add(1023); + }}; + for (Integer staNo : arrayList){ + RingThroughParam ringThroughParam = new RingThroughParam(); + ringThroughParam.setIndex(staNo); +// double[] doubles = Utils.RingThroughXYSta(perimeter, perimeter-basDevpPosition.getPlcPosition()); +// ringThroughParam.setValueX(doubles[0]>50? doubles[0]+6:doubles[0]-1); +// ringThroughParam.setValueY(doubles[1]>50? doubles[1]+6:doubles[1]-1); +// double[] doubles = Utils.getRgvPosNew(basDevpPosition.getDevNo(),perimeter, basDevpPosition.getPlcPosition()); + ringThroughParam.setValueX(staNo*100*1D); + ringThroughParam.setValueY(staNo*100*2D); + result.add(ringThroughParam); + } + return R.ok().add(result); + } + + @PostMapping("/ring/through/track/position/data") +// @ManagerAuth(memo = "杞ㄩ亾PLC鐘舵�佷俊鎭�") + public R wnergyGatheringRingParamTrack(){ + return R.ok(); + } + + @PostMapping("/ring/through/task/wrk/mast/position/data") +// @ManagerAuth(memo = "浣滀笟淇℃伅") + public R ringThroughTaskWrkMast(){ + return R.ok(); + } + + @PostMapping("/ring/through/task/wrk/mast/position/data/v1") +// @ManagerAuth(memo = "浣滀笟淇℃伅") + public R ringThroughTaskWrkMastV1(){ + return R.ok(); + } + + @PostMapping("/task/rgv/circular/shuttle/mast/position/data") +// @ManagerAuth(memo = "浣滀笟淇℃伅") + public R rgvCircularShuttle(){ + return R.ok(); + } + + @PostMapping("/task/rgv/circular/shuttle/mast/position/data/v1") +// @ManagerAuth(memo = "浣滀笟淇℃伅") + public R rgvCircularShuttleV1(){ + return R.ok(); + } } -- Gitblit v1.9.1