From 2d9b64b8f28490231b6781fd75779c3a24d5c58e Mon Sep 17 00:00:00 2001 From: Junjie <540245094@qq.com> Date: 星期六, 02 十二月 2023 08:14:07 +0800 Subject: [PATCH] #满充校准 --- src/main/java/com/zy/asrs/controller/LiftController.java | 113 ++++++++++++++++++++++++++++++++++++++++++++++---------- 1 files changed, 92 insertions(+), 21 deletions(-) diff --git a/src/main/java/com/zy/asrs/controller/LiftController.java b/src/main/java/com/zy/asrs/controller/LiftController.java index c7caa1f..9249c42 100644 --- a/src/main/java/com/zy/asrs/controller/LiftController.java +++ b/src/main/java/com/zy/asrs/controller/LiftController.java @@ -12,16 +12,20 @@ import com.zy.asrs.entity.BasLift; import com.zy.asrs.service.BasLiftService; import com.zy.common.service.CommonService; +import com.zy.common.utils.NyLiftUtils; import com.zy.common.utils.RedisUtil; import com.zy.core.cache.MessageQueue; import com.zy.core.cache.OutputQueue; import com.zy.core.cache.SlaveConnection; import com.zy.core.enums.LiftProtocolStatusType; +import com.zy.core.enums.NyLiftTaskModelType; +import com.zy.core.enums.RedisKeyType; import com.zy.core.enums.SlaveType; import com.zy.core.model.LiftSlave; import com.zy.core.model.Task; import com.zy.core.model.command.*; import com.zy.core.model.protocol.LiftProtocol; +import com.zy.core.model.protocol.LiftStaProtocol; import com.zy.core.properties.SlaveProperties; import com.zy.core.thread.LiftThread; import lombok.extern.slf4j.Slf4j; @@ -110,6 +114,7 @@ vo.setDistAddress(liftProtocol.getDistAddress()); vo.setCompleteTaskNo(liftProtocol.getCompleteTaskNo()); vo.setShuttleNo(liftProtocol.getShuttleNo().intValue()); + vo.setToken(liftProtocol.getToken());//浠ょ墝 } return R.ok().add(list); } @@ -188,18 +193,80 @@ throw new CoolException("鎻愬崌鏈轰笉鍦ㄧ嚎"); } - LiftAssignCommand assignCommand = new LiftAssignCommand(); - assignCommand.setLiftNo(liftSlave.getId().shortValue()); // 鎻愬崌鏈虹紪鍙� - assignCommand.setTaskNo((short) commonService.getWorkNo(3));//鑾峰彇浠诲姟鍙� - assignCommand.setTaskMode(param.getLiftTaskMode().shortValue()); - assignCommand.setAuto(false);//鎵嬪姩妯″紡 - assignCommand.setLev(param.getLev());//绉诲姩妤煎眰 + if (param.getLiftTaskMode() == 1) { + //鎻愬崌鏈哄崌闄嶆ゼ灞� + int workNo = commonService.getWorkNo(3);//鑾峰彇浠诲姟鍙� - if (MessageQueue.offer(SlaveType.Lift, liftSlave.getId(), new Task(3, assignCommand))) { - return R.ok(); + Integer startSta = null; + Integer targetSta = null; + for (LiftStaProtocol liftStaProtocol : liftThread.getLiftStaProtocols()) { + if (liftStaProtocol.getLev() == liftProtocol.getLev().intValue()) { + startSta = liftStaProtocol.getStaNo(); + } + + if (liftStaProtocol.getLev() == param.getLev()) { + targetSta = liftStaProtocol.getStaNo(); + } + } + + if (startSta == null || targetSta == null) { + throw new CoolException("璧风偣鎴栫洰鏍囩偣涓嶅瓨鍦�"); + } + + //鑾峰彇鎻愬崌鏈哄懡浠� + NyLiftCommand liftCommand = NyLiftUtils.getLiftCommand(liftProtocol.getLiftNo().intValue(), NyLiftTaskModelType.MOVE_CAR.id, startSta, targetSta, workNo); + ArrayList<NyLiftCommand> commands = new ArrayList<>(); + commands.add(liftCommand); + + //鎻愪氦鍒扮嚎绋嬪幓宸ヤ綔 + LiftAssignCommand assignCommand = new LiftAssignCommand(); + assignCommand.setCommands(commands); + assignCommand.setLiftNo(liftProtocol.getLiftNo()); + assignCommand.setTaskNo((short) workNo); + assignCommand.setAuto(false);//鎵嬪姩妯″紡 + assignCommand.setTaskMode(NyLiftTaskModelType.MOVE_CAR.id.shortValue()); + + if (MessageQueue.offer(SlaveType.Lift, liftSlave.getId(), new Task(3, assignCommand))) { + return R.ok(); + } else { + throw new CoolException("鍛戒护涓嬪彂澶辫触"); + } + } else if (param.getLiftTaskMode() == 2) { + //绉诲姩鎵樼洏 + int workNo = commonService.getWorkNo(3);//鑾峰彇浠诲姟鍙� + +// LiftStaProtocol sourceLiftSta = NyLiftUtils.getLiftStaByStaNo(param.getSourceStaNo()); +// LiftStaProtocol liftSta = NyLiftUtils.getLiftStaByStaNo(param.getStaNo()); +// if (sourceLiftSta == null || liftSta == null) { +// throw new CoolException("婧愮珯鎴栫洰鏍囩珯涓嶅瓨鍦�"); +// } + + //鑾峰彇鎻愬崌鏈哄懡浠� + NyLiftCommand liftCommand = NyLiftUtils.getLiftCommand(liftProtocol.getLiftNo().intValue(), NyLiftTaskModelType.MOVE_TRAY.id, param.getSourceStaNo(), param.getStaNo(), workNo); + ArrayList<NyLiftCommand> commands = new ArrayList<>(); + commands.add(liftCommand); + + //鎻愪氦鍒扮嚎绋嬪幓宸ヤ綔 + LiftAssignCommand assignCommand = new LiftAssignCommand(); + assignCommand.setCommands(commands); + assignCommand.setLiftNo(liftProtocol.getLiftNo()); + assignCommand.setTaskNo((short) workNo); + assignCommand.setAuto(false);//鎵嬪姩妯″紡 + assignCommand.setTaskMode(NyLiftTaskModelType.MOVE_TRAY.id.shortValue()); + + if (MessageQueue.offer(SlaveType.Lift, liftSlave.getId(), new Task(3, assignCommand))) { + return R.ok(); + } else { + throw new CoolException("鍛戒护涓嬪彂澶辫触"); + } + } else if (param.getLiftTaskMode() == 0) { + //鎻愬崌鏈哄浣� + liftProtocol.setToken(0); + liftProtocol.setProtocolStatusType(LiftProtocolStatusType.IDLE); } else { - throw new CoolException("鍛戒护涓嬪彂澶辫触"); + throw new CoolException("鏈煡鍛戒护"); } + } } return R.error(); @@ -208,8 +275,9 @@ @PostMapping("/detl/update") @ManagerAuth(memo = "淇敼鏁版嵁") public R liftUpdate(@RequestParam Integer liftNo, - @RequestParam Short workNo, - @RequestParam String pakMk){ + @RequestParam Short workNo, + @RequestParam String pakMk, + @RequestParam Integer token) { LiftThread liftThread = (LiftThread) SlaveConnection.get(SlaveType.Lift, liftNo); if (liftThread == null) { return R.error("plc宸叉帀绾�"); @@ -224,12 +292,15 @@ if (pakMk != null) { liftProtocol.setPakMk(pakMk.equals("Y")); } + if (token != null) { + liftProtocol.setToken(token); + } return R.ok(); } @RequestMapping(value = "/command/query") public R liftCommandQuery(@RequestParam("wrkNo") Integer wrkNo) { - Object o = redisUtil.get("lift_wrk_no_" + wrkNo); + Object o = redisUtil.get(RedisKeyType.LIFT.key + wrkNo); if (o == null) { return R.error(); } @@ -241,13 +312,13 @@ @RequestMapping(value = "/command/rollback") public R liftCommandRollback(@RequestParam("wrkNo") Integer wrkNo , @RequestParam("commandStep") Integer commandStep) { - Object o = redisUtil.get("lift_wrk_no_" + wrkNo); + Object o = redisUtil.get(RedisKeyType.LIFT.key + wrkNo); if (o == null) { return R.error(); } LiftRedisCommand redisCommand = JSON.parseObject(o.toString(), LiftRedisCommand.class); redisCommand.setCommandStep(commandStep); - redisUtil.set("lift_wrk_no_" + wrkNo, JSON.toJSONString(redisCommand)); + redisUtil.set(RedisKeyType.LIFT.key + wrkNo, JSON.toJSONString(redisCommand)); return R.ok(); } @@ -256,23 +327,23 @@ public R liftCommandCompleteSwitch(@RequestParam("wrkNo") Integer wrkNo , @RequestParam("commandStep") Integer commandStep , @RequestParam("complete") Integer complete) { - Object o = redisUtil.get("lift_wrk_no_" + wrkNo); + Object o = redisUtil.get(RedisKeyType.LIFT.key + wrkNo); if (o == null) { return R.error(); } LiftRedisCommand redisCommand = JSON.parseObject(o.toString(), LiftRedisCommand.class); LiftAssignCommand assignCommand = redisCommand.getAssignCommand(); - List<LiftCommand> commands = assignCommand.getCommands(); - LiftCommand command = commands.get(commandStep); + List<NyLiftCommand> commands = assignCommand.getCommands(); + NyLiftCommand command = commands.get(commandStep); command.setComplete(complete != 0); - redisUtil.set("lift_wrk_no_" + wrkNo, JSON.toJSONString(redisCommand)); + redisUtil.set(RedisKeyType.LIFT.key + wrkNo, JSON.toJSONString(redisCommand)); return R.ok(); } //閲嶅惎浠诲姟(鍛戒护) @RequestMapping(value = "/command/restart") public R liftCommandCompleteSwitch(@RequestParam("wrkNo") Integer wrkNo) { - Object o = redisUtil.get("lift_wrk_no_" + wrkNo); + Object o = redisUtil.get(RedisKeyType.LIFT.key + wrkNo); if (o == null) { return R.error(); } @@ -298,11 +369,11 @@ //鍒犻櫎浠诲姟(鍛戒护) @RequestMapping(value = "/command/del") public R liftCommandDel(@RequestParam("wrkNo") Integer wrkNo) { - Object o = redisUtil.get("lift_wrk_no_" + wrkNo); + Object o = redisUtil.get(RedisKeyType.LIFT.key + wrkNo); if (o == null) { return R.error(); } - redisUtil.del("lift_wrk_no_" + wrkNo); + redisUtil.del(RedisKeyType.LIFT.key + wrkNo); return R.ok(); } -- Gitblit v1.9.1