package foundation.org;
|
|
import java.util.ArrayList;
|
import java.util.Iterator;
|
import java.util.List;
|
|
import foundation.data.entity.Entity;
|
import foundation.data.entity.EntitySet;
|
import foundation.data.entity.Filter;
|
import foundation.persist.NamedSQL;
|
import foundation.persist.SQLRunner;
|
import foundation.state.approve.StepType;
|
|
public class OAHierarchys implements Iterable<PositionHierarchys> {
|
|
public static int MaxLevel = 6;
|
private static NamedSQL templateSQL;
|
private List<PositionHierarchys> items;
|
|
static {
|
try {
|
templateSQL = NamedSQL.getInstance("getOALeader");
|
}
|
catch (Exception e) {
|
e.printStackTrace();
|
}
|
}
|
|
public OAHierarchys() {
|
items = new ArrayList<PositionHierarchys>();
|
}
|
|
|
public static OAHierarchys getInstance(StepType type, Filter filter) throws Exception {
|
OAHierarchys result = new OAHierarchys();
|
NamedSQL namedSQL = templateSQL.createInstance();
|
PositionHierarchys hierarchyList = getLeaderHierarchy(namedSQL, filter);
|
|
while (hierarchyList != null) {
|
result.items.add(hierarchyList);
|
}
|
|
return result;
|
}
|
|
private static PositionHierarchys getLeaderHierarchy(NamedSQL namedSQL, Filter filter) throws Exception {
|
if (filter.isEmpty()) {
|
return null;
|
}
|
|
namedSQL.setFilter(filter);
|
EntitySet entitySet = SQLRunner.getEntitySet(namedSQL);
|
|
if (entitySet.size() == 0) {
|
return null;
|
}
|
|
PositionHierarchys positionHierarchys = new PositionHierarchys();
|
List<LeaderHierarchy> hierarchyList = new ArrayList<LeaderHierarchy>();
|
|
for (Entity entity: entitySet) {
|
LeaderHierarchy hierarchy = new LeaderHierarchy();
|
hierarchy.load(entity);
|
hierarchyList.add(hierarchy);
|
}
|
|
positionHierarchys.setFirstAsDefalut(entitySet.getEntity(0));
|
positionHierarchys.setPositinEmoployees(hierarchyList);
|
|
return positionHierarchys;
|
}
|
|
public boolean isEmpty() {
|
return items.isEmpty();
|
}
|
|
@Override
|
public Iterator<PositionHierarchys> iterator() {
|
return items.iterator();
|
}
|
|
}
|