jiawuxian 1 жил өмнө
parent
commit
3f9af7dae6
22 өөрчлөгдсөн 362 нэмэгдсэн , 56 устгасан
  1. 1 1
      soc-common/soc-common-core/src/main/java/com/xunmei/common/core/thread/SocThreadFactory.java
  2. 1 1
      soc-common/soc-common-core/src/main/java/com/xunmei/common/core/thread/SocUncaughtExceptionHandler.java
  3. 1 1
      soc-common/soc-common-core/src/main/java/com/xunmei/common/core/thread/ThreadPoolConfig.java
  4. 2 1
      soc-common/soc-common-core/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
  5. 1 4
      soc-modules/soc-modules-core/src/main/java/com/xunmei/core/board/service/impl/AppCockpitServiceImpl.java
  6. 1 5
      soc-modules/soc-modules-core/src/main/java/com/xunmei/core/drill/service/impl/CoreDrillPlanServiceImpl.java
  7. 1 6
      soc-modules/soc-modules-core/src/main/java/com/xunmei/core/drill/service/impl/CoreDrillTaskServiceImpl.java
  8. 1 2
      soc-modules/soc-modules-core/src/main/java/com/xunmei/core/edu/service/impl/CoreEduTrainingPlanServiceImpl.java
  9. 1 4
      soc-modules/soc-modules-core/src/main/java/com/xunmei/core/edu/service/impl/CoreEduTrainingTaskServiceImpl.java
  10. 1 12
      soc-modules/soc-modules-core/src/main/java/com/xunmei/core/letter/service/impl/CoreOutInRecordServiceImpl.java
  11. 1 9
      soc-modules/soc-modules-core/src/main/java/com/xunmei/core/panel/service/impl/PanelServiceImpl.java
  12. 1 1
      soc-modules/soc-modules-core/src/main/java/com/xunmei/core/registerbook/controller/CoreRegisterBookPdfController.java
  13. 1 6
      soc-modules/soc-modules-core/src/main/java/com/xunmei/core/resumption/service/impl/AppPlanServiceImpl.java
  14. 1 2
      soc-modules/soc-modules-core/src/main/java/com/xunmei/core/safetyindex/service/impl/CoreSafetyExceptionDataServiceImpl.java
  15. 41 0
      soc-modules/soc-modules-iot/src/main/java/com/xunmei/iot/controller/IotBoardController.java
  16. 22 0
      soc-modules/soc-modules-iot/src/main/java/com/xunmei/iot/mapper/IotBoardMapper.java
  17. 10 0
      soc-modules/soc-modules-iot/src/main/java/com/xunmei/iot/service/IotBoardService.java
  18. 126 0
      soc-modules/soc-modules-iot/src/main/java/com/xunmei/iot/service/impl/IotBoardServiceImpl.java
  19. 25 0
      soc-modules/soc-modules-iot/src/main/java/com/xunmei/iot/vo/board/IotBoardOverviewItemVo.java
  20. 20 0
      soc-modules/soc-modules-iot/src/main/java/com/xunmei/iot/vo/board/IotBoardOverviewVo.java
  21. 102 0
      soc-modules/soc-modules-iot/src/main/resources/mapper/IotBoardMapper.xml
  22. 1 1
      soc-modules/soc-modules-iot/src/main/resources/mapper/IotDvrChannelMapper.xml

+ 1 - 1
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/thread/SocThreadFactory.java → soc-common/soc-common-core/src/main/java/com/xunmei/common/core/thread/SocThreadFactory.java

@@ -1,4 +1,4 @@
-package com.xunmei.core.thread;
+package com.xunmei.common.core.thread;
 
 import lombok.AllArgsConstructor;
 

+ 1 - 1
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/thread/SocUncaughtExceptionHandler.java → soc-common/soc-common-core/src/main/java/com/xunmei/common/core/thread/SocUncaughtExceptionHandler.java

@@ -1,4 +1,4 @@
-package com.xunmei.core.thread;
+package com.xunmei.common.core.thread;
 
 import lombok.extern.slf4j.Slf4j;
 

+ 1 - 1
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/thread/ThreadPoolConfig.java → soc-common/soc-common-core/src/main/java/com/xunmei/common/core/thread/ThreadPoolConfig.java

@@ -1,4 +1,4 @@
-package com.xunmei.core.thread;
+package com.xunmei.common.core.thread;
 
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;

+ 2 - 1
soc-common/soc-common-core/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports

@@ -1,4 +1,5 @@
 com.xunmei.common.core.utils.SpringUtils
 com.xunmei.common.core.config.MybatisPlusConfig
 com.xunmei.common.core.config.TokenSettings
-com.xunmei.common.core.config.StaticInitializerUtil
+com.xunmei.common.core.config.StaticInitializerUtil
+com.xunmei.common.core.thread.ThreadPoolConfig

+ 1 - 4
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/board/service/impl/AppCockpitServiceImpl.java

@@ -7,7 +7,6 @@ import cn.hutool.core.util.NumberUtil;
 import cn.hutool.core.util.ObjectUtil;
 import com.xunmei.common.core.constant.SecurityConstants;
 import com.xunmei.common.core.domain.DateRange;
-import com.xunmei.common.core.domain.panel.vo.PanelListVo;
 import com.xunmei.common.core.enums.CycleCommonEnum;
 import com.xunmei.common.core.enums.OrgTypeEnum;
 import com.xunmei.common.core.exception.ServiceException;
@@ -20,10 +19,9 @@ import com.xunmei.core.board.mapper.CockpitMapper;
 import com.xunmei.core.board.service.AppCockpitService;
 import com.xunmei.core.board.vo.app.*;
 import com.xunmei.core.board.vo.web.TaskStatisticVo;
-import com.xunmei.core.thread.ThreadPoolConfig;
+import com.xunmei.common.core.thread.ThreadPoolConfig;
 import com.xunmei.system.api.RemoteOrgService;
 import com.xunmei.system.api.domain.SysOrg;
-import io.reactivex.rxjava3.core.Single;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Qualifier;
@@ -32,7 +30,6 @@ import org.springframework.stereotype.Service;
 import reactor.function.Predicate3;
 
 import javax.annotation.Resource;
-import javax.swing.*;
 import java.util.*;
 import java.util.concurrent.CompletableFuture;
 import java.util.concurrent.ExecutionException;

+ 1 - 5
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/drill/service/impl/CoreDrillPlanServiceImpl.java

@@ -26,8 +26,6 @@ import com.xunmei.common.core.domain.drill.vo.CoreDrillPlanDataVo;
 import com.xunmei.common.core.domain.drill.vo.CoreDrillPlanDetailVo;
 import com.xunmei.common.core.domain.drill.vo.CoreDrillPlanPageVo;
 import com.xunmei.common.core.domain.drill.vo.CoreDrillPlanRoleVo;
-import com.xunmei.common.core.domain.edu.domain.CoreEduTrainingPlan;
-import com.xunmei.common.core.domain.edu.vo.CoreEduTrainingPlanDataVo;
 import com.xunmei.common.core.enums.OrgTypeEnum;
 import com.xunmei.common.core.enums.drill.DrillDoStatus;
 import com.xunmei.common.core.enums.drill.DrillPlanCycleEnum;
@@ -36,7 +34,6 @@ import com.xunmei.common.core.enums.edu.EduTrainingDoStatus;
 import com.xunmei.common.core.enums.edu.EduTrainingPlanCycleEnum;
 import com.xunmei.common.core.enums.edu.EduTrainingPlanStatus;
 import com.xunmei.common.core.exception.ServiceException;
-import com.xunmei.common.core.exception.SystemException;
 import com.xunmei.common.core.util.BeanHelper;
 import com.xunmei.common.core.utils.AssertUtil;
 import com.xunmei.common.core.utils.DateUtils;
@@ -50,8 +47,7 @@ import com.xunmei.core.drill.service.ICoreDrillPlanToExecOrgService;
 import com.xunmei.core.drill.service.ICoreDrillPlanToRoleService;
 import com.xunmei.core.drill.service.ICoreDrillTaskService;
 import com.xunmei.core.registerbook.service.ICoreRegisterBookPdfService;
-import com.xunmei.core.resumption.service.IResumptionRegisterService;
-import com.xunmei.core.thread.ThreadPoolConfig;
+import com.xunmei.common.core.thread.ThreadPoolConfig;
 import com.xunmei.system.api.RemoteOrgService;
 import com.xunmei.system.api.domain.SysOrg;
 import com.xunmei.system.api.function.RemoteCallHandlerExecutor;

+ 1 - 6
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/drill/service/impl/CoreDrillTaskServiceImpl.java

@@ -2,7 +2,6 @@ package com.xunmei.core.drill.service.impl;
 
 import cn.hutool.core.date.DateField;
 import cn.hutool.core.date.DateTime;
-import cn.hutool.core.date.DateUnit;
 import cn.hutool.core.date.DateUtil;
 import cn.hutool.core.map.MapUtil;
 import cn.hutool.core.util.ObjectUtil;
@@ -15,14 +14,12 @@ import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.IdWorker;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.sun.org.apache.bcel.internal.generic.IF_ACMPEQ;
 import com.xunmei.common.core.constant.*;
 import com.xunmei.common.core.domain.DateRange;
 import com.xunmei.common.core.domain.R;
 import com.xunmei.common.core.domain.drill.domain.*;
 import com.xunmei.common.core.domain.drill.dto.*;
 import com.xunmei.common.core.domain.drill.vo.*;
-import com.xunmei.common.core.domain.edu.domain.CoreEduTrainingPlan;
 import com.xunmei.common.core.domain.panel.dto.PanelListDto;
 import com.xunmei.common.core.domain.panel.enums.PanelTypeEnums;
 import com.xunmei.common.core.domain.panel.vo.PanelListVo;
@@ -53,7 +50,7 @@ import com.xunmei.core.drill.mapper.CoreDrillTaskToUserMapper;
 import com.xunmei.core.drill.service.ICoreDrillTaskService;
 import com.xunmei.core.drill.service.ICoreDrillTaskToUserService;
 import com.xunmei.core.registerbook.service.ICoreRegisterBookPdfService;
-import com.xunmei.core.thread.ThreadPoolConfig;
+import com.xunmei.common.core.thread.ThreadPoolConfig;
 import com.xunmei.system.api.*;
 import com.xunmei.system.api.domain.SysConfig;
 import com.xunmei.system.api.domain.SysDictData;
@@ -72,12 +69,10 @@ import org.springframework.transaction.annotation.Propagation;
 import org.springframework.transaction.annotation.Transactional;
 
 import javax.servlet.http.HttpServletResponse;
-import java.io.File;
 import java.math.BigDecimal;
 import java.math.RoundingMode;
 import java.net.URLEncoder;
 import java.time.LocalDate;
-import java.time.LocalDateTime;
 import java.time.format.DateTimeFormatter;
 import java.util.*;
 import java.util.concurrent.CompletableFuture;

+ 1 - 2
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/edu/service/impl/CoreEduTrainingPlanServiceImpl.java

@@ -17,7 +17,6 @@ import com.xunmei.common.core.constant.ErrorMsgConstants;
 import com.xunmei.common.core.constant.SecurityConstants;
 import com.xunmei.common.core.domain.DateRange;
 import com.xunmei.common.core.domain.IdName;
-import com.xunmei.common.core.domain.drill.domain.CoreDrillPlan;
 import com.xunmei.common.core.domain.edu.domain.*;
 import com.xunmei.common.core.domain.edu.dto.CoreEduTrainingPlanEditDto;
 import com.xunmei.common.core.domain.edu.dto.CoreEduTrainingPlanInsertDto;
@@ -44,7 +43,7 @@ import com.xunmei.core.edu.service.ICoreEduTrainingPlanToExecOrgService;
 import com.xunmei.core.edu.service.ICoreEduTrainingPlanToRoleService;
 import com.xunmei.core.edu.service.ICoreEduTrainingTaskService;
 import com.xunmei.core.registerbook.service.ICoreRegisterBookPdfService;
-import com.xunmei.core.thread.ThreadPoolConfig;
+import com.xunmei.common.core.thread.ThreadPoolConfig;
 import com.xunmei.system.api.RemoteOrgService;
 import com.xunmei.system.api.domain.SysOrg;
 import com.xunmei.system.api.function.RemoteCallHandlerExecutor;

+ 1 - 4
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/edu/service/impl/CoreEduTrainingTaskServiceImpl.java

@@ -2,7 +2,6 @@ package com.xunmei.core.edu.service.impl;
 
 import cn.hutool.core.date.DateField;
 import cn.hutool.core.date.DateTime;
-import cn.hutool.core.date.DateUnit;
 import cn.hutool.core.date.DateUtil;
 import cn.hutool.core.map.MapUtil;
 import cn.hutool.core.util.ObjectUtil;
@@ -48,7 +47,7 @@ import com.xunmei.core.edu.mapper.*;
 import com.xunmei.core.edu.service.ICoreEduTrainingTaskService;
 import com.xunmei.core.edu.service.ICoreEduTrainingTaskToUserService;
 import com.xunmei.core.registerbook.service.ICoreRegisterBookPdfService;
-import com.xunmei.core.thread.ThreadPoolConfig;
+import com.xunmei.common.core.thread.ThreadPoolConfig;
 import com.xunmei.system.api.RemoteFileService;
 import com.xunmei.system.api.RemoteOrgService;
 import com.xunmei.system.api.RemoteRoleService;
@@ -68,13 +67,11 @@ import org.springframework.transaction.annotation.Propagation;
 import org.springframework.transaction.annotation.Transactional;
 
 import javax.servlet.http.HttpServletResponse;
-import java.io.File;
 import java.math.BigDecimal;
 import java.math.RoundingMode;
 import java.net.URLEncoder;
 import java.text.NumberFormat;
 import java.time.LocalDate;
-import java.time.LocalDateTime;
 import java.time.format.DateTimeFormatter;
 import java.util.*;
 import java.util.concurrent.CompletableFuture;

+ 1 - 12
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/letter/service/impl/CoreOutInRecordServiceImpl.java

@@ -3,7 +3,6 @@ package com.xunmei.core.letter.service.impl;
 import cn.hutool.core.date.DateUtil;
 import cn.hutool.core.util.ObjectUtil;
 import com.alibaba.fastjson2.JSON;
-import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.baomidou.mybatisplus.core.toolkit.IdWorker;
@@ -14,12 +13,7 @@ import com.xunmei.common.core.constant.DictConstants;
 import com.xunmei.common.core.constant.ErrorMsgConstants;
 import com.xunmei.common.core.constant.SecurityConstants;
 import com.xunmei.common.core.domain.R;
-import com.xunmei.common.core.domain.edu.domain.CoreEduTrainingTask;
-import com.xunmei.common.core.domain.edu.domain.CoreEduTrainingTaskToUser;
-import com.xunmei.common.core.domain.edu.vo.CoreEduTrainingTaskDetailVo;
-import com.xunmei.common.core.domain.letter.domain.CoreIntroduceLetter;
 import com.xunmei.common.core.domain.letter.domain.CoreIntroduceLetterApproveLog;
-import com.xunmei.common.core.domain.letter.domain.CoreIntroduceLetterUser;
 import com.xunmei.common.core.domain.letter.domain.CoreOutInRecord;
 import com.xunmei.common.core.domain.letter.dto.CoreOutInRecordRequestDto;
 import com.xunmei.common.core.domain.letter.vo.CoreOutInRecordVo;
@@ -32,19 +26,15 @@ import com.xunmei.common.core.web.page.TableDataInfo;
 import com.xunmei.common.redis.utils.RedisUtils;
 import com.xunmei.common.security.utils.DictUtils;
 import com.xunmei.common.security.utils.SecurityUtils;
-import com.xunmei.core.letter.mapper.CoreIntroduceLetterApproveLogMapper;
 import com.xunmei.core.letter.mapper.CoreIntroduceLetterMapper;
-import com.xunmei.core.letter.mapper.CoreIntroduceLetterUserMapper;
 import com.xunmei.core.letter.mapper.CoreOutInRecordMapper;
 import com.xunmei.core.letter.service.ICoreOutInRecordService;
 
 import com.xunmei.core.registerbook.service.ICoreRegisterBookPdfService;
-import com.xunmei.core.thread.ThreadPoolConfig;
+import com.xunmei.common.core.thread.ThreadPoolConfig;
 import com.xunmei.system.api.RemoteFileService;
 import com.xunmei.system.api.RemoteOrgService;
-import com.xunmei.system.api.RemoteUserService;
 import com.xunmei.system.api.domain.SysOrg;
-import com.xunmei.system.api.domain.SysUser;
 import com.xunmei.system.api.function.RemoteCallHandlerExecutor;
 import com.xunmei.system.api.vo.SysOrgVO;
 import io.netty.util.internal.StringUtil;
@@ -56,7 +46,6 @@ import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
-import java.io.File;
 import java.util.*;
 import java.util.concurrent.CompletableFuture;
 import java.util.stream.Collectors;

+ 1 - 9
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/panel/service/impl/PanelServiceImpl.java

@@ -1,18 +1,12 @@
 package com.xunmei.core.panel.service.impl;
 
 import com.alibaba.fastjson2.JSONObject;
-import com.google.common.collect.Lists;
 
-import cn.hutool.core.date.DateUtil;
 import cn.hutool.core.util.ObjectUtil;
-import com.alibaba.fastjson.JSON;
-import com.alibaba.fastjson2.JSONArray;
-import com.xunmei.common.core.constant.Constants;
 import com.xunmei.common.core.constant.ErrorMsgConstants;
 import com.xunmei.common.core.constant.SecurityConstants;
 import com.xunmei.common.core.domain.edu.dto.SysLearningMaterialsPageDto;
 import com.xunmei.common.core.domain.edu.vo.SysLearningMaterialsPageVo;
-import com.xunmei.common.core.domain.letter.dto.CoreIntroduceLetterApproveRequestDto;
 import com.xunmei.common.core.domain.message.dto.CoreAnnouncementNotificationAppPageDto;
 import com.xunmei.common.core.domain.message.vo.FileObject;
 import com.xunmei.common.core.domain.message.vo.MessageAppPageVo;
@@ -29,7 +23,6 @@ import com.xunmei.core.edu.service.ICoreEduTrainingTaskService;
 import com.xunmei.core.edu.service.ISysLearningMaterialsService;
 import com.xunmei.core.evaluate.service.ICoreEvaluateTaskService;
 import com.xunmei.core.letter.service.ICoreIntroduceLetterService;
-import com.xunmei.core.letter.service.ICoreOutInRecordService;
 import com.xunmei.core.message.service.ICoreAnnouncementNotificationService;
 import com.xunmei.core.panel.service.PanelService;
 import com.xunmei.core.question.service.IQuestionService;
@@ -37,13 +30,12 @@ import com.xunmei.core.resumption.service.IProtectionService;
 import com.xunmei.core.resumption.service.ResumptionService;
 import com.xunmei.core.retrieval.service.ICoreMonitoringRetrievalTaskService;
 import com.xunmei.core.safetyCheck.service.ICoreSafetyTaskService;
-import com.xunmei.core.thread.ThreadPoolConfig;
+import com.xunmei.common.core.thread.ThreadPoolConfig;
 import com.xunmei.system.api.RemoteOrgService;
 import com.xunmei.system.api.RemoteRoleService;
 import com.xunmei.system.api.RemoteUserService;
 import com.xunmei.system.api.domain.SysOrg;
 import com.xunmei.system.api.function.RemoteCallHandlerExecutor;
-import com.xunmei.system.api.model.LoginUser;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Qualifier;

+ 1 - 1
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/registerbook/controller/CoreRegisterBookPdfController.java

@@ -13,7 +13,7 @@ import com.xunmei.common.core.web.domain.AjaxResult;
 import com.xunmei.common.core.web.page.TableDataInfo;
 import com.xunmei.common.security.annotation.RequiresPermissions;
 import com.xunmei.core.registerbook.service.ICoreRegisterBookPdfService;
-import com.xunmei.core.thread.ThreadPoolConfig;
+import com.xunmei.common.core.thread.ThreadPoolConfig;
 import com.xunmei.system.api.RemoteOrgService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;

+ 1 - 6
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/resumption/service/impl/AppPlanServiceImpl.java

@@ -1,7 +1,6 @@
 package com.xunmei.core.resumption.service.impl;
 
 import cn.hutool.core.collection.CollectionUtil;
-import cn.hutool.core.collection.ListUtil;
 import cn.hutool.core.date.DateField;
 import cn.hutool.core.date.DateUtil;
 import cn.hutool.core.util.ObjectUtil;
@@ -29,7 +28,6 @@ import com.xunmei.common.core.exception.SystemException;
 import com.xunmei.common.core.utils.DateUtils;
 import com.xunmei.common.core.utils.IDHelper;
 import com.xunmei.common.core.vo.IdNameVo;
-import com.xunmei.common.core.web.domain.AjaxResult;
 import com.xunmei.common.redis.utils.RedisUtils;
 import com.xunmei.common.security.utils.DictUtils;
 import com.xunmei.common.security.utils.SecurityUtils;
@@ -48,9 +46,7 @@ import com.xunmei.core.resumption.service.IResumptionRecordService;
 import com.xunmei.core.resumption.task.ResumptionTaskBusinessService;
 import com.xunmei.core.resumption.vo.appPlan.*;
 import com.xunmei.core.resumption.vo.resumptionRecord.AppResumptionDataInfoVo;
-import com.xunmei.core.resumption.vo.resumptionRecord.ResumptionRecordItemVo;
-import com.xunmei.core.resumption.vo.resumptionRecord.ResumptionRecordVo;
-import com.xunmei.core.thread.ThreadPoolConfig;
+import com.xunmei.common.core.thread.ThreadPoolConfig;
 import com.xunmei.system.api.RemoteFileService;
 import com.xunmei.system.api.RemoteOrgService;
 import com.xunmei.system.api.domain.ResumptionPdf;
@@ -71,7 +67,6 @@ import org.springframework.transaction.annotation.Transactional;
 
 import javax.annotation.Resource;
 import java.text.SimpleDateFormat;
-import java.time.LocalDate;
 import java.util.*;
 import java.util.concurrent.CompletableFuture;
 import java.util.stream.Collectors;

+ 1 - 2
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/safetyindex/service/impl/CoreSafetyExceptionDataServiceImpl.java

@@ -2,7 +2,6 @@ package com.xunmei.core.safetyindex.service.impl;
 
 import cn.hutool.core.collection.CollectionUtil;
 import cn.hutool.core.collection.ListUtil;
-import cn.hutool.core.date.DateField;
 import cn.hutool.core.date.DateTime;
 import cn.hutool.core.date.DateUtil;
 import cn.hutool.core.util.ObjectUtil;
@@ -21,7 +20,7 @@ import com.xunmei.core.resumption.service.ResumptionService;
 import com.xunmei.core.retrieval.service.ICoreMonitoringRetrievalTaskService;
 import com.xunmei.core.safetyindex.mapper.CoreSafetyExceptionDataMapper;
 import com.xunmei.core.safetyindex.service.*;
-import com.xunmei.core.thread.ThreadPoolConfig;
+import com.xunmei.common.core.thread.ThreadPoolConfig;
 import com.xunmei.system.api.RemoteOrgService;
 import com.xunmei.system.api.domain.SysOrg;
 import com.xunmei.system.api.vo.SysOrgVO;

+ 41 - 0
soc-modules/soc-modules-iot/src/main/java/com/xunmei/iot/controller/IotBoardController.java

@@ -0,0 +1,41 @@
+package com.xunmei.iot.controller;
+
+import com.xunmei.common.core.web.domain.AjaxResult;
+import com.xunmei.common.core.web.domain.PageDto;
+import com.xunmei.common.core.web.page.TableDataInfo;
+import com.xunmei.iot.dto.dvrDisk.DvrDiskAlarmHistoryPageDto;
+import com.xunmei.iot.dto.dvrDisk.DvrDiskAppPageDto;
+import com.xunmei.iot.dto.dvrDisk.DvrDiskPageDto;
+import com.xunmei.iot.service.IotBoardService;
+import com.xunmei.iot.service.IotDvsDiskService;
+import com.xunmei.iot.vo.board.IotBoardOverviewVo;
+import com.xunmei.iot.vo.dvrDisk.DvrDiskAlarmHistoryPageVo;
+import com.xunmei.iot.vo.dvrDisk.DvrDiskAppPageVo;
+import com.xunmei.iot.vo.dvrDisk.DvrDiskPageVo;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.concurrent.ExecutionException;
+import java.util.concurrent.TimeoutException;
+
+@Slf4j
+@Api(description = "中台", tags = {"录像机硬盘检测"})
+@RestController
+@RequestMapping({"/board"})
+class IotBoardController {
+    @Autowired
+    IotBoardService iotBoardService;
+
+//    @Resource
+//    VideoRecorderHardDiskDetectionService videoRecorderHardDiskDetectionService;
+
+    @ApiOperation("分页")
+    @PostMapping({"/app"})
+    AjaxResult overview(@RequestBody final PageDto request)  throws ExecutionException, InterruptedException, TimeoutException {
+        IotBoardOverviewVo vo = this.iotBoardService.overview(request.getOrgId());
+        return AjaxResult.success(vo);
+    }
+}

+ 22 - 0
soc-modules/soc-modules-iot/src/main/java/com/xunmei/iot/mapper/IotBoardMapper.java

@@ -0,0 +1,22 @@
+package com.xunmei.iot.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.xunmei.iot.vo.board.IotBoardOverviewItemVo;
+import org.apache.ibatis.annotations.Mapper;
+
+@Mapper
+public interface IotBoardMapper extends BaseMapper {
+    IotBoardOverviewItemVo device(String orgPath);
+
+    IotBoardOverviewItemVo subsystem(String orgPath);
+
+    IotBoardOverviewItemVo sensor(String orgPath);
+
+    IotBoardOverviewItemVo videoInterity(String orgPath);
+
+    IotBoardOverviewItemVo videoDays(String orgPath);
+
+    IotBoardOverviewItemVo videoQuality(String orgPath);
+
+    IotBoardOverviewItemVo dvrDisk(String orgPath);
+}

+ 10 - 0
soc-modules/soc-modules-iot/src/main/java/com/xunmei/iot/service/IotBoardService.java

@@ -0,0 +1,10 @@
+package com.xunmei.iot.service;
+
+import com.xunmei.iot.vo.board.IotBoardOverviewVo;
+
+import java.util.concurrent.ExecutionException;
+import java.util.concurrent.TimeoutException;
+
+public interface IotBoardService {
+    IotBoardOverviewVo overview(Long orgId)  throws ExecutionException, InterruptedException, TimeoutException;
+}

+ 126 - 0
soc-modules/soc-modules-iot/src/main/java/com/xunmei/iot/service/impl/IotBoardServiceImpl.java

@@ -0,0 +1,126 @@
+package com.xunmei.iot.service.impl;
+
+import cn.hutool.core.util.ObjectUtil;
+import com.xunmei.common.core.constant.SecurityConstants;
+import com.xunmei.common.core.thread.ThreadPoolConfig;
+import com.xunmei.iot.mapper.IotBoardMapper;
+import com.xunmei.iot.service.IotBoardService;
+import com.xunmei.iot.vo.board.IotBoardOverviewItemVo;
+import com.xunmei.iot.vo.board.IotBoardOverviewVo;
+import com.xunmei.system.api.RemoteOrgService;
+import com.xunmei.system.api.domain.SysOrg;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Qualifier;
+import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
+import org.springframework.stereotype.Service;
+
+import java.util.concurrent.CompletableFuture;
+import java.util.concurrent.ExecutionException;
+import java.util.concurrent.TimeUnit;
+import java.util.concurrent.TimeoutException;
+
+@Service
+public class IotBoardServiceImpl implements IotBoardService {
+    @Autowired
+    RemoteOrgService remoteOrgService;
+
+    @Autowired
+    IotBoardMapper iotBoardMapper;
+
+    @Autowired
+    @Qualifier(ThreadPoolConfig.SOC_EXECUTOR)
+    private ThreadPoolTaskExecutor threadPoolTaskExecutor;
+
+    private final Long TIMEOUT = 3L;
+
+    @Override
+    public IotBoardOverviewVo overview(Long orgId) throws ExecutionException, InterruptedException, TimeoutException {
+        IotBoardOverviewVo vo = new IotBoardOverviewVo();
+        SysOrg org = remoteOrgService.selectOrgById(orgId, SecurityConstants.INNER);
+        CompletableFuture<IotBoardOverviewItemVo> hostFuture = CompletableFuture.supplyAsync(() -> {
+                    IotBoardOverviewItemVo result = iotBoardMapper.device(org.getPath());
+                    if (ObjectUtil.isNull(result)) {
+                        result = new IotBoardOverviewItemVo();
+                    }
+                    return result;
+                }
+                , threadPoolTaskExecutor
+        );
+
+        CompletableFuture<IotBoardOverviewItemVo> subsystemFuture = CompletableFuture.supplyAsync(() -> {
+                    IotBoardOverviewItemVo result = iotBoardMapper.subsystem(org.getPath());
+                    if (ObjectUtil.isNull(result)) {
+                        result = new IotBoardOverviewItemVo();
+                    }
+                    return result;
+                }
+                , threadPoolTaskExecutor
+        );
+
+        CompletableFuture<IotBoardOverviewItemVo> sensorFuture = CompletableFuture.supplyAsync(() -> {
+                    IotBoardOverviewItemVo result = iotBoardMapper.sensor(org.getPath());
+                    if (ObjectUtil.isNull(result)) {
+                        result = new IotBoardOverviewItemVo();
+                    }
+                    return result;
+                }
+                , threadPoolTaskExecutor
+        );
+
+        CompletableFuture<IotBoardOverviewItemVo> videoInterityFuture = CompletableFuture.supplyAsync(() -> {
+                    IotBoardOverviewItemVo result = iotBoardMapper.videoInterity(org.getPath());
+                    if (ObjectUtil.isNull(result)) {
+                        result = new IotBoardOverviewItemVo();
+                    }
+                    return result;
+                }
+                , threadPoolTaskExecutor
+        );
+
+        CompletableFuture<IotBoardOverviewItemVo> videoDaysFuture = CompletableFuture.supplyAsync(() -> {
+                    IotBoardOverviewItemVo result = iotBoardMapper.videoDays(org.getPath());
+                    if (ObjectUtil.isNull(result)) {
+                        result = new IotBoardOverviewItemVo();
+                    }
+                    return result;
+                }
+                , threadPoolTaskExecutor
+        );
+
+        CompletableFuture<IotBoardOverviewItemVo> videoQualityFuture = CompletableFuture.supplyAsync(() -> {
+                    IotBoardOverviewItemVo result = iotBoardMapper.videoQuality(org.getPath());
+                    if (ObjectUtil.isNull(result)) {
+                        result = new IotBoardOverviewItemVo();
+                    }
+                    return result;
+                }
+                , threadPoolTaskExecutor
+        );
+
+        CompletableFuture<IotBoardOverviewItemVo> dvrDiskFuture = CompletableFuture.supplyAsync(() -> {
+                    IotBoardOverviewItemVo result = iotBoardMapper.dvrDisk(org.getPath());
+                    if (ObjectUtil.isNull(result)) {
+                        result = new IotBoardOverviewItemVo();
+                    }
+                    return result;
+                }
+                , threadPoolTaskExecutor
+        );
+
+        CompletableFuture<Void> allQueries = CompletableFuture.allOf(
+                hostFuture, subsystemFuture, sensorFuture,
+                videoDaysFuture, videoInterityFuture, videoQualityFuture, dvrDiskFuture
+        );
+
+        allQueries.get(TIMEOUT, TimeUnit.SECONDS);
+        vo.setHost(hostFuture.get());
+        vo.setSubsystem(subsystemFuture.get());
+        vo.setSensor(sensorFuture.get());
+        vo.setDvrDisk(dvrDiskFuture.get());
+        vo.setVideoDays(videoDaysFuture.get());
+        vo.setVideoInterity(videoInterityFuture.get());
+        vo.setVideoQuality(videoQualityFuture.get());
+
+        return vo;
+    }
+}

+ 25 - 0
soc-modules/soc-modules-iot/src/main/java/com/xunmei/iot/vo/board/IotBoardOverviewItemVo.java

@@ -0,0 +1,25 @@
+package com.xunmei.iot.vo.board;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+public class IotBoardOverviewItemVo {
+    @ApiModelProperty("分类名称")
+    private String name;
+
+    @ApiModelProperty("数量")
+    private int count;
+
+    @ApiModelProperty("未知")
+    private int unknown;
+
+    @ApiModelProperty("正常、在线、布防数量、未丢失")
+    private int normal;
+
+    @ApiModelProperty("报警、离线、撤防数量、全部丢失")
+    private int exception;
+
+    @ApiModelProperty("中断,部分丢失")
+    private int other1;
+}

+ 20 - 0
soc-modules/soc-modules-iot/src/main/java/com/xunmei/iot/vo/board/IotBoardOverviewVo.java

@@ -0,0 +1,20 @@
+package com.xunmei.iot.vo.board;
+
+import lombok.Data;
+
+@Data
+public class IotBoardOverviewVo {
+    private IotBoardOverviewItemVo host;
+
+    private IotBoardOverviewItemVo subsystem;
+
+    private IotBoardOverviewItemVo sensor;
+
+    private IotBoardOverviewItemVo videoInterity;
+
+    private IotBoardOverviewItemVo videoDays;
+
+    private IotBoardOverviewItemVo videoQuality;
+
+    private IotBoardOverviewItemVo dvrDisk;
+}

+ 102 - 0
soc-modules/soc-modules-iot/src/main/resources/mapper/IotBoardMapper.xml

@@ -0,0 +1,102 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.xunmei.iot.mapper.IotBoardMapper">
+    <select id="device" resultType="com.xunmei.iot.vo.board.IotBoardOverviewItemVo">
+        SELECT '主机设备'                AS `name`,
+               count(0)              AS count,
+               sum(dd.state IS NULL) AS unknown,
+               sum(dd.state = 0)     AS normal,
+               sum(dd.state = 1)     AS exception,
+               sum(dd.state = 2)     AS other1
+        FROM iot_device d
+                 LEFT JOIN iot_device_detection dd ON d.equipment_code = dd.equipment_code
+        WHERE deleted = 0
+          and d.org_path like concat(#{orgPath}, "%")
+    </select>
+    <select id="subsystem" resultType="com.xunmei.iot.vo.board.IotBoardOverviewItemVo">
+        SELECT '报警控制器'         AS `name`,
+               count(0)        AS count,
+               sum(status = 0) AS exception,
+               sum(status = 1) AS normal,
+               sum(status = 2) AS unknown
+        FROM iot_alarm_subsystem
+        WHERE deleted = 0
+          and org_path like concat(#{orgPath}, "%")
+    </select>
+    <select id="sensor" resultType="com.xunmei.iot.vo.board.IotBoardOverviewItemVo">
+        SELECT '动环设备'             AS `name`,
+               count(0)           AS count,
+               sum(state = 0)     AS normal,
+               sum(state = 1)     AS exception,
+               sum(state is null) AS unknown
+        FROM iot_sensor
+        WHERE deleted = 0
+          and org_path like concat(#{orgPath}, "%")
+    </select>
+    <select id="videoInterity" resultType="com.xunmei.iot.vo.board.IotBoardOverviewItemVo">
+        SELECT '(昨日)录像完整性'                 AS `name`,
+               count(0)                AS count,
+               sum(vic.status = 0)     AS normal,
+               sum(vic.status = 1)     AS other1,
+               sum(vic.status = 2)     AS exception,
+               sum(vic.status is null) AS unknown
+        FROM iot_dvr_channel dc
+                 LEFT JOIN mediator_video_integrity_check vic
+                           on dc.host_code = vic.equipment_code and dc.channel_code = vic.channel_code
+        WHERE dc.deleted = 0
+          and dc.org_path like concat(#{orgPath}, "%")
+    </select>
+    <select id="videoDays" resultType="com.xunmei.iot.vo.board.IotBoardOverviewItemVo">
+        SELECT '录像存储天数'                  AS `name`,
+               count(0)                AS count,
+               sum(vdc.status = 0)     AS normal,
+               sum(vdc.status = 1)     AS exception,
+               sum(vdc.status is null) AS unknown
+        FROM iot_dvr_channel dc
+                 LEFT JOIN mediator_video_days_check vdc
+                           on dc.host_code = vdc.equipment_code and dc.channel_code = vdc.channel_code
+        WHERE dc.deleted = 0
+          and dc.org_path like concat(#{orgPath}, "%")
+    </select>
+    <select id="videoQuality" resultType="com.xunmei.iot.vo.board.IotBoardOverviewItemVo">
+        SELECT '(当前)录像质量'                    AS `name`,
+               count(0)                  AS count,
+               sum(vdr.is_alarm = 0)     AS normal,
+               sum(vdr.is_alarm = 1)     AS exception,
+               sum(vdr.is_alarm is null) AS unknown
+        FROM iot_dvr_channel dc
+                 LEFT JOIN mediator_video_diagnosis_record vdr
+                           on dc.host_code = vdr.equipment_code and dc.channel_code = vdr.channel_code
+        WHERE dc.deleted = 0
+          and dc.org_path like concat(#{orgPath}, "%")
+    </select>
+    <select id="dvrDisk" resultType="com.xunmei.iot.vo.board.IotBoardOverviewItemVo">
+        SELECT
+            '录像机硬盘' AS `name`,
+            count( 0 ) AS count,
+            sum( dd.other1 ) AS other1,
+            sum( dd.normal ) AS normal,
+            sum( dd.exception ) AS exception,
+            sum( dd.unknown ) AS unknown
+        FROM
+            iot_device d
+                LEFT JOIN (
+                SELECT
+                    count( 0 ) AS other1,
+                    sum( state = 0 ) AS normal,
+                    sum( state = 1 ) AS exception,
+                    sum( state IS NULL ) AS unknown,
+                    host_code
+                FROM
+                    iot_dvr_disk
+                WHERE
+                    deleted = 0 and org_path like concat(#{orgPath}, "%")
+                GROUP BY
+                    host_code
+            ) dd ON d.equipment_code = dd.host_code
+        WHERE
+            d.category_id = 1
+          AND d.deleted = 0
+          and d.org_path like concat(#{orgPath}, "%")
+    </select>
+</mapper>

+ 1 - 1
soc-modules/soc-modules-iot/src/main/resources/mapper/IotDvrChannelMapper.xml

@@ -56,7 +56,7 @@
         vdc.real_days,
         vdr.signal_lost,
         vdr.occlude,
-        if(vdr.id is null,null,if(vdr.brightness+vdr.color_cast+vdr.snowflake+vdr.stripe+vdr.contrast+vdr.blurry>1,1,0))
+        if(vdr.id is null,null,if(vdr.brightness+vdr.color_cast+vdr.snowflake+vdr.stripe+vdr.contrast+vdr.blurry>=1,1,0))
         as quality
         from iot_dvr_channel c
         INNER JOIN iot_device d on c.host_code=d.equipment_code