BudgetSubjectBrowserMultiTreeAjax.jsp 3.92 KB
<%@page import="weaver.conn.RecordSet"%>
<%@page import="weaver.systeminfo.SystemEnv"%>
<%@page import="weaver.general.BaseBean"%>
<%@page import="org.apache.commons.lang.StringEscapeUtils"%>
<%@page import="org.json.JSONObject"%>

<%@ page language="java" contentType="text/html; charset=UTF-8" %>
<%@ page import="weaver.general.Util" %>
<%@ page import="java.util.*,java.sql.Timestamp" %>
<%@ page import="weaver.general.GCONST" %>
<%@page import="weaver.hrm.HrmUserVarify"%>
<%@page import="weaver.hrm.User"%>
<jsp:useBean id="rs1" class="weaver.conn.RecordSet" scope="page" />
<jsp:useBean id="rs2" class="weaver.conn.RecordSet" scope="page" />
<jsp:useBean id="rs3" class="weaver.conn.RecordSet" scope="page" />
<%
    StringBuffer result = new StringBuffer();

    User user = HrmUserVarify.getUser(request , response);
    if(user != null){
        int userId = user.getUID();

        String id = Util.null2String(request.getParameter("id"));

        String name = Util.null2String(request.getParameter("name"));
        String otherParam = Util.null2String(request.getParameter("otherParam"));
        String accountId = Util.null2String(request.getParameter("accountId"));

        String tableName = "";

        rs1.executeQuery(" select * from FnaAccountDtl where accountId = ? and tableType = ? ", accountId, 1);
        if(rs1.next()){
            tableName = Util.null2String(rs1.getString("tableName"));
        }

        if("".equals(id)){//初始化组织架构树
            String _id = "0";
            String _name = SystemEnv.getHtmlLabelName(332,user.getLanguage());//全部
            //String _feelevel = "0";

            result.append("{"+
                    "id:"+JSONObject.quote(_id)+","+
                    "name:"+JSONObject.quote(_name)+","+
                    "isParent:true"+
                    "}");
        }else{
            if(!"".equals(tableName)){
                if("0".equals(id)){
                    id = "";
                }
                int idx = 0;
                String sql = "";
                if("".equals(id)){
                    sql = " select subjectname,subjectcode from " +tableName+ " where (isarchive <> 1  or isarchive is null) and subjectcode like '"+id+"_%' and subjectLevel = 1";
                }else{
                    rs1.executeQuery("select subjectLevel from "+tableName+" where (isarchive <> 1  or isarchive is null) and subjectcode = ?", id);
                    int subjectLevel = 0;
                    if(rs1.next()){
                        subjectLevel = Util.getIntValue(rs1.getString("subjectLevel"));
                    }
                    sql = " select subjectname,subjectcode from " +tableName+ " where (isarchive <> 1  or isarchive is null) and subjectcode like '"+id+"_%' and subjectLevel = "+(subjectLevel+1);
                }
                String orderby = " order by subjectlevel,subjectcode,displayOrder,subjectname ";
                sql += orderby;
                rs1.execute(sql);

                while(rs1.next()){
                    String _subjectcode = rs1.getString("subjectcode");
                    String _name = rs1.getString("subjectname");

                    if(idx>0){
                        result.append(",");
                    }

                    String isParent = "true";
                    rs2.executeQuery(" select count(*) cnt from "+tableName+" a where subjectcode like '"+_subjectcode+"_%'");
                    if(rs2.next() && rs2.getInt("cnt") > 0){
                        isParent = "true";
                    }else{
                        isParent = "false";
                    }

                    result.append("{"+
                            "id:"+JSONObject.quote(_subjectcode)+","+
                            "name:"+JSONObject.quote(_name)+","+
                            "isParent:"+isParent+""+
                            "}");
                    idx++;
                }
            }
        }

    }
%><%="["+result.toString()+"]" %>