diff --git a/src/com/engine/organization/entity/chart/ChartPO.java b/src/com/engine/organization/entity/chart/ChartPO.java index b7207f9f..edaa9317 100644 --- a/src/com/engine/organization/entity/chart/ChartPO.java +++ b/src/com/engine/organization/entity/chart/ChartPO.java @@ -45,6 +45,9 @@ public class ChartPO { private String jobFj; + private String smsFj; + + private String managerId; private String id; private String key; diff --git a/src/com/engine/organization/service/impl/ChartServiceImpl.java b/src/com/engine/organization/service/impl/ChartServiceImpl.java index 61fa170b..7a245698 100644 --- a/src/com/engine/organization/service/impl/ChartServiceImpl.java +++ b/src/com/engine/organization/service/impl/ChartServiceImpl.java @@ -267,12 +267,17 @@ public class ChartServiceImpl extends Service implements ChartService { departmentChartPO.setFobjid(departmentId); departmentChartPO.setId(rootId); departmentChartPO.setFname(rs.getString("name")); - // 岗位处理后的ID + // 岗位处理后的IDfonjob departmentChartPO.setExpand("1"); departmentChartPO.setFisvitual(rs.getString("isvitual")); - // 部门负责人 departmentChartPO.setFleader(getDepartmentLeader(fLeader)); + //二开部门说明书 + String smsFj = getBmsmsFj(departmentId); + if(StringUtils.isBlank(smsFj)){ + smsFj = "0"; + } + departmentChartPO.setSmsFj(smsFj); dataList.add(departmentChartPO); } @@ -325,19 +330,44 @@ public class ChartServiceImpl extends Service implements ChartService { // 直接查询岗位下的人员 if (isRealTime) { 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 { - 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 { - 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 personList = new ArrayList<>(); rs.executeQuery(sql, departmentId); 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")); - dataList.add(chartPO); - departmentOnJob++; + chartPO.setManagerId(managerId); + personList.add(chartPO); + String bzzyCheck = checkBzzy(rs.getString("id")); + if(StringUtils.isBlank(bzzyCheck)){ + //不是机器人才计数 + departmentOnJob++; + } + } + Map 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); @@ -348,6 +378,25 @@ public class ChartServiceImpl extends Service implements ChartService { 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 public String selectVersionDate(String id) { RecordSet rs = new RecordSet(); @@ -410,6 +459,23 @@ public class ChartServiceImpl extends Service implements ChartService { 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 * @@ -663,11 +729,18 @@ public class ChartServiceImpl extends Service implements ChartService { list.add(stp.getDataId()); StringBuilder jobSql = new StringBuilder(); StringBuilder staffSql = new StringBuilder(); + BaseBean bb = new BaseBean(); + String bzzy = bb.getPropValue("jgKq_main","bzzy"); if (ModuleTypeEnum.subcompanyfielddefined.getValue().equals(stp.getType())) { subCompany.getSubCompanyLists(String.valueOf(stp.getDataId()), 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" + " on a.plan_id = b.id\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 { dept.getAllChildDeptByDepId(list,String.valueOf(stp.getDataId())); 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" + " on a.plan_id = b.id\n" + " and a.ec_department = ? and a.job_id is null and a.delete_type = 0\n" +