!129 feat(sysuser): 新增按角色查询用户接口并使用优化版JOIN查询
* feat(sysuser): 新增按角色查询用户接口并使用优化版JOIN查询 * fix(bgpartymatter): 移除后端自动生成业务序号逻辑
This commit is contained in:
-16
@@ -49,7 +49,6 @@ import org.springframework.web.multipart.MultipartFile;
|
||||
import org.springframework.web.multipart.MultipartHttpServletRequest;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.stream.Collectors;
|
||||
@@ -155,7 +154,6 @@ public class BgPartymatterController extends JeecgController<BgPartymatter, IBgP
|
||||
bgPartymatter.setBpmStatus("1");
|
||||
}
|
||||
fillDefaultMeetingTypeForCreate(bgPartymatter);
|
||||
fillGeneratedNumber(bgPartymatter);
|
||||
bgPartymatterService.save(bgPartymatter);
|
||||
return Result.OK("添加成功!");
|
||||
}
|
||||
@@ -172,7 +170,6 @@ public class BgPartymatterController extends JeecgController<BgPartymatter, IBgP
|
||||
@RequestMapping(value = "/edit", method = {RequestMethod.PUT, RequestMethod.POST})
|
||||
public Result<String> edit(@RequestBody BgPartymatter bgPartymatter) {
|
||||
fillMeetingTypeForUpdate(bgPartymatter);
|
||||
fillGeneratedNumber(bgPartymatter);
|
||||
bgPartymatterService.updateById(bgPartymatter);
|
||||
return Result.OK("编辑成功!");
|
||||
}
|
||||
@@ -195,7 +192,6 @@ public class BgPartymatterController extends JeecgController<BgPartymatter, IBgP
|
||||
}
|
||||
String varField = oConvertUtils.isEmpty(dto.getVarField()) ? "json_data" : dto.getVarField();
|
||||
fillMeetingTypeForUpdate(dto.getFormData());
|
||||
fillGeneratedNumber(dto.getFormData());
|
||||
bgPartymatterService.saveBpmFormAndSyncVariable(dto.getFormData(), dto.getProcessInstanceId(), varField,
|
||||
JSONObject.toJSONString(dto.getFormData()));
|
||||
return Result.OK("保存成功");
|
||||
@@ -227,18 +223,6 @@ public class BgPartymatterController extends JeecgController<BgPartymatter, IBgP
|
||||
bgPartymatter.setMeetingType(BgPartymatterConstant.MeetingType.PARTY);
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据会议时间和议题序号生成业务序号,规则:yyyyMMdd-议题序号。
|
||||
* 前端会即时回显,后端保存前再次生成,保证接口调用和流程保存数据一致。
|
||||
*/
|
||||
private void fillGeneratedNumber(BgPartymatter bgPartymatter) {
|
||||
if (bgPartymatter == null || bgPartymatter.getMatterTime() == null || bgPartymatter.getItemNumber() == null) {
|
||||
return;
|
||||
}
|
||||
String dateText = new SimpleDateFormat("yyyyMMdd").format(bgPartymatter.getMatterTime());
|
||||
bgPartymatter.setNumber(dateText + "-" + bgPartymatter.getItemNumber());
|
||||
}
|
||||
|
||||
/**
|
||||
* 通过id删除
|
||||
*
|
||||
|
||||
+25
@@ -538,6 +538,31 @@ public class SysUserController {
|
||||
return Result.OK(pageList);
|
||||
}
|
||||
|
||||
/**
|
||||
* 用户选择组件 专用 根据角色ID查询用户列表
|
||||
* @param pageNo
|
||||
* @param pageSize
|
||||
* @param roleId
|
||||
* @return
|
||||
*/
|
||||
@RequestMapping(value = "/queryUserByRoleId", method = RequestMethod.GET)
|
||||
@Operation(summary = "根据角色ID查询用户列表", description = "根据输入的roleId返回该角色下的所有用户(分页)")
|
||||
public Result<IPage<SysUser>> queryUserByRoleId(
|
||||
@RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
|
||||
@RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
|
||||
@RequestParam(name = "departId", required = false) String departId,
|
||||
@RequestParam(name = "roleId", required = false) String roleId,
|
||||
@RequestParam(name="realname",required=false) String realname,
|
||||
@RequestParam(name="username",required=false) String username,
|
||||
@RequestParam(name="isMultiTranslate",required=false) String isMultiTranslate,
|
||||
@RequestParam(name="id",required = false) String id,
|
||||
@RequestParam(name="searchSecurityLevel",required = false) Integer searchSecurityLevel
|
||||
) {
|
||||
Page<SysUser> page = new Page<>(pageNo, pageSize);
|
||||
IPage<SysUser> pageList = sysUserService.getUserByRoleIdOptimized(page, roleId, username);
|
||||
return Result.OK(pageList);
|
||||
}
|
||||
|
||||
/**
|
||||
* 用户选择组件 专用 根据用户账号或部门,角色分页查询
|
||||
* @param deptRoleVO
|
||||
|
||||
+9
@@ -81,6 +81,15 @@ public interface SysUserMapper extends BaseMapper<SysUser> {
|
||||
*/
|
||||
IPage<SysUser> getUserByRoleId(Page page, @Param("roleId") String roleId, @Param("username") String username);
|
||||
|
||||
/**
|
||||
* 根据角色Id查询用户信息(优化版:INNER JOIN + DISTINCT,供专用接口使用)
|
||||
* @param page
|
||||
* @param roleId 角色id
|
||||
* @param username 用户登录账户
|
||||
* @return
|
||||
*/
|
||||
IPage<SysUser> getUserByRoleIdOptimized(Page page, @Param("roleId") String roleId, @Param("username") String username);
|
||||
|
||||
/**
|
||||
* 根据角色Id查询带部门的用户信息
|
||||
* @param page
|
||||
|
||||
+10
@@ -59,6 +59,16 @@
|
||||
</if>
|
||||
</select>
|
||||
|
||||
<!-- 根据角色Id查询(优化版:INNER JOIN + DISTINCT,供专用接口使用) -->
|
||||
<select id="getUserByRoleIdOptimized" resultType="org.jeecg.modules.system.entity.SysUser">
|
||||
select distinct u.* from sys_user u
|
||||
inner join sys_user_role ur on ur.user_id = u.id
|
||||
where u.del_flag = 0 and ur.role_id = #{roleId}
|
||||
<if test="username!=null and username!=''">
|
||||
and u.username = #{username}
|
||||
</if>
|
||||
</select>
|
||||
|
||||
<!-- Multi-instance flow task query. Keep it separate from the overloaded getUserByRoleId statement. -->
|
||||
<select id="getUsernamesByRoleId" resultType="java.lang.String">
|
||||
select distinct u.username
|
||||
|
||||
+9
@@ -184,6 +184,15 @@ public interface ISysUserService extends IService<SysUser> {
|
||||
*/
|
||||
public IPage<SysUser> getUserByRoleId(Page<SysUser> page,String roleId, String username);
|
||||
|
||||
/**
|
||||
* 根据角色Id查询(优化版:INNER JOIN + DISTINCT,供专用接口使用)
|
||||
* @param page
|
||||
* @param roleId 角色id
|
||||
* @param username 用户账户名称
|
||||
* @return
|
||||
*/
|
||||
public IPage<SysUser> getUserByRoleIdOptimized(Page<SysUser> page,String roleId, String username);
|
||||
|
||||
/**
|
||||
* 根据角色Id查询
|
||||
* @param page
|
||||
|
||||
+24
@@ -584,6 +584,30 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
|
||||
//update-end---author:wangshuai ---date:20230220 for:[QQYUN-3980]组织管理中 职位功能 职位表加租户id 加职位-用户关联表------------
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据角色Id查询(优化版:INNER JOIN + DISTINCT,供专用接口使用)
|
||||
* @param page
|
||||
* @param roleId 角色id
|
||||
* @param username 用户账户名称
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public IPage<SysUser> getUserByRoleIdOptimized(Page<SysUser> page, String roleId, String username) {
|
||||
IPage<SysUser> userRoleList = userMapper.getUserByRoleIdOptimized(page, roleId, username);
|
||||
List<SysUser> records = userRoleList.getRecords();
|
||||
if (null != records && records.size() > 0) {
|
||||
List<String> userIds = records.stream().map(SysUser::getId).collect(Collectors.toList());
|
||||
Map<String, String> useDepNames = this.getDepNamesByUserIds(userIds);
|
||||
for (SysUser sysUser : userRoleList.getRecords()) {
|
||||
//设置部门
|
||||
sysUser.setOrgCodeTxt(useDepNames.get(sysUser.getId()));
|
||||
//设置用户职位id
|
||||
this.userPositionId(sysUser);
|
||||
}
|
||||
}
|
||||
return userRoleList;
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据角色Id查询
|
||||
* @param page
|
||||
|
||||
Reference in New Issue
Block a user