Kaynağa Gözat

安全指数异常数据固化

jingyuanchao 2 yıl önce
ebeveyn
işleme
2fa1e8fbe4

+ 8 - 3
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/question/mapper/QuestionMapper.java

@@ -1,9 +1,12 @@
 package com.xunmei.core.question.mapper;
 
-import java.util.List;
-
-import com.xunmei.core.question.domain.Question;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.xunmei.common.core.domain.safetyindex.domain.CoreSafetyExceptionData;
+import com.xunmei.core.question.domain.Question;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.Date;
+import java.util.List;
 
 /**
  * 隐患问题清单Mapper接口
@@ -59,4 +62,6 @@ public interface QuestionMapper extends BaseMapper<Question> {
      * @return 结果
      */
     int deleteCoreQuestionByIds(Long[] ids);
+
+    List<CoreSafetyExceptionData> selectQuestionExceptionData(@Param("time") Date time);
 }

+ 9 - 6
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/question/service/IQuestionService.java

@@ -1,15 +1,16 @@
 package com.xunmei.core.question.service;
 
-import java.util.List;
-
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.xunmei.common.core.domain.safetyindex.domain.CoreSafetyExceptionData;
+import com.xunmei.common.core.web.page.TableDataInfo;
+import com.xunmei.core.question.domain.Question;
 import com.xunmei.core.question.dto.QuestionConfirmDto;
 import com.xunmei.core.question.dto.QuestionPageDto;
 import com.xunmei.core.question.dto.QuestionReformDto;
-import com.xunmei.core.question.vo.QuestionPageVo;
 import com.xunmei.core.question.vo.QuestionVo;
-import com.xunmei.core.question.domain.Question;
-import com.baomidou.mybatisplus.extension.service.IService;
-import com.xunmei.common.core.web.page.TableDataInfo;
+
+import java.util.Date;
+import java.util.List;
 
 /**
  * 隐患问题清单Service接口
@@ -60,4 +61,6 @@ public interface IQuestionService extends IService<Question> {
      * @return
      */
     Boolean reform(QuestionReformDto reformDto);
+
+    List<CoreSafetyExceptionData> selectQuestionExceptionData(Date time);
 }

+ 19 - 20
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/question/service/impl/QuestionServiceImpl.java

@@ -1,30 +1,31 @@
 package com.xunmei.core.question.service.impl;
 
-import java.time.LocalDateTime;
-import java.util.Date;
-import java.util.List;
-
 import cn.hutool.core.date.DateUtil;
-import cn.hutool.core.date.LocalDateTimeUtil;
 import cn.hutool.core.util.ObjectUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.xunmei.common.core.constant.SecurityConstants;
+import com.xunmei.common.core.domain.safetyindex.domain.CoreSafetyExceptionData;
 import com.xunmei.common.core.exception.ServiceException;
-import com.xunmei.common.core.utils.DateUtils;
 import com.xunmei.common.core.utils.IDHelper;
+import com.xunmei.common.core.web.page.TableDataInfo;
 import com.xunmei.common.security.utils.SecurityUtils;
 import com.xunmei.core.question.QuestionConfirmEnum;
 import com.xunmei.core.question.QuestionReformEnum;
+import com.xunmei.core.question.QuestionSrcType;
+import com.xunmei.core.question.QuestionStepEnum;
+import com.xunmei.core.question.domain.Question;
+import com.xunmei.core.question.domain.QuestionFlow;
 import com.xunmei.core.question.dto.QuestionConfirmDto;
 import com.xunmei.core.question.dto.QuestionPageDto;
 import com.xunmei.core.question.dto.QuestionReformDto;
+import com.xunmei.core.question.mapper.QuestionFlowMapper;
+import com.xunmei.core.question.mapper.QuestionMapper;
+import com.xunmei.core.question.service.IQuestionService;
 import com.xunmei.core.question.vo.QuestionFlowVo;
-import com.xunmei.core.question.QuestionSrcType;
-import com.xunmei.core.question.QuestionStepEnum;
 import com.xunmei.core.question.vo.QuestionVo;
-import com.xunmei.core.question.domain.QuestionFlow;
-import com.xunmei.core.question.mapper.QuestionFlowMapper;
 import com.xunmei.core.resumption.service.IAppResumptionDataRemarkimgService;
 import com.xunmei.core.safetyCheck.domain.CoreSafetyTaskDataRemarkimg;
 import com.xunmei.core.safetyCheck.service.ICoreSafetyTaskDataRemarkimgService;
@@ -32,19 +33,12 @@ import com.xunmei.system.api.RemoteOrgService;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 
-import java.util.Arrays;
+import java.util.Date;
+import java.util.List;
 import java.util.stream.Collectors;
 
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.xunmei.common.core.web.page.TableDataInfo;
-import com.xunmei.core.question.mapper.QuestionMapper;
-import com.xunmei.core.question.domain.Question;
-import com.xunmei.core.question.service.IQuestionService;
-import org.springframework.transaction.annotation.Transactional;
-
 /**
  * 隐患问题清单Service业务层处理
  *
@@ -300,4 +294,9 @@ public class QuestionServiceImpl extends ServiceImpl<QuestionMapper, Question> i
 
         return count > 0;
     }
+
+    @Override
+    public List<CoreSafetyExceptionData> selectQuestionExceptionData(Date time) {
+        return baseMapper.selectQuestionExceptionData(time);
+    }
 }

+ 9 - 5
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/retrieval/mapper/CoreMonitoringRetrievalTaskMapper.java

@@ -1,12 +1,8 @@
 package com.xunmei.core.retrieval.mapper;
 
-import java.util.Date;
-import java.util.List;
-
+import cn.hutool.core.date.DateTime;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.xunmei.common.core.domain.edu.dto.CoreEduTrainingPlanPageDto;
-import com.xunmei.common.core.domain.edu.vo.CoreEduTrainingPlanPageVo;
 import com.xunmei.common.core.domain.panel.dto.PanelListDto;
 import com.xunmei.common.core.domain.panel.vo.PanelListVo;
 import com.xunmei.common.core.domain.retrieval.domain.CoreMonitoringRetrievalTask;
@@ -15,10 +11,14 @@ import com.xunmei.common.core.domain.retrieval.vo.CoreMonitoringRetrievalTaskExc
 import com.xunmei.common.core.domain.retrieval.vo.CoreMonitoringRetrievalTaskOneVo;
 import com.xunmei.common.core.domain.retrieval.vo.CoreMonitoringRetrievalTaskVo;
 import com.xunmei.common.core.domain.retrieval.vo.TaskDataVo;
+import com.xunmei.common.core.domain.safetyindex.domain.CoreSafetyExceptionData;
 import com.xunmei.core.access.dto.CoreMonitoringTaskRegistrationDTO;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
 
+import java.util.Date;
+import java.util.List;
+
 /**
  * 监控调阅任务Mapper接口
  *
@@ -107,4 +107,8 @@ public interface CoreMonitoringRetrievalTaskMapper extends BaseMapper<CoreMonito
     List<CoreMonitoringRetrievalTaskExcelVo> selectAllList(@Param("request") RetrievalTaskPageDto request);
 
     List<PanelListVo> selectCurUserTaskList(@Param("request") PanelListDto request);
+
+    List<CoreSafetyExceptionData> selectMonitorOverTimeExceptionData(@Param("time") DateTime time);
+
+    List<CoreSafetyExceptionData> selectMonitorNumsExceptionData(@Param("time") DateTime time);
 }

+ 9 - 7
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/retrieval/service/ICoreMonitoringRetrievalTaskService.java

@@ -1,21 +1,21 @@
 package com.xunmei.core.retrieval.service;
 
-import java.io.IOException;
-import java.time.LocalDate;
-import java.util.Date;
-import java.util.List;
-
+import cn.hutool.core.date.DateTime;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.xunmei.common.core.domain.panel.dto.PanelListDto;
 import com.xunmei.common.core.domain.panel.vo.PanelListVo;
+import com.xunmei.common.core.domain.retrieval.domain.CoreMonitoringRetrievalTask;
+import com.xunmei.common.core.domain.retrieval.dto.RetrievalTaskPageDto;
 import com.xunmei.common.core.domain.retrieval.vo.CoreMonitoringRetrievalTaskOneVo;
+import com.xunmei.common.core.domain.safetyindex.domain.CoreSafetyExceptionData;
 import com.xunmei.common.core.web.page.TableDataInfo;
 import com.xunmei.core.access.domain.TMonitoringRetrievalPlan;
 import com.xunmei.core.access.dto.CoreMonitoringTaskRegistrationDTO;
-import com.xunmei.common.core.domain.retrieval.domain.CoreMonitoringRetrievalTask;
-import com.xunmei.common.core.domain.retrieval.dto.RetrievalTaskPageDto;
 
 import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+import java.time.LocalDate;
+import java.util.List;
 
 /**
  * 监控调阅任务Service接口
@@ -103,4 +103,6 @@ public interface ICoreMonitoringRetrievalTaskService extends IService<CoreMonito
     void updateDeleteTaskByPlanId(Long planId, Integer isDeleted);
 
     List<PanelListVo> selectCurUserTaskList(PanelListDto panelListDto);
+
+    List<CoreSafetyExceptionData> selectMonitorExceptionData(DateTime time);
 }

+ 34 - 26
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/retrieval/service/impl/CoreMonitoringRetrievalTaskServiceImpl.java

@@ -5,8 +5,6 @@ import cn.hutool.core.date.DateField;
 import cn.hutool.core.date.DateTime;
 import cn.hutool.core.date.DateUtil;
 import cn.hutool.core.util.ObjectUtil;
-import cn.hutool.poi.excel.ExcelUtil;
-import cn.hutool.poi.excel.ExcelWriter;
 import com.alibaba.excel.EasyExcel;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.IdWorker;
@@ -15,7 +13,6 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 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.edu.vo.CoreEduTrainingPlanPageVo;
 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;
@@ -25,15 +22,16 @@ import com.xunmei.common.core.domain.retrieval.vo.CoreMonitoringRetrievalTaskExc
 import com.xunmei.common.core.domain.retrieval.vo.CoreMonitoringRetrievalTaskOneVo;
 import com.xunmei.common.core.domain.retrieval.vo.CoreMonitoringRetrievalTaskVo;
 import com.xunmei.common.core.domain.retrieval.vo.TaskDataVo;
+import com.xunmei.common.core.domain.safetyindex.domain.CoreSafetyExceptionData;
 import com.xunmei.common.core.enums.RetrievalTaskCycle;
-import com.xunmei.common.core.utils.*;
+import com.xunmei.common.core.utils.DateHelper;
+import com.xunmei.common.core.utils.DateUtils;
+import com.xunmei.common.core.utils.Ymd;
 import com.xunmei.common.core.web.page.TableDataInfo;
 import com.xunmei.common.security.utils.SecurityUtils;
 import com.xunmei.core.access.domain.TMonitoringRetrievalPlan;
 import com.xunmei.core.access.dto.CoreMonitoringTaskRegistrationDTO;
 import com.xunmei.core.access.mapper.CoreMonitoringTaskRegistrationMapper;
-import com.xunmei.core.access.service.ICoreMonitoringTaskRegistrationMonitorService;
-import com.xunmei.core.access.service.ICoreMonitoringTaskRegistrationService;
 import com.xunmei.core.access.service.ITMonitoringRetrievalPlanService;
 import com.xunmei.core.retrieval.mapper.CoreMonitoringRetrievalTaskMapper;
 import com.xunmei.core.retrieval.service.ICoreMonitoringRetrievalTaskService;
@@ -44,15 +42,11 @@ import com.xunmei.system.api.domain.SysOrg;
 import com.xunmei.system.api.function.RemoteCallHandlerExecutor;
 import com.xunmei.system.api.model.LoginUser;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.config.ConfigurableBeanFactory;
-import org.springframework.context.annotation.DependsOn;
 import org.springframework.context.annotation.Lazy;
-import org.springframework.context.annotation.Scope;
 import org.springframework.scheduling.annotation.Async;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
-import javax.servlet.ServletOutputStream;
 import javax.servlet.http.HttpServletResponse;
 import java.io.IOException;
 import java.net.URLEncoder;
@@ -61,7 +55,7 @@ import java.time.LocalDate;
 import java.time.ZoneId;
 import java.util.*;
 import java.util.stream.Collectors;
-
+import java.util.stream.Stream;
 
 
 /**
@@ -83,6 +77,7 @@ public class CoreMonitoringRetrievalTaskServiceImpl extends ServiceImpl<CoreMoni
     private ITMonitoringRetrievalPlanService itMonitoringRetrievalPlanService;
     @Autowired
     private CoreMonitoringTaskRegistrationMapper coreMonitoringTaskRegistrationMapper;
+
     @Override
     public TableDataInfo selectPage(RetrievalTaskPageDto request) {
 
@@ -95,7 +90,7 @@ public class CoreMonitoringRetrievalTaskServiceImpl extends ServiceImpl<CoreMoni
         }
         //下穿
         if (request.getCheckSub()) {
-            SysOrg sysOrg = RemoteCallHandlerExecutor.executeRemoteCall(() -> orgService.selectSysOrgById(request.getOrgId(),SecurityConstants.INNER), ErrorMsgConstants.QUERY_ORG_DATA_ERROR);
+            SysOrg sysOrg = RemoteCallHandlerExecutor.executeRemoteCall(() -> orgService.selectSysOrgById(request.getOrgId(), SecurityConstants.INNER), ErrorMsgConstants.QUERY_ORG_DATA_ERROR);
             request.setOrgPath(sysOrg.getPath());
             request.setOrgId(null);
         }
@@ -107,7 +102,7 @@ public class CoreMonitoringRetrievalTaskServiceImpl extends ServiceImpl<CoreMoni
 
     @Override
     public void export(RetrievalTaskPageDto request, HttpServletResponse response) throws IOException {
-        SysOrg sysOrg = RemoteCallHandlerExecutor.executeRemoteCall(() -> orgService.selectSysOrgById(request.getOrgId(),SecurityConstants.INNER), ErrorMsgConstants.QUERY_ORG_DATA_ERROR);
+        SysOrg sysOrg = RemoteCallHandlerExecutor.executeRemoteCall(() -> orgService.selectSysOrgById(request.getOrgId(), SecurityConstants.INNER), ErrorMsgConstants.QUERY_ORG_DATA_ERROR);
         List<SysDictData> listDict = RemoteCallHandlerExecutor.executeRemoteCall(() -> dictDataService.selectDictByeType("retrieval_task_status", SecurityConstants.INNER), ErrorMsgConstants.QUERY_DICT_DATA_ERROR);
         List<SysDictData> listDicta = RemoteCallHandlerExecutor.executeRemoteCall(() -> dictDataService.selectDictByeType("sys_access_cycle", SecurityConstants.INNER), ErrorMsgConstants.QUERY_DICT_DATA_ERROR);
         if (request.getCheckSub()) {
@@ -119,13 +114,13 @@ public class CoreMonitoringRetrievalTaskServiceImpl extends ServiceImpl<CoreMoni
         if (ObjectUtil.isEmpty(list)) {
             throw new RuntimeException("导出数据为空!");
         }
-        if(list.size()>10000){
+        if (list.size() > 10000) {
             throw new RuntimeException("导出数据量过大(单次导出限量10000条数据),请填写条件分批导出");
         }
-        for(int i=0;i<list.size();i++){
+        for (int i = 0; i < list.size(); i++) {
             CoreMonitoringRetrievalTaskExcelVo vo = list.get(i);
             vo.setStatusText(listDict.stream().filter(d -> d.getDictValue().equals(vo.getStatus())).findFirst().orElse(new SysDictData()).getDictLabel());
-            vo.setOrderNum(i+1);
+            vo.setOrderNum(i + 1);
             vo.setCycleText(listDicta.stream().filter(d -> d.getDictValue().equals(vo.getStatus())).findFirst().orElse(new SysDictData()).getDictLabel());
         }
         response.setContentType("application/vnd.ms-excel");
@@ -219,6 +214,7 @@ public class CoreMonitoringRetrievalTaskServiceImpl extends ServiceImpl<CoreMoni
     public int deleteCoreMonitoringRetrievalTaskById(Long id) {
         return coreMonitoringRetrievalTaskMapper.deleteById(id);
     }
+
     @Async
     /**
      * 无周期任务生成
@@ -363,7 +359,7 @@ public class CoreMonitoringRetrievalTaskServiceImpl extends ServiceImpl<CoreMoni
         coreMonitoringRetrievalTaskMapper.initializationTask(yesterday.toString());
         List<Long> longs = coreMonitoringRetrievalTaskMapper.selectTaskByTime(yesterday.toString());
         //删除关联
-        longs.forEach(l->{
+        longs.forEach(l -> {
             coreMonitoringTaskRegistrationMapper.deleteByTaskId(l);
         });
     }
@@ -375,12 +371,12 @@ public class CoreMonitoringRetrievalTaskServiceImpl extends ServiceImpl<CoreMoni
 
     @Override
     public void deleteWaitTaskByPlanId(Long planId) {
-        coreMonitoringRetrievalTaskMapper. deleteWaitTaskByPlanId(planId);
+        coreMonitoringRetrievalTaskMapper.deleteWaitTaskByPlanId(planId);
     }
 
     @Override
-    public void updateDeleteTaskByPlanId(Long planId,Integer isDeleted) {
-        coreMonitoringRetrievalTaskMapper.updateDeleteTaskByPlanId(planId,isDeleted);
+    public void updateDeleteTaskByPlanId(Long planId, Integer isDeleted) {
+        coreMonitoringRetrievalTaskMapper.updateDeleteTaskByPlanId(planId, isDeleted);
     }
 
     /**
@@ -435,9 +431,9 @@ public class CoreMonitoringRetrievalTaskServiceImpl extends ServiceImpl<CoreMoni
             dateRange = DateUtils.getStartAndEnd(dateTime, Integer.parseInt(plan.getPlanCycle()));
         }
         Map<Integer, DateRange> dateRanges = DateUtils.splitDateRange(dateRange.getStartTime(), dateRange.getEndTime(), plan.getPlanFrequency().intValue());
-        for (int i =1; i <= plan.getPlanFrequency(); i++) {
+        for (int i = 1; i <= plan.getPlanFrequency(); i++) {
             DateRange dateRange1 = dateRanges.get(i);
-            CoreMonitoringRetrievalTask task = this.buildCoreMonitoringRetrievalTask(batchNum, i , plan, sysOrg, dateRange1,ymd);
+            CoreMonitoringRetrievalTask task = this.buildCoreMonitoringRetrievalTask(batchNum, i, plan, sysOrg, dateRange1, ymd);
             taskList.add(task);
         }
 
@@ -450,10 +446,10 @@ public class CoreMonitoringRetrievalTaskServiceImpl extends ServiceImpl<CoreMoni
      * @param frequency 第几次
      * @param plan      计划
      * @param sysOrg    机构
-     * @param ymd  日期
+     * @param ymd       日期
      * @return
      */
-    private CoreMonitoringRetrievalTask buildCoreMonitoringRetrievalTask(Long batchNum, int frequency, TMonitoringRetrievalPlan plan, SysOrg sysOrg, DateRange dateRange,Ymd ymd) {
+    private CoreMonitoringRetrievalTask buildCoreMonitoringRetrievalTask(Long batchNum, int frequency, TMonitoringRetrievalPlan plan, SysOrg sysOrg, DateRange dateRange, Ymd ymd) {
 /*        Date dateTime = Date.from(taskTime.atStartOfDay(ZoneId.systemDefault()).toInstant());
         Ymd ymd = Ymd.of(dateTime);
         DateRange dateRange = null;
@@ -493,9 +489,21 @@ public class CoreMonitoringRetrievalTaskServiceImpl extends ServiceImpl<CoreMoni
     @Override
     public List<PanelListVo> selectCurUserTaskList(PanelListDto request) {
         List<PanelListVo> list = baseMapper.selectCurUserTaskList(request);
-        list.removeIf(item->DateUtil.compare(new Date(), item.getEndTime()) > 0);
-        list.forEach(item -> {item.setType(PanelTypeEnums.MONITORING_RETRIEVAL.getCode());});
+        list.removeIf(item -> DateUtil.compare(new Date(), item.getEndTime()) > 0);
+        list.forEach(item -> {
+            item.setType(PanelTypeEnums.MONITORING_RETRIEVAL.getCode());
+        });
 
         return list;
     }
+
+    @Override
+    public List<CoreSafetyExceptionData> selectMonitorExceptionData(DateTime time) {
+        //逾期数据
+        List<CoreSafetyExceptionData> overTimeExceptionData = baseMapper.selectMonitorOverTimeExceptionData(time);
+        //检查通道占比数量数据
+        List<CoreSafetyExceptionData> numsExceptionData = baseMapper.selectMonitorNumsExceptionData(time);
+
+        return Stream.of(overTimeExceptionData, numsExceptionData).flatMap(Collection::stream).collect(Collectors.toList());
+    }
 }

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

@@ -14,8 +14,7 @@ import java.util.Date;
 public interface ICoreSafetyExceptionDataService extends IService<CoreSafetyExceptionData> {
 
 
-
-    public void countExceptionData(String date);
+    void countExceptionData(String date);
 
     void deleteExceptionData(Date date);
 

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

@@ -6,7 +6,9 @@ import cn.hutool.core.date.DateUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.xunmei.common.core.domain.safetyindex.domain.CoreSafetyExceptionData;
+import com.xunmei.core.question.service.IQuestionService;
 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.ICoreSafetyExceptionDataService;
 import com.xunmei.system.api.RemoteOrgService;
@@ -32,6 +34,10 @@ public class CoreSafetyExceptionDataServiceImpl extends ServiceImpl<CoreSafetyEx
     private RemoteOrgService orgService;
     @Autowired
     private ResumptionService resumptionService;
+    @Autowired
+    private IQuestionService questionService;
+    @Autowired
+    private ICoreMonitoringRetrievalTaskService monitoringRetrievalTaskService;
 
     @Override
     @Transactional(rollbackFor = Exception.class)
@@ -43,15 +49,32 @@ public class CoreSafetyExceptionDataServiceImpl extends ServiceImpl<CoreSafetyEx
         //获取安保履职的数据
         doResumptionExceptionData(time);
         //获取问题整改的异常数据
-        doProblemExceptionData(time);
+        doQuestionExceptionData(time);
+        //获取监控调阅的异常数据
+        doMonitorExceptionData(time);
 
     }
 
-    private void doProblemExceptionData(DateTime time) {
+    private void doMonitorExceptionData(DateTime time) {
+        //获取监控调阅的异常数据 , 扩展字段2=overTime表示逾期数据  扩展字段2=nums表示异常通道数量数据
+        //逾期数据 扩展字段1:周期
+        //异常通道数量数据 扩展字段1:通道数
+        List<CoreSafetyExceptionData> resumptionExceptionList =  monitoringRetrievalTaskService.selectMonitorExceptionData(time);
+        this.saveBatch(resumptionExceptionList);
+    }
 
+    private void doQuestionExceptionData(DateTime time) {
+        //未确认和已确认但未整改的
+        //扩展字段1:来源任务id
+        //扩展字段2:任务来源 1:履职,2:安全检查
+        List<CoreSafetyExceptionData> resumptionExceptionList =  questionService.selectQuestionExceptionData(time);
+        this.saveBatch(resumptionExceptionList);
     }
 
     private void doResumptionExceptionData(DateTime time) {
+        // 逾期数据
+        //扩展字段1:计划id
+        //扩展字段2:计划执行时刻 (2,3,4 营业前中后)
         List<CoreSafetyExceptionData> resumptionExceptionList = resumptionService.findResumptionList(time);
         this.saveBatch(resumptionExceptionList);
     }
@@ -75,6 +98,10 @@ public class CoreSafetyExceptionDataServiceImpl extends ServiceImpl<CoreSafetyEx
         time.setField(DateField.YEAR, year);
         time.setField(DateField.MONTH, month - 1);
         time.setField(DateField.DAY_OF_MONTH, 1);
+        time.setField(DateField.HOUR_OF_DAY, 0);
+        time.setField(DateField.MINUTE, 0);
+        time.setField(DateField.SECOND, 0);
+        time.setField(DateField.MILLISECOND, 0);
         return time;
     }
 }

+ 6 - 0
soc-modules/soc-modules-core/src/main/resources/mapper/question/QuestionMapper.xml

@@ -204,4 +204,10 @@
             #{id}
         </foreach>
     </delete>
+
+    <select id="selectQuestionExceptionData"
+            resultType="com.xunmei.common.core.domain.safetyindex.domain.CoreSafetyExceptionData">
+        SELECT a.id as dataId, a.org_id as orgId, a.src_task_id as extraField1, a.src_type as extraField2, a.submit_time as dataTime,'core_question' as dataSource,now() as createTime
+        FROM core_question a where reform_deadline <![CDATA[<]]> #{time} and (confirm_status=0 or (confirm_status=2 and reform_status=10))
+    </select>
 </mapper>

+ 18 - 2
soc-modules/soc-modules-core/src/main/resources/mapper/resumption/ResumptionMapper.xml

@@ -225,7 +225,7 @@ update   core_resumption set name=#{planName} where plan_id =#{planId}
 
     <select id="findResumptionExceptionList"
             resultType="com.xunmei.common.core.domain.safetyindex.domain.CoreSafetyExceptionData">
-        SELECT a.id as dataId, a.org_id as orgId, a.plan_id as extraField1, a.status as extraField2, a.ymd_date as dataTime,'t_app_resumption' as dataSource,now() as createTime
+       <!-- SELECT a.id as dataId, a.org_id as orgId, a.plan_id as extraField1, a.status as extraField2, a.ymd_date as dataTime,'core_resumption' as dataSource,now() as createTime
         FROM core_resumption a
         WHERE a.plan_id IN (SELECT a.id
                             FROM core_resumption_plan a
@@ -237,6 +237,22 @@ update   core_resumption set name=#{planName} where plan_id =#{planId}
                                                     FROM core_safety_index_calculate_rule a
                                                     WHERE a.type_code = 1004
                                                     GROUP BY org_type, cycle))
-          and ymd_year =#{year} and ymd_quarter=#{quarter} and ymd_month=#{month} and status in (4) and role_id =#{roleId}
+          and ymd_year =#{year} and ymd_quarter=#{quarter} and ymd_month=#{month} and status in (4) and role_id =#{roleId}-->
+        SELECT a.id              as dataId,
+        a.org_id          as orgId,
+        a.plan_id         as extraField1,
+        p.plan_cycle      as extraField2,
+        a.ymd_date        as dataTime,
+        'core_resumption' as dataSource,
+        now()             as createTime
+        FROM core_resumption a
+        inner join core_resumption_plan p on a.plan_id = p.id
+        where p.plan_cycle in (2, 3, 4) <!--营业前中后-->
+        and  ymd_year =#{year}
+        and ymd_quarter=#{quarter}
+        and ymd_month=#{month}
+        and status in (4)
+        and role_id = #{roleId}
+
     </select>
 </mapper>

+ 33 - 0
soc-modules/soc-modules-core/src/main/resources/mapper/retrieval/CoreMonitoringRetrievalTaskMapper.xml

@@ -450,4 +450,37 @@
     <select id="selectTaskByTime" resultType="java.lang.Long">
         SELECT * FROM core_monitoring_retrieval_task WHERE `status`=1 AND start_time LIKE  concat(#{dateTime}, '%')
     </select>
+
+    <select id="selectMonitorOverTimeExceptionData"
+            resultType="com.xunmei.common.core.domain.safetyindex.domain.CoreSafetyExceptionData">
+        SELECT  a.id                             as dataId,
+                a.org_id                         as orgId,
+                a.submit_time                    as dataTime,
+                'core_monitoring_retrieval_task' as dataSource,
+                now()                            as createTime,
+                a.cycle                          as extraField1,
+                'overTime'                       as extraField2
+        FROM core_monitoring_retrieval_task a
+        where a.plan_end_time <![CDATA[<]]> #{time}
+        and a.status = 3
+    </select>
+
+    <select id="selectMonitorNumsExceptionData"
+            resultType="com.xunmei.common.core.domain.safetyindex.domain.CoreSafetyExceptionData">
+        SELECT t.id                             as dataId,
+               t.org_id                         as orgId,
+               t.submit_time                    as dataTime,
+               'core_monitoring_retrieval_task' as dataSource,
+               now()                            as createTime,
+               count(t1.mid)                    as extraField1,  <!--异常通道数量-->
+               'nums'                           as extraField2
+        FROM core_monitoring_retrieval_task t
+                 inner join core_monitoring_task_registration tr on t.id = tr.task_id
+                 inner join core_monitoring_task_registration_monitor trm on tr.id = trm.task_registration_id
+                 inner join (select distinct m.id as mid, m.video_channel as channelId
+                             from core_monitoring_task_registration_monitor m
+                                      inner join core_monitoring_task_monitor_info i on m.id = i.task_monitor_id
+                             where i.situation = 1) t1 on trm.id=t1.mid
+        where t.plan_end_time <![CDATA[<]]> #{time}
+    </select>
 </mapper>