Ver Fonte

北向代码优化

jingyuanchao há 1 ano atrás
pai
commit
3bc71dc2db
20 ficheiros alterados com 100 adições e 350 exclusões
  1. 0 7
      soc-api/soc-api-system/src/main/java/com/xunmei/system/api/RemoteDeviceService.java
  2. 0 9
      soc-api/soc-api-system/src/main/java/com/xunmei/system/api/RemoteMediatorService.java
  3. 0 28
      soc-api/soc-api-system/src/main/java/com/xunmei/system/api/dto/device/DeviceReceivePageDto.java
  4. 0 20
      soc-api/soc-api-system/src/main/java/com/xunmei/system/api/dto/protection/DefenceareaPageDto.java
  5. 0 5
      soc-api/soc-api-system/src/main/java/com/xunmei/system/api/factory/RemoteDeviceFallbackFactory.java
  6. 1 11
      soc-api/soc-api-system/src/main/java/com/xunmei/system/api/factory/RemoteMediatorFallbackFactory.java
  7. 3 7
      soc-modules/soc-modules-mediator/src/main/java/com/xunmei/mediator/api/controller/DataController.java
  8. 1 10
      soc-modules/soc-modules-mediator/src/main/java/com/xunmei/mediator/api/controller/MediatorController.java
  9. 2 2
      soc-modules/soc-modules-mediator/src/main/java/com/xunmei/mediator/api/controller/ProtectionController.java
  10. 14 71
      soc-modules/soc-modules-mediator/src/main/java/com/xunmei/mediator/api/service/EquipmentSyncService.java
  11. 3 2
      soc-modules/soc-modules-mediator/src/main/java/com/xunmei/mediator/api/service/IIotDeviceService.java
  12. 3 2
      soc-modules/soc-modules-mediator/src/main/java/com/xunmei/mediator/api/service/IotAlarmSubsystemService.java
  13. 10 50
      soc-modules/soc-modules-mediator/src/main/java/com/xunmei/mediator/api/service/impl/IotAlarmSubSystemServiceImpl.java
  14. 12 10
      soc-modules/soc-modules-mediator/src/main/java/com/xunmei/mediator/api/service/impl/IotDeviceServiceImpl.java
  15. 1 11
      soc-modules/soc-modules-mediator/src/main/java/com/xunmei/mediator/api/service/impl/IotDvrDiskServiceImpl.java
  16. 5 9
      soc-modules/soc-modules-mediator/src/main/java/com/xunmei/mediator/api/service/impl/IotSensorServiceImpl.java
  17. 45 50
      soc-modules/soc-modules-mediator/src/main/java/com/xunmei/mediator/util/RedisCheckRepeatDataUtil.java
  18. 0 9
      soc-modules/soc-modules-system/src/main/java/com/xunmei/system/controller/SysDeviceController.java
  19. 0 6
      soc-modules/soc-modules-system/src/main/java/com/xunmei/system/service/ISysDeviceService.java
  20. 0 31
      soc-modules/soc-modules-system/src/main/java/com/xunmei/system/service/impl/SysDeviceServiceImpl.java

+ 0 - 7
soc-api/soc-api-system/src/main/java/com/xunmei/system/api/RemoteDeviceService.java

@@ -5,17 +5,10 @@ import com.xunmei.common.core.constant.ServiceNameConstants;
 import com.xunmei.common.core.domain.R;
 import com.xunmei.system.api.domain.SysDevice;
 import com.xunmei.system.api.dto.SysDeviceInnerListDto;
-import com.xunmei.system.api.dto.device.DeviceDto;
-import com.xunmei.system.api.dto.device.DeviceReceivePageDto;
-import com.xunmei.system.api.dto.protection.ReceiveErrorDto;
-import com.xunmei.system.api.factory.RemoteConfigFallbackFactory;
-import com.xunmei.system.api.factory.RemoteDeviceFallbackFactory;
 import org.springframework.cloud.openfeign.FeignClient;
 import org.springframework.web.bind.annotation.*;
 
-import java.util.HashMap;
 import java.util.List;
-import java.util.Map;
 
 /**
  * @author :LuoWei

+ 0 - 9
soc-api/soc-api-system/src/main/java/com/xunmei/system/api/RemoteMediatorService.java

@@ -1,16 +1,7 @@
 package com.xunmei.system.api;
 
-import com.xunmei.common.core.constant.SecurityConstants;
 import com.xunmei.common.core.constant.ServiceNameConstants;
-import com.xunmei.common.core.domain.mediator.domain.MediatorCategory;
 import com.xunmei.common.core.web.domain.AjaxResult;
-import com.xunmei.system.api.domain.SysDictData;
-import com.xunmei.system.api.domain.north.MediatorDeviceData;
-import com.xunmei.system.api.domain.north.MediatorDeviceDataLog;
-import com.xunmei.system.api.domain.north.NorthError;
-import com.xunmei.system.api.dto.device.DeviceReceivePageDto;
-import com.xunmei.system.api.enums.DataType;
-import com.xunmei.system.api.factory.RemoteDictDataFallbackFactory;
 import com.xunmei.system.api.factory.RemoteMediatorFallbackFactory;
 import org.springframework.cloud.openfeign.FeignClient;
 import org.springframework.web.bind.annotation.*;

+ 0 - 28
soc-api/soc-api-system/src/main/java/com/xunmei/system/api/dto/device/DeviceReceivePageDto.java

@@ -1,28 +0,0 @@
-package com.xunmei.system.api.dto.device;
-
-import lombok.AllArgsConstructor;
-import lombok.Builder;
-import lombok.Data;
-import lombok.NoArgsConstructor;
-
-import java.util.List;
-
-@Data
-@AllArgsConstructor
-@NoArgsConstructor
-@Builder
-public class DeviceReceivePageDto {
-    private Long totalPage;
-    private Long currPage;
-    private String packageGuid;
-    private String buildTime;
-    private List<DeviceDto> data;
-
-    private String msgId;
-
-    private String branchId;
-
-
-
-
-}

+ 0 - 20
soc-api/soc-api-system/src/main/java/com/xunmei/system/api/dto/protection/DefenceareaPageDto.java

@@ -1,20 +0,0 @@
-package com.xunmei.system.api.dto.protection;
-
-import lombok.AllArgsConstructor;
-import lombok.Builder;
-import lombok.Data;
-import lombok.NoArgsConstructor;
-
-import java.util.List;
-
-@Data
-@AllArgsConstructor
-@NoArgsConstructor
-@Builder
-public class DefenceareaPageDto {
-    private Long totalPage;
-    private Long currPage;
-    private String packageGuid;
-    private String buildTime;
-    private List<DefenceAreaDto> data;
-}

+ 0 - 5
soc-api/soc-api-system/src/main/java/com/xunmei/system/api/factory/RemoteDeviceFallbackFactory.java

@@ -4,17 +4,12 @@ import com.xunmei.common.core.domain.R;
 import com.xunmei.system.api.RemoteDeviceService;
 import com.xunmei.system.api.domain.SysDevice;
 import com.xunmei.system.api.dto.SysDeviceInnerListDto;
-import com.xunmei.system.api.dto.device.DeviceDto;
-import com.xunmei.system.api.dto.device.DeviceReceivePageDto;
-import com.xunmei.system.api.dto.protection.ReceiveErrorDto;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.cloud.openfeign.FallbackFactory;
 import org.springframework.stereotype.Component;
 
-import java.util.HashMap;
 import java.util.List;
-import java.util.Map;
 
 /**
  * @author :LuoWei

+ 1 - 11
soc-api/soc-api-system/src/main/java/com/xunmei/system/api/factory/RemoteMediatorFallbackFactory.java

@@ -1,23 +1,13 @@
 package com.xunmei.system.api.factory;
 
-import com.xunmei.common.core.domain.mediator.domain.MediatorCategory;
 import com.xunmei.common.core.web.domain.AjaxResult;
-import com.xunmei.system.api.RemoteDictDataService;
 import com.xunmei.system.api.RemoteMediatorService;
-import com.xunmei.system.api.domain.SysDictData;
-import com.xunmei.system.api.domain.north.MediatorDeviceData;
-import com.xunmei.system.api.domain.north.MediatorDeviceDataLog;
-import com.xunmei.system.api.domain.north.NorthError;
-import com.xunmei.system.api.dto.device.DeviceReceivePageDto;
-import com.xunmei.system.api.enums.DataType;
+
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.cloud.openfeign.FallbackFactory;
 import org.springframework.stereotype.Component;
 
-import java.util.ArrayList;
-import java.util.List;
-
 /**
  * 字典服务降级处理
  *

+ 3 - 7
soc-modules/soc-modules-mediator/src/main/java/com/xunmei/mediator/api/controller/DataController.java

@@ -5,20 +5,18 @@ import com.alibaba.fastjson.JSONArray;
 import com.xunmei.common.core.constant.SecurityConstants;
 import com.xunmei.common.core.web.domain.AjaxResult;
 import com.xunmei.mediator.api.service.*;
+import com.xunmei.system.api.RemoteDeviceService;
 import com.xunmei.system.api.dto.DataPageDto;
 import com.xunmei.system.api.dto.SensorDto;
 import com.xunmei.system.api.dto.SensorStatusDto;
 import com.xunmei.system.api.dto.device.DeviceDto;
-import com.xunmei.system.api.dto.device.DeviceReceivePageDto;
 import com.xunmei.system.api.dto.protection.NetworkDeviceDetectionEditDto;
 import com.xunmei.system.api.dto.protection.ReceiveErrorDto;
 import com.xunmei.system.api.util.LogUtils;
-import com.xunmei.system.api.RemoteDeviceService;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.web.bind.annotation.*;
 
 import javax.annotation.Resource;
-import java.util.HashMap;
 import java.util.List;
 
 /**
@@ -69,13 +67,11 @@ public class DataController {
      */
     @ApiOperation("设备信息同步")
     @PostMapping({"/api/{branchId}/data/equipmentList"})
-    public ReceiveErrorDto equipmentList(@PathVariable String branchId, String msgId, @RequestBody DeviceReceivePageDto deviceReceivePageDto) {
+    public ReceiveErrorDto equipmentList(@PathVariable String branchId, String msgId, @RequestBody DataPageDto<DeviceDto> deviceReceivePageDto) {
         rabbitMsgIdService.sendMsgId(msgId, "/data/equipmentList", "设备信息同步");
         LogUtils.BASE_INFO_EQUIPMENT.info("【北向接口-{}】【branchId:{}】【msgId:{}】【接收参数:{}】", "设备信息同步:/api/data/equipmentList/", branchId, msgId, JSON.toJSONString(deviceReceivePageDto));
         try {
-            deviceReceivePageDto.setBranchId(branchId);
-            deviceReceivePageDto.setMsgId(msgId);
-            ReceiveErrorDto errorDto = iotDeviceService.saveData(deviceReceivePageDto, SecurityConstants.INNER);
+            ReceiveErrorDto errorDto = iotDeviceService.saveData(deviceReceivePageDto, msgId,branchId);
             LogUtils.BASE_INFO_EQUIPMENT.info("【北向接口-{}】【branchId:{}】【msgId:{}】【返回参数:{}】", "设备信息同步:/api/data/equipmentList/", branchId, msgId, JSON.toJSONString(errorDto));
             return errorDto;
         } catch (Exception e) {

+ 1 - 10
soc-modules/soc-modules-mediator/src/main/java/com/xunmei/mediator/api/controller/MediatorController.java

@@ -1,17 +1,8 @@
 package com.xunmei.mediator.api.controller;
 
-import com.xunmei.common.core.domain.mediator.domain.MediatorCategory;
-import com.xunmei.common.security.annotation.InnerAuth;
-import com.xunmei.mediator.api.service.*;
-import com.xunmei.system.api.domain.north.MediatorDeviceData;
-import com.xunmei.system.api.domain.north.MediatorDeviceDataLog;
-import com.xunmei.system.api.domain.north.NorthError;
-import com.xunmei.system.api.dto.device.DeviceReceivePageDto;
+
 import org.springframework.web.bind.annotation.*;
 
-import javax.annotation.Resource;
-import java.text.ParseException;
-import java.util.List;
 
 /**
  * @author jingyuanchao

+ 2 - 2
soc-modules/soc-modules-mediator/src/main/java/com/xunmei/mediator/api/controller/ProtectionController.java

@@ -6,7 +6,7 @@ import com.xunmei.mediator.api.service.IotAlarmDefenceAreaService;
 import com.xunmei.mediator.api.service.IotAlarmSubsystemService;
 import com.xunmei.mediator.api.service.RabbitMsgIdService;
 import com.xunmei.system.api.dto.DataPageDto;
-import com.xunmei.system.api.dto.protection.DefenceareaPageDto;
+import com.xunmei.system.api.dto.protection.DefenceAreaDto;
 import com.xunmei.system.api.dto.protection.ProtectionEditDto;
 import com.xunmei.system.api.dto.protection.ReceiveErrorDto;
 import com.xunmei.system.api.dto.protection.SensorDataDto;
@@ -34,7 +34,7 @@ public class ProtectionController {
     private IotAlarmDefenceAreaService defenceAreService;
     @ApiOperation("报警主机子系统及防区信息同步")
     @PostMapping({"/api/{branchId}/data/defenceareaList"})
-    public ReceiveErrorDto defenceareaList(@PathVariable String branchId, String msgId, @RequestBody DefenceareaPageDto request) {
+    public ReceiveErrorDto defenceareaList(@PathVariable String branchId, String msgId, @RequestBody  DataPageDto<DefenceAreaDto> request) {
         rabbitMsgIdService.sendMsgId(msgId, "/data/defenceareaList", "报警主机子系统及防区信息同步");
         LogUtils.BASE_INFO_DEFENCEAREA.info("【北向接口-{}】【branchId:{}】【msgId:{}】【接收参数:{}】", "报警主机子系统及防区信息同步:/api/data/defenceareaList", branchId, msgId, JSONArray.toJSONString(request));
         ReceiveErrorDto errorDto = ReceiveErrorDto.success();

+ 14 - 71
soc-modules/soc-modules-mediator/src/main/java/com/xunmei/mediator/api/service/EquipmentSyncService.java

@@ -1,17 +1,12 @@
 package com.xunmei.mediator.api.service;
 
-import cn.hutool.core.collection.ListUtil;
 import cn.hutool.core.date.DateUtil;
 import cn.hutool.core.util.ObjectUtil;
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
-import com.baomidou.dynamic.datasource.annotation.DS;
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
-import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
-import com.fasterxml.jackson.databind.ObjectMapper;
 import com.xunmei.common.core.constant.SecurityConstants;
 import com.xunmei.common.core.domain.iot.domain.IotDevice;
 import com.xunmei.common.core.domain.mediator.domain.*;
@@ -19,27 +14,26 @@ import com.xunmei.common.core.enums.CategoryDataEnum;
 import com.xunmei.common.core.util.BeanHelper;
 import com.xunmei.common.core.utils.DateUtils;
 import com.xunmei.common.core.utils.IDHelper;
-import com.xunmei.mediator.api.mapper.*;
+import com.xunmei.mediator.api.mapper.MediatorAlarmRuleExpressMapper;
+import com.xunmei.mediator.api.mapper.MediatorAlarmRuleMapper;
+import com.xunmei.mediator.api.mapper.MediatorAlarmSystemFieldMapper;
+import com.xunmei.mediator.api.mapper.MediatorTimeTemplateMapper;
 import com.xunmei.mediator.domain.dto.redis.RedisKey;
-import com.xunmei.mediator.util.RedisUtil;
-import com.xunmei.system.api.RemoteDeviceService;
 import com.xunmei.system.api.RemoteOrgService;
-import com.xunmei.system.api.domain.SysDevice;
 import com.xunmei.system.api.domain.SysOrg;
 import com.xunmei.system.api.domain.north.MediatorDeviceData;
 import com.xunmei.system.api.domain.north.MediatorProductDevice;
 import com.xunmei.system.api.domain.north.NorthError;
-import com.xunmei.system.api.dto.device.DeviceData;
 import com.xunmei.system.api.dto.device.DeviceDto;
-import com.xunmei.system.api.dto.device.DeviceReceivePageDto;
-import com.xunmei.system.api.enums.*;
+import com.xunmei.system.api.enums.DataType;
+import com.xunmei.system.api.enums.DeviceType;
+import com.xunmei.system.api.enums.ElectricityMeterAttributes;
+import com.xunmei.system.api.enums.ProductTypeEnum;
 import com.xunmei.system.api.util.LogUtils;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.data.redis.core.RedisTemplate;
 import org.springframework.data.redis.core.StringRedisTemplate;
-import org.springframework.scheduling.annotation.Async;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Propagation;
 import org.springframework.transaction.annotation.Transactional;
@@ -95,7 +89,7 @@ public class EquipmentSyncService {
      * @param
      */
     @Transactional(rollbackFor = Exception.class)
-    public void saveDeviceData(List<DeviceReceivePageDto> pages) {
+    public void saveDeviceData( List<DeviceDto> pages,String msgId, String branchId) {
 
         String key = "base_info_equipment_" + DateUtil.format(new Date(), "yyyy-MM-dd");
         /**
@@ -127,15 +121,9 @@ public class EquipmentSyncService {
         Map<String, MediatorCategory> categorys = new HashMap<>();
         List<IotDevice> olds = new ArrayList();
         List<IotDevice> list = new ArrayList<>();
-        for (int i = 0; i < pages.size(); i++) {
-            DeviceReceivePageDto page = pages.get(i);
-            if (page == null) {
-                continue;
-            }
-            Map<String, List<IotDevice>> rel = analysisDeviceList(page, orgs, categorys);
-            olds.addAll(rel.get("olds"));
-            list.addAll(rel.get("list"));
-        }
+        Map<String, List<IotDevice>> rel = analysisDeviceList(pages, orgs, categorys,msgId,branchId);
+        olds.addAll(rel.get("olds"));
+        list.addAll(rel.get("list"));
         //第一步逻辑删除数据,逻辑删除
         this.iIotDeviceService.updateDeviceDeleted();
 
@@ -170,18 +158,15 @@ public class EquipmentSyncService {
     /**
      * 解析每一页的数据
      *
-     * @param page
+     * @param
      * @return
      */
-    private Map<String, List<IotDevice>> analysisDeviceList(DeviceReceivePageDto page, Map<String, Map<String, Object>> orgs, Map<String, MediatorCategory> categorys) {
+    private Map<String, List<IotDevice>> analysisDeviceList(List<DeviceDto> dtos, Map<String, Map<String, Object>> orgs, Map<String, MediatorCategory> categorys,String msgId, String branchId) {
         Map<String, List<IotDevice>> rel = new HashMap<>();
 
         /**
          * 验证数据正确性,有错误的数据,存储到错误数据中
          */
-        String msgId = page.getMsgId();
-        String branchId = page.getBranchId();
-        List<DeviceDto> dtos = page.getData();
         Iterator var2 = dtos.iterator();
         List<NorthError> errors = new ArrayList<>();
         List<IotDevice> list = new ArrayList<>();
@@ -395,48 +380,6 @@ public class EquipmentSyncService {
         return map;
     }
 
-    /**
-     * 按页码缓存数据,且判断数据是否已经完整
-     *
-     * @param pageData
-     * @return
-     */
-    public List<DeviceReceivePageDto> isCompleted(DeviceReceivePageDto pageData) {
-        String packageGuid = pageData.getPackageGuid();
-        Long currPage = pageData.getCurrPage();
-        Long totalPage = pageData.getTotalPage();
-
-        //生成当前页的redis key值,判断是否已经获取到该分页数据,
-        //若没有获取到,则存入当前页数据,获取到了则继续判断是否拿到所有的数据,
-        //如果拿到了所有的数据则开始处理数据
-        String currPageKey = packageGuid + "_" + currPage;
-        Boolean isExist = stringRedisTemplate.hasKey(currPageKey);
-        if (Boolean.FALSE.equals(isExist)) {
-            String data = JSON.toJSONString(pageData);
-            stringRedisTemplate.opsForValue().set(currPageKey, data);
-            stringRedisTemplate.expire(currPageKey, 1, TimeUnit.DAYS);
-        }
-        List<String> allPageKeyList = new ArrayList<>();
-        for (int i = 1; i <= totalPage; i++) {
-            String everyPageKey = packageGuid + "_" + i;
-            allPageKeyList.add(everyPageKey);
-        }
-        //判断是否拿到所有的数据
-        final List<Boolean> list = allPageKeyList.stream().map(key -> stringRedisTemplate.hasKey(key)).distinct().collect(Collectors.toList());
-        if (list.contains(Boolean.FALSE)){
-            return ListUtil.empty();
-        }
-        return allPageKeyList.stream().map(k -> {
-            String obj =  this.stringRedisTemplate.opsForValue().get(k);
-            if (ObjectUtil.isNotEmpty(obj)) {
-                this.stringRedisTemplate.delete(k);
-                return JSON.parseObject(obj, DeviceReceivePageDto.class);
-            }
-            return null;
-        }).filter(Objects::nonNull).collect(Collectors.toList());
-    }
-
-
     @Transactional(rollbackFor = Exception.class)
     public void analysisItem(MediatorDeviceData deviceData) throws ParseException {
         SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

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

@@ -2,7 +2,8 @@ package com.xunmei.mediator.api.service;
 
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.xunmei.common.core.domain.iot.domain.IotDevice;
-import com.xunmei.system.api.dto.device.DeviceReceivePageDto;
+import com.xunmei.system.api.dto.DataPageDto;
+import com.xunmei.system.api.dto.device.DeviceDto;
 import com.xunmei.system.api.dto.protection.ReceiveErrorDto;
 
 import java.util.List;
@@ -28,7 +29,7 @@ public interface IIotDeviceService extends IService<IotDevice> {
 
     void batchInsertDevice(List<IotDevice> list);
 
-    ReceiveErrorDto saveData(DeviceReceivePageDto deviceReceivePageDto, String inner);
+    ReceiveErrorDto saveData(DataPageDto<DeviceDto> deviceReceivePageDto, String msgId, String branchId);
 
     List<IotDevice> findByCategory(Long categoryId);
 }

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

@@ -3,7 +3,8 @@ package com.xunmei.mediator.api.service;
 
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.xunmei.common.core.domain.iot.domain.IotAlarmSubsystem;
-import com.xunmei.system.api.dto.protection.DefenceareaPageDto;
+import com.xunmei.system.api.dto.DataPageDto;
+import com.xunmei.system.api.dto.protection.DefenceAreaDto;
 import com.xunmei.system.api.dto.protection.ProtectionEditDto;
 import com.xunmei.system.api.dto.protection.ReceiveErrorDto;
 
@@ -18,7 +19,7 @@ import com.xunmei.system.api.dto.protection.ReceiveErrorDto;
 public interface IotAlarmSubsystemService extends IService<IotAlarmSubsystem> {
 
 
-    ReceiveErrorDto defenceAreaList(DefenceareaPageDto request, String branchId, String msgId);
+    ReceiveErrorDto defenceAreaList(DataPageDto<DefenceAreaDto> request, String branchId, String msgId);
 
     IotAlarmSubsystem findByCodeAndOrgId(String defenceAreaCode, Long orgId);
 

+ 10 - 50
soc-modules/soc-modules-mediator/src/main/java/com/xunmei/mediator/api/service/impl/IotAlarmSubSystemServiceImpl.java

@@ -1,6 +1,5 @@
 package com.xunmei.mediator.api.service.impl;
 
-import cn.hutool.core.collection.ListUtil;
 import cn.hutool.core.date.DateUtil;
 import cn.hutool.core.util.ObjectUtil;
 import com.alibaba.fastjson.JSON;
@@ -22,14 +21,19 @@ import com.xunmei.common.core.enums.CategoryDataEnum;
 import com.xunmei.common.core.util.BeanHelper;
 import com.xunmei.common.core.utils.IDHelper;
 import com.xunmei.common.redis.utils.RedisUtils;
+import com.xunmei.mediator.api.mapper.IotAlarmSubsystemMapper;
 import com.xunmei.mediator.api.mapper.MediatorTimeTemplateMapper;
 import com.xunmei.mediator.api.mapper.ProtectionLogMapper;
-import com.xunmei.mediator.api.mapper.IotAlarmSubsystemMapper;
 import com.xunmei.mediator.api.service.*;
+import com.xunmei.mediator.util.RedisCheckRepeatDataUtil;
 import com.xunmei.system.api.RemoteOrgService;
 import com.xunmei.system.api.domain.SysOrg;
 import com.xunmei.system.api.domain.north.NorthError;
-import com.xunmei.system.api.dto.protection.*;
+import com.xunmei.system.api.dto.DataPageDto;
+import com.xunmei.system.api.dto.protection.DefenceAreaDto;
+import com.xunmei.system.api.dto.protection.ProtectionEditDto;
+import com.xunmei.system.api.dto.protection.ReceiveErrorDto;
+import com.xunmei.system.api.dto.protection.SensorDto;
 import com.xunmei.system.api.enums.AlarmRuleExpressOperateEnum;
 import com.xunmei.system.api.enums.DataType;
 import com.xunmei.system.api.enums.ProtectionStatus;
@@ -38,8 +42,6 @@ import com.xunmei.system.api.vo.SysOrgVO;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.collections4.CollectionUtils;
 import org.apache.commons.lang3.StringUtils;
-import org.springframework.data.redis.core.RedisTemplate;
-import org.springframework.data.redis.core.StringRedisTemplate;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
@@ -48,7 +50,6 @@ import java.time.LocalDateTime;
 import java.time.ZoneId;
 import java.time.format.DateTimeFormatter;
 import java.util.*;
-import java.util.concurrent.TimeUnit;
 import java.util.stream.Collectors;
 
 
@@ -68,8 +69,6 @@ public class IotAlarmSubSystemServiceImpl extends ServiceImpl<IotAlarmSubsystemM
     @Resource
     RemoteOrgService orgService;
     @Resource
-    StringRedisTemplate stringRedisTemplate;
-    @Resource
     NorthStatisticsSyncService northStatisticsSyncService;
     @Resource
     IMediatorCategoryService categoryService;
@@ -85,7 +84,6 @@ public class IotAlarmSubSystemServiceImpl extends ServiceImpl<IotAlarmSubsystemM
     private IMediatorAlarmRuleSourceService alarmRuleSourceService;
     @Resource
     private IMediatorAlarmRuleExpressService alarmRuleExpressService;
-
     @Override
     public IotAlarmSubsystem findByCodeAndOrgId(String defenceAreaCode, Long orgId) {
         return lambdaQuery()
@@ -373,8 +371,9 @@ public class IotAlarmSubSystemServiceImpl extends ServiceImpl<IotAlarmSubsystemM
 
     }
 
+
     @Override
-    public ReceiveErrorDto defenceAreaList(DefenceareaPageDto request, String branchId, String msgId) {
+    public ReceiveErrorDto defenceAreaList(DataPageDto<DefenceAreaDto> request, String branchId, String msgId) {
         String packageGuid = request.getPackageGuid();
         if (StringUtils.isEmpty(packageGuid)) {
             return ReceiveErrorDto.error("packageGuid参数非法");
@@ -387,7 +386,7 @@ public class IotAlarmSubSystemServiceImpl extends ServiceImpl<IotAlarmSubsystemM
         if (CollectionUtils.isEmpty(request.getData())) {
             return ReceiveErrorDto.error("报警主机子系统及防区信息为空");
         }
-        final List<DefenceAreaDto> defenceareaList = this.isCompleted(request);
+        final List<DefenceAreaDto> defenceareaList = RedisCheckRepeatDataUtil.isCompleted(request,DefenceAreaDto.class);
         LogUtils.BASE_INFO_DEFENCEAREA.info("判断是否获取全部报警主机子系统及防区信息分页数据:{}", defenceareaList.size() > 0);
         if (ObjectUtil.isEmpty(defenceareaList)) {
             return ReceiveErrorDto.error("尚未获取全部报警主机子系统及防区信息分页数据,暂不处理!");
@@ -602,44 +601,5 @@ public class IotAlarmSubSystemServiceImpl extends ServiceImpl<IotAlarmSubsystemM
 
         return map;
     }
-
-    public List<DefenceAreaDto> isCompleted(DefenceareaPageDto request) {
-        String packageGuid = request.getPackageGuid();
-        Long currPage = request.getCurrPage();
-        Long totalPage = request.getTotalPage();
-        List<DefenceAreaDto> defenceareaList = request.getData();
-
-        //生成当前页的redis key值,判断是否已经获取到该分页数据,
-        //若没有获取到,则存入当前页数据,获取到了则继续判断是否拿到所有的数据,
-        //如果拿到了所有的数据则开始处理数据
-        String currPageKey = packageGuid + "_" + currPage;
-
-        Boolean isExist = stringRedisTemplate.hasKey(currPageKey);
-        if (Boolean.FALSE.equals(isExist)) {
-            String data = JSON.toJSONString(defenceareaList);
-            this.stringRedisTemplate.opsForValue().set(currPageKey, data);
-            this.stringRedisTemplate.expire(currPageKey, 1, TimeUnit.DAYS);
-        }
-
-        List<String> allPageKeyList = new ArrayList<>();
-        for (int i = 1; i <= totalPage; i++) {
-            String everyPageKey = packageGuid + "_" + i;
-            allPageKeyList.add(everyPageKey);
-        }
-        //判断是否拿到所有的数据
-        final List<Boolean> list = allPageKeyList.stream().map(key -> stringRedisTemplate.hasKey(key)).distinct().collect(Collectors.toList());
-        if (list.contains(Boolean.FALSE)) {
-            return ListUtil.empty();
-        }
-        return allPageKeyList.stream().map(k -> {
-            String obj = this.stringRedisTemplate.opsForValue().get(k);
-            if (ObjectUtil.isNotEmpty(obj)) {
-                final List<DefenceAreaDto> defenceAreaDtos = JSON.parseArray(obj, DefenceAreaDto.class);
-                this.stringRedisTemplate.delete(k);
-                return defenceAreaDtos;
-            }
-            return null;
-        }).filter(Objects::nonNull).flatMap(Collection::stream).collect(Collectors.toList());
-    }
 }
 

+ 12 - 10
soc-modules/soc-modules-mediator/src/main/java/com/xunmei/mediator/api/service/impl/IotDeviceServiceImpl.java

@@ -4,14 +4,15 @@ package com.xunmei.mediator.api.service.impl;
 import cn.hutool.core.util.ObjectUtil;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.xunmei.common.core.constant.CacheConstants;
 import com.xunmei.common.core.constant.Constants;
 import com.xunmei.common.core.domain.iot.domain.IotDevice;
 import com.xunmei.mediator.api.mapper.IotDeviceMapper;
 import com.xunmei.mediator.api.service.EquipmentSyncService;
 import com.xunmei.mediator.api.service.IIotDeviceService;
 import com.xunmei.mediator.api.service.NorthStatisticsSyncService;
-import com.xunmei.system.api.dto.device.DeviceReceivePageDto;
+import com.xunmei.mediator.util.RedisCheckRepeatDataUtil;
+import com.xunmei.system.api.dto.DataPageDto;
+import com.xunmei.system.api.dto.device.DeviceDto;
 import com.xunmei.system.api.dto.protection.ReceiveErrorDto;
 import com.xunmei.system.api.enums.DataType;
 import com.xunmei.system.api.util.LogUtils;
@@ -38,6 +39,7 @@ public class IotDeviceServiceImpl extends ServiceImpl<IotDeviceMapper, IotDevice
     private EquipmentSyncService equipmentSyncService;
     @Resource
     private NorthStatisticsSyncService northStatisticsSyncService;
+
     @Override
     public IotDevice findResult(String channelCode, String equipmentCode, Long orgId) {
         return lambdaQuery()
@@ -49,7 +51,7 @@ public class IotDeviceServiceImpl extends ServiceImpl<IotDeviceMapper, IotDevice
     }
 
     @Override
-    public IotDevice findByHostCode(String equipmentCode,Long orgId) {
+    public IotDevice findByHostCode(String equipmentCode, Long orgId) {
         return lambdaQuery()
                 .eq(IotDevice::getOrgId, orgId)
                 .eq(IotDevice::getEquipmentCode, equipmentCode)
@@ -61,9 +63,9 @@ public class IotDeviceServiceImpl extends ServiceImpl<IotDeviceMapper, IotDevice
     @Transactional(rollbackFor = Exception.class)
     public void updateDeviceDeleted() {
         final LambdaUpdateWrapper<IotDevice> wrapper = new LambdaUpdateWrapper<>();
-        wrapper.eq(IotDevice::getSource,1);
-        wrapper.in(IotDevice::getCategoryId,3713671510851584L,3713671920926720L,3713672073773056L,3713672266842112L);
-        wrapper.set(IotDevice::getDeleted,1);
+        wrapper.eq(IotDevice::getSource, 1);
+        wrapper.in(IotDevice::getCategoryId, 3713671510851584L, 3713671920926720L, 3713672073773056L, 3713672266842112L);
+        wrapper.set(IotDevice::getDeleted, 1);
         update(wrapper);
     }
 
@@ -79,7 +81,7 @@ public class IotDeviceServiceImpl extends ServiceImpl<IotDeviceMapper, IotDevice
     }
 
     @Override
-    public ReceiveErrorDto saveData(DeviceReceivePageDto deviceReceivePageDto, String inner) {
+    public ReceiveErrorDto saveData(DataPageDto<DeviceDto> deviceReceivePageDto, String msgId, String branchId) {
         String packageGuid = deviceReceivePageDto.getPackageGuid();
         if (StringUtils.isEmpty(packageGuid)) {
             return ReceiveErrorDto.error("packageGuid参数非法");
@@ -92,18 +94,18 @@ public class IotDeviceServiceImpl extends ServiceImpl<IotDeviceMapper, IotDevice
         if (org.apache.commons.collections4.CollectionUtils.isEmpty(deviceReceivePageDto.getData())) {
             return ReceiveErrorDto.error("设备信息数据为空");
         }
-        List<DeviceReceivePageDto> list = equipmentSyncService.isCompleted(deviceReceivePageDto);
+        final List<DeviceDto> list = RedisCheckRepeatDataUtil.isCompleted(deviceReceivePageDto, DeviceDto.class);
         LogUtils.BASE_INFO_EQUIPMENT.info("设备数据判断是否获取全部分页数据:{}", list.size());
         if (ObjectUtil.isNotEmpty(list)) {
             LogUtils.BASE_INFO_EQUIPMENT.info("设备数据判断是否获取全部分页数据,开始数据处理界面!");
             northStatisticsSyncService.saveOrUpdateBaseCountByDataType(DataType.deviceCount.getIndex(), deviceReceivePageDto.getData().size(), false);
-            equipmentSyncService.saveDeviceData(list);
+            equipmentSyncService.saveDeviceData(list, msgId, branchId);
         }
         return ReceiveErrorDto.success();
     }
 
     @Override
     public List<IotDevice> findByCategory(Long categoryId) {
-        return lambdaQuery().eq(IotDevice::getCategoryId,categoryId).eq(IotDevice::getDeleted,0).list();
+        return lambdaQuery().eq(IotDevice::getCategoryId, categoryId).eq(IotDevice::getDeleted, 0).list();
     }
 }

+ 1 - 11
soc-modules/soc-modules-mediator/src/main/java/com/xunmei/mediator/api/service/impl/IotDvrDiskServiceImpl.java

@@ -2,8 +2,6 @@ package com.xunmei.mediator.api.service.impl;
 
 import cn.hutool.core.util.NumberUtil;
 import cn.hutool.core.util.ObjectUtil;
-import com.alibaba.fastjson.JSON;
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.xunmei.common.core.constant.CacheConstants;
 import com.xunmei.common.core.domain.iot.domain.IotDevice;
@@ -18,8 +16,6 @@ import com.xunmei.mediator.api.service.NorthErrorService;
 import com.xunmei.mediator.api.service.NorthStatisticsSyncService;
 import com.xunmei.mediator.util.CheckDataUtil;
 import com.xunmei.mediator.util.RedisCheckRepeatDataUtil;
-import com.xunmei.system.api.RemoteOrgService;
-import com.xunmei.system.api.domain.SysOrg;
 import com.xunmei.system.api.domain.north.NorthError;
 import com.xunmei.system.api.dto.DataPageDto;
 import com.xunmei.system.api.dto.DvrDiskPageDto;
@@ -30,14 +26,10 @@ import com.xunmei.system.api.util.LogUtils;
 import com.xunmei.system.api.vo.SysOrgVO;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.data.redis.core.RedisTemplate;
-import org.springframework.scheduling.annotation.Async;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
-import javax.annotation.Resource;
 import java.util.*;
-import java.util.concurrent.TimeUnit;
 import java.util.stream.Collectors;
 
 /**
@@ -59,8 +51,6 @@ public class IotDvrDiskServiceImpl extends ServiceImpl<IotDvrDiskMapper, IotDvrD
     private NorthErrorService northErrorService;
     @Autowired
     private IIotDeviceService iotDeviceService;
-    @Autowired
-    private RedisCheckRepeatDataUtil redisCheckRepeatDataUtil;
 
     @Override
     public ReceiveErrorDto saveData(DataPageDto<DvrDiskPageDto> request, String msgId, String branchId) throws Exception {
@@ -68,7 +58,7 @@ public class IotDvrDiskServiceImpl extends ServiceImpl<IotDvrDiskMapper, IotDvrD
         ReceiveErrorDto dto = CheckDataUtil.checkObjFieldIsNull(request);
         if (dto.getSuccess()) {
             //分页数据的存取
-            List<DvrDiskPageDto> dvrdiskPageLists = redisCheckRepeatDataUtil.isCompleted(request, DvrDiskPageDto.class);
+            List<DvrDiskPageDto> dvrdiskPageLists = RedisCheckRepeatDataUtil.isCompleted(request, DvrDiskPageDto.class);
 
             log.info("判断是否获取DVR硬盘空间全部信息分页数据:{}", dvrdiskPageLists.size() > 0 ? true : false);
             if (dvrdiskPageLists.size() > 0) {

+ 5 - 9
soc-modules/soc-modules-mediator/src/main/java/com/xunmei/mediator/api/service/impl/IotSensorServiceImpl.java

@@ -1,29 +1,27 @@
 package com.xunmei.mediator.api.service.impl;
 
 import cn.hutool.core.util.ObjectUtil;
-import com.alibaba.fastjson.JSONArray;
-import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.xunmei.common.core.constant.SecurityConstants;
 import com.xunmei.common.core.domain.iot.domain.IotSensor;
 import com.xunmei.common.core.domain.iot.domain.IotSensorLog;
-import com.xunmei.common.core.util.BeanHelper;
 import com.xunmei.common.core.utils.IDHelper;
 import com.xunmei.mediator.api.mapper.IotSensorMapper;
-import com.xunmei.mediator.api.service.*;
+import com.xunmei.mediator.api.service.EquipmentSyncService;
+import com.xunmei.mediator.api.service.IotSensorLogService;
+import com.xunmei.mediator.api.service.IotSensorService;
+import com.xunmei.mediator.api.service.NorthErrorService;
 import com.xunmei.mediator.util.CheckDataUtil;
 import com.xunmei.mediator.util.RedisCheckRepeatDataUtil;
 import com.xunmei.system.api.RemoteOrgService;
 import com.xunmei.system.api.domain.SysOrg;
 import com.xunmei.system.api.domain.north.MediatorDeviceData;
-import com.xunmei.system.api.domain.north.MediatorDeviceDataLog;
 import com.xunmei.system.api.domain.north.NorthError;
 import com.xunmei.system.api.dto.DataPageDto;
 import com.xunmei.system.api.dto.SensorDto;
 import com.xunmei.system.api.dto.SensorStatusDto;
 import com.xunmei.system.api.dto.protection.ReceiveErrorDto;
-import com.xunmei.system.api.enums.ElectricityMeterAttributes;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.BeanUtils;
@@ -53,8 +51,6 @@ public class IotSensorServiceImpl extends ServiceImpl<IotSensorMapper, IotSensor
     @Resource
     private IotSensorLogService iotSensorLogService;
     @Resource
-    private RedisCheckRepeatDataUtil redisCheckRepeatDataUtil;
-    @Resource
     private EquipmentSyncService equipmentSyncService;
 
     @Override
@@ -155,7 +151,7 @@ public class IotSensorServiceImpl extends ServiceImpl<IotSensorMapper, IotSensor
 
         if (dto.getSuccess()) {
             //分页数据的存取
-            final List<SensorDto> data = redisCheckRepeatDataUtil.isCompleted(request, SensorDto.class);
+            final List<SensorDto> data = RedisCheckRepeatDataUtil.isCompleted(request, SensorDto.class);
 
             log.info("判断是否获取通用传感器全部信息分页数据:{}", data.size() > 0);
             if (data.size() == 0) {

+ 45 - 50
soc-modules/soc-modules-mediator/src/main/java/com/xunmei/mediator/util/RedisCheckRepeatDataUtil.java

@@ -1,21 +1,22 @@
 package com.xunmei.mediator.util;
 
+import cn.hutool.core.collection.ListUtil;
+import cn.hutool.core.util.ObjectUtil;
 import com.alibaba.fastjson.JSON;
+import com.xunmei.common.core.utils.SpringUtils;
 import com.xunmei.system.api.dto.DataPageDto;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.data.redis.core.RedisTemplate;
-import org.springframework.stereotype.Service;
+import org.springframework.data.redis.core.StringRedisTemplate;
 
 import java.util.ArrayList;
+import java.util.Collection;
 import java.util.List;
+import java.util.Objects;
 import java.util.concurrent.TimeUnit;
+import java.util.stream.Collectors;
 
-@Service
 public class RedisCheckRepeatDataUtil {
-    @Autowired
-    private RedisTemplate redisTemplate;
-    @Autowired
-    RedisUtil redisUtil;
+    
+    private static final StringRedisTemplate redisTemplate= SpringUtils.getBean(StringRedisTemplate.class);
     /**
      * 验证是否在段时间内收到重复的数据
      * @param key
@@ -25,48 +26,48 @@ public class RedisCheckRepeatDataUtil {
     public boolean checkData (String key,String value){
         boolean flag = true;
         if(redisTemplate.hasKey(key)){
-            String val = (String) this.redisTemplate.opsForValue().get(key);
+            String val = (String) redisTemplate.opsForValue().get(key);
             if(val!=null){
                 if(value.equals(val)){
                     flag = false;
                 }else{
                     redisTemplate.opsForValue().set(key,value);
-                    this.redisTemplate.expire(key,60, TimeUnit.MINUTES);
+                    redisTemplate.expire(key,60, TimeUnit.MINUTES);
                 }
             }else {
                 redisTemplate.opsForValue().set(key,value);
-                this.redisTemplate.expire(key,60, TimeUnit.MINUTES);
+                redisTemplate.expire(key,60, TimeUnit.MINUTES);
             }
         }else{
             redisTemplate.opsForValue().set(key,value);
-            this.redisTemplate.expire(key,60, TimeUnit.MINUTES);
+            redisTemplate.expire(key,60, TimeUnit.MINUTES);
         }
         return flag;
     }
 
     public boolean checkData (String key,String value,int timeOut){
         boolean flag = true;
-        if(redisTemplate.hasKey(key)){
-            String val = (String) this.redisTemplate.opsForValue().get(key);
+        if(Boolean.TRUE.equals(redisTemplate.hasKey(key))){
+            String val = (String) redisTemplate.opsForValue().get(key);
             if(val!=null){
                 if(value.equals(val)){
                     flag = false;
                 }else{
                     redisTemplate.opsForValue().set(key,value);
                     if(timeOut>0){
-                        this.redisTemplate.expire(key,timeOut, TimeUnit.MINUTES);
+                        redisTemplate.expire(key,timeOut, TimeUnit.MINUTES);
                     }
                 }
             }else {
                 redisTemplate.opsForValue().set(key,value);
                 if(timeOut>0){
-                    this.redisTemplate.expire(key,timeOut, TimeUnit.MINUTES);
+                    redisTemplate.expire(key,timeOut, TimeUnit.MINUTES);
                 }
             }
         }else{
             redisTemplate.opsForValue().set(key,value);
             if(timeOut>0){
-                this.redisTemplate.expire(key,timeOut, TimeUnit.MINUTES);
+                redisTemplate.expire(key,timeOut, TimeUnit.MINUTES);
             }
         }
         return flag;
@@ -79,50 +80,44 @@ public class RedisCheckRepeatDataUtil {
      * @param <T>
      * @return
      */
-    public <T> List<T> isCompleted(DataPageDto<T> request, Class<T> clazz){
-        List<T> resultList = new ArrayList<>();
-        String guid = request.getPackageGuid();
+    public static   <T> List<T> isCompleted(DataPageDto<T> request, Class<T> clazz){
+        String packageGuid = request.getPackageGuid();
         Long currPage = request.getCurrPage();
         Long totalPage = request.getTotalPage();
         List<T> dtoList = request.getData();
 
-        /**
-         * 生成每一页的redis key值
-         */
-        String key = guid + "_"+ currPage;
 
-        /**
-         * 判断是否已经获取到该分页数据,如果已获取到,则直接返回
-         */
-        Boolean isExist = redisTemplate.hasKey(key);
+        //生成当前页的redis key值,判断是否已经获取到该分页数据,
+        //若没有获取到,则存入当前页数据,获取到了则继续判断是否拿到所有的数据,
+        //如果拿到了所有的数据则开始处理数据
+        String currPageKey = packageGuid + "_" + currPage;
 
-        if(!isExist){
+        Boolean isExist = redisTemplate.hasKey(currPageKey);
+        if(Boolean.FALSE.equals(isExist)){
             String data = JSON.toJSONString(dtoList);
-            this.redisTemplate.opsForValue().set(key,data);
-            this.redisTemplate.expire(key,1, TimeUnit.DAYS);
-        }
-        //判断是否完整
-        for (int i = 1; i <=totalPage ; i++) {
-            String ak = guid + "_"+i;
-            Boolean isOk = redisTemplate.hasKey(ak);
-            if(!isOk){
-                return resultList;
-            }
+            redisTemplate.opsForValue().set(currPageKey,data);
+            redisTemplate.expire(currPageKey,1, TimeUnit.DAYS);
         }
-        //数据完整了将数据取出
+        List<String> allPageKeyList = new ArrayList<>();
         for (int i = 1; i <= totalPage; i++) {
-            String ak = guid + "_"+i;
-            Object obj = this.redisTemplate.opsForValue().get(ak);
-            List<T> deviceDtos = JSON.parseArray((String) obj, clazz);
-            if(deviceDtos!=null){
-                resultList.addAll(deviceDtos);
-            }
+            String everyPageKey = packageGuid + "_" + i;
+            allPageKeyList.add(everyPageKey);
         }
-        for (int i = 1; i <= totalPage; i++) {
-            String ak = guid + "_"+i;
-            this.redisUtil.removeByKey(ak);
+        //判断是否拿到所有的数据
+        final List<Boolean> list = allPageKeyList.stream().map(key -> redisTemplate.hasKey(key)).distinct().collect(Collectors.toList());
+        if (list.contains(Boolean.FALSE)) {
+            return ListUtil.empty();
         }
 
-        return resultList;
+        return allPageKeyList.stream().map(k -> {
+             String obj = (String) redisTemplate.opsForValue().get(k);
+            if (ObjectUtil.isNotEmpty(obj)) {
+                final List<T> ts = JSON.parseArray(obj, clazz);
+                redisTemplate.delete(k);
+                return ts;
+            }
+            return null;
+        }).filter(Objects::nonNull).flatMap(Collection::stream).collect(Collectors.toList());
+
     }
 }

+ 0 - 9
soc-modules/soc-modules-system/src/main/java/com/xunmei/system/controller/SysDeviceController.java

@@ -14,21 +14,12 @@ import com.xunmei.common.security.annotation.InnerAuth;
 import com.xunmei.system.api.domain.SysDevice;
 import com.xunmei.system.api.domain.SysDictData;
 import com.xunmei.system.api.domain.SysOrg;
-import com.xunmei.system.api.dto.DataPageDto;
-import com.xunmei.system.api.dto.SensorDto;
-import com.xunmei.system.api.dto.SensorStatusDto;
 import com.xunmei.system.api.dto.SysDeviceInnerListDto;
-import com.xunmei.system.api.dto.device.DeviceDto;
-import com.xunmei.system.api.dto.device.DeviceReceivePageDto;
-import com.xunmei.system.api.dto.protection.ReceiveErrorDto;
-import com.xunmei.system.api.util.LogUtils;
 import com.xunmei.system.service.ISysDictDataService;
 import com.xunmei.system.service.ISysDictTypeService;
 import com.xunmei.system.service.ISysOrgService;
 import com.xunmei.system.util.DeviceExport;
 import lombok.extern.slf4j.Slf4j;
-import org.apache.commons.collections4.CollectionUtils;
-import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.transaction.annotation.Transactional;

+ 0 - 6
soc-modules/soc-modules-system/src/main/java/com/xunmei/system/service/ISysDeviceService.java

@@ -7,13 +7,7 @@ import java.util.List;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.xunmei.common.core.web.page.TableDataInfo;
 import com.xunmei.system.api.domain.SysDevice;
-import com.xunmei.system.api.dto.DataPageDto;
-import com.xunmei.system.api.dto.SensorDto;
-import com.xunmei.system.api.dto.SensorStatusDto;
 import com.xunmei.system.api.dto.SysDeviceInnerListDto;
-import com.xunmei.system.api.dto.device.DeviceDto;
-import com.xunmei.system.api.dto.device.DeviceReceivePageDto;
-import com.xunmei.system.api.dto.protection.ReceiveErrorDto;
 import com.xunmei.system.vo.area.HostVO;
 
 import javax.servlet.http.HttpServletResponse;

+ 0 - 31
soc-modules/soc-modules-system/src/main/java/com/xunmei/system/service/impl/SysDeviceServiceImpl.java

@@ -2,48 +2,20 @@ package com.xunmei.system.service.impl;
 
 import java.io.IOException;
 import java.net.URLEncoder;
-import java.text.ParseException;
 import java.util.*;
-import java.util.concurrent.TimeUnit;
-import java.util.stream.Collectors;
-
-import cn.hutool.core.util.ObjectUtil;
 import com.alibaba.excel.EasyExcel;
-import com.alibaba.fastjson.JSON;
-import com.alibaba.fastjson.JSONArray;
-import com.alibaba.fastjson.JSONObject;
 import com.alibaba.nacos.common.utils.CollectionUtils;
-import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
-import com.xunmei.common.core.constant.CacheConstants;
 import com.xunmei.common.core.constant.Constants;
 import com.xunmei.common.core.constant.SecurityConstants;
-import com.xunmei.common.core.domain.mediator.domain.MediatorCategory;
-import com.xunmei.common.core.domain.mediator.vo.EquipmentOrgVo;
 import com.xunmei.common.core.exception.ServiceException;
-import com.xunmei.common.core.util.BeanHelper;
 import com.xunmei.common.core.utils.DateHelper;
 import com.xunmei.common.core.utils.DateUtils;
-import com.xunmei.common.core.utils.IDHelper;
-import com.xunmei.common.core.utils.SpringUtils;
-import com.xunmei.common.redis.utils.RedisUtils;
 import com.xunmei.common.security.utils.SecurityUtils;
 import com.xunmei.system.api.RemoteMediatorService;
-import com.xunmei.system.api.RemoteOrgService;
 import com.xunmei.system.api.RemoteProtectionService;
 import com.xunmei.system.api.domain.SysDevice;
-import com.xunmei.system.api.domain.SysDictData;
-import com.xunmei.system.api.domain.SysOperLog;
 import com.xunmei.system.api.domain.SysOrg;
-import com.xunmei.system.api.domain.north.MediatorDeviceData;
-import com.xunmei.system.api.domain.north.MediatorDeviceDataLog;
-import com.xunmei.system.api.domain.north.NorthError;
 import com.xunmei.system.api.dto.*;
-import com.xunmei.system.api.dto.device.DeviceData;
-import com.xunmei.system.api.dto.device.DeviceDto;
-import com.xunmei.system.api.dto.device.DeviceReceivePageDto;
-import com.xunmei.system.api.dto.protection.ReceiveErrorDto;
-import com.xunmei.system.api.enums.*;
-import com.xunmei.system.api.util.LogUtils;
 import com.xunmei.system.api.vo.ProtectionVO;
 import com.xunmei.system.mapper.SysOrgMapper;
 import com.xunmei.system.util.DeviceExport;
@@ -51,8 +23,6 @@ import com.xunmei.system.vo.area.AccessType;
 import com.xunmei.system.vo.area.HostVO;
 import com.xunmei.system.vo.area.VideoVO;
 import lombok.extern.slf4j.Slf4j;
-import org.apache.commons.lang3.StringUtils;
-import org.apache.poi.ss.formula.functions.T;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.redis.core.RedisTemplate;
 import org.springframework.stereotype.Service;
@@ -65,7 +35,6 @@ import com.xunmei.common.core.web.page.TableDataInfo;
 import com.xunmei.system.mapper.SysDeviceMapper;
 import com.xunmei.system.service.ISysDeviceService;
 
-import javax.annotation.Resource;
 import javax.servlet.http.HttpServletResponse;
 
 /**