refactor(backend): 优化部门查询逻辑

- 注释掉 ManagerPortalMapper.xml 中的部门 ID 查询条件
- 修改 getPerformanceInfo 查询中的字段名
- 优化 ManagerPortalServiceImpl 中的部门查询逻辑  - 增加对部门 ID 的非空判断
  - 查询所属部门及其子部门 - 两个 set 取交集以获取最终的部门列表 - 如果没有找到相关部门,则返回 -1L
- 在返回结果中添加当前页码和页面大小信息
This commit is contained in:
dxfeng 2025-07-16 21:20:12 +08:00
parent 1661fced35
commit 4cb3919e70
2 changed files with 26 additions and 7 deletions

View File

@ -24,6 +24,7 @@ import com.weaver.teams.security.user.User;
import com.weaver.workflow.common.cfg.org.service.DepartMentService;
import com.weaver.workflow.common.entity.org.WeaDepartMent;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@ -252,9 +253,25 @@ public class ManagerPortalServiceImpl implements ManagerPortalService {
basicPersonnelParam.setCurrent(current);
basicPersonnelParam.setPageSize(pageSize);
basicPersonnelParam.setSearchKey(searchKey);
//log.error("departmentId==={}", departmentId);
basicPersonnelParam.setDepartmentId(departmentId);
Set<Long> allDepartmentIdList = getAllDepartmentIdList(basicPersonnelParam, currentUser.getEmployeeId());
//log.error("allDepartmentIdList111==={}", JSON.toJSONString(allDepartmentIdList));
basicPersonnelParam.setDepartmentIdList(allDepartmentIdList);
if (StringUtils.isNotBlank(departmentId)) {
List<WeaDepartMent> beLongDeps = departMentService.getBeLongDeps(Long.parseLong(departmentId));
Set<Long> collect = beLongDeps.stream().map(WeaDepartMent::getDepartMentId).collect(Collectors.toSet());
collect.add(Long.parseLong(departmentId));
// 两个set取交集
allDepartmentIdList.retainAll(collect);
//log.error("collect==={}", JSON.toJSONString(collect));
if (CollectionUtils.isEmpty(allDepartmentIdList)) {
allDepartmentIdList.add(-1L);
}
}
//log.error("allDepartmentIdList222==={}", JSON.toJSONString(allDepartmentIdList));
List<TeamEmployeePo> teamEmployee = managerPortalMapper.getTeamEmployee(basicPersonnelParam);
int total = managerPortalMapper.getTeamEmployeeTotal(basicPersonnelParam);
@ -263,6 +280,8 @@ public class ManagerPortalServiceImpl implements ManagerPortalService {
Map<String, Object> returnMap = new HashMap<>();
returnMap.put("list", teamEmployee);
returnMap.put("total", total);
returnMap.put("current", current);
returnMap.put("pageSize", pageSize);
return WeaResult.success(returnMap);
}

View File

@ -217,9 +217,9 @@
#{departmentId}
</foreach>
</if>
<if test="departmentId != null and departmentId != ''">
and t.department = #{departmentId}
</if>
<!-- <if test="departmentId != null and departmentId != ''">-->
<!-- and t.department = #{departmentId}-->
<!-- </if>-->
<if test="searchKey != null and searchKey != ''">
and (t.username like concat('%',#{searchKey},'%') or t.job_num like concat('%',#{searchKey},'%'))
@ -239,16 +239,16 @@
#{departmentId}
</foreach>
</if>
<if test="departmentId != null and departmentId != ''">
and t.department = #{departmentId}
</if>
<!-- <if test="departmentId != null and departmentId != ''">-->
<!-- and t.department = #{departmentId}-->
<!-- </if>-->
<if test="searchKey != null and searchKey != ''">
and (t.username like concat('%',#{searchKey},'%') or t.job_num like concat('%',#{searchKey},'%'))
</if>
</select>
<select id="getPerformanceInfo" resultType="com.weaver.seconddev.portal.entity.po.PortalPO">
select count(t.id) as value , t.ppdj as id
select count(t.id) as value , t.ppdj as name
from ${e10_common}.uf_jxsjtz t
where t.delete_type = 0 and t.tenant_key = #{tenantKey}
and t.khnf = #{belongYear} and t.khzq = #{searchKey}