Browse Source

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

recovery
ma 5 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 javax.annotation.Resource;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.util.*; import java.util.*;
import java.util.stream.Collectors;
@Slf4j @Slf4j
@Service @Service
@ -647,9 +648,9 @@ public class ProjectService implements IProjectService {
userAttention.setProjectId(newProject.getId()); userAttention.setProjectId(newProject.getId());
attentionDao.insertSelective(userAttention); 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 { } else {
throw new BaseException(CodeEnum.NOT_PROJECT); throw new BaseException(CodeEnum.NOT_PROJECT);
} }
@ -672,7 +673,7 @@ public class ProjectService implements IProjectService {
* @param oldId 被复制的项目的id * @param oldId 被复制的项目的id
* @param newId 新建的项目的id * @param newId 新建的项目的id
*/ */
private void copyProjectConfig(Long oldId, Long newId) { private void copyProjectConfig(Long oldId, Long newId,Long userId) {
ProShowExample showExample = new ProShowExample(); ProShowExample showExample = new ProShowExample();
showExample.createCriteria().andProjectIdEqualTo(oldId); showExample.createCriteria().andProjectIdEqualTo(oldId);
List<ProShow> shows = proShowDao.selectByExample(showExample); 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<Long, String> oldRoleMap = new HashMap<>();
Map<String, Long> newRoleMap = 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); copyRoleExclude(oldRoleList, oldRoleMap, newRoleMap);
//复制任务(包括分解任务) //复制任务(包括分解任务)
@ -1477,6 +1505,7 @@ public class ProjectService implements IProjectService {
} }
} }
//该用户关注新项目 //该用户关注新项目
UserAttention userAttention = new UserAttention(); UserAttention userAttention = new UserAttention();
userAttention.setId(snowflake.nextId()); userAttention.setId(snowflake.nextId());
@ -1484,9 +1513,9 @@ public class ProjectService implements IProjectService {
userAttention.setProjectId(newProject.getId()); userAttention.setProjectId(newProject.getId());
attentionDao.insertSelective(userAttention); 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; return null;
} }

Loading…
Cancel
Save