|
@@ -4,6 +4,8 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
+import com.ruoyi.common.datascope.annotation.DataScope;
|
|
|
+import com.ruoyi.common.datascope.context.DataScopeContextHolder;
|
|
|
import com.usky.common.core.bean.CommonPage;
|
|
|
import com.usky.common.core.exception.BusinessException;
|
|
|
import com.usky.common.security.utils.SecurityUtils;
|
|
@@ -67,7 +69,7 @@ public class PmProjectServiceImpl extends AbstractCrudService<PmProjectMapper, P
|
|
|
Integer tenantId = SecurityUtils.getTenantId();
|
|
|
LocalDateTime now = LocalDateTime.now();
|
|
|
|
|
|
- if (project.getVisibleRange() == null){
|
|
|
+ if (project.getVisibleRange() == null) {
|
|
|
project.setVisibleRange((byte) 1);
|
|
|
}
|
|
|
|
|
@@ -154,7 +156,7 @@ public class PmProjectServiceImpl extends AbstractCrudService<PmProjectMapper, P
|
|
|
)
|
|
|
.in(PmProject::getProjectStatus, 1, 2, 3);
|
|
|
List<PmProject> list = this.list(wrapper);
|
|
|
- if (list.isEmpty()){
|
|
|
+ if (list.isEmpty()) {
|
|
|
return list;
|
|
|
}
|
|
|
|
|
@@ -165,8 +167,8 @@ public class PmProjectServiceImpl extends AbstractCrudService<PmProjectMapper, P
|
|
|
.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){
|
|
|
+ if (pmWorkContents.isEmpty()) {
|
|
|
+ for (PmProject project : list) {
|
|
|
project.setSubmissions(0L);
|
|
|
}
|
|
|
return list;
|
|
@@ -177,10 +179,10 @@ public class PmProjectServiceImpl extends AbstractCrudService<PmProjectMapper, P
|
|
|
|
|
|
for (PmProject project : list) {
|
|
|
Integer id = project.getId();
|
|
|
- Long aLong = projectIdCountMap.getOrDefault(id,0L);
|
|
|
+ Long aLong = projectIdCountMap.getOrDefault(id, 0L);
|
|
|
project.setSubmissions(aLong);
|
|
|
}
|
|
|
- //降序排序
|
|
|
+ // 降序排序
|
|
|
Collections.sort(list, new Comparator<PmProject>() {
|
|
|
@Override
|
|
|
public int compare(PmProject p1, PmProject p2) {
|
|
@@ -210,46 +212,81 @@ public class PmProjectServiceImpl extends AbstractCrudService<PmProjectMapper, P
|
|
|
String username = SecurityUtils.getUsername();
|
|
|
String nickName = SecurityUtils.getLoginUser().getSysUser().getNickName();
|
|
|
Integer tenantId = SecurityUtils.getTenantId();
|
|
|
+
|
|
|
LambdaQueryWrapper<PmProject> lambdaQuery = Wrappers.lambdaQuery();
|
|
|
- lambdaQuery.eq(PmProject::getTenantId, SecurityUtils.getTenantId()).eq(PmProject::getDelFlag, 0)
|
|
|
+ lambdaQuery.eq(PmProject::getTenantId, tenantId)
|
|
|
+ .eq(PmProject::getDelFlag, 0)
|
|
|
.eq(visibleRange != null, PmProject::getVisibleRange, visibleRange);
|
|
|
+
|
|
|
if (projectId != null && projectId != 0) {
|
|
|
lambdaQuery.eq(PmProject::getId, projectId);
|
|
|
page = this.page(page, lambdaQuery);
|
|
|
return new CommonPage<>(page.getRecords(), page.getTotal(), pageSize, pageNum);
|
|
|
}
|
|
|
+
|
|
|
switch (projectAscription) {
|
|
|
case 0:
|
|
|
- if (visibleRange != null && visibleRange == 1) {
|
|
|
- break;
|
|
|
+ if (StringUtils.isNotBlank(projectName) || projectType != null || projectStatus != null) {
|
|
|
+ lambdaQuery.eq(PmProject::getDelFlag, 0)
|
|
|
+ .like(StringUtils.isNotBlank(projectName), PmProject::getProjectName, projectName)
|
|
|
+ .eq(projectType != null, PmProject::getProjectType, projectType)
|
|
|
+ .eq(projectStatus != null, PmProject::getProjectStatus, projectStatus)
|
|
|
+ .and(qw -> qw
|
|
|
+ .eq(PmProject::getProjectHead, userId)
|
|
|
+ .or()
|
|
|
+ .apply("FIND_IN_SET('" + userId + "', project_member) > 0")
|
|
|
+ .or()
|
|
|
+ .eq(PmProject::getCreateBy, username));
|
|
|
}
|
|
|
- lambdaQuery.and(q -> q.eq(PmProject::getProjectHead, userId)
|
|
|
- .or().apply("FIND_IN_SET('" + SecurityUtils.getUserId() + "', project_member) > 0")
|
|
|
- .or().eq(PmProject::getCreateBy, username));
|
|
|
+ if (visibleRange == null) {
|
|
|
+ lambdaQuery.eq(PmProject::getDelFlag, 0)
|
|
|
+ .and(wrapper -> wrapper
|
|
|
+ .eq(PmProject::getVisibleRange, 2)
|
|
|
+ .and(qw -> qw
|
|
|
+ .eq(PmProject::getProjectHead, userId)
|
|
|
+ .or()
|
|
|
+ .apply("FIND_IN_SET('" + userId + "', project_member) > 0")
|
|
|
+ .or()
|
|
|
+ .eq(PmProject::getCreateBy, username))
|
|
|
+ )
|
|
|
+ .or()
|
|
|
+ .eq(PmProject::getVisibleRange, 1)
|
|
|
+ .eq(PmProject::getDelFlag, 0);
|
|
|
+ } else if (visibleRange == 2) {
|
|
|
+ lambdaQuery.and(wrapper -> wrapper
|
|
|
+ .eq(PmProject::getProjectHead, userId)
|
|
|
+ .or()
|
|
|
+ .apply("FIND_IN_SET('" + userId + "', project_member) > 0")
|
|
|
+ .or()
|
|
|
+ .eq(PmProject::getCreateBy, username)
|
|
|
+ );
|
|
|
+ }
|
|
|
+ lambdaQuery.like(StringUtils.isNotBlank(projectName), PmProject::getProjectName, projectName)
|
|
|
+ .eq(projectType != null, PmProject::getProjectType, projectType)
|
|
|
+ .eq(projectStatus != null, PmProject::getProjectStatus, projectStatus);
|
|
|
break;
|
|
|
case 1:
|
|
|
- lambdaQuery.eq(PmProject::getProjectHead, userId);
|
|
|
+ lambdaQuery.eq(PmProject::getProjectHead, userId)
|
|
|
+ .like(StringUtils.isNotBlank(projectName), PmProject::getProjectName, projectName)
|
|
|
+ .eq(projectType != null, PmProject::getProjectType, projectType)
|
|
|
+ .eq(projectStatus != null, PmProject::getProjectStatus, projectStatus);
|
|
|
break;
|
|
|
case 2:
|
|
|
- lambdaQuery.apply("FIND_IN_SET('" + userId + "', project_member) > 0");
|
|
|
+ lambdaQuery.apply("FIND_IN_SET('" + userId + "', project_member) > 0")
|
|
|
+ .like(StringUtils.isNotBlank(projectName), PmProject::getProjectName, projectName)
|
|
|
+ .eq(projectType != null, PmProject::getProjectType, projectType)
|
|
|
+ .eq(projectStatus != null, PmProject::getProjectStatus, projectStatus);
|
|
|
break;
|
|
|
default:
|
|
|
throw new BusinessException("查询项目列表参数错误");
|
|
|
}
|
|
|
- if (StringUtils.isNotBlank(projectName)) {
|
|
|
- lambdaQuery.like(PmProject::getProjectName, projectName);
|
|
|
- }
|
|
|
- if (projectType != 0) {
|
|
|
- lambdaQuery.eq(PmProject::getProjectType, projectType);
|
|
|
- }
|
|
|
- if (projectStatus != 0) {
|
|
|
- lambdaQuery.eq(PmProject::getProjectStatus, projectStatus);
|
|
|
- }
|
|
|
lambdaQuery.orderByDesc(PmProject::getCreateTime);
|
|
|
List<PmProject> pmProjects = pmProjectMapper.selectList(lambdaQuery);
|
|
|
- if (pmProjects.isEmpty()){
|
|
|
+ if (pmProjects.isEmpty()) {
|
|
|
return new CommonPage<>(pmProjects, 0, pageSize, pageNum);
|
|
|
}
|
|
|
+ // Set<PmProject> uniqueProjects = new HashSet<>(pmProjects);
|
|
|
+ // pmProjects = new ArrayList<>(uniqueProjects);
|
|
|
|
|
|
// 替换创建人和更新人名字(username→nickname)
|
|
|
LambdaQueryWrapper<SysUser> query = Wrappers.lambdaQuery();
|
|
@@ -307,25 +344,35 @@ public class PmProjectServiceImpl extends AbstractCrudService<PmProjectMapper, P
|
|
|
*/
|
|
|
@Override
|
|
|
public Map<String, Integer> sum() {
|
|
|
+ Integer tenantId = SecurityUtils.getTenantId();
|
|
|
+ Long userId = SecurityUtils.getUserId();
|
|
|
+
|
|
|
LambdaQueryWrapper<PmProject> lambdaQuery = Wrappers.lambdaQuery();
|
|
|
- lambdaQuery.eq(PmProject::getTenantId, SecurityUtils.getTenantId())
|
|
|
- .and(q -> q.eq(PmProject::getProjectHead, SecurityUtils.getUserId())
|
|
|
- .or().eq(PmProject::getVisibleRange, 1)
|
|
|
- .or().apply("FIND_IN_SET('" + SecurityUtils.getUserId() + "', project_member) > 0")
|
|
|
- .or().eq(PmProject::getCreateBy, SecurityUtils.getUsername()))
|
|
|
+ lambdaQuery.eq(PmProject::getTenantId, tenantId)
|
|
|
+ .eq(PmProject::getDelFlag, 0)
|
|
|
+ .eq(PmProject::getVisibleRange, 2)
|
|
|
+ .and(q -> q.or().eq(PmProject::getProjectHead, userId)
|
|
|
+ .or().apply("FIND_IN_SET('" + userId + "', project_member) > 0")
|
|
|
+ .or().eq(PmProject::getCreateBy, SecurityUtils.getUsername()));
|
|
|
+ Integer allA = this.count(lambdaQuery);
|
|
|
+
|
|
|
+ LambdaQueryWrapper<PmProject> lambdaQuery3 = Wrappers.lambdaQuery();
|
|
|
+ lambdaQuery3.eq(PmProject::getTenantId, tenantId)
|
|
|
+ .eq(PmProject::getVisibleRange, 1)
|
|
|
.eq(PmProject::getDelFlag, 0);
|
|
|
- Integer all = this.count(lambdaQuery);
|
|
|
+ Integer allB = this.count(lambdaQuery3);
|
|
|
+ int all = allA + allB;
|
|
|
|
|
|
LambdaQueryWrapper<PmProject> lambdaQuery1 = Wrappers.lambdaQuery();
|
|
|
- lambdaQuery1.eq(PmProject::getTenantId, SecurityUtils.getTenantId())
|
|
|
+ lambdaQuery1.eq(PmProject::getTenantId, tenantId)
|
|
|
.eq(PmProject::getDelFlag, 0)
|
|
|
- .eq(PmProject::getProjectHead, SecurityUtils.getUserId());
|
|
|
+ .eq(PmProject::getProjectHead, userId);
|
|
|
Integer head = this.count(lambdaQuery1);
|
|
|
|
|
|
LambdaQueryWrapper<PmProject> lambdaQuery2 = Wrappers.lambdaQuery();
|
|
|
- lambdaQuery2.eq(PmProject::getTenantId, SecurityUtils.getTenantId())
|
|
|
+ lambdaQuery2.eq(PmProject::getTenantId, tenantId)
|
|
|
.eq(PmProject::getDelFlag, 0)
|
|
|
- .apply("FIND_IN_SET('" + SecurityUtils.getUserId() + "', project_member) > 0");
|
|
|
+ .apply("FIND_IN_SET('" + userId + "', project_member) > 0");
|
|
|
Integer join = this.count(lambdaQuery2);
|
|
|
|
|
|
Map<String, Integer> sumMap = new HashMap<>();
|
|
@@ -345,13 +392,17 @@ public class PmProjectServiceImpl extends AbstractCrudService<PmProjectMapper, P
|
|
|
public List<Map<String, Object>> projectUsers(Long userId) {
|
|
|
List<Map<String, Object>> returnList = new ArrayList<>();
|
|
|
List<SysUser> userList = new ArrayList<>();
|
|
|
+ LambdaQueryWrapper<SysUser> queryNameId = Wrappers.lambdaQuery();
|
|
|
if (userId != null) {
|
|
|
- LambdaQueryWrapper<SysUser> queryNameId = Wrappers.lambdaQuery();
|
|
|
- queryNameId.select(SysUser::getUserId, SysUser::getNickName)
|
|
|
+ queryNameId.select(SysUser::getUserId, SysUser::getNickName, SysUser::getUserName)
|
|
|
.eq(SysUser::getUserId, userId);
|
|
|
- userList = sysUserMapper.selectList(queryNameId);
|
|
|
} else {
|
|
|
- LambdaQueryWrapper<PmProject> wrapper = Wrappers.lambdaQuery();
|
|
|
+ queryNameId.select(SysUser::getUserId, SysUser::getNickName, SysUser::getUserName)
|
|
|
+ .eq(SysUser::getDelFlag, 0)
|
|
|
+ .eq(SysUser::getStatus, "0")
|
|
|
+ .apply(Objects.nonNull(DataScopeContextHolder.getDataScopeSql()), DataScopeContextHolder.getDataScopeSql());
|
|
|
+
|
|
|
+/* LambdaQueryWrapper<PmProject> wrapper = Wrappers.lambdaQuery();
|
|
|
wrapper.select(PmProject::getProjectHead, PmProject::getProjectMember)
|
|
|
.eq(PmProject::getTenantId, SecurityUtils.getTenantId())
|
|
|
.eq(PmProject::getDelFlag, 0);
|
|
@@ -372,8 +423,9 @@ public class PmProjectServiceImpl extends AbstractCrudService<PmProjectMapper, P
|
|
|
LambdaQueryWrapper<SysUser> wrapper2 = Wrappers.lambdaQuery();
|
|
|
wrapper2.select(SysUser::getUserId, SysUser::getNickName)
|
|
|
.in(SysUser::getUserId, finalList);
|
|
|
- userList = sysUserMapper.selectList(wrapper2);
|
|
|
+ userList = sysUserMapper.selectList(wrapper2);*/
|
|
|
}
|
|
|
+ userList = sysUserMapper.selectList(queryNameId);
|
|
|
for (SysUser user : userList) {
|
|
|
Map<String, Object> map = new HashMap<>();
|
|
|
map.put("id", user.getUserId());
|
|
@@ -388,16 +440,25 @@ public class PmProjectServiceImpl extends AbstractCrudService<PmProjectMapper, P
|
|
|
*
|
|
|
* @return
|
|
|
*/
|
|
|
+ @DataScope
|
|
|
@Override
|
|
|
public List<Map<String, Object>> projectIdName(Integer projectId) {
|
|
|
+ Long userId = SecurityUtils.getUserId();
|
|
|
List<Map<String, Object>> returnList = new ArrayList<>();
|
|
|
LambdaQueryWrapper<PmProject> wrapper = Wrappers.lambdaQuery();
|
|
|
- wrapper.select(PmProject::getId, PmProject::getProjectName)
|
|
|
- .eq(PmProject::getTenantId, SecurityUtils.getTenantId())
|
|
|
- .eq(PmProject::getDelFlag, 0);
|
|
|
+ wrapper.select(PmProject::getId, PmProject::getProjectName);
|
|
|
if (projectId != null) {
|
|
|
wrapper.eq(PmProject::getId, projectId);
|
|
|
+ } else {
|
|
|
+ wrapper.eq(PmProject::getDelFlag, 0)
|
|
|
+ .and(qw -> qw
|
|
|
+ .apply(Objects.nonNull(DataScopeContextHolder.getDataScopeSql()), DataScopeContextHolder.getDataScopeSql())
|
|
|
+ .or().eq(PmProject::getProjectHead, userId)
|
|
|
+ .or().eq(PmProject::getCreateBy, SecurityUtils.getUsername())
|
|
|
+ .or().apply("FIND_IN_SET('" + SecurityUtils.getUserId() + "', project_member) > 0")
|
|
|
+ );
|
|
|
}
|
|
|
+
|
|
|
List<PmProject> projects = pmProjectMapper.selectList(wrapper);
|
|
|
for (PmProject project : projects) {
|
|
|
Map<String, Object> returnMap = new HashMap<>();
|