From d6ff18e0ff89d36e80195da43ca40bf3a8f42b2c Mon Sep 17 00:00:00 2001 From: Administrator <pjb> Date: 星期日, 15 六月 2025 09:38:14 +0800 Subject: [PATCH] wms分配库位异常 --- src/main/java/com/zy/core/thread/ScaleThread.java | 61 +++++++++++++++++++++++------- 1 files changed, 47 insertions(+), 14 deletions(-) diff --git a/src/main/java/com/zy/core/thread/ScaleThread.java b/src/main/java/com/zy/core/thread/ScaleThread.java index c5a2d4b..463ea9b 100644 --- a/src/main/java/com/zy/core/thread/ScaleThread.java +++ b/src/main/java/com/zy/core/thread/ScaleThread.java @@ -1,8 +1,15 @@ package com.zy.core.thread; +import com.alibaba.fastjson.JSONObject; import com.core.common.Cools; +import com.core.common.DateUtils; +import com.core.common.SpringUtils; +import com.zy.asrs.entity.BasDevp; +import com.zy.asrs.service.BasDevpService; +import com.zy.asrs.service.DeviceErrorService; import com.zy.core.Slave; import com.zy.core.ThreadHandler; +import com.zy.core.cache.OutputQueue; import lombok.Data; import lombok.extern.slf4j.Slf4j; @@ -13,6 +20,7 @@ import java.net.Socket; import java.net.SocketAddress; import java.net.SocketTimeoutException; +import java.util.Date; /** * 纾呯Г绾跨▼ @@ -43,6 +51,27 @@ String s = new String(read); if (!Cools.isEmpty(s) && s.startsWith("=")) { scale = Double.parseDouble(s.substring(1)); + + //灏嗙О閲嶉噸閲忓啓鍏ヨ澶囧熀纭�鏁版嵁涓殑gross_wt瀛楁 + if (scale > 20) { + BasDevpService basDevpService = SpringUtils.getBean(BasDevpService.class); + Integer staNo = slave.getId() == 1 ? 101 : 201; + BasDevp basDevp = basDevpService.selectById(staNo); + if (!Cools.isEmpty(basDevp)) { + basDevp.setGrossWt(scale); + if (null != basDevpService && !basDevpService.updateById(basDevp)) { + throw new Exception("鏇存柊鏁版嵁搴撴暟鎹け璐�"); + } + JSONObject jsonObject = new JSONObject(); + jsonObject.put("time", DateUtils.convert(new Date(), DateUtils.yyyyMMddHHmmss_F)); + jsonObject.put("id", staNo); + jsonObject.put("scale", scale); + if (OutputQueue.SCALE.size() >= 32) { + OutputQueue.SCALE.poll(); + } + OutputQueue.SCALE.offer(jsonObject); + } + } } } Thread.sleep(100); @@ -55,6 +84,7 @@ @Override public boolean connect() { + try { close(); //1.涓诲姩閲婃斁杩炴帴 //2.鏌愪簺鏈嶅姟鍣ㄥ鎸囧畾ip鏈夐摼璺暟闄愬埗 socket = new Socket(); @@ -64,9 +94,13 @@ dataOutputStream = new DataOutputStream(socket.getOutputStream()); dataInputStream = new DataInputStream(socket.getInputStream()); // log.info("鏉$爜鎵弿浠繛鎺ユ垚鍔� ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort()); + DeviceErrorService deviceErrorService = SpringUtils.getBean(DeviceErrorService.class); + deviceErrorService.deleteDeviceError("scale", slave.getId()); } catch (Exception e) { socket = null; - log.error("鏉$爜鎵弿浠繛鎺ュけ璐ワ紒锛侊紒 ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort()); + log.error("纾呯Г杩炴帴澶辫触锛侊紒锛� ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort()); + DeviceErrorService deviceErrorService = SpringUtils.getBean(DeviceErrorService.class); + deviceErrorService.addDeviceError("scale", slave.getId(), "纾呯Г杩炴帴澶辫触"); return false; } return true; @@ -76,26 +110,25 @@ public void close() { try { if (null != dataOutputStream) { - dataOutputStream.close(); - } - if (null != dataInputStream) { - dataInputStream.close(); - } + dataOutputStream.close(); + } + if (null != dataInputStream) { + dataInputStream.close(); + } // if (null != socket && !socket.isClosed()) { // socket.close(); // } - if (null != socket){ - socket.close(); - } - socket = null; + if (null != socket) { + socket.close(); + } + socket = null; } catch (IOException e) { log.error("SocketClient close Exception:" + e.getMessage()); } } public void write(byte[] msg, int len) throws IOException { - if (null != dataInputStream) - { + if (null != dataInputStream) { dataOutputStream.write(msg, 0, len); dataOutputStream.flush(); } @@ -111,8 +144,8 @@ int len = dataInputStream.read(bytes); byte[] tempBytes = null; if (len > 0) { - tempBytes = new byte[len]; - System.arraycopy(bytes, 0, tempBytes, 0, len); + tempBytes = new byte[len]; + System.arraycopy(bytes, 0, tempBytes, 0, len); } return tempBytes; } -- Gitblit v1.9.1