From 0817793961918c1123328bca9a78ca29d95738b8 Mon Sep 17 00:00:00 2001 From: Junjie <xjj@123> Date: 星期四, 28 三月 2024 14:54:27 +0800 Subject: [PATCH] # --- zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/rcs/thread/impl/SurayLiftThread.java | 234 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 233 insertions(+), 1 deletions(-) diff --git a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/rcs/thread/impl/SurayLiftThread.java b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/rcs/thread/impl/SurayLiftThread.java index 79077ae..b44bc38 100644 --- a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/rcs/thread/impl/SurayLiftThread.java +++ b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/rcs/thread/impl/SurayLiftThread.java @@ -2,9 +2,17 @@ import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.zy.asrs.common.utils.HttpHandler; import com.zy.asrs.framework.common.DateUtils; +import com.zy.asrs.framework.common.SpringUtils; import com.zy.asrs.framework.exception.CoolException; +import com.zy.asrs.wcs.core.entity.Loc; +import com.zy.asrs.wcs.core.model.command.LiftCommand; +import com.zy.asrs.wcs.core.model.command.ShuttleCommand; +import com.zy.asrs.wcs.core.model.enums.LiftCommandModeType; +import com.zy.asrs.wcs.core.model.enums.ShuttleCommandModeType; +import com.zy.asrs.wcs.core.service.LocService; import com.zy.asrs.wcs.rcs.News; import com.zy.asrs.wcs.rcs.cache.OutputQueue; import com.zy.asrs.wcs.rcs.model.enums.LiftProtocolStatusType; @@ -76,7 +84,7 @@ if (data != null) { if (null == liftProtocol) { liftProtocol = new LiftProtocol(); - liftProtocol.setLiftNo(device.getDeviceNo()); + liftProtocol.setLiftNo(Integer.valueOf(device.getDeviceNo())); liftProtocol.setProtocolStatus(LiftProtocolStatusType.IDLE); liftProtocol.setDevice(device); } @@ -146,6 +154,132 @@ return this.liftProtocol; } + @Override + public Device getDevice() { + return this.device; + } + + @Override + public synchronized boolean move(LiftCommand 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/lifterTask") + .setHeaders(headers) + .setJson(command.getBody()) + .build() + .doPost(); + JSONObject jsonObject = JSON.parseObject(response); + Integer code = jsonObject.getInteger("code"); + if (code.equals(200)) { + return true; + } + } catch (Exception e) { + e.printStackTrace(); + } + return false; + } + + @Override + public synchronized boolean palletInOut(LiftCommand 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/lifterTask") + .setHeaders(headers) + .setJson(command.getBody()) + .build() + .doPost(); + JSONObject jsonObject = JSON.parseObject(response); + Integer code = jsonObject.getInteger("code"); + if (code.equals(200)) { + return true; + } + } catch (Exception e) { + e.printStackTrace(); + } + return false; + } + + @Override + public synchronized boolean lock(LiftCommand 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/lifterOperation") + .setHeaders(headers) + .setJson(command.getBody()) + .build() + .doPost(); + JSONObject jsonObject = JSON.parseObject(response); + Integer code = jsonObject.getInteger("code"); + if (code.equals(200)) { + return true; + } + } catch (Exception e) { + e.printStackTrace(); + } + return false; + } + + @Override + public synchronized boolean unlock(LiftCommand 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/lifterOperation") + .setHeaders(headers) + .setJson(command.getBody()) + .build() + .doPost(); + JSONObject jsonObject = JSON.parseObject(response); + Integer code = jsonObject.getInteger("code"); + if (code.equals(200)) { + return true; + } + } catch (Exception e) { + e.printStackTrace(); + } + return false; + } + + @Override + public synchronized boolean reset(LiftCommand command) { + return false; + } + //***************璁惧灞傞�氳-涓嶅悓鍘傚晢璁惧閫氳鏂规涓嶄竴鑷�*************** //璇锋眰鐧诲綍 @@ -207,4 +341,102 @@ // } // return null; } + + //绌鸿浇绉诲姩 + public LiftCommand getEmptyMoveCommand(Integer taskNo, Integer targetLev) { + HashMap<String, Object> body = new HashMap<>(); + body.put("messageName", "lifterTask"); + body.put("msgTime", new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date())); + body.put("deviceNo", Integer.parseInt(this.device.getDeviceNo())); + body.put("taskId", taskNo); + body.put("startLayer", 0); + body.put("endLayer", targetLev); + body.put("model", 3);//绌鸿浇绉诲姩 + + LiftCommand command = new LiftCommand(); + command.setLiftNo(Integer.valueOf(this.device.getDeviceNo())); + command.setBody(JSON.toJSONString(body)); + command.setMode(LiftCommandModeType.MOVE.id); + command.setOriginLev(0); + command.setTargetLev(targetLev); + return command; + } + + //杞借溅绉诲姩 + public LiftCommand getMoveWithShuttleCommand(Integer taskNo, Integer originLev, Integer targetLev) { + HashMap<String, Object> body = new HashMap<>(); + body.put("messageName", "lifterTask"); + body.put("msgTime", new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date())); + body.put("deviceNo", Integer.parseInt(this.device.getDeviceNo())); + body.put("taskId", taskNo); + body.put("startLayer", originLev); + body.put("endLayer", targetLev); + body.put("model", 2);//杞借溅绉诲姩 + + LiftCommand command = new LiftCommand(); + command.setLiftNo(Integer.valueOf(this.device.getDeviceNo())); + command.setBody(JSON.toJSONString(body)); + command.setMode(LiftCommandModeType.MOVE.id); + command.setOriginLev(originLev); + command.setTargetLev(targetLev); + return command; + } + + //鎵樼洏鍑哄叆 + public LiftCommand getPalletInOutCommand(Integer taskNo, Integer originLev, Integer targetLev, Integer originSta, Integer targetSta) { + HashMap<String, Object> body = new HashMap<>(); + body.put("messageName", "lifterTask"); + body.put("msgTime", new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date())); + body.put("deviceNo", Integer.parseInt(this.device.getDeviceNo())); + body.put("taskId", taskNo); + body.put("startLayer", originLev); + body.put("endLayer", targetLev); + body.put("startLocation", originSta); + body.put("endLocation", targetSta); + body.put("model", 1);//鎵樼洏鍑哄叆 + + LiftCommand command = new LiftCommand(); + command.setLiftNo(Integer.valueOf(this.device.getDeviceNo())); + command.setBody(JSON.toJSONString(body)); + command.setMode(LiftCommandModeType.PALLET_INOUT.id); + command.setOriginLev(originLev); + command.setTargetLev(targetLev); + command.setOriginSta(originSta); + command.setTargetSta(targetSta); + return command; + } + + //閿佸畾/瑙i攣鎻愬崌鏈� + public LiftCommand getLockCommand(Integer taskNo, Boolean lock) { + HashMap<String, Object> body = new HashMap<>(); + body.put("messageName", "lifterOperation"); + body.put("msgTime", new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date())); + body.put("deviceNo", Integer.parseInt(this.device.getDeviceNo())); + body.put("taskId", taskNo); + body.put("operation", lock ? 6 : 7); + body.put("remark", taskNo); + + LiftCommand command = new LiftCommand(); + command.setLiftNo(Integer.valueOf(this.device.getDeviceNo())); + command.setBody(JSON.toJSONString(body)); + command.setMode(lock ? LiftCommandModeType.LOCK.id : LiftCommandModeType.UNLOCK.id); + return command; + } + + //灏忚溅宸插埌浣�/宸查┒绂讳俊鍙� + public LiftCommand getShuttleSignalCommand(Integer taskNo, Boolean signal) { + HashMap<String, Object> body = new HashMap<>(); + body.put("messageName", "lifterOperation"); + body.put("msgTime", new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date())); + body.put("deviceNo", Integer.parseInt(this.device.getDeviceNo())); + body.put("taskId", taskNo); + body.put("operation", signal ? 4 : 5); + + LiftCommand command = new LiftCommand(); + command.setLiftNo(Integer.valueOf(this.device.getDeviceNo())); + command.setBody(JSON.toJSONString(body)); + command.setMode(signal ? LiftCommandModeType.LOCK.id : LiftCommandModeType.UNLOCK.id); + return command; + } + } -- Gitblit v1.9.1