package kr.co.kihyun.beans.batch; import java.io.FileNotFoundException; import java.io.IOException; import java.io.PrintWriter; import java.security.cert.X509Certificate; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import java.util.Arrays; import java.util.Calendar; import java.util.Map; import javax.net.ssl.SSLContext; import org.apache.http.conn.ssl.SSLConnectionSocketFactory; import org.apache.http.conn.ssl.TrustStrategy; import org.apache.http.impl.client.CloseableHttpClient; import org.apache.http.impl.client.HttpClients; import org.json.JSONException; import org.json.simple.JSONArray; import org.json.simple.JSONObject; import org.json.simple.parser.JSONParser; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.core.ParameterizedTypeReference; import org.springframework.http.HttpEntity; import org.springframework.http.HttpHeaders; import org.springframework.http.HttpMethod; import org.springframework.http.MediaType; import org.springframework.http.client.HttpComponentsClientHttpRequestFactory; import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter; import org.springframework.web.client.RestTemplate; import kr.co.kihyun.db.DBManager; import kr.co.kihyun.db.FixMeJDOException; import kr.co.kihyun.lang.MString; public class GroupConinfoUp extends DBManager { private static final Logger LOG = LoggerFactory.getLogger(GroupConinfoUp.class); private ResultSet rs = null; private int count = 0; PreparedStatement pstmt = null; Statement stmt = null; PrintWriter out = null; public void updateMoumiDept() { Calendar oCalendar = Calendar.getInstance(); // 현재 날짜/시간 등의 각종 정보 얻기 Integer yyCompare = oCalendar.get(Calendar.YEAR); Integer monCompare = (oCalendar.get(Calendar.MONTH) + 1); Integer dayCompare = oCalendar.get(Calendar.DAY_OF_MONTH); Integer hourCompare = oCalendar.get(Calendar.HOUR_OF_DAY); String dateCompare = Integer.toString(yyCompare) + "-" + Integer.toString(monCompare) + "-" + Integer.toString(dayCompare) + " " + "01:00:00";// 2012-07-01 01:00:00 StringBuilder sql = null; try { GroupInfoConnector gic = new GroupInfoConnector(); int start = 1; String id; String rootCode; String name; String parentCode; int iSuccessCount = 0; sql = getDeptSql(); String[] deptArr = null; while (start == 1 || deptArr.length == 1000) { deptArr = gic.getDeptFullTextData(start); for (int i = 0; i < deptArr.length; i++) { String[] deptColInfo = deptArr[i].split("§"); id = deptColInfo[6]; rootCode = deptColInfo[5]; name = deptColInfo[7]; parentCode = deptColInfo[9]; if ("ROOT".equals(parentCode)) { parentCode = null; } addBatch(sql.toString(), id, name, id, id, rootCode, parentCode); } iSuccessCount += execBatch(); start += 1000; } //LOG.info(":::: 부서 : " + iSuccessCount); LOG.info("부서 동기화 작업 성공"); return; } 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 void updateMoumiMuser() { Calendar oCalendar = Calendar.getInstance(); // 현재 날짜/시간 등의 각종 정보 얻기 Integer yyCompare = oCalendar.get(Calendar.YEAR); Integer monCompare = (oCalendar.get(Calendar.MONTH) + 1); Integer dayCompare = oCalendar.get(Calendar.DAY_OF_MONTH); Integer hourCompare = oCalendar.get(Calendar.HOUR_OF_DAY); String dateCompare = Integer.toString(yyCompare) + "-" + Integer.toString(monCompare) + "-" + Integer.toString(dayCompare) + " " + "01:00:00";// 2012-07-01 01:00:00 String delYn; StringBuilder sql = null; try { GroupInfoConnector gic = new GroupInfoConnector(); int start = 1; String id; String name; String deptId; String dutyName; int iSuccessCount = 0; sql = getUserSql(); String[] userArr = null; while (start == 1 || userArr.length == 1000) { userArr = gic.getUserFullTextData(start); for (int i = 0; i < userArr.length; i++) { String[] userColInfo = userArr[i].split("§"); id = userColInfo[7]; name = userColInfo[8]; deptId = userColInfo[5]; dutyName = userColInfo[17]; delYn = "N"; if (!"1".equals(userColInfo[2])) { delYn = "Y"; } addBatch(sql.toString(), id, name, deptId, delYn, dutyName); } iSuccessCount += execBatch(); start += 1000; } //LOG.info(":::: 사용자 : " + iSuccessCount); LOG.info("사용자 동기화 작업 성공"); return; } 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 void updateDelMoumiDept() { StringBuilder sql = new StringBuilder(250); try { sql.append(" UPDATE DPMOUOWN.MOUMI_DEPT SET IS_OUT='Y' "); int iSuccessCount = execUpdate(sql.toString()); LOG.info("부서 사용유무 N으로 변경"); return; } 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 void updateDelMoumiMuser() { StringBuilder sql = new StringBuilder(250); try { sql.append(" UPDATE DPMOUOWN.MOUMI_MUSER SET DEL_TYPE='Y' WHERE ID != 'admin' \n"); System.out.print("\n::::DelMoumiMuser::::\n" + sql.toString()); int iSuccessCount = execUpdate(sql.toString()); //LOG.info(":::: 사용자 사용유무 N으로 변경 : " + iSuccessCount); LOG.info("사용자 사용유무 N으로 변경"); return; } 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 StringBuilder getDeptSql() throws FileNotFoundException, SQLException, FixMeJDOException, IOException { StringBuilder sql = new StringBuilder(250); sql.append( "MERGE INTO MOUMI.MOUMI_DEPT A \n"); sql.append( "USING ( \n"); sql.append( " SELECT ? AS ID \n"); sql.append( " , ? AS NAME \n"); sql.append( " , ? AS ORGAN \n"); sql.append( " , ? AS PASSCODE \n"); sql.append( " , ? AS ROOT_DEPT \n"); sql.append( " , ? AS UPPER_DEPT \n"); sql.append( " , ? AS UPPER_DEPT FROM DUAL \n"); sql.append( ") B \n"); sql.append( "ON (A.ID = B.ID) \n"); sql.append( "WHEN NOT MATCHED THEN \n"); sql.append( " INSERT ( \n"); sql.append( " A.ID, \n"); sql.append( " A.NAME, \n"); sql.append( " A.ORGAN, \n"); sql.append( " A.PASSCODE, \n"); sql.append( " A.ROOT_DEPT, \n"); sql.append( " A.UPPER_DEPT, \n"); sql.append( " A.SEL_TYPE, \n"); sql.append( " A.IS_OUT, \n"); sql.append( " A.PRIORITY, \n"); sql.append( " A.SYS_AUTH \n"); sql.append( " ) \n"); sql.append( " VALUES ( \n"); sql.append( " B.ID, \n"); sql.append( " B.NAME, \n"); sql.append( " B.ORGAN, \n"); sql.append( " B.PASSCODE, \n"); sql.append( " B.ROOT_DEPT, \n"); sql.append( " B.UPPER_DEPT, \n"); sql.append( " 'Y', \n"); sql.append( " 'N', \n"); sql.append( " 0, \n"); sql.append( " 2 \n"); sql.append( ") \n"); sql.append( "WHEN MATCHED THEN UPDATE SET \n"); sql.append( "A.ROOT_DEPT = B.ROOT_DEPT, \n"); sql.append( "A.NAME = B.NAME, \n"); sql.append( "A.IS_OUT = 'N', \n"); sql.append( "A.PASSCODE = B.PASSCODE, \n"); sql.append( "A.ORGAN = B.ORGAN, \n"); sql.append( "A.UPPER_DEPT = B.UPPER_DEPT \n"); //setSql(sql); return sql; } public StringBuilder getUserSql() throws FileNotFoundException, SQLException, FixMeJDOException, IOException { StringBuilder sql = new StringBuilder(250); sql.append( "MERGE INTO MOUMI.MOUMI_MUSER A \n"); sql.append( "USING ( \n"); sql.append( " SELECT ? AS ID \n"); sql.append( " , ? AS NAME \n"); sql.append( " , ? AS DEPT_ID \n"); sql.append( " , ? AS DEL_TYPE \n"); sql.append( " , ? AS DUTY_NAME FROM DUAL \n"); sql.append( ") B \n"); sql.append( "ON (A.ID = B.ID) \n"); sql.append( "WHEN NOT MATCHED THEN \n"); sql.append( " INSERT ( \n"); sql.append( " A.ID, \n"); sql.append( " A.NAME, \n"); sql.append( " A.DEPT_ID, \n"); sql.append( " A.DUTY_NAME, \n"); sql.append( " A.SYS_AUTH, \n"); sql.append( " A.PASSWD, \n"); sql.append( " A.MOD_YN, \n"); sql.append( " A.DEL_TYPE, \n"); sql.append( " A.DUAL_POST_YN \n"); sql.append( " ) \n"); sql.append( " VALUES ( \n"); sql.append( " B.ID, \n"); sql.append( " B.NAME, \n"); sql.append( " B.DEPT_ID, \n"); sql.append( " B.DUTY_NAME, \n"); sql.append( " 2, \n"); sql.append( " '1', \n"); sql.append( " 'N', \n"); sql.append( " 'N', \n"); sql.append( " 'N' \n"); sql.append( ") \n"); sql.append( "WHEN MATCHED THEN UPDATE SET \n"); sql.append( "A.NAME = B.NAME, \n"); sql.append( "A.DEPT_ID = B.DEPT_ID, \n"); sql.append( "A.DEL_TYPE = B.DEL_TYPE, \n"); sql.append( "A.DUTY_NAME = B.DUTY_NAME \n"); System.out.println("sql append ==== " + sql ); setSql(sql); System.out.println("sql append set sql ==== " + sql ); return sql; } public void getUserSync() throws JSONException { StringBuilder sql = null; String scheme = "https"; HttpComponentsClientHttpRequestFactory factory = null; try { //ssl 일 경우 if (scheme.contains("https")) { TrustStrategy acceptingTrustStrategy = (X509Certificate[] chain, String authType) -> true; SSLContext sslContext = org.apache.http.ssl.SSLContexts.custom().loadTrustMaterial(null, acceptingTrustStrategy).build(); SSLConnectionSocketFactory csf = new SSLConnectionSocketFactory(sslContext); CloseableHttpClient httpClient = HttpClients.custom().setSSLSocketFactory(csf).build(); factory = new HttpComponentsClientHttpRequestFactory(httpClient); System.out.println("factory user=== \n" + factory); } else { factory = new HttpComponentsClientHttpRequestFactory(); } //factory = new HttpComponentsClientHttpRequestFactory(); System.out.println("factory 222 ==== " + factory ); RestTemplate restTemplate = new RestTemplate(factory); System.out.println("restTemplate ==== " + restTemplate ); String jSon = "";//"{\"pageSize\" : \"5\", \"pageNum\" : \"1\", \"sttsCd\":\"GNFL000300001\"}"; HttpHeaders httpHeaders = new HttpHeaders(); httpHeaders.add("X-KNU-API-KEY", "lJwJUyM9tqxdIISEUndJVmNIydwSAKn1"); httpHeaders.add("X-KNU-USER-ID", "moumi.web"); httpHeaders.add("Content-Type","application/json"); System.out.println("httpHeaders ==== " + httpHeaders ); int pageSize =300; int totalPages=1; int iSuccessCount = 0; String tempJsonString1[]; String tempJsonString2[]; System.out.println("sql 0000000 ==== " + sql ); //sql = getUserSql(); System.out.println("sql 1111111 ==== " + sql ); for(int page=1; page <= totalPages; page ++) { jSon = "{\"pageSize\" : \""+pageSize+"\", \"pageNum\" : \""+page+"\", \"sttsCd\":\"GNFL000300001\"}"; System.out.println("jSon ==== " + jSon ); HttpEntity httpEntity = new HttpEntity(jSon,httpHeaders); System.out.println("httpEntity ==== " + httpEntity ); MappingJackson2HttpMessageConverter mappingJackson2HttpMessageConverter = new MappingJackson2HttpMessageConverter(); System.out.println("mappingJackson2HttpMessageConverter ==== " + mappingJackson2HttpMessageConverter ); mappingJackson2HttpMessageConverter.setSupportedMediaTypes(Arrays.asList(MediaType.APPLICATION_JSON, MediaType.APPLICATION_OCTET_STREAM)); restTemplate.getMessageConverters().add(mappingJackson2HttpMessageConverter); System.out.println("restTemplate ==== " + restTemplate ); //운영: https://cmmnn-api.knu.ac.kr:9080/openapi/cmmnn/support/user/selectlistidntcno Map result1 = restTemplate.exchange("http://dev-cmmnn-api.knu.ac.kr:9080/openapi/cmmnn/support/user/selectlistidntcno" , HttpMethod.POST , httpEntity , new ParameterizedTypeReference>() {} ).getBody(); result1.forEach((key, value) -> System.out.println(">>>>>result1 key: " + key + ", value: " + value)); if ((int)result1.get("statusCode")==200) { String dutyName = null;//교수 교원 String id = null; String deptId = null;//DEPT_ID K10 String name = null;//NAME String passwd = null;//PASSWD 1 String sysAuth = null;//SYS_AUTH 2 String email = null;//EMAIL String jsonString1 = result1.get("data").toString(); //데이터를 json형식으로 치환 jsonString1 = jsonString1.replace("=", "\":\""); jsonString1 = jsonString1.replace("{", "{\""); jsonString1 = jsonString1.replace(", ", "\", \""); jsonString1 = jsonString1.replace("\"yhchoi@knu.ac.kr\", \"228choi@hanmail.net\"","\"yhchoi@knu.ac.kr\""); jsonString1 = jsonString1.replace("\"{\"", "{\""); jsonString1 = jsonString1.replace("}\",", "\"},"); jsonString1 = jsonString1.replace("\"[","["); jsonString1 = jsonString1.replace("]\"","]"); jsonString1 = jsonString1.replace("}]","\"}]"); jsonString1 = jsonString1.replace("}}","\"}}"); System.out.println(">>>>>jsonString1: " + jsonString1); //외국인들 한글 이름에 포함된 ',' 삭제 tempJsonString1 = jsonString1.split(", \"itttnCd\""); System.out.println(">>>>>tempJsonString1 length: " + tempJsonString1.length); for(int j=0; j>>>>tempJsonString1:["+j+"]"+ tempJsonString1[j]); tempJsonString2 = tempJsonString1[j].split("\"korNm\":"); System.out.println(">>>>>대상"+ tempJsonString2[1]); System.out.println(">>>>>치환"+ tempJsonString2[1].replace("\", \"", " ")); jsonString1 = jsonString1.replace(tempJsonString2[1], tempJsonString2[1].replace("\", \"", " ")); } System.out.println(">>>>>jsonString1: " + jsonString1); JSONObject jsonObject = new JSONObject(); JSONParser parser = new JSONParser(); jsonObject = (JSONObject)parser.parse(jsonString1); JSONArray jsonArray1 = (JSONArray)jsonObject.get("data"); Map paging = (Map)jsonObject.get("paging"); System.out.println("paging : " +paging); if(page==1) { totalPages = Integer.parseInt(paging.get("totalPages").toString()); } for (Object value : jsonArray1) { JSONObject v = (JSONObject) value; id = MString.checkNull(v.get("userId").toString()); dutyName = MString.checkNull(v.get("clspsNm").toString()); deptId = MString.checkNull(v.get("itttnCd").toString()); name = MString.checkNull(v.get("korNm").toString()); email = MString.checkNull(v.get("email").toString()); System.out.println("sttsCd userYN ===== \n" +MString.checkNull(v.get("sttsCd").toString())); sql = getUserSql(); //System.out.println("sql>>>>>"+sql); System.out.println("userId : [" + id+ "], dutyName : [" + dutyName+ "], deptId : [" + deptId+ "], name : [" + name+ "], email : [" + email+"]"); addBatch(sql.toString(), id, name, deptId, "N", dutyName); iSuccessCount += execBatch(); System.out.println("iSuccessCount>>>>>"+iSuccessCount); break; } } } } catch(Exception e) { System.out.println(e); e.printStackTrace(); } finally { return; } } public void getDeptSync() throws JSONException { StringBuilder sql = null; String scheme = "https"; HttpComponentsClientHttpRequestFactory factory = null; try { //ssl 일 경우 if (scheme.contains("https")) { TrustStrategy acceptingTrustStrategy = (X509Certificate[] chain, String authType) -> true; System.out.println("acceptingTrustStrategy dept=== \n" + acceptingTrustStrategy); SSLContext sslContext = org.apache.http.ssl.SSLContexts.custom().loadTrustMaterial(null, acceptingTrustStrategy).build(); System.out.println("sslContext dept=== \n" + sslContext); SSLConnectionSocketFactory csf = new SSLConnectionSocketFactory(sslContext); System.out.println("csf dept=== \n" + csf); CloseableHttpClient httpClient = HttpClients.custom().setSSLSocketFactory(csf).build(); System.out.println("httpClient dept=== \n" + httpClient); factory = new HttpComponentsClientHttpRequestFactory(httpClient); System.out.println("factory dept=== \n" + factory); } else { factory = new HttpComponentsClientHttpRequestFactory(); } RestTemplate restTemplate = new RestTemplate(factory); String jSon = ""; HttpHeaders httpHeaders = new HttpHeaders(); httpHeaders.add("X-KNU-API-KEY", "lJwJUyM9tqxdIISEUndJVmNIydwSAKn1"); httpHeaders.add("X-KNU-USER-ID", "moumi.web"); httpHeaders.add("Content-Type","application/json"); int pageSize =1; int totalPages=1; int iSuccessCount = 0; String tempJsonString1[]; String tempJsonString2[]; String rightKorNm = null; String wrongKorNm = null; sql = getDeptSql(); // for(int page=1; page <= totalPages; page ++) { jSon = "{\"pageSize\" : \""+pageSize+"\", \"pageNum\" : \"1\"}"; HttpEntity httpEntity = new HttpEntity(jSon,httpHeaders); MappingJackson2HttpMessageConverter mappingJackson2HttpMessageConverter = new MappingJackson2HttpMessageConverter(); mappingJackson2HttpMessageConverter.setSupportedMediaTypes(Arrays.asList(MediaType.APPLICATION_JSON, MediaType.APPLICATION_OCTET_STREAM)); restTemplate.getMessageConverters().add(mappingJackson2HttpMessageConverter); System.out.println("httpEntity ==== " + httpEntity ); //운영: https://cmmnn-api.knu.ac.kr:9080/openapi/cmmnn/support/itttn/selectlistitttn Map result1 = restTemplate.exchange("http://dev-cmmnn-api.knu.ac.kr:9080/openapi/cmmnn/support/itttn/selectlistitttn" , HttpMethod.POST , httpEntity , new ParameterizedTypeReference>() {} ).getBody(); result1.forEach((key, value) -> System.out.println(">>>>>result1 key: " + key + ", value: " + value)); if ((int)result1.get("statusCode")==200) { String id = null; //itttnCd String name = null; //itttnNm String priority = null; //lvl String organ = null; //cmpsClscd String passCode = null; // String rootDept = null; //0 String upperDept= null; //upperItttnCd String selType = null; //dprtmUseSttcd: CMST001100001(사용) Y, N String isOut = null; //N String seqNum = null; //0 String sysAuth = null; //2 String jsonString1 = result1.get("data").toString(); //데이터를 json형식으로 치환 jsonString1 = jsonString1.replace("=", "\":\""); jsonString1 = jsonString1.replace("{", "{\""); jsonString1 = jsonString1.replace(", ", "\", \""); jsonString1 = jsonString1.replace("\"{\"", "{\""); jsonString1 = jsonString1.replace("}\",", "\"},"); jsonString1 = jsonString1.replace("\"[","["); jsonString1 = jsonString1.replace("]\"","]"); jsonString1 = jsonString1.replace("}]","\"}]"); jsonString1 = jsonString1.replace("}}","\"}}"); // //외국인들 한글 이름에 포함된 ',' 삭제 // tempJsonString1 = jsonString1.split(", \"itttnCd\""); // System.out.println(">>>>>tempJsonString1 length: " + tempJsonString1.length); // // // for(int j=0; j>>>>tempJsonString1:["+j+"]"+ tempJsonString1[j]); // tempJsonString2 = tempJsonString1[j].split("\"korNm\":"); // System.out.println(">>>>>대상"+ tempJsonString2[1]); // System.out.println(">>>>>치환"+ tempJsonString2[1].replace("\", \"", " ")); // jsonString1 = jsonString1.replace(tempJsonString2[1], tempJsonString2[1].replace("\", \"", " ")); // } //jsonString1="{\"data\":[{\"rowIndex\":\"0\", \"success\":\"false\", \"message\":\"null\", \"pageSize\":\"100\", \"pageNum\":\"1\", \"lvl\":\"1\", \"itttnCd\":\"0\", \"itttnNm\":\"경북대학교(총괄)\", \"hdqrtEdcncSctcd\":\"null\", \"hdqrtEdcncSctcdNm\":\"null\", \"upperItttnNm\":\"null\", \"dprtmLvlRank\":\"1\", \"dprtmSn\":\"1\", \"itttnGrpCd\":\"null\", \"itttnGrpCdNm\":\"null\", \"lwstDprtmYn\":\"null\", \"offclDprtmYn\":\"null\", \"dprtmBeginDt\":\"18991231\", \"dprtmEndDt\":\"99991231\", \"itttnAbbnm\":\"null\", \"otpuItttnNm\":\"null\", \"dprtmUseSttcd\":\"CMST001100001\", \"dprtmUseSttcdNm\":\"사용\", \"cmpsClscd\":\"null\", \"cmpsClscdNm\":\"null\", \"orgnnSctcd\":\"null\", \"orgnnSctcdNm\":\"null\", \"dngtSctcd\":\"null\", \"dngtSctcdNm\":\"null\", \"rmrk\":\"null\", \"upperItttnCd\":\"null\", \"admnsStnrdDtalCdVal\":\"null\", \"dprtnChrceSctcd\":\"null\", \"dprtnChrceSctcdNm\":\"null\", \"rprsnFaxNo\":\"null\", \"rprsnTelno\":\"null\", \"mgmntItttnCd\":\"null\", \"paging\":\"false\", \"rowStatus\":\"R\", \"pageSort\":\"null\"}, {\"rowIndex\":\"0\", \"success\":\"false\", \"message\":\"null\", \"pageSize\":\"100\", \"pageNum\":\"1\", \"lvl\":\"2\", \"itttnCd\":\"01\", \"itttnNm\":\"총장(영문)\", \"hdqrtEdcncSctcd\":\"CMST000900001\", \"hdqrtEdcncSctcdNm\":\"본부\", \"upperItttnNm\":\"경북대학교(총괄)\", \"dprtmLvlRank\":\"2\", \"dprtmSn\":\"1\", \"itttnGrpCd\":\"null\", \"itttnGrpCdNm\":\"null\", \"lwstDprtmYn\":\"null\", \"offclDprtmYn\":\"null\", \"dprtmBeginDt\":\"18991231\", \"dprtmEndDt\":\"99991231\", \"itttnAbbnm\":\"null\", \"otpuItttnNm\":\"null\", \"dprtmUseSttcd\":\"CMST001100001\", \"dprtmUseSttcdNm\":\"사용\", \"cmpsClscd\":\"null\", \"cmpsClscdNm\":\"null\", \"orgnnSctcd\":\"null\", \"orgnnSctcdNm\":\"null\", \"dngtSctcd\":\"null\", \"dngtSctcdNm\":\"null\", \"rmrk\":\"null\", \"upperItttnCd\":\"null\", \"admnsStnrdDtalCdVal\":\"null\", \"dprtnChrceSctcd\":\"null\", \"dprtnChrceSctcdNm\":\"null\", \"rprsnFaxNo\":\"null\", \"rprsnTelno\":\"null\", \"mgmntItttnCd\":\"null\", \"paging\":\"false\", \"rowStatus\":\"R\", \"pageSort\":\"null\"}]}"; jsonString1="{\"data\":"+jsonString1+"}"; System.out.println(">>>>>jsonString11: "+ jsonString1); JSONObject jsonObject = new JSONObject(); JSONParser parser = new JSONParser(); jsonObject = (JSONObject)parser.parse(jsonString1); JSONArray jsonArray1 = (JSONArray)jsonObject.get("data"); // Map paging = (Map)jsonObject.get("paging"); // System.out.println("paging : " +paging); // if(page==1) { // totalPages = Integer.parseInt(paging.get("totalPages").toString()); // } for (Object value : jsonArray1) { JSONObject v = (JSONObject) value; // String id = null; //itttnCd // String name = null; //itttnNm // String organ = null; //cmpsClscd // String passCode = null; //id // String rootDept = null; //0 // String upperDept= null; //upperItttnCd // String priority = null; //lvl // String selType = null; //Y // String isOut = null; //N dprtmUseSttcd:CMST001100001(사용) // String seqNum = null; //0 // String sysAuth = null; //2 id = MString.checkNull(v.get("itttnCd").toString()); name = MString.checkNull(v.get("itttnNm").toString()); //priority = v.get("lvl").toString(); organ = MString.checkNull(v.get("itttnGrpCd").toString()); passCode = MString.checkNull(v.get("itttnCd").toString()); rootDept = "0"; upperDept = MString.checkNull(v.get("upperItttnCd").toString()); System.out.println("dprtmUseSttcd useYN ===== \n" +MString.checkNull(v.get("dprtmUseSttcd").toString())); System.out.println("offclDprtmYn regYN ===== \n" +MString.checkNull(v.get("offclDprtmYn").toString())); if(id.equals("0")) { organ="0"; }else if(id.length() > 1){ organ=id.substring(0,1); }else { organ =id; } System.out.println("id : ["+ id+"]" + ", name : [" + name+"]" + ", organ : [" + organ+"]" + ", passCode : [" + passCode+"]" + ", rootDept : [" + rootDept+"]" + ", upperDept : [" + upperDept+"]"); addBatch(sql.toString(), id, name, organ, passCode, rootDept, upperDept); iSuccessCount += execBatch(); System.out.println("iSuccessCount>>>>>"+iSuccessCount); break; } } } catch(Exception e) { System.out.println(e); } finally { return; } } }