|
|
|
@ -775,12 +775,8 @@ public class HrmResourceServiceImpl extends Service implements HrmResourceServic
|
|
|
|
|
|
|
|
|
|
} else if (TYPE_JOB.equals(type)) {
|
|
|
|
|
// 查询部门信息
|
|
|
|
|
List<JobPO> filterDeparts = getJobMapper().listPOsByFilter(JobPO.builder().jobTitleName(keyword).parentJob(Long.parseLong(id)).forbiddenTag(0).build());
|
|
|
|
|
Set<JobPO> builderJobs = new HashSet<>();
|
|
|
|
|
for (JobPO departmentPO : filterDeparts) {
|
|
|
|
|
buildParentJobs(departmentPO, builderJobs);
|
|
|
|
|
}
|
|
|
|
|
searchTree = SearchTreeUtil.builderTreeMode(JobBO.buildSetToSearchTree(builderJobs));
|
|
|
|
|
List<JobPO> filterJobs = getJobMapper().listPOsByFilter(JobPO.builder().jobTitleName(keyword).parentJob(Long.parseLong(id)).forbiddenTag(0).build());
|
|
|
|
|
searchTree = SearchTreeUtil.builderTreeMode(JobBO.buildSetToSearchTree(filterJobs));
|
|
|
|
|
}
|
|
|
|
|
return searchTree;
|
|
|
|
|
}
|
|
|
|
@ -798,13 +794,8 @@ public class HrmResourceServiceImpl extends Service implements HrmResourceServic
|
|
|
|
|
new DetachUtil(user).filterJobList(jobPOS);
|
|
|
|
|
List<DepartmentPO> filterDeparts = getDepartmentMapper().listByFilter(departmentBuild, "showorder");
|
|
|
|
|
new DetachUtil(user).filterDepartmentList(filterDeparts);
|
|
|
|
|
// 添加父级岗位
|
|
|
|
|
Set<JobPO> builderJobs = new HashSet<>();
|
|
|
|
|
for (JobPO jobPO : jobPOS) {
|
|
|
|
|
buildParentJobs(jobPO, builderJobs);
|
|
|
|
|
}
|
|
|
|
|
// 添加岗位的上级部门或分部
|
|
|
|
|
List<SearchTree> jobTrees = SearchTreeUtil.builderTreeMode(JobBO.buildSetToSearchTree(builderJobs));
|
|
|
|
|
List<SearchTree> jobTrees = SearchTreeUtil.builderTreeMode(JobBO.buildSetToSearchTree(jobPOS));
|
|
|
|
|
String parentDeptS = jobTrees.stream().map(SearchTree::getParentComp).collect(Collectors.joining(","));
|
|
|
|
|
if (!StringUtil.isEmpty(parentDeptS)) {
|
|
|
|
|
// 兼容SQLServer每次最多in,2100条数据
|
|
|
|
@ -829,8 +820,10 @@ public class HrmResourceServiceImpl extends Service implements HrmResourceServic
|
|
|
|
|
List<CompPO> filterComps = getCompMapper().listByFilter(compBuild, "showorder");
|
|
|
|
|
new DetachUtil(user).filterCompanyList(filterComps);
|
|
|
|
|
Set<DepartmentPO> builderDeparts = new HashSet<>();
|
|
|
|
|
|
|
|
|
|
Map<Integer, DepartmentPO> departmentPOMap = getDepartmentMapper().listAll("showorder").stream().collect(Collectors.toMap(DepartmentPO::getId, item -> item));
|
|
|
|
|
for (DepartmentPO departmentPO : filterDeparts) {
|
|
|
|
|
buildParentDepts(departmentPO, builderDeparts);
|
|
|
|
|
buildParentDepts(departmentPO, builderDeparts,departmentPOMap);
|
|
|
|
|
}
|
|
|
|
|
List<SearchTree> departmentList = DepartmentBO.buildSetToSearchTree(builderDeparts);
|
|
|
|
|
List<SearchTree> deptTrees = SearchTreeUtil.builderTreeMode(departmentList);
|
|
|
|
@ -856,13 +849,8 @@ public class HrmResourceServiceImpl extends Service implements HrmResourceServic
|
|
|
|
|
private List<SearchTree> buildTreeByDeptAndJob(DepartmentPO departmentBuild, JobPO jobBuild) {
|
|
|
|
|
List<JobPO> jobPOS = getJobMapper().listPOsByFilter(jobBuild);
|
|
|
|
|
List<DepartmentPO> filterDeparts = getDepartmentMapper().listByFilter(departmentBuild, "showorder");
|
|
|
|
|
// 添加父级岗位
|
|
|
|
|
Set<JobPO> builderJobs = new HashSet<>();
|
|
|
|
|
for (JobPO jobPO : jobPOS) {
|
|
|
|
|
buildParentJobs(jobPO, builderJobs);
|
|
|
|
|
}
|
|
|
|
|
// 添加岗位的上级部门或分部
|
|
|
|
|
List<SearchTree> jobTrees = SearchTreeUtil.builderTreeMode(JobBO.buildSetToSearchTree(builderJobs));
|
|
|
|
|
List<SearchTree> jobTrees = SearchTreeUtil.builderTreeMode(JobBO.buildSetToSearchTree(jobPOS));
|
|
|
|
|
String parentDeptS = jobTrees.stream().map(SearchTree::getParentComp).collect(Collectors.joining(","));
|
|
|
|
|
if (!StringUtil.isEmpty(parentDeptS)) {
|
|
|
|
|
// 兼容SQLServer每次最多in,2100条数据
|
|
|
|
@ -880,40 +868,30 @@ public class HrmResourceServiceImpl extends Service implements HrmResourceServic
|
|
|
|
|
filterDeparts.addAll(departmentsByIds);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
Map<Integer, DepartmentPO> departmentPOMap = getDepartmentMapper().listAll("showorder").stream().collect(Collectors.toMap(DepartmentPO::getId, item -> item));
|
|
|
|
|
|
|
|
|
|
// 查询分部信息
|
|
|
|
|
Set<DepartmentPO> builderDeparts = new HashSet<>();
|
|
|
|
|
for (DepartmentPO departmentPO : filterDeparts) {
|
|
|
|
|
buildParentDepts(departmentPO, builderDeparts);
|
|
|
|
|
buildParentDepts(departmentPO, builderDeparts,departmentPOMap);
|
|
|
|
|
}
|
|
|
|
|
return SearchTreeUtil.builderTreeMode(DepartmentBO.buildSetToSearchTree(builderDeparts), jobTrees);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void buildParentJobs(JobPO jobPO, Set<JobPO> builderJobs) {
|
|
|
|
|
builderJobs.add(jobPO);
|
|
|
|
|
if (SearchTreeUtil.isTop(jobPO.getParentJob())) {
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
JobPO parentJob = getJobMapper().getJobById(jobPO.getParentJob());
|
|
|
|
|
if (null != parentJob) {
|
|
|
|
|
buildParentJobs(parentJob, builderJobs);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 添加查询元素的父级元素
|
|
|
|
|
*
|
|
|
|
|
* @param departmentPO
|
|
|
|
|
* @param builderDeparts
|
|
|
|
|
*/
|
|
|
|
|
private void buildParentDepts(DepartmentPO departmentPO, Set<DepartmentPO> builderDeparts) {
|
|
|
|
|
private void buildParentDepts(DepartmentPO departmentPO, Set<DepartmentPO> builderDeparts,Map<Integer, DepartmentPO> departmentPOMap) {
|
|
|
|
|
builderDeparts.add(departmentPO);
|
|
|
|
|
if (SearchTreeUtil.isTop(departmentPO.getSupDepId())) {
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
DepartmentPO parentDept = getDepartmentMapper().getDeptById(departmentPO.getSupDepId());
|
|
|
|
|
DepartmentPO parentDept = departmentPOMap.get(departmentPO.getSupDepId());
|
|
|
|
|
if (null != parentDept) {
|
|
|
|
|
buildParentDepts(parentDept, builderDeparts);
|
|
|
|
|
buildParentDepts(parentDept, builderDeparts,departmentPOMap);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|