This commit is contained in:
kmg 2024-01-09 18:15:12 +09:00
commit e5dd747869
19 changed files with 1659 additions and 423 deletions

View File

@ -202,6 +202,11 @@ public class ComDefaultVO implements Serializable {
private String srchCndt5 = "";
private String srchKwd5_1 = "";
private String srchKwd5_2 = "";
private String searchPrsctrNm; //검사명 검색
private String searchVntNmbr; //사건번호 검색
private String searchReqNmbr; //의뢰번호 검색
public int getBeSort() {
@ -1036,4 +1041,28 @@ public class ComDefaultVO implements Serializable {
this.srchKwd5_2 = srchKwd5_2;
}
public String getSearchPrsctrNm() {
return searchPrsctrNm;
}
public void setSearchPrsctrNm(String searchPrsctrNm) {
this.searchPrsctrNm = searchPrsctrNm;
}
public String getSearchVntNmbr() {
return searchVntNmbr;
}
public void setSearchVntNmbr(String searchVntNmbr) {
this.searchVntNmbr = searchVntNmbr;
}
public String getSearchReqNmbr() {
return searchReqNmbr;
}
public void setSearchReqNmbr(String searchReqNmbr) {
this.searchReqNmbr = searchReqNmbr;
}
}

View File

@ -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
*
* <pre>
* << 개정이력(Modification Information) >>
*
* 수정일 수정자 수정내용
* ------- -------- ---------------------------
* 2009.03.11 이삼섭 최초 생성
*
* </pre>
*/
public interface EgovCmmUseService {
/**
* 공통코드를 조회한다.
*
* @param vo
* @return List(코드)
* @throws Exception
*/
public List<CmmnDetailCode> selectCmmCodeDetail(ComDefaultCodeVO vo) throws Exception;
/**
* 공통코드를 조회한다.(by String codeId)
*
* @param String codeId
* @return List(코드)
* @throws Exception
*/
public List<CmmnDetailCode> selectCmmCodeDetail(String codeId) throws Exception;
/**
* ComDefaultCodeVO의 리스트를 받아서 여러개의 코드 리스트를 맵에 담아서 리턴한다.
*
* @param voList
* @return Map(코드)
* @throws Exception
*/
public Map<String, List<CmmnDetailCode>> selectCmmCodeDetails(List<?> voList) throws Exception;
/**
* 조직정보를 코드형태로 리턴한다.
*
* @param 조회조건정보 vo
* @return 조직정보 List
* @throws Exception
*/
public List<CmmnDetailCode> selectOgrnztIdDetail(ComDefaultCodeVO vo) throws Exception;
/**
* 그룹정보를 코드형태로 리턴한다.
*
* @param 조회조건정보 vo
* @return 그룹정보 List
* @throws Exception
*/
public List<CmmnDetailCode> selectGroupIdDetail(ComDefaultCodeVO vo) throws Exception;
public CmmnDetailCode selectCmmCodeDetailValue(ComDefaultCodeVO vo) ;
public String selectCmmCodeDetailCodeValue(ComDefaultCodeVO vo);
public String selectCmmCodeDetailCodeValueOnlyName(ComDefaultCodeVO vo);
public List<CmmnDetailCode> 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
*
* <pre>
* << 개정이력(Modification Information) >>
*
* 수정일 수정자 수정내용
* ------- -------- ---------------------------
* 2009.03.11 이삼섭 최초 생성
*
* </pre>
*/
public interface EgovCmmUseService {
/**
* 공통코드를 조회한다.
*
* @param vo
* @return List(코드)
* @throws Exception
*/
public List<CmmnDetailCode> selectCmmCodeDetail(ComDefaultCodeVO vo) throws Exception;
/**
* 공통코드를 조회한다.(by String codeId)
*
* @param String codeId
* @return List(코드)
* @throws Exception
*/
public List<CmmnDetailCode> selectCmmCodeDetail(String codeId) throws Exception;
/**
* ComDefaultCodeVO의 리스트를 받아서 여러개의 코드 리스트를 맵에 담아서 리턴한다.
*
* @param voList
* @return Map(코드)
* @throws Exception
*/
public Map<String, List<CmmnDetailCode>> selectCmmCodeDetails(List<?> voList) throws Exception;
/**
* 조직정보를 코드형태로 리턴한다.
*
* @param 조회조건정보 vo
* @return 조직정보 List
* @throws Exception
*/
public List<CmmnDetailCode> selectOgrnztIdDetail(ComDefaultCodeVO vo) throws Exception;
/**
* 그룹정보를 코드형태로 리턴한다.
*
* @param 조회조건정보 vo
* @return 그룹정보 List
* @throws Exception
*/
public List<CmmnDetailCode> selectGroupIdDetail(ComDefaultCodeVO vo) throws Exception;
public CmmnDetailCode selectCmmCodeDetailValue(ComDefaultCodeVO vo) ;
public String selectCmmCodeDetailCodeValue(ComDefaultCodeVO vo);
public String selectCmmCodeDetailCodeValueOnlyName(ComDefaultCodeVO vo);
public List<CmmnDetailCode> selectCmmCodeDetailOrderByCode(ComDefaultCodeVO codeParam);
String selectCmmCodeDetailCode(ComDefaultCodeVO vo);
}

View File

@ -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<CmmnDetailCode> selectCmmCodeDetail(ComDefaultCodeVO vo) throws Exception {
return cmmUseDAO.selectCmmCodeDetail(vo);
}
/**
* 공통코드를 조회한다.(by String codeId)
*
* @param String codeId
* @return
* @throws Exception
*/
@Override
public List<CmmnDetailCode> 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<String, List<CmmnDetailCode>> selectCmmCodeDetails(List voList) throws Exception {
ComDefaultCodeVO vo;
Map<String, List<CmmnDetailCode>> map = new HashMap<String, List<CmmnDetailCode>>();
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<CmmnDetailCode> selectOgrnztIdDetail(ComDefaultCodeVO vo) throws Exception {
return cmmUseDAO.selectOgrnztIdDetail(vo);
}
/**
* 그룹정보를 코드형태로 리턴한다.
*
* @param 조회조건정보 vo
* @return 그룹정보 List
* @throws Exception
*/
@Override
public List<CmmnDetailCode> 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<CmmnDetailCode> 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<CmmnDetailCode> selectCmmCodeDetail(ComDefaultCodeVO vo) throws Exception {
return cmmUseDAO.selectCmmCodeDetail(vo);
}
/**
* 공통코드를 조회한다.(by String codeId)
*
* @param String codeId
* @return
* @throws Exception
*/
@Override
public List<CmmnDetailCode> 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<String, List<CmmnDetailCode>> selectCmmCodeDetails(List voList) throws Exception {
ComDefaultCodeVO vo;
Map<String, List<CmmnDetailCode>> map = new HashMap<String, List<CmmnDetailCode>>();
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<CmmnDetailCode> selectOgrnztIdDetail(ComDefaultCodeVO vo) throws Exception {
return cmmUseDAO.selectOgrnztIdDetail(vo);
}
/**
* 그룹정보를 코드형태로 리턴한다.
*
* @param 조회조건정보 vo
* @return 그룹정보 List
* @throws Exception
*/
@Override
public List<CmmnDetailCode> 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<CmmnDetailCode> selectCmmCodeDetailOrderByCode(ComDefaultCodeVO codeParam) {
// TODO Auto-generated method stub
return cmmUseDAO.selectCmmCodeDetailOrderByCode(codeParam);
}
}

View File

@ -4,6 +4,7 @@ import java.util.List;
import javax.annotation.Resource;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Component;
@ -544,9 +545,9 @@ public class EgovCryptoUtil {
// 240108 담당검사 이름 추가
public CndtnTrgtMngVO encryptCndtnTrgtMngVOInfo(CndtnTrgtMngVO p_cndtnTrgtInfoMngVO){
if (!"".equals(p_cndtnTrgtInfoMngVO.getTrgtNm())) p_cndtnTrgtInfoMngVO.setTrgtNm(this.encrypt(p_cndtnTrgtInfoMngVO.getTrgtNm()));
if (!"".equals(p_cndtnTrgtInfoMngVO.getClphone())) p_cndtnTrgtInfoMngVO.setClphone(this.encrypt(p_cndtnTrgtInfoMngVO.getClphone()));
if (!"".equals(p_cndtnTrgtInfoMngVO.getPrsctrNm())) p_cndtnTrgtInfoMngVO.setPrsctrNm(this.encrypt(p_cndtnTrgtInfoMngVO.getPrsctrNm()));
// if (!"".equals(p_cndtnTrgtInfoMngVO.getTrgtNm()) ) p_cndtnTrgtInfoMngVO.setTrgtNm(this.encrypt(p_cndtnTrgtInfoMngVO.getTrgtNm().trim()));
if (StringUtils.isNotEmpty( p_cndtnTrgtInfoMngVO.getTrgtNm()) ) p_cndtnTrgtInfoMngVO.setTrgtNm(this.encrypt(p_cndtnTrgtInfoMngVO.getTrgtNm().trim()));
if (StringUtils.isNotEmpty( p_cndtnTrgtInfoMngVO.getClphone())) p_cndtnTrgtInfoMngVO.setClphone(this.encrypt(p_cndtnTrgtInfoMngVO.getClphone().trim()));
//if (!"".equals(p_cndtnTrgtInfoMngVO.getPrsctrNm())) p_cndtnTrgtInfoMngVO.setPrsctrNm(this.encrypt(p_cndtnTrgtInfoMngVO.getPrsctrNm()));
return p_cndtnTrgtInfoMngVO;
@ -556,9 +557,9 @@ public class EgovCryptoUtil {
// 240108 담당검사 이름 추가
public CndtnTrgtMngVO decryptCndtnTrgtMngVOInfo(CndtnTrgtMngVO p_cndtnTrgtInfoMngVO){
if (!"".equals(p_cndtnTrgtInfoMngVO.getTrgtNm())) p_cndtnTrgtInfoMngVO.setTrgtNm(this.decrypt(p_cndtnTrgtInfoMngVO.getTrgtNm()));
if (!"".equals(p_cndtnTrgtInfoMngVO.getClphone())) p_cndtnTrgtInfoMngVO.setClphone(this.decrypt(p_cndtnTrgtInfoMngVO.getClphone()));
if (!"".equals(p_cndtnTrgtInfoMngVO.getPrsctrNm())) p_cndtnTrgtInfoMngVO.setPrsctrNm(this.decrypt(p_cndtnTrgtInfoMngVO.getPrsctrNm()));
// if (!"".equals(p_cndtnTrgtInfoMngVO.getTrgtNm())) p_cndtnTrgtInfoMngVO.setTrgtNm(this.decrypt(p_cndtnTrgtInfoMngVO.getTrgtNm().trim()));
if (StringUtils.isNotEmpty( p_cndtnTrgtInfoMngVO.getTrgtNm())) p_cndtnTrgtInfoMngVO.setTrgtNm(this.decrypt(p_cndtnTrgtInfoMngVO.getTrgtNm().trim()));
if (StringUtils.isNotEmpty( p_cndtnTrgtInfoMngVO.getClphone())) p_cndtnTrgtInfoMngVO.setClphone(this.decrypt(p_cndtnTrgtInfoMngVO.getClphone().trim()));
//if (!"".equals(p_cndtnTrgtInfoMngVO.getPrsctrNm())) p_cndtnTrgtInfoMngVO.setPrsctrNm(this.decrypt(p_cndtnTrgtInfoMngVO.getPrsctrNm()));
return p_cndtnTrgtInfoMngVO;

View File

@ -1,56 +1,58 @@
package kcc.ve.oprtn.cndtnSspnIdtmt.trgtMng.service;
import java.util.List;
import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsDetailVO;
public interface CndtnTrgtMngService {
List<CndtnTrgtMngVO> selectPagingList(CndtnTrgtMngVO cndtnTrgtInfoMngVO);
void insert(CndtnTrgtMngVO cndtnTrgtInfoMngVO);
CndtnTrgtMngVO selectDetail(CndtnTrgtMngVO cndtnTrgtInfoVO);
void update(CndtnTrgtMngVO cndtnTrgtInfoMngVO);
void updateUserId(CndtnTrgtMngVO cndtnTrgtMngVO);
int findCntreqNmber(String reqNmbrTemp);
void updateTrgtDuplAjax(CndtnTrgtMngVO cndtnTrgtInfoMngVO);
void updateDel(CndtnTrgtMngVO cndtnTrgtInfoMngVO);
/* //C
void insert(VEPrcsDetailVO paramVO) throws Exception;
//R
VEPrcsDetailVO selectDetail(VEPrcsDetailVO paramVO) throws Exception;
//U
int update(VEPrcsDetailVO paramVO) throws Exception;
//D
int delete(VEPrcsDetailVO paramVO) throws Exception;
//L
List<VEPrcsDetailVO> selectList(VEPrcsDetailVO paramVO) throws Exception;
//List<VEPrcsDetailVO> selectList4Fndth(VEPrcsDetailVO paramVO) throws Exception;
List<VEPrcsDetailVO> selectTngrPrcsList(VEPrcsDetailVO paramVO) throws Exception;
//Page List
List<VEPrcsDetailVO> selectPagingList(VEPrcsDetailVO paramVO) throws Exception;
//교육과정 리스트 순서 수정
void updatePrcsSort(VEPrcsDetailVO paramVO) throws Exception;*/
}
package kcc.ve.oprtn.cndtnSspnIdtmt.trgtMng.service;
import java.util.List;
import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsDetailVO;
public interface CndtnTrgtMngService {
List<CndtnTrgtMngVO> selectPagingList(CndtnTrgtMngVO cndtnTrgtInfoMngVO);
void insert(CndtnTrgtMngVO cndtnTrgtInfoMngVO);
CndtnTrgtMngVO selectDetail(CndtnTrgtMngVO cndtnTrgtInfoVO);
void update(CndtnTrgtMngVO cndtnTrgtInfoMngVO);
void updateUserId(CndtnTrgtMngVO cndtnTrgtMngVO);
int findCntreqNmber(String reqNmbrTemp);
void updateTrgtDuplAjax(CndtnTrgtMngVO cndtnTrgtInfoMngVO);
void updateDel(CndtnTrgtMngVO cndtnTrgtInfoMngVO);
List<CndtnTrgtMngVO> selectDuplChk(CndtnTrgtMngVO cndtnTrgtInfoMngVO);
/* //C
void insert(VEPrcsDetailVO paramVO) throws Exception;
//R
VEPrcsDetailVO selectDetail(VEPrcsDetailVO paramVO) throws Exception;
//U
int update(VEPrcsDetailVO paramVO) throws Exception;
//D
int delete(VEPrcsDetailVO paramVO) throws Exception;
//L
List<VEPrcsDetailVO> selectList(VEPrcsDetailVO paramVO) throws Exception;
//List<VEPrcsDetailVO> selectList4Fndth(VEPrcsDetailVO paramVO) throws Exception;
List<VEPrcsDetailVO> selectTngrPrcsList(VEPrcsDetailVO paramVO) throws Exception;
//Page List
List<VEPrcsDetailVO> selectPagingList(VEPrcsDetailVO paramVO) throws Exception;
//교육과정 리스트 순서 수정
void updatePrcsSort(VEPrcsDetailVO paramVO) throws Exception;*/
}

View File

@ -49,6 +49,7 @@ public class CndtnTrgtMngVO extends ComDefaultVO implements Serializable {
private List<String> sspnIdtmtTrgtOrdList;
private String eduAplctOrd; //신청한 교육 순번
private String rmrks; //비고
private String resultCd; //결과값 T-,F-거짓
@ -247,11 +248,33 @@ public class CndtnTrgtMngVO extends ComDefaultVO implements Serializable {
public void setRegNmbr(String regNmbr) {
this.regNmbr = regNmbr;
}
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"
;
}
}

View File

@ -141,5 +141,9 @@ public class CndtnTrgtMngDAO extends EgovAbstractDAO {
update("cndtnTrgtInfoMngDAO.updateDel", cndtnTrgtInfoMngVO);
}
public List<CndtnTrgtMngVO> selectDuplChk(CndtnTrgtMngVO cndtnTrgtInfoMngVO) {
return (List<CndtnTrgtMngVO>) list("cndtnTrgtInfoMngDAO.selectDuplChk", cndtnTrgtInfoMngVO);
}
}

View File

@ -1,72 +1,77 @@
package kcc.ve.oprtn.cndtnSspnIdtmt.trgtMng.service.impl;
import java.util.List;
import javax.annotation.Resource;
import org.springframework.stereotype.Service;
import egovframework.rte.fdl.idgnr.EgovIdGnrService;
import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsDetailVO;
import kcc.ve.oprtn.cndtnSspnIdtmt.trgtMng.service.CndtnTrgtMngService;
import kcc.ve.oprtn.cndtnSspnIdtmt.trgtMng.service.CndtnTrgtMngVO;
@Service("cndtnTrgtInfoMngService")
public class CndtnTrgtMngServiceImpl implements CndtnTrgtMngService {
//과정신청기간순번
@Resource(name="prcsAplctPrdGnrService")
private EgovIdGnrService prcsAplctPrdGnrService;
//과정
//대상자
@Resource(name="cndtnTrgtInfoMngDAO")
private CndtnTrgtMngDAO cndtnTrgtInfoMngDAO;
@Override
public List<CndtnTrgtMngVO> selectPagingList(CndtnTrgtMngVO cndtnTrgtInfoMngVO) {
return cndtnTrgtInfoMngDAO.selectPagingList(cndtnTrgtInfoMngVO);
}
@Override
public void insert(CndtnTrgtMngVO cndtnTrgtInfoMngVO) {
cndtnTrgtInfoMngDAO.insert(cndtnTrgtInfoMngVO);
}
@Override
public CndtnTrgtMngVO selectDetail(CndtnTrgtMngVO cndtnTrgtInfoVO) {
return cndtnTrgtInfoMngDAO.selectDetail(cndtnTrgtInfoVO);
}
@Override
public void update(CndtnTrgtMngVO cndtnTrgtInfoMngVO) {
cndtnTrgtInfoMngDAO.update(cndtnTrgtInfoMngVO);
}
@Override
public void updateUserId(CndtnTrgtMngVO cndtnTrgtMngVO) {
cndtnTrgtInfoMngDAO.updateUserId(cndtnTrgtMngVO);
}
@Override
public int findCntreqNmber(String reqNmbrTemp) {
return cndtnTrgtInfoMngDAO.findCntreqNmber(reqNmbrTemp);
}
@Override
public void updateTrgtDuplAjax(CndtnTrgtMngVO cndtnTrgtInfoMngVO) {
cndtnTrgtInfoMngDAO.updateTrgtDuplAjax(cndtnTrgtInfoMngVO);
}
@Override
public void updateDel(CndtnTrgtMngVO cndtnTrgtInfoMngVO) {
cndtnTrgtInfoMngDAO.updateDel(cndtnTrgtInfoMngVO);
}
}
package kcc.ve.oprtn.cndtnSspnIdtmt.trgtMng.service.impl;
import java.util.List;
import javax.annotation.Resource;
import org.springframework.stereotype.Service;
import egovframework.rte.fdl.idgnr.EgovIdGnrService;
import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsDetailVO;
import kcc.ve.oprtn.cndtnSspnIdtmt.trgtMng.service.CndtnTrgtMngService;
import kcc.ve.oprtn.cndtnSspnIdtmt.trgtMng.service.CndtnTrgtMngVO;
@Service("cndtnTrgtInfoMngService")
public class CndtnTrgtMngServiceImpl implements CndtnTrgtMngService {
//과정신청기간순번
@Resource(name="prcsAplctPrdGnrService")
private EgovIdGnrService prcsAplctPrdGnrService;
//과정
//대상자
@Resource(name="cndtnTrgtInfoMngDAO")
private CndtnTrgtMngDAO cndtnTrgtInfoMngDAO;
@Override
public List<CndtnTrgtMngVO> selectPagingList(CndtnTrgtMngVO cndtnTrgtInfoMngVO) {
return cndtnTrgtInfoMngDAO.selectPagingList(cndtnTrgtInfoMngVO);
}
@Override
public void insert(CndtnTrgtMngVO cndtnTrgtInfoMngVO) {
cndtnTrgtInfoMngDAO.insert(cndtnTrgtInfoMngVO);
}
@Override
public CndtnTrgtMngVO selectDetail(CndtnTrgtMngVO cndtnTrgtInfoVO) {
return cndtnTrgtInfoMngDAO.selectDetail(cndtnTrgtInfoVO);
}
@Override
public void update(CndtnTrgtMngVO cndtnTrgtInfoMngVO) {
cndtnTrgtInfoMngDAO.update(cndtnTrgtInfoMngVO);
}
@Override
public void updateUserId(CndtnTrgtMngVO cndtnTrgtMngVO) {
cndtnTrgtInfoMngDAO.updateUserId(cndtnTrgtMngVO);
}
@Override
public int findCntreqNmber(String reqNmbrTemp) {
return cndtnTrgtInfoMngDAO.findCntreqNmber(reqNmbrTemp);
}
@Override
public void updateTrgtDuplAjax(CndtnTrgtMngVO cndtnTrgtInfoMngVO) {
cndtnTrgtInfoMngDAO.updateTrgtDuplAjax(cndtnTrgtInfoMngVO);
}
@Override
public void updateDel(CndtnTrgtMngVO cndtnTrgtInfoMngVO) {
cndtnTrgtInfoMngDAO.updateDel(cndtnTrgtInfoMngVO);
}
@Override
public List<CndtnTrgtMngVO> selectDuplChk(CndtnTrgtMngVO cndtnTrgtInfoMngVO) {
return cndtnTrgtInfoMngDAO.selectDuplChk(cndtnTrgtInfoMngVO);
}
}

View File

@ -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<CndtnTrgtMngVO> readExcelFile() throws EncryptedDocumentException, InvalidFormatException {
try (FileInputStream fis = new FileInputStream(filePathAndNm)) {
Workbook workbook = WorkbookFactory.create(fis);
Sheet sheet = workbook.getSheetAt(0);
List<CndtnTrgtMngVO> 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 "";
}
}
}

View File

@ -26,6 +26,7 @@ import org.springframework.web.servlet.mvc.support.RedirectAttributes;
import egovframework.rte.fdl.idgnr.EgovIdGnrService;
import egovframework.rte.ptl.mvc.tags.ui.pagination.PaginationInfo;
import kcc.com.cmm.ComDefaultCodeVO;
import kcc.com.cmm.ComDefaultVO;
import kcc.com.cmm.LoginVO;
import kcc.com.cmm.service.CmmnDetailCode;
import kcc.com.cmm.service.EgovCmmUseService;
@ -38,6 +39,7 @@ import kcc.com.utl.user.service.CheckFileUtil;
import kcc.com.utl.user.service.CheckLoginUtil;
import kcc.let.uat.uia.service.SsoLoginVO;
import kcc.let.utl.fcc.service.EgovCryptoUtil;
import kcc.ve.instr.tngrVisitEdu.instrInfo.service.VEInstrDetailVO;
import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsAplctPrdService;
import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsCntntVO;
import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsDetailVO;
@ -45,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;
/**
* 기반강화연수(관리자)
@ -299,22 +302,38 @@ public class CndtnTrgtMngController {
if(StringUtil.isNotEmpty(cndtnTrgtInfoMngVO.getSearchKeyword())){
String searchStatus = cndtnTrgtInfoMngVO.getSearchStatus();
// selectCondition = "AND a."+searchStatus+" LIKE CONCAT ('%', '" +cndtnTrgtInfoMngVO.getSearchKeyword() + "', '%')";
selectCondition = "AND a."+searchStatus+" LIKE '%" +cndtnTrgtInfoMngVO.getSearchKeyword() + "%'";
selectCondition += "AND a."+searchStatus+" LIKE '%" +cndtnTrgtInfoMngVO.getSearchKeyword() + "%'";
//cndtnTrgtInfoMngVO.setSearchQuery(selectCondition);
}
//성명검색
if(StringUtil.isNotEmpty(cndtnTrgtInfoMngVO.getSearchKeywordFrom())){
selectCondition = " AND a.trgt_nm = '" +cndtnTrgtInfoMngVO.getSearchKeywordFrom() + "' ";
selectCondition += " AND a.trgt_nm = '" +cndtnTrgtInfoMngVO.getSearchKeywordFrom() + "' ";
//cndtnTrgtInfoMngVO.setSearchQuery(selectCondition);
}
//생년월일검색
if(StringUtil.isNotEmpty(cndtnTrgtInfoMngVO.getSearchKeywordTo())){
selectCondition = " AND a.d_birth ='" +cndtnTrgtInfoMngVO.getSearchKeywordTo() + "' ";
selectCondition += " AND a.d_birth ='" +cndtnTrgtInfoMngVO.getSearchKeywordTo() + "' ";
}
//검사명검색
if(StringUtil.isNotEmpty(cndtnTrgtInfoMngVO.getSearchPrsctrNm())){
selectCondition += " AND a.prsctr_nm ='" +cndtnTrgtInfoMngVO.getSearchPrsctrNm() + "' ";
}
//사건번호검색
if(StringUtil.isNotEmpty(cndtnTrgtInfoMngVO.getSearchVntNmbr())){
selectCondition += " AND a.vnt_nmbr ='" +cndtnTrgtInfoMngVO.getSearchVntNmbr() + "' ";
}
//의뢰번호검색
if(StringUtil.isNotEmpty(cndtnTrgtInfoMngVO.getSearchReqNmbr())){
selectCondition += " AND a.req_nmbr ='" +cndtnTrgtInfoMngVO.getSearchReqNmbr() + "' ";
}
cndtnTrgtInfoMngVO.setSearchQuery(selectCondition);
@ -509,7 +528,9 @@ public class CndtnTrgtMngController {
// 성인 A / 미성년 Y, 검찰청명, 검찰청 고유번호, 연도, 접수번호
try {
System.out.println(cndtnTrgtInfoMngVO.getDBirth());
if(StringUtils.isEmpty(cndtnTrgtInfoMngVO.getdBirth()) ) {
cndtnTrgtInfoMngVO.setdBirth(cndtnTrgtInfoMngVO.getDBirth());
}
System.out.println(cndtnTrgtInfoMngVO.getdBirth());
cndtnTrgtInfoMngVO.setReqNmbr(this.getReqNmbr(cndtnTrgtInfoMngVO));
@ -522,6 +543,8 @@ public class CndtnTrgtMngController {
cndtnTrgtInfoMngVO = egovCryptoUtil.encryptCndtnTrgtMngVOInfo(cndtnTrgtInfoMngVO);
cndtnTrgtInfoMngService.insert(cndtnTrgtInfoMngVO);
// 병합을 하기위한 key
modelAndView.addObject("sspnIdtmtTrgtOrd", cndtnTrgtInfoMngVO.getSspnIdtmtTrgtOrd());
modelAndView.addObject("result", "success");
}catch(Exception ex) {
@ -533,6 +556,262 @@ public class CndtnTrgtMngController {
return modelAndView;
}
/**
* @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<FileVO> 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<CndtnTrgtMngVO> 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(
@ModelAttribute("cndtnTrgtInfoMngVO") CndtnTrgtMngVO cndtnTrgtInfoMngVO
, ModelMap model
, RedirectAttributes redirectAttributes
, HttpSession session
, HttpServletRequest request
) throws Exception {
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());
}
//검색을 위한 암호화
cndtnTrgtInfoMngVO = egovCryptoUtil.encryptCndtnTrgtMngVOInfo(cndtnTrgtInfoMngVO);
//병합대상자 검색
List<CndtnTrgtMngVO> cndtnTrgtInfoMngVOList = this._getMergeSearchList(model, cndtnTrgtInfoMngVO);
//복호화
cndtnTrgtInfoMngVOList = egovCryptoUtil.decryptCndtnTrgtMngVOList(cndtnTrgtInfoMngVOList);
cndtnTrgtInfoMngVO = egovCryptoUtil.decryptCndtnTrgtMngVOInfo(cndtnTrgtInfoMngVO);
model.addAttribute("list", cndtnTrgtInfoMngVOList);
model.addAttribute("cndtnTrgtInfo", cndtnTrgtInfo);
return "/oprtn/cndtnSspnIdtmt/popup/duplChkPopup";
}
@RequestMapping("/kccadr/oprtn/cndtnSspnIdtmt/duplChkAjax.do")
public ModelAndView duplChkAjax(
@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 로그인 정보 가져오기
cndtnTrgtInfoMngVO = egovCryptoUtil.decryptCndtnTrgtMngVOInfo(cndtnTrgtInfoMngVO);
System.out.println(cndtnTrgtInfoMngVO.getTrgtNm());
System.out.println(cndtnTrgtInfoMngVO.getdBirth());
System.out.println(cndtnTrgtInfoMngVO.getSex());
try {
if(StringUtils.isEmpty(cndtnTrgtInfoMngVO.getdBirth()) ) {
cndtnTrgtInfoMngVO.setdBirth(cndtnTrgtInfoMngVO.getDBirth());
}
System.out.println(cndtnTrgtInfoMngVO.getdBirth());
//암호화
cndtnTrgtInfoMngVO = egovCryptoUtil.encryptCndtnTrgtMngVOInfo(cndtnTrgtInfoMngVO);
List<CndtnTrgtMngVO> cndtnTrgtDuplListVO = cndtnTrgtInfoMngService.selectDuplChk(cndtnTrgtInfoMngVO);
modelAndView.addObject("cndtnTrgtDuplListVO", cndtnTrgtDuplListVO);
modelAndView.addObject("trgtDuplSize", cndtnTrgtDuplListVO.size());
modelAndView.addObject("result", "success");
}catch(Exception ex) {
ex.printStackTrace();
modelAndView.addObject("result", "fail");
}
return modelAndView;
}
// 사건번호
// 형식 : - 예시로 A-서울중앙-100-23-1 경우

View File

@ -355,6 +355,19 @@
AND a.prcs_aplct_prd_ord_cmplt IS NULL /* 병합되지 않았다. */
</select>
<!-- 기소유예 대상자 확인 STEP01 -->
<select id="cndtnTrgtInfoMngDAO.selectDuplChk" parameterClass="CndtnPrcsInfoMngVO" resultClass="CndtnPrcsInfoMngVO">
/* cndtnTrgtInfoMngDAO.checkSspnIdtmtStep1 - step1.신청 가능한 대상이 있는지 찾는다. */
SELECT
<include refid="CndtnTrgtInfoMngDAO.select_column_name"/>
FROM
<include refid="CndtnTrgtInfoMngDAO.table_name"/> a
WHERE
a.trgt_nm = #trgtNm#
AND a.d_birth = #dBirth#
AND a.sex = #sex#
</select>
<!-- 기소유예 대상자 확인 STEP02 -->
<select id="cndtnTrgtInfoMngDAO.checkSspnIdtmtStep2" parameterClass="CndtnPrcsInfoMngVO" resultClass="CndtnPrcsInfoMngVO">

View File

@ -1,46 +1,56 @@
<?xml version="1.0" encoding="UTF-8"?>
<Configuration>
<Appenders>
<Console name="console" target="SYSTEM_OUT">
<PatternLayout pattern="[%d{HH:mm:ss.SSS}] %p{length=1} %c %M %L | %m%n" />
</Console>
</Appenders>
<Loggers>
<Logger name="org.apache" level="ERROR"></Logger>
<Logger name="org.springframework" level="ERROR"></Logger>
<Logger name="egovframework" level="ERROR"></Logger>
<Logger name="egovframework.rte" level="DEBUG"></Logger>
<Logger name="com.ibatis.sqlmap" level="INFO"></Logger>
<Logger name="egovframework.let" level="DEBUG"></Logger>
<Logger name="egovframework.com.cmm" level="DEBUG"></Logger>
<Logger name="egovframework.kccadr" level="DEBUG"></Logger>
<!-- <Logger name="jdbc.sqlonly" level="DEBUG">
<RegexFilter regex="(?s).*NOT_SQL_LOG.*" onMatch="DENY" onMismatch="NEUTRAL" useRawMsg="true" />
</Logger> -->
<Logger name="jdbc.sqltiming" level="WARN" additivity="false">
<AppenderRef ref="console" />
</Logger>
<Logger name="jdbc.audit" level="OFF"></Logger>
<Logger name="jdbc.resultset" level="OFF"></Logger>
<Logger name="jdbc.resultsettable" level="OFF"></Logger>
<Logger name="jdbc.connection" level="OFF"></Logger>
<logger name="java.sql.ResultSet" level="OFF"></logger>
<logger name="java.sql.PreparedStatement" level="OFF"></logger>
<logger name="java.sql.Connection" level="OFF"></logger>
<logger name="org.quartz.core.QuartzSchedulerThread" level="OFF"></logger>
<logger name="org.quartz.core.JobRunShell" level="OFF"></logger>
<logger name="log4jdbc.debug" level="OFF"></logger>
<Root level="DEBUG">
<AppenderRef ref="console" />
</Root>
</Loggers>
<?xml version="1.0" encoding="UTF-8"?>
<Configuration>
<Properties>
<Property name="LOG_PATTERN">[%d{yyyy-MM-dd HH:mm:ss.SSS}] [%t] [%-5level] %logger{36}:%L - %msg%n</Property>
<Property name="LOG_HOME">${catalina.base}/logs/heqms</Property>
</Properties>
<Appenders>
<Console name="console" target="SYSTEM_OUT">
<PatternLayout pattern="${LOG_PATTERN}" />
<!--
<PatternLayout pattern="%d %5p [%c] %m%n" />
-->
</Console>
</Appenders>
<Loggers>
<Logger name="org.apache" level="ERROR"></Logger>
<Logger name="org.springframework" level="ERROR"></Logger>
<Logger name="egovframework" level="ERROR"></Logger>
<Logger name="egovframework.rte" level="DEBUG"></Logger>
<Logger name="com.ibatis.sqlmap" level="INFO"></Logger>
<Logger name="egovframework.let" level="DEBUG"></Logger>
<Logger name="egovframework.com.cmm" level="DEBUG"></Logger>
<Logger name="egovframework.kccadr" level="DEBUG"></Logger>
<!-- <Logger name="jdbc.sqlonly" level="DEBUG">
<RegexFilter regex="(?s).*NOT_SQL_LOG.*" onMatch="DENY" onMismatch="NEUTRAL" useRawMsg="true" />
</Logger> -->
<Logger name="jdbc.sqltiming" level="WARN" additivity="false">
<AppenderRef ref="console" />
</Logger>
<Logger name="jdbc.audit" level="OFF"></Logger>
<Logger name="jdbc.resultset" level="OFF"></Logger>
<Logger name="jdbc.resultsettable" level="OFF"></Logger>
<Logger name="jdbc.connection" level="OFF"></Logger>
<logger name="java.sql.ResultSet" level="OFF"></logger>
<logger name="java.sql.PreparedStatement" level="OFF"></logger>
<logger name="java.sql.Connection" level="OFF"></logger>
<logger name="org.quartz.core.QuartzSchedulerThread" level="OFF"></logger>
<logger name="org.quartz.core.JobRunShell" level="OFF"></logger>
<logger name="log4jdbc.debug" level="OFF"></logger>
<Root level="DEBUG">
<AppenderRef ref="console" />
</Root>
</Loggers>
</Configuration>

View File

@ -0,0 +1,421 @@
<!DOCTYPE html>
<%@ 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"%>
<%
/**
* @Class Name : instrAsgnmPopup.jsp
* @Description : 강사배치 팝업
* @Modification Information
* @
* @ 수정일 수정자 수정내용
* @ ------- -------- ---------------------------
* @ 2021.08.09 김봉호 최초 생성
* @author 안주영
* @since 2022.1.8
* @version 1.0
* @see
*
*/
%>
<html lang="ko">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<%-- <script type="text/javascript" src="<c:url value='/js/ve/tmapJS.js'/>"></script> --%>
<script type="text/javascript">
</script>
<title>강사배치 팝업</title>
<script type="text/javaScript" language="javascript">
$(document).ready(function(){
// ID를 alpreah_input로 가지는 곳에서 키를 누를 경우
$("#instrNm").keydown(function(key) {
if (key.keyCode == 13) {
linkPage(1);
return false;
}
});
});
function fncPopClose(){
self.close();
}
function fncGoSearch(pageNo){
var listForm = document.listForm ;
listForm.action = "<c:url value='/kccadr/oprtn/cndtnSspnIdtmt/popup/duplChkPopup.do'/>";
listForm.submit();
}
function fncInstrAsgnm(p_id) {
$("#userId").val(p_id);
var data1 = new FormData(document.getElementById("createForm"));
if(confirm("강사를 선택 하시겠습니까?")){
$.ajax({
type:"POST",
url:"${pageContext.request.contextPath}/kccadr/oprtn/cndtnSspnIdtmt/cndtnInstrAsgnmAjax.do",
data: data1,
dataType:'json',
async: false,
processData: false,
contentType: false,
cache: false,
success:function(returnData){
if(returnData.result == 'success'){
alert("저장 되었습니다.");
opener.location.reload();
fncPopClose();
}
},
error:function(request , status, error){
alert("code:"+request.status+"\n"+"message:"+request.responseText+"\n"+"error:"+error);
}
});
}
}
// 체크박스O
function fnUpdate(){
var sspnIdtmtTrgtOrdList = [];
// "chk" 이름을 가진 체크박스가 체크된 항목들을 순회
$("input[name='chk']:checked").each(function() {
var sspnIdtmtTrgtOrd = $(this).val();
sspnIdtmtTrgtOrdList.push(sspnIdtmtTrgtOrd);
});
// 선택된 항목이 없으면 경고 메시지를 표시하고 함수를 종료
if (sspnIdtmtTrgtOrdList.length === 0) {
alert("선택된 항목이 없습니다. 선택 후 다시 시도하세요.");
return false;
}
var dataToSend = {
"sspnIdtmtTrgtOrdList": sspnIdtmtTrgtOrdList
//, "eduStateCd" : "20"
//, "prcsAplctPrdOrdCmplt" : $('#prcsAplctPrdOrdCmplt').val()
, "prcsAplctPrdOrdCmplt" : $('#sspnIdtmtTrgtOrd').val()
};
// var url = "<c:url value='/kccadr/oprtn/cndtnSspnIdtmt/updateEduAplctAprvlCdAjax.do'/>";
var url = "<c:url value='/kccadr/oprtn/cndtnSspnIdtmt/updateTrgtDuplAjax.do'/>";
if(!confirm("병합처리 진행하시겠습니까?")){
return false;
}
// AJAX 호출을 통해 서버에 데이터 전송
$.ajax({
type:"POST",
url: url,
data: $.param(dataToSend, true), // 직렬화 , 컨트롤러에서 @ModelAttribute로 받을 수 있음
// contentType : 'application/json',
dataType:'json',
success:function(returnData){
if(returnData.result == "success"){
alert("변경 처리 되었습니다.");
window.location.reload();
}else{
alert("변경 중 오류가 발생하였습니다.");
}
},
error: function(jqXHR, textStatus, errorThrown) {
console.error("AJAX Error:", textStatus, errorThrown);
console.error("Response:", jqXHR.responseText);
}
});
}
function fn_close(){
window.parent.location = "<c:url value='/kccadr/oprtn/cndtnSspnIdtmt/trgtList.do'/>";
self.close();
}
</script>
</head>
<body>
<div class="area_popup supm_popup">
<div class="cont_popup">
<form:form id="listForm" name="listForm" method="post" onsubmit="return false;">
<input type="hidden" name="sspnIdtmtTrgtOrd" id="sspnIdtmtTrgtOrd" value="<c:out value="${cndtnTrgtInfoMngVO.sspnIdtmtTrgtOrd}" />" />
<div class="area_popup">
<div class="tb_tit01">
<p>기준 대상자 정보</p>
</div>
<div class="cont_popup">
<!-- list_top -->
<%-- <div class="list_top">
<div class="list_top_1">
<div class="util_left">
<p>병합 대상자 검색</p>
</div>
<div class="util_right">
<input type="text" id="trgtNm" name="trgtNm" placeholder="이름" value="<c:out value='${cndtnTrgtInfoMngVO.trgtNm }' /> " />
<button type="button" class="btn_type08" onclick="fncGoSearch(1); return false;">검색</button>
</div>
</div>
</div> --%>
<!-- <div class="pop_tb_tit01"> -->
<!-- <p>병합 대상자 목록</p> -->
<!-- </div> -->
<div class="pop_tb_type01">
<table>
<colgroup>
<col style="width: 100px">
<col style="width: 100px">
<col style="width: 80px">
<col style="width: 100px">
<col style="width: 80px">
<col style="width: 60px">
<col style="width: 140px">
<col style="width: 80px">
<col style="width: 80px">
<col style="width: auto">
<col style="width: 80px">
</colgroup>
<thead>
<tr>
<th>의뢰일</th>
<th>사건번호</th>
<th>관할청</th>
<th>생년월일</th>
<th>성명</th>
<th>성별</th>
<th>의뢰번호</th>
<th>의뢰상태</th>
<th>교육상태</th>
<th>주소</th>
<th>검사명</th>
</tr>
</thead>
<tbody>
<tr>
<td>
<c:set var="reqPnttm" value="${fn:substring(cndtnTrgtInfo.reqPnttm, 0, 10)}" />
<%-- <fmt:formatDate value="${list.reqPnttm }" pattern="yyyy-MM-dd" /> --%>
<c:out value="${reqPnttm }" />
</td>
<td>
<c:out value="${cndtnTrgtInfo.vntYear }" />형제<c:out value="${cndtnTrgtInfo.vntNmbr }" />
</td>
<td>
<c:out value="${cndtnTrgtInfo.cmptntAthrt }" />
</td>
<td>
<c:out value="${cndtnTrgtInfo.dBirth }" />
</td>
<td>
<c:out value="${cndtnTrgtInfo.trgtNm }" />
</td>
<td>
<ve:code codeId="COM014" code="${cndtnTrgtInfo.sex }"/>
</td>
<td>
<c:out value="${cndtnTrgtInfo.reqNmbr }" />
</td>
<td>
<ve:code codeId="VEA005" code="${cndtnTrgtInfo.reqStateCd }"/>
</td>
<td>
<ve:code codeId="VEA002" code="${cndtnTrgtInfo.eduStateCd }"/>
</td>
<c:set var="fullAddr" value="${cndtnTrgtInfo.addr} ${cndtnTrgtInfo.addrDetail}" />
<%-- <c:set var="fullAddr" value="${cndtnTrgtInfo.addr}" /> --%>
<td title="${fullAddr}">
<c:out value="${cndtnTrgtInfo.addr }" />
<c:out value="${cndtnTrgtInfo.addrDetail }" />
<%-- ${fn:length(fullAddr)> 5 ? fn:substring(fullAddr, 0, 5).concat('...') : ''} --%>
</td>
<td>
<c:out value="${cndtnTrgtInfo.prsctrNm }" />
</td>
</tr>
</tbody>
</table>
</div>
<!-- page -->
<!-- <div class="page"> -->
<%-- <ui:pagination paginationInfo = "${paginationInfo}" type="image" jsFunction="linkPage" /> --%>
<!-- </div> -->
<!-- //page -->
<div class="btn_wrap_pop btn_layout01">
<div class="btn_left">
</div>
<div class="btn_center">
<button type="button" class="btn_type04" onclick="fnUpdate(); return false;">병합 처리</button>
<!-- <button type="button" class="btn_type04" onclick="self.close();">닫기</button> -->
<button type="button" class="btn_type04" onclick="fn_close()">닫기</button>
</div>
<div class="btn_right">
</div>
</div>
</div>
</div>
<div class="area_popup">
<div class="tb_tit01">
<p>병합 대상자 목록</p>
</div>
<div class="cont_popup">
<!-- list_top -->
<%-- <div class="list_top">
<div class="list_top_1">
<div class="util_left">
<p>병합 대상자 검색</p>
</div>
<div class="util_right">
<input type="text" id="trgtNm" name="trgtNm" placeholder="이름" value="<c:out value='${cndtnTrgtInfoMngVO.trgtNm }' /> " />
<button type="button" class="btn_type08" onclick="fncGoSearch(1); return false;">검색</button>
</div>
</div>
</div> --%>
<!-- <div class="pop_tb_tit01"> -->
<!-- <p>병합 대상자 목록</p> -->
<!-- </div> -->
<div class="pop_tb_type01">
<table>
<colgroup>
<col style="width: 40px">
<col style="width: 100px">
<col style="width: 100px">
<col style="width: 80px">
<col style="width: 100px">
<col style="width: 80px">
<col style="width: 60px">
<col style="width: 140px">
<col style="width: 80px">
<col style="width: 80px">
<col style="width: auto">
<col style="width: 80px">
</colgroup>
<thead>
<tr>
<th></th>
<th>의뢰일</th>
<th>사건번호</th>
<th>관할청</th>
<th>생년월일</th>
<th>성명</th>
<th>성별</th>
<th>의뢰번호</th>
<th>의뢰상태</th>
<th>교육상태</th>
<th>주소</th>
<th>검사명</th>
</tr>
</thead>
<tbody>
<c:forEach var="list" items="${list}" varStatus="status">
<%-- <tr class="listCount" onclick="fncGoDetail('<c:out value="${list.sspnIdtmtTrgtOrd}"/>');" style="cursor:pointer;"> --%>
<tr>
<%-- <td onclick="fncGoDetail('<c:out value="${list.sspnIdtmtTrgtOrd}"/>');" style="cursor:pointer;"> --%>
<%-- <c:out value='${list.prcsNm}'/> --%>
<!-- </td> -->
<td>
<c:choose>
<c:when test="${list.eduStateCd ne 20}">
<input name="chk"
value="${list.sspnIdtmtTrgtOrd}" title="Check" type="checkbox"/>
</c:when>
<c:otherwise>
<button type="button" class="btn_type05" onclick="fncDel('${list.sspnIdtmtTrgtOrd}'); return false;">취소</button>
</c:otherwise>
</c:choose>
</td>
<td>
<c:set var="reqPnttm" value="${fn:substring(list.reqPnttm, 0, 10)}" />
<%-- <fmt:formatDate value="${list.reqPnttm }" pattern="yyyy-MM-dd" /> --%>
<c:out value="${reqPnttm }" />
</td>
<td>
<c:out value="${info.vntYear }" />형제<c:out value="${info.vntNmbr }" />
</td>
<td>
<c:out value="${list.cmptntAthrt }" />
</td>
<td>
<c:out value="${list.dBirth }" />
</td>
<td>
<c:out value="${list.trgtNm }" />
</td>
<td>
<ve:code codeId="COM014" code="${list.sex }"/>
</td>
<td>
<c:out value="${list.reqNmbr }" />
</td>
<td>
<ve:code codeId="VEA005" code="${list.reqStateCd }"/>
</td>
<td>
<ve:code codeId="VEA002" code="${list.eduStateCd }"/>
</td>
<c:set var="fullAddr" value="${list.addr} ${list.addrDetail}" />
<%-- <c:set var="fullAddr" value="${list.addr}" /> --%>
<td title="${fullAddr}">
<c:out value="${list.addr }" />
<c:out value="${list.addrDetail }" />
<%-- ${fn:length(fullAddr)> 5 ? fn:substring(fullAddr, 0, 5).concat('...') : ''} --%>
</td>
<td>
<c:out value="${list.prsctrNm }" />
</td>
</tr>
</c:forEach>
<c:if test="${empty list}">
<tr><td colspan="12"><spring:message code="common.nodata.msg" /></td></tr>
</c:if>
</tbody>
</table>
</div>
<!-- page -->
<!-- <div class="page"> -->
<%-- <ui:pagination paginationInfo = "${paginationInfo}" type="image" jsFunction="linkPage" /> --%>
<!-- </div> -->
<!-- //page -->
<div class="btn_wrap_pop btn_layout01">
<div class="btn_left">
</div>
<div class="btn_center">
<button type="button" class="btn_type04" onclick="fnUpdate(); return false;">병합 처리</button>
<!-- <button type="button" class="btn_type04" onclick="self.close();">닫기</button> -->
<button type="button" class="btn_type04" onclick="fn_close()">닫기</button>
</div>
<div class="btn_right">
</div>
</div>
</div>
</div>
</form:form>
</div>
</div>
</body>
</html>

View File

@ -0,0 +1,231 @@
<!DOCTYPE html>
<%@ 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
*
*/
%>
<html lang="ko">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<script type="text/javascript">
</script>
<title>숙박신청내용보기팝업</title>
<script type="text/javaScript" language="javascript">
$(document).ready(function() {
$(".btn_type01").on('click', function(){
$("#file_temp").click();
});
});
function setDataSave(){
var data = new FormData(document.getElementById("createForm"));
//첨부파일 등록 처리-step2
_fileForm2.forEach(function(obj, idx) {
if (obj) data.append("file"+idx, obj.fileObj);
});
if(confirm("등록하시겠습니까?")){
// var url = "${pageContext.request.contextPath}/kccadr/oprtn/cndtnSspnIdtmt/trgtRegAjax.do";
var url = "${pageContext.request.contextPath}/kccadr/oprtn/cndtnSspnIdtmt/trgtExcelRegAjax.do";
console.log(data);
$.ajax({
type:"POST",
enctype: 'multipart/form-data',
url: url,
data: data,
dataType:'json',
async: false,
processData: false,
contentType: false,
cache: false,
success:function(returnData){
console.log('returnData :: ', returnData);
if(returnData.result == "success"){
alert("등록되었습니다.");
// fncGoList();
$('#sspnIdtmtTrgtOrd').val(returnData.sspnIdtmtTrgtOrd);
// 중복체크 ajax
// fn_duplChk();
}else if(returnData.result == "fail"){
alert(returnData.message);
$('#cmptntAthrt').prop('disabled', true);
}
},
error:function(request , status, error){
alert("code:"+request.status+"\n"+"message:"+request.responseText+"\n"+"error:"+error);
$('#cmptntAthrt').prop('disabled', true);
}
});
}
}
// 닫기
function fncPopClose(){
self.close();
}
</script>
</head>
<body>
<form:form id="createForm" name="createForm" method="post" commandName="vEEduAplctVO" onsubmit="return false;">
<!-- cont_tit -->
<div class="cont_tit">
<h2>대상자 엑셀 업로드</h2>
<!-- <ul class="cont_nav"> -->
<!-- <li class="home"><a href="/"><i></i></a></li> -->
<!-- <li> -->
<!-- <p>조건부기소유예관리</p> -->
<!-- </li> -->
<!-- <li><span class="cur_nav">대상자 목록</span></li> -->
<!-- <li><span class="cur_nav">대상자 등록</span></li> -->
<!-- </ul> -->
</div>
<div class="area_popup">
<div class="cont_popup">
<table class="pop_tb_type02">
<colgroup>
<col style="width: 140px;">
<col style="width: auto;">
<col style="width: 140px;">
<col style="width: auto;">
</colgroup>
<tbody>
<tr>
<th scope="row">
<p class="req_text"><span>필수입력 항목</span>*</p>
<p>첨부파일</p>
</th>
<td class="upload_area" colspan="3">
<!-- <input type="text" id="fileNm" size="30" class="file_input" readonly> --><!-- <button type="button" class="btnType01 btn_add_file">파일 첨부하기</button> -->
<input type="file" id="file_temp" name="file_temp" class="uploadFile" style="display:none"/>
<button type="button" id="filebutton" class="btn_type01">파일 첨부하기</button>
<p style="padding-left:30px;">첨부파일 가능 용량은 20MB입니다. </p><!-- <p style="color:red;font-weight:500">업로드 순서는 1.신청서 2.안내문 입니다.</p> -->
<div class="file_wrap file_upload_box no_img_box">
<table class="tbType02">
<caption>첨부파일 리스트 : 파일명, 종류, 크기, 삭제</caption>
<colgroup>
<col style="width: 60%;">
<col style="width: auto;">
<col style="width: 20%;">
<col style="width: 10%;">
</colgroup>
<thead>
<!-- <th>
<input type="checkbox" id="all_check"><label for="all_check"></label>
</th> -->
<th scope="col">파일 명</th>
<th scope="col">종류</th>
<th scope="col">크기</th>
<th scope="col">삭제</th>
</thead>
<tbody class="tb_file_before">
<tr>
<td colspan="4">
<p>첨부하실 파일을 <span>마우스로 끌어서</span> 넣어주세요.</p>
</td>
</tr>
</tbody>
</table>
</div>
<div class="file_wrap fileAfter file_list_div">
<table class="tbType02">
<caption>첨부파일 리스트 : 파일명, 종류, 크기, 삭제</caption>
<colgroup>
<col style="width: 60%">
<col style="width: 10%">
<col style="width: 20%">
<col style="width: 10%">
</colgroup>
<thead>
<!-- <th>
<input type="checkbox" id="all_check"><label for="all_check"></label>
</th> -->
<th scope="col">파일 명</th>
<th scope="col">종류</th>
<th scope="col">크기</th>
<th scope="col">삭제</th>
</thead>
<tbody id="tbody_fiielist" class="tb_file_after">
<c:forEach var="fileList" items="${fileList}" varStatus="status">
<tr class="item_<c:out value='${fileList.atchFileId}' />_<c:out value='${fileList.fileSn}' /> uploaded_obj">
<input type="hidden" name="fileSize" class="item_file_size" value="${fileList.fileSize}">
<td class="td_filename">
<!-- <img src="/direct/img/upload_hwp_img.png" alt="" /> -->
<span class="file_name_text"><c:out value='${fileList.orignlFileNm}' /></span>
</td>
<td class="td_filesort">
<span class="file_filesort_text" value="<c:out value="${fileList.fileExtsn}"/>"><c:out value="${fileList.fileExtsn}"/></span>
</td>
<td class="td_filesize">
<span class="file_size_text" value="<c:out value="${fileList.fileMg}"/>"><c:out value="${fileList.fileMg}"/></span>
</td>
<td>
<button type="button" class="btn_del" onclick="delAtchFile('<c:out value='${fileList.atchFileId}' />', '<c:out value='${fileList.fileSn}' />'); return false;" title="파일삭제"><i></i></button>
</td>
</tr>
</c:forEach>
</tbody>
</table>
</div>
</td>
</tr>
</tbody>
</table>
<!-- 교육결과상세 화면에서 호출 시 버튼 비노출 -->
<c:if test="${status ne 'end'}">
<div class="btn_wrap_pop btn_layout01">
<div class="btn_left">
</div>
<div class="btn_center">
<button type="button" onclick="setDataSave(); return false;" class="btn_type04">엑셀 등록</button>
<button type="button" onclick="fncPopClose(); return false;" class="btn_type02">닫기</button>
</div>
<div class="btn_right">
<!-- <button type="button" onclick="fncEduAcmdtAplctRejectInfo(); return false;" class="btn_type03" id="btnReject">반려</button> -->
</div>
</div>
</c:if>
<c:if test="${status eq 'end'}">
<div class="btn_wrap_pop btn_layout01">
<div class="btn_left">
</div>
<div class="btn_center">
<button type="button" onclick="fncPopClose(); return false;" class="btn_type02">닫기</button>
</div>
<div class="btn_right">
</div>
</div>
</c:if>
</div>
</div>
</form:form>
</body>
</html>

View File

@ -108,6 +108,19 @@
listForm.action = "<c:url value='/kccadr/oprtn/cndtnSspnIdtmt/trgtReg.do'/>";
listForm.submit();
}
function fn_excel_upload() {
var form = document.excelForm;
// form.action = "<c:url value='/kccadr/oprtn/cndtnSspnIdtmt/popup/duplChkPopup.do'/>";
form.action = "<c:url value='/kccadr/oprtn/cndtnSspnIdtmt/popup/excelUploadPopup.do'/>";
window.open("#", "_duplChkPopup", "scrollbars = no, top=100px, left=100px, height=750px, width=950px");
form.target = "_duplChkPopup";
form.submit();
}
function fncDelete(prcsOrd){
document.listForm.prcsOrd.value = prcsOrd ;
@ -208,6 +221,8 @@
<title>교육과정관리</title>
</head>
<body>
<form id="excelForm" name="excelForm" method="post" >
</form>
<form id="detailForm" name="detailForm" method="post" >
<input type="hidden" id="sspnIdtmtTrgtOrd" name="sspnIdtmtTrgtOrd" value="" />
</form>
@ -422,6 +437,7 @@
</div>
<div class="btn_wrap btn_layout01">
<div class="btn_left">
<button type="button" class="btn_type04" onclick="fn_excel_upload(); return false;">엑셀 업로드</button>
</div>
<div class="btn_center">
</div>

View File

@ -322,6 +322,12 @@
<button type="button" class="btn_type08" onclick="fncGoList(); return false;">검색</button>
<button class="btn_type03" onclick="fncReset(this); return false;">초기화</button>
</div>
<div class="util_left">
<p>구분6</p>
</div>
<div class="util_right">
<input type="text" id="searchPrsctrNm" name="searchPrsctrNm" placeholder="검사명을 입력해주세요." title="검색어 입력" class="search_input" value="<c:out value='${cndtnTrgtInfoMngVO.searchPrsctrNm}'/>">
</div>
</div>
<div class="list_top_1">
@ -330,9 +336,12 @@
</div>
<div class="util_right">
<input type="text" id="searchKeywordTo" name="searchKeywordTo" placeholder="생년월일을 입력해 주세요.19800102" title="검색어 입력" class="search_input" value="<c:out value='${cndtnTrgtInfoMngVO.searchKeywordTo}'/>">
<!-- <button class="btn_type03" onclick="fncReset(this); return false;">초기화</button> -->
</div>
<div class="util_left">
<p>구분7</p>
</div>
<div class="util_right">
<input type="text" id="searchVntNmbr" name="searchVntNmbr" placeholder="사건번호를 입력해주세요." title="검색어 입력" class="search_input" value="<c:out value='${cndtnTrgtInfoMngVO.searchVntNmbr}'/>">
</div>
</div>
@ -351,6 +360,12 @@
</div>
</div>
</div>
<div class="util_left">
<p>구분8</p>
</div>
<div class="util_right">
<input type="text" id="searchReqNmbr" name="searchReqNmbr" placeholder="의뢰번호를 입력해주세요." title="검색어 입력" class="search_input" value="<c:out value='${cndtnTrgtInfoMngVO.searchReqNmbr}'/>">
</div>
</div>
<div class="list_top_2">
<div class="util_left">
@ -375,7 +390,7 @@
<option value="${list.code }" <c:if test="${info.cmptntAthrt==list.code }">selected="selected"</c:if> >${list.codeNm }</option>
</c:forEach>
</select>
<button type="button" class="btn_type08" onclick="fncGoList(); return false;">검색</button>
<!-- <button type="button" class="btn_type08" onclick="fncGoList(); return false;">검색</button> -->
</div>
</div>
<div class="list_top_2">

View File

@ -73,7 +73,9 @@
if(returnData.result == "success"){
alert("저장되었습니다.");
// fncGoList();
//
$('#sspnIdtmtTrgtOrd').val(returnData.sspnIdtmtTrgtOrd);
// 중복체크 ajax
fn_duplChk();
}else if(returnData.result == "fail"){
alert(returnData.message);
$('#cmptntAthrt').prop('disabled', true);
@ -87,7 +89,58 @@
}
}
// 중복 대상자가 있는지 확인
function fn_duplChk(){
var data = new FormData(document.getElementById("createForm"));
// if(confirm("저장하시겠습니까?")){
var url = "${pageContext.request.contextPath}/kccadr/oprtn/cndtnSspnIdtmt/duplChkAjax.do";
console.log(data);
$.ajax({
type:"POST",
enctype: 'multipart/form-data',
url: url,
data: data,
dataType:'json',
async: false,
processData: false,
contentType: false,
cache: false,
success:function(returnData){
console.log('returnData :: ', returnData);
if(returnData.result == "success" && returnData.trgtDuplSize > 1){
alert("중복 대상자가 있습니다.");
fn_duplChkPopup();
fncGoList();
//
}else if(returnData.result == "fail"){
alert(returnData.message);
$('#cmptntAthrt').prop('disabled', true);
}
},
error:function(request , status, error){
alert("code:"+request.status+"\n"+"message:"+request.responseText+"\n"+"error:"+error);
$('#cmptntAthrt').prop('disabled', true);
}
});
// }
}
// 강사 배치
function fn_duplChkPopup() {
var form = document.createForm;
form.action = "<c:url value='/kccadr/oprtn/cndtnSspnIdtmt/popup/duplChkPopup.do'/>";
window.open("#", "_duplChkPopup", "scrollbars = no, top=100px, left=100px, height=750px, width=1500px");
form.target = "_duplChkPopup";
form.submit();
}
function fn_valChk(){
// 의뢰일 검사
@ -225,6 +278,9 @@
<form:form id="listForm" name="listForm" commandName="vEPrcsDetailVO" method="post">
</form:form>
<form:form id="createForm" name="createForm" commandName="adjustDeptManageVO" method="post">
<input type="hidden" name="sspnIdtmtTrgtOrd" id="sspnIdtmtTrgtOrd" value="" />
<!-- cont -->
<div class="cont_wrap">
<div class="box">

View File

@ -249,10 +249,10 @@
<div class="tit_box">
<i class="tit_box_icon1"></i>
<div>
<p>찾아가는 저작권 교육</p>
<p>기소유예</p>
<span>
‘찾아가는 저작권 교육’은 저작권 교육이 필요한 <span>공공기관, 대학, 문화예술단체 등을 </span>대상으로 무료로 강의를 지원하는 맞춤형 교육 서비스입니다.
<p style="font-weight:400;color:red;font-size:17px;padding-top:10px;">담당자 연락처) 02-2669-0083</p>
저작권 침해사범 중 검찰청으로부터 교육조건부 기소유예 처분을 받아 교육 의뢰된 자
<a href="${pageContext.request.contextPath}/web/ve/aplct/sspnIdtmt/eduFAQList.do"><p style="font-weight:400;color:red;font-size:17px;padding-top:10px;">문의사항 : 상단 교육문의 활용</p></a>
</span>
</div>
</div>

View File

@ -88,7 +88,7 @@
<div class="btn_left">
</div>
<div class="btn_center">
<button type="button" class="btnType08" onclick="location.href='<c:url value="/web/ve/aplct/sspnIdtmt/sspnIdtmtEduAplctList.do" />'">교육신청</button>
<button type="button" class="btnType08" onclick="location.href='<c:url value="/web/ve/aplct/sspnIdtmt/eduAplctList.do" />'">교육신청</button>
</div>
<div class="btn_right">
</div>