|  | @@ -19,10 +19,7 @@ import com.xunmei.common.core.domain.panel.enums.PanelTypeEnums;
 | 
											
												
													
														|  |  import com.xunmei.common.core.domain.panel.vo.PanelListVo;
 |  |  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.domain.CoreMonitoringRetrievalTask;
 | 
											
												
													
														|  |  import com.xunmei.common.core.domain.retrieval.dto.RetrievalTaskPageDto;
 |  |  import com.xunmei.common.core.domain.retrieval.dto.RetrievalTaskPageDto;
 | 
											
												
													
														|  | -import com.xunmei.common.core.domain.retrieval.vo.CoreMonitoringRetrievalTaskExcelVo;
 |  | 
 | 
											
												
													
														|  | -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.retrieval.vo.*;
 | 
											
												
													
														|  |  import com.xunmei.common.core.domain.safetyindex.domain.CoreSafetyExceptionData;
 |  |  import com.xunmei.common.core.domain.safetyindex.domain.CoreSafetyExceptionData;
 | 
											
												
													
														|  |  import com.xunmei.common.core.enums.edu.EduTrainingPlanCycleEnum;
 |  |  import com.xunmei.common.core.enums.edu.EduTrainingPlanCycleEnum;
 | 
											
												
													
														|  |  import com.xunmei.common.core.domain.worktime.domain.SysWorkTime;
 |  |  import com.xunmei.common.core.domain.worktime.domain.SysWorkTime;
 | 
											
										
											
												
													
														|  | @@ -108,6 +105,7 @@ public class CoreMonitoringRetrievalTaskServiceImpl extends ServiceImpl<CoreMoni
 | 
											
												
													
														|  |          }
 |  |          }
 | 
											
												
													
														|  |          //获取数据
 |  |          //获取数据
 | 
											
												
													
														|  |          page = coreMonitoringRetrievalTaskMapper.selectPageList(page, request);
 |  |          page = coreMonitoringRetrievalTaskMapper.selectPageList(page, request);
 | 
											
												
													
														|  | 
 |  | +        this.taskChangeForTimeWorkChange(null);
 | 
											
												
													
														|  |          //抓换为TableDataInfo适配前端
 |  |          //抓换为TableDataInfo适配前端
 | 
											
												
													
														|  |          return TableDataInfo.build(page);
 |  |          return TableDataInfo.build(page);
 | 
											
												
													
														|  |      }
 |  |      }
 | 
											
										
											
												
													
														|  | @@ -606,112 +604,107 @@ public class CoreMonitoringRetrievalTaskServiceImpl extends ServiceImpl<CoreMoni
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |      @Override
 |  |      @Override
 | 
											
												
													
														|  |      @Transactional(rollbackFor = Exception.class)
 |  |      @Transactional(rollbackFor = Exception.class)
 | 
											
												
													
														|  | -    public void taskChangeForTimeWorkChange(WorkTimeChangeEvent event) {
 |  | 
 | 
											
												
													
														|  | 
 |  | +   public void taskChangeForTimeWorkChange(WorkTimeChangeEvent event) {
 | 
											
												
													
														|  |          //修改的作息的日期
 |  |          //修改的作息的日期
 | 
											
												
													
														|  |          Date ymdDate  =  event.getDataList().get(0).getDate();
 |  |          Date ymdDate  =  event.getDataList().get(0).getDate();
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |          //受影响的机构
 |  |          //受影响的机构
 | 
											
												
													
														|  |          List<Long> orgIds = event.getOrgIds();
 |  |          List<Long> orgIds = event.getOrgIds();
 | 
											
												
													
														|  | 
 |  | +    /*    //测试用的数据
 | 
											
												
													
														|  | 
 |  | +         Date ymdDate  =  new Date();
 | 
											
												
													
														|  | 
 |  | +        //受影响的机构
 | 
											
												
													
														|  | 
 |  | +        List<Long> orgIds = new ArrayList<>();
 | 
											
												
													
														|  | 
 |  | +        orgIds.add(4358025846521957L);
 | 
											
												
													
														|  | 
 |  | +        orgIds.add(4358025846456575L);*/
 | 
											
												
													
														|  |          //判断ymdDate是否是当天
 |  |          //判断ymdDate是否是当天
 | 
											
												
													
														|  |          Date today = new Date();
 |  |          Date today = new Date();
 | 
											
												
													
														|  |          //要删除的任务
 |  |          //要删除的任务
 | 
											
												
													
														|  |          List<CoreMonitoringRetrievalTask> deleteTaskList = new ArrayList<>();
 |  |          List<CoreMonitoringRetrievalTask> deleteTaskList = new ArrayList<>();
 | 
											
												
													
														|  |          //要重新生成任务的机构和计划
 |  |          //要重新生成任务的机构和计划
 | 
											
												
													
														|  | -        List<KeyValue> keyValues = new ArrayList<>();
 |  | 
 | 
											
												
													
														|  | 
 |  | +        List<KeyValueVo> keyValues = new ArrayList<>();
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +        Map<String,Object> dayObjectMap = null;
 | 
											
												
													
														|  | 
 |  | +        Map<String,Object> weekObjectMap=null;
 | 
											
												
													
														|  | 
 |  | +        Map<String,Object> monthObjectMap=null;
 | 
											
												
													
														|  | 
 |  | +        Map<String,Object> quarterObjectMap=null;
 | 
											
												
													
														|  | 
 |  | +        Map<String,Object> halfYearObjectMap=null;
 | 
											
												
													
														|  | 
 |  | +        Map<String,Object> yearObjectMap=null;
 | 
											
												
													
														|  |          //判断ymdDate 月today是否是同一日期
 |  |          //判断ymdDate 月today是否是同一日期
 | 
											
												
													
														|  |          if(DateUtil.isSameDay(ymdDate,today)){
 |  |          if(DateUtil.isSameDay(ymdDate,today)){
 | 
											
												
													
														|  |             //获取当天的调阅任务
 |  |             //获取当天的调阅任务
 | 
											
												
													
														|  | -            Map<String,Object> dayObjectMap = this.deleteTaskList(ymdDate,orgIds,RetrievalTaskCycle.DAYCYCLE.getCode());
 |  | 
 | 
											
												
													
														|  | -            List<CoreMonitoringRetrievalTask> list = (List<CoreMonitoringRetrievalTask>) dayObjectMap.get("deleteTaskList");
 |  | 
 | 
											
												
													
														|  | -            if(CollectionUtil.isNotEmpty(list)){
 |  | 
 | 
											
												
													
														|  | -                deleteTaskList.addAll(list);
 |  | 
 | 
											
												
													
														|  | -            }
 |  | 
 | 
											
												
													
														|  | -            List<KeyValue> keyValueList = (List<KeyValue>) dayObjectMap.get("keyValues");
 |  | 
 | 
											
												
													
														|  | -            if(CollectionUtil.isNotEmpty(keyValueList)){
 |  | 
 | 
											
												
													
														|  | -                keyValues.addAll(keyValueList);
 |  | 
 | 
											
												
													
														|  | -            }
 |  | 
 | 
											
												
													
														|  | -        }else{
 |  | 
 | 
											
												
													
														|  | -            //周
 |  | 
 | 
											
												
													
														|  | -            Map<String,Object> weekObjectMap = this.deleteTaskList(ymdDate,orgIds,RetrievalTaskCycle.WEEKCYCLE.getCode());
 |  | 
 | 
											
												
													
														|  | -            List<CoreMonitoringRetrievalTask> listweek = (List<CoreMonitoringRetrievalTask>) weekObjectMap.get("deleteTaskList");
 |  | 
 | 
											
												
													
														|  | -            if(CollectionUtil.isNotEmpty(listweek)){
 |  | 
 | 
											
												
													
														|  | -                deleteTaskList.addAll(listweek);
 |  | 
 | 
											
												
													
														|  | -            }
 |  | 
 | 
											
												
													
														|  | -            List<KeyValue> keyValueListweek = (List<KeyValue>) weekObjectMap.get("keyValues");
 |  | 
 | 
											
												
													
														|  | -            if(CollectionUtil.isNotEmpty(keyValueListweek)){
 |  | 
 | 
											
												
													
														|  | -                keyValues.addAll(keyValueListweek);
 |  | 
 | 
											
												
													
														|  | -            }
 |  | 
 | 
											
												
													
														|  | -            //月
 |  | 
 | 
											
												
													
														|  | -            Map<String,Object> monthObjectMap = this.deleteTaskList(ymdDate,orgIds,RetrievalTaskCycle.MONTHCYCLE.getCode());
 |  | 
 | 
											
												
													
														|  | -            List<CoreMonitoringRetrievalTask> listmonth = (List<CoreMonitoringRetrievalTask>) monthObjectMap.get("deleteTaskList");
 |  | 
 | 
											
												
													
														|  | -            if(CollectionUtil.isNotEmpty(listmonth)){
 |  | 
 | 
											
												
													
														|  | -                deleteTaskList.addAll(listmonth);
 |  | 
 | 
											
												
													
														|  | -            }
 |  | 
 | 
											
												
													
														|  | -            List<KeyValue> keyValueListmonth = (List<KeyValue>) monthObjectMap.get("keyValues");
 |  | 
 | 
											
												
													
														|  | -            if(CollectionUtil.isNotEmpty(keyValueListmonth)){
 |  | 
 | 
											
												
													
														|  | -                keyValues.addAll(keyValueListmonth);
 |  | 
 | 
											
												
													
														|  | -            }
 |  | 
 | 
											
												
													
														|  | -            //季度
 |  | 
 | 
											
												
													
														|  | -            Map<String,Object> quarterObjectMap = this.deleteTaskList(ymdDate,orgIds,RetrievalTaskCycle.QUARTERCYCLE.getCode());
 |  | 
 | 
											
												
													
														|  | -            List<CoreMonitoringRetrievalTask> listquarter = (List<CoreMonitoringRetrievalTask>) quarterObjectMap.get("deleteTaskList");
 |  | 
 | 
											
												
													
														|  | -            if(CollectionUtil.isNotEmpty(listquarter)){
 |  | 
 | 
											
												
													
														|  | -                deleteTaskList.addAll(listquarter);
 |  | 
 | 
											
												
													
														|  | -            }
 |  | 
 | 
											
												
													
														|  | -            List<KeyValue> keyValueListquarter = (List<KeyValue>) quarterObjectMap.get("keyValues");
 |  | 
 | 
											
												
													
														|  | -            if(CollectionUtil.isNotEmpty(keyValueListquarter)){
 |  | 
 | 
											
												
													
														|  | -                keyValues.addAll(keyValueListquarter);
 |  | 
 | 
											
												
													
														|  | -            }
 |  | 
 | 
											
												
													
														|  | -            //半年
 |  | 
 | 
											
												
													
														|  | -            Map<String,Object> halfYearObjectMap = this.deleteTaskList(ymdDate,orgIds,RetrievalTaskCycle.HALFYEARCYCLE.getCode());
 |  | 
 | 
											
												
													
														|  | -            List<CoreMonitoringRetrievalTask> listhalfYear = (List<CoreMonitoringRetrievalTask>) halfYearObjectMap.get("deleteTaskList");
 |  | 
 | 
											
												
													
														|  | -            if(CollectionUtil.isNotEmpty(listhalfYear)){
 |  | 
 | 
											
												
													
														|  | -                deleteTaskList.addAll(listhalfYear);
 |  | 
 | 
											
												
													
														|  | -            }
 |  | 
 | 
											
												
													
														|  | -            List<KeyValue> keyValueListhalfYear = (List<KeyValue>) halfYearObjectMap.get("keyValues");
 |  | 
 | 
											
												
													
														|  | -            if(CollectionUtil.isNotEmpty(keyValueListhalfYear)){
 |  | 
 | 
											
												
													
														|  | -                keyValues.addAll(keyValueListhalfYear);
 |  | 
 | 
											
												
													
														|  | -            }
 |  | 
 | 
											
												
													
														|  | -            //年
 |  | 
 | 
											
												
													
														|  | -            Map<String,Object> yearObjectMap = this.deleteTaskList(ymdDate,orgIds,RetrievalTaskCycle.YEARCYCLE.getCode());
 |  | 
 | 
											
												
													
														|  | -            List<CoreMonitoringRetrievalTask> listYear = (List<CoreMonitoringRetrievalTask>) yearObjectMap.get("deleteTaskList");
 |  | 
 | 
											
												
													
														|  | -            if(CollectionUtil.isNotEmpty(listYear)){
 |  | 
 | 
											
												
													
														|  | -                deleteTaskList.addAll(listYear);
 |  | 
 | 
											
												
													
														|  | -            }
 |  | 
 | 
											
												
													
														|  | -            List<KeyValue> keyValueListYear = (List<KeyValue>) yearObjectMap.get("keyValues");
 |  | 
 | 
											
												
													
														|  | -            if(CollectionUtil.isNotEmpty(keyValueListYear)){
 |  | 
 | 
											
												
													
														|  | -                keyValues.addAll(keyValueListYear);
 |  | 
 | 
											
												
													
														|  | -            }
 |  | 
 | 
											
												
													
														|  | 
 |  | +            dayObjectMap = this.deleteTaskList(ymdDate,orgIds,RetrievalTaskCycle.DAYCYCLE.getCode());
 | 
											
												
													
														|  |          }
 |  |          }
 | 
											
												
													
														|  | 
 |  | +            weekObjectMap = this.deleteTaskList(ymdDate,orgIds,RetrievalTaskCycle.WEEKCYCLE.getCode());
 | 
											
												
													
														|  | 
 |  | +            monthObjectMap = this.deleteTaskList(ymdDate,orgIds,RetrievalTaskCycle.MONTHCYCLE.getCode());
 | 
											
												
													
														|  | 
 |  | +            quarterObjectMap = this.deleteTaskList(ymdDate,orgIds,RetrievalTaskCycle.QUARTERCYCLE.getCode());
 | 
											
												
													
														|  | 
 |  | +            halfYearObjectMap = this.deleteTaskList(ymdDate,orgIds,RetrievalTaskCycle.HALFYEARCYCLE.getCode());
 | 
											
												
													
														|  | 
 |  | +            yearObjectMap = this.deleteTaskList(ymdDate,orgIds,RetrievalTaskCycle.YEARCYCLE.getCode());
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +        Map<String,Object> allMap = this.buildDeleteTaskList(dayObjectMap,weekObjectMap,monthObjectMap,quarterObjectMap,halfYearObjectMap,yearObjectMap);
 | 
											
												
													
														|  | 
 |  | +        deleteTaskList = (List<CoreMonitoringRetrievalTask>) allMap.get("deleteTaskList");
 | 
											
												
													
														|  | 
 |  | +        keyValues = (List<KeyValueVo>) allMap.get("keyValues");
 | 
											
												
													
														|  |          //删除任务
 |  |          //删除任务
 | 
											
												
													
														|  |          if(CollectionUtil.isNotEmpty(deleteTaskList)){
 |  |          if(CollectionUtil.isNotEmpty(deleteTaskList)){
 | 
											
												
													
														|  |              this.removeBatchByIds(deleteTaskList);
 |  |              this.removeBatchByIds(deleteTaskList);
 | 
											
												
													
														|  |          }
 |  |          }
 | 
											
												
													
														|  |          //生成新的任务
 |  |          //生成新的任务
 | 
											
												
													
														|  | -        if(CollectionUtil.isNotEmpty(keyValues)){
 |  | 
 | 
											
												
													
														|  | -           this.createNewtask(keyValues,ymdDate);
 |  | 
 | 
											
												
													
														|  | -        }
 |  | 
 | 
											
												
													
														|  | 
 |  | +       // if(CollectionUtil.isNotEmpty(keyValues)){
 | 
											
												
													
														|  | 
 |  | +           this.createNewtask(keyValues,ymdDate,orgIds);
 | 
											
												
													
														|  | 
 |  | +       // }
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |      }
 |  |      }
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  | -    private void createNewtask(List<KeyValue> keyValues,Date taskTime) {
 |  | 
 | 
											
												
													
														|  | -        List<CoreMonitoringRetrievalTask> taskList = new ArrayList<>();
 |  | 
 | 
											
												
													
														|  | -        Set<Long>  planId = new HashSet<>();
 |  | 
 | 
											
												
													
														|  | -        for(KeyValue keyValue:keyValues){
 |  | 
 | 
											
												
													
														|  | -            planId.add((Long) keyValue.getValue());
 |  | 
 | 
											
												
													
														|  | 
 |  | +    private Map<String, Object> buildDeleteTaskList(Map<String, Object>... ObjMaps) {
 | 
											
												
													
														|  | 
 |  | +        Map<String, Object> deleteTaskListMap = new HashMap<>();
 | 
											
												
													
														|  | 
 |  | +        List<CoreMonitoringRetrievalTask> deleteTaskList = new ArrayList<>();
 | 
											
												
													
														|  | 
 |  | +        List<KeyValueVo> keyValues = new ArrayList<>();
 | 
											
												
													
														|  | 
 |  | +        for (Map<String, Object> objMap : ObjMaps) {
 | 
											
												
													
														|  | 
 |  | +            if(objMap != null&&objMap.containsKey("deleteTaskList")&&objMap.containsKey("keyValues")){
 | 
											
												
													
														|  | 
 |  | +                List<CoreMonitoringRetrievalTask> listTask = (List<CoreMonitoringRetrievalTask>) objMap.get("deleteTaskList");
 | 
											
												
													
														|  | 
 |  | +                List<KeyValueVo> keyValueList = (List<KeyValueVo>) objMap.get("keyValues");
 | 
											
												
													
														|  | 
 |  | +                if(CollectionUtil.isNotEmpty(listTask)){
 | 
											
												
													
														|  | 
 |  | +                    deleteTaskList.addAll(listTask);
 | 
											
												
													
														|  | 
 |  | +                }
 | 
											
												
													
														|  | 
 |  | +                if (CollectionUtil.isNotEmpty(keyValueList)) {
 | 
											
												
													
														|  | 
 |  | +                    keyValues.addAll(keyValueList);
 | 
											
												
													
														|  | 
 |  | +                }
 | 
											
												
													
														|  | 
 |  | +            }
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  |          }
 |  |          }
 | 
											
												
													
														|  | 
 |  | +        deleteTaskListMap.put("deleteTaskList", deleteTaskList);
 | 
											
												
													
														|  | 
 |  | +        deleteTaskListMap.put("keyValues", keyValues);
 | 
											
												
													
														|  | 
 |  | +        return deleteTaskListMap;
 | 
											
												
													
														|  | 
 |  | +    }
 | 
											
												
													
														|  | 
 |  | +    private void createNewtask(List<KeyValueVo> keyValues,Date taskTime,List<Long> orgIds) {
 | 
											
												
													
														|  | 
 |  | +        //获取所有机构
 | 
											
												
													
														|  | 
 |  | +        List<SysOrg> orgList = RemoteCallHandlerExecutor.executeRemoteCall(() -> orgService.findAllOrg(SecurityConstants.INNER), ErrorMsgConstants.QUERY_ORG_DATA_ERROR);
 | 
											
												
													
														|  | 
 |  | +        List<SysOrg> orgs = orgList.stream().filter(r->orgIds.contains(r.getId())).collect(Collectors.toList());
 | 
											
												
													
														|  | 
 |  | +        //通过parentId获取orgList中orgs的直属上级
 | 
											
												
													
														|  | 
 |  | +        List<SysOrg> parentOrgList =  orgList.stream().filter(r->orgs.stream().anyMatch(s->s.getParentId().equals(r.getId()))).collect(Collectors.toList());
 | 
											
												
													
														|  | 
 |  | +        List<Long> orgParentIds = parentOrgList.stream().map(r->r.getId()).collect(Collectors.toList());
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +        //获取计划
 | 
											
												
													
														|  | 
 |  | +        List<CoreMonitoringRetrievalTask> taskList = new ArrayList<>();
 | 
											
												
													
														|  |          QueryWrapper<TMonitoringRetrievalPlan> queryWrapper = new QueryWrapper<>();
 |  |          QueryWrapper<TMonitoringRetrievalPlan> queryWrapper = new QueryWrapper<>();
 | 
											
												
													
														|  | -        queryWrapper.lambda().in(TMonitoringRetrievalPlan::getId, planId);
 |  | 
 | 
											
												
													
														|  | 
 |  | +        queryWrapper.lambda().in(TMonitoringRetrievalPlan::getOrgId, orgParentIds);
 | 
											
												
													
														|  |          queryWrapper.lambda().eq(TMonitoringRetrievalPlan::getPlanStatus, 1);
 |  |          queryWrapper.lambda().eq(TMonitoringRetrievalPlan::getPlanStatus, 1);
 | 
											
												
													
														|  |          queryWrapper.lambda().eq(TMonitoringRetrievalPlan::getIsDeleted, 0);
 |  |          queryWrapper.lambda().eq(TMonitoringRetrievalPlan::getIsDeleted, 0);
 | 
											
												
													
														|  | -        queryWrapper.lambda().eq(TMonitoringRetrievalPlan::getCreateType, 1);
 |  | 
 | 
											
												
													
														|  | 
 |  | +        /*queryWrapper.lambda().eq(TMonitoringRetrievalPlan::getCreateType, 1);*/
 | 
											
												
													
														|  |          List<TMonitoringRetrievalPlan> plans = itMonitoringRetrievalPlanService.list(queryWrapper);
 |  |          List<TMonitoringRetrievalPlan> plans = itMonitoringRetrievalPlanService.list(queryWrapper);
 | 
											
												
													
														|  |          List<TMonitoringRetrievalPlan> planList = new ArrayList<>();
 |  |          List<TMonitoringRetrievalPlan> planList = new ArrayList<>();
 | 
											
												
													
														|  | -        //获取所有机构
 |  | 
 | 
											
												
													
														|  | -        List<SysOrg> orgList = RemoteCallHandlerExecutor.executeRemoteCall(() -> orgService.findAllOrg(SecurityConstants.INNER), ErrorMsgConstants.QUERY_ORG_DATA_ERROR);
 |  | 
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  |          for(TMonitoringRetrievalPlan p:plans){
 |  |          for(TMonitoringRetrievalPlan p:plans){
 | 
											
												
													
														|  | -            List<KeyValue> keyValuesa = keyValues.stream().filter(r->r.getValue().toString().equals(p.getId().toString())).collect(Collectors.toList());
 |  | 
 | 
											
												
													
														|  | -            List<SysOrg> orgs = orgList.stream().filter(r->keyValuesa.stream().anyMatch(s->s.getKey().toString().equals(r.getId().toString()))).collect(Collectors.toList());
 |  | 
 | 
											
												
													
														|  |              for (SysOrg s : orgs) {
 |  |              for (SysOrg s : orgs) {
 | 
											
												
													
														|  | 
 |  | +                if(CollectionUtil.isNotEmpty(keyValues)){
 | 
											
												
													
														|  | 
 |  | +                    //机构和计划没有同时在排除的范围内的计划不生成任务
 | 
											
												
													
														|  | 
 |  | +                    if(keyValues.stream().filter(r->r.getValue().equals(p.getId())&&r.getKey().equals(s.getId())).count()>0){
 | 
											
												
													
														|  | 
 |  | +                        continue;
 | 
											
												
													
														|  | 
 |  | +                    }
 | 
											
												
													
														|  | 
 |  | +                }
 | 
											
												
													
														|  | 
 |  | +                //计划的机构id不是当前机构的直属父机构,不生成任务
 | 
											
												
													
														|  | 
 |  | +                if(!p.getOrgId().equals(s.getParentId())){
 | 
											
												
													
														|  | 
 |  | +                    continue;
 | 
											
												
													
														|  | 
 |  | +                }
 | 
											
												
													
														|  |                  TMonitoringRetrievalPlan plan = new TMonitoringRetrievalPlan();
 |  |                  TMonitoringRetrievalPlan plan = new TMonitoringRetrievalPlan();
 | 
											
												
													
														|  |                  BeanUtils.copyProperties(p, plan);
 |  |                  BeanUtils.copyProperties(p, plan);
 | 
											
												
													
														|  |                  plan.setPlanName(p.getPlanName());
 |  |                  plan.setPlanName(p.getPlanName());
 | 
											
										
											
												
													
														|  | @@ -736,22 +729,34 @@ public class CoreMonitoringRetrievalTaskServiceImpl extends ServiceImpl<CoreMoni
 | 
											
												
													
														|  |              }
 |  |              }
 | 
											
												
													
														|  |          }
 |  |          }
 | 
											
												
													
														|  |          for (TMonitoringRetrievalPlan plan : planList) {
 |  |          for (TMonitoringRetrievalPlan plan : planList) {
 | 
											
												
													
														|  | -            DateRange dateRange =  DateUtils.getStartAndEnd(taskTime, Integer.valueOf(plan.getPlanCycle()+1));
 |  | 
 | 
											
												
													
														|  | 
 |  | +            //任务的开始时间按周期计算用下面的方式
 | 
											
												
													
														|  | 
 |  | +            DateRange dateRange =  DateUtils.getStartAndEnd(taskTime, Integer.valueOf(plan.getPlanCycle()));
 | 
											
												
													
														|  |              Instant instant = dateRange.getStartTime().toInstant();
 |  |              Instant instant = dateRange.getStartTime().toInstant();
 | 
											
												
													
														|  | -
 |  | 
 | 
											
												
													
														|  |              // 创建 ZonedDateTime 对象,并指定时区
 |  |              // 创建 ZonedDateTime 对象,并指定时区
 | 
											
												
													
														|  |              ZonedDateTime zdt = instant.atZone(ZoneId.systemDefault());
 |  |              ZonedDateTime zdt = instant.atZone(ZoneId.systemDefault());
 | 
											
												
													
														|  |              // 转换为 LocalDate 对象
 |  |              // 转换为 LocalDate 对象
 | 
											
												
													
														|  |              LocalDate localDate = zdt.toLocalDate();
 |  |              LocalDate localDate = zdt.toLocalDate();
 | 
											
												
													
														|  | -            //获取计划关联的机构
 |  | 
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +            //任务整体按周期日期计算,最终结果排除所修改的日期前面的数据
 | 
											
												
													
														|  |              List<SysOrg> listByType = orgList.stream().filter(r -> r.getId().equals(plan.getOrgId()) && r.getDeleted() == 0 && r.getIsLock().equals(0)).collect(Collectors.toList());
 |  |              List<SysOrg> listByType = orgList.stream().filter(r -> r.getId().equals(plan.getOrgId()) && r.getDeleted() == 0 && r.getIsLock().equals(0)).collect(Collectors.toList());
 | 
											
												
													
														|  |              if (CollectionUtil.isNotEmpty(listByType)) {
 |  |              if (CollectionUtil.isNotEmpty(listByType)) {
 | 
											
												
													
														|  |                  List<CoreMonitoringRetrievalTask> list = this.buildCoreMonitoringRetrievalTask(plan, localDate, listByType.get(0));
 |  |                  List<CoreMonitoringRetrievalTask> list = this.buildCoreMonitoringRetrievalTask(plan, localDate, listByType.get(0));
 | 
											
												
													
														|  |                  if (CollectionUtil.isNotEmpty(list)) {
 |  |                  if (CollectionUtil.isNotEmpty(list)) {
 | 
											
												
													
														|  | -                    taskList.addAll(list);
 |  | 
 | 
											
												
													
														|  | 
 |  | +                    if(!plan.getPlanCycle().equals(RetrievalTaskCycle.DAYCYCLE.getCode().toString())){
 | 
											
												
													
														|  | 
 |  | +                        List<CoreMonitoringRetrievalTask> lista = list.stream().filter(r -> r.getPlanEndTime().after(taskTime)).collect(Collectors.toList());
 | 
											
												
													
														|  | 
 |  | +                        if(CollectionUtil.isNotEmpty(lista)){
 | 
											
												
													
														|  | 
 |  | +                            taskList.addAll(lista);
 | 
											
												
													
														|  | 
 |  | +                        }
 | 
											
												
													
														|  | 
 |  | +                    }else{
 | 
											
												
													
														|  | 
 |  | +                        List<CoreMonitoringRetrievalTask> lista = list.stream().filter(r -> r.getPlanEndTime().after(new Date())).collect(Collectors.toList());
 | 
											
												
													
														|  | 
 |  | +                        if(CollectionUtil.isNotEmpty(lista)){
 | 
											
												
													
														|  | 
 |  | +                            taskList.addAll(lista);
 | 
											
												
													
														|  | 
 |  | +                        }
 | 
											
												
													
														|  | 
 |  | +                    }
 | 
											
												
													
														|  |                  }
 |  |                  }
 | 
											
												
													
														|  |              }
 |  |              }
 | 
											
												
													
														|  |          }
 |  |          }
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  |          this.saveBatch(taskList);
 |  |          this.saveBatch(taskList);
 | 
											
												
													
														|  |      }
 |  |      }
 | 
											
												
													
														|  |  
 |  |  
 | 
											
										
											
												
													
														|  | @@ -762,16 +767,18 @@ public class CoreMonitoringRetrievalTaskServiceImpl extends ServiceImpl<CoreMoni
 | 
											
												
													
														|  |          Date datetime = ymdDate;
 |  |          Date datetime = ymdDate;
 | 
											
												
													
														|  |          if(!cycle.equals(RetrievalTaskCycle.DAYCYCLE.getCode())){
 |  |          if(!cycle.equals(RetrievalTaskCycle.DAYCYCLE.getCode())){
 | 
											
												
													
														|  |               //根据ymdDate获取周的第一天的日期
 |  |               //根据ymdDate获取周的第一天的日期
 | 
											
												
													
														|  | -            DateRange dateRange =  DateUtils.getStartAndEnd(ymdDate,cycle+1);
 |  | 
 | 
											
												
													
														|  | 
 |  | +            DateRange dateRange =  DateUtils.getStartAndEnd(ymdDate,cycle);
 | 
											
												
													
														|  |              datetime = dateRange.getStartTime();
 |  |              datetime = dateRange.getStartTime();
 | 
											
												
													
														|  |          }
 |  |          }
 | 
											
												
													
														|  | -        queryWrapper.lambda().eq(CoreMonitoringRetrievalTask::getYmdDate,datetime);
 |  | 
 | 
											
												
													
														|  | 
 |  | +        LocalDate taskTime=DateUtils.toLocalDate(datetime);
 | 
											
												
													
														|  | 
 |  | +/*        queryWrapper.lambda().eq(CoreMonitoringRetrievalTask::getYmdDate,taskTime);
 | 
											
												
													
														|  |          //公共条件
 |  |          //公共条件
 | 
											
												
													
														|  |          queryWrapper.lambda().in(CoreMonitoringRetrievalTask::getOrgId,orgIds);
 |  |          queryWrapper.lambda().in(CoreMonitoringRetrievalTask::getOrgId,orgIds);
 | 
											
												
													
														|  |          queryWrapper.lambda().eq(CoreMonitoringRetrievalTask::getCycle,cycle);
 |  |          queryWrapper.lambda().eq(CoreMonitoringRetrievalTask::getCycle,cycle);
 | 
											
												
													
														|  | -        List<CoreMonitoringRetrievalTask> taskList = this.list(queryWrapper);
 |  | 
 | 
											
												
													
														|  | 
 |  | +        List<CoreMonitoringRetrievalTask> taskList = this.list(queryWrapper);*/
 | 
											
												
													
														|  | 
 |  | +        List<CoreMonitoringRetrievalTask> taskList = baseMapper.selectTaskList(taskTime,orgIds,cycle);
 | 
											
												
													
														|  |          List<CoreMonitoringRetrievalTask> deleteTaskList = new ArrayList<>();
 |  |          List<CoreMonitoringRetrievalTask> deleteTaskList = new ArrayList<>();
 | 
											
												
													
														|  | -        List<KeyValue> keyValues = new ArrayList<>();
 |  | 
 | 
											
												
													
														|  | 
 |  | +        List<KeyValueVo> keyValues = new ArrayList<>();
 | 
											
												
													
														|  |          if(CollectionUtil.isNotEmpty(taskList)){
 |  |          if(CollectionUtil.isNotEmpty(taskList)){
 | 
											
												
													
														|  |              //将数据按机构分组
 |  |              //将数据按机构分组
 | 
											
												
													
														|  |              Map<Long,List<CoreMonitoringRetrievalTask>> taskMap = taskList.stream().collect(Collectors.groupingBy(CoreMonitoringRetrievalTask::getOrgId));
 |  |              Map<Long,List<CoreMonitoringRetrievalTask>> taskMap = taskList.stream().collect(Collectors.groupingBy(CoreMonitoringRetrievalTask::getOrgId));
 | 
											
										
											
												
													
														|  | @@ -785,8 +792,9 @@ public class CoreMonitoringRetrievalTaskServiceImpl extends ServiceImpl<CoreMoni
 | 
											
												
													
														|  |                      //没有完成的任务,改批次的任务删除
 |  |                      //没有完成的任务,改批次的任务删除
 | 
											
												
													
														|  |                      if(num==0){
 |  |                      if(num==0){
 | 
											
												
													
														|  |                          deleteTaskList.addAll(taskList2);
 |  |                          deleteTaskList.addAll(taskList2);
 | 
											
												
													
														|  | 
 |  | +                    }else{
 | 
											
												
													
														|  |                          Long planId = taskList2.get(0).getPlanId();
 |  |                          Long planId = taskList2.get(0).getPlanId();
 | 
											
												
													
														|  | -                        KeyValue keyValue = new KeyValue();
 |  | 
 | 
											
												
													
														|  | 
 |  | +                        KeyValueVo keyValue = new KeyValueVo();
 | 
											
												
													
														|  |                          keyValue.setKey(key);
 |  |                          keyValue.setKey(key);
 | 
											
												
													
														|  |                          keyValue.setValue(planId);
 |  |                          keyValue.setValue(planId);
 | 
											
												
													
														|  |                          keyValues.add(keyValue);
 |  |                          keyValues.add(keyValue);
 |