원천데이터 관련 로직 추가

This commit is contained in:
psh 2024-06-07 10:29:42 +09:00
parent 688e8c471f
commit 3cb391fb66
10 changed files with 381 additions and 1 deletions

View File

@ -0,0 +1,50 @@
package egovframework.com.mtdata.comtsrcdata.mapper;
import egovframework.com.mtdata.comtsrcdata.vo.ComtExtrtVO;
import egovframework.com.mtdata.comtsrcdata.vo.ComtTableVO;
import egovframework.com.mtdata.comtsrcdata.vo.ComtsrcdataVO;
import org.egovframe.rte.psl.dataaccess.mapper.Mapper;
@Mapper("ComtsrcdataMapper")
public interface ComtsrcdataMapper {
/**
* 원천데이터 추출정보를 [comtextrtblinfo]테이블에 저장
*
* @param vo
* @return
* @throws Exception
*/
public int insertComtExtrtInfo(ComtExtrtVO vo) throws Exception;
/**
* 원천데이터를 [comtsrcdata]테이블에 저장
*
* @param vo
* @return
* @throws Exception
*/
public int insertComtSrcdataInfo(ComtsrcdataVO vo) throws Exception;
/**
* 원천데이터 테이블을 [comtsrcdatameta]테이블에 저장
*
* @param vo
* @return
* @throws Exception
*/
public int insertComtTabledataInfo(ComtTableVO vo) throws Exception;
public int updateDatasrc(ComtsrcdataVO vo) throws Exception;
// /**
// * Yaml 파일을 업데이트하기 위해 목록을 조회한다(pg_chameleon yaml용이나, 차후 다른 용도로 쓰임이 있다 판단되면 수정)
// *
// * @param vo
// * @return
// */
// public List<DatabaseInfoVO> selectSysDbConnList(DatabaseInfoVO vo);
}

View File

@ -0,0 +1,83 @@
package egovframework.com.mtdata.comtsrcdata.service;
import egovframework.com.mtdata.comtsrcdata.vo.ComtExtrtVO;
import egovframework.com.mtdata.comtsrcdata.vo.ComtTableVO;
import egovframework.com.mtdata.comtsrcdata.vo.ComtsrcdataVO;
public interface ComtsrcdataService {
/**
* 데이터베이스 스키마 조회 [comtsysdbinfo]테이블에 데이터를 저장한다
*
* @param vo
* @return
* @throws Exception
*/
int insertComtExtrtInfo(ComtExtrtVO vo) throws Exception;
/**
* 원천데이터를 [comtsrcdata]테이블에 저장
*
* @param vo
* @return
* @throws Exception
*/
public int insertComtSrcdataInfo(ComtsrcdataVO vo) throws Exception;
/**
* 원천데이터를 [comtsrcdata]테이블에 저장
*
* @param vo
* @return
* @throws Exception
*/
public int insertComtTabledataInfo(ComtTableVO vo) throws Exception;
/**
* test
*
* @param vo
* @return
* @throws Exception
*/
public int updateDatasrc(ComtsrcdataVO vo) throws Exception;
// /**
// * Yaml 파일을 업데이트하기 위해 목록을 조회한다(pg_chameleon yaml용이나 차후 다른 용도로 쓰임이 있다 판단되면 수정)
// *
// * @param vo
// * @return
// */
// List<DatabaseInfoVO> selectSysDbConnList(DatabaseInfoVO vo);
//
// /**
// * DB 연결 정보 검증(중복확인)
// *
// * @param vo
// * @return
// */
// int checkDbConnInfo(DatabaseInfoVO vo);
//
// /**
// * 스키마 테이블정보를 [inst_db_tbl_info] 테이블에 저장한다.
// *
// * @param tbVo
// * @return
// */
// int insertDbTblInfo(TableInfoVO tbVo) throws Exception;
//
//
//
// /**
// * 컬럼 정보를 [inst_tbl_col_info] 테이블에 저장한다.
// *
// * @param colVo
// * @return
// */
// public int insertTblColInfo(ColumnInfoVO colVo) throws Exception;
}

View File

@ -0,0 +1,38 @@
package egovframework.com.mtdata.comtsrcdata.service.impl;
import egovframework.com.mtdata.comtsrcdata.mapper.ComtsrcdataMapper;
import egovframework.com.mtdata.comtsrcdata.service.ComtsrcdataService;
import egovframework.com.mtdata.comtsrcdata.vo.ComtExtrtVO;
import egovframework.com.mtdata.comtsrcdata.vo.ComtTableVO;
import egovframework.com.mtdata.comtsrcdata.vo.ComtsrcdataVO;
import org.egovframe.rte.fdl.cmmn.EgovAbstractServiceImpl;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
@Service("ComtsrcdataService")
public class ComtsrcdataServiceImpl extends EgovAbstractServiceImpl implements ComtsrcdataService {
@Resource(name = "ComtsrcdataMapper")
private ComtsrcdataMapper comtsrcdataMapper;
@Override
public int insertComtExtrtInfo(ComtExtrtVO vo) throws Exception {
return comtsrcdataMapper.insertComtExtrtInfo(vo);
}
@Override
public int insertComtSrcdataInfo(ComtsrcdataVO vo) throws Exception {
return comtsrcdataMapper.insertComtSrcdataInfo(vo);
}
@Override
public int insertComtTabledataInfo(ComtTableVO vo) throws Exception {
return comtsrcdataMapper.insertComtTabledataInfo(vo);
}
@Override
public int updateDatasrc(ComtsrcdataVO vo) throws Exception {
return comtsrcdataMapper.updateDatasrc(vo);
}
}

View File

@ -0,0 +1,16 @@
package egovframework.com.mtdata.comtsrcdata.vo;
import lombok.Getter;
import lombok.Setter;
// author : psh
@Getter
@Setter
public class ComtColVO {
/** 원천데이터 테이블 ID */
private int srcDataMetaId;
/** 원천데이터 컬럼 ID*/
private int srcDataColId;
/** 원천데이터 컬럼명 */
private String srcDataColNm;
}

View File

@ -0,0 +1,18 @@
package egovframework.com.mtdata.comtsrcdata.vo;
import lombok.Getter;
import lombok.Setter;
// author : psh
@Getter
@Setter
public class ComtExtrtVO {
/** 추출 날짜 */
private String extrYmd;
/** 추출한 기관정보시스템 ID */
private int sysId;
/** 추출 ID */
private int extrId;
}

View File

@ -0,0 +1,17 @@
package egovframework.com.mtdata.comtsrcdata.vo;
import lombok.Getter;
import lombok.Setter;
// author : psh
@Getter
@Setter
public class ComtTableVO {
/** 원천데이터 데이터 ID */
private int srcDataId ;
/** 원천데이터 테이블 ID */
private int srcDataMetaId;
/** 원천데이터 테이블 이름 */
private String srcDataTblNm;
}

View File

@ -0,0 +1,16 @@
package egovframework.com.mtdata.comtsrcdata.vo;
import lombok.Getter;
import lombok.Setter;
// author : psh
@Getter
@Setter
public class ComtsrcdataVO {
/** 원천데이터 데이터 ID */
private int srcDataId ;
/** 추출 ID */
private int extrId;
/** 원천데이터 값 */
private String srcDataVl;
}

View File

@ -0,0 +1,83 @@
package egovframework.com.mtdata.comtsrcdata.web;
import egovframework.com.mtdata.comtsrcdata.service.ComtsrcdataService;
import egovframework.com.mtdata.comtsrcdata.vo.ComtsrcdataVO;
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.*;
@RestController
@RequestMapping("/api")
public class ComtsrcdataController {
/** Service */
@Resource(name = "ComtsrcdataService")
private ComtsrcdataService service;
private static final Logger log = LoggerFactory.getLogger(ComtsrcdataController.class);
@RequestMapping("/comtsrcdataTest.do")
@Transactional(rollbackFor = Exception.class)
public String insertDbConn(@ModelAttribute DatabaseInfoVO vo) throws Exception {
try {
// jsonb 데이터 업데이트 테스트
ComtsrcdataVO comtvo = new ComtsrcdataVO();
comtvo.setSrcDataVl("{\"id\":\"1\", \"field1\":\"ccc\"}");
int test = service.updateDatasrc(comtvo);
return "원천데이터 컨트롤러 ::"+test;
} catch (Exception e) {
log.error("Exception {}", e);
throw new RuntimeException(e.getMessage());
}
}
@RequestMapping("/selectComtsrcdata.do")
@Transactional(rollbackFor = Exception.class)
public String selectComtsrcdata( ) throws Exception {
try {
String url = "jdbc:mysql://" + "223.130.160.210" + ":" + "3306" + "/";
Connection conn = DriverManager.getConnection(url, "replica_user", "dpcPW12!@");
String selectTableSql = "SELECT * FROM smku.test_table1";
Statement stmt = conn.createStatement();
ResultSet datas = stmt.executeQuery(selectTableSql);
while (datas.next()){
// JSONObject obj = new JSONObject();
// ResultSetMetaData rsmd = datas.getMetaData();
// int coCnt = rsmd.getColumnCount();
// for (int i=0; i<coCnt; i++) {
// String columnName = rsmd.getColumnLabel(i+1);
// Object columnValue = datas.getObject(i+1);
// obj.put(columnName, columnValue);
// System.out.println(obj.toString());
// }
}
return "원천데이터 컨트롤러 ::";
} catch (Exception e) {
log.error("Exception {}", e);
throw new RuntimeException(e.getMessage());
}
}
}

View File

@ -0,0 +1,56 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="egovframework.com.mtdata.comtsrcdata.mapper.ComtsrcdataMapper">
<resultMap id="databaseInfoMap" type="egovframework.com.mtdata.database.vo.DatabaseInfoVO">
<result property="sysId" column="SYS_ID"/>
<result property="dbConnId" column="DB_CONN_ID"/>
<result property="dbType" column="DB_TYPE"/>
<result property="dbConnUser" column="DB_CONN_USER"/>
<result property="dbConnPw" column="DB_CONN_PW"/>
<result property="dbConnIp" column="DB_CONN_IP"/>
<result property="dbConnPort" column="DB_CONN_PORT"/>
<result property="registerId" column="REGISTER_ID"/>
<result property="dbNm" column="DB_NM"/>
<result property="useYn" column="USE_YN"/>
</resultMap>
<insert id="insertComtExtrtInfo" parameterType="ComtExtrtVO">
<selectKey resultType="int" keyProperty="extrId" order="BEFORE">
SELECT nextval('comtextrtblinfo_extr_tbl_id_seq') as extrId
</selectKey>
INSERT INTO comtextrtblinfo
(extr_id, extr_ymd, sys_id)
VALUES
(#{extrId}, CURRENT_TIMESTAMP, #{sysId})
</insert>
<insert id="insertComtSrcdataInfo" parameterType="ComtsrcdataVO">
<selectKey resultType="int" keyProperty="srcDataId" order="BEFORE">
SELECT nextval('comtsrcdata_extr_tbl_id_seq') as srcDataId
</selectKey>
insert into comtsrcdata
(src_data_id, extr_id, src_data_vl)
values
(#{srcDataId}, #{extrId}, #{srcDataVl})
</insert>
<insert id="insertComtTabledataInfo" parameterType="ComtTableVO">
<selectKey resultType="int" keyProperty="srcDataId" order="BEFORE">
SELECT nextval('comtsrcdatameta_src_data_meta_id_seq') as srcDataId
</selectKey>
insert into comtsrcdatameta (src_data_meta_id, src_data_id, src_data_tbl_nm)
values (#{srcDataMetaId}, #{srcDataId}, #{srcDataTblNm})
</insert>
<update id="updateDatasrc" parameterType="ComtsrcdataVO">
update comtsrcdata
set src_data_vl= ((#{srcDataVl})::jsonb)
where src_data_id= 2
</update>
</mapper>

View File

@ -18,7 +18,10 @@
<typeAlias alias="columnInfoVO" type="egovframework.com.mtdata.database.vo.ColumnInfoVO"/>
<!-- 원천데이터 -->
<typeAlias alias="comtExtrtVO" type="egovframework.com.mtdata.comtsrcdata.vo.ComtExtrtVO"/>
<typeAlias alias="comtsrcdataVO" type="egovframework.com.mtdata.comtsrcdata.vo.ComtsrcdataVO"/>
<typeAlias alias="comtTableVO" type="egovframework.com.mtdata.comtsrcdata.vo.ComtTableVO"/>
<typeAlias alias="comtColVO" type="egovframework.com.mtdata.comtsrcdata.vo.ComtColVO"/>
</typeAliases>
</configuration>