hecheng пре 3 година
родитељ
комит
7533284cec

+ 7 - 2
zd-modules/zd-forward/src/main/java/com/zd/forward/serivce/CheckService.java

@@ -32,10 +32,11 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.beans.factory.annotation.Value;
-import org.springframework.boot.context.properties.EnableConfigurationProperties;
 import org.springframework.cloud.context.config.annotation.RefreshScope;
 import org.springframework.cloud.context.config.annotation.RefreshScope;
 import org.springframework.core.io.FileSystemResource;
 import org.springframework.core.io.FileSystemResource;
-import org.springframework.http.*;
+import org.springframework.http.HttpEntity;
+import org.springframework.http.HttpHeaders;
+import org.springframework.http.MediaType;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
 import org.springframework.util.MultiValueMap;
 import org.springframework.util.MultiValueMap;
 import org.springframework.web.client.RestTemplate;
 import org.springframework.web.client.RestTemplate;
@@ -98,9 +99,11 @@ public class CheckService {
             //========= 请求超时验证部分开始 ===========
             //========= 请求超时验证部分开始 ===========
             //600 则代表退出验证流程 需要重新刷卡
             //600 则代表退出验证流程 需要重新刷卡
             R<Long> fail = getObjectR(id);
             R<Long> fail = getObjectR(id);
+            logger.info("===============1================={}",fail);
             if (fail.getCode() != 200) return fail;
             if (fail.getCode() != 200) return fail;
             //根据实验室id查询检查项
             //根据实验室id查询检查项
             R<Map<Object, Object>> subject = laboratoryService.getCheckInfo(subId);
             R<Map<Object, Object>> subject = laboratoryService.getCheckInfo(subId);
+            logger.info("===============2================={}",subject);
             if (subject.getCode() != 200) return subject;
             if (subject.getCode() != 200) return subject;
             Map<Object, Object> map = subject.getData();
             Map<Object, Object> map = subject.getData();
             Object labCheckInObj=map.get("checkIn");
             Object labCheckInObj=map.get("checkIn");
@@ -139,6 +142,8 @@ public class CheckService {
                 Map<String,Object> algorithmData = (Map<String, Object>) result.get("algorithm_data");
                 Map<String,Object> algorithmData = (Map<String, Object>) result.get("algorithm_data");
                 Map<String,Object> modelResult = (Map<String, Object>) result.get("model_data");
                 Map<String,Object> modelResult = (Map<String, Object>) result.get("model_data");
                 List<Map<String,Object>> objects= (List<Map<String, Object>>) modelResult.get("objects");
                 List<Map<String,Object>> objects= (List<Map<String, Object>>) modelResult.get("objects");
+                logger.info("============{}============",data);
+                logger.info("============算法请求日志打印:算法ID:{},请求结果:{}",code,algorithmData.getOrDefault("is_alert", ""));
                 //通过的
                 //通过的
                 if(algorithmData.getOrDefault("is_alert", "").toString().equals("false") && !objects.isEmpty()){
                 if(algorithmData.getOrDefault("is_alert", "").toString().equals("false") && !objects.isEmpty()){
                     alarmNum++;
                     alarmNum++;

+ 36 - 0
zd-modules/zd-netty/src/main/java/com/zd/netty/constant/RfidConstants.java

@@ -0,0 +1,36 @@
+package com.zd.netty.constant;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @author Administrator
+ */
+public class RfidConstants{
+
+    private RfidConstants() {
+        throw new IllegalStateException("RfidConstants class");
+    }
+
+
+    static final List<Map<Integer,String>> LIST =new ArrayList<>();
+
+    static {
+        Map<Integer,String> map;
+        map =new HashMap<>(1);
+        map.put(0, "全部");
+        LIST.add(map);
+        map =new HashMap<>(1);
+        map.put(1,"气瓶");
+        LIST.add(map);
+        map =new HashMap<>(1);
+        map.put(2,"化学品");
+        LIST.add(map);
+    }
+
+    public static List<Map<Integer,String>> getConfig(){
+        return LIST;
+    }
+}

+ 12 - 7
zd-modules/zd-netty/src/main/java/com/zd/netty/controller/FridDeviceController.java

@@ -1,15 +1,16 @@
 package com.zd.netty.controller;
 package com.zd.netty.controller;
 
 
 import com.zd.common.core.domain.R;
 import com.zd.common.core.domain.R;
+import com.zd.netty.constant.RfidConstants;
 import com.zd.netty.service.IFridService;
 import com.zd.netty.service.IFridService;
 import com.zd.system.api.laboratory.domain.RemoteLabHardware;
 import com.zd.system.api.laboratory.domain.RemoteLabHardware;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiImplicitParam;
-import io.swagger.annotations.ApiImplicitParams;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.bind.annotation.*;
 
 
 import javax.annotation.Resource;
 import javax.annotation.Resource;
+import java.util.List;
+import java.util.Map;
 
 
 /**
 /**
  * @author Administrator
  * @author Administrator
@@ -29,11 +30,6 @@ public class FridDeviceController {
      *         Session.S2 在辐射范围内重复出现或停止不动的有且仅返回一次数据,当设备离开辐射区域后重置缓存记录,根据厂商提供的文档和本人结合业务应用实际测试,推荐使用此session
      *         Session.S2 在辐射范围内重复出现或停止不动的有且仅返回一次数据,当设备离开辐射区域后重置缓存记录,根据厂商提供的文档和本人结合业务应用实际测试,推荐使用此session
      *         Session.S3 这个暂时没搞懂,选择此session的时候在没有标签在辐射区域会报错,不知道是因为识别设备不够四个还是其他问题,待确定
      *         Session.S3 这个暂时没搞懂,选择此session的时候在没有标签在辐射区域会报错,不知道是因为识别设备不够四个还是其他问题,待确定
      */
      */
-    @ApiImplicitParams({
-            @ApiImplicitParam(name = "index",value = "session 枚举类所提供的下标,从0开始,最大为3,超过会默认为0"),
-            @ApiImplicitParam(name = "uniformPower",value = "设备输出功率,1开始,默认最大33"),
-            @ApiImplicitParam(name = "ipAddress",value = "设备IP地址")
-    })
     @ApiOperation("信道启动FRID扫描监控")
     @ApiOperation("信道启动FRID扫描监控")
     @PostMapping("/startMonitorChannels")
     @PostMapping("/startMonitorChannels")
     public R<Boolean> startMonitorChannels(@RequestBody RemoteLabHardware hardware) {
     public R<Boolean> startMonitorChannels(@RequestBody RemoteLabHardware hardware) {
@@ -60,4 +56,13 @@ public class FridDeviceController {
         service.alarm(hardware);
         service.alarm(hardware);
         return R.ok();
         return R.ok();
     }
     }
+
+    /**
+     * 开启设备警报
+     */
+    @ApiOperation("获取RFID配置")
+    @GetMapping("/config")
+    public R<List<Map<Integer,String>>> config() {
+        return R.ok( RfidConstants.getConfig());
+    }
 }
 }

+ 4 - 4
zd-modules/zd-netty/src/main/java/com/zd/netty/enums/ManufacturerTypeEnum.java

@@ -1,7 +1,7 @@
 package com.zd.netty.enums;
 package com.zd.netty.enums;
 
 
-import com.zd.netty.sdk.DeJuRFIDListenerServiceImpl;
-import com.zd.netty.sdk.DeJuRFIDServiceImpl;
+import com.zd.netty.sdk.DeJuRFIDClientImpl;
+import com.zd.netty.sdk.DeJuRFIDServerImpl;
 import com.zd.netty.sdk.WuYuanRFIDServiceImpl;
 import com.zd.netty.sdk.WuYuanRFIDServiceImpl;
 import com.zd.netty.service.IService;
 import com.zd.netty.service.IService;
 import lombok.AllArgsConstructor;
 import lombok.AllArgsConstructor;
@@ -19,8 +19,8 @@ public enum ManufacturerTypeEnum {
      * 枚举常量
      * 枚举常量
      */
      */
     WU_WEI(1,"无源", WuYuanRFIDServiceImpl.class),
     WU_WEI(1,"无源", WuYuanRFIDServiceImpl.class),
-    DE_JU(2,"惠州德聚服务端", DeJuRFIDServiceImpl.class),
-    DE_JU2(3,"惠州德聚客户端", DeJuRFIDListenerServiceImpl.class);
+    DE_JU(2,"惠州德聚服务端", DeJuRFIDServerImpl.class),
+    DE_JU2(3,"惠州德聚客户端", DeJuRFIDClientImpl.class);
 
 
     /**
     /**
      * 字典码
      * 字典码

+ 14 - 15
zd-modules/zd-netty/src/main/java/com/zd/netty/sdk/DeJuRFIDListenerServiceImpl.java

@@ -5,7 +5,6 @@ import com.gg.reader.api.dal.GServer;
 import com.gg.reader.api.protocol.gx.MsgBaseInventoryEpc;
 import com.gg.reader.api.protocol.gx.MsgBaseInventoryEpc;
 import com.gg.reader.api.protocol.gx.MsgBaseSetBaseband;
 import com.gg.reader.api.protocol.gx.MsgBaseSetBaseband;
 import com.gg.reader.api.protocol.gx.MsgBaseSetPower;
 import com.gg.reader.api.protocol.gx.MsgBaseSetPower;
-import com.gg.reader.api.protocol.gx.MsgBaseStop;
 import com.zd.common.core.enums.HardwareOperate;
 import com.zd.common.core.enums.HardwareOperate;
 import com.zd.common.core.exception.ServiceException;
 import com.zd.common.core.exception.ServiceException;
 import com.zd.netty.service.IService;
 import com.zd.netty.service.IService;
@@ -24,13 +23,13 @@ import java.util.concurrent.ConcurrentHashMap;
  */
  */
 @Slf4j
 @Slf4j
 @Service
 @Service
-public class DeJuRFIDListenerServiceImpl implements IService {
+public class DeJuRFIDClientImpl implements IService {
 
 
     private final Map<String, GServer> serverMap = new ConcurrentHashMap<>();
     private final Map<String, GServer> serverMap = new ConcurrentHashMap<>();
     @Resource
     @Resource
     private RemoteLaboratoryService remoteLaboratoryService;
     private RemoteLaboratoryService remoteLaboratoryService;
     @Resource
     @Resource
-    private DeJuRFIDServiceImpl service;
+    private DeJuRFIDServerImpl service;
 
 
     @Override
     @Override
     public void start(RemoteLabHardware hardware) {
     public void start(RemoteLabHardware hardware) {
@@ -46,7 +45,7 @@ public class DeJuRFIDListenerServiceImpl implements IService {
             server = new GServer();
             server = new GServer();
             serverMap.put(ipAddress, server);
             serverMap.put(ipAddress, server);
         }
         }
-        if (server.open(DeJuRFIDServiceImpl.PORT)) {
+        if (server.open(DeJuRFIDServerImpl.PORT)) {
             log.info("开始监听");
             log.info("开始监听");
             subscribeServerHandler(server, hardware);
             subscribeServerHandler(server, hardware);
         } else {
         } else {
@@ -60,7 +59,7 @@ public class DeJuRFIDListenerServiceImpl implements IService {
         String ipAddress = hardware.getIpAddress();
         String ipAddress = hardware.getIpAddress();
         if (serverMap.containsKey(ipAddress)) {
         if (serverMap.containsKey(ipAddress)) {
             GServer server = serverMap.get(ipAddress);
             GServer server = serverMap.get(ipAddress);
-            DeJuRFIDServiceImpl.close(hardware);
+            DeJuRFIDServerImpl.close(hardware);
             server.close();
             server.close();
             log.info(ipAddress + "---监听结束");
             log.info(ipAddress + "---监听结束");
         }
         }
@@ -84,35 +83,35 @@ public class DeJuRFIDListenerServiceImpl implements IService {
             client.setPrint(true);
             client.setPrint(true);
             subscribeTcpHandler(client, hardware);//订阅Tcp断连上报
             subscribeTcpHandler(client, hardware);//订阅Tcp断连上报
             reSet(hardware, client);
             reSet(hardware, client);
-            DeJuRFIDServiceImpl.subscribeHandler(client, hardware);
+            DeJuRFIDServerImpl.subscribeHandler(client, hardware);
             remoteLaboratoryService.update(HardwareOperate.OPEN, hardware.getIpAddress());
             remoteLaboratoryService.update(HardwareOperate.OPEN, hardware.getIpAddress());
             log.info(client.getName() + "---监听成功");
             log.info(client.getName() + "---监听成功");
         };
         };
     }
     }
 
 
     private void reSet(RemoteLabHardware hardware, GClient client) {
     private void reSet(RemoteLabHardware hardware, GClient client) {
-        MsgBaseSetPower msgBaseSetPower = DeJuRFIDServiceImpl.setPower(hardware, client);
+        MsgBaseSetPower msgBaseSetPower = DeJuRFIDServerImpl.setPower(hardware, client);
         if (0 != msgBaseSetPower.getRtCode()) {
         if (0 != msgBaseSetPower.getRtCode()) {
             log.error("Power configuration error.");
             log.error("Power configuration error.");
-            reConnect(hardware,client);
+            reConnect(hardware, client);
             return;
             return;
         }
         }
-        MsgBaseInventoryEpc msgBaseInventoryEpc = DeJuRFIDServiceImpl.setInventory(hardware, client);
+        MsgBaseInventoryEpc msgBaseInventoryEpc = DeJuRFIDServerImpl.setInventory(hardware, client);
         if (0 != msgBaseInventoryEpc.getRtCode()) {
         if (0 != msgBaseInventoryEpc.getRtCode()) {
             log.error("Inventory epc error.");
             log.error("Inventory epc error.");
-            reConnect(hardware,client);
+            reConnect(hardware, client);
             return;
             return;
         }
         }
-        MsgBaseSetBaseband msgBaseSetBaseband = DeJuRFIDServiceImpl.setSession(hardware, client);
+        MsgBaseSetBaseband msgBaseSetBaseband = DeJuRFIDServerImpl.setSession(hardware, client);
         if (0 != msgBaseSetBaseband.getRtCode()) {
         if (0 != msgBaseSetBaseband.getRtCode()) {
             log.error("Session configuration error.");
             log.error("Session configuration error.");
-            reConnect(hardware,client);
+            reConnect(hardware, client);
         }
         }
     }
     }
 
 
-    private void reConnect(RemoteLabHardware hardware,GClient client){
-        DeJuRFIDServiceImpl.stopMsg(client);
-        reSet(hardware,client);
+    private void reConnect(RemoteLabHardware hardware, GClient client) {
+        DeJuRFIDServerImpl.stopMsg(client);
+        reSet(hardware, client);
     }
     }
 
 
     /**
     /**

+ 12 - 10
zd-modules/zd-netty/src/main/java/com/zd/netty/sdk/DeJuRFIDServiceImpl.java

@@ -26,7 +26,7 @@ import java.util.concurrent.atomic.AtomicInteger;
  */
  */
 @Slf4j
 @Slf4j
 @Service
 @Service
-public class DeJuRFIDServiceImpl implements IService {
+public class DeJuRFIDServerImpl implements IService {
 
 
     private static final ISendService sendService = SpringUtils.getBean("sendService");
     private static final ISendService sendService = SpringUtils.getBean("sendService");
 
 
@@ -144,17 +144,19 @@ public class DeJuRFIDServiceImpl implements IService {
         for (int i = 1; i <= channels; i++) {
         for (int i = 1; i <= channels; i++) {
             Integer power = dicPower.get(i);
             Integer power = dicPower.get(i);
             String tempUniformPower = uniformPowers[i - 1];
             String tempUniformPower = uniformPowers[i - 1];
-            if (power == null || !Objects.equals(power, Integer.valueOf(tempUniformPower))) {
-                dicPower.put(i, Integer.valueOf(tempUniformPower));
-            }
-            msgBaseSetPower.setDicPower(dicPower);
-            client.sendSynMsg(msgBaseSetPower);
-            if (0 == msgBaseSetPower.getRtCode()) {
-                log.info("Power epc success.");
-            } else {
-                log.info("==============设置输出功率失败==============");
+            String[] tempUniformPowers = tempUniformPower.split(":");
+            String temp = tempUniformPowers[0];
+            if (power == null || !Objects.equals(power, Integer.valueOf(temp))) {
+                dicPower.put(i, Integer.valueOf(temp));
             }
             }
         }
         }
+        msgBaseSetPower.setDicPower(dicPower);
+        client.sendSynMsg(msgBaseSetPower);
+        if (0 == msgBaseSetPower.getRtCode()) {
+            log.info("Power epc success.");
+        } else {
+            log.info("==============设置输出功率失败==============");
+        }
     }
     }
 
 
     public static MsgBaseSetBaseband setSession(RemoteLabHardware hardware, GClient client) {
     public static MsgBaseSetBaseband setSession(RemoteLabHardware hardware, GClient client) {

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

@@ -22,17 +22,45 @@ public class SendServiceImpl implements ISendService {
 
 
     @Override
     @Override
     public void send(InventoryTag tag) {
     public void send(InventoryTag tag) {
-        try {
-            bottleService.remoteAdd(tag);
-        } catch (Exception e) {
-            log.info("气瓶服务异常:"+e.getMessage());
-        }
-        try {
-            remoteStockService.rfidCheck(tag);
-        } catch (Exception e) {
-            log.info("化学品服务异常:"+e.getMessage());
+
+        RemoteLabHardware hardware = tag.getRemoteLabHardware();
+        if (hardware != null) {
+            int antId = tag.getAntId();
+            String uniformPower = hardware.getUniformPower();
+            String[] uniformPowers = uniformPower.split(",");
+            Integer channels = hardware.getChannels();
+            for (int i = 1; i <= channels; i++) {
+                handleTag(tag, antId, uniformPowers, i);
+            }
+        } else {
+            try {
+                bottleService.remoteAdd(tag);
+            } catch (Exception e) {
+                log.info("气瓶服务异常:" + e.getMessage());
+            }
+            try {
+                remoteStockService.rfidCheck(tag);
+            } catch (Exception e) {
+                log.info("化学品服务异常:" + e.getMessage());
+            }
         }
         }
+    }
 
 
+    private void handleTag(InventoryTag tag, int antId, String[] uniformPowers, int i) {
+        // 判断有设备配置和触发的天线编码等与配置天线编号
+        if (uniformPowers.length > 0 && antId == i + 1) {
+            String tempUniformPower = uniformPowers[antId - 1];
+            String[] tempUniformPowers = tempUniformPower.split(":");
+            if (tempUniformPowers.length > 1) {
+                String temp = tempUniformPowers[1];
+                if ("0".equals(temp) || "1".equals(temp)) {
+                    bottleService.remoteAdd(tag);
+                }
+                if ("0".equals(temp) || "2".equals(temp)) {
+                    remoteStockService.rfidCheck(tag);
+                }
+            }
+        }
     }
     }
 
 
     @Override
     @Override