|
@@ -39,6 +39,7 @@ import org.springframework.transaction.interceptor.TransactionAspectSupport;
|
|
|
|
|
|
import javax.annotation.Resource;
|
|
import javax.annotation.Resource;
|
|
import java.util.*;
|
|
import java.util.*;
|
|
|
|
+import java.util.concurrent.atomic.AtomicBoolean;
|
|
import java.util.stream.Collectors;
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
/**
|
|
/**
|
|
@@ -323,30 +324,31 @@ public class ProjectLiftRelevanceService extends ServiceImpl<ProjectLiftRelevanc
|
|
//循环前端传过来的项目信息
|
|
//循环前端传过来的项目信息
|
|
log.info("前端传过来的项目id" + projectIds);
|
|
log.info("前端传过来的项目id" + projectIds);
|
|
projectIds.forEach(projectId -> {
|
|
projectIds.forEach(projectId -> {
|
|
|
|
+ //用户当前是否存在项目中
|
|
|
|
+ AtomicBoolean hasUser = new AtomicBoolean(false);
|
|
//查询项目用户关联表中是否有这个关联
|
|
//查询项目用户关联表中是否有这个关联
|
|
- for (ProjectUser projectUser : projectUsers) {
|
|
|
|
- boolean existCompanyProject = projectId.equals(projectUser.getProjectId()) &&
|
|
|
|
- request.getMtCompanyId().equals(projectUser.getMtCompanyId());
|
|
|
|
- //如果用户在公司项目下且有关联,就终止循环
|
|
|
|
- if (existCompanyProject && newWorkerId.equals(projectUser.getUserId())) {
|
|
|
|
- break;
|
|
|
|
- }
|
|
|
|
- //如果用户不存在关联表中且用户应在项目中,就将用户放入待插入列表,并终止循环
|
|
|
|
- if (existCompanyProject) {
|
|
|
|
- ProjectUser pu = new ProjectUser();
|
|
|
|
- pu.setProjectId(projectId);
|
|
|
|
- pu.setUserId(newWorkerId);
|
|
|
|
- pu.setMtCompanyId(request.getMtCompanyId());
|
|
|
|
- pu.setUserRole(CommonEnum.DefaultRole.MTWORK.getCode());
|
|
|
|
- pu.setCreatorId(10000L);
|
|
|
|
- pu.setUpdateId(10000L);
|
|
|
|
- insertProjectUsers.add(pu);
|
|
|
|
- break;
|
|
|
|
- }
|
|
|
|
|
|
+ projectUsers.stream().
|
|
|
|
+ filter(p -> projectId.equals(p.getProjectId()) && request.getMtCompanyId().equals(p.getMtCompanyId())).
|
|
|
|
+ forEach(p -> {
|
|
|
|
+ //如果存在项目中,且列表中有这个用户
|
|
|
|
+ if (newWorkerId.equals(p.getUserId())) {
|
|
|
|
+ hasUser.set(true);
|
|
|
|
+ }
|
|
|
|
+ });
|
|
|
|
+ //如果用户不存在关联表中且用户应在项目中,就将用户放入待插入列表,并终止循环
|
|
|
|
+ if ( !hasUser.get()) {
|
|
|
|
+ ProjectUser pu = new ProjectUser();
|
|
|
|
+ pu.setProjectId(projectId);
|
|
|
|
+ pu.setUserId(newWorkerId);
|
|
|
|
+ pu.setMtCompanyId(request.getMtCompanyId());
|
|
|
|
+ pu.setUserRole(CommonEnum.DefaultRole.MTWORK.getCode());
|
|
|
|
+ pu.setCreatorId(10000L);
|
|
|
|
+ pu.setUpdateId(10000L);
|
|
|
|
+ insertProjectUsers.add(pu);
|
|
}
|
|
}
|
|
});
|
|
});
|
|
//批量保存项目用户关联信息
|
|
//批量保存项目用户关联信息
|
|
- log.info("批量保存项目用户关联信息" + insertProjectUsers.size());
|
|
|
|
|
|
+ log.info("批量保存项目用户关联信息" + insertProjectUsers);
|
|
if (insertProjectUsers.size() > 0) {
|
|
if (insertProjectUsers.size() > 0) {
|
|
if (!projectUserService.saveBatch(insertProjectUsers)) {
|
|
if (!projectUserService.saveBatch(insertProjectUsers)) {
|
|
throw new BusinessBasicException("数据库保存失败");
|
|
throw new BusinessBasicException("数据库保存失败");
|