组织架构图,岗位调整为查询聚才林岗位
This commit is contained in:
parent
45c623accd
commit
eb28328219
|
|
@ -15,7 +15,6 @@ import weaver.general.Util;
|
|||
import weaver.hrm.resource.ResourceComInfo;
|
||||
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* @author:dxfeng
|
||||
|
|
@ -182,52 +181,49 @@ public class ChartServiceImpl extends Service implements ChartService {
|
|||
String dimension = Util.null2String(params.get("fclass"));
|
||||
dimension = StringUtils.isBlank(dimension) ? "0" : dimension;
|
||||
|
||||
// 是否显示岗位
|
||||
String showJobStr = Util.null2String(params.get("showJob"));
|
||||
boolean showJob = "1".equals(showJobStr);
|
||||
|
||||
|
||||
// 初始化表名
|
||||
initTableNameByClass(dimension);
|
||||
|
||||
List<ChartPO> dataList = new ArrayList<>();
|
||||
List<ChartPO> resourceList = new ArrayList<>();
|
||||
Set<String> jobTitleSet = new HashSet<>();
|
||||
List<ChartPO> jobTitleList = new ArrayList<>();
|
||||
int departmentOnJob = 0;
|
||||
int resourceNum;
|
||||
RecordSet rs = new RecordSet();
|
||||
// TODO 查询当前实际的数据
|
||||
String sql;
|
||||
// 查询当当前部门下的人员
|
||||
if ("0".equals(dimension)) {
|
||||
sql = "select a.id,a.lastname as 'name' ,a.jobtitle ,a.belongto ,a.companyworkyear from hrmresource a where a.departmentid = '" + departmentId + "'";
|
||||
} else {
|
||||
sql = "select a.id,a.lastname as 'name' ,a.jobtitle ,a.belongto ,a.companyworkyear from hrmresource a inner join hrmresourcevirtual b on a.id = b.resourceid where b.departmentid = '" + departmentId + "'";
|
||||
// 查询部门本身
|
||||
if(hasVirtualFields){
|
||||
sql = "select a.id,a.departmentname as 'name',b.bmfzr,b.bmlx as 'isvitual' from " + DEPARTMENT_TABLE + " a left join hrmdepartmentdefined b on a.id = b.deptid where a.id = '" + departmentId + "'";
|
||||
}else {
|
||||
sql = "select a.id,a.departmentname as 'name',b.bmfzr from " + DEPARTMENT_TABLE + " a left join hrmdepartmentdefined b on a.id = b.deptid where a.id = '" + departmentId + "'";
|
||||
}
|
||||
rs.executeQuery(sql);
|
||||
while (rs.next()){
|
||||
String jobTitle = Util.null2String(rs.getString("jobtitle"));
|
||||
ChartPO chartPO = new ChartPO();
|
||||
chartPO.setFtype("4");
|
||||
chartPO.setFobjid(rs.getString("id"));
|
||||
chartPO.setId(chartPO.getFobjid());
|
||||
chartPO.setFname(rs.getString("name"));
|
||||
ChartPO departmentChartPO = new ChartPO();
|
||||
if(rs.next()){
|
||||
String fLeader = Util.null2String(rs.getString("bmfzr"));
|
||||
departmentChartPO.setFtype("2");
|
||||
departmentChartPO.setFobjid(departmentId);
|
||||
departmentChartPO.setId(rootId);
|
||||
departmentChartPO.setFname(rs.getString("name"));
|
||||
// 岗位处理后的ID
|
||||
chartPO.setParentId(departmentId + "_" + jobTitle);
|
||||
chartPO.setExpand("0");
|
||||
chartPO.setHasChildren("0");
|
||||
chartPO.setBelongto(Util.null2String(rs.getString("belongto")));
|
||||
chartPO.setCompanyWorkYear(rs.getString("companyworkyear"));
|
||||
try {
|
||||
chartPO.setFleaderimg(new ResourceComInfo().getMessagerUrls(chartPO.getId()));
|
||||
} catch (Exception e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
resourceList.add(chartPO);
|
||||
departmentChartPO.setExpand("1");
|
||||
departmentChartPO.setFisvitual(rs.getString("isvitual"));
|
||||
|
||||
jobTitleSet.add(jobTitle);
|
||||
// 部门负责人
|
||||
departmentChartPO.setFleader(getDepartmentLeader(fLeader));
|
||||
dataList.add(departmentChartPO);
|
||||
}
|
||||
Map<String, List<ChartPO>> resourceMap = resourceList.stream().collect(Collectors.groupingBy(ChartPO::getParentId));
|
||||
// 查询人员的岗位
|
||||
if(CollectionUtils.isNotEmpty(jobTitleSet)) {
|
||||
sql = "select a.id,a.jobtitlename as 'name' from hrmjobtitles a where a.id in(" + StringUtils.join(jobTitleSet, ",") + ")";
|
||||
|
||||
if (showJob) {
|
||||
// 查询部门下的岗位
|
||||
sql = "select a.id,a.jobtitlename as 'name' from hrmjobtitles a inner join jcl_org_job b on a.id = b.ec_jobtitle where b.ec_department = '" + departmentId + "'";
|
||||
rs.executeQuery(sql);
|
||||
while (rs.next()){
|
||||
while (rs.next()) {
|
||||
ChartPO chartPO = new ChartPO();
|
||||
chartPO.setFtype("3");
|
||||
chartPO.setFobjid(rs.getString("id"));
|
||||
|
|
@ -237,41 +233,70 @@ public class ChartServiceImpl extends Service implements ChartService {
|
|||
chartPO.setParentId(rootId);
|
||||
chartPO.setExpand("1");
|
||||
chartPO.setHasChildren("1");
|
||||
dataList.add(chartPO);
|
||||
jobTitleList.add(chartPO);
|
||||
}
|
||||
|
||||
// 避免出现人员没有上级岗位的情况
|
||||
List<ChartPO> chartPOS = resourceMap.get(chartPO.getId());
|
||||
if (CollectionUtils.isNotEmpty(chartPOS)) {
|
||||
dataList.addAll(chartPOS);
|
||||
chartPO.setFonjob(chartPOS.size());
|
||||
departmentOnJob += chartPO.getFonjob();
|
||||
if ("0".equals(dimension)) {
|
||||
sql = "select a.id,a.lastname as 'name' ,a.jobtitle ,a.belongto ,a.companyworkyear from hrmresource a where a.status < 4 and a.departmentid = ? and a.jobtitle = ?";
|
||||
} else {
|
||||
sql = "select a.id,a.lastname as 'name' ,a.jobtitle ,a.belongto ,a.companyworkyear from hrmresource a inner join hrmresourcevirtual b on a.id = b.resourceid where a.status < 4 and b.departmentid = ? and a.jobtitle = ?";
|
||||
}
|
||||
// 遍历岗位、查询对应岗位下的人员
|
||||
for (ChartPO jobTitlePO : jobTitleList) {
|
||||
resourceNum = 0;
|
||||
rs.executeQuery(sql, departmentId, jobTitlePO.getFobjid());
|
||||
while (rs.next()) {
|
||||
String jobTitle = Util.null2String(rs.getString("jobtitle"));
|
||||
ChartPO chartPO = new ChartPO();
|
||||
chartPO.setFtype("4");
|
||||
chartPO.setFobjid(rs.getString("id"));
|
||||
chartPO.setId(chartPO.getFobjid());
|
||||
chartPO.setFname(rs.getString("name"));
|
||||
// 岗位处理后的ID
|
||||
chartPO.setParentId(departmentId + "_" + jobTitle);
|
||||
chartPO.setExpand("0");
|
||||
chartPO.setHasChildren("0");
|
||||
chartPO.setBelongto(Util.null2String(rs.getString("belongto")));
|
||||
chartPO.setCompanyWorkYear(rs.getString("companyworkyear"));
|
||||
try {
|
||||
chartPO.setFleaderimg(new ResourceComInfo().getMessagerUrls(chartPO.getId()));
|
||||
} catch (Exception e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
resourceNum++;
|
||||
dataList.add(chartPO);
|
||||
}
|
||||
jobTitlePO.setFonjob(resourceNum);
|
||||
departmentOnJob += resourceNum;
|
||||
dataList.add(jobTitlePO);
|
||||
}
|
||||
departmentChartPO.setHasChildren(CollectionUtils.isNotEmpty(jobTitleList) ? "1" : "0");
|
||||
}else {
|
||||
// 直接查询岗位下的人员
|
||||
sql = "select a.id,a.lastname as 'name' ,a.jobtitle ,a.belongto ,a.companyworkyear from hrmresource a where a.status < 4 and a.departmentid = ? ";
|
||||
rs.executeQuery(sql, departmentId);
|
||||
while (rs.next()) {
|
||||
ChartPO chartPO = new ChartPO();
|
||||
chartPO.setFtype("4");
|
||||
chartPO.setFobjid(rs.getString("id"));
|
||||
chartPO.setId(chartPO.getFobjid());
|
||||
chartPO.setFname(rs.getString("name"));
|
||||
// 岗位处理后的ID
|
||||
chartPO.setParentId(rootId);
|
||||
chartPO.setExpand("0");
|
||||
chartPO.setHasChildren("0");
|
||||
chartPO.setBelongto(Util.null2String(rs.getString("belongto")));
|
||||
chartPO.setCompanyWorkYear(rs.getString("companyworkyear"));
|
||||
try {
|
||||
chartPO.setFleaderimg(new ResourceComInfo().getMessagerUrls(chartPO.getId()));
|
||||
} catch (Exception e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
dataList.add(chartPO);
|
||||
departmentOnJob++;
|
||||
}
|
||||
}
|
||||
// 查询部门本身
|
||||
if(hasVirtualFields){
|
||||
sql = "select a.id,a.departmentname as 'name',b.bmfzr,b.bmlx as 'isvitual' from " + DEPARTMENT_TABLE + " a left join hrmdepartmentdefined b on a.id = b.deptid where a.id = '" + departmentId + "'";
|
||||
}else {
|
||||
sql = "select a.id,a.departmentname as 'name',b.bmfzr from " + DEPARTMENT_TABLE + " a left join hrmdepartmentdefined b on a.id = b.deptid where a.id = '" + departmentId + "'";
|
||||
}
|
||||
rs.executeQuery(sql);
|
||||
if(rs.next()){
|
||||
String fLeader = Util.null2String(rs.getString("bmfzr"));
|
||||
ChartPO chartPO = new ChartPO();
|
||||
chartPO.setFtype("2");
|
||||
chartPO.setFobjid(departmentId);
|
||||
chartPO.setId(rootId);
|
||||
chartPO.setFname(rs.getString("name"));
|
||||
// 岗位处理后的ID
|
||||
chartPO.setExpand("1");
|
||||
chartPO.setHasChildren(CollectionUtils.isNotEmpty(dataList) ? "1" : "0");
|
||||
chartPO.setFonjob(departmentOnJob);
|
||||
chartPO.setFisvitual(rs.getString("isvitual"));
|
||||
|
||||
// 部门负责人
|
||||
chartPO.setFleader(getDepartmentLeader(fLeader));
|
||||
dataList.add(chartPO);
|
||||
}
|
||||
departmentChartPO.setFonjob(departmentOnJob);
|
||||
|
||||
|
||||
Map<String, Object> result = new HashMap<>();
|
||||
|
|
|
|||
Loading…
Reference in New Issue