From c8ca14407cd83d0e03fb017ad97c0464bd0c42c4 Mon Sep 17 00:00:00 2001 From: Junjie <fallin.jie@qq.com> Date: 星期二, 18 三月 2025 10:46:28 +0800 Subject: [PATCH] # --- src/main/java/com/zy/core/thread/impl/NyShuttleThread.java | 151 +++++++++++++++++++++++++++++++++---------------- 1 files changed, 101 insertions(+), 50 deletions(-) diff --git a/src/main/java/com/zy/core/thread/impl/NyShuttleThread.java b/src/main/java/com/zy/core/thread/impl/NyShuttleThread.java index dd31655..d7dfba6 100644 --- a/src/main/java/com/zy/core/thread/impl/NyShuttleThread.java +++ b/src/main/java/com/zy/core/thread/impl/NyShuttleThread.java @@ -120,6 +120,9 @@ // //灏忚溅绌洪棽涓旀湁璺戝簱绋嬪簭 // shuttleAction.moveLoc(slave.getId()); + //婕旂ず妯″紡 + shuttleAction.demo(slave.getId()); + Thread.sleep(200); } catch (Exception e) { e.printStackTrace(); @@ -152,6 +155,9 @@ //閲囬泦鏃堕棿瓒呰繃5s锛屼繚瀛樹竴娆℃暟鎹褰� //淇濆瓨鏁版嵁璁板綍 DeviceDataLogService deviceDataLogService = SpringUtils.getBean(DeviceDataLogService.class); + if (deviceDataLogService == null) { + return; + } DeviceDataLog deviceDataLog = new DeviceDataLog(); deviceDataLog.setOriginData(JSON.toJSONString(this.originDeviceData)); deviceDataLog.setWcsData(JSON.toJSONString(shuttleProtocol)); @@ -162,29 +168,8 @@ //鏇存柊閲囬泦鏃堕棿 shuttleProtocol.setDeviceDataLog(System.currentTimeMillis()); + OutputQueue.SHUTTLE.offer(MessageFormat.format("銆恵0}銆慬id:{1}] <<<<< 瀹炴椂鏁版嵁鏇存柊鎴愬姛",DateUtils.convert(new Date()), slave.getId())); } - } - - //灏嗗洓鍚戠┛姊溅鐘舵�佷繚瀛樿嚦鏁版嵁搴� - BasShuttleService shuttleService = SpringUtils.getBean(BasShuttleService.class); - BasShuttle basShuttle = shuttleService.selectOne(new EntityWrapper<BasShuttle>() - .eq("shuttle_no", slave.getId())); - - if (basShuttle == null) { - basShuttle = new BasShuttle(); - //鍥涘悜绌挎杞﹀彿 - basShuttle.setShuttleNo(slave.getId()); - basShuttle.setStatus(1); - shuttleService.insert(basShuttle); - } - //浠诲姟鍙� - basShuttle.setWrkNo(shuttleProtocol.getTaskNo().intValue()); - //淇敼鏃堕棿 - basShuttle.setUpdateTime(new Date()); - //璁惧鐘舵�� - basShuttle.setDeviceStatus(JSON.toJSONString(shuttleProtocol)); - if (shuttleService.updateById(basShuttle)) { - OutputQueue.SHUTTLE.offer(MessageFormat.format("銆恵0}銆慬id:{1}] <<<<< 瀹炴椂鏁版嵁鏇存柊鎴愬姛",DateUtils.convert(new Date()), slave.getId())); } } @@ -218,7 +203,7 @@ } } - public JSONObject getRequestBody(String type) { + public JSONObject getRequestBody(String type, String taskId) { try { // 鑾峰彇鏈嶅姟鍣ㄥ搷搴� JSONObject result = null; @@ -241,7 +226,14 @@ } if (!responseType.equals(type)) { - continue;//鍝嶅簲ID涓庤姹侷D涓嶄竴鑷达紝涓嶅湪璋冭瘯妯″紡涓� + continue;//鍝嶅簲绫诲瀷涓庤姹傜被鍨嬩笉涓�鑷达紝涓嶅湪璋冭瘯妯″紡涓� + } + + if (taskId != null) { + String responseTaskId = resultBody.get("taskId").toString(); + if (!responseTaskId.equals(taskId)) { + continue;//鍝嶅簲ID涓庤姹侷D涓嶄竴鑷达紝涓嶅湪璋冭瘯妯″紡涓� + } } result = socketResult; @@ -315,13 +307,21 @@ shuttleProtocol.setRunDirection(data.getString("runDir") == null ? "none" : data.getString("runDir")); //鏄惁涓哄厖鐢电姸鎬� shuttleProtocol.setHasCharge(data.getInteger("chargState") == 1 ? true : false); + //杩愯閫熷害 + shuttleProtocol.setSpeed(data.getInteger("speed")); //*********璇诲彇鎵╁睍瀛楁********** InnerSuhttleExtend extend = (InnerSuhttleExtend) shuttleProtocol.getExtend(); //绠″埗鐘舵�� extend.setSuspendState(data.getInteger("suspendState")); - //褰撳墠閫熷害 - extend.setSpeed(data.getInteger("speed")); + //鏈�楂樼數鑺數鍘�(mV) + extend.setMaxCellVoltage(data.getInteger("maxCellVoltage")); + //鏈�浣庣數鑺數鍘�(mV) + extend.setMinCellVoltage(data.getInteger("minCellVoltage")); + //鐢垫睜鐢靛帇 + extend.setVoltage(data.getInteger("voltage")); + //鍏呮斁鐢靛惊鐜鏁� + extend.setChargeCycleTimes(data.getInteger("chargeCycleTimes")); //鍓╀綑鐢甸噺 extend.setSurplusQuantity(data.getInteger("surplusQuantity")); //鎬荤數閲� @@ -333,7 +333,7 @@ ///璇诲彇鍥涘悜绌挎杞︾姸鎬�-end //灏忚溅澶勪簬杩愯涓紝灏嗘爣璁扮疆涓簍rue - if (shuttleProtocol.getDeviceStatus() == 1) { + if (shuttleProtocol.getDeviceStatus() == 0) { shuttleProtocol.setPakMk(true); } @@ -370,6 +370,9 @@ int removeIdx = -1; for (int i = 0; i < socketResults.size(); i++) { JSONObject socketResult = socketResults.get(i); + if (socketResult == null) { + continue; + } if (!socketResult.get("msgType").equals("requestMsg")) {//涓嶆槸璇锋眰鍐呭 continue; } @@ -399,7 +402,7 @@ socketResults.remove(removeIdx); } } catch (Exception e) { - e.printStackTrace(); +// e.printStackTrace(); } } @@ -462,13 +465,17 @@ } for (NyShuttleHttpCommand requestCommand : commandList) { - JSONObject result = requestCommand(requestCommand); - if (result == null) { - return response;//璇锋眰澶辫触 + while (true) { + JSONObject result = requestCommand(requestCommand); + if (result == null) { +// return response;//璇锋眰澶辫触 + continue;//璇锋眰澶辫触灏濊瘯閲嶆柊璇锋眰 + } + this.shuttleProtocol.setSendTime(System.currentTimeMillis());//鎸囦护涓嬪彂鏃堕棿 + response.setMessage(JSON.toJSONString(result)); + response.setResult(true); + break; } - this.shuttleProtocol.setSendTime(System.currentTimeMillis());//鎸囦护涓嬪彂鏃堕棿 - response.setMessage(JSON.toJSONString(result)); - response.setResult(true); } return response; } catch (Exception e) { @@ -576,6 +583,7 @@ && this.shuttleProtocol.getMode() == 1 && this.shuttleProtocol.getPakMk() && this.shuttleProtocol.getErrorCode().equals("0") + && this.shuttleProtocol.getTaskNo() == 0 && (this.shuttleProtocol.getProtocolStatus() == ShuttleProtocolStatusType.IDLE.id || this.shuttleProtocol.getProtocolStatus() == ShuttleProtocolStatusType.WAITING.id || this.shuttleProtocol.getProtocolStatus() == ShuttleProtocolStatusType.CHARGING_WAITING.id) @@ -810,6 +818,19 @@ } @Override + public boolean enableDemo(boolean enable) { + shuttleProtocol.setDemo(enable); + return true; + } + + @Override + public boolean offerSystemMsg(String format, Object... arguments) { + String msg = News.replace(format, arguments); + shuttleProtocol.setSystemMsg(msg); + return true; + } + + @Override public ShuttleCommand getMoveCommand(Integer taskNo, String startCodeNum, String distCodeNum, Integer allDistance, Integer runDirection, Integer runSpeed, List<NavigateNode> nodes) { NavigateMapData navigateMapData = SpringUtils.getBean(NavigateMapData.class); NyShuttleHttpCommand httpStandard = getHttpStandard(slave.getId(), taskNo); @@ -842,8 +863,8 @@ data.put("xp", xp); data.put("yp", yp); data.put("z", z); - data.put("x", mapNode.getYBase()); - data.put("y", mapNode.getXBase()); + data.put("x", mapNode.getXBase()); + data.put("y", mapNode.getYBase()); path.add(data); } @@ -851,7 +872,7 @@ LocMastService locMastService = SpringUtils.getBean(LocMastService.class); LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>() - .eq("code", distCodeNum)); + .eq("qr_code_value", distCodeNum)); if (locMast == null) { throw new CoolException("搴撲綅淇℃伅涓嶅瓨鍦�"); } @@ -946,8 +967,7 @@ String mapStr = JSON.toJSONString(map); LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>() - .eq("code", mapStr) - .eq("status", 1)); + .eq("qr_code_value", mapStr)); if (locMast == null) { throw new CoolException("鍦板潃鐮佷笉瀛樺湪"); } @@ -960,8 +980,8 @@ location.put("xp", row); location.put("yp", bay); location.put("z", lev); - location.put("x", mapNode.getYBase()); - location.put("y", mapNode.getXBase()); + location.put("x", mapNode.getXBase()); + location.put("y", mapNode.getYBase()); HashMap<String, Object> body = new HashMap<>(); body.put("responseType", "init");//澶嶄綅 @@ -1062,17 +1082,20 @@ // System.out.println("Sent message to server: " + JSON.toJSONString(httpCommand)); String requestType = null; + String taskId = null; try { requestType = httpCommand.getRequest().getBody().get("requestType").toString(); + taskId = httpCommand.getRequest().getBody().get("taskId").toString(); } catch (Exception e) { - return null; +// return null; + //taskId鍙兘鍙栫┖锛屼笉鎶ラ敊锛屾甯告儏鍐� } // 鑾峰彇鏈嶅姟鍣ㄥ搷搴� - // 灏濊瘯10娆� + // 灏濊瘯100娆� JSONObject result = null; - for (int i = 0; i < 10; i++) { - result = getRequestBody(requestType); + for (int i = 0; i < 100; i++) { + result = getRequestBody(requestType, taskId); if (result == null) { try { Thread.sleep(100); @@ -1117,9 +1140,22 @@ // int x1 = Math.abs(y - 61) + 11; // //WCS绯荤粺X杞� => 鐗涚溂Y杞磋浆鎹㈠叕寮� // int y1 = x + 10; - int x1 = x + 10; - int y1 = y + 10; - return new int[]{y1, x1, z}; + +// int x1 = x + 10; +// int y1 = y + 10; + LocMastService locMastService = SpringUtils.getBean(LocMastService.class); + LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>() + .eq("row1", x) + .eq("bay1", y) + .eq("lev1", z) + .eq("status", 1)); + if (locMast == null) { + return null; + } + + String qrCodeValue = locMast.getQrCodeValue(); + JSONObject data = JSON.parseObject(qrCodeValue); + return new int[]{data.getInteger("y"), data.getInteger("x"), z}; } @Data @@ -1132,9 +1168,24 @@ private Integer suspendState; /** - * 褰撳墠閫熷害锛屽崟浣峬m/s + * 鏈�楂樼數鑺數鍘�(mV) */ - private Integer speed; + private Integer maxCellVoltage; + + /** + * 鏈�浣庣數鑺數鍘�(mV)锛屼綆浜�2900mv闇�瑕佺珛鍗冲厖鐢� + */ + private Integer minCellVoltage; + + /** + * 鐢垫睜鐢靛帇锛坢V锛� + */ + private Integer voltage; + + /** + * 鍏呮斁鐢靛惊鐜鏁� + */ + private Integer chargeCycleTimes; /** * 鍓╀綑鐢甸噺/10(A) -- Gitblit v1.9.1