fix:78288

This commit is contained in:
梁琦涛
2023-11-08 10:03:50 +08:00
parent e1125af142
commit 4403d2a767
5 changed files with 64 additions and 59 deletions
@@ -326,16 +326,6 @@ public interface ISysUserService extends IService<SysUser> {
List<SysUser> getUserListByDepIds(List<String> departIds);
/**
* 内部工作组模糊搜索获取满足条件的用户id集合,全为空的话就返回空
* @param realname 姓名
* @param username 工号
* @param userRoleName 角色
* @param userPostName 职位
* @return
*/
List<String> LawsWorkingGroupUserSearch(String realname, String username, String userRoleName, String userPostName);
/**
* 根据username"登陆账号"返回"用户名(工号)"
*/
@@ -625,49 +625,6 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
return userMapper.getUserListByDepIds(departIds);
}
/**
* 内部工作组模糊搜索获取满足条件的用户id集合
* @param userName 姓名
* @param userWorkNo 工号
* @param userRoleName 角色
* @param userPostName 职位
* @return 满足条件的用户id集合
*/
@Override
public List<String> LawsWorkingGroupUserSearch(String userName, String userWorkNo, String userRoleName, String userPostName) {
if (StringUtils.isAllBlank(userName, userWorkNo, userRoleName, userPostName)) {
return new ArrayList<>();
}
List<SysRole> roles = new ArrayList<>();
List<String> userIds = new ArrayList<>();
if (StringUtils.isNotBlank(userRoleName)) {
LambdaQueryWrapper<SysRole> wrapper = new LambdaQueryWrapper<>();
wrapper.like(SysRole::getRoleName, userRoleName);
roles = sysRoleMapper.selectList(wrapper);
if (roles.isEmpty()) {
return new ArrayList<>();
}
List<SysUserRole> sysUserRoles = sysUserRoleMapper.selectList(new LambdaQueryWrapper<SysUserRole>().in(SysUserRole::getRoleId, roles.stream().map(SysRole::getId).collect(Collectors.toList())));
if (sysUserRoles.isEmpty()) {
return new ArrayList<>();
}
userIds = sysUserRoles.stream().map(SysUserRole::getUserId).distinct().collect(Collectors.toList());
if (userIds.isEmpty()) {
return new ArrayList<>();
}
}
LambdaQueryWrapper<SysUser> wrapper = new LambdaQueryWrapper<>();
wrapper.like(StringUtils.isNotBlank(userName), SysUser::getRealname, userName)
.like(StringUtils.isNotBlank(userWorkNo), SysUser::getUsername, userWorkNo)
.in(!userIds.isEmpty() && StringUtils.isNotBlank(userRoleName), SysUser::getId, userIds);
// .like(StringUtils.isNotBlank(userPostName), SysUser::getPostName, userPostName); //目前没有岗位字段
List<SysUser> userRoles = list(wrapper);
return userRoles.stream().map(SysUser::getId).distinct().collect(Collectors.toList());
}
@Override
public String getNameNoByUsername(String userName) {
if (StringUtils.isBlank(userName)){
@@ -209,7 +209,7 @@ public class LawsWorkingGroupUserController extends JeroController<LawsWorkingGr
@AutoLog(value = "内部工作组人员关联表-导出")
@ApiOperation(value="内部工作组人员关联表-导出", notes="内部工作组人员关联表-导出")
@GetMapping(value = "/export")
public Result<?> template(@RequestParam(required = false) String workingGroupId, @RequestParam(required = false) String userName, @RequestParam(required = false) String userWorkNo, @RequestParam(required = false) String userRoleName, @RequestParam(required = false) String userPostName, HttpServletRequest request, HttpServletResponse response) {
public Result<?> template(@RequestParam(required = false) String workingGroupId, @RequestParam(required = false) String realname, @RequestParam(required = false) String username, @RequestParam(required = false) String userRoleName, @RequestParam(required = false) String userPostName, HttpServletRequest request, HttpServletResponse response) {
if (StringUtils.isBlank(workingGroupId)){
throw new JeroBootException(ResultCommon.PLEASE_SELECT_A_WORKGROUP_TO_EXPORT);
}
@@ -228,10 +228,10 @@ public class LawsWorkingGroupUserController extends JeroController<LawsWorkingGr
if (StringUtils.isNotBlank(selections)){
dos = this.queryDataByUserId(selections);
}
if (StringUtils.isBlank(selections) && !StringUtils.isAllBlank(userName, userWorkNo, userRoleName, userPostName)){
dos = this.queryDataByConditions(userName, userWorkNo, userRoleName, userPostName, workingGroupId);
if (StringUtils.isBlank(selections) && !StringUtils.isAllBlank(realname, username, userRoleName, userPostName)){
dos = this.queryDataByConditions(realname, username, userRoleName, userPostName, workingGroupId);
}
if (StringUtils.isBlank(selections) && StringUtils.isAllBlank(userName, userWorkNo, userRoleName, userPostName)){
if (StringUtils.isBlank(selections) && StringUtils.isAllBlank(realname, username, userRoleName, userPostName)){
dos = this.queryDataByTree(workingGroupId);
}
@@ -264,7 +264,7 @@ public class LawsWorkingGroupUserController extends JeroController<LawsWorkingGr
return lawsWorkingGroupUserService.listByIds(Arrays.asList(userId.split(",")));
}
private List<LawsWorkingGroupUser> queryDataByConditions(String userName, String userWorkNo, String userRoleName, String userPostName, String workingGroupId) {
List<String> ids = sysUserService.LawsWorkingGroupUserSearch(userName, userWorkNo, userRoleName, userPostName);
List<String> ids = lawsWorkingGroupUserService.lawsWorkingGroupUserSearch(userName, userWorkNo, userRoleName, userPostName);
List<LawsWorkingGroupUser> list = new ArrayList<>();
if (!ids.isEmpty()) {
LambdaQueryWrapper<LawsWorkingGroupUser> wrapper = new LambdaQueryWrapper<>();
@@ -79,4 +79,14 @@ public interface ILawsWorkingGroupUserService extends IService<LawsWorkingGroupU
* 为人员赋值姓名、工号、角色、岗位
*/
public void userAssignment(List<LawsWorkingGroupUser> list);
/**
* 内部工作组模糊搜索获取满足条件的用户id集合,全为空的话就返回空
* @param realname 姓名
* @param username 工号
* @param userRoleName 角色
* @param userPostName 职位
* @return
*/
List<String> lawsWorkingGroupUserSearch(String realname, String username, String userRoleName, String userPostName);
}
@@ -19,6 +19,7 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import com.jero.common.exception.JeroBootException;
import java.util.ArrayList;
import java.util.List;
import java.util.Date;
import java.util.Map;
@@ -27,6 +28,8 @@ import java.util.stream.Collectors;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.jero.common.system.query.QueryGenerator;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -49,6 +52,7 @@ public class LawsWorkingGroupUserServiceImpl extends ServiceImpl<LawsWorkingGrou
@Autowired
private ISysUserRoleService sysUserRoleService;
/**
* 分页查询, TODO 改为一个联表查询不行吗??
*/
@@ -62,7 +66,7 @@ public class LawsWorkingGroupUserServiceImpl extends ServiceImpl<LawsWorkingGrou
String userPostName = lawsWorkingGroupUser.getUserPostName();
String workingGroupId = lawsWorkingGroupUser.getWorkingGroupId();
if (!StringUtils.isAllBlank(realname, userName, userRoleName, userPostName)){
List<String> ids = sysUserService.LawsWorkingGroupUserSearch(realname, userName, userRoleName, userPostName);
List<String> ids = lawsWorkingGroupUserSearch(realname, userName, userRoleName, userPostName);
if (ids.isEmpty()){
return new Page<>();
}
@@ -77,6 +81,50 @@ public class LawsWorkingGroupUserServiceImpl extends ServiceImpl<LawsWorkingGrou
return page(page, queryWrapper);
}
/**
* 内部工作组模糊搜索获取满足条件的用户id集合
* @param userName 姓名
* @param userWorkNo 工号
* @param userRoleName 角色
* @param userPostName 职位
* @return 满足条件的用户id集合
*/
@Override
public List<String> lawsWorkingGroupUserSearch(String userName, String userWorkNo, String userRoleName, String userPostName) {
if (StringUtils.isAllBlank(userName, userWorkNo, userRoleName, userPostName)) {
return new ArrayList<>();
}
List<SysRole> roles;
List<String> userIds = new ArrayList<>();
userIds.add("-1");
if (StringUtils.isNotBlank(userRoleName)) {
LambdaQueryWrapper<SysRole> wrapper = new LambdaQueryWrapper<>();
wrapper.like(SysRole::getRoleName, userRoleName);
roles = sysRoleService.list(wrapper);
if (roles.isEmpty()) {
return new ArrayList<>();
}
List<SysUserRole> sysUserRoles = sysUserRoleService.list(new LambdaQueryWrapper<SysUserRole>().in(SysUserRole::getRoleId, roles.stream().map(SysRole::getId).collect(Collectors.toList())));
if (sysUserRoles.isEmpty()) {
return new ArrayList<>();
}
userIds = sysUserRoles.stream().map(SysUserRole::getUserId).distinct().collect(Collectors.toList());
if (userIds.isEmpty()) {
return new ArrayList<>();
}
}
LambdaQueryWrapper<SysUser> wrapper = new LambdaQueryWrapper<>();
wrapper.like(StringUtils.isNotBlank(userName), SysUser::getRealname, userName)
.like(StringUtils.isNotBlank(userWorkNo), SysUser::getUsername, userWorkNo)
.in(!userIds.isEmpty() && StringUtils.isNotBlank(userRoleName), SysUser::getId, userIds)
.like(StringUtils.isNotBlank(userPostName), SysUser::getPost, userPostName);
List<SysUser> userRoles = sysUserService.list(wrapper);
return userRoles.stream().map(SysUser::getId).distinct().collect(Collectors.toList());
}
/**
* 列表查询
*/