You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
505 lines
28 KiB
505 lines
28 KiB
package kr.co.kihyun.tree; |
|
|
|
import java.io.IOException; |
|
import java.sql.ResultSet; |
|
//import java.io.IOException; |
|
import java.io.PrintWriter; |
|
import java.sql.SQLException; |
|
//import javax.servlet.ServletException; |
|
//import javax.servlet.http.HttpServlet; |
|
import javax.servlet.http.HttpServletRequest; |
|
import javax.servlet.http.HttpServletResponse; |
|
import kr.co.kihyun.beans.entity.SysAuth; |
|
//import kr.co.kihyun.lang.Encoder; |
|
//import kr.co.kihyun.lang.MInteger; |
|
//import kr.co.kihyun.lang.MLong; |
|
//import kr.co.kihyun.moumi.MoumiConfig; |
|
import kr.co.kihyun.db.DBManager; |
|
import kr.co.kihyun.lang.MString; |
|
import kr.co.kihyun.beans.user.HttpSSOLogin; |
|
//import java.util.Calendar; |
|
|
|
public class MakeJSon extends DBManager { |
|
|
|
public int dataCnt = 0, sysAuth; |
|
public String userId, sql = null; |
|
public PrintWriter out = null; |
|
public StringBuffer sbuf = new StringBuffer(); |
|
public String grade=""; |
|
|
|
public MakeJSon(HttpServletRequest req, HttpServletResponse res) { |
|
try { |
|
res.setContentType("text/html;charset=UTF-8"); |
|
sysAuth = HttpSSOLogin.getSysAuth(req); |
|
userId = HttpSSOLogin.getLoginID(req); |
|
out = res.getWriter(); |
|
String id = req.getParameter("id"); |
|
//String rootId = req.getParameter("rootId"); |
|
String rootId = MString.checkNull(req.getParameter("rootId"), null); |
|
String deptId = req.getParameter("rel"); |
|
|
|
String userYN = MString.checkNull(req.getParameter("userYN"), "N"); |
|
String gubun = MString.checkNull(req.getParameter("gubun"), "ORGAN"); |
|
grade = MString.checkNull(req.getParameter("grade"), ""); |
|
if (rootId == null || rootId.equals("null") || rootId.equals("ROOT")) { |
|
rootId = null; |
|
} |
|
sbuf.append("["); |
|
if (gubun.equals("COMMON")) { |
|
makeGroupCommonSql(id, userId); |
|
group2JSon(id); |
|
} else if (gubun.equals("AREA")) { |
|
makeGroupAreaSql(id, userId); |
|
group2JSon(id); |
|
} else if (gubun.equals("DEPT")) { |
|
makeGroupDeptSql(id, userId, deptId); |
|
group2JSon(id); |
|
} else { |
|
makeTreeSql(id, rootId); |
|
dept2JSon(); |
|
if (userYN.equals("Y")) { |
|
user2JSon(id); |
|
} |
|
} |
|
sbuf.append("]"); |
|
if (dataCnt > 0) { |
|
sbuf.deleteCharAt(sbuf.lastIndexOf(",")); |
|
} |
|
out.println(sbuf.toString()); |
|
//44.적절하지 않은 예외처리(광범위예외클래스)_CWE-754 Add by YOUNGJUN,CHO |
|
} catch(IOException ioex) { |
|
ioex.printStackTrace(); |
|
//++++++++++++++++++++++++++++++++++++++++++++++++ |
|
} catch (Exception ex) { |
|
ex.printStackTrace(); |
|
} |
|
} |
|
|
|
|
|
public void makeGroupCommonSql(String id, String userId) { |
|
sql = null; |
|
if (id.equals("ROOT")) { |
|
sql = "SELECT UP.ID AS PART_ID \n"; |
|
sql += " , UP.NAME AS DEPT_NAME \n"; |
|
sql += " , UP.USER_ID \n"; |
|
sql += " , UP.ID AS DEPT_ID \n"; |
|
sql += " , 'closed' AS STATE \n"; |
|
sql += " , '' AS ORGAN_DEPT_NAME \n"; //2014.09.17 Add by KWON,HAN |
|
sql += " , '' AS UPPER_DEPT_NAME \n"; //2014.09.17 Add by KWON,HAN |
|
sql += " , COUNT(UD.PART_ID) AS PART_ID_COUNT \n"; |
|
sql += " FROM MOUMI_USER_DEPT UD \n"; |
|
sql += " , MOUMI_USER_PART UP \n"; |
|
sql += " , MOUMI_DEPT DT \n"; |
|
sql += " WHERE UD.PART_ID = UP.ID \n"; |
|
sql += " AND UP.USE_YN = 'Y' \n"; |
|
sql += " AND UD.ID = DT.ID \n"; |
|
sql += " AND DT.SEL_TYPE='Y' \n"; // 2014.12.19 YOUNGJUN.CHO (공식부서만 조회되도록 조건 추가, SEL_TYPE = 'Y') |
|
sql += " AND DT.IS_OUT='N' \n"; // 2014.09.22 BY YOUNGJUN CHO(폐교 제외조건 추가) |
|
sql += " AND UP.USER_ID IN (SELECT ID FROM MOUMI_MUSER WHERE SYS_AUTH=9) \n"; |
|
sql += " GROUP BY UP.ID, UP.NAME, UP.USER_ID \n"; |
|
sql += " ORDER BY UP.NAME \n"; |
|
//System.out.println("MakeJSon.makeGroupCommonSql 1:::id.equals(ROOT)::\n" + sql); |
|
return; |
|
} else { |
|
//2014.09.17 Update by KWON.HAN |
|
sql = "SELECT A.PART_ID \n"; |
|
sql += " , A.NAME AS DEPT_NAME \n"; |
|
sql += " , '' AS USER_ID \n"; |
|
sql += " , A.ID AS DEPT_ID \n"; |
|
sql += " , 'opened' AS STATE \n"; |
|
sql += " , ( SELECT name FROM moumi_dept where id = ( CASE WHEN dt.id = dt.organ AND dt.upper_dept IS NOT NULL \n"; |
|
sql += " THEN ( SELECT organ FROM moumi_dept where id = dt.upper_dept ) \n"; |
|
sql += " ELSE dt.organ END ) \n"; |
|
sql += " ) AS ORGAN_DEPT_NAME \n"; |
|
sql += " , ( SELECT name FROM moumi_dept where id = dt.upper_dept ) AS UPPER_DEPT_NAME \n"; |
|
sql += " FROM MOUMI_USER_DEPT A \n"; |
|
sql += " , MOUMI_DEPT DT \n"; |
|
sql += " WHERE A.PART_ID = '" + id + "' \n"; |
|
sql += " AND A.ID = DT.ID \n"; |
|
sql += " AND DT.SEL_TYPE='Y' \n"; // 2014.12.19 YOUNGJUN.CHO (공식부서만 조회되도록 조건 추가, SEL_TYPE = 'Y') |
|
sql += " AND DT.IS_OUT='N' \n"; // 2014.09.22 BY YOUNGJUN CHO(폐교 제외조건 추가) |
|
sql += " ORDER BY A.NAME \n"; |
|
|
|
//System.out.println("MakeJSon.makeGroupCommonSql 2:::::\n" + sql); |
|
return; |
|
} |
|
} |
|
|
|
public void makeGroupAreaSql(String id, String userId) { |
|
sql = null; |
|
if (id.equals("ROOT")) { |
|
sql = " SELECT UP.ID AS PART_ID \n"; |
|
sql += " , UP.NAME AS DEPT_NAME \n"; |
|
sql += " , UP.USER_ID \n"; |
|
sql += " , UP.ID AS DEPT_ID \n"; |
|
sql += " , 'closed' AS STATE \n"; |
|
sql += " , '' AS ORGAN_DEPT_NAME \n"; //2014.09.17 Add by KWON,HAN |
|
sql += " , '' AS UPPER_DEPT_NAME \n"; //2014.09.17 Add by KWON,HAN |
|
sql += " , COUNT(UD.PART_ID) AS PART_ID_COUNT \n"; |
|
sql += " FROM MOUMI_USER_DEPT UD \n"; |
|
sql += " , MOUMI_USER_PART UP \n"; |
|
sql += " , MOUMI_DEPT DT \n"; |
|
sql += " WHERE UD.PART_ID = UP.ID \n"; |
|
sql += " AND UP.USE_YN = 'Y' \n"; |
|
sql += " AND UD.ID=DT.ID \n"; |
|
sql += " AND DT.SEL_TYPE='Y' \n"; // 2014.12.19 YOUNGJUN.CHO (공식부서만 조회되도록 조건 추가, SEL_TYPE = 'Y') |
|
sql += " AND DT.IS_OUT='N' \n"; // 2014.09.22 BY YOUNGJUN CHO(폐교 제외조건 추가) |
|
sql += " AND UP.USER_ID IN ( \n"; |
|
sql += " SELECT US.ID \n"; |
|
sql += " FROM MOUMI_MUSER US \n"; |
|
sql += " , MOUMI_DEPT DT \n"; |
|
sql += " WHERE US.SYS_AUTH=7 \n"; |
|
sql += " AND US.DEPT_ID = DT.ID \n"; |
|
sql += " AND DT.SEL_TYPE='Y' \n"; // 2014.12.19 YOUNGJUN.CHO (공식부서만 조회되도록 조건 추가, SEL_TYPE = 'Y') |
|
sql += " AND DT.IS_OUT='N' \n"; // 2014.09.22 BY YOUNGJUN CHO(폐교 제외조건 추가) |
|
sql += " AND DT.ORGAN = ( SELECT DT.ORGAN \n"; |
|
sql += " FROM MOUMI_MUSER US \n"; |
|
sql += " , MOUMI_DEPT DT \n"; |
|
sql += " WHERE US.ID='" + userId + "' \n"; |
|
sql += " AND US.DEPT_ID = DT.ID \n"; |
|
sql += " AND DT.SEL_TYPE='Y' \n"; // 2014.12.19 YOUNGJUN.CHO (공식부서만 조회되도록 조건 추가, SEL_TYPE = 'Y') |
|
sql += " AND DT.IS_OUT='N' \n"; // 2014.09.22 BY YOUNGJUN CHO(폐교 제외조건 추가) |
|
sql += " ) \n"; |
|
sql += " ) \n"; |
|
sql += " GROUP BY UP.ID, UP.NAME, UP.USER_ID \n"; |
|
sql += " ORDER BY UP.NAME \n"; |
|
|
|
//System.out.println("MakeJSon.makeGroupAreaSql:::id.equals(ROOT)::\n" + sql); |
|
return; |
|
} else { |
|
//2014.09.17 Update by KWON.HAN |
|
sql = "SELECT A.PART_ID \n"; |
|
sql += " , A.NAME AS DEPT_NAME \n"; |
|
sql += " , '' AS USER_ID \n"; |
|
sql += " , A.ID AS DEPT_ID \n"; |
|
sql += " , 'opened' AS STATE \n"; |
|
sql += " , ( SELECT name FROM moumi_dept where id = ( CASE WHEN dt.id = dt.organ AND dt.upper_dept IS NOT NULL \n"; |
|
sql += " THEN ( SELECT organ FROM moumi_dept where id = dt.upper_dept ) \n"; |
|
sql += " ELSE dt.organ END ) \n"; |
|
sql += " ) AS ORGAN_DEPT_NAME \n"; |
|
sql += " , ( SELECT name FROM moumi_dept where id = dt.upper_dept ) AS UPPER_DEPT_NAME \n"; |
|
sql += " FROM MOUMI_USER_DEPT A \n"; |
|
sql += " , MOUMI_DEPT DT \n"; |
|
sql += " WHERE A.PART_ID = '" + id + "' \n"; |
|
sql += " AND A.ID = DT.ID \n"; |
|
sql += " AND DT.SEL_TYPE='Y' \n"; // 2014.12.19 YOUNGJUN.CHO (공식부서만 조회되도록 조건 추가, SEL_TYPE = 'Y') |
|
sql += " AND DT.IS_OUT='N' \n"; // 2014.09.22 BY YOUNGJUN CHO(폐교 제외조건 추가) |
|
sql += " ORDER BY A.NAME \n"; |
|
|
|
//System.out.println("MakeJSon.makeGroupAreaSql:::::\n" + sql); |
|
return; |
|
} |
|
} |
|
|
|
public void makeGroupDeptSql(String id, String userId, String deptId) { |
|
sql = null; |
|
if (id.equals("ROOT")) { |
|
sql = " SELECT UP.ID AS PART_ID \n"; |
|
sql += " , UP.NAME AS DEPT_NAME \n"; |
|
sql += " , UP.USER_ID \n"; |
|
sql += " , UP.ID AS DEPT_ID \n"; |
|
sql += " , 'closed' AS STATE \n"; |
|
sql += " , '' AS ORGAN_DEPT_NAME \n"; //2014.09.17 Add by KWON,HAN |
|
sql += " , '' AS UPPER_DEPT_NAME \n"; //2014.09.17 Add by KWON,HAN |
|
sql += " , COUNT(UD.PART_ID) AS PART_ID_COUNT \n"; |
|
sql += " FROM \n"; |
|
sql += " MOUMI_USER_DEPT UD \n"; |
|
sql += " , MOUMI_USER_PART UP \n"; |
|
sql += " , MOUMI_DEPT DT \n"; |
|
sql += " WHERE \n"; |
|
sql += " UD.PART_ID = UP.ID \n"; // 2014.12.19 YOUNGJUN.CHO (공식부서만 조회되도록 조건 추가, SEL_TYPE = 'Y') |
|
sql += " AND UP.USE_YN = 'Y' \n"; // 2014.09.22 BY YOUNGJUN CHO(폐교 제외조건 추가) |
|
sql += " AND UD.ID = DT.ID \n"; // 2014.09.22 BY YOUNGJUN CHO(폐교 제외조건 추가) |
|
sql += " AND DT.SEL_TYPE='Y' \n"; |
|
sql += " AND DT.IS_OUT='N' \n"; |
|
sql += " AND UP.USER_ID IN ( \n"; |
|
sql += " select us.id \n"; |
|
sql += " from moumi_muser us \n"; |
|
sql += " where us.dept_id = \n"; |
|
sql += " ( SELECT US.DEPT_ID \n"; |
|
sql += " FROM MOUMI_MUSER US \n"; |
|
sql += " WHERE US.ID='" + userId + "' \n"; |
|
sql += " ) \n"; |
|
sql += " ) \n"; |
|
sql += " GROUP BY UP.ID, UP.NAME, UP.USER_ID \n"; |
|
sql += " ORDER BY UP.NAME \n"; |
|
|
|
//System.out.println("MakeJSon.makeGroupDeptSql:::id.equals(ROOT)::\n" + sql); |
|
return; |
|
} else { |
|
//2014.09.17 Update by KWON.HAN |
|
sql = "SELECT A.PART_ID \n"; |
|
sql += " , A.NAME AS DEPT_NAME \n"; |
|
sql += " , '' AS USER_ID \n"; |
|
sql += " , A.ID AS DEPT_ID \n"; |
|
sql += " , 'opened' AS STATE \n"; |
|
sql += " , ( SELECT name FROM moumi_dept where id = ( CASE WHEN dt.id = dt.organ AND dt.upper_dept IS NOT NULL \n"; |
|
sql += " THEN ( SELECT organ FROM moumi_dept where id = dt.upper_dept ) \n"; |
|
sql += " ELSE dt.organ END ) \n"; |
|
sql += " ) AS ORGAN_DEPT_NAME \n"; |
|
sql += " , ( SELECT name FROM moumi_dept where id = dt.upper_dept ) AS UPPER_DEPT_NAME \n"; |
|
sql += " FROM MOUMI_USER_DEPT A \n"; |
|
sql += " , MOUMI_DEPT DT \n"; |
|
sql += " WHERE A.PART_ID = '" + id + "' \n"; |
|
sql += " AND A.ID = DT.ID \n"; |
|
sql += " AND DT.SEL_TYPE='Y' \n"; // 2014.12.19 YOUNGJUN.CHO (공식부서만 조회되도록 조건 추가, SEL_TYPE = 'Y') |
|
sql += " AND DT.IS_OUT='N' \n"; // 2014.09.22 BY YOUNGJUN CHO(폐교 제외조건 추가) |
|
sql += " ORDER BY A.NAME \n"; |
|
|
|
//System.out.println("MakeJSon.makeGroupDeptSql:::::\n" + sql); |
|
return; |
|
} |
|
} |
|
|
|
public void group2JSon(String id) { |
|
int ii = 0; |
|
ResultSet rs = null; |
|
String partId, deptName, userId, deptId, upper, organ, seltype, pri, state = "closed"; |
|
partId = deptName = userId = deptId = upper = organ = seltype = pri = ""; |
|
|
|
//2014.09.17 Add by KWON,HAN +++ |
|
String organdeptname; |
|
String upperdeptname; |
|
organdeptname = ""; |
|
upperdeptname = ""; |
|
//+++++++++++++++++++++++++++++++ |
|
|
|
try { |
|
rs = execQuery(sql); |
|
if (rs == null) { |
|
return; |
|
} |
|
while (rs.next()) { |
|
partId = MString.checkNull(rs.getString(1)); |
|
deptName = MString.checkNull(rs.getString(2)); |
|
if (id.equals("ROOT")) { |
|
//deptName = new GroupCount().getCount(partId, deptName); |
|
deptName = deptName + "(" + MString.checkNull(rs.getString(8), "0") + ")"; |
|
} |
|
userId = MString.checkNull(rs.getString(3)); |
|
deptId = MString.checkNull(rs.getString(4)); |
|
state = MString.checkNull(rs.getString(5)); |
|
|
|
organdeptname = MString.checkNull(rs.getString(6)); //2014.09.17 Add by KWON,HAN |
|
upperdeptname = MString.checkNull(rs.getString(7)); //2014.09.17 Add by KWON,HAN |
|
|
|
sbuf.append("{ \"data\":\"" + deptName + "\",\"attr\": { \"ID\":\"" + deptId + "\", "); |
|
sbuf.append("\"UPPER\":\"" + upper + "\",\"ORGAN\":\"" + organ + "\", \"SELTYPE\":\"" + seltype + "\", "); |
|
sbuf.append("\"deptname\":\"" + deptName + "\","); //2014.09.17 Add by KWON,HAN |
|
sbuf.append("\"organdeptname\":\"" + organdeptname + "\","); //2014.09.17 Add by KWON,HAN |
|
sbuf.append("\"upperdeptname\":\"" + upperdeptname + "\","); //2014.09.17 Add by KWON,HAN |
|
sbuf.append("\"PRI\":\"" + pri + "\",\"rel\":\"GROUP\"},\"state\" : \"" + state + "\"}"); |
|
sbuf.append(","); |
|
dataCnt++; |
|
|
|
} |
|
close(rs); |
|
pstmt.close(); |
|
//44.적절하지 않은 예외처리(광범위예외클래스)_CWE-754 Add by YOUNGJUN,CHO |
|
} catch(SQLException sqlex) { |
|
sqlex.printStackTrace(); |
|
//++++++++++++++++++++++++++++++++++++++++++++++++ |
|
} catch (Exception ex) { |
|
ex.printStackTrace(); |
|
} finally { |
|
if (rs != null) { |
|
close(rs); |
|
} |
|
execClose(); |
|
} |
|
} |
|
|
|
public void makeTreeSql(String id, String rootId) { |
|
sql = null; |
|
if (rootId != null) { |
|
sql = "SELECT dt.ID, dt.NAME, dt.UPPER_DEPT, dt.ORGAN, \n"; |
|
sql += " ( CASE WHEN dt.SEL_TYPE='Y' AND dt.SEL_TYPE<>'0' THEN 1 ELSE 0 END ) AS SEL_TYPE, dt.PRIORITY \n"; |
|
sql += " , ( SELECT name FROM moumi_dept where id = ( CASE WHEN dt.id = dt.organ AND dt.upper_dept IS NOT NULL \n"; |
|
sql += " THEN ( SELECT organ FROM moumi_dept where id = dt.upper_dept ) \n"; |
|
sql += " ELSE dt.organ END ) \n"; |
|
sql += " ) AS ORGAN_DEPT_NAME \n"; |
|
sql += " , ( SELECT name FROM moumi_dept where id = dt.upper_dept ) AS UPPER_DEPT_NAME \n"; |
|
sql += "FROM MOUMI_DEPT dt \n"; |
|
sql += "WHERE dt.ORGAN IS NOT NULL AND dt.ID='" + rootId + "' \n"; |
|
sql += " AND DT.IS_OUT='N' \n"; // 2014.09.22 BY YOUNGJUN CHO(폐교 제외조건 추가) |
|
|
|
// 매일 2회 batch 실행시, 직속기관인경우 직속기관의 ORGAN 컬럼을 ID 로 UPDATE 하는 경우에 or 조건은 주석처리한다. |
|
// 사용자가 속한 부서의 상위기관까지만 조회되도록 한다. |
|
// 2014.09.16 by youngjun cho. |
|
//sql+=" OR (UPPER_DEPT='"+rootId+"' AND ID=ORGAN) \n"; |
|
sql += "ORDER BY dt.NAME \n"; |
|
|
|
//System.out.println("::makeTreeSql:::rootId!=null:id::::"+id+"::::::::rootId::::::::"+rootId); |
|
|
|
return; |
|
} |
|
if (id.equals("ROOT")) { |
|
sql = "SELECT dt.ID, dt.NAME, dt.UPPER_DEPT, dt.ORGAN, \n"; |
|
sql += " ( CASE WHEN SEL_TYPE='Y' AND SEL_TYPE<>'0' THEN 1 ELSE 0 END ) AS SEL_TYPE, dt.PRIORITY \n"; |
|
sql += " , ( SELECT name FROM moumi_dept where id = ( CASE WHEN dt.id = dt.organ AND dt.upper_dept IS NOT NULL \n"; |
|
sql += " THEN ( SELECT organ FROM moumi_dept where id = dt.upper_dept ) \n"; |
|
sql += " ELSE dt.organ END ) \n"; |
|
sql += " ) AS ORGAN_DEPT_NAME \n"; |
|
sql += " , ( SELECT name FROM moumi_dept where id = dt.upper_dept ) AS UPPER_DEPT_NAME \n"; |
|
sql += "FROM MOUMI_DEPT dt \n"; |
|
sql += "WHERE dt.ORGAN IS NOT NULL AND dt.UPPER_DEPT IS NULL \n"; |
|
sql += " AND dt.SYS_AUTH<3 \n"; |
|
sql += " AND DT.IS_OUT='N' \n"; // 2014.09.22 BY YOUNGJUN CHO(폐교 제외조건 추가) |
|
sql += "ORDER BY dt.NAME \n"; |
|
|
|
//System.out.println("::makeTreeSql:::id.equals(ROOT):::id::::"+id+"::::::::rootId::::::::"+rootId); |
|
System.out.println(sql); |
|
return; |
|
} |
|
|
|
sql = "SELECT dt.ID, dt.NAME, dt.UPPER_DEPT, dt.ORGAN, \n"; |
|
sql += " ( CASE WHEN dt.SEL_TYPE='Y' AND dt.SEL_TYPE<>'0' THEN 1 ELSE 0 END ) AS SEL_TYPE, dt.PRIORITY \n"; |
|
sql += " , ( SELECT name FROM moumi_dept where id = ( CASE WHEN dt.id = dt.organ AND dt.upper_dept IS NOT NULL \n"; |
|
sql += " THEN ( SELECT organ FROM moumi_dept where id = dt.upper_dept ) \n"; |
|
sql += " ELSE dt.organ END ) \n"; |
|
sql += " ) AS ORGAN_DEPT_NAME \n"; |
|
sql += " , ( SELECT name FROM moumi_dept where id = dt.upper_dept ) AS UPPER_DEPT_NAME \n"; |
|
sql += "FROM MOUMI_DEPT dt \n"; |
|
sql += "WHERE dt.UPPER_DEPT='" + id + "' AND dt.ID <> dt.UPPER_DEPT AND dt.SYS_AUTH < 6 \n"; |
|
|
|
// 제출기관지정시 폐교된 학교는 조회되지 않도록 한다.(IS_OUT : 'Y'= 폐교됨 / 'N'= 폐교안됨) |
|
// 매일 2회 batch 실행시, TC_SYMOCMOC000 테이블의 ORG_UON 컬럼값으로 체크하여 MOUMI_DEPT(IS_OUT) 을 UPDATE 한다. |
|
// (ORG_UON : 'Y' = 폐교안됨 / 'N' = 폐교됨) |
|
// 2014.09.16 by youngjun cho. |
|
sql += " AND dt.IS_OUT = 'N' \n"; |
|
|
|
//기관관리자일때 유초중고직속사용자는 제외 by wonseok Lee 20171108 |
|
if(grade.equals("N")) { |
|
sql += " AND dt.SEL_TYPE='Y' \n"; |
|
} |
|
sql += "ORDER BY dt.NAME \n"; |
|
|
|
//System.out.println("makeTreeSql:::::\n"+sql); |
|
return; |
|
} |
|
|
|
|
|
public void dept2JSon() { |
|
int ii = 0; |
|
ResultSet rs = null; |
|
String deptId, name, upper, organ, seltype, pri; |
|
deptId = name = upper = organ = seltype = pri = null; |
|
|
|
//2014.09.17 Add by KWON,HAN +++ |
|
String organdeptname; |
|
String upperdeptname; |
|
organdeptname = ""; |
|
upperdeptname = ""; |
|
//+++++++++++++++++++++++++++++++ |
|
|
|
//System.out.println("dept2JSon:::::\n"+sql); |
|
try { |
|
rs = execQuery(sql); |
|
if (rs == null) { |
|
return; |
|
} |
|
while (rs.next()) { |
|
deptId = MString.checkNull(rs.getString(1)); |
|
name = MString.checkNull(rs.getString(2)); |
|
upper = MString.checkNull(rs.getString(3)); |
|
organ = MString.checkNull(rs.getString(4)); |
|
seltype = MString.checkNull(rs.getString(5)); |
|
pri = MString.checkNull(rs.getString(6)); |
|
|
|
organdeptname = MString.checkNull(rs.getString(7)); //2014.09.17 Add by KWON,HAN |
|
upperdeptname = MString.checkNull(rs.getString(8)); //2014.09.17 Add by KWON,HAN |
|
|
|
sbuf.append("{ \"data\":\"" + name + "\",\"attr\": { \"ID\":\"" + deptId + "\", "); |
|
sbuf.append("\"UPPER\":\"" + upper + "\",\"ORGAN\":\"" + organ + "\", \"SELTYPE\":\"" + seltype + "\", "); |
|
sbuf.append("\"deptname\":\"" + name + "\","); //2014.09.17 Add by KWON,HAN |
|
sbuf.append("\"organdeptname\":\"" + organdeptname + "\","); //2014.09.17 Add by KWON,HAN |
|
sbuf.append("\"upperdeptname\":\"" + upperdeptname + "\","); //2014.09.17 Add by KWON,HAN |
|
sbuf.append("\"PRI\":\"" + pri + "\",\"rel\":\"DEPT\"},\"state\" : \"closed\"}"); |
|
sbuf.append(","); |
|
dataCnt++; |
|
|
|
} |
|
close(rs); |
|
pstmt.close(); |
|
//44.적절하지 않은 예외처리(광범위예외클래스)_CWE-754 Add by YOUNGJUN,CHO |
|
} catch(SQLException sqlex) { |
|
sqlex.printStackTrace(); |
|
//++++++++++++++++++++++++++++++++++++++++++++++++ |
|
} catch (Exception ex) { |
|
ex.printStackTrace(); |
|
} finally { |
|
if (rs != null) { |
|
close(rs); |
|
} |
|
execClose(); |
|
} |
|
} |
|
|
|
public void user2JSon(String id) { |
|
|
|
//System.out.println("GRADE>>>>>>>>"+grade); |
|
int ii = 0; |
|
ResultSet rs = null; |
|
String userId, name, sysAuth; |
|
String subSysadm = Integer.toString(SysAuth.SUB_SYSADM.ordinal()); //2014.10.15 Add by KWON,HAN |
|
String deptName; //2014.08.26 Add by KWON,HAN |
|
//2014.08.26 Update by KWON,HAN |
|
//sql="SELECT ID,sp_cm_dec_fu(NAME),sys_auth, DEPT_ID FROM MOUMI_MUSER WHERE DEL_TYPE='N' AND DEPT_ID='"+id+"'"; |
|
//기관관리자일때 유초중고직속사용자는 제외 by wonseok Lee 20171108 |
|
if(grade.equals("N")){ |
|
sql = "SELECT * FROM ( SELECT ID,sp_cm_dec_fu(NAME),sys_auth, (SELECT X.NAME FROM MOUMI_DEPT X WHERE X.ID = DEPT_ID AND ROWNUM = 1), (SELECT X.GRADE FROM MOUMI_DEPT X WHERE X.ID = DEPT_ID AND ROWNUM = 1) FROM MOUMI_MUSER WHERE DEL_TYPE='N' AND DEPT_ID='" + id + "' ORDER BY NAME_GENCPT ) A WHERE A.GRADE IS NULL"; |
|
} |
|
else { |
|
sql = "SELECT ID,sp_cm_dec_fu(NAME),sys_auth, (SELECT X.NAME FROM MOUMI_DEPT X WHERE X.ID = DEPT_ID AND ROWNUM = 1) FROM MOUMI_MUSER WHERE DEL_TYPE='N' AND DEPT_ID='" + id + "' ORDER BY NAME"; |
|
} |
|
|
|
//System.out.println("sql:::::"+sql); |
|
try { |
|
rs = execQuery(sql); |
|
if (rs == null) { |
|
return; |
|
} |
|
while (rs.next()) { |
|
userId = MString.checkNull(rs.getString(1)); |
|
name = MString.checkNull(rs.getString(2)); |
|
sysAuth = MString.checkNull(rs.getString(3)); |
|
deptName = MString.checkNull(rs.getString(4)); //2014.08.26 Add by KWON,HAN |
|
|
|
//2014.10.15 Update by KWON,HAN |
|
sbuf.append("{ \"data\":\"" + name + "(" + userId + ")"); |
|
if(sysAuth.equals("9")) { |
|
sbuf.append(" [시스템관리자]"); |
|
}else if(sysAuth.equals("7")){ |
|
sbuf.append(" [기관관리자]"); |
|
}else if(sysAuth.equals("6")){ |
|
sbuf.append(" [부서관리자]"); |
|
}else if(sysAuth.equals("5")){ |
|
sbuf.append(" [학교관리자]"); |
|
} |
|
sbuf.append("\","); |
|
sbuf.append("\"attr\": { \"ID\":\"" + userId + "\", \"SYSAUTH\":\"" + sysAuth + "\","); |
|
//============================= |
|
sbuf.append("\"name\":\"" + name + "\","); //2014.08.26 Add by KWON,HAN |
|
sbuf.append("\"deptid\":\"" + id + "\","); //2014.08.26 Add by KWON,HAN |
|
sbuf.append("\"deptname\":\"" + deptName + "\","); //2014.08.26 Add by KWON,HAN |
|
sbuf.append("\"rel\":\"USER\"},\"state\" : \"opened\"}"); |
|
sbuf.append(","); |
|
dataCnt++; |
|
} |
|
close(rs); |
|
pstmt.close(); |
|
|
|
//44.적절하지 않은 예외처리(광범위예외클래스)_CWE-754 Add by YOUNGJUN,CHO |
|
} catch(SQLException sqlex) { |
|
sqlex.printStackTrace(); |
|
//++++++++++++++++++++++++++++++++++++++++++++++++ |
|
} catch (Exception ex) { |
|
ex.printStackTrace(); |
|
} finally { |
|
if (rs != null) { |
|
close(rs); |
|
} |
|
execClose(); |
|
} |
|
} |
|
}
|
|
|