| 
					
				 | 
			
			
				@@ -81,9 +81,7 @@ public class PmWorkContentServiceImpl extends AbstractCrudService<PmWorkContentM 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         Long deptId = SecurityUtils.getLoginUser().getSysUser().getDeptId(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         Integer tenantId = SecurityUtils.getTenantId(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         LambdaQueryWrapper<PmWorkReport> reportQuery = Wrappers.lambdaQuery(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        reportQuery.select(PmWorkReport::getId) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                .eq(PmWorkReport::getTenantId, tenantId) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                .eq(PmWorkReport::getDeptId, deptId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        reportQuery.select(PmWorkReport::getId).eq(PmWorkReport::getTenantId, tenantId).eq(PmWorkReport::getDeptId, deptId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if (StringUtils.isNotBlank(startDate) && StringUtils.isNotBlank(endDate)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             LocalDate start = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             LocalDate end = null; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -115,10 +113,7 @@ public class PmWorkContentServiceImpl extends AbstractCrudService<PmWorkContentM 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         Long userId = SecurityUtils.getUserId(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         Integer tenantId = SecurityUtils.getTenantId(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         LambdaQueryWrapper<PmWorkReport> reportQuery = Wrappers.lambdaQuery(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        reportQuery.select(PmWorkReport::getId) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                .eq(PmWorkReport::getTenantId, tenantId) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                .apply("FIND_IN_SET(" + userId + ", cc_to) > 0") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                .orderByDesc(PmWorkReport::getReportDate); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        reportQuery.select(PmWorkReport::getId).eq(PmWorkReport::getTenantId, tenantId).apply("FIND_IN_SET(" + userId + ", cc_to) > 0").orderByDesc(PmWorkReport::getReportDate); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return pmWorkReportMapper.selectList(reportQuery).stream().map(PmWorkReport::getId).collect(Collectors.toList()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -132,9 +127,7 @@ public class PmWorkContentServiceImpl extends AbstractCrudService<PmWorkContentM 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     private List<Integer> sentOut() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         Long userid = SecurityUtils.getUserId(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         LambdaQueryWrapper<PmWorkReport> reportQuery = Wrappers.lambdaQuery(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        reportQuery.select(PmWorkReport::getId) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                .eq(PmWorkReport::getSubmitterId, userid) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                .orderByDesc(PmWorkReport::getSubmitDate); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        reportQuery.select(PmWorkReport::getId).eq(PmWorkReport::getSubmitterId, userid).orderByDesc(PmWorkReport::getSubmitDate); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return pmWorkReportMapper.selectList(reportQuery).stream().map(PmWorkReport::getId).collect(Collectors.toList()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -149,9 +142,7 @@ public class PmWorkContentServiceImpl extends AbstractCrudService<PmWorkContentM 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         Long userId = SecurityUtils.getUserId(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         Integer tenantId = SecurityUtils.getTenantId(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         LambdaQueryWrapper<PmProject> projectQuery = Wrappers.lambdaQuery(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        projectQuery.select(PmProject::getId) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                .eq(PmProject::getTenantId, tenantId) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                .eq(PmProject::getProjectHead, userId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        projectQuery.select(PmProject::getId).eq(PmProject::getTenantId, tenantId).eq(PmProject::getProjectHead, userId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return pmProjectMapper.selectList(projectQuery).stream().map(PmProject::getId).collect(Collectors.toList()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -165,9 +156,7 @@ public class PmWorkContentServiceImpl extends AbstractCrudService<PmWorkContentM 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     private List<Integer> reportList(String projectName) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         Integer tenantId = SecurityUtils.getTenantId(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         LambdaQueryWrapper<PmWorkContent> projectQuery = Wrappers.lambdaQuery(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        projectQuery.select(PmWorkContent::getReportId) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                .eq(PmWorkContent::getProjectName, projectName) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                .eq(PmWorkContent::getTenantId, tenantId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        projectQuery.select(PmWorkContent::getReportId).eq(PmWorkContent::getProjectName, projectName).eq(PmWorkContent::getTenantId, tenantId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         List<PmWorkContent> projectIds = pmWorkContentMapper.selectList(projectQuery); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         List<Integer> rIds = new ArrayList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         for (PmWorkContent contenReportId : projectIds) { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -202,15 +191,14 @@ public class PmWorkContentServiceImpl extends AbstractCrudService<PmWorkContentM 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             // startDateTime = start.atStartOfDay(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             // endDateTime = end.atTime(23, 59, 59); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             LambdaQueryWrapper<PmWorkReport> reportQuery = Wrappers.lambdaQuery(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            reportQuery.select(PmWorkReport::getId) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    .between(PmWorkReport::getReportDate, start, end); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            reportQuery.select(PmWorkReport::getId).between(PmWorkReport::getReportDate, start, end); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             reportIds = pmWorkReportMapper.selectList(reportQuery).stream().map(PmWorkReport::getId).collect(Collectors.toList()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         List<PmWorkContent> workContentList = new ArrayList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         LambdaQueryWrapper<PmWorkContent> contentLambdaQuery = Wrappers.lambdaQuery(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        contentLambdaQuery.select(PmWorkContent::getProjectId, PmWorkContent::getProjectName); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        contentLambdaQuery.select(PmWorkContent::getProjectId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         switch (projectAscription) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             case 1: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 List<Integer> headProjects = head(); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -242,10 +230,21 @@ public class PmWorkContentServiceImpl extends AbstractCrudService<PmWorkContentM 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if (!reportIds.isEmpty()) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             contentLambdaQuery.in(PmWorkContent::getReportId, reportIds); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        contentLambdaQuery.groupBy(PmWorkContent::getProjectId) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                .groupBy(PmWorkContent::getProjectName); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        contentLambdaQuery.groupBy(PmWorkContent::getProjectId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         workContentList = pmWorkContentMapper.selectList(contentLambdaQuery); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        List<Integer> workContentIds = workContentList.stream().map(PmWorkContent::getProjectId).distinct().collect(Collectors.toList()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (workContentIds.isEmpty()){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            return workContentList; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        LambdaQueryWrapper<PmProject> projectQuery = Wrappers.lambdaQuery(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        projectQuery.select(PmProject::getId, PmProject::getProjectName).in(PmProject::getId, workContentIds); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        Map<Integer, String> projectNameMap = pmProjectMapper.selectList(projectQuery).stream().collect(Collectors.toMap(PmProject::getId, PmProject::getProjectName)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        workContentList.forEach(workContent -> { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            workContent.setProjectName(projectNameMap.get(workContent.getProjectId())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return workContentList; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -277,17 +276,14 @@ public class PmWorkContentServiceImpl extends AbstractCrudService<PmWorkContentM 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         List<Long> userIds = new ArrayList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if (reportId != null && reportId > 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             LambdaQueryWrapper<PmWorkReport> reportQuery = Wrappers.lambdaQuery(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            reportQuery.select(PmWorkReport::getId, PmWorkReport::getCoordinateWork, PmWorkReport::getTomorrowPlan, PmWorkReport::getCcTo, PmWorkReport::getSubmitterId, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            PmWorkReport::getCreateTime, PmWorkReport::getReportDate) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    .eq(PmWorkReport::getId, reportId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            reportQuery.eq(PmWorkReport::getId, reportId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             PmWorkReport report = pmWorkReportMapper.selectOne(reportQuery); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             if (report == null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 throw new BusinessException("该报告已被删除!"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             LambdaQueryWrapper<PmWorkContent> contentQuery = Wrappers.lambdaQuery(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            contentQuery.select(PmWorkContent::getWorkContent, PmWorkContent::getWorkTime, PmWorkContent::getProjectName) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    .eq(PmWorkContent::getReportId, reportId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            contentQuery.select(PmWorkContent::getWorkContent, PmWorkContent::getWorkTime, PmWorkContent::getProjectName).eq(PmWorkContent::getReportId, reportId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             pmWorkContentList = this.list(contentQuery); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             report.setWorkContents(pmWorkContentList); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             reportList.add(report); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -336,16 +332,10 @@ public class PmWorkContentServiceImpl extends AbstractCrudService<PmWorkContentM 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 reportIds.add(a.getReportId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             LambdaQueryWrapper<PmWorkReport> reportQuery = Wrappers.lambdaQuery(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            reportQuery.select(PmWorkReport::getId, PmWorkReport::getCoordinateWork, PmWorkReport::getTomorrowPlan, PmWorkReport::getCcTo, PmWorkReport::getSubmitterId, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            PmWorkReport::getCreateTime, PmWorkReport::getReportDate) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    .in(PmWorkReport::getId, reportIds) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    .orderByDesc(PmWorkReport::getCreateTime); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            reportQuery.select(PmWorkReport::getId, PmWorkReport::getCoordinateWork, PmWorkReport::getTomorrowPlan, PmWorkReport::getCcTo, PmWorkReport::getSubmitterId, PmWorkReport::getCreateTime, PmWorkReport::getReportDate).in(PmWorkReport::getId, reportIds).orderByDesc(PmWorkReport::getCreateTime); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             reportList = pmWorkReportMapper.selectList(reportQuery); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             LambdaQueryWrapper<PmReceive> statusQuery = Wrappers.lambdaQuery(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            statusQuery.select(PmReceive::getReportId, PmReceive::getReadFlag) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    .eq(PmReceive::getReceiverId, SecurityUtils.getUserId()) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    .eq(PmReceive::getTenantId, SecurityUtils.getTenantId()) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    .in(PmReceive::getReportId, reportIds); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            statusQuery.select(PmReceive::getReportId, PmReceive::getReadFlag).eq(PmReceive::getReceiverId, SecurityUtils.getUserId()).eq(PmReceive::getTenantId, SecurityUtils.getTenantId()).in(PmReceive::getReportId, reportIds); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             List<PmReceive> receiveList = pmReceiveMapper.selectList(statusQuery); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             for (PmWorkReport c : reportList) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 List<PmWorkContent> contents = new ArrayList<>(); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -374,11 +364,7 @@ public class PmWorkContentServiceImpl extends AbstractCrudService<PmWorkContentM 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             List<Long> ids = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             if (!d.getCcTo().isEmpty()) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                ids = Optional.ofNullable(d.getCcTo()) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        .map(ccTo -> Arrays.stream(ccTo.split(",")) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                .map(Long::parseLong) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                .collect(Collectors.toList())) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        .orElse(Collections.emptyList()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                ids = Optional.ofNullable(d.getCcTo()).map(ccTo -> Arrays.stream(ccTo.split(",")).map(Long::parseLong).collect(Collectors.toList())).orElse(Collections.emptyList()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             List<SysUser> nickNameList = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             if (CollectionUtils.isNotEmpty(ids)) { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -414,10 +400,7 @@ public class PmWorkContentServiceImpl extends AbstractCrudService<PmWorkContentM 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     @Override 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     public List<SysUser> nickNames(List<Long> userIds) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         LambdaQueryWrapper<SysUser> usersQuery = Wrappers.lambdaQuery(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        usersQuery.select(SysUser::getUserId, SysUser::getNickName, SysUser::getUserName, SysUser::getPhonenumber, SysUser::getAvatar, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        SysUser::getSex, SysUser::getDeptId) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                .eq(SysUser::getTenantId, SecurityUtils.getTenantId()) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                .eq(SysUser::getDelFlag, 0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        usersQuery.select(SysUser::getUserId, SysUser::getNickName, SysUser::getUserName, SysUser::getPhonenumber, SysUser::getAvatar, SysUser::getSex, SysUser::getDeptId).eq(SysUser::getTenantId, SecurityUtils.getTenantId()).eq(SysUser::getDelFlag, 0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if (!userIds.isEmpty()) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             usersQuery.in(SysUser::getUserId, userIds); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -427,9 +410,7 @@ public class PmWorkContentServiceImpl extends AbstractCrudService<PmWorkContentM 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     @Override 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     public List<SysUser> allNickName() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         LambdaQueryWrapper<SysUser> usersQuery = Wrappers.lambdaQuery(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        usersQuery.select(SysUser::getUserId, SysUser::getNickName, SysUser::getUserName) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                .eq(SysUser::getTenantId, SecurityUtils.getTenantId()) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                .eq(SysUser::getDelFlag, 0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        usersQuery.select(SysUser::getUserId, SysUser::getNickName, SysUser::getUserName).eq(SysUser::getTenantId, SecurityUtils.getTenantId()).eq(SysUser::getDelFlag, 0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return sysUserMapper.selectList(usersQuery); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -444,6 +425,7 @@ public class PmWorkContentServiceImpl extends AbstractCrudService<PmWorkContentM 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     public CommonPage<PmWorkReport> reportPage(Integer projectAscription, Integer pageNum, Integer pageSize, Integer reportId, String startDate, String endDate, Integer projectId) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         // LocalDateTime startDateTime = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         // LocalDateTime endDateTime = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        Integer tenantId = SecurityUtils.getTenantId(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         LocalDate start = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         LocalDate end = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         List<Integer> reportIds = new ArrayList<>(); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -459,16 +441,13 @@ public class PmWorkContentServiceImpl extends AbstractCrudService<PmWorkContentM 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             // startDateTime = start.atStartOfDay(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             // endDateTime = end.atTime(23, 59, 59); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             LambdaQueryWrapper<PmWorkReport> reportQuery = Wrappers.lambdaQuery(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            reportQuery.select(PmWorkReport::getId) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    .eq(PmWorkReport::getReportStatus, 1) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    .between(PmWorkReport::getReportDate, start, end); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            reportQuery.select(PmWorkReport::getId).eq(PmWorkReport::getReportStatus, 1).between(PmWorkReport::getReportDate, start, end); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             reportIds = pmWorkReportMapper.selectList(reportQuery).stream().map(PmWorkReport::getId).collect(Collectors.toList()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if (projectId != null && projectId > 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             LambdaQueryWrapper<PmWorkContent> contentLambdaQuery = Wrappers.lambdaQuery(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            contentLambdaQuery.select(PmWorkContent::getReportId) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    .eq(PmWorkContent::getProjectId, projectId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            contentLambdaQuery.select(PmWorkContent::getReportId).eq(PmWorkContent::getProjectId, projectId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             reportIds.addAll(pmWorkContentMapper.selectList(contentLambdaQuery).stream().map(PmWorkContent::getReportId).collect(Collectors.toList())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -483,7 +462,7 @@ public class PmWorkContentServiceImpl extends AbstractCrudService<PmWorkContentM 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         LambdaQueryWrapper<PmWorkContent> contentLambdaQuery = Wrappers.lambdaQuery(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        contentLambdaQuery.select(PmWorkContent::getReportId, PmWorkContent::getWorkContent, PmWorkContent::getWorkTime, PmWorkContent::getProjectName); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // contentLambdaQuery.select(PmWorkContent::getReportId, PmWorkContent::getWorkContent, PmWorkContent::getWorkTime, PmWorkContent::getProjectName); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if (reportId != null && reportId >= 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             contentLambdaQuery.eq(PmWorkContent::getReportId, reportId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             pmWorkContentList = pmWorkContentMapper.selectList(contentLambdaQuery); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -524,22 +503,18 @@ public class PmWorkContentServiceImpl extends AbstractCrudService<PmWorkContentM 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         List<Integer> reportIds2 = pmWorkContentList.stream().distinct().map(PmWorkContent::getReportId).collect(Collectors.toList()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         LambdaQueryWrapper<PmWorkReport> reportQuery = Wrappers.lambdaQuery(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        reportQuery.select(PmWorkReport::getId, PmWorkReport::getCoordinateWork, PmWorkReport::getTomorrowPlan, PmWorkReport::getCcTo, PmWorkReport::getSubmitterId, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        PmWorkReport::getSubmitDate, PmWorkReport::getReportDate, PmWorkReport::getCreateBy) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                .eq(PmWorkReport::getReportStatus, 1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        reportQuery.eq(PmWorkReport::getTenantId, tenantId).eq(PmWorkReport::getReportStatus, 1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if (reportId != null && reportId != 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             reportQuery.eq(PmWorkReport::getId, reportId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            reportQuery.in(PmWorkReport::getId, reportIds2) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    .orderByDesc(PmWorkReport::getSubmitDate); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            reportQuery.in(PmWorkReport::getId, reportIds2).orderByDesc(PmWorkReport::getSubmitDate); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         IPage<PmWorkReport> reportPage = pmWorkReportMapper.selectPage(new Page<>(pageNum, pageSize), reportQuery); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         List<PmWorkReport> reportList = reportPage.getRecords(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         // 查询已读状态 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         LambdaQueryWrapper<PmReceive> statusQuery = Wrappers.lambdaQuery(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        statusQuery.select(PmReceive::getReportId, PmReceive::getReadFlag) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                .eq(PmReceive::getReceiverId, userId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        statusQuery.select(PmReceive::getReportId, PmReceive::getReadFlag).eq(PmReceive::getReceiverId, userId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if (reportId != null && reportId != 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             statusQuery.eq(PmReceive::getReportId, reportId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } else if (!receiveList.isEmpty()) { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -554,9 +529,7 @@ public class PmWorkContentServiceImpl extends AbstractCrudService<PmWorkContentM 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         for (PmWorkReport report : reportList) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            List<PmWorkContent> contents = pmWorkContentList.stream() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    .filter(content -> content.getReportId().equals(report.getId())) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    .collect(Collectors.toList()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            List<PmWorkContent> contents = pmWorkContentList.stream().filter(content -> content.getReportId().equals(report.getId())).collect(Collectors.toList()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             report.setWorkContents(contents); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             userIds.add(report.getSubmitterId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -566,8 +539,7 @@ public class PmWorkContentServiceImpl extends AbstractCrudService<PmWorkContentM 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             // 创建人名字替换 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             if (!userIds.isEmpty()) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 List<SysUser> nickNames = nickNames(userIds); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                Map<Long, String> userNicknameMap = nickNames.stream() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        .collect(Collectors.toMap(SysUser::getUserId, SysUser::getNickName)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                Map<Long, String> userNicknameMap = nickNames.stream().collect(Collectors.toMap(SysUser::getUserId, SysUser::getNickName)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 report.setCreateBy(userNicknameMap.get(report.getSubmitterId())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -681,13 +653,12 @@ public class PmWorkContentServiceImpl extends AbstractCrudService<PmWorkContentM 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      **/ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     private List<PmReceive> receives(List<Integer> reports) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         LambdaQueryWrapper<PmReceive> queryWrapper = Wrappers.lambdaQuery(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        queryWrapper.select(PmReceive::getReportId, PmReceive::getReadFlag, PmReceive::getReceiverId) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                .in(PmReceive::getReportId, reports); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        queryWrapper.select(PmReceive::getReportId, PmReceive::getReadFlag, PmReceive::getReceiverId).in(PmReceive::getReportId, reports); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return pmReceiveMapper.selectList(queryWrapper); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-     * @description: 获取报告列表 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * @description: 获取时间段内报告列表(按报告时间查询) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      * @author: fu 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      * @date: 2024/8/8 19:22 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      * @param: [startDate, endDate] 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -695,13 +666,9 @@ public class PmWorkContentServiceImpl extends AbstractCrudService<PmWorkContentM 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      **/ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     private List<Integer> reports(LocalDate startDate, LocalDate endDate) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         LambdaQueryWrapper<PmWorkReport> reportsQuery = Wrappers.lambdaQuery(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        reportsQuery.select(PmWorkReport::getId) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                .between(PmWorkReport::getReportDate, startDate, endDate) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                .groupBy(PmWorkReport::getId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        reportsQuery.select(PmWorkReport::getId).between(PmWorkReport::getReportDate, startDate, endDate); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         List<PmWorkReport> pmWorkReportList = pmWorkReportMapper.selectList(reportsQuery); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        return pmWorkReportList.stream() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                .map(PmWorkReport::getId) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                .collect(Collectors.toList()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return pmWorkReportList.stream().map(PmWorkReport::getId).collect(Collectors.toList()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     private List<PmProject> projects(Integer projectId) { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -721,26 +688,28 @@ public class PmWorkContentServiceImpl extends AbstractCrudService<PmWorkContentM 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         Integer tenantId = SecurityUtils.getTenantId(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         Long deptId = SecurityUtils.getLoginUser().getSysUser().getDeptId(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         LambdaQueryWrapper<SysUser> userNameQuery = Wrappers.lambdaQuery(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        userNameQuery.select(SysUser::getUserId, SysUser::getNickName, SysUser::getUserName, SysUser::getPhonenumber, SysUser::getAvatar, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        SysUser::getSex, SysUser::getDeptId) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                .eq(SysUser::getDelFlag, 0) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                .eq(SysUser::getStatus, 0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        userNameQuery.select(SysUser::getUserId, SysUser::getNickName, SysUser::getUserName, SysUser::getPhonenumber, SysUser::getAvatar, SysUser::getSex, SysUser::getDeptId).eq(SysUser::getDelFlag, 0).eq(SysUser::getStatus, 0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if (userId != null && userId != 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             userNameQuery.eq(SysUser::getUserId, userId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             return sysUserMapper.selectList(userNameQuery); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        userNameQuery.eq(SysUser::getTenantId, tenantId) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                .eq(SysUser::getDeptId, deptId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        userNameQuery.eq(SysUser::getTenantId, tenantId).eq(SysUser::getDeptId, deptId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return sysUserMapper.selectList(userNameQuery); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * @description: 工时统计 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * @author: fu 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * @date: 2024/8/8 19:22 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * @param: [startDate, endDate, projectName, projectAscription] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * @return: java.util.List<com.usky.iot.domain.PmWorkReport> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     **/ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     //@DataScope//数据权限注解 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     private List<PmWorkContent> workTimeCount(List<Long> users, List<Integer> project, String startDate, String endDate) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         Integer tenantId = SecurityUtils.getTenantId(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         Long deptId = SecurityUtils.getLoginUser().getSysUser().getDeptId(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         LambdaQueryWrapper<PmWorkContent> workTimeQuery = Wrappers.lambdaQuery(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        workTimeQuery.select(PmWorkContent::getSubmitterId, PmWorkContent::getReportId, PmWorkContent::getProjectId, PmWorkContent::getProjectName, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                PmWorkContent::getWorkTime, PmWorkContent::getDeptId, PmWorkContent::getTenantId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        workTimeQuery.select(PmWorkContent::getSubmitterId, PmWorkContent::getReportId, PmWorkContent::getProjectId, PmWorkContent::getProjectName, PmWorkContent::getWorkTime, PmWorkContent::getDeptId, PmWorkContent::getTenantId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if (!users.isEmpty()) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             workTimeQuery.in(PmWorkContent::getSubmitterId, users); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -751,7 +720,9 @@ public class PmWorkContentServiceImpl extends AbstractCrudService<PmWorkContentM 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             LocalDate start = LocalDate.parse(startDate); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             LocalDate end = LocalDate.parse(endDate); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             List<Integer> reports = reports(start, end); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            workTimeQuery.in(PmWorkContent::getReportId, reports); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (!reports.isEmpty()) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                workTimeQuery.in(PmWorkContent::getReportId, reports); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         workTimeQuery.eq(PmWorkContent::getTenantId, tenantId).eq(PmWorkContent::getDeptId, deptId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         // workTimeQuery.apply(DataScopeContextHolder.getDataScopeSql());// 数据权限设置 
			 |