Проблема в настройке значений в p: organigram - PullRequest
0 голосов
/ 19 декабря 2018

Привет, я сталкиваюсь с проблемой при настройке значений в 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>

Я снова повторяю, что все работает идеально, нотолько родительские узлы повторяются, в зависимости от количества дочерних узлов, но я хочу, чтобы один родитель и там дочерний были показаны.

ОЖИДАЕМЫЙ enter image description here:

OUT PUT enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...