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.
352 lines
11 KiB
352 lines
11 KiB
/*********************************************************************************** |
|
* @@ Program Name : Dept.java Description : 부서 관련정보 Author : 강원중 Create Date : 2004.10.13 History : |
|
* @@ |
|
***********************************************************************************/ |
|
|
|
package kr.co.kihyun.beans.user; |
|
|
|
import java.sql.ResultSet; |
|
import java.sql.SQLException; |
|
import kr.co.kihyun.beans.entity.Emul; |
|
import kr.co.kihyun.beans.entity.MDept; |
|
import kr.co.kihyun.beans.entity.MUser; |
|
import kr.co.kihyun.beans.entity.MoumiEntity; |
|
import kr.co.kihyun.beans.entity.UserDept; |
|
import kr.co.kihyun.beans.entity.UserUser; |
|
|
|
import kr.co.kihyun.db.DBManager; |
|
import kr.co.kihyun.moumi.MoumiConfig; |
|
|
|
import org.slf4j.Logger; |
|
import org.slf4j.LoggerFactory; |
|
|
|
public class Dept extends DBManager { |
|
private static final Logger LOG = LoggerFactory.getLogger(Dept.class); |
|
|
|
public static String[] gradeName = { "유치원", "초등학교", "중학교", "고등학교", "기타기관" }; |
|
|
|
private ResultSet rs = null; |
|
|
|
/******** 부서이름 가져오기 ********/ |
|
public String getName(String id) { |
|
StringBuilder sql = new StringBuilder(50); |
|
|
|
String name = ""; |
|
try { |
|
sql.append("select name from ").append(MoumiEntity.getTableName(MDept.class)).append(" where id=?"); |
|
//System.out.println("Dept test1:::::"+sql); |
|
rs = execQuery(sql.toString(), id); |
|
|
|
if (rs.next()) { |
|
name = rs.getString(1); |
|
} |
|
return name; |
|
} catch (SQLException sqlEx) { |
|
LOG.error("\nSQLState - {}\nMySQL Error Code - {}\nmessage - {}\nsql - {}", |
|
new Object[] { sqlEx.getSQLState(), sqlEx.getErrorCode(), sqlEx.getMessage(), sql }); |
|
throw new RuntimeException(sqlEx); |
|
} catch (Exception ex) { |
|
throw new RuntimeException(ex); |
|
} finally { |
|
close(rs); |
|
execClose(); |
|
} |
|
} |
|
|
|
/******** 해당부서의 기관 가져오기 ********/ |
|
public String getPartID(String id) { |
|
StringBuilder sql = new StringBuilder(50); |
|
|
|
String partID = null; |
|
try { |
|
sql.append("select organ from ").append(MoumiEntity.getTableName(MDept.class)).append(" where id=?"); |
|
//System.out.println("Dept test2:::::"+sql); |
|
rs = execQuery(sql, id); |
|
|
|
if (rs.next()) { |
|
partID = rs.getString(1); |
|
} |
|
return partID; |
|
} catch (SQLException sqlEx) { |
|
LOG.error("\nSQLState - {}\nMySQL Error Code - {}\nmessage - {}\nsql - {}", |
|
new Object[] { sqlEx.getSQLState(), sqlEx.getErrorCode(), sqlEx.getMessage(), sql }); |
|
throw new RuntimeException(sqlEx); |
|
} catch (Exception ex) { |
|
throw new RuntimeException(ex); |
|
} finally { |
|
close(rs); |
|
execClose(); |
|
} |
|
} |
|
|
|
public String getInsertPartID(String id) { |
|
StringBuilder sql = new StringBuilder(50).append("select upper_dept from ") |
|
.append(MoumiEntity.getTableName(MDept.class)).append(" where id=?"); |
|
|
|
//System.out.println("Dept test3::::"+sql); |
|
String upperID = id; |
|
|
|
while (upperID != null) { |
|
try { |
|
rs = execQuery(sql, upperID); |
|
upperID = rs.next() ? rs.getString(1) : null; |
|
LOG.debug("getInsertPartID - {} ", id); |
|
} catch (SQLException sqlEx) { |
|
LOG.error("\nSQLState - {}\nMySQL Error Code - {}\nmessage - {}\nsql - {}", |
|
new Object[]{sqlEx.getSQLState(), sqlEx.getErrorCode(), sqlEx.getMessage(), sql}); |
|
throw new RuntimeException(sqlEx); |
|
} catch (Exception ex) { |
|
throw new RuntimeException(ex); |
|
} finally { |
|
close(rs); |
|
execClose(); |
|
} |
|
} |
|
|
|
return id; |
|
} |
|
|
|
public String getPartName(String id) { |
|
StringBuilder sql = new StringBuilder(100); |
|
String partName = ""; |
|
|
|
try { |
|
sql.append("select udt.name from ") |
|
.append(MoumiEntity.getTableName(MDept.class)).append(" dt, ") |
|
.append(MoumiEntity.getTableName(MDept.class)).append(" udt where dt.id=? and udt.id=dt.organ"); |
|
rs = execQuery(sql, id); |
|
|
|
if (rs.next()) { |
|
partName = rs.getString(1); |
|
} |
|
|
|
return partName; |
|
} catch (SQLException sqlEx) { |
|
LOG.error("Could not get name of MDept@" + id); |
|
throw new RuntimeException(sqlEx); |
|
} catch (Exception ex) { |
|
throw new RuntimeException(ex); |
|
} finally { |
|
close(rs); |
|
execClose(); |
|
} |
|
} |
|
|
|
/* |
|
* 2014.09.18 Add by KWON,HAN : |
|
* - 부서ID와 기관코드ID와 같고 상위부서ID가 존재하는 경우에 상위부서ID의 기관코드명을 조회한다. |
|
* 즉, 강릉교육청-지역교육청-강릉교육청 ==> 강원도교육청-지역교육청-강릉교육청 으로 표시되도록 변경함. |
|
*/ |
|
public String getOrganNameOfUpperDept(String id) { |
|
StringBuilder sql = new StringBuilder(100); |
|
String partName = ""; |
|
|
|
try { |
|
sql.append("select udt.name from ") |
|
.append(MoumiEntity.getTableName(MDept.class)).append(" dt, ") |
|
//.append(MoumiEntity.getTableName(MDept.class)).append(" udt where dt.id=? and udt.id=dt.organ"); |
|
.append(MoumiEntity.getTableName(MDept.class)).append(" udt where dt.id=? and udt.id=( CASE WHEN dt.id = dt.organ AND dt.upper_dept IS NOT NULL THEN ( SELECT organ FROM ") |
|
.append(MoumiEntity.getTableName(MDept.class)).append(" where id = dt.upper_dept ) ELSE dt.organ END )") ; |
|
rs = execQuery(sql, id); |
|
|
|
//System.out.println("Dept.getOrganNameOfUpperDept:::::::::::::::"); |
|
//System.out.println("sql = "+sql); |
|
//System.out.println("id = "+id); |
|
//System.out.println("::::::::::::::::::::::::::::::::::::::::::"); |
|
|
|
if (rs.next()) { |
|
partName = rs.getString(1); |
|
} |
|
|
|
return partName; |
|
} catch (SQLException sqlEx) { |
|
LOG.error("Could not get name of MDept@" + id); |
|
throw new RuntimeException(sqlEx); |
|
} catch (Exception ex) { |
|
throw new RuntimeException(ex); |
|
} finally { |
|
close(rs); |
|
execClose(); |
|
} |
|
} |
|
|
|
public String getUpperDeptName(String id) { |
|
StringBuilder sql = new StringBuilder(100); |
|
String upperDeptName = ""; |
|
try { |
|
sql.append("select udt.name from ").append(MoumiEntity.getTableName(MDept.class)).append(" dt, ") |
|
.append(MoumiEntity.getTableName(MDept.class)).append(" udt ") |
|
.append("where dt.id=? and udt.id=dt.upper_dept"); |
|
rs = execQuery(sql, id); |
|
|
|
//System.out.println("Dept test5::::"+sql); |
|
|
|
if (rs.next()) { |
|
upperDeptName = rs.getString(1); |
|
} |
|
return upperDeptName; |
|
} catch (SQLException sqlEx) { |
|
LOG.error("\nSQLState - {}\nMySQL Error Code - {}\nmessage - {}\nsql - {}", |
|
new Object[] { sqlEx.getSQLState(), sqlEx.getErrorCode(), sqlEx.getMessage(), sql }); |
|
throw new RuntimeException(sqlEx); |
|
} catch (Exception ex) { |
|
throw new RuntimeException(ex); |
|
} finally { |
|
close(rs); |
|
execClose(); |
|
} |
|
} |
|
|
|
/******** 프로젝트 목록을 배열에 입력 ********/ |
|
public int getCount(String partID) { |
|
StringBuilder sql = new StringBuilder(90); |
|
int count = 0; |
|
try { |
|
sql.append("select count(id) from ").append(MoumiEntity.getTableName(MDept.class)) |
|
.append(" where organ=? and sys_auth < ?"); |
|
|
|
//System.out.println("Dept test6::::"+sql); |
|
|
|
rs = execQuery(sql, partID, MoumiConfig.SUB_TOTADM); |
|
if (rs.next()) { |
|
count = rs.getInt(1); |
|
} |
|
return count; |
|
} catch (SQLException sqlEx) { |
|
LOG.error("\nSQLState - {}\nMySQL Error Code - {}\nmessage - {}\nsql - {}", |
|
new Object[] { sqlEx.getSQLState(), sqlEx.getErrorCode(), sqlEx.getMessage(), sql }); |
|
throw new RuntimeException(sqlEx); |
|
} catch (Exception ex) { |
|
throw new RuntimeException(ex); |
|
} finally { |
|
close(rs); |
|
execClose(); |
|
} |
|
} |
|
|
|
public String[] getMultiUserList(String id) { |
|
StringBuilder sql = new StringBuilder(150); |
|
int count = 0; |
|
String[] userList = null; |
|
try { |
|
sql.append("select em.user_id from ").append(MoumiEntity.getTableName(Emul.class)).append(" em, ") |
|
.append(MoumiEntity.getTableName(MUser.class)).append(" us ") |
|
.append("where em.dept_id=? and us.id=em.user_id and (us.del_type='0' or us.del_type='N')"); |
|
|
|
//System.out.println("Dept test7:::::"+sql); |
|
|
|
rs = execQuery(sql, id); |
|
if (rs != null) { |
|
rs.last(); |
|
count = rs.getRow(); |
|
rs.beforeFirst(); |
|
} else { |
|
return null; |
|
} |
|
|
|
userList = new String[count]; |
|
|
|
for (int i = 0; rs.next(); i++) { |
|
userList[i] = rs.getString(1) + "/" + id; |
|
} |
|
return userList; |
|
} catch (SQLException sqlEx) { |
|
LOG.error("\nSQLState - {}\nMySQL Error Code - {}\nmessage - {}\nsql - {}", |
|
new Object[] { sqlEx.getSQLState(), sqlEx.getErrorCode(), sqlEx.getMessage(), sql }); |
|
throw new RuntimeException(sqlEx); |
|
} catch (Exception ex) { |
|
throw new RuntimeException(ex); |
|
} finally { |
|
close(rs); |
|
execClose(); |
|
} |
|
} |
|
|
|
public String getConverDeptIDs(String deptIDs, String deptTypes) { |
|
StringBuilder sql = new StringBuilder(60); |
|
try { |
|
String[] deptIDList = deptIDs.split(","); |
|
String[] deptTypeList = deptTypes.split(","); |
|
StringBuilder returnDeptIDs = new StringBuilder(250); |
|
|
|
for (int i = 0; i < deptIDList.length; i++) { |
|
if (deptTypeList[i].equals("group")) { |
|
if (i == 0) { |
|
sql.append("select id from ").append(MoumiEntity.getTableName(UserDept.class)) |
|
.append(" where part_id=?"); |
|
|
|
//System.out.println("Dept test8:::::"+sql); |
|
rs = execQuery(sql, deptIDList[i]); |
|
|
|
for (int j = 0; rs.next(); j++) { |
|
if (returnDeptIDs.length() == 0) |
|
returnDeptIDs.append(rs.getString(1)); |
|
else |
|
returnDeptIDs.append(",").append(rs.getString(1)); |
|
} |
|
|
|
close(rs); |
|
execClose(); |
|
|
|
sql.append("select id, dept_id from ").append(MoumiEntity.getTableName(UserUser.class)) |
|
.append(" where part_id=?"); |
|
|
|
//System.out.println("Dept test9::::::"+sql); |
|
|
|
rs = execQuery(sql, deptIDList[i]); |
|
|
|
for (int j = 0; rs.next(); j++) { |
|
if (returnDeptIDs.length() == 0) |
|
returnDeptIDs.append(rs.getString(1)).append("/").append(rs.getString(2)); |
|
else |
|
returnDeptIDs.append(",").append(rs.getString(1)).append("/").append(rs.getString(2)); |
|
} |
|
|
|
close(rs); |
|
execClose(); |
|
} else { |
|
sql.append("select id from ").append(MoumiEntity.getTableName(UserDept.class)) |
|
.append(" where part_id=?"); |
|
|
|
//System.out.println("Dept test10:::::"+sql); |
|
rs = execQuery(sql, deptIDList[i]); |
|
|
|
for (int j = 0; rs.next(); j++) |
|
returnDeptIDs.append(",").append(rs.getString(1)); |
|
|
|
close(rs); |
|
execClose(); |
|
|
|
sql.append("select id, dept_id from ").append(MoumiEntity.getTableName(UserUser.class)) |
|
.append(" where part_id=?"); |
|
|
|
//System.out.println("Dept test11::::"+sql); |
|
rs = execQuery(sql, deptIDList[i]); |
|
|
|
for (int j = 0; rs.next(); j++) |
|
returnDeptIDs.append(",").append(rs.getString(1)).append("/").append(rs.getString(2)); |
|
|
|
close(rs); |
|
execClose(); |
|
} |
|
} else { |
|
if (i == 0) |
|
returnDeptIDs.append(deptIDList[i]); |
|
else |
|
returnDeptIDs.append(",").append(deptIDList[i]); |
|
} |
|
} |
|
|
|
return returnDeptIDs.toString(); |
|
} catch (SQLException sqlEx) { |
|
LOG.error("\nSQLState - {}\nMySQL Error Code - {}\nmessage - {}\nsql - {}", |
|
new Object[] { sqlEx.getSQLState(), sqlEx.getErrorCode(), sqlEx.getMessage(), sql }); |
|
throw new RuntimeException(sqlEx); |
|
} catch (Exception ex) { |
|
throw new RuntimeException(ex); |
|
} finally { |
|
close(rs); |
|
execClose(); |
|
} |
|
} |
|
}
|
|
|