This commit is contained in:
leejunho 2025-09-11 09:30:21 +09:00
commit 1b12b2aa34
12 changed files with 5578 additions and 1 deletions

View File

@ -34,6 +34,7 @@ import kcc.ve.instr.tngrVisitEdu.lctrInfo.service.VELctrDetailVO;
import kcc.ve.instr.tngrVisitEdu.lctrInfo.service.VELctrSttsVO;
import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEAPrcsAplctPrdInstrAsgnmVO;
import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsDetailVO;
import kcc.ve.oprtn.cmdTrgt.trgtMng.service.CmdTrgtMngVO;
import kcc.ve.oprtn.cndtnSspnIdtmt.trgtMng.service.CndtnTrgtMngVO;
import kcc.ve.oprtn.qestnr.service.VEAQestnrVO;
@ -599,6 +600,39 @@ public class EgovCryptoUtil {
// 240108 담당검사 이름 추가
public CndtnTrgtMngVO decryptCndtnTrgtMngVOInfo(CndtnTrgtMngVO p_cndtnTrgtInfoMngVO){
// 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 (StringUtils.isNotEmpty( p_cndtnTrgtInfoMngVO.getVntNmbr())) p_cndtnTrgtInfoMngVO.setVntNmbr(this.decrypt(p_cndtnTrgtInfoMngVO.getVntNmbr().trim()));
if (StringUtils.isNotEmpty( p_cndtnTrgtInfoMngVO.getdBirth())) p_cndtnTrgtInfoMngVO.setdBirth(this.decrypt(p_cndtnTrgtInfoMngVO.getdBirth().trim()));
if (StringUtils.isNotEmpty( p_cndtnTrgtInfoMngVO.getAddr())) p_cndtnTrgtInfoMngVO.setAddr(this.decrypt(p_cndtnTrgtInfoMngVO.getAddr().trim()));
if (StringUtils.isNotEmpty( p_cndtnTrgtInfoMngVO.getAddrDetail())) p_cndtnTrgtInfoMngVO.setAddrDetail(this.decrypt(p_cndtnTrgtInfoMngVO.getAddrDetail().trim()));
//if (!"".equals(p_cndtnTrgtInfoMngVO.getPrsctrNm())) p_cndtnTrgtInfoMngVO.setPrsctrNm(this.decrypt(p_cndtnTrgtInfoMngVO.getPrsctrNm()));
return p_cndtnTrgtInfoMngVO;
}
//CndtnTrgtMngVO - 암호화
// 240108 담당검사 이름 추가
public CmdTrgtMngVO encryptCmdTrgtMngVOInfo(CmdTrgtMngVO p_cndtnTrgtInfoMngVO){
// 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 (StringUtils.isNotEmpty( p_cndtnTrgtInfoMngVO.getVntNmbr())) p_cndtnTrgtInfoMngVO.setVntNmbr(this.encrypt(p_cndtnTrgtInfoMngVO.getVntNmbr().trim()));
if (StringUtils.isNotEmpty( p_cndtnTrgtInfoMngVO.getdBirth())) p_cndtnTrgtInfoMngVO.setdBirth(this.encrypt(p_cndtnTrgtInfoMngVO.getdBirth().trim()));
if (StringUtils.isNotEmpty( p_cndtnTrgtInfoMngVO.getAddr())) p_cndtnTrgtInfoMngVO.setAddr(this.encrypt(p_cndtnTrgtInfoMngVO.getAddr().trim()));
if (StringUtils.isNotEmpty( p_cndtnTrgtInfoMngVO.getAddrDetail())) p_cndtnTrgtInfoMngVO.setAddrDetail(this.encrypt(p_cndtnTrgtInfoMngVO.getAddrDetail().trim()));
//if (!"".equals(p_cndtnTrgtInfoMngVO.getPrsctrNm())) p_cndtnTrgtInfoMngVO.setPrsctrNm(this.encrypt(p_cndtnTrgtInfoMngVO.getPrsctrNm()));
return p_cndtnTrgtInfoMngVO;
}
//CndtnTrgtMngVO - 복호화
// 240108 담당검사 이름 추가
public CmdTrgtMngVO decryptCmdTrgtMngVOInfo(CmdTrgtMngVO p_cndtnTrgtInfoMngVO){
// 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()));
@ -623,7 +657,16 @@ public class EgovCryptoUtil {
return p_cndtnTrgtInfoMngVOList;
}
//CndtnTrgtMngVOList - 복호화
public List<CmdTrgtMngVO> decryptCmdTrgtMngVOList(List<CmdTrgtMngVO> p_cndtnTrgtInfoMngVOList){
for (int i=0;i<p_cndtnTrgtInfoMngVOList.size();i++) {
CmdTrgtMngVO cndtnTrgtMngVO = this.decryptCmdTrgtMngVOInfo(p_cndtnTrgtInfoMngVOList.get(i));
p_cndtnTrgtInfoMngVOList.set(i, cndtnTrgtMngVO);
}
return p_cndtnTrgtInfoMngVOList;
}
//////////////////////////////////////////////////
//
// VO /복호화

View File

@ -0,0 +1,82 @@
package kcc.ve.oprtn.cmdTrgt.trgtMng.service;
import java.util.List;
import kcc.ve.adv.tngr.stngInfo.service.VEAStngVO;
public interface CmdTrgtMngService {
List<CmdTrgtMngVO> selectPagingList(CmdTrgtMngVO cndtnTrgtInfoMngVO);
void insert(CmdTrgtMngVO cndtnTrgtInfoMngVO);
int insert4Merge(CmdTrgtMngVO cndtnTrgtInfoMngVO);
CmdTrgtMngVO selectDetail(CmdTrgtMngVO cndtnTrgtInfoVO);
CmdTrgtMngVO selectDetail4Merge(CmdTrgtMngVO cndtnTrgtInfoVO);
CmdTrgtMngVO selectCheck4Merge(CmdTrgtMngVO cndtnTrgtInfoVO);
//해당 지검의 관할청 코드값 가져오기
CmdTrgtMngVO selectDetailReqNmbr(CmdTrgtMngVO cndtnTrgtInfoVO);
void update(CmdTrgtMngVO cndtnTrgtInfoMngVO);
void updateUserId(CmdTrgtMngVO cndtnTrgtMngVO);
void updateUserIdCancel(CmdTrgtMngVO cndtnTrgtMngVO);
int findCntreqNmber(String reqNmbrTemp);
void updateTrgtDuplAjax(CmdTrgtMngVO cndtnTrgtInfoMngVO);
void updateDel(CmdTrgtMngVO cndtnTrgtInfoMngVO);
List<CmdTrgtMngVO> selectDuplChk(CmdTrgtMngVO cndtnTrgtInfoMngVO);
void bulkInsert(List<CmdTrgtMngVO> trgtExcelVOList);
//비공개메모 update
int memoUpdate(CmdTrgtMngVO cndtnTrgtInfoMngVO) throws Exception;
void updateEduStateCdAndReqStateCdAjax(CmdTrgtMngVO cndtnTrgtMngVO);
void deleteEduReqAjax(CmdTrgtMngVO cndtnTrgtMngVO);
VEAStngVO selectSMSSndString(VEAStngVO vEAStngVO);
void updateSMSSndString(VEAStngVO vEAStngVO);
CmdTrgtMngVO findByEduAplctOrdAndMberId(CmdTrgtMngVO cndtnTrgtInfoMngVO);
List<CmdTrgtMngVO> selectListRelated(CmdTrgtMngVO 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

@ -0,0 +1,366 @@
package kcc.ve.oprtn.cmdTrgt.trgtMng.service;
import java.io.Serializable;
import java.util.Arrays;
import java.util.List;
import kcc.com.cmm.ComDefaultVO;
public class CmdTrgtMngVO extends ComDefaultVO implements Serializable {
/*
* 과정테이블
* */
private static final long serialVersionUID = 1L;
//ve_prcs
private String cmdTrgtInfoOrd; // 과정순번
private String userId; // 사용자아이디
private String eduStateCd; // 대상상태코드 VEA002
private String frstRegistPnttm; // 등록일시
private String frstRegisterId; // 등록자
private String lastUpdtPnttm; // 수정일시
private String lastUpdusrId; // 수정자
private String trgtNm; // 대상자성명
private String clphone; // 연락처
private String dBirth; // 생년월일
private String DBirth; // 생년월일
private String addr; // 주소
private String addrDetail; // 상세주소
private String email; // 이메일주소
private String post; // 우편주소
private String reqPnttm; // 의뢰일
private String vntYear; // 사건년도
private String vntNmbr; // 사건번호
private String cmptntAthrt; // 관할청
private String sex; // 성별
private String reqNmbr; // 의뢰번호
private String reqNmbrTemp; // 의뢰번호
private String prsctrNm; // 검사성명
private String reqStateCd; // 의뢰상태코드
private String prcsAplctPrdOrdCmplt;// 중복확인을 위한 신청강의 PK
private String atchFileId;// 첨부파일 ID
private List<String> searchSelStatusList;
private List<String> sspnIdtmtTrgtOrdList;
private String eduAplctOrd; //신청한 교육 순번
private String rmrks; //비고
private String resultCd; //결과값 T-,F-거짓
private String regNmbr; //의뢰번호
private String mergeStatus; //excel 등록시 병합상태 null or 병합
private String cmptntAthrtNm; // 관할청이름 - 의뢰통지서 첨부파일에 사용
private String chkYn; // 기소유예 대상자 휴대폰 인증번호 체크 여부
private String title;
private String eduStrtPnttm;
private String aprvlCd;
private String aplctStateCd;
private String cnclCn;
private String eduStateCdNm; // 대상상태명
private String reqStateCdNm; // 신청상태명
//private String cmptntAthrtNm; // 대상상태코드 VEA002
private String sexNm; // 성별명
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getEduStrtPnttm() {
return eduStrtPnttm;
}
public void setEduStrtPnttm(String eduStrtPnttm) {
this.eduStrtPnttm = eduStrtPnttm;
}
public String getAprvlCd() {
return aprvlCd;
}
public void setAprvlCd(String aprvlCd) {
this.aprvlCd = aprvlCd;
}
public String getAplctStateCd() {
return aplctStateCd;
}
public void setAplctStateCd(String aplctStateCd) {
this.aplctStateCd = aplctStateCd;
}
public String getCmdTrgtInfoOrd() {
return cmdTrgtInfoOrd;
}
public void setCmdTrgtInfoOrd(String cmdTrgtInfoOrd) {
this.cmdTrgtInfoOrd = cmdTrgtInfoOrd;
}
public String getUserId() {
return userId;
}
public void setUserId(String userId) {
this.userId = userId;
}
public String getEduStateCd() {
return eduStateCd;
}
public void setEduStateCd(String eduStateCd) {
this.eduStateCd = eduStateCd;
}
public String getFrstRegistPnttm() {
return frstRegistPnttm;
}
public void setFrstRegistPnttm(String frstRegistPnttm) {
this.frstRegistPnttm = frstRegistPnttm;
}
public String getFrstRegisterId() {
return frstRegisterId;
}
public void setFrstRegisterId(String frstRegisterId) {
this.frstRegisterId = frstRegisterId;
}
public String getLastUpdtPnttm() {
return lastUpdtPnttm;
}
public void setLastUpdtPnttm(String lastUpdtPnttm) {
this.lastUpdtPnttm = lastUpdtPnttm;
}
public String getLastUpdusrId() {
return lastUpdusrId;
}
public void setLastUpdusrId(String lastUpdusrId) {
this.lastUpdusrId = lastUpdusrId;
}
public String getTrgtNm() {
return trgtNm;
}
public void setTrgtNm(String trgtNm) {
this.trgtNm = trgtNm;
}
public String getClphone() {
return clphone;
}
public void setClphone(String clphone) {
this.clphone = clphone;
}
public String getdBirth() {
return dBirth;
}
public void setdBirth(String dBirth) {
this.dBirth = dBirth;
}
public String getAddr() {
return addr;
}
public void setAddr(String addr) {
this.addr = addr;
}
public String getAddrDetail() {
return addrDetail;
}
public void setAddrDetail(String addrDetail) {
this.addrDetail = addrDetail;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getPost() {
return post;
}
public void setPost(String post) {
this.post = post;
}
public String getReqPnttm() {
return reqPnttm;
}
public void setReqPnttm(String reqPnttm) {
this.reqPnttm = reqPnttm;
}
public String getVntYear() {
return vntYear;
}
public void setVntYear(String vntYear) {
this.vntYear = vntYear;
}
public String getVntNmbr() {
return vntNmbr;
}
public void setVntNmbr(String vntNmbr) {
this.vntNmbr = vntNmbr;
}
public String getCmptntAthrt() {
return cmptntAthrt;
}
public void setCmptntAthrt(String cmptntAthrt) {
this.cmptntAthrt = cmptntAthrt;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public String getReqNmbr() {
return reqNmbr;
}
public void setReqNmbr(String reqNmbr) {
this.reqNmbr = reqNmbr;
}
public String getReqNmbrTemp() {
return reqNmbrTemp;
}
public void setReqNmbrTemp(String reqNmbrTemp) {
this.reqNmbrTemp = reqNmbrTemp;
}
public String getPrsctrNm() {
return prsctrNm;
}
public void setPrsctrNm(String prsctrNm) {
this.prsctrNm = prsctrNm;
}
public String getReqStateCd() {
return reqStateCd;
}
public void setReqStateCd(String reqStateCd) {
this.reqStateCd = reqStateCd;
}
public String getPrcsAplctPrdOrdCmplt() {
return prcsAplctPrdOrdCmplt;
}
public void setPrcsAplctPrdOrdCmplt(String prcsAplctPrdOrdCmplt) {
this.prcsAplctPrdOrdCmplt = prcsAplctPrdOrdCmplt;
}
public String getAtchFileId() {
return atchFileId;
}
public void setAtchFileId(String atchFileId) {
this.atchFileId = atchFileId;
}
public List<String> getSearchSelStatusList() {
return searchSelStatusList;
}
public void setSearchSelStatusList(List<String> searchSelStatusList) {
this.searchSelStatusList = searchSelStatusList;
}
public void setSearchSelStatusToList(String searchSelStatus) {
this.searchSelStatusList = Arrays.asList(searchSelStatus.split(","));
}
public String getDBirth() {
return DBirth;
}
public void setDBirth(String dBirth) {
DBirth = dBirth;
}
public List<String> getSspnIdtmtTrgtOrdList() {
return sspnIdtmtTrgtOrdList;
}
public void setSspnIdtmtTrgtOrdList(List<String> sspnIdtmtTrgtOrdList) {
this.sspnIdtmtTrgtOrdList = sspnIdtmtTrgtOrdList;
}
public String getEduAplctOrd() {
return eduAplctOrd;
}
public void setEduAplctOrd(String eduAplctOrd) {
this.eduAplctOrd = eduAplctOrd;
}
public String getResultCd() {
return resultCd;
}
public void setResultCd(String resultCd) {
this.resultCd = resultCd;
}
public String getRegNmbr() {
return regNmbr;
}
public void setRegNmbr(String regNmbr) {
this.regNmbr = regNmbr;
}
public String getRmrks() {
return rmrks;
}
public void setRmrks(String rmrks) {
this.rmrks = rmrks;
}
public String getMergeStatus() {
return mergeStatus;
}
public void setMergeStatus(String mergeStatus) {
this.mergeStatus = mergeStatus;
}
public String getChkYn() {
return chkYn;
}
public void setChkYn(String chkYn) {
this.chkYn = chkYn;
}
@Override
public String toString() {
return "\n CndtnTrgtMngVO => \n"
+ " cmdTrgtInfoOrd=[" + cmdTrgtInfoOrd + "] // pk\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"
+ ", mergeStatus=[" + mergeStatus + "] // 병합 상태(Excel)\n"
+ ", rmrks=[" + rmrks + "] // 비고\n"
+ ", chkYn=[" + chkYn + "] // 인증여부\n"
;
}
public String getCmptntAthrtNm() {
return cmptntAthrtNm;
}
public void setCmptntAthrtNm(String cmptntAthrtNm) {
this.cmptntAthrtNm = cmptntAthrtNm;
}
public String getCnclCn() {
return cnclCn;
}
public void setCnclCn(String cnclCn) {
this.cnclCn = cnclCn;
}
public String getEduStateCdNm() {
return eduStateCdNm;
}
public void setEduStateCdNm(String eduStateCdNm) {
this.eduStateCdNm = eduStateCdNm;
}
public String getReqStateCdNm() {
return reqStateCdNm;
}
public void setReqStateCdNm(String reqStateCdNm) {
this.reqStateCdNm = reqStateCdNm;
}
public String getSexNm() {
return sexNm;
}
public void setSexNm(String sexNm) {
this.sexNm = sexNm;
}
}

View File

@ -0,0 +1,205 @@
package kcc.ve.oprtn.cmdTrgt.trgtMng.service.impl;
import java.util.List;
import org.springframework.stereotype.Repository;
import egovframework.rte.psl.dataaccess.EgovAbstractDAO;
import kcc.ve.adv.tngr.stngInfo.service.VEAStngVO;
import kcc.ve.oprtn.cmdTrgt.trgtMng.service.CmdTrgtMngVO;
@Repository("cmdTrgtInfoMngDAO")
public class CmdTrgtMngDAO extends EgovAbstractDAO {
/* *//**
* 등록 - C
* @param VELctrDetailVO
* @throws Exception
*//*
public void insert(VEPrcsDetailVO paramVO) throws Exception {
insert("VEPrcsAplctPrdDAO.insert", paramVO);
}
*//**
* 상세보기 - R
* @param CndtnTrgtInfoMngVO
* @return
* @throws Exception
*//*
public VEPrcsDetailVO selectDetail(VEPrcsDetailVO paramVO) throws Exception {
return (VEPrcsDetailVO) select("VEPrcsAplctPrdDAO.selectDetail", paramVO);
}
*//**
* 수정 - U
* @param CndtnTrgtInfoMngVO
* @return
* @throws Exception
*//*
public int update(VEPrcsDetailVO paramVO) throws Exception {
return update("VEPrcsAplctPrdDAO.update", paramVO);
}
*//**
* 삭제 - D
* @param addrAgencyVO
* @return
* @throws Exception
*//*
public int delete(VEPrcsDetailVO paramVO) throws Exception {
return delete("VEPrcsAplctPrdDAO.delete", paramVO);
}
//L
public List<VEPrcsDetailVO> selectList(VEPrcsDetailVO paramVO) throws Exception {
List<VEPrcsDetailVO> tlist = (List<VEPrcsDetailVO>) list("VEPrcsAplctPrdDAO.selectList", paramVO);
return tlist;
}
public List<VEPrcsDetailVO> selectList4Fndth(VEPrcsDetailVO paramVO) throws Exception {
List<VEPrcsDetailVO> tlist = (List<VEPrcsDetailVO>) list("VEPrcsAplctPrdDAO.selectList4Fndth", paramVO);
return tlist;
}
*//**
* L - Page
* @param addrVO
* @return
* @throws Exception
*//*
public List<VEPrcsDetailVO> selectPagingList(VEPrcsDetailVO paramVO) throws Exception {
List<VEPrcsDetailVO> tlist = (List<VEPrcsDetailVO>) list("VEPrcsAplctPrdDAO.selectPagingList", paramVO);
return tlist;
}
public List<VEPrcsDetailVO> selectPagingList4Fndth(VEPrcsDetailVO paramVO) throws Exception {
List<VEPrcsDetailVO> tlist = (List<VEPrcsDetailVO>) list("VEPrcsAplctPrdDAO.selectPagingList4Fndth", paramVO);
return tlist;
}
public VEPrcsDetailVO selectDetailNewOne(VEPrcsDetailVO paramVO) throws Exception {
return (VEPrcsDetailVO) select("VEPrcsAplctPrdDAO.selectDetailNewOne", paramVO);
}
public VEPrcsDetailVO selectDetailNewOne4Fndth(VEPrcsDetailVO paramVO) throws Exception {
return (VEPrcsDetailVO) select("VEPrcsAplctPrdDAO.selectDetailNewOne4Fndth", paramVO);
}
public List<VEInstrDetailVO> selectinstrAsgnmPopupPagingList(VEPrcsDetailVO vEPrcsDetailVO) {
return (List<VEInstrDetailVO>) list("VEPrcsAplctPrdDAO.selectinstrAsgnmPopupPagingList", vEPrcsDetailVO);
}*/
public List<CmdTrgtMngVO> selectPagingList(CmdTrgtMngVO cndtnTrgtInfoMngVO) {
return (List<CmdTrgtMngVO>) list("cmdTrgtInfoMngDAO.selectPagingList", cndtnTrgtInfoMngVO);
}
public void insert(CmdTrgtMngVO cndtnTrgtInfoMngVO) {
insert("cmdTrgtInfoMngDAO.insert", cndtnTrgtInfoMngVO);
}
public int insert4Merge(CmdTrgtMngVO cndtnTrgtInfoMngVO) {
return update("cmdTrgtInfoMngDAO.insert4Merge", cndtnTrgtInfoMngVO);
}
public CmdTrgtMngVO selectDetail(CmdTrgtMngVO cndtnTrgtInfoVO) {
return (CmdTrgtMngVO) select("cmdTrgtInfoMngDAO.selectDetail", cndtnTrgtInfoVO);
}
public CmdTrgtMngVO selectDetail4Merge(CmdTrgtMngVO cndtnTrgtInfoVO) {
return (CmdTrgtMngVO) select("cmdTrgtInfoMngDAO.selectDetail4Merge", cndtnTrgtInfoVO);
}
public CmdTrgtMngVO selectCheck4Merge(CmdTrgtMngVO cndtnTrgtInfoVO) {
return (CmdTrgtMngVO) select("cmdTrgtInfoMngDAO.selectCheck4Merge", cndtnTrgtInfoVO);
}
public CmdTrgtMngVO selectDetailReqNmbr(CmdTrgtMngVO cndtnTrgtInfoVO) {
return (CmdTrgtMngVO) select("cmdTrgtInfoMngDAO.selectDetailReqNmbr", cndtnTrgtInfoVO);
}
public void update(CmdTrgtMngVO cndtnTrgtInfoMngVO) {
update("cmdTrgtInfoMngDAO.update", cndtnTrgtInfoMngVO);
}
public void update4Merge(CmdTrgtMngVO cndtnTrgtInfoMngVO) {
update("cmdTrgtInfoMngDAO.update4Merge", cndtnTrgtInfoMngVO);
}
public String findByTrgtNmAndDBirthAndEduStateCd(CmdTrgtMngVO cndtnTrgtInfoMngVO) {
return (String) select("cmdTrgtInfoMngDAO.findByTrgtNmAndDBirthAndEduStateCd", cndtnTrgtInfoMngVO);
}
public List<CmdTrgtMngVO> checkSspnIdtmtStep1(CmdTrgtMngVO cndtnTrgtInfoMngVO) {
return (List<CmdTrgtMngVO>) list("cmdTrgtInfoMngDAO.checkSspnIdtmtStep1", cndtnTrgtInfoMngVO);
}
public List<CmdTrgtMngVO> checkSspnIdtmtStep2(CmdTrgtMngVO cndtnTrgtInfoMngVO) {
return (List<CmdTrgtMngVO>) list("cmdTrgtInfoMngDAO.checkSspnIdtmtStep2", cndtnTrgtInfoMngVO);
}
public CmdTrgtMngVO checkSspnIdtmtNewStep0(CmdTrgtMngVO cndtnTrgtInfoMngVO) {
return (CmdTrgtMngVO) select("cmdTrgtInfoMngDAO.checkSspnIdtmtNewStep0", cndtnTrgtInfoMngVO);
}
public void updateUserId(CmdTrgtMngVO CmdTrgtMngVO) {
update("cmdTrgtInfoMngDAO.updateUserId", CmdTrgtMngVO);
}
public void updateUserIdCancel(CmdTrgtMngVO CmdTrgtMngVO) {
update("cmdTrgtInfoMngDAO.updateUserIdCancel", CmdTrgtMngVO);
}
public String findByTrgtNmAndDBirthAndUserIdAndEduStateCd(CmdTrgtMngVO cndtnTrgtInfoMngVO) {
return (String) select("cmdTrgtInfoMngDAO.findByTrgtNmAndDBirthAndUserIdAndEduStateCd", cndtnTrgtInfoMngVO);
}
public int findCntreqNmber(String reqNmbrTemp) {
return (int) select("cmdTrgtInfoMngDAO.findCntreqNmber", reqNmbrTemp);
}
public void updateTrgtDuplAjax(CmdTrgtMngVO CmdTrgtMngVO) {
update("cmdTrgtInfoMngDAO.updateTrgtDuplAjax", CmdTrgtMngVO);
}
public void updateDel(CmdTrgtMngVO cndtnTrgtInfoMngVO) {
update("cmdTrgtInfoMngDAO.updateDel", cndtnTrgtInfoMngVO);
}
public List<CmdTrgtMngVO> selectDuplChk(CmdTrgtMngVO cndtnTrgtInfoMngVO) {
return (List<CmdTrgtMngVO>) list("cmdTrgtInfoMngDAO.selectDuplChk", cndtnTrgtInfoMngVO);
}
public void bulkInsert(List<CmdTrgtMngVO> trgtExcelVOList) {
insert("cmdTrgtInfoMngDAO.bulkInsert", trgtExcelVOList);
}
public int memoUpdate(CmdTrgtMngVO cndtnTrgtInfoMngVO) throws Exception {
return update("cmdTrgtInfoMngDAO.memoUpdate", cndtnTrgtInfoMngVO);
}
public void updateEduStateCdAndReqStateCdAjax(CmdTrgtMngVO cndtnTrgtInfoMngVO) {
update("cmdTrgtInfoMngDAO.updateEduStateCdAndReqStateCdAjax", cndtnTrgtInfoMngVO);
}
public void deleteEduReqAjax(CmdTrgtMngVO cndtnTrgtInfoMngVO) {
update("cmdTrgtInfoMngDAO.deleteEduReqAjax", cndtnTrgtInfoMngVO);
}
public VEAStngVO selectSMSSndString(VEAStngVO vEAStngVO) {
return (VEAStngVO) select("cmdTrgtInfoMngDAO.selectSMSSndString", vEAStngVO);
}
public void updateSMSSndString(VEAStngVO vEAStngVO) {
update("cmdTrgtInfoMngDAO.updateSMSSndString", vEAStngVO);
}
public CmdTrgtMngVO findByEduAplctOrdAndMberId(CmdTrgtMngVO cndtnTrgtInfoMngVO) {
return (CmdTrgtMngVO) select("cmdTrgtInfoMngDAO.findByEduAplctOrdAndMberId", cndtnTrgtInfoMngVO);
}
public List<CmdTrgtMngVO> selectListRelated(CmdTrgtMngVO cndtnTrgtInfoMngVO) {
return (List<CmdTrgtMngVO>) list("cmdTrgtInfoMngDAO.selectListRelated", cndtnTrgtInfoMngVO);
}
}

View File

@ -0,0 +1,154 @@
package kcc.ve.oprtn.cmdTrgt.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.adv.tngr.stngInfo.service.VEAStngVO;
import kcc.ve.oprtn.cmdTrgt.trgtMng.service.CmdTrgtMngService;
import kcc.ve.oprtn.cmdTrgt.trgtMng.service.CmdTrgtMngVO;
@Service("cmdTrgtInfoMngService")
public class CmdTrgtMngServiceImpl implements CmdTrgtMngService {
//과정신청기간순번
@Resource(name="prcsAplctPrdGnrService")
private EgovIdGnrService prcsAplctPrdGnrService;
//과정
//대상자
@Resource(name="cmdTrgtInfoMngDAO")
private CmdTrgtMngDAO cndtnTrgtInfoMngDAO;
@Override
public List<CmdTrgtMngVO> selectPagingList(CmdTrgtMngVO cndtnTrgtInfoMngVO) {
return cndtnTrgtInfoMngDAO.selectPagingList(cndtnTrgtInfoMngVO);
}
@Override
public void insert(CmdTrgtMngVO cndtnTrgtInfoMngVO) {
cndtnTrgtInfoMngDAO.insert(cndtnTrgtInfoMngVO);
}
@Override
public int insert4Merge(CmdTrgtMngVO cndtnTrgtInfoMngVO) {
//postgre에서는 tibero의 merge 구문이 없으므로 단계를 나눠서 처리한다.
//step1. 존재하는가?
CmdTrgtMngVO cndtnTrgtMngVO = cndtnTrgtInfoMngDAO.selectCheck4Merge(cndtnTrgtInfoMngVO);
if (cndtnTrgtMngVO == null) { //step2-2.없으면 insert
cndtnTrgtInfoMngDAO.insert(cndtnTrgtInfoMngVO);
}else { //step2-1.있으면 update
cndtnTrgtInfoMngDAO.update4Merge(cndtnTrgtInfoMngVO);
}
//return cndtnTrgtInfoMngDAO.insert4Merge(cndtnTrgtInfoMngVO);
return 1;
}
@Override
public CmdTrgtMngVO selectDetail(CmdTrgtMngVO cndtnTrgtInfoVO) {
return cndtnTrgtInfoMngDAO.selectDetail(cndtnTrgtInfoVO);
}
@Override
public CmdTrgtMngVO selectDetail4Merge(CmdTrgtMngVO cndtnTrgtInfoVO) {
return cndtnTrgtInfoMngDAO.selectDetail4Merge(cndtnTrgtInfoVO);
}
@Override
public CmdTrgtMngVO selectCheck4Merge(CmdTrgtMngVO cndtnTrgtInfoVO) {
return cndtnTrgtInfoMngDAO.selectCheck4Merge(cndtnTrgtInfoVO);
}
@Override
public CmdTrgtMngVO selectDetailReqNmbr(CmdTrgtMngVO cndtnTrgtInfoVO) {
return cndtnTrgtInfoMngDAO.selectDetailReqNmbr(cndtnTrgtInfoVO);
}
@Override
public void update(CmdTrgtMngVO cndtnTrgtInfoMngVO) {
cndtnTrgtInfoMngDAO.update(cndtnTrgtInfoMngVO);
}
@Override
public void updateUserId(CmdTrgtMngVO cndtnTrgtMngVO) {
cndtnTrgtInfoMngDAO.updateUserId(cndtnTrgtMngVO);
}
@Override
public void updateUserIdCancel(CmdTrgtMngVO CmdTrgtMngVO) {
cndtnTrgtInfoMngDAO.updateUserIdCancel(CmdTrgtMngVO);
}
@Override
public int findCntreqNmber(String reqNmbrTemp) {
return cndtnTrgtInfoMngDAO.findCntreqNmber(reqNmbrTemp);
}
@Override
public void updateTrgtDuplAjax(CmdTrgtMngVO cndtnTrgtInfoMngVO) {
cndtnTrgtInfoMngDAO.updateTrgtDuplAjax(cndtnTrgtInfoMngVO);
}
@Override
public void updateDel(CmdTrgtMngVO cndtnTrgtInfoMngVO) {
cndtnTrgtInfoMngDAO.updateDel(cndtnTrgtInfoMngVO);
}
@Override
public List<CmdTrgtMngVO> selectDuplChk(CmdTrgtMngVO cndtnTrgtInfoMngVO) {
return cndtnTrgtInfoMngDAO.selectDuplChk(cndtnTrgtInfoMngVO);
}
@Override
public void bulkInsert(List<CmdTrgtMngVO> trgtExcelVOList) {
cndtnTrgtInfoMngDAO.bulkInsert(trgtExcelVOList);
}
@Override
public void updateEduStateCdAndReqStateCdAjax(CmdTrgtMngVO cndtnTrgtMngVO) {
cndtnTrgtInfoMngDAO.updateEduStateCdAndReqStateCdAjax(cndtnTrgtMngVO);
}
@Override
public void deleteEduReqAjax(CmdTrgtMngVO cndtnTrgtMngVO) {
cndtnTrgtInfoMngDAO.deleteEduReqAjax(cndtnTrgtMngVO);
}
//비공개메모 update
@Override
public int memoUpdate(CmdTrgtMngVO cndtnTrgtInfoMngVO) throws Exception {
return cndtnTrgtInfoMngDAO.memoUpdate(cndtnTrgtInfoMngVO);
}
@Override
public VEAStngVO selectSMSSndString(VEAStngVO vEAStngVO) {
return cndtnTrgtInfoMngDAO.selectSMSSndString(vEAStngVO);
}
@Override
public void updateSMSSndString(VEAStngVO vEAStngVO) {
cndtnTrgtInfoMngDAO.updateSMSSndString(vEAStngVO);
}
@Override
public CmdTrgtMngVO findByEduAplctOrdAndMberId(CmdTrgtMngVO cndtnTrgtInfoMngVO) {
return cndtnTrgtInfoMngDAO.findByEduAplctOrdAndMberId(cndtnTrgtInfoMngVO);
}
@Override
public List<CmdTrgtMngVO> selectListRelated(CmdTrgtMngVO cndtnTrgtInfoMngVO) {
return cndtnTrgtInfoMngDAO.selectListRelated(cndtnTrgtInfoMngVO);
}
}

File diff suppressed because it is too large Load Diff

View File

@ -20,6 +20,7 @@ import org.apache.poi.ss.usermodel.WorkbookFactory;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import kcc.ve.oprtn.cmdTrgt.trgtMng.service.CmdTrgtMngVO;
import kcc.ve.oprtn.cndtnSspnIdtmt.trgtMng.service.CndtnTrgtMngVO;
public class TrgtExcelReader {
@ -94,6 +95,68 @@ public class TrgtExcelReader {
}
}
public List<CmdTrgtMngVO> readExcelFileFromCmdTrgt() throws EncryptedDocumentException, InvalidFormatException {
try (FileInputStream fis = new FileInputStream(filePathAndNm)) {
Workbook workbook = WorkbookFactory.create(fis);
Sheet sheet = workbook.getSheetAt(0);
List<CmdTrgtMngVO> cndtnTrgtInfoMngVOList = new ArrayList<>();
// 번째 (헤더) 건너뛰고 시작
for (int i = 3; i <= sheet.getLastRowNum(); i++) {
Row row = sheet.getRow(i);
if (row != null) {
try {
CmdTrgtMngVO cndtnTrgtMngVO = new CmdTrgtMngVO();
// cndtnTrgtMngVO.set getCellValue(row.getCell(0));
cndtnTrgtMngVO.setReqPnttm(getCellValue(row.getCell(1))); // 의뢰번호
System.out.println("row.getCell(2)");
System.out.println(row.getCell(2));
String vntInfo[] = getCellValue(row.getCell(2)).split("형제");
System.out.println("row.getCell(2)=="+i);
System.out.println(vntInfo.length);
System.out.println(vntInfo[0]);
System.out.println(vntInfo[1]);
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.setMergeStatus(getCellValue(row.getCell(14))); // 병합상태text(excel전용)
cndtnTrgtMngVO.setRmrks( getCellValue(row.getCell(15))); // 비고
cndtnTrgtInfoMngVOList.add(cndtnTrgtMngVO);
}catch(Exception ex) {
ex.printStackTrace();
}
}
}
return cndtnTrgtInfoMngVOList;
} catch (IOException e) {
e.printStackTrace();
return Collections.emptyList();
}
}
private String getCellValue(Cell cell) {
if (cell == null) {
return "";

View File

@ -24,6 +24,9 @@
<!-- 조건부기소유예관리 대상자 관리 -->
<sqlMap resource="egovframework/sqlmap/ve/cndtn/cndtnTrgtInfoMng_SQL_Postgresql.xml"/>
<!-- 시정명령 대상자 관리 -->
<sqlMap resource="egovframework/sqlmap/ve/cmd/cmdTrgtInfoMng_SQL_Postgresql.xml"/>
<!-- 교육신청복합쿼리 -->
<sqlMap resource="egovframework/sqlmap/ve/prcs/VEAPrcsAplctPrdInstrAsgnm_SQL_Postgresql.xml"/>
<sqlMap resource="egovframework/sqlmap/ve/edu/VEEdu_MIX_SQL_Postgresql.xml"/>

View File

@ -110,7 +110,10 @@
, ROLE_DC=#roleDc#
, ROLE_TY=#roleTyp#
, ROLE_SORT=#roleSort#
, ROLE_CREAT_DE=NOW()
/*
, ROLE_CREAT_DE=TO_CHAR(SYSDATE, 'YYYY-MM-DD HH24')
*/
/* DATE_FORMAT(NOW(), '%Y-%m-%d %T') */
WHERE ROLE_CODE=#roleCode#
]]>

View File

@ -0,0 +1,970 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sqlMap PUBLIC "-//iBATIS.com//DTD SQL Map 2.0//EN" "http://ibatis.apache.org/dtd/sql-map-2.dtd">
<!-- 찾교 과정 테이블 -->
<sqlMap namespace="CmdTrgtInfoMng">
<typeAlias alias="egovMap" type="egovframework.rte.psl.dataaccess.util.EgovMap"/>
<typeAlias alias="CmdPrcsInfoMngVO" type="kcc.ve.oprtn.cmdTrgt.trgtMng.service.CmdTrgtMngVO"/>
<typeAlias alias="VEAStngVO" type="kcc.ve.adv.tngr.stngInfo.service.VEAStngVO"/>
<!-- 공통 테이블 명 -->
<sql id="CmdTrgtInfoMngDAO.table_name">
vea_cmd_trgt_info
</sql>
<!-- 저장용 공통 컬럼 명 -->
<sql id="CmdTrgtInfoMngDAO.column_name">
cmd_trgt_info_ord
, user_id
, edu_state_cd
, frst_regist_pnttm
, frst_register_id
, last_updt_pnttm
, last_updusr_id
, trgt_nm
, clphone
, d_birth
, addr
, addr_detail
, post
, email
, req_pnttm
, vnt_year
, vnt_nmbr
, cmptnt_athrt
, sex
, req_nmbr
, prsctr_nm
, req_state_cd
, atch_file_id
, prcs_aplct_prd_ord_cmplt
, edu_aplct_ord
, rmrks
</sql>
<!-- 조회용 공통 컬럼 명 -->
<sql id="CmdTrgtInfoMngDAO.select_column_name">
a.cmd_trgt_info_ord AS cmdTrgtInfoOrd
, a.user_id AS userId
, a.edu_state_cd AS eduStateCd
, a.frst_regist_pnttm AS frstRegistPnttm
, a.frst_register_id AS frstRegisterId
, a.last_updt_pnttm AS lastUpdtPnttm
, a.last_updusr_id AS lastUpdusrId
, a.trgt_nm AS trgtNm
, a.clphone AS clphone
, a.d_birth AS dBirth
, a.addr AS addr
, a.addr_detail AS addrDetail
, a.post AS post
, a.email AS email
, a.req_pnttm AS reqPnttm
, a.vnt_year AS vntYear
, a.vnt_nmbr AS vntNmbr
, a.cmptnt_athrt AS cmptntAthrt
, a.sex AS sex
, a.req_nmbr AS reqNmbr
, a.prsctr_nm AS prsctrNm
, a.req_state_cd AS reqStateCd
, a.atch_file_id AS atchFileId
, a.prcs_aplct_prd_ord_cmplt AS prcsAplctPrdOrdCmplt
, a.rmrks AS rmrks
, a.edu_aplct_ord AS eduAplctOrd
</sql>
<!-- 등록 C -->
<insert id="cmdTrgtInfoMngDAO.insert" parameterClass="CmdPrcsInfoMngVO">
/* cmdTrgtInfoMngDAO.insert */
INSERT INTO <include refid="CmdTrgtInfoMngDAO.table_name"/> (
<include refid="CmdTrgtInfoMngDAO.column_name"/>
)VALUES(
#cmdTrgtInfoOrd#
, #userId#
, #eduStateCd#
, NOW()
, #frstRegisterId#
, #lastUpdtPnttm#
, #lastUpdusrId#
, #trgtNm#
, #clphone#
, #dBirth#
, #addr#
, #addrDetail#
, #post#
, #email#
, NOW()
, #vntYear#
, #vntNmbr#
, #cmptntAthrt#
, #sex#
, #reqNmbr#
, #prsctrNm#
, #reqStateCd#
, #atchFileId#
, #prcsAplctPrdOrdCmplt#
, ''
, #rmrks#
)
</insert>
<!-- 등록 C -->
<update id="cmdTrgtInfoMngDAO.insert4Merge" parameterClass="CmdPrcsInfoMngVO">
/* cmdTrgtInfoMngDAO.insert4Merge */
MERGE INTO <include refid="CmdTrgtInfoMngDAO.table_name"/> T1 USING DUAL
ON (
T1.req_nmbr = #reqNmbr#
AND T1.vnt_nmbr = #vntNmbr#
AND T1.vnt_year = #vntYear#
AND T1.trgt_nm = #trgtNm#
AND T1.d_birth = #dBirth#
AND T1.sex = #sex#
)
WHEN MATCHED THEN
UPDATE SET
<!-- edu_aplct_ord = #eduAplctOrd#,
edu_chasi_ord = #eduChasiOrd#, -->
edu_state_cd = #eduStateCd#
, last_updt_pnttm = NOW()
, last_updusr_id = #frstRegisterId#
, clphone = #clphone#
, addr = #addr#
, addr_detail = #addrDetail#
, post = #post#
, email = #email#
, req_pnttm = #reqPnttm#
, cmptnt_athrt = #cmptntAthrt#
, prsctr_nm = #prsctrNm#
, req_state_cd = #reqStateCd#
, atch_file_id = #atchFileId#
, prcs_aplct_prd_ord_cmplt = #prcsAplctPrdOrdCmplt#
, rmrks = #rmrks#
, edu_aplct_ord = #eduAplctOrd#
WHEN NOT MATCHED THEN
INSERT (
<include refid="CmdTrgtInfoMngDAO.column_name"/>
)VALUES(
#cmdTrgtInfoOrd#
, #userId#
, #eduStateCd#
, NOW()
, #frstRegisterId#
, #lastUpdtPnttm#
, #lastUpdusrId#
, #trgtNm#
, #clphone#
, #dBirth#
, #addr#
, #addrDetail#
, #post#
, #email#
, #reqPnttm#
, #vntYear#
, #vntNmbr#
, #cmptntAthrt#
, #sex#
, #reqNmbr#
, #prsctrNm#
, #reqStateCd#
, #atchFileId#
, #prcsAplctPrdOrdCmplt#
, #eduAplctOrd#
, #rmrks#
)
</update>
<!-- bulkInsert -->
<insert id="cmdTrgtInfoMngDAO.bulkInsert" parameterClass="CmdPrcsInfoMngVO">
INSERT INTO <include refid="CmdTrgtInfoMngDAO.table_name"/> (
<include refid="CmdTrgtInfoMngDAO.column_name"/>
)VALUES(
<iterate conjunction=",">
#[]cmdTrgtInfoOrd#
, #[]userId#
, ''
, NOW()
, #[]frstRegisterId#
, ''
, ''
, #[]trgtNm#
, #[]clphone#
, #[]dBirth#
, #[]addr#
, #[]addrDetail#
, #[]post#
, #[]email#
, #[]reqPnttm#
, #[]vntYear#
, #[]vntNmbr#
, #[]cmptntAthrt#
, #[]sex#
, #[]reqNmbr#
, #[]prsctrNm#
, #[]reqStateCd#
, #[]atchFileId#
, ''
, ''
, #[]rmrks#
</iterate>
)
</insert>
<select id="cmdTrgtInfoMngDAO.selectDetail" parameterClass="CmdPrcsInfoMngVO" resultClass="CmdPrcsInfoMngVO">
/* cmdTrgtInfoMngDAO.selectDetail */
SELECT
<include refid="CmdTrgtInfoMngDAO.select_column_name"/>
FROM
<include refid="CmdTrgtInfoMngDAO.table_name"/> a
WHERE
1=1
AND cmd_trgt_info_ord = #cmdTrgtInfoOrd#
</select>
<!-- 병합 대상자 찾기 -->
<select id="cmdTrgtInfoMngDAO.selectDetail4Merge" parameterClass="CmdPrcsInfoMngVO" resultClass="CmdPrcsInfoMngVO">
/* cmdTrgtInfoMngDAO.selectDetail4Merge */
SELECT
<include refid="CmdTrgtInfoMngDAO.select_column_name"/>
FROM
<include refid="CmdTrgtInfoMngDAO.table_name"/> a
WHERE
1=1
AND trgt_nm=#trgtNm#
AND sex=#sex#
AND d_birth=#dBirth#
AND prcs_aplct_prd_ord_cmplt IS null
ORDER BY req_pnttm
LIMIT 1
</select>
<!-- excel 데이터를 넣거나, 업데이트 진행을 위한 데이터 중복을 체크한다. -->
<select id="cmdTrgtInfoMngDAO.selectCheck4Merge" parameterClass="CmdPrcsInfoMngVO" resultClass="CmdPrcsInfoMngVO">
/* cmdTrgtInfoMngDAO.selectDetail4Merge */
SELECT
<include refid="CmdTrgtInfoMngDAO.select_column_name"/>
FROM
<include refid="CmdTrgtInfoMngDAO.table_name"/> a
WHERE
1=1
AND req_nmbr = #reqNmbr#
AND vnt_nmbr = #vntNmbr#
AND vnt_year = #vntYear#
AND trgt_nm=#trgtNm#
AND sex=#sex#
AND d_birth=#dBirth#
ORDER BY req_pnttm
LIMIT 1
</select>
<!-- 해당 지검의 관할청 코드값 가져오기 -->
<select id="cmdTrgtInfoMngDAO.selectDetailReqNmbr" parameterClass="CmdPrcsInfoMngVO" resultClass="CmdPrcsInfoMngVO">
/* cmdTrgtInfoMngDAO.selectDetailReqNmbr */
SELECT
decode(instr(a.code_nm,'지검'),0,b.code, a.code) AS cmptntAthrt
/*
,instr(a.code_nm,'지검')
,substring(a.code_nm,1,instr(a.code_nm,'-')-1)
,a.code_nm
,a.code
,b.*
*/
FROM
LETTCCMMNDETAILCODE a
LEFT OUTER JOIN LETTCCMMNDETAILCODE b
on(b.code_nm LIKE substring(a.code_nm,1,instr(a.code_nm,'-')-1)||'%')
WHERE
a.USE_AT = 'Y'
AND a.CODE_ID = 'VEA008'
AND a.code = #cmptntAthrt#
AND (
(
instr(a.code_nm,'지검')>0
AND a.code=b.code
)
OR
(
0>=instr(a.code_nm,'지검')
)
)
AND instr(b.code_nm,'지검')>0
LIMIT 1
</select>
<!-- 강사 수정 C -->
<update id="cmdTrgtInfoMngDAO.update" parameterClass="CmdPrcsInfoMngVO">
/* cmdTrgtInfoMngDAO.update */
UPDATE
<include refid="CmdTrgtInfoMngDAO.table_name"/>
SET
edu_state_cd = #eduStateCd#
, last_updt_pnttm = NOW()
, last_updusr_id = #lastUpdusrId#
, trgt_nm = #trgtNm#
, clphone = #clphone#
, d_birth = #dBirth#
, addr = #addr#
, addr_detail = #addrDetail#
, post = #post#
, email = #email#
, req_pnttm = NOW()
, vnt_year = #vntYear#
, vnt_nmbr = #vntNmbr#
, cmptnt_athrt = #cmptntAthrt#
, sex = #sex#
, req_nmbr = #reqNmbr#
, prsctr_nm = #prsctrNm#
, req_state_cd = #reqStateCd#
, atch_file_id = #atchFileId#
WHERE
cmd_trgt_info_ord = #cmdTrgtInfoOrd#
</update>
<!-- 강사 수정 C -->
<update id="cmdTrgtInfoMngDAO.update4Merge" parameterClass="CmdPrcsInfoMngVO">
/* cmdTrgtInfoMngDAO.update4Merge */
UPDATE
<include refid="CmdTrgtInfoMngDAO.table_name"/>
SET
edu_state_cd = #eduStateCd#
, last_updt_pnttm = NOW()
, last_updusr_id = #frstRegisterId#
, clphone = #clphone#
, addr = #addr#
, addr_detail = #addrDetail#
, post = #post#
, email = #email#
, req_pnttm = NOW()
, cmptnt_athrt = #cmptntAthrt#
, prsctr_nm = #prsctrNm#
, req_state_cd = #reqStateCd#
, atch_file_id = #atchFileId#
, prcs_aplct_prd_ord_cmplt = #prcsAplctPrdOrdCmplt#
, rmrks = #rmrks#
, edu_aplct_ord = #eduAplctOrd#
WHERE
req_nmbr = #reqNmbr#
AND vnt_nmbr = #vntNmbr#
AND vnt_year = #vntYear#
AND trgt_nm = #trgtNm#
AND d_birth = #dBirth#
AND sex = #sex#
</update>
<update id="cmdTrgtInfoMngDAO.updateTrgtDuplAjax" parameterClass="CmdPrcsInfoMngVO">
/* cmdTrgtInfoMngDAO.updateTrgtDuplAjax */
UPDATE
<include refid="CmdTrgtInfoMngDAO.table_name"/>
SET
prcs_aplct_prd_ord_cmplt = #cmdTrgtInfoOrd#
<isNotEmpty property="eduStateCd">
, edu_state_cd = #eduStateCd#
</isNotEmpty>
<isNotEmpty property="vntYear">
, vnt_year = #vntYear#
</isNotEmpty>
<isNotEmpty property="atchFileId">
, atch_file_id = #atchFileId#
</isNotEmpty>
<isNotEmpty property="eduAplctOrd">
, edu_aplct_ord = #eduAplctOrd#
</isNotEmpty>
WHERE cmd_trgt_info_ord = #prcsAplctPrdOrdCmplt#
<!-- WHERE cmd_trgt_info_ord IN -->
<!-- <iterate property="sspnIdtmtTrgtOrdList" open="(" close=")" conjunction=","> -->
<!-- #sspnIdtmtTrgtOrdList[]# -->
<!-- </iterate> -->
</update>
<update id="cmdTrgtInfoMngDAO.updateDel" parameterClass="CmdPrcsInfoMngVO">
/* cmdTrgtInfoMngDAO.updateDel */
UPDATE
<include refid="CmdTrgtInfoMngDAO.table_name"/>
SET
prcs_aplct_prd_ord_cmplt = null
<isNotEmpty property="eduStateCd">
, edu_state_cd = #eduStateCd#
</isNotEmpty>
WHERE
cmd_trgt_info_ord = #cmdTrgtInfoOrd#
</update>
<select id="cmdTrgtInfoMngDAO.findCntreqNmber" resultClass="int" parameterClass="String">
SELECT
/*
NVL(max(abs(replace(req_nmbr,reqNmbrTemp,''))),0)
*/
/* NVL(max(abs(regexp_substr(req_nmbr, '[^-]+',1,5))),0) */
coalesce(max(abs(cast(regexp_substr(req_nmbr, '[^-]+', 1, 5) as int))), 0)
FROM
<include refid="CmdTrgtInfoMngDAO.table_name"/>
WHERE
req_nmbr LIKE #reqNmbrTemp#||'%' ;
</select>
<select id="cmdTrgtInfoMngDAO.findCntreqNmber_bak" resultClass="int" parameterClass="String">
SELECT
count(*)
FROM
<include refid="CmdTrgtInfoMngDAO.table_name"/>
WHERE
req_nmbr LIKE #reqNmbrTemp# ;
</select>
<!-- 대상자 조회 후 대상자에 로그인 ID update -->
<update id="cmdTrgtInfoMngDAO.updateUserId" parameterClass="CmdPrcsInfoMngVO">
/* cmdTrgtInfoMngDAO.updateSspnIdtmtTrgtOrd */
UPDATE
<include refid="CmdTrgtInfoMngDAO.table_name"/>
SET
user_id = #userId#
<isNotEmpty property="reqStateCd">
, req_state_cd = #reqStateCd#
</isNotEmpty>
<isNotEmpty property="eduAplctOrd">
, edu_aplct_ord = #eduAplctOrd#
</isNotEmpty>
, edu_state_cd = #eduStateCd#
, prcs_aplct_prd_ord_cmplt = #prcsAplctPrdOrdCmplt#
WHERE
cmd_trgt_info_ord = #cmdTrgtInfoOrd#
</update>
<!-- 대상자 조회 후 대상자에 로그인 ID update cancel-->
<update id="cmdTrgtInfoMngDAO.updateUserIdCancel" parameterClass="CmdPrcsInfoMngVO">
/* cmdTrgtInfoMngDAO.updateSspnIdtmtTrgtOrd */
UPDATE
<include refid="CmdTrgtInfoMngDAO.table_name"/>
SET
user_id = NULL
, edu_aplct_ord = NULL
, edu_state_cd = '10'
, prcs_aplct_prd_ord_cmplt = NULL
WHERE
edu_aplct_ord = #eduAplctOrd#
</update>
<!-- 기소유예 대상자 R -->
<select id="cmdTrgtInfoMngDAO.selectPagingList" parameterClass="CmdPrcsInfoMngVO" resultClass="CmdPrcsInfoMngVO">
/* cmdTrgtInfoMngDAO.selectPagingList
교육상태 - vea002 - 10-교육대기,20-이수, 25-요청, 30-교육배정, 40-미이수, 50-연기, 60-교육취소, 70-재교육
의뢰상태 - vea005 - 10-교육대기, 20-교육배정, 30-완료, 40-교육취소
*/
SELECT
COUNT(1) OVER() AS totCnt,
<include refid="CmdTrgtInfoMngDAO.select_column_name"/>
, CASE
WHEN a.prcs_aplct_prd_ord_cmplt IS NOT NULL THEN
(
SELECT
CODE_NM
FROM
LETTCCMMNDETAILCODE
WHERE
USE_AT = 'Y'
AND CODE_ID = 'VEA002'
AND CODE = (SELECT b.edu_state_cd
FROM <include refid="CmdTrgtInfoMngDAO.table_name"/> b
WHERE b.cmd_trgt_info_ord=a.prcs_aplct_prd_ord_cmplt
)
)
ELSE (
SELECT CODE_NM
FROM LETTCCMMNDETAILCODE
WHERE USE_AT = 'Y'
AND CODE_ID = 'VEA002'
AND CODE = a.edu_state_cd
)
END AS eduStateCdNm
/*
, (
SELECT CODE_NM
FROM LETTCCMMNDETAILCODE
WHERE USE_AT = 'Y'
AND CODE_ID = 'VEA002'
AND CODE = a.edu_state_cd
) AS eduStateCdNm
*/
, CASE
WHEN a.prcs_aplct_prd_ord_cmplt IS NOT NULL THEN '병합처리'
WHEN a.EDU_STATE_CD = '20' AND a.req_state_cd = '20' THEN '완료'
ELSE (
SELECT CODE_NM
FROM LETTCCMMNDETAILCODE
WHERE USE_AT = 'Y'
AND CODE_ID = 'VEA005'
AND CODE = a.req_state_cd
)
END AS reqStateCdNm
, (
SELECT CODE_NM
FROM LETTCCMMNDETAILCODE
WHERE USE_AT = 'Y'
AND CODE_ID = 'VEA008'
AND CODE = a.cmptnt_athrt
) AS cmptntAthrtNm
, (
SELECT CODE_NM
FROM LETTCCMMNDETAILCODE
WHERE USE_AT = 'Y'
AND CODE_ID = 'COM014'
AND CODE = a.sex
) AS sexNm
FROM
<include refid="CmdTrgtInfoMngDAO.table_name"/> a
WHERE
1=1
<isNotEmpty property="eduStateCd">
AND a.EDU_STATE_CD = #eduStateCd#
</isNotEmpty>
/* 관할청 담당자를 위한 조건 */
<isNotEmpty property="searchCondition">
AND a.CMPTNT_ATHRT = #searchCondition#
</isNotEmpty>
/* 수료자 중복 리스트를 위한 조건문 */
<isNotEmpty property="trgtNm">
AND a.TRGT_NM = #trgtNm#
</isNotEmpty>
<isNotEmpty property="dBirth">
AND a.D_BIRTH = #dBirth#
</isNotEmpty>
/* //수료자 중복 리스트를 위한 조건문 */
<isNotEmpty property="searchQuery">
$searchQuery$
</isNotEmpty>
/* 의뢰상태 검색*/
<isNotEmpty prepend="AND" property="searchEduStateCd">
a.EDU_STATE_CD = #searchEduStateCd#
/*AND a.prcs_aplct_prd_ord_cmplt is null*/
AND (
CASE
WHEN a.prcs_aplct_prd_ord_cmplt IS NOT NULL THEN (
SELECT
CODE
FROM
LETTCCMMNDETAILCODE
WHERE
USE_AT = 'Y'
AND CODE_ID = 'VEA002'
AND CODE = (
SELECT
b.edu_state_cd
FROM
<include refid="CmdTrgtInfoMngDAO.table_name"/> b
WHERE
b.cmd_trgt_info_ord = a.prcs_aplct_prd_ord_cmplt
)
)
ELSE (
a.edu_state_cd
)
END
)=#searchEduStateCd#
</isNotEmpty>
/* 교육상태 검색*/
<isNotEmpty property="searchReqStateCd">
<isEqual property="searchReqStateCd" compareValue="30">
AND a.EDU_STATE_CD = '20'
</isEqual>
<isNotEqual property="searchReqStateCd" compareValue="30">
<isEqual property="searchReqStateCd" compareValue="20">
AND (a.REQ_STATE_CD = '20' AND a.EDU_STATE_CD!='20')
</isEqual>
<isNotEqual property="searchReqStateCd" compareValue="20">
AND a.REQ_STATE_CD = #searchReqStateCd#
</isNotEqual>
</isNotEqual>
AND(
CASE
WHEN a.prcs_aplct_prd_ord_cmplt IS NOT NULL THEN (
SELECT
CODE
FROM
LETTCCMMNDETAILCODE
WHERE
USE_AT = 'Y'
AND CODE_ID = 'VEA002'
AND CODE = (
SELECT
b.req_state_cd
FROM
<include refid="CmdTrgtInfoMngDAO.table_name"/> b
WHERE
b.cmd_trgt_info_ord = a.prcs_aplct_prd_ord_cmplt )
)
WHEN a.EDU_STATE_CD = '20'
AND a.req_state_cd = '20' THEN a.req_state_cd
ELSE (
a.req_state_cd )
END )=#searchReqStateCd#
</isNotEmpty>
/* 교육상태 검색*/
<isNotEmpty prepend="AND" property="searchSex">
a.SEX = #searchSex#
</isNotEmpty>
<isNotEmpty property="searchSmbtStartDt">
AND TO_CHAR(A.req_pnttm, 'YYYYMMDD') <![CDATA[ >= ]]> REPLACE(#searchSmbtStartDt#, '.' , '')
</isNotEmpty>
<isNotEmpty property="searchSmbtEndDt">
AND TO_CHAR(A.req_pnttm, 'YYYYMMDD') <![CDATA[ <= ]]> REPLACE(#searchSmbtEndDt#, '.' , '')
</isNotEmpty>
/* 관할청 멀티셀렉트 */
<isNotEmpty property="searchSelStatus">
AND a.cmptnt_athrt IN
<iterate property="searchSelStatusList" open="(" close=")" conjunction=",">
#searchSelStatusList[]#
</iterate>
</isNotEmpty>
<isEmpty property="searchSelStatus">
<isNotEmpty property="srchCndt2">
AND a.cmptnt_athrt like #srchCndt2#||'%'
</isNotEmpty>
</isEmpty>
ORDER BY
a.req_pnttm DESC
, a.cmd_trgt_info_ord DESC
, a.prcs_aplct_prd_ord_cmplt DESC
, a.frst_regist_pnttm desc
OFFSET #firstIndex# ROWS FETCH NEXT #recordCountPerPage# ROWS ONLY;
</select>
<!-- 기소유예 대상자 확인 STEP01 -->
<select id="cmdTrgtInfoMngDAO.findByTrgtNmAndDBirthAndUserIdAndEduStateCd" parameterClass="CmdPrcsInfoMngVO" resultClass="String">
/* cmdTrgtInfoMngDAO.findByTrgtNmAndDBirthAndUserIdAndEduStateCd */
SELECT
cmd_trgt_info_ord AS cmdTrgtInfoOrd
FROM
<include refid="CmdTrgtInfoMngDAO.table_name"/> a
WHERE
a.trgt_nm = #trgtNm#
AND a.d_birth = #dBirth#
AND (
a.edu_state_cd = '10'
OR a.edu_state_cd = '40'
OR a.edu_state_cd = '50'
OR a.edu_state_cd = '60'
OR a.edu_state_cd = '70'
)
</select>
<!-- 기소유예 대상자 확인 STEP02 -->
<select id="cmdTrgtInfoMngDAO.findByTrgtNmAndDBirthAndEduStateCd" parameterClass="CmdPrcsInfoMngVO" resultClass="String">
/* cmdTrgtInfoMngDAO.findByTrgtNmAndDBirthAndEduStateCd */
SELECT
cmd_trgt_info_ord AS cmdTrgtInfoOrd
FROM
<include refid="CmdTrgtInfoMngDAO.table_name"/> a
WHERE
a.trgt_nm = #trgtNm#
AND a.d_birth = #dBirth#
AND (
a.edu_state_cd = '20'
OR a.edu_state_cd = '25'
OR a.edu_state_cd = '30'
)
</select>
<!-- 기소유예 대상자 확인 STEP01 -->
<select id="cmdTrgtInfoMngDAO.checkSspnIdtmtStep1" parameterClass="CmdPrcsInfoMngVO" resultClass="CmdPrcsInfoMngVO">
/* cmdTrgtInfoMngDAO.checkSspnIdtmtStep1 - step1.신청 가능한 대상이 있는지 찾는다. */
SELECT
a.cmd_trgt_info_ord AS cmdTrgtInfoOrd
, a.req_nmbr AS reqNmbr
, a.prsctr_nm AS prsctrNm
FROM
<include refid="CmdTrgtInfoMngDAO.table_name"/> a
WHERE
a.trgt_nm = #trgtNm#
AND a.d_birth = #dBirth#
AND a.sex = #sex#
AND (
a.edu_state_cd = '10' /* 교육대기 */
OR a.edu_state_cd = '35' /* 교육신청반려*/
OR a.edu_state_cd = '50' /* 연기 */
OR a.edu_state_cd = '70' /* 재교육 */
OR a.edu_state_cd IS NULL /* 값없음 */
OR a.edu_state_cd = '' /* 값없음 */
)
AND a.prcs_aplct_prd_ord_cmplt IS NULL /* 병합되지 않았다. */
<isNotEmpty property="clphone">
AND a.clphone = #clphone#
</isNotEmpty>
</select>
<!-- 기소유예 대상자 확인 STEP01 -->
<select id="cmdTrgtInfoMngDAO.selectDuplChk" parameterClass="CmdPrcsInfoMngVO" resultClass="CmdPrcsInfoMngVO">
/* cmdTrgtInfoMngDAO.checkSspnIdtmtStep1 - step1.신청 가능한 대상이 있는지 찾는다. */
SELECT
<include refid="CmdTrgtInfoMngDAO.select_column_name"/>
FROM
<include refid="CmdTrgtInfoMngDAO.table_name"/> a
WHERE
a.trgt_nm = #trgtNm#
AND a.d_birth = #dBirth#
AND a.sex = #sex#
</select>
<!-- 기소유예 대상자 확인 STEP02 -->
<select id="cmdTrgtInfoMngDAO.checkSspnIdtmtStep2" parameterClass="CmdPrcsInfoMngVO" resultClass="CmdPrcsInfoMngVO">
/* cmdTrgtInfoMngDAO.checkSspnIdtmtStep2 - //step2.대상이 없으면 기존 이력이 있는지 확인 */
SELECT
a.cmd_trgt_info_ord AS cmdTrgtInfoOrd
, a.edu_state_cd AS eduStateCd
FROM
<include refid="CmdTrgtInfoMngDAO.table_name"/> a
WHERE
a.trgt_nm = #trgtNm#
AND a.d_birth = #dBirth#
AND a.sex = #sex#
AND (
a.edu_state_cd = '20' /* 이수 */
OR a.edu_state_cd = '25' /* 요청 */
OR a.edu_state_cd = '30' /* 교육배정 */
OR a.edu_state_cd = '40' /* 미이수 */
OR a.edu_state_cd = '60' /* 교육취소 */
)
AND a.prcs_aplct_prd_ord_cmplt IS NULL /* 병합되지 않았다. */
<isNotEmpty property="clphone">
AND a.clphone = #clphone#
</isNotEmpty>
</select>
<!-- 기소유예 대상자 확인 STEP00 -->
<select id="cmdTrgtInfoMngDAO.checkSspnIdtmtNewStep0" parameterClass="CmdPrcsInfoMngVO" resultClass="CmdPrcsInfoMngVO">
/* cmdTrgtInfoMngDAO.checkSspnIdtmtNewStep0 - step0.해당 계정으로 신청한 정보가 있는지 확인 하고, 있다면 동일한 정보로 신청했는지 확인 할것. */
SELECT CASE WHEN aa.cnt=bb.cnt THEN 'T'
ELSE 'F'
END AS resultCd
FROM (
/*해당 계정으로 신청한 전체 숫자*/
SELECT count(*) cnt
FROM <include refid="CmdTrgtInfoMngDAO.table_name"/> b
WHERE b.user_id = #userId#
)aa
,(
/*해당 계정, 해당 정보로 신청한 전체 숫자*/
SELECT count(*) cnt
FROM <include refid="CmdTrgtInfoMngDAO.table_name"/> b
WHERE b.user_id = #userId#
AND b.TRGT_NM = #trgtNm#
AND b.D_BIRTH = #dBirth#
AND b.SEX = #sex#
)bb
</select>
<select id="cmdTrgtInfoMngDAO.findByEduAplctOrdAndMberId" parameterClass="CmdPrcsInfoMngVO" resultClass="CmdPrcsInfoMngVO">
/* cmdTrgtInfoMngDAO.findByEduAplctOrdAndMberId - 교육대상목록에서 상세 popup 정보 */
SELECT
a.cmd_trgt_info_ord AS cmdTrgtInfoOrd ,
a.user_id AS userId ,
a.edu_state_cd AS eduStateCd ,
a.frst_regist_pnttm AS frstRegistPnttm ,
a.frst_register_id AS frstRegisterId ,
a.last_updt_pnttm AS lastUpdtPnttm ,
a.last_updusr_id AS lastUpdusrId ,
a.trgt_nm AS trgtNm ,
a.clphone AS clphone ,
a.d_birth AS dBirth ,
a.addr AS addr ,
a.addr_detail AS addrDetail ,
a.post AS post ,
a.email AS email ,
a.req_pnttm AS reqPnttm ,
a.vnt_year AS vntYear ,
a.vnt_nmbr AS vntNmbr ,
a.cmptnt_athrt AS cmptntAthrt ,
a.sex AS sex ,
a.req_nmbr AS reqNmbr ,
a.prsctr_nm AS prsctrNm ,
a.req_state_cd AS reqStateCd ,
a.atch_file_id AS atchFileId ,
a.prcs_aplct_prd_ord_cmplt AS prcsAplctPrdOrdCmplt ,
a.rmrks AS rmrks ,
a.edu_aplct_ord AS eduAplctOrd
FROM
<include refid="CmdTrgtInfoMngDAO.table_name"/> a
WHERE
1 = 1
AND ((a.EDU_APLCT_ORD = #eduAplctOrd#
AND a.USER_ID = #userId#)
OR
(
a.cmd_trgt_info_ord = #cmdTrgtInfoOrd#
)
)
</select>
<update id="cmdTrgtInfoMngDAO.memoUpdate" parameterClass="CmdPrcsInfoMngVO">
/* cmdTrgtInfoMngDAO.memoUpdate */
UPDATE <include refid="CmdTrgtInfoMngDAO.table_name"/>
SET
LAST_UPDT_PNTTM = NOW()
,LAST_UPDUSR_ID = #lastUpdusrId#
,RMRKS = #rmrks#
WHERE cmd_trgt_info_ord = #cmdTrgtInfoOrd#
</update>
<update id="cmdTrgtInfoMngDAO.updateEduStateCdAndReqStateCdAjax" parameterClass="CmdPrcsInfoMngVO">
/* cmdTrgtInfoMngDAO.updateEduStateCdAndReqStateCdAjax-cmdTrgtInfoMngDAO.memoUpdate */
UPDATE <include refid="CmdTrgtInfoMngDAO.table_name"/>
SET
REQ_STATE_CD = #reqStateCd#
, EDU_STATE_CD = #eduStateCd#
, LAST_UPDT_PNTTM = NOW()
, LAST_UPDUSR_ID = #lastUpdusrId#
<isNotEmpty property="rmrks">
, rmrks = rmrks || #rmrks#
</isNotEmpty>
WHERE cmd_trgt_info_ord IN
<iterate property="cmdTrgtInfoOrdList" open="(" close=")" conjunction=",">
#cmdTrgtInfoOrdList[]#
</iterate>
</update>
<update id="cmdTrgtInfoMngDAO.deleteEduReqAjax" parameterClass="CmdPrcsInfoMngVO">
/* cmdTrgtInfoMngDAO.deleteEduReqAjax-cmdTrgtInfoMngDAO.memoUpdate */
DELETE FROM
<include refid="CmdTrgtInfoMngDAO.table_name"/>
WHERE cmd_trgt_info_ord IN
<iterate property="cmdTrgtInfoOrdList" open="(" close=")" conjunction=",">
#cmdTrgtInfoOrdList[]#
</iterate>
</update>
<select id="cmdTrgtInfoMngDAO.selectSMSSndString" parameterClass="VEAStngVO" resultClass="VEAStngVO">
/* cmdTrgtInfoMngDAO.selectSMSSndString */
SELECT
stng_cd AS stngCd,
cn AS cn
FROM VEA_BASIC_INFO_STNG
WHERE
1=1
<isNotEmpty property="stngCd">
AND stng_cd = #stngCd#
</isNotEmpty>
</select>
<update id="cmdTrgtInfoMngDAO.updateSMSSndString" parameterClass="VEAStngVO">
/* cmdTrgtInfoMngDAO.updateSMSSndString */
UPDATE VEA_BASIC_INFO_STNG
SET
CN = #cn#,
LAST_UPDT_PNTTM = NOW(),
LAST_UPDUSR_ID = #lastUpdusrId#
WHERE stng_cd = #stngCd#
</update>
<!-- 기소유예 대상자 연관 교육 내용 -->
<select id="cmdTrgtInfoMngDAO.selectListRelated" parameterClass="CmdPrcsInfoMngVO" resultClass="CmdPrcsInfoMngVO">
/* cmdTrgtInfoMngDAO.selectListRelated */
SELECT a.cmd_trgt_info_ord AS cmdTrgtInfoOrd
, b.prcs_ord AS prcsOrd
, b.USER_ID AS userId
, b.EDU_APLCT_ORD AS eduAplctOrd
, c.APLCT_STATE_CD AS aplctStateCd
, b.APRVL_CD AS aprvlCd
, c.CNCL_CN AS cnclCn
, c.CNCL_ATCH_FILE_ID AS cnclAtchFileId
, d.TITLE AS title
, d.edu_strt_pnttm AS eduStrtPnttm
FROM <include refid="CmdTrgtInfoMngDAO.table_name"/> a
, ve_edu_aplct b
, VEA_APLCT_DETAIL_INFO c
, ve_prcs_aplct_prd d
WHERE 1=1
AND b.RNDS_ORD =a.cmd_trgt_info_ord
AND b.EDU_APLCT_ORD = c.EDU_APLCT_ORD
AND b.PRCS_ORD = d.PRCS_APLCT_PRD_ORD
AND a.cmd_trgt_info_ord IN (
SELECT a.cmd_trgt_info_ord
FROM <include refid="CmdTrgtInfoMngDAO.table_name"/> a
WHERE a.cmd_trgt_info_ord =#cmdTrgtInfoOrd#
or a.PRCS_APLCT_PRD_ORD_CMPLT =#cmdTrgtInfoOrd#
)
</select>
</sqlMap>

View File

@ -69,6 +69,7 @@
<pattern>*/oprtn/otsdCprtnPrcs/*</pattern> <!-- 교육콘텐츠 화면 -->
<pattern>*/oprtn/fndthEnhanceTrn/*</pattern> <!-- 기반강화연수 화면 -->
<pattern>*/oprtn/cndtnSspnIdtmt/*</pattern> <!-- 조건부기소유예 화면 -->
<pattern>*/oprtn/cmdTrgt/*</pattern> <!-- 시정명령 화면 -->
<pattern>*/oprtn/stts/sttsEduCnt.do</pattern> <!-- 체험교실, 콘텐츠 통계 화면 -->
<pattern>*/oprtn/stts/sttsEduContentCnt.jsp </pattern> <!-- 교육콘텐츠, 월별 교육과정 통계 화면 -->

View File

@ -0,0 +1,851 @@
<!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="kc" uri="/WEB-INF/tlds/kcc_tld.tld"%>
<%@ taglib prefix="un" uri="http://jakarta.apache.org/taglibs/unstandard-1.0" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<%@ taglib prefix="ve" uri="/WEB-INF/tlds/kcc_tld.tld"%>
<un:useConstants var="KccadrStatus" className="kcc.kccadr.cmm.KccadrConstants" />
<%
/**
* @Class Name : cndtnEduPrcsMngList.jsp
* @Description : 조건부 기소유예 과정관리 목록
* @Modification Information
* @
* @ 수정일 수정자 수정내용
* @ ------- -------- ---------------------------
* @ 2021.12.14 조용준 최초 생성
* @author 조용준
* @since 2021.12.14
* @version 1.0
* @see
*
*/
%>
<html lang="ko">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<style>
input:read-only{
background-color: #ededed;
}
/* button.memoBtn{
height: 40px;
font-size: 18px;
text-align: center;
vertical-align: middle;
letter-spacing: -0.8px;
border-radius: 5px;
box-sizing: border-box;
border: 1px solid #888;
background-color: #131de14a;
color: #888;
} */
.check_wrap label,.tb_type02 .radio_wrap label{margin:0;}
</style>
<script type="text/javascript">
$(document).ready(function(){
//searchInit();
// 검색 select box
$('#searchStatus').change(function(){
$('#searchKeyword').val('');
$('#searchSmbtStartDt').val('');
$('#searchSmbtEndDt').val('');
if($(this).val() == 'frstRegistPnttm'){
$('#searchKeyword').hide();
$('#calendar').show();
}
if($(this).val() == 'trgt_nm'){
$('#searchKeyword').attr('placeholder', '이름을 입력해 주세요.');
$('#calendar').hide();
$('#searchKeyword').show();
}
if($(this).val() == 'd_birth'){
$('#searchKeyword').attr('placeholder', '생년월일을 입력해 주세요.');
$('#calendar').hide();
$('#searchKeyword').show();
}
});
});
function press(event) {
if (event.keyCode==13) {
fncGoList();
}
}
function searchInit(){
var selecedTxt = $('#searchStatus option:checked').val();
console.log('selecedTxt : ', selecedTxt);
if(selecedTxt == 'trgt_nm' || selecedTxt == 'd_birth'){
$('#calendar').hide();
}else{
$('#searchKeyword').hide();
}
}
function fncGoList(){
linkPage(1);
}
function linkPage(pageNo){
var listForm = document.listForm ;
listForm.pageIndex.value = pageNo ;
//listForm.searchKeyword.value = $('#searchKeyword').val();
listForm.action = "<c:url value='/kccadr/oprtn/cmdTrgt/trgtList.do'/>";
listForm.submit();
}
function fncGoDetail(sspnIdtmtTrgtOrd){
var detailForm = document.detailForm ;
detailForm.sspnIdtmtTrgtOrd.value = sspnIdtmtTrgtOrd;
detailForm.action = "<c:url value='/kccadr/oprtn/cmdTrgt/trgtDetail.do'/>";
detailForm.submit();
}
function fncCreate() {
var listForm = document.listForm ;
/* listForm.action = "<c:url value='/kccadr/oprtn/cmdTrgt/trgtReg.do'/>"; */
//등록 전 대상자 중복확인
listForm.action = "<c:url value='/kccadr/oprtn/cmdTrgt/trgtDplctChk.do'/>";
listForm.submit();
}
function fn_excel_upload() {
var form = document.excelForm;
// form.action = "<c:url value='/kccadr/oprtn/cmdTrgt/popup/duplChkPopup.do'/>";
form.action = "<c:url value='/kccadr/oprtn/cmdTrgt/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 ;
var pageIndex = document.listForm.pageIndex.value;
if($(".listCount").length == '1'){
pageIndex = pageIndex -1;
}
var data = new FormData(document.getElementById("listForm"));
if(confirm("삭제하시겠습니까?")){
var url = "<c:url value='/kccadr/oprtn/cmdTrgt/cndtnEduPrcsMngDeleteAjax.do'/>";
console.log(data);
$.ajax({
type:"POST",
url: url,
data: data,
dataType:'json',
async: false,
processData: false,
contentType: false,
cache: false,
success:function(returnData){
if(returnData.result == "success"){
alert("삭제되었습니다.");
document.listForm.prcsOrd.value = ""; //리스트 이동시 prcsOrd 초기화
linkPage(pageIndex);
}
},
error:function(request , status, error){
alert("code:"+request.status+"\n"+"message:"+request.responseText+"\n"+"error:"+error);
}
});
}
event.stopImmediatePropagation();
}
function fncSaveSort(prcsOrd, count){
var sortNo = $('#prcsSortNo'+count).val();
if(sortNo == ''){
alert("표시순서를 입력해 주세요.");
return false;
}
$('#prcsOrd').val(prcsOrd);
$('#prcsSortNo').val(sortNo);
var data = new FormData(document.getElementById("listForm"));
var url = "<c:url value='/kccadr/oprtn/otsdCprtnPrcs/eduPrcsSortUpdateAjax.do'/>";
$.ajax({
type:"POST",
url: url,
data: data,
dataType:'json',
async: false,
processData: false,
contentType: false,
cache: false,
success:function(returnData){
if(returnData.result == "success"){
alert("저장되었습니다.");
document.listForm.prcsOrd.value = ""; //리스트 이동시 prcsOrd 초기화
fncGoList();
}
},
error:function(request , status, error){
alert("code:"+request.status+"\n"+"message:"+request.responseText+"\n"+"error:"+error);
}
});
}
//초기화
/*function fncReset(thisObj) {
var targetObj = $(thisObj).closest('.list_top').find('select,input');
$.each(targetObj, function() {
if ($(this).prop('tagName') == 'SELECT') {
if ($(this).attr('name').indexOf('Month') != -1) {
$(this).val(new Date().getMonth() + 1);
} else if ($(this).attr('name').indexOf('Year') != -1) {
$(this).val(new Date().getFullYear());
} else {
$(this).prop("selectedIndex", 0);
}
} else {
if ($(this).attr('type') == 'checkbox') {
$(this).prop('checked', false);
} else {
$(this).val('');
}
}
});
}*/
function fncReset(thisObj){
var targetObj = $(thisObj).closest('.list_top').find('select,input');
$.each(targetObj, function(){
if ($(this).prop("tagName") == 'SELECT') {
// 초기화 시 무조건 select option 첫번째 지정
$(this).find("option:first-child").prop("selected",true);
} else if ($(this).attr('type') == 'radio') {
var radioName = $(this).attr("name");
var radioFirst = $("[name="+radioName+"]")[0];
$(radioFirst).prop("checked",true)
} else {
$(this).val('');
}
});
}
function showMemo(obj){
if($(obj).is(".on") == true){
$(obj).removeClass("on");
$(".memoTr").fadeOut();
}else{
$(obj).addClass("on");
$(".memoTr").fadeIn();
}
}
function chkAll(obj) {
// 모든 체크박스의 상태를 헤더 체크박스의 상태와 동일하게 설정
$("input[name='chk']").prop('checked', $(obj).prop('checked'));
}
// 대상자 의뢰취소
function fn_updateReqStatus(p_eduStateCd, p_reqStateCd) {
var sspnIdtmtTrgtOrdList = [];
console.log('Start');
var chk = false;
// "chk" 이름을 가진 체크박스가 체크된 항목들을 순회
$("input[name='chk']:checked").each(function() {
var sspnIdtmtTrgtOrdValue = $(this).val();
sspnIdtmtTrgtOrdList.push(sspnIdtmtTrgtOrdValue);
// 교육상태가 대기/ 연기 인지 확인
// 그 외에 값이면 loop 나온 뒤 경고 alert 실행 후 function 종료
if($(this).data('eduinfo') != 10
&& $(this).data('eduinfo') != 50
&& $(this).data('eduinfo') != ''
){
chk = true;
return;
}
});
if(chk){
alert("교육상태가 '교육대기','연기' 외에 다른 상태값이 있습니다.");
// 초기화
sspnIdtmtTrgtOrdList = [];
return;
}
// 선택된 항목이 없으면 경고 메시지를 표시하고 함수를 종료
if (sspnIdtmtTrgtOrdList.length === 0) {
alert("선택된 항목이 없습니다. 선택 후 다시 시도하세요.");
return false;
}
var dataToSend = {
"sspnIdtmtTrgtOrdList" : sspnIdtmtTrgtOrdList,
"eduStateCd" : p_eduStateCd,
"reqStateCd" : p_reqStateCd
};
//alert(sspnIdtmtTrgtOrdList);
var form = document.popForm;
form.sspnIdtmtTrgtOrdList.value = sspnIdtmtTrgtOrdList;
form.eduStateCd.value = p_eduStateCd;
form.reqStateCd.value = p_reqStateCd;
//alert("<c:url value='/kccadr/oprtn/cmdTrgt/popup/cnclStatusPopup.do'/>");
//document.listForm.eduAplctOrd.value = eduAplctOrd;
//document.listForm.eduChasiOrd.value = eduChasiOrd;
document.popForm.action = "<c:url value='/kccadr/oprtn/cmdTrgt/popup/cnclStatusPopup.do'/>";
var popup = window.open("", "_CancelStatusPopup", "scrollbars = no, top=100px, left=100px, height=750px, width=750px");
document.popForm.target = "_CancelStatusPopup";
document.popForm.submit();
var timer = setInterval(function() {
if(popup.closed) {
clearInterval(timer);
window.location.reload();
}
}, 1000);
/*
commonPopWindowopenForm(
"<c:url value='/kccadr/oprtn/cmdTrgt/popup/cnclStatusPopup.do'/>"
//"${pageContext.request.contextPath}/kccadr/oprtn/cmdTrgt/popup/cnclStatusPopup.do"
, "500"
, "550"
, "CancelStatusPopup"
, $("#listForm")
);
*/
/*
if(!confirm("의뢰취소를 하시겠습니까?")){
return;
}
// AJAX 호출을 통해 서버에 데이터 전송
this.fn_cmmAjax(dataToSend);
*/
}
// 대상자 의뢰취소 - 취소에 취소 (복구)
function fn_updateCancelReqStatus(p_eduStateCd, p_reqStateCd) {
var sspnIdtmtTrgtOrdList = [];
console.log('Start');
var chk = false;
// "chk" 이름을 가진 체크박스가 체크된 항목들을 순회
$("input[name='chk']:checked").each(function() {
var sspnIdtmtTrgtOrdValue = $(this).val();
sspnIdtmtTrgtOrdList.push(sspnIdtmtTrgtOrdValue);
// 교육상태가 대기/ 연기 인지 확인
// 그 외에 값이면 loop 나온 뒤 경고 alert 실행 후 function 종료
if($(this).data('eduinfo') != 60
){
chk = true;
return;
}
});
if(chk){
alert("교육상태가 '교육취소'외에 다른 상태값이 있습니다.");
// 초기화
sspnIdtmtTrgtOrdList = [];
return;
}
// 선택된 항목이 없으면 경고 메시지를 표시하고 함수를 종료
if (sspnIdtmtTrgtOrdList.length === 0) {
alert("선택된 항목이 없습니다. 선택 후 다시 시도하세요.");
return false;
}
var dataToSend = {
"sspnIdtmtTrgtOrdList" : sspnIdtmtTrgtOrdList,
"eduStateCd" : p_eduStateCd,
"reqStateCd" : p_reqStateCd
};
if(!confirm("의뢰취소복구를 하시겠습니까?")){
return;
}
this.fn_cmmAjax(dataToSend);
}
function fn_popup_submit_cmmAjax(p_params){
var sspnIdtmtTrgtOrdList = [];
console.log('Start');
var chk = false;
// "chk" 이름을 가진 체크박스가 체크된 항목들을 순회
$("input[name='chk']:checked").each(function() {
var sspnIdtmtTrgtOrdValue = $(this).val();
sspnIdtmtTrgtOrdList.push(sspnIdtmtTrgtOrdValue);
});
var dataToSend = {
"sspnIdtmtTrgtOrdList" : sspnIdtmtTrgtOrdList,
"eduStateCd" : "60",
"reqStateCd" : "40",
"rmrks" : p_params
};
if(!confirm("의뢰취소를 하시겠습니까?")){
return;
}
// AJAX 호출을 통해 서버에 데이터 전송
this.fn_cmmAjax(dataToSend);
}
function fn_cmmAjax(dataToSend){
var url = "<c:url value='/kccadr/oprtn/cmdTrgt/updateEduStateCdAndReqStateCdAjax.do'/>";
// 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_eduAsgnm(prcsAplctPrdOrd) {
var sspnIdtmtTrgtOrdList = [];
var chk = false;
// "chk" 이름을 가진 체크박스가 체크된 항목들을 순회
$("input[name='chk']:checked").each(function() {
var sspnIdtmtTrgtOrdValue = $(this).val();
sspnIdtmtTrgtOrdList.push(sspnIdtmtTrgtOrdValue);
// 교육상태가 대기/ 연기 인지 확인
// 그 외에 값이면 loop 나온 뒤 경고 alert 실행 후 function 종료
if($(this).data('eduinfo') != 10
){
chk = true;
return;
}
});
if(chk){
alert("교육상태가 '교육대기'외에 다른 상태값이 있습니다.");
// 초기화
sspnIdtmtTrgtOrdList = [];
return;
}
// 선택된 항목이 없으면 경고 메시지를 표시하고 함수를 종료
if (sspnIdtmtTrgtOrdList.length === 0) {
alert("선택된 항목이 없습니다. 선택 후 다시 시도하세요.");
return false;
}
var dataToSend = {
"sspnIdtmtTrgtOrdList" : sspnIdtmtTrgtOrdList
};
var form = document.popForm;
form.sspnIdtmtTrgtOrdList.value = sspnIdtmtTrgtOrdList;
// form.action = "<c:url value='/kccadr/oprtn/cmdTrgt/popup/fndthInstrAsgnmPopup.do'/>";
form.action = "<c:url value='/kccadr/oprtn/cmdTrgt/popup/cndtnEduAsgnmPopup.do'/>";
window.open("#", "_securityPop", "scrollbars = no, top=100px, left=100px, height=750px, width=950px");
form.target = "_securityPop";
form.submit();
}
function fncExcel(){
var listForm = document.listForm ;
// listForm.searchCondition.value = $("#searchCondition").val() ;
listForm.action = "<c:url value='/kccadr/oprtn/cmdTrgt/trgtExcel.do'/>";
listForm.submit();
}
</script>
<title>교육과정관리</title>
</head>
<body>
<form id="popForm" name="popForm" method="post" >
<input type="hidden" id="sspnIdtmtTrgtOrdList" name="sspnIdtmtTrgtOrdList" value="" />
<input type="hidden" id="eduStateCd" name="eduStateCd" value="" />
<input type="hidden" id="reqStateCd" name="reqStateCd" value="" />
</form>
<form id="excelForm" name="excelForm" method="post" >
</form>
<form id="detailForm" name="detailForm" method="post" >
<input type="hidden" id="sspnIdtmtTrgtOrd" name="sspnIdtmtTrgtOrd" value="" />
</form>
<form:form id="listForm" name="listForm" method="post" commandName="vEPrcsDetailVO" onsubmit="return false;">
<input type="hidden" name="pageIndex" value="<c:out value='${vEPrcsDetailVO.pageIndex}' default='1' />"/>
<input type="hidden" name="searchSortCnd" value="<c:out value="${vEPrcsDetailVO.searchSortCnd}" />" />
<input type="hidden" name="searchSortOrd" value="<c:out value="${vEPrcsDetailVO.searchSortOrd}" />" />
<input type="hidden" id="prcsOrd" name="prcsOrd" value="" />
<input type="hidden" id="prcsSortNo" name="prcsSortNo" value="" />
<div class="cont_wrap">
<div class="box">
<!-- 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>
</ul>
</div>
<!-- //cont_tit -->
<div class="cont">
<div class="tb_tit01">
<p>대상자 목록</p>
</div>
<div class="list_top">
<!-- <div class="list_top_1"> -->
<!-- <div class="util_left"> -->
<!-- <p>구분1</p> -->
<!-- </div> -->
<!-- <div class="util_right"> -->
<!-- <select name="searchStatus" id="searchStatus" class="sel_type1"> -->
<%-- <option value="trgt_nm" <c:if test="${cndtnTrgtInfoMngVO.searchStatus == 'trgt_nm' }">selected="selected"</c:if>>이름</option> --%>
<%-- <option value="d_birth" <c:if test="${cndtnTrgtInfoMngVO.searchStatus == 'd_birth' }">selected="selected"</c:if>>생년월일</option> --%>
<%-- <option value="frstRegistPnttm" <c:if test="${cndtnTrgtInfoMngVO.searchStatus == 'frstRegistPnttm' }">selected="selected"</c:if>>의뢰일자</option> --%>
<!-- </select> -->
<!-- <div id="calendar"> -->
<!-- <div class="calendar_wrap"> -->
<%-- <input type="text" class="calendar" placeholder="시작일" title="시작일 선택" id="searchSmbtStartDt" name="searchSmbtStartDt" value="${cndtnTrgtInfoMngVO.searchSmbtStartDt}"> --%>
<!-- </div> -->
<!-- ~ -->
<!-- <div class="calendar_wrap"> -->
<%-- <input type="text" class="calendar" placeholder="종료일" title="종료일 선택" id="searchSmbtEndDt" name="searchSmbtEndDt" value="${cndtnTrgtInfoMngVO.searchSmbtEndDt}"> --%>
<!-- </div> -->
<!-- </div> -->
<%-- <input type="text" id="searchKeyword" name="searchKeyword" placeholder="이름을 입력해주세요." title="검색어 입력" class="search_input" value="<c:out value='${cndtnTrgtInfoMngVO.searchKeyword}'/>"> --%>
<!-- <!-- <button class="btn_type03" onclick="fncReset(this); return false;">초기화</button> -->
<!-- </div> -->
<!-- </div> -->
<div class="list_top_1">
<div class="util_left">
<p>이름</p>
</div>
<div class="util_right">
<input type="text" id="searchKeywordFrom" name="searchKeywordFrom" placeholder="이름을 입력해주세요." title="검색어 입력" class="search_input" value="<c:out value='${cndtnTrgtInfoMngVO.searchKeywordFrom}'/>" onkeyDown="press(event);">
<button type="button" class="btn_type08" onclick="fncGoList(); return false;">검색</button>
<button class="btn_type03" onclick="fncReset(this); return false;">초기화</button>
</div>
</div>
<div class="list_top_1">
<div class="util_left">
<p>생년월일</p>
</div>
<div class="util_right">
<input type="text" id="searchKeywordTo" name="searchKeywordTo" placeholder="생년월일을 입력해 주세요.19800102" title="검색어 입력" class="search_input" value="<c:out value='${cndtnTrgtInfoMngVO.searchKeywordTo}'/>" onkeyDown="press(event);">
<!-- <button class="btn_type03" onclick="fncReset(this); return false;">초기화</button> -->
</div>
</div>
<div class="list_top_1">
<div class="util_left">
<p>의뢰일자</p>
</div>
<div class="util_right">
<div id="calendar">
의뢰일: <div class="calendar_wrap">
<input type="text" class="calendar" placeholder="시작일" title="시작일 선택" id="searchSmbtStartDt" name="searchSmbtStartDt" value="${cndtnTrgtInfoMngVO.searchSmbtStartDt}">
</div>
~
<div class="calendar_wrap">
<input type="text" class="calendar" placeholder="종료일" title="종료일 선택" id="searchSmbtEndDt" name="searchSmbtEndDt" value="${cndtnTrgtInfoMngVO.searchSmbtEndDt}">
</div>
</div>
</div>
</div>
<div class="list_top_2">
<div class="util_left">
<p>의뢰상태 및 교육상태</p>
</div>
<div class="util_right">
<ve:select codeId="VEA005" name="searchReqStateCd" id="searchReqStateCd" selectedValue="${cndtnTrgtInfoMngVO.searchReqStateCd }" defaultText="의뢰상태 선택" css="class='sel_type1'" />
<ve:select codeId="VEA002" name="searchEduStateCd" id="searchEduStateCd" selectedValue="${cndtnTrgtInfoMngVO.searchEduStateCd }" defaultText="교육상태 선택" css="class='sel_type1'" />
<div class="check_wrap" style="margin:0 0 0 20px;">
<p style="margin:0 4px 0 0;">성별</p> <ve:radio codeId="COM014" name="searchSex" id="searchSex" defaultValue="" defaultText="전체" selectedValue="${cndtnTrgtInfoMngVO.searchSex }" />
</div>
</div>
</div>
<div class="list_top_2">
<div class="util_left">
<p>엑셀 다운로드</p>
</div>
<div class="util_right">
<button type="button" class="btn_type08 btn_down_excel" onclick="fncExcel();">엑셀 다운로드</button>
</div>
</div>
</div>
<div class="btn_wrap btn_layout02">
<div class="btn_left">
<button type="button" class="btn_type04 btn btn_upload_excel lg" onclick="fn_excel_upload(); return false;">엑셀 업로드</button>
</div>
<div class="btn_center">
</div>
<div class="btn_right">
<button type="button" class="btn_type04 btn fill lightblue" onclick="fn_updateCancelReqStatus(10, 10); return false;">의뢰취소복구</button>
<button type="button" class="btn_type05 btn line red" onclick="fn_updateReqStatus(60, 40); return false;">의뢰취소</button>
<!-- <button type="button" class="btn_type02" onclick="fn_eduAsgnm(); return false;">교육배정</button> -->
<button type="button" class="btn_type01 btn fill blue" onclick="fncCreate(); return false;">등록</button>
</div>
</div>
<div class="list_util">
<p class="list_util_p"><span><c:out value="${paginationInfo.totalRecordCount}" /></span>건의 접수가 검색되었습니다.</p>
<div>
<button class="memoBtn btn_type03" onclick="showMemo(this);">메모열기</button>
<select class="sel_type1" name="pageUnit" id="pageUnit" onchange="linkPage(1);" title="줄 선택" style="width: 140px" class="sel_type1">
<option value='10' <c:if test="${cndtnTrgtInfoMngVO.pageUnit == '10' or cndtnTrgtInfoMngVO.pageUnit == ''}">selected</c:if>>10줄</option>
<option value='20' <c:if test="${cndtnTrgtInfoMngVO.pageUnit == '20'}">selected</c:if>>20줄</option>
<option value='30' <c:if test="${cndtnTrgtInfoMngVO.pageUnit == '30'}">selected</c:if>>30줄</option>
<option value='100' <c:if test="${cndtnTrgtInfoMngVO.pageUnit == '100'}">selected</c:if>>100줄</option>
</select>
<%--<button type="button" class="btn_down_excel">엑셀 다운로드</button>--%>
</div>
</div>
<!-- //list_top -->
<!-- list -->
<div class="tb_type01">
<table>
<colgroup>
<col style="width: 40px">
<col style="width: 8%">
<col style="width: 9%">
<col style="width: 10%">
<col style="width: 7%">
<col style="width: 5%">
<col style="width: 4%">
<col style="width: 12%">
<col style="width: 8%">
<col style="width: 8%">
<col style="width: auto">
<col style="width: 80px">
</colgroup>
<thead>
<tr>
<th><input type="checkbox" name="checkAll" id="checkAll" onclick="chkAll(this);" /><label for="checkAll"></label></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"
<c:if test="${empty list.prcsAplctPrdOrdCmplt}">
style="cursor:pointer;"
</c:if>
<c:if test="${not empty list.prcsAplctPrdOrdCmplt}">
style="cursor:pointer;background-color:lightgray;"
</c:if>
>
<td>
<input name="chk"
value="${list.sspnIdtmtTrgtOrd}" data-eduInfo="${list.eduStateCd }"
data-reqInfo="${list.reqStateCd }" title="Check" type="checkbox"/>
</td>
<td onclick="fncGoDetail('<c:out value="${list.sspnIdtmtTrgtOrd}"/>');" style="cursor:pointer;">
<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 onclick="fncGoDetail('<c:out value="${list.sspnIdtmtTrgtOrd}"/>');" style="cursor:pointer;">
<c:out value="${list.vntYear }" />형제<c:out value="${list.vntNmbr }" />
</td>
<td onclick="fncGoDetail('<c:out value="${list.sspnIdtmtTrgtOrd}"/>');" style="cursor:pointer;">
<ve:code codeId="VEA008" code="${list.cmptntAthrt }"/>
</td>
<td onclick="fncGoDetail('<c:out value="${list.sspnIdtmtTrgtOrd}"/>');" style="cursor:pointer;">
<c:out value="${list.dBirth }" />
</td>
<td onclick="fncGoDetail('<c:out value="${list.sspnIdtmtTrgtOrd}"/>');" style="cursor:pointer;">
<c:out value="${list.trgtNm }" />
</td>
<td onclick="fncGoDetail('<c:out value="${list.sspnIdtmtTrgtOrd}"/>');" style="cursor:pointer;">
<ve:code codeId="COM014" code="${list.sex }"/>
</td>
<td onclick="fncGoDetail('<c:out value="${list.sspnIdtmtTrgtOrd}"/>');" style="cursor:pointer;">
<c:out value="${list.reqNmbr }" />
</td>
<!--
<td onclick="fncGoDetail('<c:out value="${list.sspnIdtmtTrgtOrd}"/>');" style="cursor:pointer;">
<ve:code codeId="VEA005" code="${list.reqStateCd }"/>
</td>
-->
<!-- 의뢰상태 -->
<td onclick="fncGoDetail('<c:out value="${list.sspnIdtmtTrgtOrd}"/>');" style="cursor:pointer;">
<c:if test="${empty list.prcsAplctPrdOrdCmplt}">
<c:if test="${list.eduStateCd eq '20'}">
완료
</c:if>
<c:if test="${list.eduStateCd ne '20'}">
<ve:code codeId="VEA005" code="${list.reqStateCd }"/>
</c:if>
</c:if>
<c:if test="${not empty list.prcsAplctPrdOrdCmplt}">
병합처리
</c:if>
</td>
<td>
<%-- <ve:code codeId="VEA002" code="${list.eduStateCd }"/> --%>
${list.eduStateCdNm }
</td>
<c:set var="fullAddr" value="${list.addr} ${list.addrDetail}" />
<%-- <c:set var="fullAddr" value="${list.addr}" /> --%>
<td class="ellipsis" title="${fullAddr}">
${fullAddr}
<%-- ${fn:length(fullAddr)> 50 ? fn:substring(fullAddr, 0, 50).concat('...') : ''} --%>
</td>
<td>
<c:out value="${list.prsctrNm }" />
</td>
</tr>
<c:if test="${!empty list.rmrks }">
<tr class="memoTr" style="display:none;">
<td colspan="11" style="text-align:left; background-color:#131de14a;">
<c:out value="${list.rmrks}" />
</td>
</tr>
</c:if>
</c:forEach>
<c:if test="${empty list}">
<tr><td colspan="11"><spring:message code="common.nodata.msg" /></td></tr>
</c:if>
</tbody>
</table>
</div>
<!-- //list -->
<!-- page -->
<div class="page">
<ui:pagination paginationInfo = "${paginationInfo}" type="image" jsFunction="linkPage" />
</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>
<div class="btn_right">
<button type="button" class="btn_type04" onclick="fn_updateCancelReqStatus(10, 10); return false;">의뢰취소복구</button>
<button type="button" class="btn_type05" onclick="fn_updateReqStatus(60, 40); return false;">의뢰취소</button>
<!-- <button type="button" class="btn_type02" onclick="fn_eduAsgnm(); return false;">교육배정</button> -->
<!--<button type="button" class="btn_type01" onclick="fncCreate(); return false;">등록</button>
</div>
</div>-->
<!-- //page -->
</div>
</div>
</div>
<!-- //cont -->
<!-- //cont -->
</form:form>
</body>
</html>