@ -3,14 +3,10 @@ package com.engine.junchuang.service;
import cn.hutool.core.date.DateField ;
import cn.hutool.core.date.DateUtil ;
import com.engine.core.impl.Service ;
import com.engine.junchuang.entity.JclOrgMap ;
import com.engine.junchuang.util.HasRightUtil ;
import com.engine.junchuang.util.OrganizationDateUtil ;
import com.engine.junchuang.util.db.DBType ;
import com.engine.junchuang.util.db.MapperProxyFactory ;
import com.engine.junchuang.util.detach.DetachUtil ;
import org.apache.commons.lang3.StringUtils ;
import org.apache.xpath.operations.Bool ;
import weaver.conn.RecordSet ;
import weaver.general.Util ;
import weaver.hrm.User ;
@ -20,10 +16,6 @@ import java.util.stream.Collectors;
public class OrgChartServiceImpl extends Service implements OrgChartService {
private RecordSet grs = new RecordSet ( ) ;
private static final String COMPANY_RIGHT = "OrgChart:All" ;
private static final String USER_RIGHT = "OrgPerspective:All" ;
private final String level = getFieldName ( "职等" ) ;
private final String grade = getFieldName ( "职级" ) ;
@Override
public Map < String , Object > getOptionCondition ( Map < String , Object > request2Map , User user ) {
@ -41,16 +33,16 @@ public class OrgChartServiceImpl extends Service implements OrgChartService {
item . put ( "companyname" , rs . getString ( "companyname" ) ) ;
fclasslist . add ( item ) ;
}
String sql = "select id, fnumber, fname, ftype from j cl _org_map where ftype in (0, 1) ";
String sql = "select id, fnumber, fname, ftype from j un c_org_map where ftype in (0, 1) ";
// 分部分权过滤
DetachUtil detachUtil = new DetachUtil ( user . getUID ( ) ) ;
if ( detachUtil . isDETACH ( ) ) {
String jclRoleLevels = detachUtil . getJclRoleLevels ( ) ;
if ( StringUtils . isNotBlank ( jclRoleLevels ) ) {
sql = "select id, fnumber, fname, ftype from j cl _org_map where (ftype = 0 or (ftype = 1 and fobjid in(" + jclRoleLevels + "))) " ;
sql = "select id, fnumber, fname, ftype from j un c_org_map where (ftype = 0 or (ftype = 1 and fobjid in(" + jclRoleLevels + "))) " ;
} else {
sql = "select id, fnumber, fname, ftype from j cl _org_map where ftype = 0 ";
sql = "select id, fnumber, fname, ftype from j un c_org_map where ftype = 0 ";
}
}
rs . executeQuery ( sql + " and fdateend > " + DBType . get ( new RecordSet ( ) . getDBType ( ) ) . currentDate ( ) + " order by ftype , id,fdateend desc " ) ;
@ -71,19 +63,13 @@ public class OrgChartServiceImpl extends Service implements OrgChartService {
@Override
public Map < String , Object > getUserData ( Map < String , Object > request2Map , User user ) {
Map < String , Object > result = new HashMap < > ( ) ;
boolean hasRight = HasRightUtil . hasRight ( user , USER_RIGHT , true ) ;
result . put ( "hasRight" , hasRight ) ;
if ( ! hasRight ) {
return result ;
}
String root = ( String ) request2Map . get ( "root" ) ; // 根节点
String level = ( String ) request2Map . get ( "level" ) ; // 显示层级
result . put ( "hasRight" , true ) ;
String root = ( String ) request2Map . get ( "root" ) ; // 根节点
String level = ( String ) request2Map . get ( "level" ) ; // 显示层级
if ( StringUtils . isBlank ( level ) ) {
level = "3" ;
}
String whereSql = userWhereSql ( request2Map ) ;
String whereItemSql = " " ;
if ( "0" . equals ( root ) ) { // 集团的情况
whereItemSql + = " and t.ftype = 0 " ;
@ -93,7 +79,7 @@ public class OrgChartServiceImpl extends Service implements OrgChartService {
// 获取根节点
RecordSet rs = new RecordSet ( ) ;
rs . executeQuery ( "select t.id, t.fname, t.ftype, t.fparentid, t.fleadername,t.fobjid,t.fecid, t.fleaderimg, t.fleaderjob, t.fplan, t.fonjob, t.fnumber, t.fleader, t.fleaderlv, t.fleaderst, t.fecid, t.fisvitual ,this_dept from jcl _org_map t " + whereSql + whereItemSql ) ;
rs . executeQuery ( "select t.id, t.fname, t.ftype, t.fparentid, t.fleadername,t.fobjid,t.fecid, t.fleaderimg, t.fleaderjob, t.fplan, t.fonjob, t.fnumber, t.fleader, t.fleaderlv, t.fleaderst, t.fecid, t.fisvitual from jun c_org_map t " + whereSql + whereItemSql ) ;
List < Map < String , Object > > list = new ArrayList < > ( ) ;
String id = null ;
if ( rs . next ( ) ) {
@ -109,10 +95,11 @@ public class OrgChartServiceImpl extends Service implements OrgChartService {
item . put ( "fleaderjob" , "" ) ;
item . put ( "fleader" , "" ) ;
} else {
item . put ( "fleadername" , rs . getString ( "fleadername" ) ) ;
item . put ( "fleaderimg" , rs . getString ( "fleaderimg" ) ) ;
item . put ( "fleaderjob" , rs . getString ( "fleaderjob" ) ) ;
item . put ( "fleader" , rs . getString ( "fleader" ) ) ;
item . put ( "fleadername" , Util . null2String ( rs . getString ( "fleadername" ) ) ) ;
item . put ( "fleaderimg" , Util . null2String ( rs . getString ( "fleaderimg" ) ) ) ;
item . put ( "fleaderjob" , Util . null2String ( rs . getString ( "fleaderjob" ) ) ) ;
item . put ( "fleader" , Util . null2String ( rs . getString ( "fleader" ) ) ) ;
}
item . put ( "fplan" , rs . getString ( "fplan" ) ) ;
item . put ( "fonjob" , rs . getString ( "fonjob" ) ) ;
@ -120,12 +107,8 @@ public class OrgChartServiceImpl extends Service implements OrgChartService {
item . put ( "expand" , "1" ) ;
item . put ( "fnumber" , rs . getString ( "fnumber" ) ) ;
item . put ( "fobjid" , rs . getString ( "fobjid" ) ) ;
//职等职级丢弃
// item.put("fleaderlv", convertLevel(rs.getString("fleaderlv")));
// item.put("fleaderst", convertGrade(rs.getString("fleaderst")));
item . put ( "fecid" , rs . getString ( "fecid" ) ) ;
item . put ( "fisvitual" , rs . getString ( "fisvitual" ) ) ;
item . put ( "this_dept" , rs . getString ( "this_dept" ) ) ;
list . add ( item ) ;
}
@ -142,7 +125,36 @@ public class OrgChartServiceImpl extends Service implements OrgChartService {
@Override
public Map < String , Object > asyncUserData ( Map < String , Object > request2Map , User user ) {
return null ;
String ids = ( String ) request2Map . get ( "ids" ) ;
String whereSql = userWhereSql ( request2Map ) ;
whereSql + = " and fparentid in (" + ids + ") " ;
RecordSet rs = new RecordSet ( ) ;
rs . executeQuery ( "select t.id, t.fname, t.ftype, t.fparentid, t.fleadername, t.fleaderimg, t.fleaderjob, t.fplan, t.fonjob, t.fnumber, t.fleader,t.fleaderlv, t.fleaderst,t.fobjid,t.fisvitual from junc_org_map t " + whereSql ) ;
List < Map < String , Object > > currentList = new ArrayList < > ( ) ;
while ( rs . next ( ) ) {
Map < String , Object > item = new HashMap < > ( ) ;
item . put ( "id" , rs . getString ( "id" ) ) ;
item . put ( "fname" , rs . getString ( "fname" ) ) ;
item . put ( "ftype" , rs . getString ( "ftype" ) ) ;
item . put ( "parentId" , rs . getString ( "fparentid" ) ) ;
item . put ( "fplan" , rs . getString ( "fplan" ) ) ;
item . put ( "fonjob" , rs . getString ( "fonjob" ) ) ;
item . put ( "fnumber" , rs . getString ( "fnumber" ) ) ;
item . put ( "hasChildren" , hasChildren ( rs . getString ( "id" ) , false ) ) ;
item . put ( "fleader" , rs . getString ( "fleader" ) ) ;
item . put ( "fleaderimg" , rs . getString ( "fleaderimg" ) ) ;
item . put ( "fleadername" , rs . getString ( "fleadername" ) ) ;
item . put ( "fleaderjob" , rs . getString ( "fleaderjob" ) ) ;
item . put ( "fobjid" , rs . getString ( "fobjid" ) ) ;
item . put ( "fisvitual" , rs . getString ( "fisvitual" ) ) ;
currentList . add ( item ) ;
}
Map < String , Object > result = new HashMap < > ( ) ;
result . put ( "api_status" , true ) ;
result . put ( "data" , currentList ) ;
return result ;
}
@Override
@ -156,19 +168,19 @@ public class OrgChartServiceImpl extends Service implements OrgChartService {
RecordSet rs = new RecordSet ( ) ;
// 1、清空当天所有数据
rs . execute ( "delete from j cl _org_map where fdatebegin = '"+ date + "' ") ;
rs . execute ( "delete from j un c_org_map where fdatebegin = TO_DATE( '"+ date + "' ,'yyyy-MM-dd') ") ;
// 2、修改所有失效数据
rs . execute ( "update j cl _org_map set fdateend='"+ yesterday + "' where fdateend > '"+ date + "' ") ;
rs . execute ( "update j un c_org_map set fdateend=TO_DATE( '"+ yesterday + "' ,'yyyy-MM-dd') where fdateend > TO_DATE( '"+ date + "' ,'yyyy-MM-dd') ") ;
// 3、同步集团数据
String jtSql = "INSERT INTO j cl _org_map ( id, ftype, fobjid, uuid,fclass, fclassname, fnumber, fname,\n" +
String jtSql = "INSERT INTO j un c_org_map ( id, ftype, fobjid, uuid,fclass, fclassname, fnumber, fname,\n" +
" fleader, fleaderimg, fleadername, fleaderjobid, fleaderjob, fparentid,fobjparentid,\n" +
" fplan, fonjob, fisvitual, fdatebegin, fdateend)\n" +
" SELECT 0, 0, 0, uuid, 0, '行政维度', '00', companyname,\n" +
" 0, NULL, NULL, 0, NULL, -1, 0,\n" +
" 0, 0 , 0, TO_DATE(to_char(SYSDATE,'yyyy-MM-dd'),'yyyy-MM-dd'), TO_DATE('2099-12-31','yyyy-MM-dd') FROM hrmcompany";
" 0, (select count(1) from hrmresource where status<4) , 0, TO_DATE(to_char(SYSDATE,'yyyy-MM-dd'),'yyyy-MM-dd'), TO_DATE('2099-12-31','yyyy-MM-dd') FROM hrmcompany";
rs . execute ( jtSql ) ;
// 4、同步分部数据
String fbSql = "insert into j cl _org_map\n" +
String fbSql = "insert into j un c_org_map\n" +
" (id,ftype,fobjid,uuid,fclass,fclassname,fnumber,fname,fleader,fleaderimg,\n" +
" fleadername,fleaderjobid,fleaderjob,fleaderlv,fleaderst,fparentid,fobjparentid,\n" +
" fplan,fonjob,fisvitual,fdatebegin,fdateend)\n" +
@ -178,18 +190,18 @@ public class OrgChartServiceImpl extends Service implements OrgChartService {
" where nvl(a.canceled,0) <> 1" ;
rs . execute ( fbSql ) ;
// 5、同步部门数据
String bmSql = "insert into jcl _org_map\n" +
String bmSql = "insert into jun c_org_map\n" +
"(id,ftype,fobjid,uuid,fclass,fclassname,fnumber,fname,fleader,fleaderimg,\n" +
" fleadername,fleaderjobid,fleaderjob,fparentid,fobjparentid,\n" +
" fplan,fonjob,fisvitual,fdatebegin,fdateend)\n" +
"select a.id+100000000,2,a.id,a.uuid,0,'行政维度',a.DEPARTMENTCODE,a.departmentname, to_char(b.BMFZR ),c.messagerurl,\n" +
"select a.id+100000000,2,a.id,a.uuid,0,'行政维度',a.DEPARTMENTCODE,a.departmentname, substr(b.bmfzr,0,instr(b.bmfzr,',',1)-1 ),c.messagerurl,\n" +
" c.lastname,c.jobtitle,d.jobtitlemark,\n" +
" (case nvl(a.supdepid,0) when 0 then a.subcompanyid1 else a.supdepid+100000000 end),\n" +
" (case nvl(a.supdepid,0) when 0 then a.subcompanyid1 else a.supdepid end),\n" +
" 0,0,0,TO_DATE(to_char(SYSDATE,'yyyy-MM-dd'),'yyyy-MM-dd'), TO_DATE('2099-12-31','yyyy-MM-dd')\n" +
"from HrmDepartment a\n" +
"left join hrmdepartmentdefined b on a.id=b.deptid\n" +
"left join hrmresource c on to_char( b.BMFZR )=to_char(c.ID)\n" +
"left join hrmresource c on to_char( substr(b.bmfzr,0,instr(b.bmfzr,',',1)-1) )=to_char(c.ID)\n" +
"left join hrmjobtitles d on c.JOBTITLE=d.id\n" +
"where nvl(a.canceled,0) <> 1" ;
rs . execute ( bmSql ) ;
@ -199,12 +211,30 @@ public class OrgChartServiceImpl extends Service implements OrgChartService {
recordSet . execute ( queryDept ) ;
while ( recordSet . next ( ) ) {
String deptId = Util . null2String ( recordSet . getString ( "id" ) ) ;
// 处理部门(含子部门人数)
String getSupDeptSql = "select wm_concat(id) as allSupDept from hrmdepartment a start with a.id=" + deptId + " connect by a.supdepid=prior a.id" ;
rs . execute ( getSupDeptSql ) ;
String allSupDeptIds = null ;
if ( rs . next ( ) ) {
allSupDeptIds = Util . null2String ( rs . getString ( "allSupDept" ) ) ;
}
String getZrs = "select nvl(sum(zrs),0) zrs from (\n" +
"select a.departmentid,count(id) as zrs from hrmresource a where a.status<4 group by a.departmentid\n" +
") b where b.departmentid in (" + allSupDeptIds + ")" ;
rs . execute ( getZrs ) ;
String zrs = "0" ;
if ( rs . next ( ) ) {
zrs = Util . null2String ( rs . getString ( "zrs" ) ) ;
}
rs . execute ( "update junc_org_map set fonjob = '" + zrs + "' where ftype=2 and fdateend>sysdate and fobjid=" + deptId ) ;
// 找出没有下级的人员
String noHaveChildSql = "select a.id,a.managerid from hrmresource a\n" +
"inner join (select id from hrmresource\n" +
"MINUS \n" +
"select distinct(managerid) id from hrmresource) b on a.id=b.id\n" +
"and a.departmentid='" + deptId + "'" ;
String noHaveChildSql = "select a.id,a.managerid from hrmresource a \n" +
"inner join (select id from hrmresource where departmentid='" + deptId + "'\n" +
"MINUS\n" +
"select managerid from hrmresource a \n" +
"where a.managerid in (select id from hrmresource where departmentid='" + deptId + "')\n" +
"and a.departmentid='" + deptId + "') b on a.id=b.id" ;
rs . execute ( noHaveChildSql ) ;
while ( rs . next ( ) ) {
String id = Util . null2String ( rs . getString ( "id" ) ) ;
@ -212,8 +242,34 @@ public class OrgChartServiceImpl extends Service implements OrgChartService {
handleSuperior ( id , managerid , deptId ) ;
}
}
// 7、删除重复人员上级
String deleRepeatSql = "delete from junc_org_map\n" +
" where fobjid in (select fobjid\n" +
" from junc_org_map a\n" +
" where a.ftype = 3\n" +
" and a.fdateend > TO_DATE(to_char(SYSDATE, 'yyyy-MM-dd'),\n" +
" 'yyyy-MM-dd')\n" +
" group by fobjid\n" +
" having count(fobjid) > 1)\n" +
" and rowid not in\n" +
" (select min(rowid)\n" +
" from junc_org_map a\n" +
" where a.ftype = 3\n" +
" and a.fdateend >\n" +
" TO_DATE(to_char(SYSDATE, 'yyyy-MM-dd'), 'yyyy-MM-dd')\n" +
" group by a.fobjid\n" +
" having count(*) > 1) and ftype=3\n" ;
rs . execute ( deleRepeatSql ) ;
// 8、同步分部人数
String queryAllSubCompanySql = "select id,subcompanyname,supsubcomid from hrmsubcompany a where nvl(a.canceled,0)='0'" ;
rs . execute ( queryAllSubCompanySql ) ;
while ( rs . next ( ) ) {
recordSet . execute ( "update junc_org_map set fonjob = (\n" +
"select nvl(sum(fbrs),0) fbrs from (\n" +
"select subcompanyid1,count(id) fbrs from hrmresource where status<4 group by subcompanyid1) \n" +
"where subcompanyid1 in (select id from hrmsubcompany a start with a.id=" + rs . getString ( "id" ) + " connect by a.supsubcomid=prior a.id)) \n" +
"where ftype=1 and fdateend>sysdate and fobjid=" + rs . getString ( "id" ) ) ;
}
return "同步成功" ;
}
@ -227,11 +283,12 @@ public class OrgChartServiceImpl extends Service implements OrgChartService {
RecordSet rs = new RecordSet ( ) ;
Boolean flag = checkManager ( rs , managerid , deptId ) ;
if ( flag ) {
rs . execute ( "insert into jcl_org_map\n" +
rs . execute ( "insert into junc_org_map\n" +
" (id,ftype,fobjid,uuid,fclass,fclassname,fnumber,fname,fleaderimg,\n" +
" fleaderjobid,fleaderjob,fparentid,fobjparentid,\n" +
" fisvitual,fdatebegin,fdateend)\n" +
"select a.id+200000000, 4 ,a.id,a.uuid,0,'行政维度',a.workcode,a.LASTNAME,a.messagerurl,\n" +
"select a.id+200000000, 3 ,a.id,a.uuid,0,'行政维度',a.workcode,a.LASTNAME,a.messagerurl,\n" +
" b.id,b.jobtitlename, nvl( a.managerid, '' ) +200000000,a.managerid,\n" +
" 0,TO_DATE(to_char(SYSDATE,'yyyy-MM-dd'),'yyyy-MM-dd'), TO_DATE('2099-12-31','yyyy-MM-dd')\n" +
"from hrmresource a\n" +
@ -246,11 +303,11 @@ public class OrgChartServiceImpl extends Service implements OrgChartService {
handleSuperior ( supId , supManagerId , departmentid ) ;
}
} else {
rs . execute ( "insert into j cl _org_map\n" +
rs . execute ( "insert into j un c_org_map\n" +
" (id,ftype,fobjid,uuid,fclass,fclassname,fnumber,fname,fleaderimg,\n" +
" fleaderjobid,fleaderjob,fparentid,fobjparentid,\n" +
" fisvitual,fdatebegin,fdateend)\n" +
"select a.id+200000000, 4 ,a.id,a.uuid,0,'行政维度',a.workcode,a.LASTNAME,a.messagerurl,\n" +
"select a.id+200000000, 3 ,a.id,a.uuid,0,'行政维度',a.workcode,a.LASTNAME,a.messagerurl,\n" +
" b.id,b.jobtitlename, nvl( a.departmentid, '' ) +100000000,a.departmentid,\n" +
" 0,TO_DATE(to_char(SYSDATE,'yyyy-MM-dd'),'yyyy-MM-dd'), TO_DATE('2099-12-31','yyyy-MM-dd')\n" +
"from hrmresource a\n" +
@ -262,7 +319,7 @@ public class OrgChartServiceImpl extends Service implements OrgChartService {
/ * *
* @Author ml
* @Date 2023 / 3 / 7 17 : 14
* @Description 校 验 上 级 是 不 在 当 前 部 门
* @Description 校 验 上 级 是 否 在 当 前 部 门
* /
private Boolean checkManager ( RecordSet recordSet , String managerid , String deptId ) {
Boolean flag = false ;
@ -310,7 +367,7 @@ public class OrgChartServiceImpl extends Service implements OrgChartService {
if ( isCompany ) {
whereSql + = " and ftype in (0, 1, 2) " ;
}
grs . executeQuery ( "select count(1) as count from j cl _org_map " + whereSql ) ;
grs . executeQuery ( "select count(1) as count from j un c_org_map " + whereSql ) ;
String count = "0" ;
if ( grs . next ( ) ) {
count = grs . getString ( "count" ) ;
@ -329,7 +386,7 @@ public class OrgChartServiceImpl extends Service implements OrgChartService {
}
private void findUserItemByParantId ( String id , int currentLevel , String level , RecordSet rs , List < Map < String , Object > > list , String whereSql , boolean expand ) {
String sql = "select t.id, t.fname, t.ftype, t.fparentid, t.fobjparentid, t.fleader, t.fleadername, t.fleaderimg, t.fleaderjob, t.fplan, t.fonjob, t.fnumber, t.fobjid, t.fecid, t.fleaderlv, t.fleaderst, t.fisvitual , t.this_dept from jcl _org_map t " + whereSql ;
String sql = "select t.id, t.fname, t.ftype, t.fparentid, t.fobjparentid, t.fleader, t.fleadername, t.fleaderimg, t.fleaderjob, t.fplan, t.fonjob, t.fnumber, t.fobjid, t.fecid, t.fleaderlv, t.fleaderst, t.fisvitual from jun c_org_map t " + whereSql ;
DetachUtil detachUtil = new DetachUtil ( user . getUID ( ) ) ;
if ( detachUtil . isDETACH ( ) ) {
if ( "0" . equals ( id ) ) {
@ -355,29 +412,41 @@ public class OrgChartServiceImpl extends Service implements OrgChartService {
item . put ( "expand" , expand ? "1" : "0" ) ;
item . put ( "fobjid" , rs . getString ( "fobjid" ) ) ;
item . put ( "fecid" , rs . getString ( "fecid" ) ) ;
if ( rs . getString ( "ftype" ) . equals ( "2" ) ) {
//多个部门负责人
// JclOrgMap jclOrgMap = getBmfzrInfo(rs.getString("fleader"));
// item.put("fleader", jclOrgMap.getFLeader() == null ? "" : String.valueOf(jclOrgMap.getFLeader()));
// item.put("fleaderimg", jclOrgMap.getFLeaderImg());
// item.put("fleadername", jclOrgMap.getFLeaderName() == null ? "" : jclOrgMap.getFLeaderName());
// item.put("fleaderjob", jclOrgMap.getFLeaderJob());
// item.put("fleaderlv", convertLevel(rs.getString("fleaderlv")));
// item.put("fleaderst", convertGrade(rs.getString("fleaderst")));
} else {
item . put ( "fleader" , rs . getString ( "fleader" ) ) ;
item . put ( "fleaderimg" , rs . getString ( "fleaderimg" ) ) ;
item . put ( "fleadername" , rs . getString ( "fleadername" ) ) ;
item . put ( "fleaderjob" , rs . getString ( "fleaderjob" ) ) ;
// item.put("fleaderlv", convertLevel(rs.getString("fleaderlv")));
// item.put("fleaderst", convertGrade(rs.getString("fleaderst")));
}
item . put ( "fleader" , rs . getString ( "fleader" ) ) ;
item . put ( "fleaderimg" , rs . getString ( "fleaderimg" ) ) ;
item . put ( "fleadername" , rs . getString ( "fleadername" ) ) ;
item . put ( "fleaderjob" , rs . getString ( "fleaderjob" ) ) ;
item . put ( "fisvitual" , rs . getString ( "fisvitual" ) ) ;
item . put ( "this_dept" , rs . getString ( "this_dept" ) ) ;
item . put ( "hasChildren" , hasChildren ( rs . getString ( "id" ) , false ) ) ;
currentList . add ( item ) ;
}
for ( Map < String , Object > stringObjectMap : currentList ) {
if ( "4" . equals ( stringObjectMap . get ( "ftype" ) ) ) { // 员工信息
rs . executeQuery ( "select id, mobile, homeaddress from hrmresource where id = ? " , stringObjectMap . get ( "fnumber" ) ) ;
if ( rs . next ( ) ) {
stringObjectMap . put ( "mobile" , rs . getString ( "mobile" ) ) ;
stringObjectMap . put ( "address" , rs . getString ( "homeaddress" ) ) ;
}
rs . executeQuery ( "select departmentname from hrmresource hrm \n" +
"left join hrmdepartment d\n" +
"on hrm.departmentid = d.id\n" +
"where hrm.id = ? " , stringObjectMap . get ( "fnumber" ) ) ;
if ( rs . next ( ) ) {
stringObjectMap . put ( "department" , rs . getString ( "departmentname" ) ) ;
}
}
if ( currentLevel + 1 < = Integer . parseInt ( level ) ) {
findUserItemByParantId ( ( String ) stringObjectMap . get ( "id" ) , currentLevel + 1 , level , rs , list , whereSql , true ) ;
} else if ( currentLevel = = Integer . parseInt ( level ) ) { // 多查一层
findUserItemByParantId ( ( String ) stringObjectMap . get ( "id" ) , currentLevel + 1 , level , rs , list , whereSql , false ) ;
}
}
list . addAll ( currentList ) ;
}
private void reBuildTreeList ( List < Map < String , Object > > list , String root ) {
// 分部数据,构建层级关系
Set < String > idSet = list . stream ( ) . filter ( item - > "1" . equals ( Util . null2String ( item . get ( "ftype" ) ) ) ) . map ( item - > Util . null2String ( item . get ( "id" ) ) ) . collect ( Collectors . toSet ( ) ) ;