From 24f640d21a5f937b25bffa198baa6cad561a23d3 Mon Sep 17 00:00:00 2001 From: minuk926 Date: Wed, 22 Jun 2022 17:38:13 +0900 Subject: [PATCH] feat: mpower --- .../com/xit/core/util/mpower/MpowerUtils.java | 918 ++++++++++++++++++ 1 file changed, 918 insertions(+) create mode 100644 src/main/java/com/xit/core/util/mpower/MpowerUtils.java diff --git a/src/main/java/com/xit/core/util/mpower/MpowerUtils.java b/src/main/java/com/xit/core/util/mpower/MpowerUtils.java new file mode 100644 index 0000000..05bd5f6 --- /dev/null +++ b/src/main/java/com/xit/core/util/mpower/MpowerUtils.java @@ -0,0 +1,918 @@ +package com.xit.core.util.mpower; + +import com.plf.client.Client; +import com.xit.core.util.CommUtil; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.codec.binary.StringUtils; +import org.apache.ibatis.mapping.BoundSql; +import org.apache.ibatis.mapping.ParameterMapping; +import org.apache.ibatis.session.SqlSession; + +import java.io.UnsupportedEncodingException; +import java.lang.reflect.InvocationTargetException; +import java.lang.reflect.Method; +import java.net.URLDecoder; +import java.net.URLEncoder; +import java.nio.charset.StandardCharsets; +import java.sql.*; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +@Slf4j +public class MpowerUtils { + //DBName Properties +// static String DbName2 = PropertiesUtil.getValue("Globals.DBName"); + static String DbName2 = "gn"; + + + Client mpower = null; + static Client mpower2 = null; + //static String hostip = "115.21.123.19"; + static String hostip = "127.0.0.1"; + static int port = 9999; + static String query = ""; + String wholeQuery = ""; + //protected static Logger logger = Logger.getLogger(MpowerUtil.class.getName()); + static ArrayList feilds = new ArrayList(); + static String feild = ""; + static String tmpFeilds = ""; + static Boolean RowNum = false; + static String tableNm = ""; + static String WhereStr = ""; + static String Orderby = ""; + static int pageIndex = 0; + static int firstIndex = 0; + static int lastIndex = 10; + static int recordCountPerPage = 10; + static String beforeXml = ""; + static String afterXmlsp = "]]>"; + static Boolean pagingYn = false; + + + //Ps변수 + static String Params = ""; + static String finalParams = ""; + static String threeXml = ""; + static String threeXmlEnd = ""; + static String forXmlEnd = ""; + static int psParamCount = 0; + static String psFinalFarams =""; + static String QueryXml = ""; + + //static String vioPhoto = PropertiesUtil.getValue("Globals.vioPhoto"); //주정차사진경로 + static String vioPhoto = ""; + //static String vioPhotoBus = PropertiesUtil.getValue("Globals.vioPhotoBus"); //버스사진경로 + static String vioPhotoBus = ""; + //static String tunullingFile = PropertiesUtil.getValue("Globals.tunullingFile"); //터널링서버에 복사되는 첨부파일 위치 + static String tunullingFile = ""; + + public void setQuery(String query){ + MpowerUtils.query = query; + } + + public void setRowNum(boolean truefalse){ + RowNum = truefalse; + } + + public void setPageIndex(int pi){ + pageIndex = pi; + } + + public void setRecordCountPerPage(int rcpp){ + recordCountPerPage = rcpp; + } + + public int getRecordCountPerPage(){ + return recordCountPerPage; + } + + public String getWholeQuery() { + return wholeQuery; + } + + public void setWholeQuery(String wholeQuery) { + this.wholeQuery = wholeQuery; + } + + public void setFeild(String feildNm){ + feilds.add(feildNm); + } + + public void setFeild2(String feildNm){ + feild = feildNm; + } + + public void setTableNm(String tNm){ + tableNm = tNm; + } + public void setWhereStr(String whr){ + WhereStr += whr; + } + public void setOrderby(String ob){ + Orderby += ob; + } + + public int getFirstIndex() { + return (pageIndex - 1) * recordCountPerPage +1; + } + + public int getLastIndex() { + return lastIndex = pageIndex * recordCountPerPage; + } + + public void setPagingYn(Boolean yn){ + pagingYn = yn; + } + + public void AddParam(String inputType,String Val){ + psParamCount ++; + Params += ""; + } + + //kkj추가 + public void AddParam2(String inputType,long Val){ + psParamCount ++; + Params += ""; + } + + public void setParamsBody(){ + Params = "" + Params + ""; + + afterXmlsp = "]]>"; + forXmlEnd = ""; + } + + public void setSPQuerysBody(){ + QueryXml = beforeXmlsp + tableNm + "(" +psFinalFarams + ")" + afterXmlsp + Params + forXmlEnd; + } + + public void AddFinalParam(int count){ + for(int i=0;i PsQuery() throws Exception{ + //EgovMap resultEgov = new EgovMap(); + Map resultEgov = new HashMap<>(); + try{ + AddFinalParam(psParamCount); + setParamsBody(); + setSPQuerysBody(); + resultEgov = connreturnMpwoer(QueryXml); + }catch(Exception e) + { + e.printStackTrace(); + }finally{ + clearValidation(); + } + return resultEgov; + } + + public Map connreturnMpwoer(String psQuery) throws Exception{ + mpower = new Client(hostip,port); + mpower.getConnection("MPowerXmlToQuery.xmlQuery1"); + mpower.setInput("SQLXML", psQuery); + mpower.Request(); + //EgovMap eMap = new EgovMap(); + Map eMap = new HashMap<>(); + eMap.put("result",mpower.getString("result", 0, 0)); + + int cnt = 1; + for( int i = 0 ; i < mpower.getMaxCol("list1"); i++){ + eMap.put("list"+cnt,mpower.getString("list1", 0, i)); + cnt ++; + } + return eMap; + } + + public List> selectQuery() { + String fileList = ""; + for(int cnt = 0;cnt mList = new ArrayList(); + List> mList= new ArrayList>(); + + try { + mpower = new Client(hostip,port); + mpower.getConnection("MPowerXmlToQuery.xmlQuery1"); + mpower.setInput("SQLXML", query); + mpower.Request(); + String result = mpower.getString("result", 0, 0); + System.out.println("#######$$$$$$$$$$$$$$$$$$"+result); + + int row; + if (result.equals("true")){ + row = mpower.getMaxRow("list1"); + if(row>0){ + for(int i=0;i m = new HashMap<>(); + for(int j=0;j(); + tableNm = ""; + WhereStr = ""; + Orderby = ""; + } + + return mList; + } + + private void clearValidation() { + query = ""; + feilds = new ArrayList(); + tableNm = ""; + WhereStr = ""; + Orderby=""; + psParamCount = 0; + QueryXml = ""; + Params = ""; + psFinalFarams = ""; + recordCountPerPage = 10; + feild = ""; + } + + + /** + * @ 페이징 처리 SELECT 호출 + * @return + */ + public Map selectListQuery() { + //EgovMap mListMap = new EgovMap(); + Map mListMap = new HashMap<>(); + //배열로 넘어온 필드를 String 오브젝트로 변형 + String fileList = ""; + for(int cnt = 0;cnt(); + this.setFeilds("RN, "+tmpFeilds); + } + + //List mList = new ArrayList(); + List> mList = new ArrayList<>(); + System.out.println("mlistmlist"); + System.out.println(mList); + System.out.println("mlistmlist"); + int mListCount = 0; + try { + mpower = new Client(hostip,port); + mpower.getConnection("MPowerXmlToQuery.xmlQuery1"); + mpower.setInput("SQLXML", query); + mpower.Request(); + String result = mpower.getString("result", 0, 0); + int row = 0; + if (result.equals("true")){ + row = mpower.getMaxRow("list1"); + if(row>0){ + for(int i=0;i m = new HashMap<>(); + for(int j=0;j0){ + mpower = new Client(hostip,port); + mpower.getConnection("MPowerXmlToQuery.xmlQuery1"); + mpower.setInput("SQLXML", Cquery); + mpower.Request(); + + String strList1 = mpower.getString("list1", 0, 0); + + if( !strList1.equals("") && strList1 != null){ + mListCount = Integer.parseInt(strList1); + } + mpower.disconnect(); + } + + } catch (Exception e) { + e.printStackTrace(); + } finally{ + clearValidation(); + } + System.out.println("엠리스트트트트트"); + System.out.println(mListCount); + System.out.println(mListMap); + System.out.println(mList); + System.out.println("엠리스트트트트트"); + mListMap.put("mListCount", mListCount); + return mListMap; + } + + // + + /** + * @ 페이징 처리 SELECT 호출 + * @return + * @throws SQLException + */ + public Map selectListQueryNew() throws SQLException { + //EgovMap mListMap = new EgovMap(); + Map mListMap = new HashMap<>(); + //배열로 넘어온 필드를 String 오브젝트로 변형 + String fileList = ""; + for(int cnt = 0;cnt(); + this.setFeilds("RN, "+tmpFeilds); + } + + //List mList = new ArrayList(); + List> mList = new ArrayList>(); + int mListCount = 0; + + Connection con; + Statement stmt; //단순 쿼리 실행 + PreparedStatement pstmt = null; //컴파일시 디비에 먼저 파싱하므로 Statement 보다 빠름 + CallableStatement cstmt; //프로시져를 호출하므로 속도가 PreparedStatement 보다 빠름 + ResultSet rs = null; + String dbURL = "jdbc:oracle:thin:@115.21.123.114:1521:ora10g"; + String driver = "oracle.jdbc.OracleDriver"; + + try { + Class.forName(driver); + } catch (ClassNotFoundException e1) { + // TODO Auto-generated catch block + e1.printStackTrace(); + } + + con = DriverManager.getConnection(dbURL, "TRAFFIC", "xhdgkq0"); + + //3.1 Statement 객체로 구문객체 생성 및 실행 + int size = 0; + try{ + System.out.println("Query :" + finalQuery); + pstmt = con.prepareStatement(finalQuery); + rs = pstmt.executeQuery(); // 이거 왜 실행안??? + System.out.println("rs:" + rs); + boolean chpoint = false; + while(rs.next()) + { + size = rs.getInt(1); + //EgovMap m = new EgovMap(); + Map m = new HashMap<>(); + if(!chpoint) + { + for(int j=0;j selectListQuery2() { + //EgovMap mListMap = new EgovMap(); + Map mListMap = new HashMap<>(); + //배열로 넘어온 필드를 String 오브젝트로 변형 + String fileList = ""; + for(int cnt = 0;cnt(); + this.setFeilds("RN, "+tmpFeilds); + } + + //List mList = new ArrayList(); + List> mList = new ArrayList<>(); + int mListCount = 0; + try { + mpower = new Client(hostip,port); + mpower.getConnection("MPowerXmlToQuery.xmlQuery1"); + mpower.setInput("SQLXML", query); + mpower.Request(); + String result = mpower.getString("result", 0, 0); + int row = 0; + if (result.equals("true")){ + row = mpower.getMaxRow("list1"); + if(row>0){ + for(int i=0;i m = new HashMap<>(); + for(int j=0;j0){ + mpower = new Client(hostip,port); + mpower.getConnection("MPowerXmlToQuery.xmlQuery1"); + mpower.setInput("SQLXML", Cquery); + mpower.Request(); + + String strList1 = mpower.getString("list1", 0, 0); + + if( !strList1.equals("") && strList1 != null){ + mListCount = Integer.parseInt(strList1); + } + mpower.disconnect(); + } + + } catch (Exception e) { + e.printStackTrace(); + } finally{ + clearValidation(); + } + mListMap.put("mListCount", mListCount); + return mListMap; + } + + public Map selectListQuery_pay() { + //EgovMap mListMap = new EgovMap(); + Map mListMap = new HashMap<>(); + //배열로 넘어온 필드를 String 오브젝트로 변형 + String fileList = ""; + for(int cnt = 0;cnt(); + this.setFeilds("RN, "+tmpFeilds); + } + + //List mList = new ArrayList(); + List> mList = new ArrayList>(); + int mListCount = 0; + try { + mpower2 = new Client(hostip,port); + mpower2.getConnection("MPowerXmlToQuery.xmlQuery1"); + mpower2.setInput("SQLXML", query); + mpower2.Request(); + String result = mpower2.getString("result", 0, 0); + int row = 0; + if (result.equals("true")){ + row = mpower2.getMaxRow("list1"); + if(row>0){ + for(int i=0;i m = new HashMap<>(); + for(int j=0;j0){ + mpower2.getConnection("MPowerXmlToQuery.xmlQuery1"); + mpower2.setInput("SQLXML", Cquery); + mpower2.Request(); + mListCount = Integer.parseInt(mpower2.getString("list1", 0, 0)); + //System.out.println("mListCount:"+mListCount); + } + //logger.debug("END getString list1"); + mpower2.disconnect(); + //logger.debug(Cquery); + //logger.debug("==============================================================================================================="); + + } catch (Exception e) { + e.printStackTrace(); + } finally{ + clearValidation(); + } + mListMap.put("mListCount", mListCount); + return mListMap; + } + + /** + * @ 페이징 처리 SELECT 호출 + * @return + */ + public List> selectCustomQuery(String sql) { + //EgovMap mListMap = new EgovMap(); + Map mListMap = new HashMap<>(); + //배열로 넘어온 필드를 String 오브젝트로 변형 + String fileList = ""; + for(int cnt = 0;cnt mList = new ArrayList(); + List> mList = new ArrayList<>(); + int mListCount = 0; + try { + mpower = new Client(hostip,port); + mpower.setCryptEnable(false); + mpower.getConnection("MPowerXmlToQuery.xmlQuery1"); + mpower.setInput("SQLXML", query); + mpower.Request(); + String result = mpower.getString("result", 0, 0); + + + + System.out.println("#######message = "+mpower.getFile("list1")); + + String s = "답변드립니다"; + //System.out.println(CommUtil.detectCharset(s.getBytes())); + + System.out.println(URLEncoder.encode(s, "euc-kr")); + System.out.println(URLDecoder.decode(s, "euc-kr")); + String ss = new String("답변드립니다".getBytes("euc-kr"), "euc-kr"); + System.out.println(CommUtil.detectCharset(ss.getBytes())); + + System.out.println((new String("답변드립니다".getBytes("utf-8"), "euc-kr"))); + System.out.println((new String("답변드립니다".getBytes("euc-kr"), "euc-kr"))); + + +// System.out.println(new String(s.getBytes("unicode"), "unicode")); +// System.out.println(new String(s.getBytes("utf-8"), "utf-8")); +// System.out.println(new String(s.getBytes("utf-16"), "utf-16")); +// System.out.println(new String(s.getBytes("euc-kr"), "euc-kr")); +// System.out.println(new String(s.getBytes("ksc5601"), "ksc5601")); +// System.out.println(new String(s.getBytes("ms949"), "ms949")); +// System.out.println(new String(s.getBytes("iso-8859-1"), "iso-8859-1")); + + //String originalStr = URLDecoder.decode(mpower.getMessage(), "utf-8"); + System.out.println(URLDecoder.decode(mpower.getMessage(), "utf-8")); + System.out.println(URLDecoder.decode(mpower.getMessage(), "euc-kr")); + System.out.println(StringUtils.newStringUtf16Le(mpower.getMessage().getBytes())); + System.out.println(StringUtils.newStringUtf16(mpower.getMessage().getBytes())); + System.out.println(StringUtils.newStringUtf16Be(mpower.getMessage().getBytes())); + System.out.println(StringUtils.newStringIso8859_1(mpower.getMessage().getBytes())); + + String originalStr = mpower.getMessage(); + String [] charSet = {"utf-8","euc-kr","ksc5601","iso-8859-1","x-windows-949", "ms949"}; + + for (int i=0; i0){ + for(int i=0;i m = new HashMap<>(); + if(!"".equals(feild) && feild != null){ + m.put("cbContent", mpower.getString("list1", i, 4)); + //m.put("cbContent", new String(mpower.getString("list1", i, 4).getBytes("utf-8"), "utf-8")); + }else{ + for(int j=0;j