feat(bpm): 新增排除工作组部门的用户部门名查询接口

- 新增 getNotWorkGroupDepartNamesByUsername,过滤 depart_type='4' 的工作组
- SQL 改为只查 depart_name,不再返回 SysDepart 实体,消除无效字段查询和循环转换
- 已有 getDepartNamesByUsername 同步优化为 name-only 查询
- ActTaskController 节点查询切换至新接口,排除工作组部门

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
wsm
2026-07-13 14:27:21 +08:00
co-authored by Claude Opus 4.7
parent cf0b35e8eb
commit 4f79d04096
7 changed files with 66 additions and 9 deletions
@@ -563,7 +563,7 @@ public class ActTaskController {
taskInfo.put("assignee", assignee); taskInfo.put("assignee", assignee);
LoginUser user = sysBaseAPI.getUserByName(assignee); LoginUser user = sysBaseAPI.getUserByName(assignee);
taskInfo.put("assigneeName", user != null ? user.getRealname() : assignee); taskInfo.put("assigneeName", user != null ? user.getRealname() : assignee);
List<String> deptNames = sysBaseAPI.getDepartNamesByUsername(assignee); List<String> deptNames = sysBaseAPI.getNotWorkGroupDepartNamesByUsername(assignee);
taskInfo.put("deptNames", deptNames != null ? deptNames : Collections.emptyList()); taskInfo.put("deptNames", deptNames != null ? deptNames : Collections.emptyList());
} else { } else {
taskInfo.put("assignee", ""); taskInfo.put("assignee", "");
@@ -124,6 +124,13 @@ public interface ISysBaseAPI extends CommonAPI {
*/ */
List<String> getDepartNamesByUsername(String username); List<String> getDepartNamesByUsername(String username);
/**
* 9通过用户账号查询部门 name
* @param username
* @return 部门 name
*/
List<String> getNotWorkGroupDepartNamesByUsername(String username);
/** 11查询所有的父级字典,按照create_time排序 /** 11查询所有的父级字典,按照create_time排序
@@ -41,6 +41,16 @@ public interface SysDepartMapper extends BaseMapper<SysDepart> {
*/ */
public List<SysDepart> queryDepartsByUsername(@Param("username") String username); public List<SysDepart> queryDepartsByUsername(@Param("username") String username);
/**
* 根据用户名查询非工作组部门
*
* @param username
* @return
*/
public List<String> queryNotWorkGroupDepartNamesByUsername(@Param("username") String username);
public List<String> queryDepartNamesByUsername(@Param("username") String username);
/** /**
* 根据用户名查询部门 * 根据用户名查询部门
* *
@@ -21,6 +21,25 @@
) )
</select> </select>
<!-- 根据username查询所拥有的部门名称 -->
<select id="queryDepartNamesByUsername" parameterType="String" resultType="java.lang.String">
SELECT d.depart_name
FROM sys_user u
INNER JOIN sys_user_depart ud ON u.id = ud.user_id
INNER JOIN sys_depart d ON ud.dep_id = d.id
WHERE u.username = #{username}
</select>
<!-- 根据username查询非工作组部门名称 -->
<select id="queryNotWorkGroupDepartNamesByUsername" parameterType="String" resultType="java.lang.String">
SELECT d.depart_name
FROM sys_user u
INNER JOIN sys_user_depart ud ON u.id = ud.user_id
INNER JOIN sys_depart d ON ud.dep_id = d.id
WHERE u.username = #{username} and d.depart_type != '4'
</select>
<!-- 根据username查询所拥有的部门 --> <!-- 根据username查询所拥有的部门 -->
<select id="queryDepartsByUserId" parameterType="String" resultType="java.lang.String"> <select id="queryDepartsByUserId" parameterType="String" resultType="java.lang.String">
SELECT id SELECT id
@@ -104,6 +104,16 @@ public interface ISysDepartService extends IService<SysDepart>{
*/ */
List<SysDepart> queryDepartsByUsername(String username); List<SysDepart> queryDepartsByUsername(String username);
/**
* 根据用户名查询部门
*
* @param username
* @return
*/
List<String> queryNotWorkGroupDepartNamesByUsername(String username);
List<String> queryDepartNamesByUsername(String username);
/** /**
* 根据用户ID查询部门 * 根据用户ID查询部门
* *
@@ -385,12 +385,12 @@ public class SysBaseApiImpl implements ISysBaseAPI {
@Override @Override
public List<String> getDepartNamesByUsername(String username) { public List<String> getDepartNamesByUsername(String username) {
List<SysDepart> list = sysDepartService.queryDepartsByUsername(username); return sysDepartService.queryDepartNamesByUsername(username);
List<String> result = new ArrayList<>(list.size());
for (SysDepart depart : list) {
result.add(depart.getDepartName());
} }
return result;
@Override
public List<String> getNotWorkGroupDepartNamesByUsername(String username) {
return sysDepartService.queryNotWorkGroupDepartNamesByUsername(username);
} }
@Override @Override
@@ -490,6 +490,17 @@ public class SysDepartServiceImpl extends ServiceImpl<SysDepartMapper, SysDepart
return baseMapper.queryDepartsByUsername(username); return baseMapper.queryDepartsByUsername(username);
} }
@Override
public List<String> queryNotWorkGroupDepartNamesByUsername(String username) {
return baseMapper.queryNotWorkGroupDepartNamesByUsername(username);
}
@Override
public List<String> queryDepartNamesByUsername(String username) {
return baseMapper.queryDepartNamesByUsername(username);
}
@Override @Override
public List<String> queryDepartsByUserId(String userId) { public List<String> queryDepartsByUserId(String userId) {
List<String> list = baseMapper.queryDepartsByUserId(userId); List<String> list = baseMapper.queryDepartsByUserId(userId);