|
@@ -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);
|
|
|
}
|
|
|
|