From 98e6dd8f3597a36512699151a7f74b6cf733268f Mon Sep 17 00:00:00 2001 From: Junjie <540245094@qq.com> Date: 星期五, 19 九月 2025 14:06:03 +0800 Subject: [PATCH] # --- src/main/java/com/zy/core/thread/impl/NyLiftThread.java | 71 ++++++++++++++++++----------------- 1 files changed, 37 insertions(+), 34 deletions(-) diff --git a/src/main/java/com/zy/core/thread/impl/NyLiftThread.java b/src/main/java/com/zy/core/thread/impl/NyLiftThread.java index dc1c42a..b495438 100644 --- a/src/main/java/com/zy/core/thread/impl/NyLiftThread.java +++ b/src/main/java/com/zy/core/thread/impl/NyLiftThread.java @@ -45,10 +45,11 @@ private DeviceConfig device; private LiftProtocol liftProtocol; private RedisUtil redisUtil; - LiftPointModel liftPointModel; + private LiftPointModel liftPointModel; private List<LiftStaProtocol> liftStaProtocols = new ArrayList<>(); private List<DeviceMsgModel> readResultList = new ArrayList<>(); private List<DeviceMsgModel> resultList = new ArrayList<>(); + private String realtimeOriginData = ""; public NyLiftThread(DeviceConfig device, LiftPointModel liftPointModel, List<LiftStation> stationList, RedisUtil redisUtil) { this.device = device; @@ -57,7 +58,7 @@ //鍒濆鍖栫珯鐐� for (LiftStation station : stationList) { LiftStaProtocol liftStaProtocol = new LiftStaProtocol(); - liftStaProtocol.setStaNo(station.getStaNo());//绔欑偣鍙� + liftStaProtocol.setSiteId(station.getSiteId());//绔欑偣鍙� liftStaProtocol.setLev(station.getLev());//绔欑偣妤煎眰 String locNo = Utils.getLocNo(station.getRow(), station.getBay(), station.getLev()); liftStaProtocol.setLocNo(locNo);//绔欑偣搴撲綅鍙� @@ -200,19 +201,33 @@ liftExtend.setOverHeight(data.getBoolean("overHeight")); liftExtend.setOverWeight(data.getBoolean("overWeight")); - JSONArray trayList = data.getJSONArray("trayList"); - for (int i = 0; i < trayList.size(); i++) { - int hasTray = (int) trayList.get(i); - LiftStaProtocol liftStaProtocol = liftStaProtocols.get(i); - liftStaProtocol.setHasTray(hasTray == 1); + //璇诲彇绔欑偣 + JSONArray stationList = data.getJSONArray("stationList"); + if (stationList != null) { + for (int i = 0; i < stationList.size(); i++) { + JSONObject staObj = stationList.getJSONObject(i); + LiftStaProtocol liftStaProtocol = null; + for (LiftStaProtocol staProtocol : liftStaProtocols) { + if(staProtocol.getSiteId().equals(staObj.getInteger("siteId"))){ + liftStaProtocol = staProtocol; + break; + } + } + + if(liftStaProtocol == null){ + continue; + } + + liftStaProtocol.setModel(staObj.getInteger("model") == 1); + liftStaProtocol.setBusy(staObj.getInteger("busy") == 1); + liftStaProtocol.setHasTray(staObj.getInteger("hasTray") == 1); + liftStaProtocol.setDeviceError(staObj.getInteger("deviceError") == 1); + liftStaProtocol.setTaskNo(staObj.getInteger("taskNo")); + liftStaProtocol.setBarcode(staObj.getString("barcode")); + } } - JSONArray carList = data.getJSONArray("carList"); - for (int i = 0; i < carList.size(); i++) { - int hasCar = (int) carList.get(i); - LiftStaProtocol liftStaProtocol = liftStaProtocols.get(i); - liftStaProtocol.setHasCar(hasCar == 1); - } + this.realtimeOriginData = JSON.toJSONString(data); if (System.currentTimeMillis() - liftProtocol.getDeviceDataLog() > 1000 * 5) { //閲囬泦鏃堕棿瓒呰繃5s锛屼繚瀛樹竴娆℃暟鎹褰� @@ -230,27 +245,7 @@ liftProtocol.setDeviceDataLog(System.currentTimeMillis()); } - //灏嗘彁鍗囨満鐘舵�佷繚瀛樿嚦鏁版嵁搴� - BasLiftService basLiftService = SpringUtils.getBean(BasLiftService.class); - BasLift basLift = basLiftService.selectOne(new EntityWrapper<BasLift>() - .eq("lift_no", device.getDeviceNo())); - if (basLift == null) { - basLift = new BasLift(); - //鎻愬崌鏈哄彿 - basLift.setLiftNo(liftProtocol.getLiftNo()); - basLift.setStatus(1); - basLiftService.insert(basLift); - } - //浠诲姟鍙� - basLift.setWrkNo(liftProtocol.getTaskNo()); - //淇敼鏃堕棿 - basLift.setUpdateTime(new Date()); - //璁惧鐘舵�� - basLift.setDeviceStatus(JSON.toJSONString(liftProtocol)); - if (basLiftService.updateById(basLift)) { - OutputQueue.LIFT.offer(MessageFormat.format("銆恵0}銆慬id:{1}] <<<<< 瀹炴椂鏁版嵁鏇存柊鎴愬姛",DateUtils.convert(new Date()), liftProtocol.getLiftNo())); - } - + OutputQueue.LIFT.offer(MessageFormat.format("銆恵0}銆慬id:{1}] <<<<< 瀹炴椂鏁版嵁鏇存柊鎴愬姛",DateUtils.convert(new Date()), liftProtocol.getLiftNo())); } catch (Exception e) { e.printStackTrace(); OutputQueue.LIFT.offer(MessageFormat.format("銆恵0}銆戣鍙栨彁鍗囨満鐘舵�佷俊鎭け璐� ===>> [id:{1}] [ip:{2}] [port:{3}]", DateUtils.convert(new Date()), device.getDeviceNo(), device.getIp(), device.getPort())); @@ -480,6 +475,11 @@ } @Override + public String getRealtimeOriginData() { + return this.realtimeOriginData; + } + + @Override public LiftCommand getPickAndPutCommand(Integer taskNo, Integer pick, Integer put) { LiftCommand command = new LiftCommand(); command.setLiftNo(device.getDeviceNo()); @@ -672,5 +672,8 @@ */ private Boolean overWeight; + //鎻愬崌鏈虹珯鐐� + private List<LiftStaProtocol> liftStaProtocols; + } } -- Gitblit v1.9.1