|  | @@ -85,6 +85,7 @@ public class CoreSafecheckPlanServiceImpl extends ServiceImpl<CoreSafecheckPlanM
 | 
	
		
			
				|  |  |      private RemoteFileService fileService;
 | 
	
		
			
				|  |  |      @Autowired
 | 
	
		
			
				|  |  |      private CoreSafecheckPlanToCheckOrgTypeMapper coreSafecheckPlanToCheckOrgTypeMapper;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |      @Override
 | 
	
		
			
				|  |  |      public TableDataInfo<CoreSafecheckPlan> selectPage(CoreSafecheckPlan coreSafecheckPlan) {
 | 
	
		
			
				|  |  |          //未删除
 | 
	
	
		
			
				|  | @@ -192,12 +193,12 @@ public class CoreSafecheckPlanServiceImpl extends ServiceImpl<CoreSafecheckPlanM
 | 
	
		
			
				|  |  |                  }
 | 
	
		
			
				|  |  |                  //再处理受检机构类型
 | 
	
		
			
				|  |  |                  List<CoreSafecheckPlanToCheckOrgType> checkOrgTypes = coreSafecheckPlanToCheckOrgTypeMapper.selectList(new LambdaQueryWrapper<CoreSafecheckPlanToCheckOrgType>().eq(CoreSafecheckPlanToCheckOrgType::getPlanId, dto.getId()));
 | 
	
		
			
				|  |  | -                if(checkOrgTypes!=null){
 | 
	
		
			
				|  |  | +                if (checkOrgTypes != null) {
 | 
	
		
			
				|  |  |                      //删除当前计划的受检机构类型
 | 
	
		
			
				|  |  |                      coreSafecheckPlanToCheckOrgTypeMapper.delete(new LambdaQueryWrapper<CoreSafecheckPlanToCheckOrgType>().eq(CoreSafecheckPlanToCheckOrgType::getPlanId, coreSafecheckPlan.getId()));
 | 
	
		
			
				|  |  |                      for (CoreSafecheckPlanToCheckOrgType type :
 | 
	
		
			
				|  |  |                              checkOrgTypes) {
 | 
	
		
			
				|  |  | -                        coreSafecheckPlanToCheckOrgTypeMapper.insert(new CoreSafecheckPlanToCheckOrgType(coreSafecheckPlan.getId(),type.getTypeId()));
 | 
	
		
			
				|  |  | +                        coreSafecheckPlanToCheckOrgTypeMapper.insert(new CoreSafecheckPlanToCheckOrgType(coreSafecheckPlan.getId(), type.getTypeId()));
 | 
	
		
			
				|  |  |                      }
 | 
	
		
			
				|  |  |                  }
 | 
	
		
			
				|  |  |                  //再处理检查要点关系
 | 
	
	
		
			
				|  | @@ -230,6 +231,11 @@ public class CoreSafecheckPlanServiceImpl extends ServiceImpl<CoreSafecheckPlanM
 | 
	
		
			
				|  |  |          CoreSafecheckPlan plan = baseMapper.selectById(id);
 | 
	
		
			
				|  |  |          //修改所有子计划
 | 
	
		
			
				|  |  |          List<CoreSafecheckPlan> appPlans = baseMapper.selectList(new LambdaQueryWrapper<CoreSafecheckPlan>().eq(CoreSafecheckPlan::getParentId, id));
 | 
	
		
			
				|  |  | +        List<Long> planIds = appPlans.stream().map(CoreSafecheckPlan::getId).collect(Collectors.toList());
 | 
	
		
			
				|  |  | +        planIds.add(id);
 | 
	
		
			
				|  |  | +        //拿到父计划和所属子计划是否存在已完成
 | 
	
		
			
				|  |  | +        Long hasEdit = coreSafetyTaskMapper.selectCount(new LambdaQueryWrapper<CoreSafetyTask>().in(CoreSafetyTask::getPlanId, planIds).in(CoreSafetyTask::getStatus, 3, 4));
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |          for (CoreSafecheckPlan ap :
 | 
	
		
			
				|  |  |                  appPlans) {
 | 
	
		
			
				|  |  |  //修改计划状态为停用
 | 
	
	
		
			
				|  | @@ -243,12 +249,14 @@ public class CoreSafecheckPlanServiceImpl extends ServiceImpl<CoreSafecheckPlanM
 | 
	
		
			
				|  |  |                  code = CycleCommonEnum.getEnum(Math.toIntExact(plan.getPlanCycle()) + 2);
 | 
	
		
			
				|  |  |                  dateRange = DateUtils.getStartAndEnd(new Date(), code);
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  | -            //撤回需要删除本周期所有任务
 | 
	
		
			
				|  |  | +            //如果不存在已完成撤回需要删除本周期所有任务
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |              if (plan.getPlanCycle() == 6L) {
 | 
	
		
			
				|  |  |                  coreSafetyTaskMapper.delete(new LambdaQueryWrapper<CoreSafetyTask>().eq(CoreSafetyTask::getPlanId, ap.getId()).between(CoreSafetyTask::getYmdDate, dateRange.getStartTime(), dateRange.getEndTime()));
 | 
	
		
			
				|  |  |              } else {
 | 
	
		
			
				|  |  | -                coreSafetyTaskMapper.delete(new LambdaQueryWrapper<CoreSafetyTask>().eq(CoreSafetyTask::getPlanId, ap.getId()).in(CoreSafetyTask::getStatus, 1, 2).between(CoreSafetyTask::getYmdDate, dateRange.getStartTime(), dateRange.getEndTime()));
 | 
	
		
			
				|  |  | +                if (hasEdit == 0) {
 | 
	
		
			
				|  |  | +                    coreSafetyTaskMapper.delete(new LambdaQueryWrapper<CoreSafetyTask>().eq(CoreSafetyTask::getPlanId, ap.getId()).in(CoreSafetyTask::getStatus, 1, 2).between(CoreSafetyTask::getYmdDate, dateRange.getStartTime(), dateRange.getEndTime()));
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |          //设置下发状态为未下发
 | 
	
	
		
			
				|  | @@ -266,8 +274,9 @@ public class CoreSafecheckPlanServiceImpl extends ServiceImpl<CoreSafecheckPlanM
 | 
	
		
			
				|  |  |          if (plan.getPlanCycle() == 6L) {
 | 
	
		
			
				|  |  |              coreSafetyTaskMapper.delete(new LambdaQueryWrapper<CoreSafetyTask>().eq(CoreSafetyTask::getPlanId, plan.getId()).between(CoreSafetyTask::getYmdDate, dateRange.getStartTime(), dateRange.getEndTime()));
 | 
	
		
			
				|  |  |          } else {
 | 
	
		
			
				|  |  | -            coreSafetyTaskMapper.delete(new LambdaQueryWrapper<CoreSafetyTask>().eq(CoreSafetyTask::getPlanId, plan.getId()).in(CoreSafetyTask::getStatus, 1, 2).between(CoreSafetyTask::getYmdDate, dateRange.getStartTime(), dateRange.getEndTime()));
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | +            if (hasEdit == 0) {
 | 
	
		
			
				|  |  | +                coreSafetyTaskMapper.delete(new LambdaQueryWrapper<CoreSafetyTask>().eq(CoreSafetyTask::getPlanId, plan.getId()).in(CoreSafetyTask::getStatus, 1, 2).between(CoreSafetyTask::getYmdDate, dateRange.getStartTime(), dateRange.getEndTime()));
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -413,12 +422,12 @@ public class CoreSafecheckPlanServiceImpl extends ServiceImpl<CoreSafecheckPlanM
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |          //再处理受检机构类型
 | 
	
		
			
				|  |  | -        if(coreSafecheckPlan.getCheckOrgTypes()!=null){
 | 
	
		
			
				|  |  | +        if (coreSafecheckPlan.getCheckOrgTypes() != null) {
 | 
	
		
			
				|  |  |              //删除当前计划的受检机构类型
 | 
	
		
			
				|  |  |              coreSafecheckPlanToCheckOrgTypeMapper.delete(new LambdaQueryWrapper<CoreSafecheckPlanToCheckOrgType>().eq(CoreSafecheckPlanToCheckOrgType::getPlanId, coreSafecheckPlan.getId()));
 | 
	
		
			
				|  |  |              for (Integer type :
 | 
	
		
			
				|  |  |                      coreSafecheckPlan.getCheckOrgTypes()) {
 | 
	
		
			
				|  |  | -                coreSafecheckPlanToCheckOrgTypeMapper.insert(new CoreSafecheckPlanToCheckOrgType(coreSafecheckPlan.getId(),type));
 | 
	
		
			
				|  |  | +                coreSafecheckPlanToCheckOrgTypeMapper.insert(new CoreSafecheckPlanToCheckOrgType(coreSafecheckPlan.getId(), type));
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -428,10 +437,15 @@ public class CoreSafecheckPlanServiceImpl extends ServiceImpl<CoreSafecheckPlanM
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      @Async
 | 
	
		
			
				|  |  |      @Override
 | 
	
		
			
				|  |  | +    @Transactional(rollbackFor = RuntimeException.class)
 | 
	
		
			
				|  |  |      public void childrenPlan(Long id) {
 | 
	
		
			
				|  |  |          //处理子计划
 | 
	
		
			
				|  |  |          //拿到所有子计划
 | 
	
		
			
				|  |  |          List<CoreSafecheckPlan> children = baseMapper.selectList(new LambdaQueryWrapper<CoreSafecheckPlan>().eq(CoreSafecheckPlan::getParentId, id));
 | 
	
		
			
				|  |  | +        List<Long> planIds = children.stream().map(CoreSafecheckPlan::getId).collect(Collectors.toList());
 | 
	
		
			
				|  |  | +        planIds.add(id);
 | 
	
		
			
				|  |  | +        Long hasEdit = coreSafetyTaskMapper.selectCount(new LambdaQueryWrapper<CoreSafetyTask>().in(CoreSafetyTask::getPlanId, planIds).in(CoreSafetyTask::getStatus, 3, 4));
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |          CoreSafecheckPlan coreSafecheckPlan = baseMapper.selectById(id);
 | 
	
		
			
				|  |  |          for (CoreSafecheckPlan p :
 | 
	
		
			
				|  |  |                  children) {
 | 
	
	
		
			
				|  | @@ -485,12 +499,12 @@ public class CoreSafecheckPlanServiceImpl extends ServiceImpl<CoreSafecheckPlanM
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  |              //再处理受检机构类型
 | 
	
		
			
				|  |  |              List<CoreSafecheckPlanToCheckOrgType> checkOrgTypes = coreSafecheckPlanToCheckOrgTypeMapper.selectList(new LambdaQueryWrapper<CoreSafecheckPlanToCheckOrgType>().eq(CoreSafecheckPlanToCheckOrgType::getPlanId, coreSafecheckPlan.getId()));
 | 
	
		
			
				|  |  | -            if(checkOrgTypes!=null){
 | 
	
		
			
				|  |  | +            if (checkOrgTypes != null) {
 | 
	
		
			
				|  |  |                  //删除当前计划的受检机构类型
 | 
	
		
			
				|  |  |                  coreSafecheckPlanToCheckOrgTypeMapper.delete(new LambdaQueryWrapper<CoreSafecheckPlanToCheckOrgType>().eq(CoreSafecheckPlanToCheckOrgType::getPlanId, p.getId()));
 | 
	
		
			
				|  |  |                  for (CoreSafecheckPlanToCheckOrgType type :
 | 
	
		
			
				|  |  |                          checkOrgTypes) {
 | 
	
		
			
				|  |  | -                    coreSafecheckPlanToCheckOrgTypeMapper.insert(new CoreSafecheckPlanToCheckOrgType(p.getId(),type.getTypeId()));
 | 
	
		
			
				|  |  | +                    coreSafecheckPlanToCheckOrgTypeMapper.insert(new CoreSafecheckPlanToCheckOrgType(p.getId(), type.getTypeId()));
 | 
	
		
			
				|  |  |                  }
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  |              //再处理子计划检查要点关系
 | 
	
	
		
			
				|  | @@ -504,25 +518,27 @@ public class CoreSafecheckPlanServiceImpl extends ServiceImpl<CoreSafecheckPlanM
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |                  }
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |              //如果计划是编辑全部,代表不存在已完成或者逾期的任务,需要删除重新生成
 | 
	
		
			
				|  |  | -            if (coreSafecheckPlan.getHasEdit() == null && coreSafecheckPlan.isBuildTaskNow() && coreSafecheckPlan.getPlanStatus() == 1) {
 | 
	
		
			
				|  |  | +            if (hasEdit == 0 && p.getPlanStatus() == 1) {
 | 
	
		
			
				|  |  |                  coreSafetyTaskMapper.delete(new LambdaQueryWrapper<CoreSafetyTask>().eq(CoreSafetyTask::getPlanId, p.getId()).in(CoreSafetyTask::getStatus, 1, 2));
 | 
	
		
			
				|  |  |              } else {
 | 
	
		
			
				|  |  |                  //否则代表编辑名称,需要同步未进行的任务名称
 | 
	
		
			
				|  |  | -                CoreSafetyTask temp = new CoreSafetyTask();
 | 
	
		
			
				|  |  | -                temp.setTitle(coreSafecheckPlan.getPlanName());
 | 
	
		
			
				|  |  | -                coreSafetyTaskMapper.update(temp, new LambdaQueryWrapper<CoreSafetyTask>().eq(CoreSafetyTask::getPlanId, p.getId()).in(CoreSafetyTask::getStatus, 1, 2));
 | 
	
		
			
				|  |  | +//                CoreSafetyTask temp = new CoreSafetyTask();
 | 
	
		
			
				|  |  | +//                temp.setTitle(coreSafecheckPlan.getPlanName());
 | 
	
		
			
				|  |  | +//                coreSafetyTaskMapper.update(temp, new LambdaQueryWrapper<CoreSafetyTask>().eq(CoreSafetyTask::getPlanId, p.getId()).in(CoreSafetyTask::getStatus, 1, 2));
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |          //如果计划是编辑全部,代表不存在已完成或者逾期的任务,需要删除重新生成
 | 
	
		
			
				|  |  | -        if (coreSafecheckPlan.getHasEdit() == null && coreSafecheckPlan.isBuildTaskNow() && coreSafecheckPlan.getPlanStatus() == 1) {
 | 
	
		
			
				|  |  | +        if (hasEdit == 0 && coreSafecheckPlan.getPlanStatus() == 1) {
 | 
	
		
			
				|  |  |              coreSafetyTaskMapper.delete(new LambdaQueryWrapper<CoreSafetyTask>().eq(CoreSafetyTask::getPlanId, coreSafecheckPlan.getId()).in(CoreSafetyTask::getStatus, 1, 2));
 | 
	
		
			
				|  |  |          } else {
 | 
	
		
			
				|  |  |              //否则代表编辑名称,需要同步未进行的任务名称
 | 
	
		
			
				|  |  | -            CoreSafetyTask temp = new CoreSafetyTask();
 | 
	
		
			
				|  |  | -            temp.setTitle(coreSafecheckPlan.getPlanName());
 | 
	
		
			
				|  |  | -            coreSafetyTaskMapper.update(temp, new LambdaQueryWrapper<CoreSafetyTask>().eq(CoreSafetyTask::getPlanId, coreSafecheckPlan.getId()).in(CoreSafetyTask::getStatus, 1, 2));
 | 
	
		
			
				|  |  | +//            CoreSafetyTask temp = new CoreSafetyTask();
 | 
	
		
			
				|  |  | +//            temp.setTitle(coreSafecheckPlan.getPlanName());
 | 
	
		
			
				|  |  | +//            coreSafetyTaskMapper.update(temp, new LambdaQueryWrapper<CoreSafetyTask>().eq(CoreSafetyTask::getPlanId, coreSafecheckPlan.getId()).in(CoreSafetyTask::getStatus, 1, 2));
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |      }
 | 
	
	
		
			
				|  | @@ -625,7 +641,7 @@ public class CoreSafecheckPlanServiceImpl extends ServiceImpl<CoreSafecheckPlanM
 | 
	
		
			
				|  |  |          //registerBookPdf.setFileName(StringUtils.substringAfterLast(url, "\\"));
 | 
	
		
			
				|  |  |          registerBookPdf.setFileName(StringUtils.substringAfterLast(url, "/"));
 | 
	
		
			
				|  |  |          registerBookPdf.setOrgName(registerBookVo.getOrgName());
 | 
	
		
			
				|  |  | -        if(StringUtils.isEmpty(url)||StringUtils.isEmpty(registerBookPdf.getFileName())){
 | 
	
		
			
				|  |  | +        if (StringUtils.isEmpty(url) || StringUtils.isEmpty(registerBookPdf.getFileName())) {
 | 
	
		
			
				|  |  |              throw new SystemException(ErrorMsgConstants.GENERATE_PDF_ERROR);
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |          registerBookPdfService.save(registerBookPdf);
 | 
	
	
		
			
				|  | @@ -659,7 +675,7 @@ public class CoreSafecheckPlanServiceImpl extends ServiceImpl<CoreSafecheckPlanM
 | 
	
		
			
				|  |  |      private String buildSafeCheckPdfData(SafeCheckTaskRegisterBookVo data) {
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |          String fileOrgName = registerBookPdfService.getFileOrgName(data.getOrgId());
 | 
	
		
			
				|  |  | -        String fileName = fileOrgName + "_" + RegisterBookType.SAFE_CHECK_REPORT.getText()+ "_" + DateUtil.format(new Date(), "yyyyMMddHHmmss") + ".pdf";
 | 
	
		
			
				|  |  | +        String fileName = fileOrgName + "_" + RegisterBookType.SAFE_CHECK_REPORT.getText() + "_" + DateUtil.format(new Date(), "yyyyMMddHHmmss") + ".pdf";
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |          data.setDest(fileName);
 | 
	
		
			
				|  |  |          //新方式生成pdf
 |