|  | @@ -293,8 +293,8 @@ public class CoreEduTrainingTaskServiceImpl extends ServiceImpl<CoreEduTrainingT
 | 
	
		
			
				|  |  |              start = dateRange.getStartTime();
 | 
	
		
			
				|  |  |              end = dateRange.getEndTime();
 | 
	
		
			
				|  |  |          } else {
 | 
	
		
			
				|  |  | -            start = DateUtil.beginOfDay(start).setField(DateField.MILLISECOND,0);
 | 
	
		
			
				|  |  | -            end = DateUtil.endOfDay(end).setField(DateField.MILLISECOND,0);
 | 
	
		
			
				|  |  | +            start = DateUtil.beginOfDay(start).setField(DateField.MILLISECOND, 0);
 | 
	
		
			
				|  |  | +            end = DateUtil.endOfDay(end).setField(DateField.MILLISECOND, 0);
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |          List<CoreEduTrainingPlanToExecOrg> planExecOrgList = plan.getPlanExecOrgList();
 | 
	
		
			
				|  |  |          List<SysOrg> orgList;
 | 
	
	
		
			
				|  | @@ -359,46 +359,63 @@ public class CoreEduTrainingTaskServiceImpl extends ServiceImpl<CoreEduTrainingT
 | 
	
		
			
				|  |  |      @Override
 | 
	
		
			
				|  |  |      public List<CoreEduTrainingTaskReportVo> selectCoreEduTrainingTaskReport(CoreEduTrainingTaskReportDto request) {
 | 
	
		
			
				|  |  |          CoreEduTrainingPlan plan = coreEduTrainingPlanMapper.selectById(request.getPlanId());
 | 
	
		
			
				|  |  | -        if (ObjectUtil.isNull(plan)) {
 | 
	
		
			
				|  |  | +        if (plan == null) {
 | 
	
		
			
				|  |  |              throw new SystemException("未获取到该计划信息");
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |          List<Long> planIdList = new ArrayList<>();
 | 
	
		
			
				|  |  |          Long planId = request.getPlanId();
 | 
	
		
			
				|  |  |          if (ObjectUtil.equal(1, plan.getStandard()) && ObjectUtil.equal(1, plan.getIssue())) {
 | 
	
		
			
				|  |  |              planIdList = coreEduTrainingPlanMapper.selectIdByParentId(plan.getId());
 | 
	
		
			
				|  |  |              planId = null;
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |          request.setStartDate(DateUtil.beginOfMonth(request.getDate()));
 | 
	
		
			
				|  |  |          request.setEndDate(DateUtil.endOfMonth(request.getDate()));
 | 
	
		
			
				|  |  | -        Long orgId = request.getOrgId();
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -        SysOrg sysOrg = RemoteCallHandlerExecutor.executeRemoteCall(() -> orgService.selectOrgById(request.getOrgId(), SecurityConstants.INNER), ErrorMsgConstants.QUERY_ORG_DATA_ERROR);
 | 
	
		
			
				|  |  | +        Long orgId = request.getOrgId();
 | 
	
		
			
				|  |  | +        SysOrg sysOrg = RemoteCallHandlerExecutor.executeRemoteCall(() -> orgService.selectOrgById(orgId, SecurityConstants.INNER), ErrorMsgConstants.QUERY_ORG_DATA_ERROR);
 | 
	
		
			
				|  |  |          request.setOrgPath(sysOrg.getPath());
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |          List<SysOrg> sysOrgList = RemoteCallHandlerExecutor.executeRemoteCall(() -> orgService.selectSysOrgByParentId(orgId, SecurityConstants.INNER), ErrorMsgConstants.QUERY_ORG_DATA_ERROR);
 | 
	
		
			
				|  |  |          if (ObjectUtil.isEmpty(sysOrgList)) {
 | 
	
		
			
				|  |  |              return new ArrayList<>();
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |          List<CoreEduTrainingTaskReportVo> result = new ArrayList<>();
 | 
	
		
			
				|  |  |          List<CoreEduTrainingTaskReportVo> list = coreEduTrainingTaskMapper.selectReport(request, planId, planIdList);
 | 
	
		
			
				|  |  | -        for (SysOrg org : sysOrgList) {
 | 
	
		
			
				|  |  | -            List<CoreEduTrainingTaskReportVo> childrenOrgData = list.stream().filter(vo -> vo.getOrgPath().startsWith(org.getPath())).collect(Collectors.toList());
 | 
	
		
			
				|  |  | -            CoreEduTrainingTaskReportVo reportVo = new CoreEduTrainingTaskReportVo();
 | 
	
		
			
				|  |  | -            reportVo.setOrgId(org.getId());
 | 
	
		
			
				|  |  | -            reportVo.setOrgName(org.getName());
 | 
	
		
			
				|  |  | -            if (ObjectUtil.isEmpty(childrenOrgData)) {
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        if (list.size() == 1 && list.get(0).getOrgId() == null) {
 | 
	
		
			
				|  |  | +            //走到这 说明mapper没有查到数据 构建空数据返回
 | 
	
		
			
				|  |  | +            for (SysOrg org : sysOrgList) {
 | 
	
		
			
				|  |  | +                CoreEduTrainingTaskReportVo reportVo = new CoreEduTrainingTaskReportVo();
 | 
	
		
			
				|  |  | +                reportVo.setOrgId(org.getId());
 | 
	
		
			
				|  |  | +                reportVo.setOrgName(org.getName());
 | 
	
		
			
				|  |  |                  reportVo.setShouldFinish(0);
 | 
	
		
			
				|  |  |                  reportVo.setFinish(0);
 | 
	
		
			
				|  |  |                  reportVo.setFinishRate("0%");
 | 
	
		
			
				|  |  | -            } else {
 | 
	
		
			
				|  |  | -                childrenOrgData.stream().map(CoreEduTrainingTaskReportVo::getShouldFinish).reduce(Integer::sum).ifPresent(reportVo::setShouldFinish);
 | 
	
		
			
				|  |  | -                childrenOrgData.stream().map(CoreEduTrainingTaskReportVo::getFinish).reduce(Integer::sum).ifPresent(reportVo::setFinish);
 | 
	
		
			
				|  |  | -                reportVo.setFinishRate(calculatePercent(reportVo.getFinish(), reportVo.getShouldFinish()));
 | 
	
		
			
				|  |  | +                result.add(reportVo);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +            return result;
 | 
	
		
			
				|  |  | +        } else {
 | 
	
		
			
				|  |  | +            for (SysOrg org : sysOrgList) {
 | 
	
		
			
				|  |  | +                List<CoreEduTrainingTaskReportVo> childrenOrgData = list.stream()
 | 
	
		
			
				|  |  | +                        .filter(vo -> vo.getOrgPath().startsWith(org.getPath()))
 | 
	
		
			
				|  |  | +                        .collect(Collectors.toList());
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                int totalShouldFinish = childrenOrgData.stream().mapToInt(CoreEduTrainingTaskReportVo::getShouldFinish).sum();
 | 
	
		
			
				|  |  | +                int totalFinish = childrenOrgData.stream().mapToInt(CoreEduTrainingTaskReportVo::getFinish).sum();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                CoreEduTrainingTaskReportVo reportVo = new CoreEduTrainingTaskReportVo();
 | 
	
		
			
				|  |  | +                reportVo.setOrgId(org.getId());
 | 
	
		
			
				|  |  | +                reportVo.setOrgName(org.getName());
 | 
	
		
			
				|  |  | +                reportVo.setShouldFinish(totalShouldFinish);
 | 
	
		
			
				|  |  | +                reportVo.setFinish(totalFinish);
 | 
	
		
			
				|  |  | +                reportVo.setFinishRate(calculatePercent(totalFinish, totalShouldFinish));
 | 
	
		
			
				|  |  | +                result.add(reportVo);
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  | -            result.add(reportVo);
 | 
	
		
			
				|  |  | +            return result;
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -        return result;
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      public static String calculatePercent(Integer num1, Integer num2) {
 |