| 
					
				 | 
			
			
				@@ -118,23 +118,59 @@ public class PmProjectServiceImpl extends AbstractCrudService<PmProjectMapper, P 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-     * 添加工作报告下拉框 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * 添加工作报告项目下拉框 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      * 查询当前租户所有项目 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      * @return 只返回项目id和名称 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     @Override 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     public List<PmProject> queryProject() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        Integer tenantId = SecurityUtils.getTenantId(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        Long userId = SecurityUtils.getUserId(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         LambdaQueryWrapper<PmProject> wrapper = Wrappers.lambdaQuery(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         wrapper.select(PmProject::getId, PmProject::getProjectName) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                .eq(PmProject::getTenantId, SecurityUtils.getTenantId()) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                .eq(PmProject::getTenantId, tenantId) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 .eq(PmProject::getDelFlag, 0) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 .and(qw -> qw 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        .eq(PmProject::getProjectHead, SecurityUtils.getUserId()) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        .eq(PmProject::getProjectHead, userId) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         .or().apply("FIND_IN_SET('" + SecurityUtils.getUserId() + "', project_member) > 0") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 ) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 .in(PmProject::getProjectStatus, 1, 2, 3); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         List<PmProject> list = this.list(wrapper); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (list.isEmpty()){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            return list; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        List<Integer> projectIds = list.stream().map(PmProject::getId).collect(Collectors.toList()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        LambdaQueryWrapper<PmWorkContent> queryWrapper = Wrappers.lambdaQuery(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        queryWrapper.select(PmWorkContent::getProjectId) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                .eq(PmWorkContent::getSubmitterId, userId) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                .in(PmWorkContent::getProjectId, projectIds) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                .between(PmWorkContent::getCreateTime, LocalDateTime.now().minusDays(29), LocalDateTime.now()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        List<PmWorkContent> pmWorkContents = pmWorkContentMapper.selectList(queryWrapper); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (pmWorkContents.isEmpty()){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            for (PmProject project : list){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                project.setSubmissions(0L); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            return list; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        Map<Integer, Long> projectIdCountMap = pmWorkContents.stream() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                .collect(Collectors.groupingBy(PmWorkContent::getProjectId, Collectors.counting())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        for (PmProject project : list) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            Integer id = project.getId(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            Long aLong = projectIdCountMap.getOrDefault(id,0L); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            project.setSubmissions(aLong); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        //降序排序 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        Collections.sort(list, new Comparator<PmProject>() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            @Override 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            public int compare(PmProject p1, PmProject p2) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                return Long.compare(p2.getSubmissions(), p1.getSubmissions()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return list; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -189,6 +225,10 @@ public class PmProjectServiceImpl extends AbstractCrudService<PmProjectMapper, P 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             lambdaQuery.eq(PmProject::getProjectStatus, projectStatus); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         lambdaQuery.orderByDesc(PmProject::getCreateTime); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        List<PmProject> pmProjects = pmProjectMapper.selectList(lambdaQuery); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (pmProjects.isEmpty()){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            return new CommonPage<>(pmProjects, 0, pageSize, pageNum); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         // 替换创建人和更新人名字(username→nickname) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         LambdaQueryWrapper<SysUser> query = Wrappers.lambdaQuery(); 
			 |