diff --git a/src/main/java/kcc/com/cmm/service/EgovCmmUseService.java b/src/main/java/kcc/com/cmm/service/EgovCmmUseService.java
index eab0888a..5b67ca40 100644
--- a/src/main/java/kcc/com/cmm/service/EgovCmmUseService.java
+++ b/src/main/java/kcc/com/cmm/service/EgovCmmUseService.java
@@ -1,81 +1,83 @@
-package kcc.com.cmm.service;
-
-import java.util.List;
-import java.util.Map;
-
-import kcc.com.cmm.ComDefaultCodeVO;
-
-
-
-/**
- *
- * 공통코드등 전체 업무에서 공용해서 사용해야 하는 서비스를 정의하기 위한 서비스 인터페이스
- * @author 공통서비스 개발팀 이삼섭
- * @since 2009.04.01
- * @version 1.0
- * @see
- *
- *
- * << 개정이력(Modification Information) >>
- *
- * 수정일 수정자 수정내용
- * ------- -------- ---------------------------
- * 2009.03.11 이삼섭 최초 생성
- *
- *
- */
-public interface EgovCmmUseService {
-
- /**
- * 공통코드를 조회한다.
- *
- * @param vo
- * @return List(코드)
- * @throws Exception
- */
- public List selectCmmCodeDetail(ComDefaultCodeVO vo) throws Exception;
-
- /**
- * 공통코드를 조회한다.(by String codeId)
- *
- * @param String codeId
- * @return List(코드)
- * @throws Exception
- */
- public List selectCmmCodeDetail(String codeId) throws Exception;
-
- /**
- * ComDefaultCodeVO의 리스트를 받아서 여러개의 코드 리스트를 맵에 담아서 리턴한다.
- *
- * @param voList
- * @return Map(코드)
- * @throws Exception
- */
- public Map> selectCmmCodeDetails(List> voList) throws Exception;
-
- /**
- * 조직정보를 코드형태로 리턴한다.
- *
- * @param 조회조건정보 vo
- * @return 조직정보 List
- * @throws Exception
- */
- public List selectOgrnztIdDetail(ComDefaultCodeVO vo) throws Exception;
-
- /**
- * 그룹정보를 코드형태로 리턴한다.
- *
- * @param 조회조건정보 vo
- * @return 그룹정보 List
- * @throws Exception
- */
- public List selectGroupIdDetail(ComDefaultCodeVO vo) throws Exception;
-
- public CmmnDetailCode selectCmmCodeDetailValue(ComDefaultCodeVO vo) ;
-
- public String selectCmmCodeDetailCodeValue(ComDefaultCodeVO vo);
-
- public String selectCmmCodeDetailCodeValueOnlyName(ComDefaultCodeVO vo);
-
- public List selectCmmCodeDetailOrderByCode(ComDefaultCodeVO codeParam);
-}
+package kcc.com.cmm.service;
+
+import java.util.List;
+import java.util.Map;
+
+import kcc.com.cmm.ComDefaultCodeVO;
+
+
+
+/**
+ *
+ * 공통코드등 전체 업무에서 공용해서 사용해야 하는 서비스를 정의하기 위한 서비스 인터페이스
+ * @author 공통서비스 개발팀 이삼섭
+ * @since 2009.04.01
+ * @version 1.0
+ * @see
+ *
+ *
+ * << 개정이력(Modification Information) >>
+ *
+ * 수정일 수정자 수정내용
+ * ------- -------- ---------------------------
+ * 2009.03.11 이삼섭 최초 생성
+ *
+ *
+ */
+public interface EgovCmmUseService {
+
+ /**
+ * 공통코드를 조회한다.
+ *
+ * @param vo
+ * @return List(코드)
+ * @throws Exception
+ */
+ public List selectCmmCodeDetail(ComDefaultCodeVO vo) throws Exception;
+
+ /**
+ * 공통코드를 조회한다.(by String codeId)
+ *
+ * @param String codeId
+ * @return List(코드)
+ * @throws Exception
+ */
+ public List selectCmmCodeDetail(String codeId) throws Exception;
+
+ /**
+ * ComDefaultCodeVO의 리스트를 받아서 여러개의 코드 리스트를 맵에 담아서 리턴한다.
+ *
+ * @param voList
+ * @return Map(코드)
+ * @throws Exception
+ */
+ public Map> selectCmmCodeDetails(List> voList) throws Exception;
+
+ /**
+ * 조직정보를 코드형태로 리턴한다.
+ *
+ * @param 조회조건정보 vo
+ * @return 조직정보 List
+ * @throws Exception
+ */
+ public List selectOgrnztIdDetail(ComDefaultCodeVO vo) throws Exception;
+
+ /**
+ * 그룹정보를 코드형태로 리턴한다.
+ *
+ * @param 조회조건정보 vo
+ * @return 그룹정보 List
+ * @throws Exception
+ */
+ public List selectGroupIdDetail(ComDefaultCodeVO vo) throws Exception;
+
+ public CmmnDetailCode selectCmmCodeDetailValue(ComDefaultCodeVO vo) ;
+
+ public String selectCmmCodeDetailCodeValue(ComDefaultCodeVO vo);
+
+ public String selectCmmCodeDetailCodeValueOnlyName(ComDefaultCodeVO vo);
+
+ public List selectCmmCodeDetailOrderByCode(ComDefaultCodeVO codeParam);
+
+ String selectCmmCodeDetailCode(ComDefaultCodeVO vo);
+}
diff --git a/src/main/java/kcc/com/cmm/service/impl/EgovCmmUseServiceImpl.java b/src/main/java/kcc/com/cmm/service/impl/EgovCmmUseServiceImpl.java
index 3b6ed35f..96e27afe 100644
--- a/src/main/java/kcc/com/cmm/service/impl/EgovCmmUseServiceImpl.java
+++ b/src/main/java/kcc/com/cmm/service/impl/EgovCmmUseServiceImpl.java
@@ -1,145 +1,157 @@
-package kcc.com.cmm.service.impl;
-
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-
-import javax.annotation.Resource;
-
-import org.apache.commons.lang3.StringUtils;
-import org.springframework.stereotype.Service;
-
-import egovframework.rte.fdl.cmmn.EgovAbstractServiceImpl;
-import kcc.com.cmm.ComDefaultCodeVO;
-import kcc.com.cmm.service.CmmnDetailCode;
-import kcc.com.cmm.service.EgovCmmUseService;
-
-/**
- * @Class Name : EgovCmmUseServiceImpl.java
- * @Description : 공통코드등 전체 업무에서 공용해서 사용해야 하는 서비스를 정의하기위한 서비스 구현 클래스
- * @Modification Information
- *
- * 수정일 수정자 수정내용
- * ------- ------- -------------------
- * 2009. 3. 11. 이삼섭
- *
- * @author 공통 서비스 개발팀 이삼섭
- * @since 2009. 3. 11.
- * @version
- * @see
- *
- */
-@Service("EgovCmmUseService")
-public class EgovCmmUseServiceImpl extends EgovAbstractServiceImpl implements EgovCmmUseService {
-
- @Resource(name = "cmmUseDAO")
- private CmmUseDAO cmmUseDAO;
-
- /**
- * 공통코드를 조회한다.
- *
- * @param vo
- * @return
- * @throws Exception
- */
- @Override
- public List selectCmmCodeDetail(ComDefaultCodeVO vo) throws Exception {
- return cmmUseDAO.selectCmmCodeDetail(vo);
- }
-
- /**
- * 공통코드를 조회한다.(by String codeId)
- *
- * @param String codeId
- * @return
- * @throws Exception
- */
- @Override
- public List selectCmmCodeDetail(String codeId) throws Exception {
- ComDefaultCodeVO comDefaultCodeVO = new ComDefaultCodeVO();
- comDefaultCodeVO.setCodeId(codeId);
- return cmmUseDAO.selectCmmCodeDetail(comDefaultCodeVO);
- }
-
- /**
- * ComDefaultCodeVO의 리스트를 받아서 여러개의 코드 리스트를 맵에 담아서 리턴한다.
- *
- * @param voList
- * @return
- * @throws Exception
- */
- @Override
- @SuppressWarnings("rawtypes")
- public Map> selectCmmCodeDetails(List voList) throws Exception {
- ComDefaultCodeVO vo;
- Map> map = new HashMap>();
-
- Iterator> iter = voList.iterator();
- while (iter.hasNext()) {
- vo = (ComDefaultCodeVO) iter.next();
- map.put(vo.getCodeId(), cmmUseDAO.selectCmmCodeDetail(vo));
- }
-
- return map;
- }
-
- /**
- * 조직정보를 코드형태로 리턴한다.
- *
- * @param 조회조건정보 vo
- * @return 조직정보 List
- * @throws Exception
- */
- @Override
- public List selectOgrnztIdDetail(ComDefaultCodeVO vo) throws Exception {
- return cmmUseDAO.selectOgrnztIdDetail(vo);
- }
-
- /**
- * 그룹정보를 코드형태로 리턴한다.
- *
- * @param 조회조건정보 vo
- * @return 그룹정보 List
- * @throws Exception
- */
- @Override
- public List selectGroupIdDetail(ComDefaultCodeVO vo) throws Exception {
- return cmmUseDAO.selectGroupIdDetail(vo);
- }
-
- @Override
- public CmmnDetailCode selectCmmCodeDetailValue(ComDefaultCodeVO vo) {
- return cmmUseDAO.selectCmmCodeDetailValue(vo);
- }
-
- @Override
- public String selectCmmCodeDetailCodeValue(ComDefaultCodeVO vo) {
- String resultCodeNm = "";
- if(StringUtils.isNotBlank(vo.getCodeId()) && StringUtils.isNotBlank(vo.getCode())){
- CmmnDetailCode code = cmmUseDAO.selectCmmCodeDetailValue(vo);
- if(code != null){
- resultCodeNm = code.getCodeNm();
- }
- }
- return resultCodeNm;
- }
-
- @Override
- public String selectCmmCodeDetailCodeValueOnlyName(ComDefaultCodeVO vo) {
- String resultCodeNm = "";
- if(StringUtils.isNotBlank(vo.getCodeId()) && StringUtils.isNotBlank(vo.getCode())){
- CmmnDetailCode code = cmmUseDAO.selectCmmCodeDetailValueOnlyName(vo);
- if(code != null){
- resultCodeNm = code.getCodeNm();
- }
- }
- return resultCodeNm;
- }
-
- @Override
- public List selectCmmCodeDetailOrderByCode(ComDefaultCodeVO codeParam) {
- // TODO Auto-generated method stub
- return cmmUseDAO.selectCmmCodeDetailOrderByCode(codeParam);
- }
-}
+package kcc.com.cmm.service.impl;
+
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+
+import javax.annotation.Resource;
+
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.stereotype.Service;
+
+import egovframework.rte.fdl.cmmn.EgovAbstractServiceImpl;
+import kcc.com.cmm.ComDefaultCodeVO;
+import kcc.com.cmm.service.CmmnDetailCode;
+import kcc.com.cmm.service.EgovCmmUseService;
+
+/**
+ * @Class Name : EgovCmmUseServiceImpl.java
+ * @Description : 공통코드등 전체 업무에서 공용해서 사용해야 하는 서비스를 정의하기위한 서비스 구현 클래스
+ * @Modification Information
+ *
+ * 수정일 수정자 수정내용
+ * ------- ------- -------------------
+ * 2009. 3. 11. 이삼섭
+ *
+ * @author 공통 서비스 개발팀 이삼섭
+ * @since 2009. 3. 11.
+ * @version
+ * @see
+ *
+ */
+@Service("EgovCmmUseService")
+public class EgovCmmUseServiceImpl extends EgovAbstractServiceImpl implements EgovCmmUseService {
+
+ @Resource(name = "cmmUseDAO")
+ private CmmUseDAO cmmUseDAO;
+
+ /**
+ * 공통코드를 조회한다.
+ *
+ * @param vo
+ * @return
+ * @throws Exception
+ */
+ @Override
+ public List selectCmmCodeDetail(ComDefaultCodeVO vo) throws Exception {
+ return cmmUseDAO.selectCmmCodeDetail(vo);
+ }
+
+ /**
+ * 공통코드를 조회한다.(by String codeId)
+ *
+ * @param String codeId
+ * @return
+ * @throws Exception
+ */
+ @Override
+ public List selectCmmCodeDetail(String codeId) throws Exception {
+ ComDefaultCodeVO comDefaultCodeVO = new ComDefaultCodeVO();
+ comDefaultCodeVO.setCodeId(codeId);
+ return cmmUseDAO.selectCmmCodeDetail(comDefaultCodeVO);
+ }
+
+ /**
+ * ComDefaultCodeVO의 리스트를 받아서 여러개의 코드 리스트를 맵에 담아서 리턴한다.
+ *
+ * @param voList
+ * @return
+ * @throws Exception
+ */
+ @Override
+ @SuppressWarnings("rawtypes")
+ public Map> selectCmmCodeDetails(List voList) throws Exception {
+ ComDefaultCodeVO vo;
+ Map> map = new HashMap>();
+
+ Iterator> iter = voList.iterator();
+ while (iter.hasNext()) {
+ vo = (ComDefaultCodeVO) iter.next();
+ map.put(vo.getCodeId(), cmmUseDAO.selectCmmCodeDetail(vo));
+ }
+
+ return map;
+ }
+
+ /**
+ * 조직정보를 코드형태로 리턴한다.
+ *
+ * @param 조회조건정보 vo
+ * @return 조직정보 List
+ * @throws Exception
+ */
+ @Override
+ public List selectOgrnztIdDetail(ComDefaultCodeVO vo) throws Exception {
+ return cmmUseDAO.selectOgrnztIdDetail(vo);
+ }
+
+ /**
+ * 그룹정보를 코드형태로 리턴한다.
+ *
+ * @param 조회조건정보 vo
+ * @return 그룹정보 List
+ * @throws Exception
+ */
+ @Override
+ public List selectGroupIdDetail(ComDefaultCodeVO vo) throws Exception {
+ return cmmUseDAO.selectGroupIdDetail(vo);
+ }
+
+ @Override
+ public CmmnDetailCode selectCmmCodeDetailValue(ComDefaultCodeVO vo) {
+ return cmmUseDAO.selectCmmCodeDetailValue(vo);
+ }
+
+ @Override
+ public String selectCmmCodeDetailCode(ComDefaultCodeVO vo) {
+ String resultCodeNm = "";
+ if(StringUtils.isNotBlank(vo.getCodeId()) && StringUtils.isNotBlank(vo.getCode())){
+ CmmnDetailCode code = cmmUseDAO.selectCmmCodeDetailValue(vo);
+ if(code != null){
+ resultCodeNm = code.getCode();
+ }
+ }
+ return resultCodeNm;
+ }
+
+ @Override
+ public String selectCmmCodeDetailCodeValue(ComDefaultCodeVO vo) {
+ String resultCodeNm = "";
+ if(StringUtils.isNotBlank(vo.getCodeId()) && StringUtils.isNotBlank(vo.getCode())){
+ CmmnDetailCode code = cmmUseDAO.selectCmmCodeDetailValue(vo);
+ if(code != null){
+ resultCodeNm = code.getCodeNm();
+ }
+ }
+ return resultCodeNm;
+ }
+
+ @Override
+ public String selectCmmCodeDetailCodeValueOnlyName(ComDefaultCodeVO vo) {
+ String resultCodeNm = "";
+ if(StringUtils.isNotBlank(vo.getCodeId()) && StringUtils.isNotBlank(vo.getCode())){
+ CmmnDetailCode code = cmmUseDAO.selectCmmCodeDetailValueOnlyName(vo);
+ if(code != null){
+ resultCodeNm = code.getCodeNm();
+ }
+ }
+ return resultCodeNm;
+ }
+
+ @Override
+ public List selectCmmCodeDetailOrderByCode(ComDefaultCodeVO codeParam) {
+ // TODO Auto-generated method stub
+ return cmmUseDAO.selectCmmCodeDetailOrderByCode(codeParam);
+ }
+}
diff --git a/src/main/java/kcc/ve/oprtn/cndtnSspnIdtmt/trgtMng/service/CndtnTrgtMngVO.java b/src/main/java/kcc/ve/oprtn/cndtnSspnIdtmt/trgtMng/service/CndtnTrgtMngVO.java
index fdadd58e..4d7c2123 100644
--- a/src/main/java/kcc/ve/oprtn/cndtnSspnIdtmt/trgtMng/service/CndtnTrgtMngVO.java
+++ b/src/main/java/kcc/ve/oprtn/cndtnSspnIdtmt/trgtMng/service/CndtnTrgtMngVO.java
@@ -49,6 +49,7 @@ public class CndtnTrgtMngVO extends ComDefaultVO implements Serializable {
private List sspnIdtmtTrgtOrdList;
private String eduAplctOrd; //신청한 교육 순번
+ private String rmrks; //비고
@@ -232,11 +233,33 @@ public class CndtnTrgtMngVO extends ComDefaultVO implements Serializable {
public void setEduAplctOrd(String eduAplctOrd) {
this.eduAplctOrd = eduAplctOrd;
}
+ public String getRmrks() {
+ return rmrks;
+ }
+ public void setRmrks(String rmrks) {
+ this.rmrks = rmrks;
+ }
-
-
-
-
-
+ @Override
+ public String toString() {
+ return "\n CndtnTrgtMngVO => \n"
+ + " reqPnttm=[" + reqPnttm + "] // 요청 점수 시간\n"
+ + ", vntYear=[" + vntYear + "] // 사건 년도\n"
+ + ", vntNmbr=[" + vntNmbr + "] // 사건 번호\n"
+ + ", cmptntAthrt=[" + cmptntAthrt + "] // 관할 권한\n"
+ + ", dBirth=[" + dBirth + "] // 생년월일\n"
+ + ", trgtNm=[" + trgtNm + "] // 대상자 이름\n"
+ + ", sex=[" + sex + "] // 성별\n"
+ + ", addr=[" + addr + "] // 주소\n"
+ + ", post=[" + post + "] // 우편번호\n"
+ + ", clphone=[" + clphone + "] // 핸드폰 번호\n"
+ + ", reqNmbr=[" + reqNmbr + "] // 요청 번호\n"
+ + ", prsctrNm=[" + prsctrNm + "] // 담당 검사 이름\n"
+ + ", reqStateCd=[" + reqStateCd + "] // 요청 상태 코드\n"
+ + ", eduStateCd=[" + eduStateCd + "] // 교육 상태 코드\n"
+ + ", prcsAplctPrdOrdCmplt=[" + prcsAplctPrdOrdCmplt + "] // 처리 신청 기간 순서 완료\n"
+ + ", rmrks=[" + rmrks + "] // 비고\n"
+ ;
+ }
}
diff --git a/src/main/java/kcc/ve/oprtn/cndtnSspnIdtmt/trgtMng/service/impl/TrgtExcelReader.java b/src/main/java/kcc/ve/oprtn/cndtnSspnIdtmt/trgtMng/service/impl/TrgtExcelReader.java
new file mode 100644
index 00000000..a8e2c4cc
--- /dev/null
+++ b/src/main/java/kcc/ve/oprtn/cndtnSspnIdtmt/trgtMng/service/impl/TrgtExcelReader.java
@@ -0,0 +1,117 @@
+package kcc.ve.oprtn.cndtnSspnIdtmt.trgtMng.service.impl;
+
+import java.io.FileInputStream;
+import java.io.IOException;
+import java.text.SimpleDateFormat;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Date;
+import java.util.List;
+
+import javax.annotation.Resource;
+
+import org.apache.poi.EncryptedDocumentException;
+import org.apache.poi.openxml4j.exceptions.InvalidFormatException;
+import org.apache.poi.ss.usermodel.Cell;
+import org.apache.poi.ss.usermodel.CellType;
+import org.apache.poi.ss.usermodel.DateUtil;
+import org.apache.poi.ss.usermodel.Row;
+import org.apache.poi.ss.usermodel.Sheet;
+import org.apache.poi.ss.usermodel.Workbook;
+import org.apache.poi.ss.usermodel.WorkbookFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.stereotype.Component;
+
+import kcc.com.cmm.ComDefaultCodeVO;
+import kcc.com.cmm.service.EgovCmmUseService;
+import kcc.ve.oprtn.cndtnSspnIdtmt.trgtMng.service.CndtnTrgtMngVO;
+
+public class TrgtExcelReader {
+
+ private static final Logger LOGGER = LoggerFactory.getLogger(TrgtExcelReader.class);
+
+ private String filePathAndNm;
+
+ public TrgtExcelReader(String filePathAndNm) {
+ this.filePathAndNm = filePathAndNm;
+ }
+
+ public List readExcelFile() throws EncryptedDocumentException, InvalidFormatException {
+
+ try (FileInputStream fis = new FileInputStream(filePathAndNm)) {
+ Workbook workbook = WorkbookFactory.create(fis);
+ Sheet sheet = workbook.getSheetAt(0);
+ List cndtnTrgtInfoMngVOList = new ArrayList<>();
+
+ // 첫 번째 행(헤더)을 건너뛰고 시작
+ for (int i = 3; i <= sheet.getLastRowNum(); i++) {
+ Row row = sheet.getRow(i);
+ if (row != null) {
+
+ CndtnTrgtMngVO cndtnTrgtMngVO = new CndtnTrgtMngVO();
+
+// cndtnTrgtMngVO.set getCellValue(row.getCell(0));
+ cndtnTrgtMngVO.setReqPnttm(getCellValue(row.getCell(1))); // 의뢰번호
+
+ String vntInfo[] = getCellValue(row.getCell(2)).split("형제");
+ cndtnTrgtMngVO.setVntYear( vntInfo[0] ); // 사건번호 년
+ cndtnTrgtMngVO.setVntNmbr( vntInfo[1] ); // 사건번호 번호
+ cndtnTrgtMngVO.setCmptntAthrt( getCellValue(row.getCell(3)));
+ cndtnTrgtMngVO.setdBirth( getCellValue(row.getCell(4)).replaceAll("-", "")); // 생년월일
+ cndtnTrgtMngVO.setTrgtNm( getCellValue(row.getCell(5))); // 대상자 이름
+ cndtnTrgtMngVO.setSex( getCellValue(row.getCell(6)));
+ cndtnTrgtMngVO.setAddr( getCellValue(row.getCell(7))); // 주소, detail과 구분해야함
+ cndtnTrgtMngVO.setPost( getCellValue(row.getCell(8))); // 우편번호
+ cndtnTrgtMngVO.setClphone( getCellValue(row.getCell(9)).replaceAll("-", "")); // 핸드폰
+ cndtnTrgtMngVO.setReqNmbr( getCellValue(row.getCell(10))); // 의뢰번호
+ cndtnTrgtMngVO.setPrsctrNm( getCellValue(row.getCell(11))); // 담당검사 이름
+
+ cndtnTrgtMngVO.setReqStateCd( getCellValue(row.getCell(12)) ); // 의뢰상태 코드 , if로 구분해야함
+ cndtnTrgtMngVO.setEduStateCd( getCellValue(row.getCell(13))); // 교육 상태 코드
+ cndtnTrgtMngVO.setPrcsAplctPrdOrdCmplt( getCellValue(row.getCell(14))); // 병합상태코드
+ cndtnTrgtMngVO.setRmrks( getCellValue(row.getCell(15))); // 비고
+
+ cndtnTrgtInfoMngVOList.add(cndtnTrgtMngVO);
+ }
+ }
+
+ return cndtnTrgtInfoMngVOList;
+ } catch (IOException e) {
+ e.printStackTrace();
+ return Collections.emptyList();
+ }
+ }
+
+ private String getCellValue(Cell cell) {
+ if (cell == null) {
+ return "";
+ }
+
+ CellType cellType = cell.getCellTypeEnum(); // 또는 cell.getCellType()을 사용하세요 (POI 버전에 따라 다름)
+ switch (cellType) {
+ case STRING:
+ return cell.getStringCellValue();
+ case NUMERIC:
+ if (DateUtil.isCellDateFormatted(cell)) {
+ // 'java.util.Date' 객체를 얻습니다.
+ Date date = cell.getDateCellValue();
+ // 원하는 형식으로 날짜를 포맷합니다.
+ SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
+ return dateFormat.format(date);
+ } else {
+ double numericValue = cell.getNumericCellValue();
+ if (Math.floor(numericValue) == numericValue) {
+ return String.valueOf((int) numericValue);
+ } else {
+ return String.valueOf(numericValue);
+ }
+ }
+ case BOOLEAN:
+ return Boolean.toString(cell.getBooleanCellValue());
+ default:
+ return "";
+ }
+ }
+
+}
\ No newline at end of file
diff --git a/src/main/java/kcc/ve/oprtn/cndtnSspnIdtmt/trgtMng/web/CndtnTrgtMngController.java b/src/main/java/kcc/ve/oprtn/cndtnSspnIdtmt/trgtMng/web/CndtnTrgtMngController.java
index 1db00ab4..77708fbd 100644
--- a/src/main/java/kcc/ve/oprtn/cndtnSspnIdtmt/trgtMng/web/CndtnTrgtMngController.java
+++ b/src/main/java/kcc/ve/oprtn/cndtnSspnIdtmt/trgtMng/web/CndtnTrgtMngController.java
@@ -47,6 +47,7 @@ import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsOnlnCntntService;
import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsService;
import kcc.ve.oprtn.cndtnSspnIdtmt.trgtMng.service.CndtnTrgtMngService;
import kcc.ve.oprtn.cndtnSspnIdtmt.trgtMng.service.CndtnTrgtMngVO;
+import kcc.ve.oprtn.cndtnSspnIdtmt.trgtMng.service.impl.TrgtExcelReader;
/**
* 기반강화연수(관리자)
@@ -540,6 +541,153 @@ public class CndtnTrgtMngController {
}
+ /**
+ * @methodName : trgtExcelRegAjax
+ * @author : 이호영
+ * @date : 2024.01.08
+ * @description : 대상자 EXCEL UPLOAD
+ * @param cndtnTrgtInfoMngVO
+ * @param model
+ * @param request
+ * @param multiRequest
+ * @return
+ * @throws Exception
+ */
+ @RequestMapping("/kccadr/oprtn/cndtnSspnIdtmt/trgtExcelRegAjax.do")
+ public ModelAndView trgtExcelRegAjax(
+ @ModelAttribute("cndtnTrgtInfoMngVO") CndtnTrgtMngVO cndtnTrgtInfoMngVO
+ , ModelMap model
+ , HttpServletRequest request
+ , final MultipartHttpServletRequest multiRequest
+ ) throws Exception {
+
+ ModelAndView modelAndView = new ModelAndView();
+ modelAndView.setViewName("jsonView");
+
+ //로그인 처리====================================
+ //로그인 정보 가져오기
+
+ String s_oprtnLoginCheckNInfo = checkLoginUtil.oprtnCheckNInfo(model);
+ if (!"".equals(s_oprtnLoginCheckNInfo)) {
+ modelAndView.addObject("result", "loginFail");
+ return modelAndView;
+ }
+ //로그인 처리====================================
+
+
+ LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기
+ SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기
+
+
+
+ // 파일 저장후 atchFileId return
+// String s_scholSealAtchFileId = this.getAtchFileId(request, multiRequest, modelAndView);
+ //TEST
+ String s_scholSealAtchFileId = "FILE_000000000001530";
+
+
+ // 등록 파일 select
+ FileVO fileVO = new FileVO();
+ fileVO.setAtchFileId(s_scholSealAtchFileId);
+ List fileList = fileService.selectFileInfs(fileVO);
+
+ if(fileList.size() > 0) {
+ System.out.println(fileList.get(0).toString());
+ FileVO fileInfoVO = fileList.get(0);
+// String filePathAndNm = fileInfoVO.getFileStreCours() + fileInfoVO.getStreFileNm()+"."+fileInfoVO.getFileExtsn();
+ String filePathAndNm = fileInfoVO.getFileStreCours() + fileInfoVO.getStreFileNm();
+
+
+
+ LOGGER.info(" ++ filePathAndNm :: [{}]", filePathAndNm);
+ TrgtExcelReader reader = new TrgtExcelReader(filePathAndNm);
+ try {
+ long startTime = System.currentTimeMillis();
+ List trgtExcelVOList = reader.readExcelFile();
+
+ long endTime = System.currentTimeMillis();
+ double duration = (endTime - startTime) / 1000.0; // 밀리초를 초로 변환
+
+ System.out.println("Execution time: " + duration + " milliseconds");
+
+ LOGGER.info("trgtExcelVOList.size() :: [{}]", trgtExcelVOList.size());
+ LOGGER.info("trgtExcelVOList.get(0).toString() :: [{}]", trgtExcelVOList.get(0).toString());
+
+
+
+
+
+ } catch (Exception e) {
+ // TODO: handle exception
+ e.printStackTrace();
+ }
+
+
+ // 파일이 없을 경우
+ }else {
+ modelAndView.addObject("result", "fail");
+ }
+
+
+
+ return modelAndView;
+
+ }
+
+
+ private String getAtchFileId(HttpServletRequest request, MultipartHttpServletRequest multiRequest,
+ ModelAndView modelAndView) throws Exception { //step2.파일 처리====================================
+ //파일 정상 처리 여부와 첨부 파일 정보
+ //String atchFileId = this.takeFile(multiRequest, modelAndView, bmVO);
+ //파일 제한 수량 가져오기, 없으면 기본값 사용
+ int i_file_limit = checkFileUtil.getLimitCount(request); // file count
+ int i_limit_size = checkFileUtil.getLimitSize(request); // file MB
+ String s_file_exts = checkFileUtil.getS_exts(); // file exts
+
+ String s_scholSealAtchFileId = "";
+ try {
+
+ s_scholSealAtchFileId = checkFileUtil.fileValCheckNdbInsert(
+ multiRequest, modelAndView
+ , "trgtExcel_" //file_name_prefix
+ , s_file_exts
+ , i_limit_size
+ , i_file_limit
+ ); //EXT, MB size and ea
+
+ if ("ERROR".equals(s_scholSealAtchFileId)) return "";
+
+ } catch (Exception e) {
+ e.printStackTrace();
+ // TODO: handle exception
+ }
+ return s_scholSealAtchFileId;
+ }
+
+ @RequestMapping("/kccadr/oprtn/cndtnSspnIdtmt/popup/excelUploadPopup.do")
+ public String excelUploadPopup(
+ @ModelAttribute("cndtnTrgtInfoMngVO") CndtnTrgtMngVO cndtnTrgtInfoMngVO
+ , ModelMap model
+ , RedirectAttributes redirectAttributes
+ , HttpSession session
+ , HttpServletRequest request
+ ) throws Exception {
+
+
+ LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기
+ SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기
+
+ //로그인 처리====================================
+
+ if(StringUtils.isEmpty(cndtnTrgtInfoMngVO.getdBirth())) {
+ cndtnTrgtInfoMngVO.setdBirth(cndtnTrgtInfoMngVO.getDBirth());
+
+ }
+
+
+// return "/oprtn/cndtnSspnIdtmt/popup/duplChkPopup";
+ return "/oprtn/cndtnSspnIdtmt/popup/excelUploadPopup";
+ }
@RequestMapping("/kccadr/oprtn/cndtnSspnIdtmt/popup/duplChkPopup.do")
public String duplChkPopup(
@@ -555,25 +703,23 @@ public class CndtnTrgtMngController {
LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기
SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기
- //로그인 처리====================================
+
+
+ CndtnTrgtMngVO cndtnTrgtInfo = cndtnTrgtInfoMngService.selectDetail(cndtnTrgtInfoMngVO);
+
+ cndtnTrgtInfo = egovCryptoUtil.decryptCndtnTrgtMngVOInfo(cndtnTrgtInfo);
+
if(StringUtils.isEmpty(cndtnTrgtInfoMngVO.getdBirth())) {
cndtnTrgtInfoMngVO.setdBirth(cndtnTrgtInfoMngVO.getDBirth());
}
-
- try {
- //검색을 위한 암호화
- System.out.println("cndtnTrgtInfoMngVO.getTrgtNm() : "+ cndtnTrgtInfoMngVO.getTrgtNm());
- cndtnTrgtInfoMngVO = egovCryptoUtil.encryptCndtnTrgtMngVOInfo(cndtnTrgtInfoMngVO);
- System.out.println("cndtnTrgtInfoMngVO.getdBirth() : "+ cndtnTrgtInfoMngVO.getdBirth());
- System.out.println("cndtnTrgtInfoMngVO.getTrgtNm() : "+ cndtnTrgtInfoMngVO.getTrgtNm());
-
- } catch (Exception e) {
- e.printStackTrace();
- // TODO: handle exception
- }
+ //검색을 위한 암호화
+ cndtnTrgtInfoMngVO = egovCryptoUtil.encryptCndtnTrgtMngVOInfo(cndtnTrgtInfoMngVO);
+
+
+
//병합대상자 검색
List cndtnTrgtInfoMngVOList = this._getMergeSearchList(model, cndtnTrgtInfoMngVO);
@@ -582,6 +728,7 @@ public class CndtnTrgtMngController {
cndtnTrgtInfoMngVO = egovCryptoUtil.decryptCndtnTrgtMngVOInfo(cndtnTrgtInfoMngVO);
model.addAttribute("list", cndtnTrgtInfoMngVOList);
+ model.addAttribute("cndtnTrgtInfo", cndtnTrgtInfo);
diff --git a/src/main/resources/log4j2.xml b/src/main/resources/log4j2.xml
index b19b0568..824d9afb 100644
--- a/src/main/resources/log4j2.xml
+++ b/src/main/resources/log4j2.xml
@@ -1,46 +1,56 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+ [%d{yyyy-MM-dd HH:mm:ss.SSS}] [%t] [%-5level] %logger{36}:%L - %msg%n
+ ${catalina.base}/logs/heqms
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/main/webapp/WEB-INF/jsp/oprtn/cndtnSspnIdtmt/popup/duplChkPopup.jsp b/src/main/webapp/WEB-INF/jsp/oprtn/cndtnSspnIdtmt/popup/duplChkPopup.jsp
index f047e824..57f90fab 100644
--- a/src/main/webapp/WEB-INF/jsp/oprtn/cndtnSspnIdtmt/popup/duplChkPopup.jsp
+++ b/src/main/webapp/WEB-INF/jsp/oprtn/cndtnSspnIdtmt/popup/duplChkPopup.jsp
@@ -154,10 +154,130 @@
" />
+
+
+