Browse Source

设备信息查询修改

jingyuanchao 1 year ago
parent
commit
2c5447174a

+ 2 - 0
soc-api/soc-api-system/src/main/java/com/xunmei/system/api/dto/protection/VideoRecorderHardDiskDetectionEditDto.java

@@ -44,6 +44,8 @@ public class VideoRecorderHardDiskDetectionEditDto {
 
    @ApiModelProperty(value = "唯一编码")
    private String token;
+   @ApiModelProperty(value = "设备产品名称",notes = "topic中的productName")
+   private String productName;
    @ApiModelProperty(value = "设备名称",notes = "topic中的deviceName")
    private String deviceName;
 }

+ 2 - 1
soc-modules/soc-modules-mediator/src/main/java/com/xunmei/mediator/api/video/service/impl/IotDvrHardDiskDetectionServiceImpl.java

@@ -98,6 +98,7 @@ public class IotDvrHardDiskDetectionServiceImpl extends ServiceImpl<IotDvrHardDi
             dto.setOrganizationGuid(sysOrg.getCode());
             dto.setToken(token);
             dto.setDeviceName(req.getDeviceName());
+            dto.setProductName(req.getProductName());
 
             return saveData(dto, req.getId());
         } catch (IllegalAccessException e) {
@@ -131,7 +132,7 @@ public class IotDvrHardDiskDetectionServiceImpl extends ServiceImpl<IotDvrHardDi
             }
             String equipmentCode = videoRecorderHardDiskDetectionEditDto.getEquipmentCode();
             //final IotDevice device = iIotDeviceService.findByHostCode(equipmentCode, org.getId());
-            IotDeviceInfo device = iotDeviceInfoService.selectByTypeAndCode(videoRecorderHardDiskDetectionEditDto.getToken(), DeviceTypeEnum.DVS.getCode(), videoRecorderHardDiskDetectionEditDto.getDeviceName());
+            IotDeviceInfo device = iotDeviceInfoService.selectByTypeAndCode(videoRecorderHardDiskDetectionEditDto.getToken(), DeviceTypeEnum.DVS.getCode(), videoRecorderHardDiskDetectionEditDto.getProductName(), videoRecorderHardDiskDetectionEditDto.getDeviceName());
 
             if (ObjectUtil.isNull(device)) {
                 error.setSuccess(false);

+ 3 - 2
soc-modules/soc-modules-mediator/src/main/java/com/xunmei/mediator/api/video/service/impl/VideoDiagnosisRecordServiceImpl.java

@@ -107,6 +107,7 @@ public class VideoDiagnosisRecordServiceImpl extends ServiceImpl<VideoDiagnosisR
             dto.setDetailInfo(req.getDetailInfo());
             SysOrg sysOrg = iotServerInfoService.selectOrgByToken(obj.getToken());
             dto.setOrganizationGuid(sysOrg.getCode());
+            dto.setProductName(req.getProductName());
             dto.setDeviceName(req.getDeviceName());
             dto.setToken(req.getToken());
             return saveData(dto, obj.getId());
@@ -166,7 +167,7 @@ public class VideoDiagnosisRecordServiceImpl extends ServiceImpl<VideoDiagnosisR
                 map.put("error", error);
                 return map;
             }
-            IotDeviceInfo channel = iotDeviceInfoService.selectByTypeAndHostAndCode(videoDiagnosisDto.getToken(), videoDiagnosisDto.getEquipmentCode(), videoDiagnosisDto.getChannelCode());
+            IotDeviceInfo channel = iotDeviceInfoService.selectByTypeAndHostAndCode(videoDiagnosisDto.getToken(), videoDiagnosisDto.getEquipmentCode(), videoDiagnosisDto.getProductName(),videoDiagnosisDto.getChannelCode());
             if (ObjectUtil.isNull(channel)) {
                 error.setSuccess(false);
                 error.setErrorMsg("通道/设备不存在!");
@@ -274,7 +275,7 @@ public class VideoDiagnosisRecordServiceImpl extends ServiceImpl<VideoDiagnosisR
         videoDiagnosis.setOrgName(org.getShortName());
         videoDiagnosis.setOrgPath(org.getPath());
         videoDiagnosis.setImgUrl(videoDiagnosisDto.getImgUrl());
-        IotDeviceInfo hostDevice = iotDeviceInfoService.selectByTypeAndCode(videoDiagnosisDto.getToken(), DeviceTypeEnum.DVS.getCode(), videoDiagnosisDto.getDeviceName());
+        IotDeviceInfo hostDevice = iotDeviceInfoService.selectByTypeAndCode(videoDiagnosisDto.getToken(), DeviceTypeEnum.DVS.getCode(), videoDiagnosisDto.getProductName(), videoDiagnosisDto.getDeviceName());
         if (hostDevice != null) {
             videoDiagnosis.setEquipmentName(hostDevice.getDeviceName());
         }

+ 3 - 2
soc-modules/soc-modules-mediator/src/main/java/com/xunmei/mediator/api/video/service/impl/VideoIntegrityCheckServiceImpl.java

@@ -136,6 +136,7 @@ public class VideoIntegrityCheckServiceImpl extends ServiceImpl<VideoIntegrityCh
         dst.setLoseSpan(req.getLoseSpan());
         dst.setRecordSpan(req.getRecordSpan());
         dst.setCheckSpan(req.getCheckSpan());
+        dst.setProductName(req.getProductName());
         dst.setDeviceName(req.getDeviceName());
         dst.setToken(req.getToken());
         return dst;
@@ -159,7 +160,7 @@ public class VideoIntegrityCheckServiceImpl extends ServiceImpl<VideoIntegrityCh
             northErrorService.saveError(new NorthError(msgId, "/video/complete", videoIntegrityCheckDto, "参数非法:organizationGuid:" + organizationGuid + "不正确"));
             return ReceiveErrorDto.error("参数非法:organizationGuid:" + organizationGuid + "不正确");
         }
-        IotDeviceInfo channel = iotDeviceInfoService.selectByTypeAndHostAndCode(videoIntegrityCheckDto.getToken(), videoIntegrityCheckDto.getEquipmentCode(), videoIntegrityCheckDto.getChannelCode());
+        IotDeviceInfo channel = iotDeviceInfoService.selectByTypeAndHostAndCode(videoIntegrityCheckDto.getToken(), videoIntegrityCheckDto.getEquipmentCode(),videoIntegrityCheckDto.getProductName(), videoIntegrityCheckDto.getChannelCode());
         //final IotDvrChannel channel = dvrChannelService.findChannel(videoIntegrityCheckDto.getChannelCode(), videoIntegrityCheckDto.getEquipmentCode(), org.getId());
         if (ObjectUtil.isNull(channel)) {
             northErrorService.saveError(new NorthError(msgId, "/video/complete", videoIntegrityCheckDto, "通道/设备不存在"));
@@ -180,7 +181,7 @@ public class VideoIntegrityCheckServiceImpl extends ServiceImpl<VideoIntegrityCh
         }
 
         //获取监控主机
-        IotDeviceInfo hostDevice = iotDeviceInfoService.selectByTypeAndCode(videoIntegrityCheckDto.getToken(), DeviceTypeEnum.DVS.getCode(), videoIntegrityCheckDto.getDeviceName());
+        IotDeviceInfo hostDevice = iotDeviceInfoService.selectByTypeAndCode(videoIntegrityCheckDto.getToken(), DeviceTypeEnum.DVS.getCode(),videoIntegrityCheckDto.getProductName(), videoIntegrityCheckDto.getDeviceName());
 
         if (hostDevice == null) {
             northErrorService.saveError(new NorthError(msgId, "/video/complete", videoIntegrityCheckDto, "监控主机不存在"));

+ 2 - 0
soc-modules/soc-modules-mediator/src/main/java/com/xunmei/mediator/domain/dto/videoDiagnosis/VideoDiagnosisDto.java

@@ -29,6 +29,8 @@ public class VideoDiagnosisDto implements IRedisCompare {
 
     @ApiModelProperty(value = "唯一编码")
     private String token;
+    @ApiModelProperty(value = "设备产品名称",notes = "topic中的productName")
+    private String productName;
     @ApiModelProperty(value = "设备名称",notes = "topic中的deviceName")
     private String deviceName;
 

+ 2 - 0
soc-modules/soc-modules-mediator/src/main/java/com/xunmei/mediator/domain/dto/videoDiagnosis/VideoDiagnosisReq.java

@@ -35,6 +35,8 @@ public class VideoDiagnosisReq{
 
     @ApiModelProperty(value = "唯一编码")
     private String token;
+    @ApiModelProperty(value = "设备产品名称",notes = "topic中的productName")
+    private String productName;
     @ApiModelProperty(value = "设备名称",notes = "topic中的deviceName")
     private String deviceName;
 }

+ 2 - 1
soc-modules/soc-modules-mediator/src/main/java/com/xunmei/mediator/domain/dto/videoIntegrityCheck/VideoIntegrityCheckDto.java

@@ -35,9 +35,10 @@ public class VideoIntegrityCheckDto implements IRedisCompare {
 
     @ApiModelProperty(value = "唯一编码")
     private String token;
+    @ApiModelProperty(value = "设备产品名称",notes = "topic中的productName")
+    private String productName;
     @ApiModelProperty(value = "设备名称",notes = "topic中的deviceName")
     private String deviceName;
-
     @Override
     public String toKey() {
         return RedisKey.VIDEO_INTEGRITY_CHECK_KEY;

+ 2 - 2
soc-modules/soc-modules-mediator/src/main/java/com/xunmei/mediator/iot/service/IIotDeviceInfoService.java

@@ -13,7 +13,7 @@ public interface IIotDeviceInfoService extends IService<IotDeviceInfo> {
      * @param code
      * @return
      */
-    IotDeviceInfo selectByTypeAndCode(String token,String type, String code);
+    IotDeviceInfo selectByTypeAndCode(String token,String deviceType, String product,String code);
 
     /**
      * 根据 设备类型,主机code,设备code,获取摄像头设备信息
@@ -22,7 +22,7 @@ public interface IIotDeviceInfoService extends IService<IotDeviceInfo> {
      * @param deviceCode
      * @return
      */
-    IotDeviceInfo selectByTypeAndHostAndCode(String type, String hostCode, String deviceCode);
+    IotDeviceInfo selectByTypeAndHostAndCode(String type, String hostCode,String product, String deviceCode);
 
 
     /**

+ 6 - 4
soc-modules/soc-modules-mediator/src/main/java/com/xunmei/mediator/iot/service/impl/IotDeviceInfoServiceImpl.java

@@ -29,16 +29,17 @@ public class IotDeviceInfoServiceImpl extends ServiceImpl<IotDeviceInfoMapper, I
      * @param deviceCode
      * @return
      */
-    public IotDeviceInfo selectByTypeAndCode(String token, String deviceType, String deviceCode) {
+    public IotDeviceInfo selectByTypeAndCode(String token, String deviceType, String product, String deviceCode) {
         /**
          * RedisUtils,加入缓存机制
          */
-        String key = DeviceCacheEnum.IOT_BASE_DEVICE_INFO.getCode() + token + "_" + deviceType + "_" + deviceCode;
+        String key = DeviceCacheEnum.IOT_BASE_DEVICE_INFO.getCode() + token + "_" + deviceType + "_" + product + "_" + deviceCode;
         IotDeviceInfo info = RedisUtils.getCacheObject(key);
         if (info == null) {
             QueryWrapper<IotDeviceInfo> qw = new QueryWrapper();
             qw.lambda()
                     .eq(IotDeviceInfo::getIotToken, token)
+                    .eq(IotDeviceInfo::getDeviceProduct, product)
                     .eq(IotDeviceInfo::getDeviceType, deviceType)
                     .eq(IotDeviceInfo::getDeviceCode, deviceCode);
             IotDeviceInfo one = getOne(qw);
@@ -57,14 +58,15 @@ public class IotDeviceInfoServiceImpl extends ServiceImpl<IotDeviceInfoMapper, I
      * @param deviceCode
      * @return
      */
-    public IotDeviceInfo selectByTypeAndHostAndCode(String token, String hostCode, String deviceCode) {
+    public IotDeviceInfo selectByTypeAndHostAndCode(String token, String hostCode, String product, String deviceCode) {
 
-        String key = DeviceCacheEnum.IOT_CHANNEL_INFO.getCode() + token + "_" + hostCode + "_" + deviceCode;
+        String key = DeviceCacheEnum.IOT_CHANNEL_INFO.getCode() + token + "_" + hostCode + "_" + product + "_" + deviceCode;
         IotDeviceInfo info = RedisUtils.getCacheObject(key);
         if (info == null) {
             QueryWrapper<IotDeviceInfo> qw = new QueryWrapper();
             qw.lambda().eq(IotDeviceInfo::getIotToken, token)
                     .eq(IotDeviceInfo::getHostCode, hostCode)
+                    .eq(IotDeviceInfo::getDeviceProduct, product)
                     .eq(IotDeviceInfo::getDeviceCode, deviceCode);
             IotDeviceInfo one = getOne(qw);
             if (one != null) {

+ 10 - 1
soc-modules/soc-modules-mediator/src/main/java/com/xunmei/mediator/iot/service/impl/IotDeviceStatusServiceImpl.java

@@ -8,10 +8,14 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.xunmei.common.core.utils.DateUtils;
 import com.xunmei.common.core.web.page.TableDataInfo;
 import com.xunmei.mediator.iot.mapper.IotDeviceStatusMapper;
+import com.xunmei.mediator.iot.service.IIotDeviceInfoService;
 import com.xunmei.mediator.iot.service.IotDeviceStatusService;
 import com.xunmei.mediator.websocket.dto.WebsocketExecuteReq;
 import com.xunmei.mediator.websocket.dto.WebsocketResult;
+import com.xunmei.mediator.websocket.enums.DeviceTypeEnum;
+import com.xunmei.mediator.websocket.enums.ProductEnums;
 import com.xunmei.system.api.domain.iot.IotDeviceStatus;
+import com.xunmei.system.api.enums.DeviceType;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
@@ -26,6 +30,8 @@ import org.springframework.stereotype.Service;
 public class IotDeviceStatusServiceImpl extends ServiceImpl<IotDeviceStatusMapper, IotDeviceStatus> implements IotDeviceStatusService {
     @Autowired
     private IotDeviceStatusMapper iotDeviceStatusMapper;
+    @Autowired
+    private IIotDeviceInfoService iotDeviceInfoService;
 
     /**
      * {
@@ -74,8 +80,11 @@ public class IotDeviceStatusServiceImpl extends ServiceImpl<IotDeviceStatusMappe
     @Override
     public WebsocketResult dealDeviceStatusChange(WebsocketExecuteReq req) {
         final JSONObject header = req.getHeader();
-        final Object data = req.getData();
+        final JSONArray data = (JSONArray) req.getData();
+        final String productName = req.getProductName();
+        final DeviceTypeEnum deviceTypeEnum = DeviceTypeEnum.valueOf(productName);
 
+        //iotDeviceInfoService.selectByTypeAndCode()
 
         return null;
     }

+ 13 - 13
soc-modules/soc-modules-mediator/src/main/java/com/xunmei/mediator/websocket/service/impl/WebsocketServiceImpl.java

@@ -7,7 +7,6 @@ import com.xunmei.common.core.domain.iot.domain.IotAlarmDefenceArea;
 import com.xunmei.common.core.domain.iot.domain.IotAlarmSubsystem;
 import com.xunmei.common.core.domain.iot.domain.IotDvrDisk;
 import com.xunmei.common.core.domain.iot.domain.IotServerInfo;
-import com.xunmei.common.core.utils.JacksonUtils;
 import com.xunmei.common.core.utils.StringUtils;
 import com.xunmei.common.redis.utils.RedisUtils;
 import com.xunmei.mediator.api.protection.service.IotAlarmDefenceAreaService;
@@ -19,7 +18,6 @@ import com.xunmei.mediator.iot.service.IIotDeviceInfoService;
 import com.xunmei.mediator.websocket.constant.WebSocketConstants;
 import com.xunmei.mediator.websocket.dto.DeviceBaseInfo;
 import com.xunmei.mediator.websocket.dto.WebsocketExecuteReq;
-import com.xunmei.mediator.websocket.dto.WebsocketResult;
 import com.xunmei.mediator.websocket.dto.alarmHost.AlarmHostBaseInfo;
 import com.xunmei.mediator.websocket.dto.alarmHost.AlarmInputInfo;
 import com.xunmei.mediator.websocket.dto.alarmHost.CommunicationParameter;
@@ -30,7 +28,6 @@ import com.xunmei.mediator.websocket.dto.dvs.DvsBaseInfo;
 import com.xunmei.mediator.websocket.dto.dvs.DvsInfo;
 import com.xunmei.mediator.websocket.enums.DeviceTypeEnum;
 import com.xunmei.mediator.websocket.enums.ProductEnums;
-import com.xunmei.mediator.websocket.holder.WebSocketSessionHolder;
 import com.xunmei.mediator.websocket.redis.WebsocketPublisher;
 import com.xunmei.mediator.websocket.service.RouterService;
 import com.xunmei.mediator.websocket.service.WebsocketService;
@@ -88,7 +85,7 @@ public class WebsocketServiceImpl implements WebsocketService, RouterService {
         JSONObject args = new JSONObject();
         args.put("categories", categories);
 
-        IotServerUtils.invokeIotServer(iotServerDeviceTopic,WebSocketConstants.GET_DEVICE_BASE_INFOS,args);
+        IotServerUtils.invokeIotServer(iotServerDeviceTopic, WebSocketConstants.GET_DEVICE_BASE_INFOS, args);
     }
 
     @Override
@@ -97,7 +94,7 @@ public class WebsocketServiceImpl implements WebsocketService, RouterService {
         JSONObject args = new JSONObject();
         args.put("productNames", productNames);
 
-        IotServerUtils.invokeIotServer(iotServerDeviceTopic,WebSocketConstants.GET_DVS_DEVICE_INFOS,args);
+        IotServerUtils.invokeIotServer(iotServerDeviceTopic, WebSocketConstants.GET_DVS_DEVICE_INFOS, args);
     }
 
     @Override
@@ -106,7 +103,7 @@ public class WebsocketServiceImpl implements WebsocketService, RouterService {
         JSONObject args = new JSONObject();
         args.put("productNames", productNames);
 
-        IotServerUtils.invokeIotServer(iotServerDeviceTopic,WebSocketConstants.GET_ALARM_HOST_DEVICE_INFOS,args);
+        IotServerUtils.invokeIotServer(iotServerDeviceTopic, WebSocketConstants.GET_ALARM_HOST_DEVICE_INFOS, args);
     }
 
     /**
@@ -168,6 +165,7 @@ public class WebsocketServiceImpl implements WebsocketService, RouterService {
 
     /**
      * dvs下通道、硬盘、dvs扩展信息基础信息
+     *
      * @param dvsBaseInfo
      * @param token
      * @throws Exception
@@ -233,6 +231,7 @@ public class WebsocketServiceImpl implements WebsocketService, RouterService {
 
     /**
      * 报警主机和dvs基础信息
+     *
      * @param deviceBaseInfos
      * @param token
      * @throws Exception
@@ -281,6 +280,7 @@ public class WebsocketServiceImpl implements WebsocketService, RouterService {
 
     /**
      * 报警主机下 子系统及防区基础数据和报警主机扩展信息
+     *
      * @param alarmHostBaseInfo
      * @param token
      * @throws Exception
@@ -394,7 +394,7 @@ public class WebsocketServiceImpl implements WebsocketService, RouterService {
             log.error("同步视频类基础信息,获取DVS扩展信息为空");
         } else {
             for (CommunicationParameter parameter : communicationParameterList) {
-                IotDeviceInfo info = iIotDeviceInfoService.selectByTypeAndCode(token, DeviceTypeEnum.DVS.getCode(), parameter.getDeviceName());
+                IotDeviceInfo info = iIotDeviceInfoService.selectByTypeAndCode(token, DeviceTypeEnum.DVS.getCode(), parameter.getProductName(), parameter.getDeviceName());
                 IotDeviceInfoExtend extend = iIotDeviceInfoExtendService.selectByProductDeviceNameAndToken(token, DeviceTypeEnum.DVS.getCode(), parameter.getDeviceName());
                 if (info == null) {
                     continue;
@@ -502,7 +502,7 @@ public class WebsocketServiceImpl implements WebsocketService, RouterService {
             log.error("同步视频类基础信息,获取通道信息为空");
         } else {
             for (ChannelInfo channelInfo : channelInfos) {
-                IotDeviceInfo info = iIotDeviceInfoService.selectByTypeAndHostAndCode(token, channelInfo.getDeviceName(), channelInfo.getChannelIndex());
+                IotDeviceInfo info = iIotDeviceInfoService.selectByTypeAndHostAndCode(token, channelInfo.getDeviceName(), channelInfo.getProductName(), channelInfo.getChannelIndex());
                 if (info == null) {
                     info = createChannelInfo(channelInfo, serverInfo);
                     addList.add(info);
@@ -643,7 +643,7 @@ public class WebsocketServiceImpl implements WebsocketService, RouterService {
             log.error("同步主机基础信息,获取主机信息为空");
         } else {
             for (DeviceBaseInfo deviceBaseInfo : deviceBaseInfos) {
-                IotDeviceInfo info = iIotDeviceInfoService.selectByTypeAndCode(token, getDeviceType(deviceBaseInfo.getCategories()), deviceBaseInfo.getDeviceName());
+                IotDeviceInfo info = iIotDeviceInfoService.selectByTypeAndCode(token, getDeviceType(deviceBaseInfo.getCategories()), deviceBaseInfo.getProductName(), deviceBaseInfo.getDeviceName());
                 if (info == null) {
                     info = createHostInfo(deviceBaseInfo, serverInfo);
                     addList.add(info);
@@ -884,14 +884,14 @@ public class WebsocketServiceImpl implements WebsocketService, RouterService {
         try {
             if (WebSocketConstants.GET_DEVICE_BASE_INFOS.equals(req.getEvent())) {
                 JSONObject object = (JSONObject) req.getData();
-                if (object != null){
+                if (object != null) {
                     List<DeviceBaseInfo> deviceBaseInfos = (List<DeviceBaseInfo>) object.get("deviceBaseInfos");
-                    dealBaseDeviceInfo(deviceBaseInfos,req.getToken());
+                    dealBaseDeviceInfo(deviceBaseInfos, req.getToken());
                 }
             } else if (WebSocketConstants.GET_ALARM_HOST_DEVICE_INFOS.equals(req.getEvent())) {
                 dealAlarmHostBaseInfo((AlarmHostBaseInfo) req.getData(), req.getToken());
-            }else if(WebSocketConstants.GET_DVS_DEVICE_INFOS.equals(req.getEvent())){
-                dealDvsBaseInfo((DvsBaseInfo) req.getData(),req.getToken());
+            } else if (WebSocketConstants.GET_DVS_DEVICE_INFOS.equals(req.getEvent())) {
+                dealDvsBaseInfo((DvsBaseInfo) req.getData(), req.getToken());
             }
         } catch (Exception e) {
             e.printStackTrace();