From 5a2ec88cf71194456a371efda15f3cab5f6225ae Mon Sep 17 00:00:00 2001 From: zjj <3272660260@qq.com> Date: 星期四, 20 六月 2024 20:48:41 +0800 Subject: [PATCH] # --- zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/rcs/thread/impl/SurayShuttleThread.java | 62 +++++++++++++++++++++++++++++++ 1 files changed, 62 insertions(+), 0 deletions(-) diff --git a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/rcs/thread/impl/SurayShuttleThread.java b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/rcs/thread/impl/SurayShuttleThread.java index c0adf3c..0b99ab5 100644 --- a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/rcs/thread/impl/SurayShuttleThread.java +++ b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/rcs/thread/impl/SurayShuttleThread.java @@ -11,14 +11,17 @@ import com.zy.asrs.framework.exception.CoolException; import com.zy.asrs.wcs.common.ExecuteSupport; import com.zy.asrs.wcs.core.domain.param.ShuttleMoveLocParam; +import com.zy.asrs.wcs.core.entity.BasLift; import com.zy.asrs.wcs.core.entity.BasShuttle; import com.zy.asrs.wcs.core.entity.Loc; import com.zy.asrs.wcs.core.model.NavigateNode; import com.zy.asrs.wcs.core.model.command.ShuttleCommand; import com.zy.asrs.wcs.core.model.command.ShuttleRedisCommand; import com.zy.asrs.wcs.core.model.enums.*; +import com.zy.asrs.wcs.core.service.BasLiftService; import com.zy.asrs.wcs.core.service.BasShuttleService; import com.zy.asrs.wcs.core.service.LocService; +import com.zy.asrs.wcs.core.utils.LiftDispatcher; import com.zy.asrs.wcs.core.utils.NavigateUtils; import com.zy.asrs.wcs.core.utils.Utils; import com.zy.asrs.wcs.rcs.News; @@ -433,6 +436,37 @@ } @Override + public boolean updateLocation(ShuttleCommand command) { + try { + String loginToken = requestLoginToken(); + if (loginToken == null) { + return false; + } + + HashMap<String, Object> headers = new HashMap<>(); + headers.put("Authorization", "Bearer " + loginToken); + + String response = new HttpHandler.Builder() + .setUri(API_URL) + .setPath("/RDS/changeLocation") + .setHeaders(headers) + .setJson(command.getBody()) + .setTimeout(60, TimeUnit.SECONDS) + .build() + .doPost(); + JSONObject jsonObject = JSON.parseObject(response); + Integer code = jsonObject.getInteger("code"); + if (code.equals(200)) { + this.shuttleProtocol.setSendTime(System.currentTimeMillis());//鎸囦护涓嬪彂鏃堕棿 + return true; + } + } catch (Exception e) { + e.printStackTrace(); + } + return false; + } + + @Override public boolean isIdle() { return this.isIdle(null); } @@ -674,6 +708,17 @@ body.put("nodeY", loc.getBay()); body.put("nodeZ", loc.getLev()); + //妫�娴嬬洰鏍囩偣鏄惁涓烘彁鍗囨満 + BasLiftService basLiftService = SpringUtils.getBean(BasLiftService.class); + BasLift basLift = basLiftService.getOne(new LambdaQueryWrapper<BasLift>().eq(BasLift::getRow, loc.getRow()) + .eq(BasLift::getBay, loc.getBay()) + .eq(BasLift::getHostId, this.device.getHostId())); + if (basLift != null) { + LiftDispatcher liftDispatcher = SpringUtils.getBean(LiftDispatcher.class); + Integer realLev = liftDispatcher.getLiftLevOffset(basLift.getDeviceId().intValue(), loc.getLev()); + body.put("nodeZ", realLev); + } + ShuttleCommand command = new ShuttleCommand(); command.setShuttleNo(Integer.parseInt(this.device.getDeviceNo())); command.setBody(JSON.toJSONString(body)); @@ -714,6 +759,23 @@ return command; } + @Override + public ShuttleCommand getUpdateLocationCommand(Integer taskNo, String locNo) { + HashMap<String, Object> body = new HashMap<>(); + body.put("messageName", "runOrder"); + body.put("msgTime", new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date())); + body.put("deviceNo", Integer.parseInt(this.device.getDeviceNo())); + + String coord = "(" + Utils.getRow(locNo) + "," + Utils.getBay(locNo) + "," + Utils.getLev(locNo) + ")"; + body.put("coord", coord); + + ShuttleCommand command = new ShuttleCommand(); + command.setShuttleNo(Integer.parseInt(this.device.getDeviceNo())); + command.setBody(JSON.toJSONString(body)); + command.setMode(ShuttleCommandModeType.UPDATE_LOCATION.id); + return command; + } + //***************璁惧灞傞�氳-涓嶅悓鍘傚晢璁惧閫氳鏂规涓嶄竴鑷�*************** //璇锋眰鐧诲綍 -- Gitblit v1.9.1