|
@@ -10,6 +10,8 @@ import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
|
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
import com.jeeplus.core.query.QueryWrapperGenerator;
|
|
|
import com.jeeplus.flowable.service.FlowTaskService;
|
|
|
+import com.jeeplus.sys.domain.User;
|
|
|
+import com.jeeplus.sys.service.UserService;
|
|
|
import com.jeeplus.sys.service.dto.DictValueDTO;
|
|
|
import com.jeeplus.sys.service.dto.UserDTO;
|
|
|
import com.jeeplus.sys.utils.DictUtils;
|
|
@@ -79,6 +81,10 @@ public class ProjectListService {
|
|
|
|
|
|
@Resource
|
|
|
private FlowTaskService flowTaskService;
|
|
|
+ @Resource
|
|
|
+ private ProgramMembersService programMembersService;
|
|
|
+ @Resource
|
|
|
+ private UserService userService;
|
|
|
|
|
|
public String save(ProjectListDto dto,String tabType) throws Exception{
|
|
|
if (StringUtils.isNotEmpty(dto.getId())) {
|
|
@@ -135,6 +141,10 @@ public class ProjectListService {
|
|
|
projectLinkMapper.insert(link);
|
|
|
}
|
|
|
}
|
|
|
+ // 非主要项目组成员id集合
|
|
|
+ List<String> memberIds = new ArrayList<>();
|
|
|
+ // 要进行保存的项目组成员集合
|
|
|
+ List<ProgramMembers> programMembers = new ArrayList<>();
|
|
|
// 保存项目管理列表成员信息
|
|
|
if (CollectionUtils.isNotEmpty(dto.getMembers())) {
|
|
|
for (ProgramProjectListMember member : dto.getMembers()) {
|
|
@@ -146,8 +156,46 @@ public class ProjectListService {
|
|
|
member.setUpdateDate(new Date());
|
|
|
member.setDelFlag(0);
|
|
|
projectMemberMapper.insert(member);
|
|
|
+ if (StringUtils.isNotBlank(member.getUserId())) {
|
|
|
+// 成员的user_id不是"项目负责人"、"项目创建人"的添加到非主要项目组成员id集合中
|
|
|
+ if (!member.getUserId().equals(info.getProjectManager()) && !member.getUserId().equals(info.getCreateBy())) {
|
|
|
+ memberIds.add(member.getUserId());
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
+ // 非主要项目组成员id集合去重后添加到项目组成员集合中
|
|
|
+ if (CollectionUtil.isNotEmpty(memberIds)) {
|
|
|
+ List<String> mids = memberIds.stream().distinct().collect(Collectors.toList());
|
|
|
+ mids.stream().forEach(item -> {
|
|
|
+ ProgramMembers p = new ProgramMembers();
|
|
|
+ p.setIsImportant("0"); // 非主要成员
|
|
|
+ p.setProjectId(id);
|
|
|
+ p.setStatus("0");
|
|
|
+ p.setUserId(item); // 项目创建人
|
|
|
+ programMembers.add(p);
|
|
|
+ });
|
|
|
+ }
|
|
|
+ // 主要项目组成员去重后添加到项目组成员集合中
|
|
|
+ ProgramMembers p = new ProgramMembers();
|
|
|
+ p.setIsImportant("1"); // 主要成员
|
|
|
+ p.setProjectId(id);
|
|
|
+ p.setStatus("0");
|
|
|
+ p.setUserId(info.getCreateBy()); // 项目创建人
|
|
|
+ programMembers.add(p);
|
|
|
+ if (StringUtils.isNotBlank(info.getProjectManager())) {
|
|
|
+ if (!info.getCreateBy().equals(info.getProjectManager())) { // 项目创建人,项目负责人去重一下
|
|
|
+ ProgramMembers m = new ProgramMembers();
|
|
|
+ m.setIsImportant("1"); // 主要成员
|
|
|
+ m.setProjectId(id);
|
|
|
+ m.setStatus("0");
|
|
|
+ m.setUserId(info.getProjectManager()); // 项目负责人
|
|
|
+ programMembers.add(m);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ // 保存项目组成员
|
|
|
+ programMembersService.saveBatch(programMembers);
|
|
|
+
|
|
|
// 保存附件信息
|
|
|
if (CollectionUtils.isNotEmpty(dto.getFiles())) {
|
|
|
workContractService.saveFiles(dto.getFiles(), userDTO, id);
|
|
@@ -317,6 +365,12 @@ public class ProjectListService {
|
|
|
projectLinkMapper.insert(link);
|
|
|
}
|
|
|
}
|
|
|
+ // 非主要项目组成员id集合
|
|
|
+ List<String> memberIds = new ArrayList<>();
|
|
|
+ // 要进行保存的项目组成员集合
|
|
|
+ List<ProgramMembers> programMembers = new ArrayList<>();
|
|
|
+ // 删除此项目的项目组成员信息(先删除原有数据,再保存)
|
|
|
+ programMembersService.remove(new QueryWrapper<ProgramMembers>().lambda().eq(ProgramMembers::getProjectId,dto.getId()));
|
|
|
// 修改项目管理列表成员信息(先删除原有数据,再保存)
|
|
|
projectMemberMapper.deleteByInfoId(dto.getId());
|
|
|
if (CollectionUtils.isNotEmpty(dto.getMembers())) {
|
|
@@ -329,8 +383,47 @@ public class ProjectListService {
|
|
|
member.setUpdateDate(new Date());
|
|
|
member.setDelFlag(0);
|
|
|
projectMemberMapper.insert(member);
|
|
|
+ if (StringUtils.isNotBlank(member.getUserId())) {
|
|
|
+// 成员的user_id不是"项目负责人"、"项目创建人"的添加到非主要项目组成员id集合中
|
|
|
+ if (!member.getUserId().equals(info.getProjectManager()) && !member.getUserId().equals(info.getCreateBy())) {
|
|
|
+ memberIds.add(member.getUserId());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ // 非主要项目组成员id集合去重后添加到项目组成员集合中
|
|
|
+ if (CollectionUtil.isNotEmpty(memberIds)) {
|
|
|
+ List<String> mids = memberIds.stream().distinct().collect(Collectors.toList());
|
|
|
+ mids.stream().forEach(item -> {
|
|
|
+ ProgramMembers p = new ProgramMembers();
|
|
|
+ p.setIsImportant("0"); // 非主要成员
|
|
|
+ p.setProjectId(dto.getId());
|
|
|
+ p.setStatus("0");
|
|
|
+ p.setUserId(item); // 项目创建人
|
|
|
+ programMembers.add(p);
|
|
|
+ });
|
|
|
+ }
|
|
|
+ // 主要项目组成员去重后添加到项目组成员集合中
|
|
|
+ ProgramMembers p = new ProgramMembers();
|
|
|
+ p.setIsImportant("1"); // 主要成员
|
|
|
+ p.setProjectId(dto.getId());
|
|
|
+ p.setStatus("0");
|
|
|
+ p.setUserId(info.getCreateBy()); // 项目创建人
|
|
|
+ programMembers.add(p);
|
|
|
+ if (StringUtils.isNotBlank(info.getProjectManager())) {
|
|
|
+ ProgramProjectListInfo byId = projectListMapper.getById(dto.getId());
|
|
|
+ if (!byId.getCreateBy().equals(info.getProjectManager())) { // 项目创建人,项目负责人去重一下
|
|
|
+ ProgramMembers m = new ProgramMembers();
|
|
|
+ m.setIsImportant("1"); // 主要成员
|
|
|
+ m.setProjectId(dto.getId());
|
|
|
+ m.setStatus("0");
|
|
|
+ m.setUserId(info.getProjectManager()); // 项目负责人
|
|
|
+ programMembers.add(m);
|
|
|
}
|
|
|
}
|
|
|
+ // 保存项目组成员
|
|
|
+ programMembersService.saveBatch(programMembers);
|
|
|
+
|
|
|
// 修改附件信息
|
|
|
if (CollectionUtils.isNotEmpty(dto.getFiles())) {
|
|
|
workContractService.updateFiles(dto.getFiles(), userDTO, dto.getId());
|
|
@@ -387,6 +480,12 @@ public class ProjectListService {
|
|
|
memberWrapper.eq(ProgramProjectListMember::getDelFlag, 0);
|
|
|
List<ProgramProjectListMember> members = projectMemberMapper.selectList(memberWrapper);
|
|
|
if (CollectionUtils.isNotEmpty(members)) {
|
|
|
+ members.stream().forEach(member -> {
|
|
|
+ if (StringUtils.isNotBlank(member.getUserId())) {
|
|
|
+ User byId = userService.getById(member.getUserId());
|
|
|
+ member.setName(byId.getName());
|
|
|
+ }
|
|
|
+ });
|
|
|
dto.setMembers(members);
|
|
|
}
|
|
|
// 查询附件信息
|