24282 2 年之前
父節點
當前提交
6d89b94203

+ 1 - 2
src/main/java/com/fjhx/MyMain.java

@@ -15,7 +15,6 @@ import java.net.URISyntaxException;
 import java.nio.charset.StandardCharsets;
 import java.nio.file.Files;
 
-
 public class MyMain {
 
     public static BaseWebSocketClient client = null;
@@ -24,7 +23,7 @@ public class MyMain {
 
     public static void main(String[] args) throws IOException {
 
-        System.out.println("Version: 2023-01-31 15:03");
+        System.out.println("Version: 2023-02-01 09:54");
 
         MyUtil.infoLog("程序启动中...");
 

+ 2 - 0
src/main/java/com/fjhx/service/Operation.java

@@ -5,6 +5,7 @@ import com.fjhx.MyMain;
 import com.fjhx.constant.WebSocketConstant;
 import com.fjhx.entity.ConnectConfig;
 import com.fjhx.entity.MessageEntity;
+import com.fjhx.utils.MyUtil;
 
 import java.util.Date;
 import java.util.List;
@@ -42,6 +43,7 @@ public interface Operation {
         messageEntity.setData(data);
 
         String jsonString = JSONObject.toJSONString(messageEntity);
+        MyUtil.infoLog("rfid:" + rfid + ", data:" + JSONObject.toJSONString(data));
         MyMain.client.send(jsonString);
 
     }

+ 0 - 6
src/main/java/com/fjhx/service/impl/ServiceImpl.java

@@ -91,12 +91,7 @@ public class ServiceImpl implements Service {
     private void close(String sessionId) {
 
         List<Operation> operationList = operationMap.get(sessionId);
-        if (operationList == null) {
-            MyUtil.errorLog("执行close方法,sessionId=" + sessionId + ",operationList == null");
-        }
-
         if (operationList != null) {
-            MyUtil.errorLog("执行close方法,sessionId=" + sessionId + ",operationList.size()=" + operationList.size());
             operationList.forEach(Operation::close);
             operationMap.remove(sessionId);
         }
@@ -118,7 +113,6 @@ public class ServiceImpl implements Service {
         List<Operation> operationList = operationMap.get(sessionId);
 
         if (operationList != null && operationList.size() > 0) {
-            MyUtil.errorLog("newOperationList 有数据,size = " + operationList.size());
             operationList.forEach(Operation::close);
             operationMap.remove(sessionId);
         }

+ 13 - 30
src/main/java/com/fjhx/service/impl/TcpOperation.java

@@ -21,14 +21,20 @@ public class TcpOperation implements Operation {
     private final List<ReaderR2000> readerR2000List = new ArrayList<>();
     private final Set<String> rfidSet = new ConcurrentHashSet<>();
     private final List<Thread> threadList = new ArrayList<>();
+    private boolean monitorFlag = false;
 
     @Override
     public void distinctRead(String userId, String sessionId, List<ConnectConfig> connectConfigList, JSONObject data) {
+        this.monitorFlag = true;
 
         for (ConnectConfig connectConfig : connectConfigList) {
 
             Thread thread = new Thread(() -> {
-                ReaderR2000 reader = service.connect(connectConfig.getIp(), connectConfig.getPort(), getCallBack(userId, sessionId, data));
+                ReaderR2000 reader = service.connect(
+                        connectConfig.getIp(),
+                        connectConfig.getPort(),
+                        getCallBack(userId, sessionId, data)
+                );
                 service.beginInvV2(reader);
                 readerR2000List.add(reader);
             });
@@ -40,10 +46,8 @@ public class TcpOperation implements Operation {
 
     @Override
     public void close() {
-        MyUtil.errorLog("执行close方法,readerR2000List.size() = " + readerR2000List.size());
-
+        this.monitorFlag = false;
         for (ReaderR2000 readerR2000 : readerR2000List) {
-
             try {
                 // 结束扫描
                 service.stopInvV2(readerR2000);
@@ -52,30 +56,6 @@ public class TcpOperation implements Operation {
             } catch (Exception e) {
 
             }
-
-            // boolean stopInvV2Flag;
-            // boolean disconnectFlag;
-            // do {
-            // try {
-            //     // 结束扫描
-            //     stopInvV2Flag = service.stopInvV2(readerR2000);
-            //     // 关闭连接
-            //     disconnectFlag = service.disconnect(readerR2000);
-            // } catch (Exception e) {
-            //     MyUtil.errorLog("关闭程序出现异常");
-            //
-            //     stopInvV2Flag = false;
-            //     disconnectFlag = false;
-            // }
-            //
-            // if (stopInvV2Flag && disconnectFlag) {
-            //     MyUtil.errorLog("关闭程序");
-            // } else {
-            //     MyUtil.errorLog("关闭程序失败");
-            // }
-
-            // } while (!stopInvV2Flag || !disconnectFlag);
-
         }
 
         for (Thread thread : threadList) {
@@ -97,10 +77,13 @@ public class TcpOperation implements Operation {
                 if (ObjectUtil.isEmpty(rfid) || rfidSet.contains(rfid)) {
                     return;
                 }
+                if (!monitorFlag) {
+                    close();
+                    return;
+                }
+
                 rfidSet.add(rfid);
 
-                MyUtil.infoLog("扫描到rfid标签:  userId:" + userId + ", sessionId:" + sessionId + ", instructions:"
-                        + data.getString("instructions") + ", rfid:" + rfid);
                 sendRfidDate(userId, sessionId, rfid, data);
             }
 

+ 0 - 7
src/main/java/com/fjhx/service/impl/UdpOperation.java

@@ -6,7 +6,6 @@ import com.alibaba.fastjson.JSONObject;
 import com.fjhx.constant.UdpConstant;
 import com.fjhx.entity.ConnectConfig;
 import com.fjhx.service.Operation;
-import com.fjhx.utils.MyUtil;
 import com.fjhx.utils.Utility;
 import lombok.SneakyThrows;
 
@@ -35,8 +34,6 @@ public class UdpOperation implements Operation {
      */
     private boolean monitorFlag = true;
 
-
-    @SneakyThrows
     @Override
     public void distinctRead(String userId, String sessionId, List<ConnectConfig> connectConfigList, JSONObject data) {
         this.connectConfigList = connectConfigList;
@@ -85,8 +82,6 @@ public class UdpOperation implements Operation {
                 }
                 rfidSet.add(rfid);
 
-                MyUtil.infoLog("扫描到rfid标签:  userId:" + userId + ", sessionId:" + sessionId + ", instructions:"
-                        + data.getString("instructions") + ", rfid:" + rfid);
                 sendRfidDate(userId, sessionId, rfid, data);
             }
 
@@ -94,7 +89,6 @@ public class UdpOperation implements Operation {
 
     }
 
-    @SneakyThrows
     @Override
     public void close() {
 
@@ -106,7 +100,6 @@ public class UdpOperation implements Operation {
         monitorFlag = false;
     }
 
-
     @SneakyThrows
     private DatagramSocket send(String instruction, ConnectConfig connectConfig) {
         byte[] convert2HexArray = Utility.convert2HexArray(instruction);