* 京福项目组织架构图需求

1.人员按照上下级展示,并控制人员默认平铺。
2.人员数量根据自定义字段过滤机器人类型。
3.部门自定义表部门说明书关联关系,支持点击部门跳转部门说明书页面,人员卡片样式调整。
4.一级分部文字支持换行显示
cx0418hd
chenxu1234 1 year ago
parent 6e1f39f8bc
commit 7c99465352

@ -45,6 +45,9 @@ public class ChartPO {
private String jobFj; private String jobFj;
private String smsFj;
private String managerId;
private String id; private String id;
private String key; private String key;

@ -267,12 +267,17 @@ public class ChartServiceImpl extends Service implements ChartService {
departmentChartPO.setFobjid(departmentId); departmentChartPO.setFobjid(departmentId);
departmentChartPO.setId(rootId); departmentChartPO.setId(rootId);
departmentChartPO.setFname(rs.getString("name")); departmentChartPO.setFname(rs.getString("name"));
// 岗位处理后的ID // 岗位处理后的IDfonjob
departmentChartPO.setExpand("1"); departmentChartPO.setExpand("1");
departmentChartPO.setFisvitual(rs.getString("isvitual")); departmentChartPO.setFisvitual(rs.getString("isvitual"));
// 部门负责人 // 部门负责人
departmentChartPO.setFleader(getDepartmentLeader(fLeader)); departmentChartPO.setFleader(getDepartmentLeader(fLeader));
//二开部门说明书
String smsFj = getBmsmsFj(departmentId);
if(StringUtils.isBlank(smsFj)){
smsFj = "0";
}
departmentChartPO.setSmsFj(smsFj);
dataList.add(departmentChartPO); dataList.add(departmentChartPO);
} }
@ -325,19 +330,44 @@ public class ChartServiceImpl extends Service implements ChartService {
// 直接查询岗位下的人员 // 直接查询岗位下的人员
if (isRealTime) { if (isRealTime) {
if (isRealDimension) { if (isRealDimension) {
sql = "select a.id,a.lastname as name ,a.belongto ,a.companyworkyear from hrmresource a where a.status < 4 and a.departmentid = ? "; sql = "select a.id,a.lastname as name ,a.belongto ,a.companyworkyear,a.managerid from hrmresource a where a.status < 4 and a.departmentid = ? ";
} else { } else {
sql = "select a.id,a.lastname as name ,a.belongto ,a.companyworkyear from hrmresource a inner join hrmresourcevirtual b on a.id = b.resourceid where a.status < 4 and b.departmentid = ? "; sql = "select a.id,a.lastname as name ,a.belongto ,a.companyworkyear,a.managerid from hrmresource a inner join hrmresourcevirtual b on a.id = b.resourceid where a.status < 4 and b.departmentid = ? ";
} }
} else { } else {
sql = "select a.resourceid as id,a.lastname as name ,a.belongto ,a.companyworkyear from jcl_chart_resource a where a.status < 4 and a.departmentid = ? and versionid = " + versionId; sql = "select a.resourceid as id,a.lastname as name ,a.belongto ,a.companyworkyear,a.manager from jcl_chart_resource a where a.status < 4 and a.departmentid = ? and versionid = " + versionId;
} }
List<ChartPO> personList = new ArrayList<>();
rs.executeQuery(sql, departmentId); rs.executeQuery(sql, departmentId);
while (rs.next()) { while (rs.next()) {
String managerId;
if (isRealTime) {
managerId = Util.null2String(rs.getString("managerid"));
}else {
managerId = Util.null2String(rs.getString("manager"));
}
ChartPO chartPO = getResourceChartPO(rs.getString("id"), rs.getString("name"), rootId, rs.getString("belongto"), rs.getString("companyworkyear")); ChartPO chartPO = getResourceChartPO(rs.getString("id"), rs.getString("name"), rootId, rs.getString("belongto"), rs.getString("companyworkyear"));
dataList.add(chartPO); chartPO.setManagerId(managerId);
personList.add(chartPO);
String bzzyCheck = checkBzzy(rs.getString("id"));
if(StringUtils.isBlank(bzzyCheck)){
//不是机器人才计数
departmentOnJob++; departmentOnJob++;
} }
}
Map<String, String> managerToFobjidMap = personList.stream()
.collect(Collectors.toMap(ChartPO::getFobjid, ChartPO::getManagerId));
personList.forEach(chart -> {
String managerId = managerToFobjidMap.get(chart.getManagerId());
if (StringUtils.isNotEmpty(managerId)) {
chart.setParentId(chart.getManagerId());
}
});
dataList.addAll(personList);
} }
departmentChartPO.setFonjob(departmentOnJob); departmentChartPO.setFonjob(departmentOnJob);
@ -348,6 +378,25 @@ public class ChartServiceImpl extends Service implements ChartService {
return result; return result;
} }
/**
*
* @param userid
* @return
*/
private static String checkBzzy(String userid){
RecordSet rs = new RecordSet();
BaseBean bb = new BaseBean();
String bzzy = bb.getPropValue("jgKq_main","bzzy");
bb.writeLog("bzzy:"+bzzy);
String sql = "select "+bzzy+" from cus_fielddata where id = "+userid+" and scope = 'HrmCustomFieldByInfoType' and scopeid = 3";
rs.executeQuery(sql);
String field28 = "";
if (rs.next()){
field28 = Util.null2String(rs.getString(bzzy));
}
return field28;
}
@Override @Override
public String selectVersionDate(String id) { public String selectVersionDate(String id) {
RecordSet rs = new RecordSet(); RecordSet rs = new RecordSet();
@ -410,6 +459,23 @@ public class ChartServiceImpl extends Service implements ChartService {
return gwsms; return gwsms;
} }
/**
*
* @param id
* @return
*/
public static String getBmsmsFj(String id){
RecordSet rs = new RecordSet();
String bmsms = "";
String sql = "select bmsms from hrmdepartmentdefined where DEPTID = "+id;
rs.executeQuery(sql);
if (rs.next()){
bmsms = Util.null2String(rs.getString("bmsms"));
}
return bmsms;
}
/** /**
* sql * sql
* *
@ -663,11 +729,18 @@ public class ChartServiceImpl extends Service implements ChartService {
list.add(stp.getDataId()); list.add(stp.getDataId());
StringBuilder jobSql = new StringBuilder(); StringBuilder jobSql = new StringBuilder();
StringBuilder staffSql = new StringBuilder(); StringBuilder staffSql = new StringBuilder();
BaseBean bb = new BaseBean();
String bzzy = bb.getPropValue("jgKq_main","bzzy");
if (ModuleTypeEnum.subcompanyfielddefined.getValue().equals(stp.getType())) { if (ModuleTypeEnum.subcompanyfielddefined.getValue().equals(stp.getType())) {
subCompany.getSubCompanyLists(String.valueOf(stp.getDataId()), list); subCompany.getSubCompanyLists(String.valueOf(stp.getDataId()), list);
String value = StringUtils.join(list,","); String value = StringUtils.join(list,",");
jobSql.append("select count(1) as count from hrmresource where status < 4 and subcompanyid1 in (").append(value).append(")"); // jobSql.append("select count(1) as count from hrmresource where status < 4 and subcompanyid1 in (").append(value).append(")");
jobSql.append("select count(1) as count from hrmresource h\n" +
"left join cus_fielddata c on h.id = c.id and c.scope = 'HrmCustomFieldByInfoType' and c.scopeid = 3 \n" +
"where h.status < 4 and h.subcompanyid1 in (").append(value).append(") and (c.").append(bzzy).append(" is null or c.").append(bzzy).append(" >0)");
staffSql.append("select a.staff_num from jcl_org_staff a inner join jcl_org_staffplan b\n" + staffSql.append("select a.staff_num from jcl_org_staff a inner join jcl_org_staffplan b\n" +
" on a.plan_id = b.id\n" + " on a.plan_id = b.id\n" +
" and a.ec_company = ? and a.ec_department is null and a.delete_type = 0\n" + " and a.ec_company = ? and a.ec_department is null and a.delete_type = 0\n" +
@ -675,7 +748,10 @@ public class ChartServiceImpl extends Service implements ChartService {
}else { }else {
dept.getAllChildDeptByDepId(list,String.valueOf(stp.getDataId())); dept.getAllChildDeptByDepId(list,String.valueOf(stp.getDataId()));
String value = StringUtils.join(list,","); String value = StringUtils.join(list,",");
jobSql.append("select count(1) as count from hrmresource where status < 4 and departmentid in (").append(value).append(")"); // jobSql.append("select count(1) as count from hrmresource where status < 4 and departmentid in (").append(value).append(")");
jobSql.append("select count(1) as count from hrmresource h\n" +
"left join cus_fielddata c on h.id = c.id and c.scope = 'HrmCustomFieldByInfoType' and c.scopeid = 3 \n" +
"where h.status < 4 and h.departmentid in (").append(value).append(") and (c.").append(bzzy).append(" is null or c.").append(bzzy).append(" >0)");
staffSql.append("select a.staff_num from jcl_org_staff a inner join jcl_org_staffplan b\n" + staffSql.append("select a.staff_num from jcl_org_staff a inner join jcl_org_staffplan b\n" +
" on a.plan_id = b.id\n" + " on a.plan_id = b.id\n" +
" and a.ec_department = ? and a.job_id is null and a.delete_type = 0\n" + " and a.ec_department = ? and a.job_id is null and a.delete_type = 0\n" +

Loading…
Cancel
Save