|
|
|
@ -68,13 +68,13 @@ public class OrganizeServiceImpl implements OrganizeService {
|
|
|
|
|
Long saveUserId = null;
|
|
|
|
|
Set<Long> organizeUserIds = findOrganizeUserIds();
|
|
|
|
|
for (Organize organize : organizeList) {
|
|
|
|
|
if (organizeUserIds.contains(organize.getUserId())){
|
|
|
|
|
if (organizeUserIds.contains(organize.getUserId())) {
|
|
|
|
|
throw new BadRequestException("用户已经分配到组");
|
|
|
|
|
}
|
|
|
|
|
organize.setCreateBy(SecurityUtils.getCurrentUserId());
|
|
|
|
|
Organize saveOrganize = organizeRepository.save(organize);
|
|
|
|
|
//添加分机号
|
|
|
|
|
if (organize.getCallMode() == 1){
|
|
|
|
|
if (organize.getCallMode() == 1) {
|
|
|
|
|
extensionNumberService.assignExtensionNum(saveOrganize.getId(), organize.getUserId());
|
|
|
|
|
}
|
|
|
|
|
// 添加小组成员信息
|
|
|
|
@ -100,18 +100,18 @@ public class OrganizeServiceImpl implements OrganizeService {
|
|
|
|
|
Organize updateOrganize = organizeRepository.findById(organize.getId()).orElseGet(Organize::new);
|
|
|
|
|
OrganizeUser organizeUser = organizeUserRepository.findByOrganizeIdAndIsLeader(organize.getId(), true);
|
|
|
|
|
// 判断组长是否分配过资源
|
|
|
|
|
if (organizeUser.getUserId() != organize.getUserId()){
|
|
|
|
|
if (organizeUser.getUserId() != organize.getUserId()) {
|
|
|
|
|
Boolean flag = sourceClueClient.judgeMember(organizeUser.getUserId()).getBody();
|
|
|
|
|
if (flag) {
|
|
|
|
|
throw new BadRequestException("组长用户中有分配资源,组长替换失败");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
//添加(删除)分机号
|
|
|
|
|
if (organize.getCallMode() != null && organize.getCallMode() != updateOrganize.getCallMode()){
|
|
|
|
|
if (organize.getCallMode() != null && organize.getCallMode() != updateOrganize.getCallMode()) {
|
|
|
|
|
List<OrganizeUser> organizeList = organizeUserRepository.findByOrganizeId(organize.getId());
|
|
|
|
|
if (organize.getCallMode() == 1) {
|
|
|
|
|
organizeList.forEach(oe -> extensionNumberService.assignExtensionNum(oe.getOrganizeId(), oe.getUserId()));
|
|
|
|
|
}else if (updateOrganize.getCallMode() == 1){
|
|
|
|
|
} else if (updateOrganize.getCallMode() == 1) {
|
|
|
|
|
extensionNumberService.unbindExtension(updateOrganize.getId());
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
@ -156,14 +156,14 @@ public class OrganizeServiceImpl implements OrganizeService {
|
|
|
|
|
Long currentUserId = SecurityUtils.getCurrentUserId();
|
|
|
|
|
Set<Long> organizeUserIds = findOrganizeUserIds();
|
|
|
|
|
OrganizeUser organizeUserByUserId = organizeUserRepository.findByUserId(currentUserId);
|
|
|
|
|
if (organizeUserByUserId == null){
|
|
|
|
|
if (organizeUserByUserId == null) {
|
|
|
|
|
throw new BadRequestException("用户未分配到组,请创建小组");
|
|
|
|
|
}
|
|
|
|
|
Long organizeId = organizeUserByUserId.getOrganizeId();
|
|
|
|
|
Organize organize = organizeRepository.findById(organizeId).orElseGet(Organize::new);
|
|
|
|
|
// 添加组长下的组员信息
|
|
|
|
|
for (OrganizeUser addOrganizeUser : organizeUser) {
|
|
|
|
|
if (organizeUserIds.contains(addOrganizeUser.getUserId())){
|
|
|
|
|
if (organizeUserIds.contains(addOrganizeUser.getUserId())) {
|
|
|
|
|
throw new BadRequestException("用户已经分配到组");
|
|
|
|
|
}
|
|
|
|
|
addOrganizeUser.setOrganizeId(organizeId);
|
|
|
|
@ -171,7 +171,7 @@ public class OrganizeServiceImpl implements OrganizeService {
|
|
|
|
|
addOrganizeUser.setCreateBy(currentUserId);
|
|
|
|
|
OrganizeUser saveOrganizeUser = organizeUserRepository.save(addOrganizeUser);
|
|
|
|
|
//添加分机号
|
|
|
|
|
if (organize.getCallMode() == 1){
|
|
|
|
|
if (organize.getCallMode() == 1) {
|
|
|
|
|
extensionNumberService.assignExtensionNum(saveOrganizeUser.getOrganizeId(), saveOrganizeUser.getUserId());
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
@ -264,7 +264,7 @@ public class OrganizeServiceImpl implements OrganizeService {
|
|
|
|
|
List<Long> clueList = sourceClueClient.queryList(organizeSaveDTO.getTaskId()).getBody();
|
|
|
|
|
// 任务状态更新,创建标签
|
|
|
|
|
Task task = taskRepository.findById(organizeSaveDTO.getTaskId()).orElseGet(Task::new);
|
|
|
|
|
if (task.getIsDistribution() == 1){
|
|
|
|
|
if (task.getIsDistribution() == 1) {
|
|
|
|
|
throw new BadRequestException("任务已分配,刷新后重试");
|
|
|
|
|
}
|
|
|
|
|
List<String> labelNameList = organizeSaveDTO.getLabelNameList();
|
|
|
|
@ -283,8 +283,8 @@ public class OrganizeServiceImpl implements OrganizeService {
|
|
|
|
|
distributeDTO.setWeights(weights);
|
|
|
|
|
distributeDTO.setIsWeight(true);
|
|
|
|
|
CommonResponse<List<DistributeResponseDTO>> commonResponse = assignDataClient.dataDistribution(distributeDTO);
|
|
|
|
|
if (commonResponse.getStatus() == 1){
|
|
|
|
|
throw new BadRequestException( commonResponse.getMsg());
|
|
|
|
|
if (commonResponse.getStatus() == 1) {
|
|
|
|
|
throw new BadRequestException(commonResponse.getMsg());
|
|
|
|
|
}
|
|
|
|
|
data = commonResponse.getData();
|
|
|
|
|
// 线索更新
|
|
|
|
@ -298,7 +298,7 @@ public class OrganizeServiceImpl implements OrganizeService {
|
|
|
|
|
sourceClueClient.batchUpdateOrganize(distributeResponseDTO);
|
|
|
|
|
// 添加小组-任务关联信息
|
|
|
|
|
TaskOrganize isFlagList = taskOrganizeRepository.findByOrganizeIdAndTaskId(distributeResponseDTO.getDeptId(), task.getId());
|
|
|
|
|
if (isFlagList != null){
|
|
|
|
|
if (isFlagList != null) {
|
|
|
|
|
throw new BadRequestException("一个任务内分配组不能重复");
|
|
|
|
|
}
|
|
|
|
|
int organizeTaskNum = distributeResponseDTO.getResponseList().size();
|
|
|
|
@ -358,11 +358,11 @@ public class OrganizeServiceImpl implements OrganizeService {
|
|
|
|
|
List<Long> userIds = new ArrayList<>();
|
|
|
|
|
for (OrganizeUser organizeUser : organizeUserList) {
|
|
|
|
|
// 组长单独设置字段
|
|
|
|
|
if (organizeUser.getIsLeader()){
|
|
|
|
|
if (organizeUser.getIsLeader()) {
|
|
|
|
|
UserDto userDto = userService.findById(organizeUser.getUserId());
|
|
|
|
|
organizeDto.setUserId(userDto.getId());
|
|
|
|
|
organizeDto.setUserNickName(userDto.getNickName());
|
|
|
|
|
}else {
|
|
|
|
|
} else {
|
|
|
|
|
userIds.add(organizeUser.getUserId());
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
@ -467,7 +467,7 @@ public class OrganizeServiceImpl implements OrganizeService {
|
|
|
|
|
organizeUser.setCreateBy(SecurityUtils.getCurrentUserId());
|
|
|
|
|
OrganizeUser saveOrganizeUser = organizeUserRepository.save(organizeUser);
|
|
|
|
|
//添加分机号
|
|
|
|
|
if (organize.getCallMode() == 1){
|
|
|
|
|
if (organize.getCallMode() == 1) {
|
|
|
|
|
extensionNumberService.assignExtensionNum(saveOrganizeUser.getOrganizeId(), saveOrganizeUser.getUserId());
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
@ -556,7 +556,7 @@ public class OrganizeServiceImpl implements OrganizeService {
|
|
|
|
|
//判断redis中是否有值,线索列表时查询任务名称,任务id作为key,任务名称为val,任务名称不能修改
|
|
|
|
|
if (clueDto.getIsRedis() != null && clueDto.getIsRedis() == 1) {
|
|
|
|
|
String taskNameKey = "task:name:" + taskDetails.getId();
|
|
|
|
|
if (!redisUtils.hasKey(taskNameKey)){
|
|
|
|
|
if (!redisUtils.hasKey(taskNameKey)) {
|
|
|
|
|
List<String> list = new ArrayList<>();
|
|
|
|
|
list.add(taskDetails.getTaskName());
|
|
|
|
|
map.put("taskName", list);
|
|
|
|
@ -568,7 +568,7 @@ public class OrganizeServiceImpl implements OrganizeService {
|
|
|
|
|
}
|
|
|
|
|
return map;
|
|
|
|
|
}
|
|
|
|
|
if (CollUtil.isNotEmpty(taskOrganizeDtos)){
|
|
|
|
|
if (CollUtil.isNotEmpty(taskOrganizeDtos)) {
|
|
|
|
|
TaskOrganizeDto taskOrganizeDto = taskOrganizeDtos.get(0);
|
|
|
|
|
map.put("organizeLabel", taskOrganizeDto.getOrganizeLabel());
|
|
|
|
|
}
|
|
|
|
@ -589,6 +589,7 @@ public class OrganizeServiceImpl implements OrganizeService {
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 查询呼叫方式和分机号
|
|
|
|
|
*
|
|
|
|
|
* @return
|
|
|
|
|
*/
|
|
|
|
|
@Override
|
|
|
|
@ -598,24 +599,24 @@ public class OrganizeServiceImpl implements OrganizeService {
|
|
|
|
|
Long userId = SecurityUtils.getCurrentUserId();
|
|
|
|
|
User user = userRepository.findById(userId).orElseGet(User::new);
|
|
|
|
|
OrganizeUser organizeUser = organizeUserRepository.findByUserId(userId);
|
|
|
|
|
if (organizeUser != null){
|
|
|
|
|
if (organizeUser != null) {
|
|
|
|
|
Organize organize = organizeRepository.findById(organizeUser.getOrganizeId()).orElseGet(Organize::new);
|
|
|
|
|
if (organize.getCallMode() == 1){
|
|
|
|
|
if (organize.getCallMode() == 1) {
|
|
|
|
|
// (点呼)获取分机号
|
|
|
|
|
tel = String.valueOf(extensionNumberService.getExtension(userId).getNumber());
|
|
|
|
|
}else if (organize.getCallMode() == 2){
|
|
|
|
|
} else if (organize.getCallMode() == 2) {
|
|
|
|
|
Company company = companyRepository.findById(user.getCompanyId()).orElseGet(Company::new);
|
|
|
|
|
tel = company.getTelX();
|
|
|
|
|
}
|
|
|
|
|
callModeMap.put("callMode",organize.getCallMode());
|
|
|
|
|
callModeMap.put("callNum",tel);
|
|
|
|
|
callModeMap.put("callMode", organize.getCallMode());
|
|
|
|
|
callModeMap.put("callNum", tel);
|
|
|
|
|
return callModeMap;
|
|
|
|
|
}
|
|
|
|
|
return callModeMap;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public Map<String, Object> selectAllOrganizeUser() {
|
|
|
|
|
public Map<String, Object> selectAllOrganizeUser() {
|
|
|
|
|
int i = 1;
|
|
|
|
|
Set<Organize> organizeAll = organizeRepository.findByCreateBy(SecurityUtils.getCurrentUserId());
|
|
|
|
|
Map<String, Object> returnMap = new HashMap<>();
|
|
|
|
@ -625,11 +626,11 @@ public class OrganizeServiceImpl implements OrganizeService {
|
|
|
|
|
List<Map<String, Object>> map = packageUser(userIdList);
|
|
|
|
|
boolean flag = returnMap.containsKey(organize.getOrganizeName());
|
|
|
|
|
String key = organize.getOrganizeName();
|
|
|
|
|
if (flag){
|
|
|
|
|
if (flag) {
|
|
|
|
|
key = organize.getOrganizeName() + i;
|
|
|
|
|
i++;
|
|
|
|
|
}
|
|
|
|
|
returnMap.put(key,map);
|
|
|
|
|
returnMap.put(key, map);
|
|
|
|
|
organizeUserAll.addAll(userIdList);
|
|
|
|
|
}
|
|
|
|
|
// // 1、获取当前用户的公司下所有用户ID
|
|
|
|
@ -641,6 +642,11 @@ public class OrganizeServiceImpl implements OrganizeService {
|
|
|
|
|
return returnMap;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public Organize getOrganizeByUserId(Long userId) {
|
|
|
|
|
return organizeRepository.findOrganize(userId);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 小组id查询组员用户信息
|
|
|
|
|
*/
|
|
|
|
@ -680,9 +686,10 @@ public class OrganizeServiceImpl implements OrganizeService {
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 查询所有分配到组的用户
|
|
|
|
|
*
|
|
|
|
|
* @return
|
|
|
|
|
*/
|
|
|
|
|
public Set<Long> findOrganizeUserIds(){
|
|
|
|
|
public Set<Long> findOrganizeUserIds() {
|
|
|
|
|
Set<Long> hashSet = new HashSet<>();
|
|
|
|
|
List<OrganizeUser> organizeUserAll = organizeUserRepository.findAll();
|
|
|
|
|
organizeUserAll.forEach(ou -> hashSet.add(ou.getUserId()));
|
|
|
|
@ -691,16 +698,17 @@ public class OrganizeServiceImpl implements OrganizeService {
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 封装返回用户id
|
|
|
|
|
*
|
|
|
|
|
* @param userIdList
|
|
|
|
|
* @return
|
|
|
|
|
*/
|
|
|
|
|
public List<Map<String, Object>> packageUser(Set<Long> userIdList){
|
|
|
|
|
public List<Map<String, Object>> packageUser(Set<Long> userIdList) {
|
|
|
|
|
List<User> userList = userRepository.findAllById(userIdList);
|
|
|
|
|
List<Map<String, Object>> arrayList = new ArrayList<>();
|
|
|
|
|
for (User user : userList) {
|
|
|
|
|
Map<String, Object> map = new HashMap<>();
|
|
|
|
|
map.put("id",user.getId());
|
|
|
|
|
map.put("label",user.getNickName());
|
|
|
|
|
map.put("id", user.getId());
|
|
|
|
|
map.put("label", user.getNickName());
|
|
|
|
|
arrayList.add(map);
|
|
|
|
|
}
|
|
|
|
|
return arrayList;
|
|
|
|
|