hecheng 3 anni fa
parent
commit
34a7fd07e7

+ 7 - 2
zd-modules/zd-netty/src/main/java/com/zd/netty/sdk/DeJuRFIDServerImpl.java

@@ -308,6 +308,7 @@ public class DeJuRFIDServerImpl implements IService {
     public void subscribeHandler(GClient client, RemoteLabHardware hardware) {
         String ipAddress = hardware.getIpAddress();
         clientMap.computeIfAbsent(ipAddress, f -> client);
+        String serialNumber = client.getSerialNumber();
         client.onTagEpcLog = (s, logBaseEpcInfo) -> {
             if (logBaseEpcInfo.getResult() == 0) {
                 int antId = logBaseEpcInfo.getAntId();
@@ -321,8 +322,12 @@ public class DeJuRFIDServerImpl implements IService {
                         BeanUtils.copyProperties(logBaseEpcInfo, tag);
                         String readerSerialNumber = logBaseEpcInfo.getReaderSerialNumber();
                         log.info("===========》读取器设备编码:{}", readerSerialNumber);
-                        tag.setSerialNumber(client.getSerialNumber());
-                        tag.setRemoteLabHardware(redisTemplate.opsForValue().get(client.getSerialNumber()));
+                        if (StringUtils.hasLength(serialNumber)){
+                            tag.setSerialNumber(serialNumber);
+                            tag.setRemoteLabHardware(redisTemplate.opsForValue().get(serialNumber));
+                        }else {
+                            tag.setRemoteLabHardware(hardware);
+                        }
                         sendService.send(tag);
                     });
                 }

+ 10 - 9
zd-modules/zd-netty/src/main/java/com/zd/netty/service/impl/SendServiceImpl.java

@@ -39,18 +39,19 @@ public class SendServiceImpl implements ISendService {
     @Override
     public boolean send(InventoryTag tag) {
         String serialNumber = tag.getSerialNumber();
+        RemoteLabHardware hardware = tag.getRemoteLabHardware();
         if (StringUtils.hasLength(serialNumber)){
             log.info("===============》设备编码:{}",serialNumber);
-            RemoteLabHardware hardware = redisTemplate.opsForValue().get(serialNumber);
-            if (hardware!=null){
-                log.info("=========ip:{},设备编码:{}=========",hardware.getIpAddress(),serialNumber);
-                int antId = tag.getAntId();
-                String uniformPower = hardware.getUniformPower();
-                String[] uniformPowers = uniformPower.split(",");
-                return handleTag(tag, antId, uniformPowers);
-            }
-            log.info("=========未获取到设备信息=========");
+            hardware = redisTemplate.opsForValue().get(serialNumber);
+        }
+        if (hardware!=null){
+            log.info("=========ip:{},设备编码:{}=========",hardware.getIpAddress(),serialNumber);
+            int antId = tag.getAntId();
+            String uniformPower = hardware.getUniformPower();
+            String[] uniformPowers = uniformPower.split(",");
+            return handleTag(tag, antId, uniformPowers);
         }
+        log.info("=========未获取到设备信息=========");
         return sendTag(tag,null);
     }