diff --git a/src/main/java/egovframework/com/mtdata/comtrls/mapper/ComtrlsdataMapper.java b/src/main/java/egovframework/com/mtdata/comtrls/mapper/ComtrlsdataMapper.java new file mode 100644 index 0000000..1ddf561 --- /dev/null +++ b/src/main/java/egovframework/com/mtdata/comtrls/mapper/ComtrlsdataMapper.java @@ -0,0 +1,21 @@ +package egovframework.com.mtdata.comtrls.mapper; + +import egovframework.com.mtdata.comtrls.vo.ComtrlsColVO; +import egovframework.com.mtdata.comtrls.vo.ComtrlsMetaDataVO; +import egovframework.com.mtdata.comtrls.vo.ComtrlsSrcdataVO; +import egovframework.com.mtdata.comtsrcdata.vo.ComtExtrtVO; +import org.egovframe.rte.psl.dataaccess.mapper.Mapper; + +@Mapper("ComtrlsdataMapper") +public interface ComtrlsdataMapper { + /** + * 공유데이터의 메타데이터를 [comtrlstrgtmetadata] 테이블에 저장 + * + * @param vo + * @return + * @throws Exception + */ + public int insertComtrlsMetadataInfo(ComtrlsMetaDataVO vo) throws Exception; + + +} diff --git a/src/main/java/egovframework/com/mtdata/comtrls/service/ComtrlsdataService.java b/src/main/java/egovframework/com/mtdata/comtrls/service/ComtrlsdataService.java new file mode 100644 index 0000000..5eb8dd6 --- /dev/null +++ b/src/main/java/egovframework/com/mtdata/comtrls/service/ComtrlsdataService.java @@ -0,0 +1,53 @@ +package egovframework.com.mtdata.comtrls.service; + +import egovframework.com.mtdata.comtrls.vo.ComtrlsColVO; +import egovframework.com.mtdata.comtrls.vo.ComtrlsMetaDataVO; +import egovframework.com.mtdata.comtrls.vo.ComtrlsSrcdataVO; + +public interface ComtrlsdataService { + + + /** + * 공유데이터의 메타데이터를 [comtrlstrgtmetadata] 테이블에 저장 + * + * @param vo + * @return + * @throws Exception + */ + public int insertComtrlsMetadataInfo(ComtrlsMetaDataVO vo) throws Exception; +// +// +// /** +// * 원천데이터를 [comtsrcdata]테이블에 저장 +// * +// * @param vo +// * @return +// * @throws Exception +// */ +// public int insertComtTabledataInfo(ComtrlsMetaDataVO vo) throws Exception; +// +// +// /** +// * 원천데이터의 컬럼정보 [comtsrcdatacol] 테이블에 저장 +// * +// * @param vo +// * @return +// * @throws Exception +// */ +// public int insertComtSrcCol(ComtrlsColVO vo) throws Exception; +// +// +// /** +// * test +// * +// * @param vo +// * @return +// * @throws Exception +// */ +// +// public int updateDatasrc(ComtrlsSrcdataVO vo) throws Exception; +// +// ComtsrcdataDTO selectComtSrcData(ComtrlsSrcdataVO vo) throws Exception; + + +} diff --git a/src/main/java/egovframework/com/mtdata/comtrls/service/impl/ComtrlsdataServiceImpl.java b/src/main/java/egovframework/com/mtdata/comtrls/service/impl/ComtrlsdataServiceImpl.java new file mode 100644 index 0000000..967777b --- /dev/null +++ b/src/main/java/egovframework/com/mtdata/comtrls/service/impl/ComtrlsdataServiceImpl.java @@ -0,0 +1,26 @@ +package egovframework.com.mtdata.comtrls.service.impl; + +import egovframework.com.mtdata.comtrls.mapper.ComtrlsdataMapper; +import egovframework.com.mtdata.comtrls.service.ComtrlsdataService; +import egovframework.com.mtdata.comtrls.vo.ComtrlsColVO; +import egovframework.com.mtdata.comtrls.vo.ComtrlsMetaDataVO; +import egovframework.com.mtdata.comtrls.vo.ComtrlsSrcdataVO; +import org.egovframe.rte.fdl.cmmn.EgovAbstractServiceImpl; +import org.json.simple.parser.JSONParser; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; + +@Service("ComtrlsdataService") +public class ComtrlsdataServiceImpl extends EgovAbstractServiceImpl implements ComtrlsdataService { + + @Resource(name = "ComtrlsdataMapper") + private ComtrlsdataMapper comtrlsdataMapper; + + + @Override + public int insertComtrlsMetadataInfo(ComtrlsMetaDataVO vo) throws Exception { + return comtrlsdataMapper.insertComtrlsMetadataInfo(vo); + } + +} diff --git a/src/main/java/egovframework/com/mtdata/comtrls/vo/ComtrlsColVO.java b/src/main/java/egovframework/com/mtdata/comtrls/vo/ComtrlsColVO.java new file mode 100644 index 0000000..8ddd6f9 --- /dev/null +++ b/src/main/java/egovframework/com/mtdata/comtrls/vo/ComtrlsColVO.java @@ -0,0 +1,18 @@ +package egovframework.com.mtdata.comtrls.vo; + +import lombok.Getter; +import lombok.Setter; + +// author : psh +@Getter +@Setter +public class ComtrlsColVO { + /** 공유데이터 컬럼 ID*/ + private int rlsDataColId; + /** 공유데이터 테이블 ID */ + private int rlsDataId; + /** 공유데이터 컬럼명 */ + private String rlsDataColNm; +} + + diff --git a/src/main/java/egovframework/com/mtdata/comtrls/vo/ComtrlsMetaDataVO.java b/src/main/java/egovframework/com/mtdata/comtrls/vo/ComtrlsMetaDataVO.java new file mode 100644 index 0000000..4c2ef43 --- /dev/null +++ b/src/main/java/egovframework/com/mtdata/comtrls/vo/ComtrlsMetaDataVO.java @@ -0,0 +1,41 @@ +package egovframework.com.mtdata.comtrls.vo; + +import lombok.Getter; +import lombok.Setter; + +@Getter +@Setter +public class ComtrlsMetaDataVO { + + /** 공유데이터ID(PK) */ + private int rlsDataId; + /** 공유데이터명 */ + private String rlsDataNm; + /** 공유데이터 설명 */ + private String rlsDataDc; + /** 공유데이터 요청자 ID */ + private int rlsDataAplcntId; + /** 공유데이터 검토자 ID */ + private int rlsDataRvwId; + /** 공유데이터 관리기관 ID */ + private int rlsDataMngDeptId; + /** 공유데이터 출처기관 ID */ + private int rlsDataSrcInstId; + /** 공유데이터 요청일 */ + private String regDt; + /** 공유데이터 생성일 */ + private String crtYmd; + /** 공유데이터 조회수 */ + private int inqCnt; + /** 공유데이터 제공 방식 */ + private String dwnldType; + /** 공유데이터 제공 횟수 */ + private int dwnldCnt; + /** (비정형데이터를 위한)경로 */ + private String rlsDataFilePath; + /** 현재상태(심의중, 데이터추출중, 비식별화중, 완료) */ + private String rlsDataSttsChg; + /** 공개여부 */ + private String rlsYn; + +} diff --git a/src/main/java/egovframework/com/mtdata/comtrls/vo/ComtrlsSrcdataVO.java b/src/main/java/egovframework/com/mtdata/comtrls/vo/ComtrlsSrcdataVO.java new file mode 100644 index 0000000..97890c0 --- /dev/null +++ b/src/main/java/egovframework/com/mtdata/comtrls/vo/ComtrlsSrcdataVO.java @@ -0,0 +1,18 @@ +package egovframework.com.mtdata.comtrls.vo; + +import lombok.Getter; +import lombok.Setter; + +// author : psh +@Getter +@Setter +public class ComtrlsSrcdataVO { + /** 공유데이터 ID */ + private int rlsDataVlId; + /** 공유데이터 */ + private String rlsDataVl; + /** 공유데이터 테이블 ID */ + private int rlsDataId; +} + + diff --git a/src/main/java/egovframework/com/mtdata/comtrls/web/ComtrlsdataController.java b/src/main/java/egovframework/com/mtdata/comtrls/web/ComtrlsdataController.java new file mode 100644 index 0000000..520f8b0 --- /dev/null +++ b/src/main/java/egovframework/com/mtdata/comtrls/web/ComtrlsdataController.java @@ -0,0 +1,64 @@ +package egovframework.com.mtdata.comtrls.web; + +import egovframework.com.mtdata.comtrls.service.ComtrlsdataService; +import egovframework.com.mtdata.comtrls.vo.ComtrlsMetaDataVO; +import egovframework.com.mtdata.comtrls.vo.ComtrlsSrcdataVO; +import egovframework.com.mtdata.comtsrcdata.service.ComtsrcdataService; +import egovframework.com.mtdata.comtsrcdata.vo.ComtTableVO; +import egovframework.com.mtdata.database.vo.DatabaseInfoVO; +import org.json.simple.JSONObject; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.bind.annotation.ModelAttribute; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.annotation.Resource; +import java.sql.*; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +@RestController +@RequestMapping("/api") +public class ComtrlsdataController { + + /** Service */ + @Resource(name = "ComtsrcdataService") + private ComtsrcdataService comtsrcdataService; + @Resource(name = "ComtrlsdataService") + private ComtrlsdataService comtrlsdataService; + + private static final Logger log = LoggerFactory.getLogger(ComtrlsdataController.class); + + @RequestMapping("/comtrls.do") + @Transactional(rollbackFor = Exception.class) + public String comtrls() throws Exception { + + try { + ComtTableVO vo = new ComtTableVO(); + vo.setSrcDataMetaId(3); + ComtTableVO tableVo = comtsrcdataService.selectSrcMetaData(vo); + ComtrlsMetaDataVO metaVo = new ComtrlsMetaDataVO(); + metaVo.setRlsDataNm("공유데이터 가져오기 테스트 DATA NAME"); +// metaVo.setRlsDataMngDeptId(tableVo.get); + metaVo.setRlsDataAplcntId(1); + metaVo.setRlsDataRvwId(3); + metaVo.setRlsDataSrcInstId(4); + metaVo.setDwnldType("JSON"); + metaVo.setRlsDataSttsChg("PROGRESS"); + metaVo.setRlsDataSttsChg("Y"); + + + + return "공유데이터 컨트롤러 ::"; + } catch (Exception e) { + log.error("Exception {}", e); + throw new RuntimeException(e.getMessage()); + } + + + } + +} diff --git a/src/main/java/egovframework/com/mtdata/comtsrcdata/mapper/ComtsrcdataMapper.java b/src/main/java/egovframework/com/mtdata/comtsrcdata/mapper/ComtsrcdataMapper.java index 8c50200..b320251 100644 --- a/src/main/java/egovframework/com/mtdata/comtsrcdata/mapper/ComtsrcdataMapper.java +++ b/src/main/java/egovframework/com/mtdata/comtsrcdata/mapper/ComtsrcdataMapper.java @@ -6,9 +6,32 @@ import egovframework.com.mtdata.comtsrcdata.vo.ComtTableVO; import egovframework.com.mtdata.comtsrcdata.vo.ComtsrcdataVO; import org.egovframe.rte.psl.dataaccess.mapper.Mapper; +import java.util.List; + @Mapper("ComtsrcdataMapper") public interface ComtsrcdataMapper { + /** + * [comtsrcdatameta_new]테이블 조회 + * + * @param vo + * @return + * @throws Exception + */ + public ComtTableVO selectSrcMetaData(ComtTableVO vo) throws Exception; + +// +//SELECT src_data_meta_id, +// extr_id, +// src_data_tbl_nm +//FROM comtsrcdatameta_new meta, +// comtextrtblinfo ex +// WHERE 1=1 +// meta.extr_id = ex.extr_id +// src_data_meta_id = #{srcDataMetaId} + + + /** * 원천데이터 추출정보를 [comtextrtblinfo]테이블에 저장 * diff --git a/src/main/java/egovframework/com/mtdata/comtsrcdata/service/ComtsrcdataService.java b/src/main/java/egovframework/com/mtdata/comtsrcdata/service/ComtsrcdataService.java index c6af924..8188641 100644 --- a/src/main/java/egovframework/com/mtdata/comtsrcdata/service/ComtsrcdataService.java +++ b/src/main/java/egovframework/com/mtdata/comtsrcdata/service/ComtsrcdataService.java @@ -6,8 +6,21 @@ import egovframework.com.mtdata.comtsrcdata.vo.ComtExtrtVO; import egovframework.com.mtdata.comtsrcdata.vo.ComtTableVO; import egovframework.com.mtdata.comtsrcdata.vo.ComtsrcdataVO; +import java.util.List; + public interface ComtsrcdataService { + + /** + * [comtsrcdatameta_new]테이블 조회 + * + * @param vo + * @return + * @throws Exception + */ + public ComtTableVO selectSrcMetaData(ComtTableVO vo) throws Exception; + + /** * 데이터베이스 스키마 조회 후 [comtsysdbinfo]테이블에 데이터를 저장한다 * diff --git a/src/main/java/egovframework/com/mtdata/comtsrcdata/service/impl/ComtsrcdataServiceImpl.java b/src/main/java/egovframework/com/mtdata/comtsrcdata/service/impl/ComtsrcdataServiceImpl.java index 75c1f6b..34388fa 100644 --- a/src/main/java/egovframework/com/mtdata/comtsrcdata/service/impl/ComtsrcdataServiceImpl.java +++ b/src/main/java/egovframework/com/mtdata/comtsrcdata/service/impl/ComtsrcdataServiceImpl.java @@ -13,6 +13,7 @@ import org.springframework.stereotype.Service; import javax.annotation.Resource; import javax.json.stream.JsonParser; +import java.util.List; @Service("ComtsrcdataService") public class ComtsrcdataServiceImpl extends EgovAbstractServiceImpl implements ComtsrcdataService { @@ -20,6 +21,18 @@ public class ComtsrcdataServiceImpl extends EgovAbstractServiceImpl implements C @Resource(name = "ComtsrcdataMapper") private ComtsrcdataMapper comtsrcdataMapper; + + /** + * [comtsrcdatameta_new]테이블 조회 + * + * @param vo + * @return + * @throws Exception + */ + public ComtTableVO selectSrcMetaData(ComtTableVO vo) throws Exception{ + return comtsrcdataMapper.selectSrcMetaData(vo); + } + @Override public int insertComtExtrtInfo(ComtExtrtVO vo) throws Exception { return comtsrcdataMapper.insertComtExtrtInfo(vo); diff --git a/src/main/java/egovframework/com/mtdata/schema/service/impl/MySQLSchemaViewerImpl.java b/src/main/java/egovframework/com/mtdata/schema/service/impl/MySQLSchemaViewerImpl.java index c7c2078..73edb19 100644 --- a/src/main/java/egovframework/com/mtdata/schema/service/impl/MySQLSchemaViewerImpl.java +++ b/src/main/java/egovframework/com/mtdata/schema/service/impl/MySQLSchemaViewerImpl.java @@ -150,7 +150,7 @@ public class MySQLSchemaViewerImpl implements DatabaseSchemaViewer { tbVo.setTableNm(tbNm); log.info("TableName :", tbNm); int insertTbCnt = dbService.insertDbTblInfo(tbVo); - comtProcess(conn, dbVo, tbVo); + comtsrcProcess(conn, dbVo, tbVo); if (insertTbCnt > 0) { log.info("TABLE info successfully inserted for: {}", tbNm); @@ -193,7 +193,7 @@ public class MySQLSchemaViewerImpl implements DatabaseSchemaViewer { // 원천데이터 처리 - private void comtProcess(Connection conn, DatabaseInfoVO dbVo, TableInfoVO tbVo) throws SQLException { + private void comtsrcProcess(Connection conn, DatabaseInfoVO dbVo, TableInfoVO tbVo) throws SQLException { try { // [ comtextrtblinfo ] 원천데이터 추출 정보 저장 ComtExtrtVO comExVo = new ComtExtrtVO(); @@ -263,4 +263,77 @@ public class MySQLSchemaViewerImpl implements DatabaseSchemaViewer { } } + + // 원천데이터 -> 공유데이터 INSERT + private void comtrlsProcess(Connection conn, DatabaseInfoVO dbVo, TableInfoVO tbVo) throws SQLException { + try { + + ComtExtrtVO comExVo = new ComtExtrtVO(); + comExVo.setSysId(dbVo.getSysId()); + int extCnt = comtsrcdataService.insertComtExtrtInfo(comExVo); + + if (extCnt > 0) { + String dbNm = dbVo.getDbNm(); + String tbNm = tbVo.getTableNm(); + + // [ comtrlstrgtmetadata ] 공유데이터 메타정보 테이블 + ComtTableVO comtTableVo = new ComtTableVO(); + comtTableVo.setExtrId(comExVo.getExtrId()); + comtTableVo.setSrcDataTblNm(tbNm); + int insertTbCnt = comtsrcdataService.insertComtTabledataInfo(comtTableVo); + + if (insertTbCnt > 0) { + String selectTableSql = "SELECT * FROM "+dbNm+"."+tbNm; + Statement stmt = conn.createStatement(); + ResultSet datas = stmt.executeQuery(selectTableSql); + ResultSetMetaData rsmd = datas.getMetaData(); + int colCnt = rsmd.getColumnCount(); + JSONObject obj = new JSONObject(); + int insertDataCnt = 0; + int insertColCnt = 0; + + // [ comtrlsdatacol ] 공유데이터 컬럼 정보 테이블 + for (int i=0; i 0){ + while (datas.next()){ + Map dataVlMap = new HashMap<>(); + for (int i=0; i 0){ + log.info("all data insert SUCCESS!!!!!!"); + }else{ + log.warn("No DATA was inserted for: {}", tbNm); + } + } + }else{ + log.warn("No COLUMN info was inserted for: {}", tbNm); + } + + }else{ + log.warn("No Table info was inserted for: {}", tbNm); + } + } + + } catch (Exception e) { + e.printStackTrace(); + } + } + + } diff --git a/src/main/resources/egovframework/sqlmap/mtdata/mappers/comtrls/Comtrlsdata_SQL.xml b/src/main/resources/egovframework/sqlmap/mtdata/mappers/comtrls/Comtrlsdata_SQL.xml new file mode 100644 index 0000000..d1a31f8 --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/mtdata/mappers/comtrls/Comtrlsdata_SQL.xml @@ -0,0 +1,50 @@ + + + + + + + SELECT nextval('comtrlstrgtmetadata_rls_data_id_seq') as rlsDataId + + insert into comtrlstrgtmetadata (rls_data_id, + rls_data_nm, + rls_data_dc, + rls_data_aplcnt_id, + rls_data_rvw_id, + rls_data_mng_dept_id, + rls_data_src_inst_id, + reg_dt, + crt_ymd, + rls_data_stts_chg, + rls_yn) + values ( + #{rlsDataId}, + #{rlsDataNm}, + #{rlsDataDc}, + #{rlsDataAplcntId}, + #{rlsDataRvwId}, + #{rlsDataMngDeptId}, + #{rlsDataSrcInstId}, + CURRENT_TIMESTAMP, + #{crt_ymd}, + #{rlsDataSttsChg}, + #{rlsYn}) + + + + + SELECT nextval('comtrlsdata_rls_data_vl_id_seq') as rlsDataVlId + + insert into comtrlsdata (rls_data_vl_id, rls_data_id, rls_data_vl) + values (#{rlsDataVlId}, #{rlsDataId}, ( (#{rlsDataVl})::jsonb ) ) + + + + + SELECT nextval('comtrlsdatacol_rls_data_col_id_seq') as rlsDataColId + + insert into comtrlsdatacol (rls_data_col_id, rls_data_id, rls_data_col_nm) + values (#{rlsDataColId}, #{rlsDataId}, #{rlsDataColNm} ) + + + diff --git a/src/main/resources/egovframework/sqlmap/mtdata/mappers/comtsrcdata/Comtsrcdata_SQL.xml b/src/main/resources/egovframework/sqlmap/mtdata/mappers/comtsrcdata/Comtsrcdata_SQL.xml index a978c04..38a3c80 100644 --- a/src/main/resources/egovframework/sqlmap/mtdata/mappers/comtsrcdata/Comtsrcdata_SQL.xml +++ b/src/main/resources/egovframework/sqlmap/mtdata/mappers/comtsrcdata/Comtsrcdata_SQL.xml @@ -15,6 +15,22 @@ + + + + @@ -52,7 +68,7 @@ - update comtsrcdata + update comtsrcdata_new set src_data_vl= ( (#{srcDataVl})::jsonb ) where src_data_id= 2 diff --git a/src/main/resources/egovframework/sqlmap/mtdata/sql-mapper-config.xml b/src/main/resources/egovframework/sqlmap/mtdata/sql-mapper-config.xml index e683fda..fbda165 100644 --- a/src/main/resources/egovframework/sqlmap/mtdata/sql-mapper-config.xml +++ b/src/main/resources/egovframework/sqlmap/mtdata/sql-mapper-config.xml @@ -23,5 +23,10 @@ + + + + +