|
@@ -11,14 +11,19 @@ import com.usky.iot.domain.PmProject;
|
|
|
import com.usky.iot.domain.PmWorkContent;
|
|
|
import com.usky.iot.mapper.PmProjectMapper;
|
|
|
import com.usky.iot.mapper.PmWorkContentMapper;
|
|
|
+import com.usky.iot.mapper.SysUserMapper;
|
|
|
import com.usky.iot.service.PmProjectService;
|
|
|
import com.usky.common.mybatis.core.AbstractCrudService;
|
|
|
+import com.usky.system.domain.SysUser;
|
|
|
+import org.checkerframework.checker.units.qual.A;
|
|
|
+import org.omg.CORBA.StringHolder;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
import java.time.LocalDate;
|
|
|
import java.time.LocalDateTime;
|
|
|
import java.util.*;
|
|
|
+import java.util.stream.Collectors;
|
|
|
|
|
|
/**
|
|
|
* <p>
|
|
@@ -34,6 +39,12 @@ public class PmProjectServiceImpl extends AbstractCrudService<PmProjectMapper, P
|
|
|
@Autowired
|
|
|
private PmWorkContentMapper pmWorkContentMapper;
|
|
|
|
|
|
+ @Autowired
|
|
|
+ private SysUserMapper sysUserMapper;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private PmProjectMapper pmProjectMapper;
|
|
|
+
|
|
|
@Override
|
|
|
public void addProject(PmProject project) {
|
|
|
if (Objects.isNull(project.getProjectWorkload())) {
|
|
@@ -199,4 +210,91 @@ public class PmProjectServiceImpl extends AbstractCrudService<PmProjectMapper, P
|
|
|
return sumMap;
|
|
|
}
|
|
|
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 查询所有项目负责人、成员和userid(此处逻辑为查询所有项目中的负责人、团队成员然后进行去重)
|
|
|
+ *
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public List<Map<String, Object>> projectUsers(Long userId) {
|
|
|
+ List<Map<String, Object>> returnList = new ArrayList<>();
|
|
|
+ List<SysUser> userList = new ArrayList<>();
|
|
|
+ if (userId != null) {
|
|
|
+ LambdaQueryWrapper<SysUser> queryNameId = Wrappers.lambdaQuery();
|
|
|
+ queryNameId.select(SysUser::getUserId,SysUser::getNickName)
|
|
|
+ .eq(SysUser::getUserId, userId);
|
|
|
+ userList = sysUserMapper.selectList(queryNameId);
|
|
|
+ }else{
|
|
|
+ LambdaQueryWrapper<PmProject> wrapper = Wrappers.lambdaQuery();
|
|
|
+ wrapper.select(PmProject::getProjectHead, PmProject::getProjectMember)
|
|
|
+ .eq(PmProject::getTenantId, SecurityUtils.getTenantId())
|
|
|
+ .eq(PmProject::getDelFlag, 0);
|
|
|
+ List<PmProject> users = pmProjectMapper.selectList(wrapper);
|
|
|
+ List<Long> userIds = new ArrayList<>();
|
|
|
+ for (PmProject user : users) {
|
|
|
+ Long projectHead = user.getProjectHead();
|
|
|
+ userIds.add(projectHead);
|
|
|
+ Set<Long> projectMembers = Arrays.stream(user.getProjectMember().split(","))
|
|
|
+ .map(Long::parseLong)
|
|
|
+ .collect(Collectors.toSet());
|
|
|
+ userIds.addAll(projectMembers);
|
|
|
+ }
|
|
|
+ List<Long> finalList = userIds.stream().distinct().collect(Collectors.toList());
|
|
|
+ LambdaQueryWrapper<SysUser> wrapper2 = Wrappers.lambdaQuery();
|
|
|
+ wrapper2.select(SysUser::getUserId, SysUser::getNickName)
|
|
|
+ .in(SysUser::getUserId, finalList);
|
|
|
+ userList = sysUserMapper.selectList(wrapper2);
|
|
|
+ }
|
|
|
+ for (SysUser user : userList) {
|
|
|
+ Map<String, Object> map = new HashMap<>();
|
|
|
+ map.put("id", user.getUserId());
|
|
|
+ map.put("name", user.getNickName());
|
|
|
+ returnList.add(map);
|
|
|
+ }
|
|
|
+ return returnList;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 查询所有项目和id
|
|
|
+ *
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public List<Map<String, Object>> projectIdName(Integer projectId) {
|
|
|
+ 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);
|
|
|
+ if (projectId != null) {
|
|
|
+ wrapper.eq(PmProject::getId, projectId);
|
|
|
+ }
|
|
|
+ List<PmProject> projects = pmProjectMapper.selectList(wrapper);
|
|
|
+ for (PmProject project : projects) {
|
|
|
+ Map<String, Object> returnMap = new HashMap<>();
|
|
|
+ returnMap.put("id", project.getId());
|
|
|
+ returnMap.put("name", project.getProjectName());
|
|
|
+ returnList.add(returnMap);
|
|
|
+ }
|
|
|
+ return returnList;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * @param identifying 标识:1,返回人员userId和nickName;2:返回ProjectId和ProjectName
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public List<Map<String, Object>> userOrProject(Integer identifying) {
|
|
|
+ Integer projectId = null;
|
|
|
+ Long userId = null;
|
|
|
+ List<Map<String, Object>> returnList = new ArrayList<>();
|
|
|
+ if (identifying == 1) {
|
|
|
+ returnList = projectUsers(userId);
|
|
|
+ } else if (identifying == 2) {
|
|
|
+ returnList = projectIdName(projectId);
|
|
|
+ }
|
|
|
+ return returnList;
|
|
|
+ }
|
|
|
+
|
|
|
}
|