Browse Source

增加复制项目的人默认为项目经理

recovery
ma 4 years ago
parent
commit
8245868f7f
  1. 41
      tall/src/main/java/com/ccsens/tall/service/ProjectService.java

41
tall/src/main/java/com/ccsens/tall/service/ProjectService.java

@ -28,6 +28,7 @@ import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.stream.Collectors;
@Slf4j
@Service
@ -647,9 +648,9 @@ public class ProjectService implements IProjectService {
userAttention.setProjectId(newProject.getId());
attentionDao.insertSelective(userAttention);
//添加角色
copyRole(oldProject.getId(), newProject.getId());
copyRole(oldProject.getId(), newProject.getId(),userId);
//复制项目配置信息
copyProjectConfig(oldProject.getId(), newProject.getId());
copyProjectConfig(oldProject.getId(), newProject.getId(),userId);
} else {
throw new BaseException(CodeEnum.NOT_PROJECT);
}
@ -672,7 +673,7 @@ public class ProjectService implements IProjectService {
* @param oldId 被复制的项目的id
* @param newId 新建的项目的id
*/
private void copyProjectConfig(Long oldId, Long newId) {
private void copyProjectConfig(Long oldId, Long newId,Long userId) {
ProShowExample showExample = new ProShowExample();
showExample.createCriteria().andProjectIdEqualTo(oldId);
List<ProShow> shows = proShowDao.selectByExample(showExample);
@ -690,7 +691,7 @@ public class ProjectService implements IProjectService {
/**
* 复制角色
*/
private void copyRole(Long oldProjectId, Long newProjectId) {
private void copyRole(Long oldProjectId, Long newProjectId,Long userId) {
//查找被复制的项目下的二级角色
Map<Long, String> oldRoleMap = new HashMap<>();
Map<String, Long> newRoleMap = new HashMap<>();
@ -719,6 +720,33 @@ public class ProjectService implements IProjectService {
}
}
}
//当前创建人默认为项目经理
SysUser sysUser = sysUserDao.selectByPrimaryKey(userId);
//添加成员
ProMember proMember = new ProMember();
proMember.setId(snowflake.nextId());
proMember.setUserId(userId);
proMember.setProjectId(newProjectId);
proMember.setNickname(sysUser.getNickname());
proMember.setPhone(sysUser.getPhone());
proMemberDao.insertSelective(proMember);
//查找项目经理的id
ProRoleExample proRoleExample=new ProRoleExample();
proRoleExample.createCriteria().andRecStatusEqualTo((byte)0).andNameEqualTo(WebConstant.ROLE_NAME.PM.value).andParentIdEqualTo(0L).andProjectIdEqualTo(newProjectId);
List<Long> firstPmId = proRoleDao.selectByExample(proRoleExample).stream().map(ProRole::getId).collect(Collectors.toList());
ProRoleExample secondPMExample=new ProRoleExample();
secondPMExample.createCriteria().andRecStatusEqualTo((byte)0).andParentIdIn(firstPmId);
List<ProRole> proRoles = proRoleDao.selectByExample(secondPMExample);
List<Long> secondPM = proRoles.stream().map(action->action.getId()).collect(Collectors.toList());
if (CollectionUtil.isNotEmpty(secondPM)){
ProMemberRole proMemberRole = new ProMemberRole();
proMemberRole.setId(snowflake.nextId());
proMemberRole.setMemberId(proMember.getId());
proMemberRole.setRoleId(secondPM.get(0));
memberRoleDao.insertSelective(proMemberRole);
}
//添加对谁不可见
copyRoleExclude(oldRoleList, oldRoleMap, newRoleMap);
//复制任务(包括分解任务)
@ -1477,6 +1505,7 @@ public class ProjectService implements IProjectService {
}
}
//该用户关注新项目
UserAttention userAttention = new UserAttention();
userAttention.setId(snowflake.nextId());
@ -1484,9 +1513,9 @@ public class ProjectService implements IProjectService {
userAttention.setProjectId(newProject.getId());
attentionDao.insertSelective(userAttention);
//添加角色
copyRole(oldProject.getId(), newProject.getId());
copyRole(oldProject.getId(), newProject.getId(),userId);
//复制项目配置信息
copyProjectConfig(oldProject.getId(), newProject.getId());
copyProjectConfig(oldProject.getId(), newProject.getId(),userId);
//复制项目下的角色
return null;
}

Loading…
Cancel
Save