|
@@ -2,6 +2,7 @@ package com.qunzhixinxi.hnqz.admin.service.impl;
|
|
|
|
|
|
import cn.hutool.core.collection.CollectionUtil;
|
|
|
import cn.hutool.core.map.MapUtil;
|
|
|
+import cn.hutool.core.util.ArrayUtil;
|
|
|
import cn.hutool.core.util.StrUtil;
|
|
|
import cn.hutool.json.JSONUtil;
|
|
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
@@ -15,7 +16,6 @@ import com.qunzhixinxi.hnqz.admin.mapper.SysUserMapper;
|
|
|
import com.qunzhixinxi.hnqz.admin.mapper.SysUserRoleMapper;
|
|
|
import com.qunzhixinxi.hnqz.admin.mapper.WmTeamMapper;
|
|
|
import com.qunzhixinxi.hnqz.admin.service.WmTeamService;
|
|
|
-import com.qunzhixinxi.hnqz.common.security.service.HnqzUser;
|
|
|
import com.qunzhixinxi.hnqz.common.security.util.SecurityUtils;
|
|
|
import lombok.AllArgsConstructor;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
@@ -50,11 +50,10 @@ public class WmTeamServiceImpl extends ServiceImpl<WmTeamMapper, WmTeam> impleme
|
|
|
/**
|
|
|
* 查询可选择的人员
|
|
|
*
|
|
|
- *
|
|
|
* @param deptId
|
|
|
* @param teamId
|
|
|
* @param realNameOrPhone
|
|
|
- * @return
|
|
|
+ * @return
|
|
|
*/
|
|
|
@Override
|
|
|
public Map<String, Object> listSelectableUser(Integer deptId, Integer teamId, String realNameOrPhone) {
|
|
@@ -177,8 +176,16 @@ public class WmTeamServiceImpl extends ServiceImpl<WmTeamMapper, WmTeam> impleme
|
|
|
WmTeam queryTeam = this.getById(teamId);
|
|
|
|
|
|
// 业务值校验
|
|
|
+ List<WmTeamExcelModel> repeatUserList = new ArrayList<>();
|
|
|
for (Map.Entry<String, List<WmTeamExcelModel>> entry : excelMap.entrySet()) {
|
|
|
- checkoutUserInfo(entry.getValue(), queryTeam, errorMap, currentList);
|
|
|
+ checkoutUserInfo(entry.getValue(), queryTeam, errorMap, currentList, repeatUserList);
|
|
|
+ }
|
|
|
+ // 校验是否存在重复成员
|
|
|
+ if (CollectionUtil.isNotEmpty(repeatUserList)) {
|
|
|
+ List<String> nameList = repeatUserList.stream().map(WmTeamExcelModel::getRealname).collect(Collectors.toList());
|
|
|
+ List<String> excelIdList = repeatUserList.stream().map(WmTeamExcelModel::getId).collect(Collectors.toList());
|
|
|
+ log.error("用户在该团队已存在:{}", String.join(",", nameList));
|
|
|
+ errorMap(errorMap, String.format("用户在该团队已存在'%s'", String.join(",", nameList)), String.join(",", excelIdList));
|
|
|
}
|
|
|
|
|
|
// 上传结果
|
|
@@ -186,9 +193,11 @@ public class WmTeamServiceImpl extends ServiceImpl<WmTeamMapper, WmTeam> impleme
|
|
|
String[] userIdArr = currentList.stream()
|
|
|
.map(sysUser -> String.valueOf(sysUser.getUserId()))
|
|
|
.toArray(String[]::new);
|
|
|
+ // 增量添加成员
|
|
|
+ String[] members = ArrayUtil.addAll(userIdArr, ArrayUtil.defaultIfEmpty(queryTeam.getMember(), new String[0]));
|
|
|
WmTeam team = new WmTeam();
|
|
|
team.setId(teamId);
|
|
|
- team.setMember(userIdArr);
|
|
|
+ team.setMember(members);
|
|
|
team.setUpdateTime(LocalDateTime.now());
|
|
|
team.setUpdateUser(SecurityUtils.getUser().getId());
|
|
|
this.updateById(team);
|
|
@@ -200,33 +209,35 @@ public class WmTeamServiceImpl extends ServiceImpl<WmTeamMapper, WmTeam> impleme
|
|
|
/**
|
|
|
* 校验用户信息
|
|
|
*
|
|
|
- * @param userList excel用户数据
|
|
|
- * @param team team对象
|
|
|
- * @param errorMap 错误信息map
|
|
|
+ * @param excelList excel用户数据
|
|
|
+ * @param team team对象
|
|
|
+ * @param errorMap 错误信息map
|
|
|
* @param currentList 正确数据list
|
|
|
+ * @param repeatUserList 重复成员用户list
|
|
|
*/
|
|
|
- private void checkoutUserInfo(List<WmTeamExcelModel> userList, WmTeam team, Map<String, String> errorMap, List<SysUser> currentList) {
|
|
|
- log.info("开始校验数据:{}", userList);
|
|
|
+ private void checkoutUserInfo(List<WmTeamExcelModel> excelList, WmTeam team, Map<String, String> errorMap,
|
|
|
+ List<SysUser> currentList, List<WmTeamExcelModel> repeatUserList) {
|
|
|
+ log.info("开始校验数据:{}", excelList);
|
|
|
|
|
|
- if (userList.size() != 1){
|
|
|
+ if (excelList.size() != 1) {
|
|
|
log.error("表中手机号重复");
|
|
|
- Set<String> idSet = userList.stream().map(WmTeamExcelModel::getId).collect(Collectors.toSet());
|
|
|
+ Set<String> idSet = excelList.stream().map(WmTeamExcelModel::getId).collect(Collectors.toSet());
|
|
|
errorMap(errorMap, "表中手机号重复", JSONUtil.toJsonStr(idSet));
|
|
|
}
|
|
|
|
|
|
- WmTeamExcelModel user = userList.get(0);
|
|
|
+ WmTeamExcelModel excel = excelList.get(0);
|
|
|
|
|
|
SysUser insertUser = new SysUser();
|
|
|
// 校验用户是否存在
|
|
|
List<SysUser> sysUsers = sysUserMapper.selectList(Wrappers.<SysUser>lambdaQuery()
|
|
|
.eq(SysUser::getDeptId, team.getDeptId())
|
|
|
- .eq(SysUser::getRealname, user.getRealname())
|
|
|
- .eq(SysUser::getUsername, user.getUsername())
|
|
|
+ .eq(SysUser::getRealname, excel.getRealname())
|
|
|
+ .eq(SysUser::getUsername, excel.getUsername())
|
|
|
.eq(SysUser::getDelFlag, DelEnum.NOT_DEL.val()));
|
|
|
SysUser sysUser = null;
|
|
|
if (CollectionUtil.isEmpty(sysUsers)) {
|
|
|
log.error("用户在当前企业不存在");
|
|
|
- errorMap(errorMap, "用户在当前企业不存在", user.getId());
|
|
|
+ errorMap(errorMap, "用户在当前企业不存在", excel.getId());
|
|
|
} else {
|
|
|
sysUser = sysUsers.get(0);
|
|
|
insertUser.setUserId(sysUser.getUserId());
|
|
@@ -242,16 +253,23 @@ public class WmTeamServiceImpl extends ServiceImpl<WmTeamMapper, WmTeam> impleme
|
|
|
List<Integer> roleList = sysUserRoles.stream().map(SysUserRole::getRoleId).collect(Collectors.toList());
|
|
|
if (!roleList.contains(6)) {
|
|
|
log.error("用户角色不正确");
|
|
|
- errorMap(errorMap, "用户角色不正确", user.getId());
|
|
|
+ errorMap(errorMap, "用户角色不正确", excel.getId());
|
|
|
}
|
|
|
} else {
|
|
|
log.error("用户角色异常");
|
|
|
- errorMap(errorMap, "用户角色异常", user.getId());
|
|
|
+ errorMap(errorMap, "用户角色异常", excel.getId());
|
|
|
}
|
|
|
}
|
|
|
|
|
|
// 记录正确的结果
|
|
|
currentList.add(insertUser);
|
|
|
+
|
|
|
+ // 校验成员是否在当前团队中已存在
|
|
|
+ if (ArrayUtil.isNotEmpty(team.getMember())) {
|
|
|
+ if (ArrayUtil.contains(team.getMember(), String.valueOf(insertUser.getUserId()))) {
|
|
|
+ repeatUserList.add(excel);
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
/**
|