✨ 完善付款申请多结算行、结算导入与计费方式回填
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
+6
-6
@@ -45,13 +45,13 @@ public interface UserMapper extends BaseMapper<User> {
|
||||
/**
|
||||
* 自定义分页
|
||||
*
|
||||
* @param page
|
||||
* @param user
|
||||
* @param deptIdList
|
||||
* @param tenantId
|
||||
* @return
|
||||
* @param page 分页
|
||||
* @param user 查询条件
|
||||
* @param deptId 部门 ID(含自身及子孙,由 SQL FIND_IN_SET 过滤;为空则不过滤部门)
|
||||
* @param tenantId 租户 ID
|
||||
* @return 用户列表
|
||||
*/
|
||||
List<User> selectUserPage(IPage<User> page, @Param("user") User user, @Param("deptIdList") List<Long> deptIdList, @Param("tenantId") String tenantId);
|
||||
List<User> selectUserPage(IPage<User> page, @Param("user") User user, @Param("deptId") Long deptId, @Param("tenantId") String tenantId);
|
||||
|
||||
/**
|
||||
* 获取用户
|
||||
|
||||
+12
-11
@@ -61,20 +61,21 @@
|
||||
<if test="user.status!=null and user.status>=0">
|
||||
and bu.status = #{user.status}
|
||||
</if>
|
||||
<if test="deptIdList!=null and deptIdList.size>0">
|
||||
<if test="deptId != null">
|
||||
and bu.id in (
|
||||
SELECT
|
||||
user_id
|
||||
FROM
|
||||
blade_user_dept
|
||||
WHERE
|
||||
status = 1 and is_deleted = 0 and dept_id IN
|
||||
<foreach collection="deptIdList" index="index" item="item" open="(" separator="," close=")">
|
||||
#{item}
|
||||
</foreach>
|
||||
select distinct bud.user_id
|
||||
from blade_user_dept bud
|
||||
where bud.status = 1
|
||||
and bud.is_deleted = 0
|
||||
and bud.dept_id in (
|
||||
select bd.id
|
||||
from blade_dept bd
|
||||
where bd.is_deleted = 0
|
||||
and (bd.id = #{deptId} or find_in_set(#{deptId}, bd.ancestors) > 0)
|
||||
)
|
||||
)
|
||||
</if>
|
||||
ORDER BY bu.id
|
||||
ORDER BY bu.create_time DESC, bu.id DESC
|
||||
</select>
|
||||
|
||||
<select id="getUser" resultMap="userResultMap">
|
||||
|
||||
+3
-1
@@ -367,7 +367,9 @@ public class DeptServiceImpl extends ServiceImpl<DeptMapper, Dept> implements ID
|
||||
|
||||
@Override
|
||||
public List<Dept> getDeptChild(Long deptId) {
|
||||
return baseMapper.selectList(Wrappers.<Dept>query().lambda().like(Dept::getAncestors, deptId));
|
||||
// 必须用 FIND_IN_SET:LIKE '%1%' 会误匹配雪花 ID 中的数字片段,导致子部门集合爆炸
|
||||
return baseMapper.selectList(Wrappers.<Dept>query().lambda()
|
||||
.apply("FIND_IN_SET({0}, ancestors)", String.valueOf(deptId)));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
+2
-2
@@ -407,8 +407,8 @@ public class UserServiceImpl extends BaseServiceImpl<UserMapper, User> implement
|
||||
@Override
|
||||
public IPage<User> selectUserPage(IPage<User> page, User user, Long deptId, String tenantId) {
|
||||
normalizeUserSearch(user);
|
||||
List<Long> deptIdList = SysCache.getDeptChildIds(deptId);
|
||||
return page.setRecords(baseMapper.selectUserPage(page, user, deptIdList, tenantId));
|
||||
// 部门过滤下推到 SQL(FIND_IN_SET),避免先展开整棵子树再拼超大 IN 列表
|
||||
return page.setRecords(baseMapper.selectUserPage(page, user, deptId, tenantId));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
Reference in New Issue
Block a user