From 8bf43c085dabd1ed8b79c8ec5969835dfdf0af8b Mon Sep 17 00:00:00 2001
From: lsh <lsh>
Date: 星期五, 12 七月 2024 22:17:15 +0800
Subject: [PATCH] #
---
src/main/java/com/zy/core/cache/OutputQueue.java | 2 +
src/main/java/com/zy/core/thread/ScaleThread.java | 52 ++++++++++++++++++++------
src/main/java/com/zy/core/ServerBootstrap.java | 12 +++---
3 files changed, 48 insertions(+), 18 deletions(-)
diff --git a/src/main/java/com/zy/core/ServerBootstrap.java b/src/main/java/com/zy/core/ServerBootstrap.java
index 75fd83d..74bc024 100644
--- a/src/main/java/com/zy/core/ServerBootstrap.java
+++ b/src/main/java/com/zy/core/ServerBootstrap.java
@@ -145,12 +145,12 @@
SlaveConnection.put(SlaveType.Ste, ste.getId(), steThread);
}
// 鍒濆鍖栫绉ょ嚎绋�
-// log.info("鍒濆鍖栫绉ょ嚎绋�...................................................");
-// for (Slave scale : slaveProperties.getScale()) {
-// ScaleThread barcodeThread = new ScaleThread(scale);
-// new Thread(barcodeThread).start();
-// SlaveConnection.put(SlaveType.Scale, scale.getId(), barcodeThread);
-// }
+ log.info("鍒濆鍖栫绉ょ嚎绋�...................................................");
+ for (Slave scale : slaveProperties.getScale()) {
+ ScaleThread barcodeThread = new ScaleThread(scale);
+ new Thread(barcodeThread).start();
+ SlaveConnection.put(SlaveType.Scale, scale.getId(), barcodeThread);
+ }
}
diff --git a/src/main/java/com/zy/core/cache/OutputQueue.java b/src/main/java/com/zy/core/cache/OutputQueue.java
index 0a77e31..41a0101 100644
--- a/src/main/java/com/zy/core/cache/OutputQueue.java
+++ b/src/main/java/com/zy/core/cache/OutputQueue.java
@@ -19,4 +19,6 @@
public static ArrayBlockingQueue<String> RGV = new ArrayBlockingQueue<>(32);
// 绌挎杞﹁緭鍑烘棩蹇�
public static ArrayBlockingQueue<String> STE = new ArrayBlockingQueue<>(32);
+ // 纾呯Г杈撳嚭鏃ュ織
+ public static ArrayBlockingQueue<JSONObject> SCALE = new ArrayBlockingQueue<>(32);
}
diff --git a/src/main/java/com/zy/core/thread/ScaleThread.java b/src/main/java/com/zy/core/thread/ScaleThread.java
index c5a2d4b..dc7bf98 100644
--- a/src/main/java/com/zy/core/thread/ScaleThread.java
+++ b/src/main/java/com/zy/core/thread/ScaleThread.java
@@ -1,8 +1,14 @@
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.core.Slave;
import com.zy.core.ThreadHandler;
+import com.zy.core.cache.OutputQueue;
import lombok.Data;
import lombok.extern.slf4j.Slf4j;
@@ -13,6 +19,7 @@
import java.net.Socket;
import java.net.SocketAddress;
import java.net.SocketTimeoutException;
+import java.util.Date;
/**
* 纾呯Г绾跨▼
@@ -43,6 +50,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);
@@ -66,7 +94,7 @@
// log.info("鏉$爜鎵弿浠繛鎺ユ垚鍔� ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort());
} 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());
return false;
}
return true;
@@ -76,18 +104,18 @@
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());
}
@@ -111,8 +139,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