From 37733cc39c04b863a0b997c7fa3d9ac6a24e08be Mon Sep 17 00:00:00 2001 From: zjj <3272660260@qq.com> Date: 星期三, 19 六月 2024 15:58:19 +0800 Subject: [PATCH] # --- zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/rcs/thread/impl/SurayLiftThread.java | 119 ++++++++++++++++++++++++++++++++++++----------------------- 1 files changed, 72 insertions(+), 47 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 69172ff..eca2c2e 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 @@ -27,14 +27,16 @@ import java.text.MessageFormat; import java.text.SimpleDateFormat; +import java.util.ArrayList; import java.util.Date; import java.util.HashMap; +import java.util.List; @Slf4j @SuppressWarnings("all") public class SurayLiftThread implements LiftThread { - private static final String API_URL = "http://127.0.0.1:8082"; + private static String API_URL = "http://127.0.0.1:8082"; private Device device; private RedisUtil redisUtil; @@ -43,6 +45,7 @@ public SurayLiftThread(Device device,RedisUtil redisUtil) { this.device = device; this.redisUtil = redisUtil; + API_URL = "http://" + device.getIp() + ":" + device.getPort(); } @Override @@ -63,9 +66,9 @@ try { readStatus(); - //鎻愬崌鏈哄浜庤繍琛岀姸鎬侊紝灏嗘爣璁扮疆涓篺alse + //鎻愬崌鏈哄浜庤繍琛岀姸鎬侊紝灏嗘爣璁扮疆涓簍rue if (liftProtocol.getRun()) { - liftProtocol.setPakMk(false); + liftProtocol.setPakMk(true); } } catch (Exception e) { OutputQueue.LIFT.offer(MessageFormat.format("銆恵0}銆戣鍙栨彁鍗囨満鐘舵�佷俊鎭け璐� ===>> [id:{1}] [ip:{2}] [port:{3}]", DateUtils.convert(new Date()), device.getId(), device.getIp(), device.getPort())); @@ -345,12 +348,43 @@ // 鍒ゆ柇鎻愬崌鏈烘槸鍚﹁嚜鍔ㄣ�佸氨缁�佺┖闂层�佹湭閿佸畾 if (this.liftProtocol.getModel() && !this.liftProtocol.getRun() + && this.liftProtocol.getPakMk() && this.liftProtocol.getReady() -// && this.liftProtocol.getPakMk() && this.liftProtocol.getErrorCode().equals("0") - && this.liftProtocol.getProtocolStatusType().equals(LiftProtocolStatusType.IDLE) + && (this.liftProtocol.getProtocolStatusType().equals(LiftProtocolStatusType.IDLE) + || this.liftProtocol.getProtocolStatusType().equals(LiftProtocolStatusType.WAITING)) && !extend.getLock() ) { + return true; + } + return false; + } + + @Override + public boolean isDeviceIdle() { + return isDeviceIdle(null); + } + + @Override + public boolean isDeviceIdle(ExecuteSupport support) { + if (null != support) { + Boolean judgement = support.judgement(); + if (judgement != null && !judgement) { + return true; + } + } + + // 鍒ゆ柇鎻愬崌鏈烘槸鍚﹁嚜鍔ㄣ�佸氨缁�佺┖闂� + if (this.liftProtocol.getModel() + && !this.liftProtocol.getRun() + && this.liftProtocol.getErrorCode().equals("0") + ) { + if (this.liftProtocol.getTaskNo() == 0) { + //鏃犱换鍔℃儏鍐典笅妫�娴嬫槸鍚﹀氨缁� + if (!this.liftProtocol.getReady()) { + return false; + } + } return true; } return false; @@ -372,36 +406,6 @@ public boolean isLock(ExecuteSupport support) { InnerLiftExtend extend = (InnerLiftExtend) this.liftProtocol.getExtend(); return extend.getLock(); - } - - @Override - public boolean commandFinished(Integer taskNo) { - try { - LiftCommand command = getTaskClearCommand(); - 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; } //***************璁惧灞傞�氳-涓嶅悓鍘傚晢璁惧閫氳鏂规涓嶄竴鑷�*************** @@ -468,7 +472,7 @@ //绌鸿浇绉诲姩 @Override - public LiftCommand getMoveCommand(Integer taskNo, Integer sourceLev, Integer targetLev, LiftCommandModeType mode) { + public List<LiftCommand> getMoveCommand(Integer taskNo, Integer sourceLev, Integer targetLev, LiftCommandModeType mode) { int taskMode = 3;//绌鸿浇绉诲姩 HashMap<String, Object> body = new HashMap<>(); @@ -488,12 +492,16 @@ command.setMode(LiftCommandModeType.MOVE.id); command.setOriginLev(0); command.setTargetLev(targetLev); - return command; + + ArrayList<LiftCommand> list = new ArrayList<>(); + list.add(command); + list.addAll(getTaskClearCommand()); + return list; } //杞借溅绉诲姩 @Override - public LiftCommand getMoveWithShuttleCommand(Integer taskNo, Integer sourceLev, Integer targetLev, LiftCommandModeType mode) { + public List<LiftCommand> getMoveWithShuttleCommand(Integer taskNo, Integer sourceLev, Integer targetLev, LiftCommandModeType mode) { HashMap<String, Object> body = new HashMap<>(); body.put("messageName", "lifterTask"); body.put("msgTime", new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date())); @@ -511,12 +519,16 @@ command.setMode(LiftCommandModeType.MOVE.id); command.setOriginLev(sourceLev); command.setTargetLev(targetLev); - return command; + + ArrayList<LiftCommand> list = new ArrayList<>(); + list.add(command); + list.addAll(getTaskClearCommand()); + return list; } //鎵樼洏鍑哄叆 @Override - public LiftCommand getPalletInOutCommand(Integer taskNo, Integer sourceLev, Integer targetLev, Integer originSta, Integer targetSta, LiftCommandModeType mode) { + public List<LiftCommand> getPalletInOutCommand(Integer taskNo, Integer sourceLev, Integer targetLev, Integer originSta, Integer targetSta, LiftCommandModeType mode) { HashMap<String, Object> body = new HashMap<>(); body.put("messageName", "lifterTask"); body.put("msgTime", new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date())); @@ -536,12 +548,16 @@ command.setTargetLev(targetLev); command.setOriginSta(originSta); command.setTargetSta(targetSta); - return command; + + ArrayList<LiftCommand> list = new ArrayList<>(); + list.add(command); + list.addAll(getTaskClearCommand()); + return list; } //閿佸畾/瑙i攣鎻愬崌鏈� @Override - public LiftCommand getLockCommand(Integer taskNo, Boolean lock) { + public List<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())); @@ -554,12 +570,15 @@ command.setLiftNo(Integer.valueOf(this.device.getDeviceNo())); command.setBody(JSON.toJSONString(body)); command.setMode(lock ? LiftCommandModeType.LOCK.id : LiftCommandModeType.UNLOCK.id); - return command; + + ArrayList<LiftCommand> list = new ArrayList<>(); + list.add(command); + return list; } //灏忚溅宸插埌浣�/宸查┒绂讳俊鍙� @Override - public LiftCommand getShuttleSignalCommand(Integer taskNo, Boolean signal) { + public List<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())); @@ -571,11 +590,14 @@ command.setLiftNo(Integer.valueOf(this.device.getDeviceNo())); command.setBody(JSON.toJSONString(body)); command.setMode(signal ? LiftCommandModeType.LOCK.id : LiftCommandModeType.UNLOCK.id); - return command; + + ArrayList<LiftCommand> list = new ArrayList<>(); + list.add(command); + return list; } //鑾峰彇鎻愬崌鏈轰换鍔℃竻闄ゅ懡浠� - private LiftCommand getTaskClearCommand() { + private List<LiftCommand> getTaskClearCommand() { HashMap<String, Object> body = new HashMap<>(); body.put("messageName", "lifterOperation"); body.put("msgTime", new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date())); @@ -586,7 +608,10 @@ command.setLiftNo(Integer.valueOf(this.device.getDeviceNo())); command.setBody(JSON.toJSONString(body)); command.setMode(LiftCommandModeType.RESET.id); - return command; + + ArrayList<LiftCommand> list = new ArrayList<>(); + list.add(command); + return list; } /** -- Gitblit v1.9.1