공유데이터 컬럼 삭제 시 컬럼 메타데이터 삭제와 함께 json 데이터에서도 삭제

This commit is contained in:
psh 2024-06-10 18:32:12 +09:00
parent ec98aee367
commit e162c3d7a9
9 changed files with 140 additions and 49 deletions

View File

@ -6,6 +6,8 @@ import egovframework.com.mtdata.comtrls.vo.ComtrlsSrcdataVO;
import egovframework.com.mtdata.comtsrcdata.vo.ComtExtrtVO;
import org.egovframe.rte.psl.dataaccess.mapper.Mapper;
import java.util.Map;
@Mapper("ComtrlsdataMapper")
public interface ComtrlsdataMapper {
/**
@ -18,4 +20,24 @@ public interface ComtrlsdataMapper {
public int insertComtrlsMetadataInfo(ComtrlsMetaDataVO vo) throws Exception;
/**
* 공유데이터 컬럼정보 삭제
*
* @param param
* @return
* @throws Exception
*/
int deleteComtrlsCol(Map<String, Object> param) throws Exception;
/**
* 공유데이터 데이터 내에서 컬럼 삭제
*
* @param param
* @return
* @throws Exception
*/
int deleteComtrlsData(Map<String, Object> param) throws Exception;
}

View File

@ -1,8 +1,6 @@
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;
import java.util.Map;
public interface ComtrlsdataService {
@ -15,16 +13,17 @@ public interface ComtrlsdataService {
* @throws Exception
*/
public int insertComtrlsMetadataInfo(ComtrlsMetaDataVO vo) throws Exception;
//
//
// /**
// * 원천데이터를 [comtsrcdata]테이블에 저장
// *
// * @param vo
// * @return
// * @throws Exception
// */
// public int insertComtTabledataInfo(ComtrlsMetaDataVO vo) throws Exception;
/**
* 공유데이터 컬럼메타정보 삭제 : DELETE [comtrlsdatacol], json 데이터에서도 삭제 : UPDATE [COMTRLSDATA]
*
* @param param
* @return
* @throws Exception
*/
public int deleteComtrlsColAndData(Map<String, Object> param) throws Exception;
//
//
// /**

View File

@ -10,6 +10,7 @@ import org.json.simple.parser.JSONParser;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.Map;
@Service("ComtrlsdataService")
public class ComtrlsdataServiceImpl extends EgovAbstractServiceImpl implements ComtrlsdataService {
@ -23,4 +24,16 @@ public class ComtrlsdataServiceImpl extends EgovAbstractServiceImpl implements C
return comtrlsdataMapper.insertComtrlsMetadataInfo(vo);
}
@Override
public int deleteComtrlsColAndData(Map<String, Object> param) throws Exception {
int colCnt = comtrlsdataMapper.deleteComtrlsCol(param);
int colDataCnt = 0;
if(colCnt>0){
colDataCnt = comtrlsdataMapper.deleteComtrlsData(param);
}
return colDataCnt;
}
}

View File

@ -1,10 +1,12 @@
package egovframework.com.mtdata.comtrls.vo;
import com.fasterxml.jackson.annotation.JsonInclude;
import lombok.Getter;
import lombok.Setter;
@Getter
@Setter
@JsonInclude(JsonInclude.Include.NON_NULL)
public class ComtrlsMetaDataVO {
/** 공유데이터ID(PK) */

View File

@ -9,10 +9,10 @@ import egovframework.com.mtdata.database.vo.DatabaseInfoVO;
import org.json.simple.JSONObject;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
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 org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.sql.*;
@ -32,33 +32,63 @@ public class ComtrlsdataController {
private static final Logger log = LoggerFactory.getLogger(ComtrlsdataController.class);
@RequestMapping("/comtrls.do")
@Transactional(rollbackFor = Exception.class)
public String comtrls() throws Exception {
// 공유데이터 요청
// @PostMapping(value="/insert/getComtrls.do")
// @ResponseBody
//// @Transactional(rollbackFor = Exception.class)
// public ResponseEntity<?> comtrls(@RequestBody ComtTableVO comtTbVO) throws Exception {
//
// try {
// comtTbVO.setSrcDataMetaId(3);
// ComtTableVO tableVo = comtsrcdataService.selectSrcMetaData(comtTbVO);
//
// ComtrlsMetaDataVO metaVo = new ComtrlsMetaDataVO();
// metaVo.setRlsDataNm("공유데이터 가져오기 테스트 DATA NAME");
// metaVo.setRlsDataAplcntId(1); // 공유데이터 요청자 ID
// metaVo.setRlsDataRvwId(3); // 공유데이터 검토자 ID
// metaVo.setRlsDataMngDeptId(tableVo.getSysId()); // 관리기관 ID
// metaVo.setRlsDataSrcInstId(tableVo.getSysId()); // 공유데이터 출처기관 ID
// metaVo.setDwnldType("JSON"); // 제공방식
// metaVo.setRlsDataSttsChg("PROGRESS"); // 현재상태
// metaVo.setRlsYn("Y"); // 공개여부
//
// return ResponseEntity.ok().build();
// } catch (Exception e) {
// log.error("Exception {}", e);
// return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body(e.getMessage());
//
// }
//
// }
// 공유데이터 컬럼삭제
@PostMapping(value="/delete/deleteComtrlsColAndData.do")
@ResponseBody
public ResponseEntity<?> deleteComtrlsCol(@RequestBody Map<String, Object> param) 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");
Map<String, Object> returnMap = new HashMap<>();
int cnt = comtrlsdataService.deleteComtrlsColAndData(param);
if (cnt>0){
returnMap.put("message", "성공");
}else{
returnMap.put("message", "삭제할 내용이 없습니다.");
return "공유데이터 컨트롤러 ::";
}
return ResponseEntity.ok().body(returnMap);
} catch (Exception e) {
log.error("Exception {}", e);
throw new RuntimeException(e.getMessage());
return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body(e.getMessage());
}
}
}

View File

@ -22,16 +22,15 @@ public interface ComtsrcdataMapper {
*/
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}
/**
* [comtsrcdatameta_new] 체크
*
* @param vo
* @return
* @throws Exception
*/
public int checkSrcMeta(ComtTableVO vo) throws Exception;
/**

View File

@ -1,11 +1,13 @@
package egovframework.com.mtdata.comtsrcdata.vo;
import com.fasterxml.jackson.annotation.JsonInclude;
import lombok.Getter;
import lombok.Setter;
// author : psh
@Getter
@Setter
@JsonInclude(JsonInclude.Include.NON_NULL)
public class ComtTableVO {
/** 원천데이터 테이블 ID */
private int srcDataMetaId;

View File

@ -27,9 +27,10 @@ public class DatabaseConnController {
private static final Logger log = LoggerFactory.getLogger(DatabaseConnController.class);
@RequestMapping("/insertDbConn.do")
@PostMapping(value="/insertDbConn.do")
@ResponseBody
@Transactional(rollbackFor = Exception.class)
public String insertDbConn(@ModelAttribute DatabaseInfoVO vo) throws Exception {
public ResponseEntity<?> insertDbConn(@RequestBody DatabaseInfoVO vo) throws Exception {
/** 하단의 vo.setting은 임시설정으로, 사용자가 입력한 데이터를 vo객체에 받아올 것임 */
vo.setSysId(1); // [inst_sys_info]테이블의 sysId를 참조하고 있음.sysId : 정보시스템 고유 아이디값
@ -52,7 +53,7 @@ public class DatabaseConnController {
DatabaseInfoVO infoVo = dbService.selectSysDb(vo);
viService.selectSchema(infoVo);
return "연결정보 저장 및 스키마 조회 성공";
return ResponseEntity.ok().build();
} else {
// 오류 발생시 롤백
throw new RuntimeException("연결정보 저장 실패");
@ -60,11 +61,12 @@ public class DatabaseConnController {
} else {
log.debug("====================================");
log.debug("dbConnIp : '{}'에 대한 정보가 {}건 저장되어있습니다.", vo.getDbConnIp(), check);
return "기존 입력된 정보가 존재함";
String msg = "기존 입력된 정보가 존재함";
return ResponseEntity.ok().body(msg);
}
} catch (Exception e) {
log.error("Exception {}", e);
throw new RuntimeException(e.getMessage());
return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body(e.getMessage());
}
}

View File

@ -47,4 +47,26 @@
values (#{rlsDataColId}, #{rlsDataId}, #{rlsDataColNm} )
</insert>
<delete id="deleteComtrlsCol" parameterType="java.util.Map">
DELETE FROM comtrlsdatacol
WHERE
<if test="rlsDataColIdArr != null">
rls_data_col_id IN
<foreach collection="rlsDataColIdArr" item="item" open="(" close=")" separator=",">
#{item}
</foreach>
</if>
</delete>
<delete id="deleteComtrlsData" parameterType="java.util.Map">
UPDATE COMTRLSDATA
SET RLS_DATA_VL = RLS_DATA_VL
<if test="rlsDataColIdArr != null">
<foreach collection="rlsDataColIdArr" item="item" open="(" close=")" separator=",">
- #{item}
</foreach>
</if>
WHERE RLS_DATA_ID = #{rlsDataId}
</delete>
</mapper>