|
|
|
@@ -28,6 +28,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
|
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
|
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
|
|
import org.apache.commons.lang3.StringUtils;
|
|
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
|
|
import org.springframework.context.annotation.Lazy;
|
|
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
@@ -135,8 +136,16 @@ public class TsUserServiceImpl extends ServiceImpl<TsUserDao, TsUser> implements
|
|
|
|
|
if(tsUser==null){
|
|
|
|
|
return Result.error("该用户不存在");
|
|
|
|
|
}
|
|
|
|
|
//此处更新user表中的岗位字段
|
|
|
|
|
List<String> positionIds = userPositionVO.getPositionIds();
|
|
|
|
|
positionIds.removeIf(s -> null==s||""==s);
|
|
|
|
|
String optionsIdStr = StringUtils.join(positionIds, ",");
|
|
|
|
|
if(StringUtils.isBlank(optionsIdStr)){
|
|
|
|
|
optionsIdStr = null;
|
|
|
|
|
}
|
|
|
|
|
tsUserDao.updateUserPositionIds(userPositionVO.getUserId(),optionsIdStr);
|
|
|
|
|
List<String> oldPositionIds=tsUserDao.selectPositionIds(userPositionVO.getUserId());
|
|
|
|
|
Map<String,List<String>> ids= ListUtil.difList(userPositionVO.getPositionIds(),oldPositionIds);
|
|
|
|
|
Map<String,List<String>> ids= ListUtil.difList(positionIds,oldPositionIds);
|
|
|
|
|
List<String> insertIds=ids.get("insert");
|
|
|
|
|
List<String> deleteIds=ids.get("delete");
|
|
|
|
|
if(insertIds!=null&&insertIds.size()>0){
|
|
|
|
@@ -163,7 +172,13 @@ public class TsUserServiceImpl extends ServiceImpl<TsUserDao, TsUser> implements
|
|
|
|
|
public ResponseMessage<Object> setPositionBatch(UserPositionBatchVO userPositionVO2) {
|
|
|
|
|
|
|
|
|
|
boolean flag=true;
|
|
|
|
|
|
|
|
|
|
//此处更新user表中的岗位字段
|
|
|
|
|
List<String> positionIds = userPositionVO2.getPositionIds();
|
|
|
|
|
positionIds.removeIf(s -> null==s||""==s);
|
|
|
|
|
String optionsIdStr = StringUtils.join(positionIds, ",");
|
|
|
|
|
if(StringUtils.isBlank(optionsIdStr)){
|
|
|
|
|
optionsIdStr = null;
|
|
|
|
|
}
|
|
|
|
|
for (String s:userPositionVO2.getUserId()) {
|
|
|
|
|
UserPositionVO userPositionVO=new UserPositionVO();
|
|
|
|
|
userPositionVO.setUserId(s);
|
|
|
|
@@ -171,9 +186,11 @@ public class TsUserServiceImpl extends ServiceImpl<TsUserDao, TsUser> implements
|
|
|
|
|
TsUser tsUser=tsUserDao.selectById(userPositionVO.getUserId());
|
|
|
|
|
if(tsUser==null){
|
|
|
|
|
flag=false;
|
|
|
|
|
continue;
|
|
|
|
|
}
|
|
|
|
|
tsUserDao.updateUserPositionIds(userPositionVO.getUserId(),optionsIdStr);
|
|
|
|
|
List<String> oldPositionIds=tsUserDao.selectPositionIds(userPositionVO.getUserId());
|
|
|
|
|
Map<String,List<String>> ids= ListUtil.difList(userPositionVO.getPositionIds(),oldPositionIds);
|
|
|
|
|
Map<String,List<String>> ids= ListUtil.difList(positionIds,oldPositionIds);
|
|
|
|
|
List<String> insertIds=ids.get("insert");
|
|
|
|
|
List<String> deleteIds=ids.get("delete");
|
|
|
|
|
if(insertIds!=null&&insertIds.size()>0){
|
|
|
|
@@ -210,6 +227,13 @@ public class TsUserServiceImpl extends ServiceImpl<TsUserDao, TsUser> implements
|
|
|
|
|
List<String> middle=new ArrayList<>();
|
|
|
|
|
middle.addAll(orgIds);
|
|
|
|
|
boolean Orgflag=true;
|
|
|
|
|
//此处更新user表中的岗位字段
|
|
|
|
|
List<String> positionIds = userPositionVO2.getPositionIds();
|
|
|
|
|
positionIds.removeIf(s -> null==s||""==s);
|
|
|
|
|
String optionsIdStr = StringUtils.join(positionIds, ",");
|
|
|
|
|
if(StringUtils.isBlank(optionsIdStr)){
|
|
|
|
|
optionsIdStr = null;
|
|
|
|
|
}
|
|
|
|
|
while (Orgflag){
|
|
|
|
|
QueryWrapper<TsInstitution> queryWrapper=new QueryWrapper<>();
|
|
|
|
|
queryWrapper.in("parent_id",middle);
|
|
|
|
@@ -234,25 +258,23 @@ public class TsUserServiceImpl extends ServiceImpl<TsUserDao, TsUser> implements
|
|
|
|
|
|
|
|
|
|
for (TsUser user : allUsers) {
|
|
|
|
|
String userId = user.getUserId();
|
|
|
|
|
UserPositionVO userPositionVO=new UserPositionVO();
|
|
|
|
|
userPositionVO.setUserId(userId);
|
|
|
|
|
userPositionVO.setPositionIds(userPositionVO2.getPositionIds());
|
|
|
|
|
TsUser tsUser=tsUserDao.selectById(userPositionVO.getUserId());
|
|
|
|
|
TsUser tsUser=tsUserDao.selectById(userId);
|
|
|
|
|
if(tsUser==null){
|
|
|
|
|
continue;
|
|
|
|
|
}
|
|
|
|
|
List<String> oldPositionIds=tsUserDao.selectPositionIds(userPositionVO.getUserId());
|
|
|
|
|
Map<String,List<String>> ids= ListUtil.difList(userPositionVO.getPositionIds(),oldPositionIds);
|
|
|
|
|
tsUserDao.updateUserPositionIds(userId,optionsIdStr);
|
|
|
|
|
List<String> oldPositionIds=tsUserDao.selectPositionIds(userId);
|
|
|
|
|
Map<String,List<String>> ids= ListUtil.difList(positionIds,oldPositionIds);
|
|
|
|
|
List<String> insertIds=ids.get("insert");
|
|
|
|
|
List<String> deleteIds=ids.get("delete");
|
|
|
|
|
if(insertIds!=null&&insertIds.size()>0){
|
|
|
|
|
for(String positionId:insertIds){
|
|
|
|
|
tsUserDao.addPosition(userPositionVO.getUserId(),positionId);
|
|
|
|
|
tsUserDao.addPosition(userId,positionId);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if(deleteIds!=null&&deleteIds.size()>0){
|
|
|
|
|
for(String positionId:deleteIds){
|
|
|
|
|
tsUserDao.delPosition(userPositionVO.getUserId(),positionId);
|
|
|
|
|
tsUserDao.delPosition(userId,positionId);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
@@ -459,42 +481,44 @@ public class TsUserServiceImpl extends ServiceImpl<TsUserDao, TsUser> implements
|
|
|
|
|
@Override
|
|
|
|
|
public IPage<TsUser> getAllUsers(TsUser tsUser) {
|
|
|
|
|
List<String> ids=new ArrayList<>();
|
|
|
|
|
QueryWrapper<TsInstitution> queryWrapper=new QueryWrapper<>();
|
|
|
|
|
queryWrapper.like("parent_id",tsUser.getInstitutionId());
|
|
|
|
|
List<TsInstitution> tsmiddle=tsInstitutionService.list(queryWrapper);
|
|
|
|
|
if(tsmiddle!=null && !tsmiddle.isEmpty()){
|
|
|
|
|
tsmiddle.forEach(tsInstitution -> {
|
|
|
|
|
ids.add(tsInstitution.getId());
|
|
|
|
|
});
|
|
|
|
|
ids.add(tsUser.getInstitutionId());
|
|
|
|
|
List<String> middle=new ArrayList<>();
|
|
|
|
|
middle.addAll(ids);
|
|
|
|
|
boolean flag=true;
|
|
|
|
|
while (flag){
|
|
|
|
|
QueryWrapper<TsInstitution> queryWrapper=new QueryWrapper<>();
|
|
|
|
|
queryWrapper.in("parent_id",middle);
|
|
|
|
|
List<TsInstitution> tsmiddle=tsInstitutionService.list(queryWrapper);
|
|
|
|
|
if (tsmiddle.size()>0){
|
|
|
|
|
tsmiddle.forEach(tsInstitution -> {
|
|
|
|
|
middle.add(tsInstitution.getId());
|
|
|
|
|
});
|
|
|
|
|
middle.removeAll(ids);
|
|
|
|
|
ids.addAll(middle);
|
|
|
|
|
}else {
|
|
|
|
|
tsmiddle.forEach(tsInstitution -> {
|
|
|
|
|
middle.add(tsInstitution.getId());
|
|
|
|
|
});
|
|
|
|
|
middle.removeAll(ids);
|
|
|
|
|
ids.addAll(middle);
|
|
|
|
|
flag=false;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
// List<String> middle=new ArrayList<>();
|
|
|
|
|
// middle.addAll(ids);
|
|
|
|
|
// boolean flag=true;
|
|
|
|
|
// while (flag){
|
|
|
|
|
// QueryWrapper<TsInstitution> queryWrapper=new QueryWrapper<>();
|
|
|
|
|
// queryWrapper.in("parent_id",middle);
|
|
|
|
|
// List<TsInstitution> tsmiddle=tsInstitutionService.list(queryWrapper);
|
|
|
|
|
// if (tsmiddle.size()>0){
|
|
|
|
|
// tsmiddle.forEach(tsInstitution -> {
|
|
|
|
|
// middle.add(tsInstitution.getId());
|
|
|
|
|
// });
|
|
|
|
|
// middle.removeAll(ids);
|
|
|
|
|
// ids.addAll(middle);
|
|
|
|
|
// }else {
|
|
|
|
|
// tsmiddle.forEach(tsInstitution -> {
|
|
|
|
|
// middle.add(tsInstitution.getId());
|
|
|
|
|
// });
|
|
|
|
|
// middle.removeAll(ids);
|
|
|
|
|
// ids.addAll(middle);
|
|
|
|
|
// flag=false;
|
|
|
|
|
// }
|
|
|
|
|
// }
|
|
|
|
|
// ids.removeIf(s -> null==s);
|
|
|
|
|
ids.removeIf(s -> null==s);
|
|
|
|
|
List<TsUser> tsUsers = tsUserDao.userUnderInstitution((tsUser.getCurrent() - 1) * tsUser.getSize(), tsUser.getSize(), tsUser, ids);
|
|
|
|
|
if(tsUsers!=null && !tsUsers.isEmpty()){
|
|
|
|
|
for (TsUser user:tsUsers) {
|
|
|
|
|
List<TsPosition> positionList = tsPositionService.getPositionDataByUserId(user.getUserId());
|
|
|
|
|
user.setPositions(positionList);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
Page<TsUser> tsUserPage = new Page<>();
|
|
|
|
|
tsUserPage.setCurrent(tsUser.getCurrent());
|
|
|
|
|
tsUserPage.setSize(tsUser.getSize());
|
|
|
|
|
tsUserPage.setRecords(tsUserDao.userUnderInstitution((tsUser.getCurrent()-1)*tsUser.getSize(),tsUser.getSize(),tsUser,ids));
|
|
|
|
|
tsUserPage.setRecords(tsUsers);
|
|
|
|
|
tsUserPage.setTotal(tsUserDao.userUnderInstitutionCount(tsUser,ids));
|
|
|
|
|
|
|
|
|
|
return tsUserPage;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|