yxk-20260729
改善提案 新增流程表达式getRequiredUsersListByRole 根据角色找人
This commit is contained in:
+9
@@ -251,4 +251,13 @@ public interface SysUserMapper extends BaseMapper<SysUser> {
|
||||
* @return
|
||||
*/
|
||||
List<SysUser> getUserByRoleId(String roleId);
|
||||
|
||||
/**
|
||||
* Query active usernames by role through a dedicated statement.
|
||||
* It must not reuse the overloaded getUserByRoleId statement used by the user management page.
|
||||
*
|
||||
* @param roleId role id
|
||||
* @return username list
|
||||
*/
|
||||
List<String> getUsernamesByRoleId(@Param("roleId") String roleId);
|
||||
}
|
||||
|
||||
+11
@@ -59,6 +59,17 @@
|
||||
</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
|
||||
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}
|
||||
and u.username is not null
|
||||
and u.username != ''
|
||||
</select>
|
||||
|
||||
<select id="getUserByRoleIdWithDeptIds" resultType="org.jeecg.modules.system.vo.SysUserRoleDeptsVo">
|
||||
SELECT
|
||||
u.id as user_id,
|
||||
|
||||
+9
@@ -498,4 +498,13 @@ public interface ISysUserService extends IService<SysUser> {
|
||||
List<String> queryUserByDeptAndROle(@NotBlank(message = "deptId不为空") String deptId, @NotBlank(message = "角色id不为空") String roleId, @NotBlank(message = "secretLevel不为空") Integer secretLevel);
|
||||
|
||||
List<String> getUserByRoleId(String roleId);
|
||||
|
||||
/**
|
||||
* Query active usernames by role for Flowable multi-instance task assignment.
|
||||
* This is separate from the legacy role-user query to avoid changing its behavior.
|
||||
*
|
||||
* @param roleId system role id
|
||||
* @return active username list
|
||||
*/
|
||||
List<String> getUsernamesByRoleId(String roleId);
|
||||
}
|
||||
|
||||
+12
-1
@@ -2161,4 +2161,15 @@ public class SysBaseApiImpl implements ISysBaseAPI {
|
||||
.stream()
|
||||
.collect(Collectors.toList());
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<String> getUsernamesByRoleIdLocalApi(String roleId) {
|
||||
List<String> usernames = sysUserService.getUsernamesByRoleId(roleId);
|
||||
return Optional.ofNullable(usernames)
|
||||
.orElse(Collections.emptyList())
|
||||
.stream()
|
||||
.filter(StringUtils::isNotBlank)
|
||||
.distinct()
|
||||
.collect(Collectors.toList());
|
||||
}
|
||||
}
|
||||
|
||||
+8
@@ -2424,4 +2424,12 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
|
||||
public List<String> getUserByRoleId(String roleId){
|
||||
return sysUserMapper.getUserByRoleId(roleId).stream().map(SysUser::getUsername).collect(Collectors.toList()) ;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<String> getUsernamesByRoleId(String roleId) {
|
||||
if (StringUtils.isBlank(roleId)) {
|
||||
return Collections.emptyList();
|
||||
}
|
||||
return sysUserMapper.getUsernamesByRoleId(roleId);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user