@ -40,6 +40,12 @@ public class SupDepartService extends ServiceImpl<SupDepartMapper, SupDepart> {
. orderByAsc ( SupDepart : : getOrderNo ) ) ;
}
public List < SupDepart > listAllByEnabled ( ) {
return list ( new LambdaQueryWrapper < SupDepart > ( )
. eq ( SupDepart : : getStatus , StatusEnum . ENABLE . getValue ( ) )
. orderByAsc ( SupDepart : : getOrderNo ) ) ;
}
public List < SupDepart > listByLevel ( List < Integer > levels ) {
return list ( new LambdaQueryWrapper < SupDepart > ( ) . in ( SupDepart : : getLevel , levels ) . eq ( SupDepart : : getStatus , StatusEnum . ENABLE . getValue ( ) ) . orderByAsc ( SupDepart : : getOrderNo ) ) ;
}
@ -53,7 +59,7 @@ public class SupDepartService extends ServiceImpl<SupDepartMapper, SupDepart> {
}
public List < DepartTree > getAllNode ( List < String > departIds ) {
List < DepartTree > treeList = buildTree ( ) ;
List < DepartTree > treeList = buildTreeAll ( ) ;
List < DepartTree > nodes = new ArrayList < > ( ) ;
getAllNodeRecursive ( departIds , treeList , nodes ) ;
return nodes ;
@ -99,21 +105,22 @@ public class SupDepartService extends ServiceImpl<SupDepartMapper, SupDepart> {
return baseMapper . getMaxId ( ) ;
}
public List < DepartTree > buildTree ( ) {
public List < DepartTree > buildTreeAll ( ) {
// 所有有效的数据
List < SupDepart > departs = listByEnabled ( ) ;
return buildTree ( departs ) ;
List < SupDepart > departs = listAll ByEnabled ( ) ;
return buildTreeAll ( departs ) ;
}
public List < DepartTree > buildTreeBySecond ( List < SupDepart > departs ) {
public List < DepartTree > buildTreeAll ( List < SupDepart > departs ) {
Map < String , List < DepartTree > > childMap = new HashMap < > ( ) ;
List < DepartTree > tree = new ArrayList < > ( ) ;
for ( SupDepart depart : departs ) {
DepartTree node = new DepartTree ( ) ;
BeanUtils . copyProperties ( depart , node ) ;
node . setHasChildren ( ! depart . getLevel ( ) . equals ( 4 ) & & departs . stream ( ) . anyMatch ( item - > node . getId ( ) . equals ( item . getPid ( ) ) ) ) ;
List < DepartTree > children = childMap . computeIfAbsent ( node . getPid ( ) , k - > new ArrayList < > ( ) ) ;
children . add ( node ) ;
if ( AppConstants . ROOT_DEPART_ID . equals ( node . getPi d ( ) ) ) {
if ( AppConstants . ROOT_DEPART_ID . equals ( node . getI d ( ) ) ) {
tree . add ( node ) ;
}
}
@ -123,7 +130,45 @@ public class SupDepartService extends ServiceImpl<SupDepartMapper, SupDepart> {
return tree ;
}
public List < DepartTree > buildTree ( List < SupDepart > departs ) {
/ * *
* 市局主办
* @return
* /
public List < DepartTree > buildTreeByFirstHost ( ) {
List < SupDepart > departs = listByEnabled ( ) ;
Map < String , List < DepartTree > > childMap = new HashMap < > ( ) ;
List < DepartTree > tree = new ArrayList < > ( ) ;
for ( SupDepart depart : departs ) {
DepartTree node = new DepartTree ( ) ;
BeanUtils . copyProperties ( depart , node ) ;
List < DepartTree > children = childMap . computeIfAbsent ( node . getPid ( ) , k - > new ArrayList < > ( ) ) ;
children . add ( node ) ;
if ( node . getFirstHost ( ) ) {
tree . add ( node ) ;
}
}
for ( DepartTree node : tree ) {
buildTreeRecursive ( node , childMap ) ;
}
return tree ;
}
/ * *
* 根据角色权限
* @return
* /
public List < DepartTree > buildTreeByAuth ( ) {
// 所有有效的数据
List < SupDepart > departs = listByEnabled ( ) ;
return buildTreeByAuth ( departs ) ;
}
/ * *
* 根据角色权限
* @param departs
* @return
* /
public List < DepartTree > buildTreeByAuth ( List < SupDepart > departs ) {
Map < String , List < DepartTree > > childMap = new HashMap < > ( ) ;
List < DepartTree > tree = new ArrayList < > ( ) ;
UserAuth user = UserContextHolder . getCurrentUser ( ) ;
@ -157,6 +202,24 @@ public class SupDepartService extends ServiceImpl<SupDepartMapper, SupDepart> {
return tree ;
}
public List < DepartTree > buildTreeBySecond ( List < SupDepart > departs ) {
Map < String , List < DepartTree > > childMap = new HashMap < > ( ) ;
List < DepartTree > tree = new ArrayList < > ( ) ;
for ( SupDepart depart : departs ) {
DepartTree node = new DepartTree ( ) ;
BeanUtils . copyProperties ( depart , node ) ;
List < DepartTree > children = childMap . computeIfAbsent ( node . getPid ( ) , k - > new ArrayList < > ( ) ) ;
children . add ( node ) ;
if ( AppConstants . ROOT_DEPART_ID . equals ( node . getPid ( ) ) ) {
tree . add ( node ) ;
}
}
for ( DepartTree node : tree ) {
buildTreeRecursive ( node , childMap ) ;
}
return tree ;
}
public List < DepartTree > buildTreeByParam ( DepartTreeListParam departTreeListParam ) {
if ( Objects . nonNull ( departTreeListParam . getPid ( ) ) ) {
LambdaQueryWrapper < SupDepart > queryWrapper = new LambdaQueryWrapper < SupDepart > ( ) . eq ( SupDepart : : getPid , departTreeListParam . getPid ( ) ) . orderByAsc ( SupDepart : : getOrderNo ) ;
@ -190,25 +253,12 @@ public class SupDepartService extends ServiceImpl<SupDepartMapper, SupDepart> {
return tree ;
}
public List < DepartTree > buildTreeByFirstHost ( ) {
List < SupDepart > departs = listByEnabled ( ) ;
Map < String , List < DepartTree > > childMap = new HashMap < > ( ) ;
List < DepartTree > tree = new ArrayList < > ( ) ;
for ( SupDepart depart : departs ) {
DepartTree node = new DepartTree ( ) ;
BeanUtils . copyProperties ( depart , node ) ;
List < DepartTree > children = childMap . computeIfAbsent ( node . getPid ( ) , k - > new ArrayList < > ( ) ) ;
children . add ( node ) ;
if ( node . getFirstHost ( ) ) {
tree . add ( node ) ;
}
}
for ( DepartTree node : tree ) {
buildTreeRecursive ( node , childMap ) ;
}
return tree ;
}
/ * *
* 递归构建
* @param node
* @param childMap
* @return
* /
private static DepartTree buildTreeRecursive ( DepartTree node , Map < String , List < DepartTree > > childMap ) {
List < DepartTree > children = childMap . get ( node . getId ( ) ) ;
if ( children ! = null ) {