|
@@ -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();
|