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 @@ " /> + + +
-
-

병합 대상자 목록

+
+

기준 대상자 정보

+
+
+ + <%--
+
+
+

병합 대상자 검색

+
+
+ + +
+
+
--%> + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <%-- --%> + + + + +
의뢰일사건번호관할청생년월일성명성별의뢰번호의뢰상태교육상태주소검사명
+ + <%-- --%> + + + 형제 + + + + + + + + + + + + + + + + + + <%-- ${fn:length(fullAddr)> 5 ? fn:substring(fullAddr, 0, 5).concat('...') : ''} --%> + + +
+
+ + +<%-- --%> + + + +
+
+
+
+ + + +
+
+
+
+
+ + +
+
+

병합 대상자 목록

+
<%--
diff --git a/src/main/webapp/WEB-INF/jsp/oprtn/cndtnSspnIdtmt/popup/excelUploadPopup.jsp b/src/main/webapp/WEB-INF/jsp/oprtn/cndtnSspnIdtmt/popup/excelUploadPopup.jsp new file mode 100644 index 00000000..3294c91d --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/oprtn/cndtnSspnIdtmt/popup/excelUploadPopup.jsp @@ -0,0 +1,231 @@ + +<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> +<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%> +<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %> +<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%> +<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %> +<%@ taglib prefix="validator" uri="http://www.springmodules.org/tags/commons-validator" %> +<%@ taglib prefix="ve" uri="/WEB-INF/tlds/kcc_tld.tld"%> +<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %> +<% + /** + * @Class Name : eduAcmdtAplctPopup.jsp + * @Description : 숙박신청내용보기 팝업 + * @Modification Information + * @ + * @ 수정일 수정자 수정내용 + * @ ------- -------- --------------------------- + * @ 2022.01.07 박진순 최초 생성 + * @author 박진순 + * @since 2020.01.07 + * @version 1.0 + * @see + * + */ +%> + + + + + 숙박신청내용보기팝업 + + + + + + + +
+

대상자 엑셀 업로드

+ + + + + + + + +
+
+
+ + + + + + + + + + + + + + +
+

필수입력 항목*

+

첨부파일

+
+ + + +

첨부파일 가능 용량은 20MB입니다.

+
+ + + + + + + + + + + + + + + + + + + + +
첨부파일 리스트 : 파일명, 종류, 크기, 삭제
파일 명종류크기삭제
+

첨부하실 파일을 마우스로 끌어서 넣어주세요.

+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
첨부파일 리스트 : 파일명, 종류, 크기, 삭제
파일 명종류크기삭제
+ + + + "> + + "> + + +
+
+
+ + +
+
+
+
+ + +
+
+ +
+
+
+ +
+
+
+
+ +
+
+
+
+
+
+
+ +
+ + +