|
|
@ -74,9 +74,11 @@ public class OrganizeServiceImpl implements OrganizeService {
|
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
|
public Long saveOrganize(List<Organize> organizeList) {
|
|
|
|
public Long saveOrganize(List<Organize> organizeList) {
|
|
|
|
Long saveUserId = null;
|
|
|
|
Long saveUserId = null;
|
|
|
|
Set<Long> organizeUserIds = findOrganizeUserIds();
|
|
|
|
List<OrganizeUser> organizeUserAll = organizeUserRepository.findAll();
|
|
|
|
|
|
|
|
Set<Long> allUserIdList = organizeUserAll.stream().map(OrganizeUser::getUserId).collect(Collectors.toSet());
|
|
|
|
|
|
|
|
|
|
|
|
for (Organize organize : organizeList) {
|
|
|
|
for (Organize organize : organizeList) {
|
|
|
|
if (organizeUserIds.contains(organize.getUserId())) {
|
|
|
|
if (allUserIdList.contains(organize.getUserId())) {
|
|
|
|
CommonLog.error("用户已经分配到组");
|
|
|
|
CommonLog.error("用户已经分配到组");
|
|
|
|
throw new BadRequestException("用户已经分配到组");
|
|
|
|
throw new BadRequestException("用户已经分配到组");
|
|
|
|
}
|
|
|
|
}
|
|
|
@ -184,29 +186,33 @@ public class OrganizeServiceImpl implements OrganizeService {
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
|
public void addMember(ValidList<OrganizeUser> organizeUser) {
|
|
|
|
public void addMember(ValidList<OrganizeUser> organizeUser) {
|
|
|
|
// 组长添加组员,查询组长的组信息
|
|
|
|
if (CollUtil.isNotEmpty(organizeUser)) {
|
|
|
|
Long currentUserId = SecurityUtils.getCurrentUserId();
|
|
|
|
List<OrganizeUser> organizeUserAll = organizeUserRepository.findAll();
|
|
|
|
Set<Long> organizeUserIds = findOrganizeUserIds();
|
|
|
|
Set<Long> allUserIdList = organizeUserAll.stream().map(OrganizeUser::getUserId).collect(Collectors.toSet());
|
|
|
|
OrganizeUser organizeUserByUserId = organizeUserRepository.findByUserId(currentUserId);
|
|
|
|
|
|
|
|
if (organizeUserByUserId == null) {
|
|
|
|
OrganizeUser organizeUserByUserId = organizeUserRepository.findByUserId(SecurityUtils.getCurrentUserId());
|
|
|
|
CommonLog.error("用户还未分配到组内");
|
|
|
|
if (organizeUserByUserId == null) {
|
|
|
|
throw new BadRequestException("用户未分配到组,请创建小组");
|
|
|
|
CommonLog.error("用户还未分配到组内");
|
|
|
|
}
|
|
|
|
throw new BadRequestException("用户未分配到组,请创建小组");
|
|
|
|
Long organizeId = organizeUserByUserId.getOrganizeId();
|
|
|
|
|
|
|
|
Organize organize = organizeRepository.findById(organizeId).orElseGet(Organize::new);
|
|
|
|
|
|
|
|
// 添加组长下的组员信息
|
|
|
|
|
|
|
|
for (OrganizeUser addOrganizeUser : organizeUser) {
|
|
|
|
|
|
|
|
if (organizeUserIds.contains(addOrganizeUser.getUserId())) {
|
|
|
|
|
|
|
|
throw new BadRequestException("用户已经分配到组");
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
addOrganizeUser.setOrganizeId(organizeId);
|
|
|
|
Long organizeId = organizeUserByUserId.getOrganizeId();
|
|
|
|
addOrganizeUser.setIsLeader(false);
|
|
|
|
Organize organize = organizeRepository.findById(organizeId).orElseGet(Organize::new);
|
|
|
|
addOrganizeUser.setCreateBy(currentUserId);
|
|
|
|
// 添加组员信息
|
|
|
|
OrganizeUser saveOrganizeUser = organizeUserRepository.save(addOrganizeUser);
|
|
|
|
List<Long> userIdList = new ArrayList<>();
|
|
|
|
//添加分机号
|
|
|
|
for (OrganizeUser addOrganizeUser : organizeUser) {
|
|
|
|
if (organize.getCallMode() == 1) {
|
|
|
|
if (allUserIdList.contains(addOrganizeUser.getUserId())) throw new BadRequestException("用户已经分配到组!");
|
|
|
|
extensionNumberService.assignExtensionNum(saveOrganizeUser.getOrganizeId(), saveOrganizeUser.getUserId());
|
|
|
|
addOrganizeUser.setOrganizeId(organizeId);
|
|
|
|
|
|
|
|
addOrganizeUser.setIsLeader(false);
|
|
|
|
|
|
|
|
addOrganizeUser.setCreateBy(SecurityUtils.getCurrentUserId());
|
|
|
|
|
|
|
|
//添加分机号
|
|
|
|
|
|
|
|
if (organize.getCallMode() == 1) {
|
|
|
|
|
|
|
|
extensionNumberService.assignExtensionNum(organizeId, addOrganizeUser.getUserId());
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
userIdList.add(addOrganizeUser.getUserId());
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
organizeUserRepository.saveAll(organizeUser);
|
|
|
|
|
|
|
|
List<OrganizeUser> list = organizeUserRepository.findByUserIdIn(userIdList);
|
|
|
|
|
|
|
|
if (CollUtil.isEmpty(list) || list.size() != userIdList.size()) throw new BadRequestException("已有用户分配到组,请重新选择!");
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
@ -491,24 +497,25 @@ public class OrganizeServiceImpl implements OrganizeService {
|
|
|
|
Long taskId = organizeMemberDistributionDTO.getTaskId();
|
|
|
|
Long taskId = organizeMemberDistributionDTO.getTaskId();
|
|
|
|
Organize organize = organizeRepository.findById(organizeId).orElseGet(Organize::new);
|
|
|
|
Organize organize = organizeRepository.findById(organizeId).orElseGet(Organize::new);
|
|
|
|
// 查询所有的组员
|
|
|
|
// 查询所有的组员
|
|
|
|
List<OrganizeUser> userRepositoryAll = organizeUserRepository.findAll();
|
|
|
|
List<OrganizeUser> userRepositoryAll = organizeUserRepository.findByOrganizeId(organizeId);
|
|
|
|
List<Long> organizeUserIds = Lists.newArrayList();
|
|
|
|
List<Long> allUserIdList = userRepositoryAll.stream().map(OrganizeUser::getUserId).collect(Collectors.toList());
|
|
|
|
userRepositoryAll.forEach(c -> organizeUserIds.add(c.getUserId()));
|
|
|
|
|
|
|
|
|
|
|
|
// 新增小组成员-分机号
|
|
|
|
|
|
|
|
List<OrganizeUser> addOrganizeUserList = new ArrayList<>();
|
|
|
|
for (Long userId : userIds) {
|
|
|
|
for (Long userId : userIds) {
|
|
|
|
// 新增小组成员,已添加过的小组-用户关联的不在添加
|
|
|
|
if (!allUserIdList.contains(userId)) {
|
|
|
|
if (!organizeUserIds.contains(userId)) {
|
|
|
|
OrganizeUser organizeUser = new OrganizeUser(organizeId, userId, false, SecurityUtils.getCurrentUserId());
|
|
|
|
OrganizeUser organizeUser = new OrganizeUser();
|
|
|
|
addOrganizeUserList.add(organizeUser);
|
|
|
|
organizeUser.setUserId(userId);
|
|
|
|
|
|
|
|
organizeUser.setOrganizeId(organizeId);
|
|
|
|
|
|
|
|
organizeUser.setIsLeader(false);
|
|
|
|
|
|
|
|
organizeUser.setCreateBy(SecurityUtils.getCurrentUserId());
|
|
|
|
|
|
|
|
OrganizeUser saveOrganizeUser = organizeUserRepository.save(organizeUser);
|
|
|
|
|
|
|
|
//添加分机号
|
|
|
|
//添加分机号
|
|
|
|
if (organize.getCallMode() == 1) {
|
|
|
|
if (organize.getCallMode() == 1) extensionNumberService.assignExtensionNum(organizeId, userId);
|
|
|
|
extensionNumberService.assignExtensionNum(saveOrganizeUser.getOrganizeId(), saveOrganizeUser.getUserId());
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
if (CollUtil.isNotEmpty(addOrganizeUserList)){
|
|
|
|
|
|
|
|
List<OrganizeUser> organizeUsers = organizeUserRepository.saveAll(addOrganizeUserList);
|
|
|
|
|
|
|
|
List<Long> userIdList = organizeUsers.stream().map(OrganizeUser::getUserId).collect(Collectors.toList());
|
|
|
|
|
|
|
|
List<OrganizeUser> list = organizeUserRepository.findByUserIdIn(userIdList);
|
|
|
|
|
|
|
|
if (CollUtil.isEmpty(list) || list.size() != userIdList.size()) throw new BadRequestException("已有用户分配到组,请重新选择!");
|
|
|
|
|
|
|
|
}
|
|
|
|
//分配组员资源
|
|
|
|
//分配组员资源
|
|
|
|
ClueQueryCriteria clueQueryCriteria = new ClueQueryCriteria();
|
|
|
|
ClueQueryCriteria clueQueryCriteria = new ClueQueryCriteria();
|
|
|
|
clueQueryCriteria.setOrganizeId(organizeId);
|
|
|
|
clueQueryCriteria.setOrganizeId(organizeId);
|
|
|
@ -890,17 +897,6 @@ public class OrganizeServiceImpl implements OrganizeService {
|
|
|
|
return list;
|
|
|
|
return list;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
|
|
* 查询所有分配到组的用户
|
|
|
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
public Set<Long> findOrganizeUserIds() {
|
|
|
|
|
|
|
|
Set<Long> hashSet = new HashSet<>();
|
|
|
|
|
|
|
|
List<OrganizeUser> organizeUserAll = organizeUserRepository.findAll();
|
|
|
|
|
|
|
|
organizeUserAll.forEach(ou -> hashSet.add(ou.getUserId()));
|
|
|
|
|
|
|
|
return hashSet;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
/**
|
|
|
|
* 查询组成员列表用户信息
|
|
|
|
* 查询组成员列表用户信息
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|