2023-07-26 10:52:10 +08:00
package com.engine.organization.entity.chart ;
import lombok.AllArgsConstructor ;
import lombok.Builder ;
import lombok.Data ;
import lombok.NoArgsConstructor ;
import org.apache.commons.collections.CollectionUtils ;
import weaver.conn.RecordSet ;
import java.util.ArrayList ;
import java.util.List ;
/ * *
* @author : dxfeng
* @createTime : 2023 / 07 / 25
* @version : 1 . 0
* /
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
2023-07-27 14:32:07 +08:00
public class TreeSelect {
public static final String COMPANY = " company " ;
2023-07-26 10:52:10 +08:00
public static final String SUB_COMPANY = " subCompany " ;
public static final String DEPARTMENT = " department " ;
private String key ;
private String id ;
private String title ;
private String type ;
2023-07-27 14:32:07 +08:00
private String icon ;
private List < TreeSelect > children ;
2023-07-26 10:52:10 +08:00
2023-07-27 14:32:07 +08:00
public List < TreeSelect > getChildren ( ) {
2023-07-26 10:52:10 +08:00
if ( null ! = children ) {
return children ;
}
children = new ArrayList < > ( ) ;
RecordSet rs = new RecordSet ( ) ;
2023-07-27 14:32:07 +08:00
if ( COMPANY . equals ( type ) ) {
String sql = " select id ,subcompanyname from hrmsubcompany where (canceled is null or canceled != 1) and (supsubcomid is null or supsubcomid = 0) and companyid = ? order by showorder desc " ;
rs . executeQuery ( sql , key ) ;
while ( rs . next ( ) ) {
children . add ( TreeSelect . builder ( ) . key ( rs . getString ( " id " ) ) . title ( rs . getString ( " subcompanyname " ) ) . type ( SUB_COMPANY ) . build ( ) ) ;
}
} else if ( SUB_COMPANY . equals ( type ) ) {
2023-07-26 10:52:10 +08:00
String sql = " select id ,subcompanyname from hrmsubcompany where (canceled is null or canceled != 1) and supsubcomid = ? order by showorder desc " ;
rs . executeQuery ( sql , key ) ;
while ( rs . next ( ) ) {
2023-07-27 14:32:07 +08:00
children . add ( TreeSelect . builder ( ) . key ( rs . getString ( " id " ) ) . title ( rs . getString ( " subcompanyname " ) ) . type ( SUB_COMPANY ) . build ( ) ) ;
2023-07-26 10:52:10 +08:00
}
sql = " select id,departmentname from hrmdepartment where (canceled is null or canceled != 1) and (supdepid is null or supdepid =0) and subcompanyid1 = ? order by showorder desc " ;
rs . executeQuery ( sql , key ) ;
while ( rs . next ( ) ) {
2023-07-27 14:32:07 +08:00
children . add ( TreeSelect . builder ( ) . key ( rs . getString ( " id " ) ) . title ( rs . getString ( " departmentname " ) ) . type ( DEPARTMENT ) . build ( ) ) ;
2023-07-26 10:52:10 +08:00
}
} else if ( DEPARTMENT . equals ( type ) ) {
String sql = " select id,departmentname from hrmdepartment where (canceled is null or canceled != 1) and supdepid = ? order by showorder desc " ;
rs . executeQuery ( sql , key ) ;
while ( rs . next ( ) ) {
2023-07-27 14:32:07 +08:00
children . add ( TreeSelect . builder ( ) . key ( rs . getString ( " id " ) ) . title ( rs . getString ( " departmentname " ) ) . type ( DEPARTMENT ) . build ( ) ) ;
2023-07-26 10:52:10 +08:00
}
}
return CollectionUtils . isEmpty ( children ) ? null : children ;
}
public String getKey ( ) {
switch ( type ) {
2023-07-27 14:32:07 +08:00
case COMPANY :
return " c " + key ;
2023-07-26 10:52:10 +08:00
case SUB_COMPANY :
return " s " + key ;
case DEPARTMENT :
return " d " + key ;
default :
break ;
}
return key ;
}
public String getId ( ) {
return key ;
}
}