Привет, я сталкиваюсь с проблемой при настройке значений в organigram primeFaces .
Я хочу показать отчеты сотрудникам, все работает отлично, но проблема только в том, что родительузлы повторяются в зависимости от количества дочерних элементов.
, поэтому, пожалуйста, предложите мне любой лучший способ справиться с этим.
Вот модель:
public TreeMap<String, String> getALLEmployees(OrganigramView ob) {
ConnectionHandler conHandler = ConnectionHandler.getConnectionHandler();
Connection con = conHandler.getConnection();
Statement stmt = null;
ArrayList<OrganigramView> list = new ArrayList();
OrganigramView obs;
TreeMap<String, String> tm = new TreeMap<String, String>();
try {
stmt = con.createStatement();
String selectQry = "select emp.* ,emp.Name as reportingName,ejd.`REPORTING_BOSS_ID`,emp2.`NAME` as reportToBy, emp.`EMPLOYEE_ID` as empID\n"
+ "from employee emp \n"
+ "JOIN employee_job_detail ejd ON ejd.`EMPLOYEE_ID` = emp.`EMPLOYEE_ID`\n"
+ "JOIN employee emp2 ON emp2.`EMPLOYEE_ID` = ejd.`REPORTING_BOSS_ID` \n"
+ " WHERE emp.COMPANY_ID = 4 and emp.`PROFILE_STATUS` = 1 ";
System.out.println("selectQry : " + selectQry);
ResultSet rs = stmt.executeQuery(selectQry);
while (rs.next()) {
tm.put( rs.getString("Name"),rs.getString("reportToBy") );
System.out.println(tm.size());
}
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (stmt != null) {
stmt.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
conHandler.freeConnection(con);
}
return tm;
}
Вот Бин:
protected OrganigramNode addDivision(OrganigramNode parent, String name, String... employees) {
OrganigramNode divisionNode = new DefaultOrganigramNode("division", name, parent);
divisionNode.setDroppable(true);
divisionNode.setDraggable(true);
divisionNode.setSelectable(true);
if (employees != null) {
for (String employee : employees) {
OrganigramNode employeeNode = new DefaultOrganigramNode("employee", employee, divisionNode);
employeeNode.setDraggable(true);
employeeNode.setSelectable(true);
}
}
return divisionNode;
}
Вот XHTML
<p:organigram id="organigram"
widgetVar="organigram"
value="#{organigramView.rootNode}"
var="node"
>
<p:ajax event="dragdrop" process="@this" update="@form:growl" listener="#{organigramView.nodeDragDropListener}" />
<p:ajax event="select" process="@this" update="@form:growl" listener="#{organigramView.nodeSelectListener}" />
<p:ajax event="contextmenu" process="@this" />
<p:ajax event="collapse" process="@this" update="@form:growl" listener="#{organigramView.nodeCollapseListener}" />
<p:ajax event="expand" process="@this" update="@form:growl" listener="#{organigramView.nodeExpandListener}" />
<p:organigramNode>
<h:outputText value="#{node.data}" />
</p:organigramNode>
<p:organigramNode type="root"
style="border-radius: 10px;">
<h:outputText value="#{node.data}" />
</p:organigramNode>
<p:organigramNode type="division"
styleClass="division"
icon="pi pi-briefcase"
iconPos="left">
<h:outputText value="#{node.data}" />
</p:organigramNode>
<p:organigramNode type="employee"
styleClass="employee"
icon="pi pi-user">
<h:outputText value="#{node.data}" />
</p:organigramNode>
</p:organigram>
Я снова повторяю, что все работает идеально, нотолько родительские узлы повторяются, в зависимости от количества дочерних узлов, но я хочу, чтобы один родитель и там дочерний были показаны.
ОЖИДАЕМЫЙ :
OUT PUT