|  | @@ -1,24 +1,38 @@
 | 
	
		
			
				|  |  |  package com.xunmei.core.access.service.impl;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +import cn.hutool.core.util.ObjectUtil;
 | 
	
		
			
				|  |  | +import com.alibaba.nacos.common.utils.CollectionUtils;
 | 
	
		
			
				|  |  | +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 | 
	
		
			
				|  |  |  import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 | 
	
		
			
				|  |  |  import com.baomidou.mybatisplus.core.toolkit.IdWorker;
 | 
	
		
			
				|  |  |  import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 | 
	
		
			
				|  |  |  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.edu.domain.CoreEduTrainingPlan;
 | 
	
		
			
				|  |  | +import com.xunmei.common.core.domain.edu.vo.CoreEduTrainingPlanPageVo;
 | 
	
		
			
				|  |  | +import com.xunmei.common.core.domain.edu.vo.CoreEduTrainingPlanRoleVo;
 | 
	
		
			
				|  |  | +import com.xunmei.common.core.domain.retrieval.domain.CoreMonitoringRetrievalTask;
 | 
	
		
			
				|  |  | +import com.xunmei.common.core.exception.ServiceException;
 | 
	
		
			
				|  |  | +import com.xunmei.common.core.util.BeanHelper;
 | 
	
		
			
				|  |  |  import com.xunmei.common.core.utils.DateUtils;
 | 
	
		
			
				|  |  |  import com.xunmei.common.core.utils.StringUtils;
 | 
	
		
			
				|  |  | +import com.xunmei.common.core.vo.IdNameVo;
 | 
	
		
			
				|  |  |  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.mapper.TMonitoringRetrievalPlanMapper;
 | 
	
		
			
				|  |  |  import com.xunmei.core.access.service.ITMonitoringRetrievalPlanService;
 | 
	
		
			
				|  |  | +import com.xunmei.core.access.vo.TMonitoringRetrievalPlanVO;
 | 
	
		
			
				|  |  |  import com.xunmei.core.retrieval.service.ICoreMonitoringRetrievalTaskService;
 | 
	
		
			
				|  |  | +import com.xunmei.system.api.Eto.RoleConditionEto;
 | 
	
		
			
				|  |  |  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.domain.SysRole;
 | 
	
		
			
				|  |  |  import com.xunmei.system.api.domain.SysUser;
 | 
	
		
			
				|  |  | +import com.xunmei.system.api.function.RemoteCallHandlerExecutor;
 | 
	
		
			
				|  |  |  import org.springframework.beans.factory.annotation.Autowired;
 | 
	
		
			
				|  |  |  import org.springframework.context.annotation.Lazy;
 | 
	
		
			
				|  |  |  import org.springframework.stereotype.Service;
 | 
	
	
		
			
				|  | @@ -26,6 +40,8 @@ import org.springframework.stereotype.Service;
 | 
	
		
			
				|  |  |  import javax.annotation.Resource;
 | 
	
		
			
				|  |  |  import java.util.ArrayList;
 | 
	
		
			
				|  |  |  import java.util.List;
 | 
	
		
			
				|  |  | +import java.util.Map;
 | 
	
		
			
				|  |  | +import java.util.stream.Collectors;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  /**
 | 
	
	
		
			
				|  | @@ -47,12 +63,14 @@ public class TMonitoringRetrievalPlanServiceImpl extends ServiceImpl<TMonitoring
 | 
	
		
			
				|  |  |      private RemoteOrgService remoteOrgService;
 | 
	
		
			
				|  |  |      @Autowired
 | 
	
		
			
				|  |  |      private RemoteRoleService remoteRoleService;
 | 
	
		
			
				|  |  | +    @Autowired
 | 
	
		
			
				|  |  | +    private RemoteOrgService orgService;
 | 
	
		
			
				|  |  |      @Lazy
 | 
	
		
			
				|  |  |      @Resource
 | 
	
		
			
				|  |  |      private ICoreMonitoringRetrievalTaskService iCoreMonitoringRetrievalTaskService;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      @Override
 | 
	
		
			
				|  |  | -    public TableDataInfo<TMonitoringRetrievalPlan> selectPage(TMonitoringRetrievalPlan tMonitoringRetrievalPlan) {
 | 
	
		
			
				|  |  | +    public TableDataInfo selectPage(TMonitoringRetrievalPlan tMonitoringRetrievalPlan) {
 | 
	
		
			
				|  |  |          //未删除
 | 
	
		
			
				|  |  |          tMonitoringRetrievalPlan.setIsDeleted(ZERO.longValue());
 | 
	
		
			
				|  |  |          Page<TMonitoringRetrievalPlan> page;
 | 
	
	
		
			
				|  | @@ -90,13 +108,29 @@ public class TMonitoringRetrievalPlanServiceImpl extends ServiceImpl<TMonitoring
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |          query.orderByDesc("create_time");
 | 
	
		
			
				|  |  |          //获取数据
 | 
	
		
			
				|  |  | +        query.eq("create_type", 0);
 | 
	
		
			
				|  |  |          page = tMonitoringRetrievalPlanMapper.selectPage(page, query);
 | 
	
		
			
				|  |  | +        SysOrg sysOrg = RemoteCallHandlerExecutor.executeRemoteCall(() -> orgService.selectTopOrg(SecurityConstants.INNER), ErrorMsgConstants.QUERY_ORG_DATA_ERROR);
 | 
	
		
			
				|  |  | +        List<TMonitoringRetrievalPlan> records = page.getRecords();
 | 
	
		
			
				|  |  | +        List<TMonitoringRetrievalPlanVO> tMonitoringRetrievalPlanVOS = BeanHelper.copyProperties(records, TMonitoringRetrievalPlanVO.class);
 | 
	
		
			
				|  |  | +        for (TMonitoringRetrievalPlanVO monitoringRetrievalPlan : tMonitoringRetrievalPlanVOS) {
 | 
	
		
			
				|  |  | +            dealData(monitoringRetrievalPlan, tMonitoringRetrievalPlanVOS, sysOrg.getId());
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  |          //抓换为TableDataInfo适配前端
 | 
	
		
			
				|  |  | -        return TableDataInfo.build(page);
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | +        TableDataInfo<TMonitoringRetrievalPlanVO> tableDataInfo = new TableDataInfo();
 | 
	
		
			
				|  |  | +        tableDataInfo.setMsg("操作成功");
 | 
	
		
			
				|  |  | +        tableDataInfo.setCode(200);
 | 
	
		
			
				|  |  | +        tableDataInfo.setTotal(page.getTotal());
 | 
	
		
			
				|  |  | +        tableDataInfo.setRows(tMonitoringRetrievalPlanVOS);
 | 
	
		
			
				|  |  | +        return tableDataInfo;
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +    private void dealData(TMonitoringRetrievalPlanVO record, List<TMonitoringRetrievalPlanVO> records, Long orgId) {
 | 
	
		
			
				|  |  | +        record.setNo(records.indexOf(record) + 1);
 | 
	
		
			
				|  |  | +        List<TMonitoringRetrievalPlan> tMonitoringRetrievalPlans = tMonitoringRetrievalPlanMapper.selectList(new LambdaQueryWrapper<TMonitoringRetrievalPlan>().eq(TMonitoringRetrievalPlan::getParentId, record.getId()));
 | 
	
		
			
				|  |  | +        List<TMonitoringRetrievalPlanVO> children = BeanHelper.copyProperties(tMonitoringRetrievalPlans, TMonitoringRetrievalPlanVO.class);
 | 
	
		
			
				|  |  | +        record.setChildren(children);
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      /**
 | 
	
		
			
				|  |  |       * 查询监控调阅计划
 | 
	
	
		
			
				|  | @@ -115,7 +149,7 @@ public class TMonitoringRetrievalPlanServiceImpl extends ServiceImpl<TMonitoring
 | 
	
		
			
				|  |  |          TMonitoringRetrievalPlan tMonitoringRetrievalPlan = tMonitoringRetrievalPlanMapper.selectById(id);
 | 
	
		
			
				|  |  |          tMonitoringRetrievalPlan.setPlanStatus(ZERO);
 | 
	
		
			
				|  |  |          tMonitoringRetrievalPlanMapper.updateById(tMonitoringRetrievalPlan);
 | 
	
		
			
				|  |  | -        List<SysOrg> list = remoteOrgService.selectSysOrgByParentId(MINUS_ONE.longValue(), SecurityConstants.INNER);
 | 
	
		
			
				|  |  | +        List<SysOrg> list = remoteOrgService.selectSysOrgByParentId(tMonitoringRetrievalPlan.getOrgId(), SecurityConstants.INNER);
 | 
	
		
			
				|  |  |          Integer i = ZERO;
 | 
	
		
			
				|  |  |          List<TMonitoringRetrievalPlan> tMonitoringRetrievalPlans = new ArrayList<>();
 | 
	
		
			
				|  |  |          for (SysOrg l : list) {
 | 
	
	
		
			
				|  | @@ -138,6 +172,7 @@ public class TMonitoringRetrievalPlanServiceImpl extends ServiceImpl<TMonitoring
 | 
	
		
			
				|  |  |              monitoringRetrievalPlan.setDescription(tMonitoringRetrievalPlan.getDescription());
 | 
	
		
			
				|  |  |              monitoringRetrievalPlan.setCreateType(1);
 | 
	
		
			
				|  |  |              monitoringRetrievalPlan.setId(IdWorker.getId());
 | 
	
		
			
				|  |  | +            monitoringRetrievalPlan.setParentId(tMonitoringRetrievalPlan.getId());
 | 
	
		
			
				|  |  |              i = tMonitoringRetrievalPlanMapper.insert(monitoringRetrievalPlan);
 | 
	
		
			
				|  |  |              tMonitoringRetrievalPlans.add(monitoringRetrievalPlan);
 | 
	
		
			
				|  |  |              if (i < ZERO) {
 | 
	
	
		
			
				|  | @@ -217,14 +252,40 @@ public class TMonitoringRetrievalPlanServiceImpl extends ServiceImpl<TMonitoring
 | 
	
		
			
				|  |  |       */
 | 
	
		
			
				|  |  |      @Override
 | 
	
		
			
				|  |  |      public int deleteTMonitoringRetrievalPlanByIds(Long[] ids) {
 | 
	
		
			
				|  |  | -        int i = ZERO;
 | 
	
		
			
				|  |  | +        int i = 0;
 | 
	
		
			
				|  |  |          for (Long id : ids) {
 | 
	
		
			
				|  |  |              TMonitoringRetrievalPlan tMonitoringRetrievalPlan = new TMonitoringRetrievalPlan();
 | 
	
		
			
				|  |  |              tMonitoringRetrievalPlan.setIsDeleted(2L);
 | 
	
		
			
				|  |  |              tMonitoringRetrievalPlan.setId(id);
 | 
	
		
			
				|  |  | -            i = tMonitoringRetrievalPlanMapper.updateTMonitoringRetrievalPlan(tMonitoringRetrievalPlan);
 | 
	
		
			
				|  |  | -            if (i < 1) {
 | 
	
		
			
				|  |  | -                return i;
 | 
	
		
			
				|  |  | +            TMonitoringRetrievalPlan monitoringRetrievalPlan = tMonitoringRetrievalPlanMapper.selectById(id);
 | 
	
		
			
				|  |  | +            //如果是下发的任务
 | 
	
		
			
				|  |  | +            if (monitoringRetrievalPlan.getParentId() != null) {
 | 
	
		
			
				|  |  | +                //不能删除
 | 
	
		
			
				|  |  | +                throw new ServiceException("子任务,不能删除");
 | 
	
		
			
				|  |  | +            } else {
 | 
	
		
			
				|  |  | +                if (monitoringRetrievalPlan.getCreateType() == 0) {
 | 
	
		
			
				|  |  | +                    QueryWrapper queryWrapper = new QueryWrapper();
 | 
	
		
			
				|  |  | +                    queryWrapper.eq("parent_id", monitoringRetrievalPlan.getId());
 | 
	
		
			
				|  |  | +                    List<TMonitoringRetrievalPlan> list = tMonitoringRetrievalPlanMapper.selectList(queryWrapper);
 | 
	
		
			
				|  |  | +                    list.add(monitoringRetrievalPlan);
 | 
	
		
			
				|  |  | +                    for (TMonitoringRetrievalPlan p : list) {
 | 
	
		
			
				|  |  | +                        CoreMonitoringRetrievalTask coreMonitoringRetrievalTask = new CoreMonitoringRetrievalTask();
 | 
	
		
			
				|  |  | +                        coreMonitoringRetrievalTask.setPlanId(p.getId());
 | 
	
		
			
				|  |  | +                        coreMonitoringRetrievalTask.setStatus("0");
 | 
	
		
			
				|  |  | +                        List<CoreMonitoringRetrievalTask> coreMonitoringRetrievalTasks = iCoreMonitoringRetrievalTaskService.selectCoreMonitoringRetrievalTaskList(coreMonitoringRetrievalTask);
 | 
	
		
			
				|  |  | +                        List<Long> collect = coreMonitoringRetrievalTasks.stream().map(CoreMonitoringRetrievalTask::getId).distinct().collect(Collectors.toList());
 | 
	
		
			
				|  |  | +                        if (CollectionUtils.isNotEmpty(collect)) {
 | 
	
		
			
				|  |  | +                            Long[] arr = new Long[collect.size()];
 | 
	
		
			
				|  |  | +                            collect.toArray(arr);
 | 
	
		
			
				|  |  | +                            iCoreMonitoringRetrievalTaskService.deleteCoreMonitoringRetrievalTaskByIds(arr);
 | 
	
		
			
				|  |  | +                        }
 | 
	
		
			
				|  |  | +                        p.setIsDeleted(2L);
 | 
	
		
			
				|  |  | +                        i = tMonitoringRetrievalPlanMapper.updateTMonitoringRetrievalPlan(p);
 | 
	
		
			
				|  |  | +                        if (i < 1) {
 | 
	
		
			
				|  |  | +                            return i;
 | 
	
		
			
				|  |  | +                        }
 | 
	
		
			
				|  |  | +                    }
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |          return i;
 |