weaver-hrm-organization/src/com/engine/organization/entity/chart/TreeSelect.java

85 lines
3.1 KiB
Java
Raw Normal View History

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
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;
private String icon;
private List<TreeSelect> children;
2023-07-26 10:52:10 +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();
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()) {
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()) {
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()) {
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) {
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;
}
}