관리자 - 기소유예 진행중

This commit is contained in:
hehih 2023-11-07 14:31:24 +09:00
parent b6e4effa14
commit 829f4d6ac9
17 changed files with 5753 additions and 4135 deletions

View File

@ -1,231 +1,248 @@
package kcc.com.cmm.util; package kcc.com.cmm.util;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.time.Instant; import java.time.Instant;
import java.time.LocalDate; import java.time.LocalDate;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.time.ZoneId; import java.time.ZoneId;
import java.time.format.DateTimeFormatter; import java.time.format.DateTimeFormatter;
import java.util.Calendar; import java.util.Calendar;
import java.util.Date; import java.util.Date;
import java.util.HashMap; import java.util.HashMap;
import java.util.Locale; import java.util.Locale;
public final class DateUtil { public final class DateUtil {
public static final String BASE_PATTERN = "yyyyMMddHHmmssSSS"; public static final String BASE_PATTERN = "yyyyMMddHHmmssSSS";
public static final int BASE_PATTERN_LEN = BASE_PATTERN.length(); public static final int BASE_PATTERN_LEN = BASE_PATTERN.length();
private static final String[] PATTERN_CACHE = new String[BASE_PATTERN_LEN + 1]; private static final String[] PATTERN_CACHE = new String[BASE_PATTERN_LEN + 1];
static { static {
PATTERN_CACHE[BASE_PATTERN_LEN] = BASE_PATTERN; PATTERN_CACHE[BASE_PATTERN_LEN] = BASE_PATTERN;
PATTERN_CACHE[14] = BASE_PATTERN.substring(0, 14); PATTERN_CACHE[14] = BASE_PATTERN.substring(0, 14);
PATTERN_CACHE[12] = BASE_PATTERN.substring(0, 12); PATTERN_CACHE[12] = BASE_PATTERN.substring(0, 12);
PATTERN_CACHE[10] = BASE_PATTERN.substring(0, 10); PATTERN_CACHE[10] = BASE_PATTERN.substring(0, 10);
PATTERN_CACHE[8] = BASE_PATTERN.substring(0, 8); PATTERN_CACHE[8] = BASE_PATTERN.substring(0, 8);
PATTERN_CACHE[6] = BASE_PATTERN.substring(0, 6); PATTERN_CACHE[6] = BASE_PATTERN.substring(0, 6);
PATTERN_CACHE[4] = BASE_PATTERN.substring(0, 4); PATTERN_CACHE[4] = BASE_PATTERN.substring(0, 4);
PATTERN_CACHE[0] = ""; PATTERN_CACHE[0] = "";
} }
public static final String DATE_PATTERN = PATTERN_CACHE[8]; public static final String DATE_PATTERN = PATTERN_CACHE[8];
public static final String DATETIME_PATTERN = PATTERN_CACHE[14]; public static final String DATETIME_PATTERN = PATTERN_CACHE[14];
public static LocalDateTime now() { public static LocalDateTime now() {
return LocalDateTime.now(); return LocalDateTime.now();
} }
public static Date toDate(LocalDate ld) { public static Date toDate(LocalDate ld) {
Date date = null; Date date = null;
if(ld != null) { if(ld != null) {
Instant instant = ld.atStartOfDay(ZoneId.systemDefault()).toInstant(); Instant instant = ld.atStartOfDay(ZoneId.systemDefault()).toInstant();
date = Date.from(instant); date = Date.from(instant);
} }
return date; return date;
} }
public static Date toDate(LocalDateTime ldt) { public static Date toDate(LocalDateTime ldt) {
Date date = null; Date date = null;
if(ldt != null) { if(ldt != null) {
Instant instant = ldt.atZone(ZoneId.systemDefault()).toInstant(); Instant instant = ldt.atZone(ZoneId.systemDefault()).toInstant();
date = Date.from(instant); date = Date.from(instant);
} }
return date; return date;
} }
public static LocalDate toLocalDate(Date date) { public static LocalDate toLocalDate(Date date) {
LocalDate ld = null; LocalDate ld = null;
if(date != null) { if(date != null) {
ld = date.toInstant().atZone(ZoneId.systemDefault()).toLocalDate(); ld = date.toInstant().atZone(ZoneId.systemDefault()).toLocalDate();
} }
return ld; return ld;
} }
public static LocalDateTime toLocalDateTime(Date date) { public static LocalDateTime toLocalDateTime(Date date) {
LocalDateTime ldt = null; LocalDateTime ldt = null;
if(date != null) { if(date != null) {
ldt = LocalDateTime.ofInstant(date.toInstant(), ZoneId.systemDefault()); ldt = LocalDateTime.ofInstant(date.toInstant(), ZoneId.systemDefault());
} }
return ldt; return ldt;
} }
public static Date parse(String source, String pattern) { public static Date parse(String source, String pattern) {
Date date = null; Date date = null;
if(source == null) { if(source == null) {
return date; return date;
} }
int sourceLen = source.length(); int sourceLen = source.length();
if(sourceLen < 1) { if(sourceLen < 1) {
return date; return date;
} }
if(sourceLen > 8) { if(sourceLen > 8) {
LocalDateTime ldt = DateUtil.parseLocalDateTime(source, pattern); LocalDateTime ldt = DateUtil.parseLocalDateTime(source, pattern);
date = DateUtil.toDate(ldt); date = DateUtil.toDate(ldt);
} else { } else {
LocalDate ld = DateUtil.parseLocalDate(source, pattern); LocalDate ld = DateUtil.parseLocalDate(source, pattern);
date = DateUtil.toDate(ld); date = DateUtil.toDate(ld);
} }
return date; return date;
} }
public static Date parse(String source) { public static Date parse(String source) {
return DateUtil.parse(source, null); return DateUtil.parse(source, null);
} }
public static LocalDate parseLocalDate(String source, String pattern) { public static LocalDate parseLocalDate(String source, String pattern) {
LocalDate ld = null; LocalDate ld = null;
if(source == null) { if(source == null) {
return ld; return ld;
} }
int sourceLen = source.length(); int sourceLen = source.length();
if(sourceLen < 1) { if(sourceLen < 1) {
return ld; return ld;
} }
if(StringUtil.isEmpty(pattern)) { if(StringUtil.isEmpty(pattern)) {
pattern = PATTERN_CACHE[sourceLen]; pattern = PATTERN_CACHE[sourceLen];
if(StringUtil.isEmpty(pattern)) { if(StringUtil.isEmpty(pattern)) {
return ld; return ld;
} }
} }
ld = LocalDate.parse(source, DateTimeFormatter.ofPattern(pattern)); ld = LocalDate.parse(source, DateTimeFormatter.ofPattern(pattern));
return ld; return ld;
} }
public static LocalDate parseLocalDate(String source) { public static LocalDate parseLocalDate(String source) {
return DateUtil.parseLocalDate(source, null); return DateUtil.parseLocalDate(source, null);
} }
public static LocalDateTime parseLocalDateTime(String source, String pattern) { public static LocalDateTime parseLocalDateTime(String source, String pattern) {
LocalDateTime ldt = null; LocalDateTime ldt = null;
if(source == null) { if(source == null) {
return ldt; return ldt;
} }
int sourceLen = source.length(); int sourceLen = source.length();
if(sourceLen < 1) { if(sourceLen < 1) {
return ldt; return ldt;
} }
if(StringUtil.isEmpty(pattern)) { if(StringUtil.isEmpty(pattern)) {
pattern = PATTERN_CACHE[sourceLen]; pattern = PATTERN_CACHE[sourceLen];
if(StringUtil.isEmpty(pattern)) { if(StringUtil.isEmpty(pattern)) {
return ldt; return ldt;
} }
} }
ldt = LocalDateTime.parse(source, DateTimeFormatter.ofPattern(PATTERN_CACHE[sourceLen])); ldt = LocalDateTime.parse(source, DateTimeFormatter.ofPattern(PATTERN_CACHE[sourceLen]));
return ldt; return ldt;
} }
public static LocalDateTime parseLocalDateTime(String source) { public static LocalDateTime parseLocalDateTime(String source) {
return DateUtil.parseLocalDateTime(source, null); return DateUtil.parseLocalDateTime(source, null);
} }
static String format(Date date, String pattern) { static String format(Date date, String pattern) {
if (date == null) if (date == null)
return null; return null;
return getInnerDateFormat(pattern).format(date); return getInnerDateFormat(pattern).format(date);
} }
private static SimpleDateFormat getInnerDateFormat(String pattern) { private static SimpleDateFormat getInnerDateFormat(String pattern) {
SimpleDateFormat f = cache.get(pattern); SimpleDateFormat f = cache.get(pattern);
if (f == null) if (f == null)
f = createDateformat(pattern); f = createDateformat(pattern);
return f; return f;
} }
private static final Locale __DEFAULT_LOCALE = Locale.ENGLISH; private static final Locale __DEFAULT_LOCALE = Locale.ENGLISH;
private static HashMap<String, SimpleDateFormat> cache = new HashMap<String, SimpleDateFormat>(); private static HashMap<String, SimpleDateFormat> cache = new HashMap<String, SimpleDateFormat>();
private synchronized static SimpleDateFormat createDateformat(String pattern) { private synchronized static SimpleDateFormat createDateformat(String pattern) {
SimpleDateFormat f = cache.get(pattern); SimpleDateFormat f = cache.get(pattern);
if (f == null) { if (f == null) {
f = new SimpleDateFormat(pattern, __DEFAULT_LOCALE); f = new SimpleDateFormat(pattern, __DEFAULT_LOCALE);
cache.put(pattern, f); cache.put(pattern, f);
} }
return f; return f;
} }
//날짜에 대한 요일 텍스트 받아오기 //날짜에 대한 요일 텍스트 받아오기
public static String getWeekText(Date date) { public static String getWeekText(Date date) {
String strWeek = ""; String strWeek = "";
Calendar cal = Calendar.getInstance(); Calendar cal = Calendar.getInstance();
cal.setTime(date); cal.setTime(date);
int dayNum = cal.get(Calendar.DAY_OF_WEEK); int dayNum = cal.get(Calendar.DAY_OF_WEEK);
switch(dayNum) { switch(dayNum) {
case 1: case 1:
strWeek = ""; strWeek = "";
break; break;
case 2: case 2:
strWeek = ""; strWeek = "";
break; break;
case 3: case 3:
strWeek = ""; strWeek = "";
break; break;
case 4: case 4:
strWeek = ""; strWeek = "";
break; break;
case 5: case 5:
strWeek = ""; strWeek = "";
break; break;
case 6: case 6:
strWeek = ""; strWeek = "";
break; break;
case 7: case 7:
strWeek = ""; strWeek = "";
break; break;
} }
return strWeek; return strWeek;
} }
public static int getNowyyyyMMddReturnInt() { public static int getNowyyyyMMddReturnInt() {
DateTimeFormatter formatter2 = DateTimeFormatter.ofPattern("yyyyMMdd"); DateTimeFormatter formatter2 = DateTimeFormatter.ofPattern("yyyyMMdd");
return Integer.parseInt(LocalDateTime.now().format(formatter2)); return Integer.parseInt(LocalDateTime.now().format(formatter2));
} }
public static LocalDate getStringToLocalDate(String p_date) { public static LocalDate getStringToLocalDate(String p_date) {
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyyMMdd"); DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyyMMdd");
LocalDate date = LocalDate.parse(p_date, formatter); LocalDate date = LocalDate.parse(p_date, formatter);
return date; return date;
} }
public static LocalDate getStringToLocalDateDot(String p_date) { public static LocalDate getStringToLocalDateDot(String p_date) {
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy.MM.dd"); DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy.MM.dd");
LocalDate date = LocalDate.parse(p_date, formatter); LocalDate date = LocalDate.parse(p_date, formatter);
return date; return date;
} }
}
// 2023 => 23
public static String getStringToLocalDateYear() {
// 현재 날짜를 얻기
LocalDate currentDate = LocalDate.now();
// 올해의 년도를 얻기
int currentYear = currentDate.getYear();
// 년도를 String으로 변환
String yearString = Integer.toString(currentYear);
// 마지막 자리 추출
String lastTwoDigits = yearString.substring(yearString.length() - 2);
// 출력
return lastTwoDigits;
}
}

View File

@ -600,6 +600,7 @@ public class EgovLoginController {
// 1. 로그인 처리 // 1. 로그인 처리
LoginVO resultVO = loginService.actionLogin(loginVO); LoginVO resultVO = loginService.actionLogin(loginVO);
System.out.println("UserWork :: "+resultVO.getUserWork());
if (loginService.getUserAuth(resultVO) != null) { if (loginService.getUserAuth(resultVO) != null) {
resultVO.setAuthority(loginService.getUserAuth(resultVO).getAuthority()); resultVO.setAuthority(loginService.getUserAuth(resultVO).getAuthority());
@ -665,7 +666,7 @@ public class EgovLoginController {
// 2. spring security 연동 // 2. spring security 연동
request.getSession().setAttribute("LoginVO", resultVO); request.getSession().setAttribute("LoginVO", resultVO);
System.out.println("===============!==============");
UsernamePasswordAuthenticationFilter springSecurity = new UsernamePasswordAuthenticationFilter(); UsernamePasswordAuthenticationFilter springSecurity = new UsernamePasswordAuthenticationFilter();
ApplicationContext act = WebApplicationContextUtils.getRequiredWebApplicationContext(request.getSession().getServletContext()); ApplicationContext act = WebApplicationContextUtils.getRequiredWebApplicationContext(request.getSession().getServletContext());

File diff suppressed because it is too large Load Diff

View File

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

View File

@ -35,6 +35,7 @@ public class CndtnTrgtMngVO extends ComDefaultVO implements Serializable {
private String cmptntAthrt; // 관할청 private String cmptntAthrt; // 관할청
private String sex; // 성별 private String sex; // 성별
private String reqNmbr; // 의뢰번호 private String reqNmbr; // 의뢰번호
private String reqNmbrTemp; // 의뢰번호
private String prsctrNm; // 검사성명 private String prsctrNm; // 검사성명
private String reqStateCd; // 의뢰상태코드 private String reqStateCd; // 의뢰상태코드
private String prcsAplctPrdOrdCmplt;// 중복확인을 위한 신청강의 PK private String prcsAplctPrdOrdCmplt;// 중복확인을 위한 신청강의 PK
@ -166,6 +167,12 @@ public class CndtnTrgtMngVO extends ComDefaultVO implements Serializable {
public void setReqNmbr(String reqNmbr) { public void setReqNmbr(String reqNmbr) {
this.reqNmbr = reqNmbr; this.reqNmbr = reqNmbr;
} }
public String getReqNmbrTemp() {
return reqNmbrTemp;
}
public void setReqNmbrTemp(String reqNmbrTemp) {
this.reqNmbrTemp = reqNmbrTemp;
}
public String getPrsctrNm() { public String getPrsctrNm() {
return prsctrNm; return prsctrNm;
} }

View File

@ -1,125 +1,129 @@
package kcc.ve.oprtn.cndtnSspnIdtmt.trgtMng.service.impl; package kcc.ve.oprtn.cndtnSspnIdtmt.trgtMng.service.impl;
import java.util.List; import java.util.List;
import org.springframework.stereotype.Repository; import org.springframework.stereotype.Repository;
import egovframework.rte.psl.dataaccess.EgovAbstractDAO; import egovframework.rte.psl.dataaccess.EgovAbstractDAO;
import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduAplctVO; import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduAplctVO;
import kcc.ve.instr.tngrVisitEdu.instrInfo.service.VEInstrDetailVO; import kcc.ve.instr.tngrVisitEdu.instrInfo.service.VEInstrDetailVO;
import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEAPrcsAplctPrdInstrAsgnmVO; import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEAPrcsAplctPrdInstrAsgnmVO;
import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsDetailVO; import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsDetailVO;
import kcc.ve.oprtn.cndtnSspnIdtmt.trgtMng.service.CndtnTrgtMngVO; import kcc.ve.oprtn.cndtnSspnIdtmt.trgtMng.service.CndtnTrgtMngVO;
@Repository("cndtnTrgtInfoMngDAO") @Repository("cndtnTrgtInfoMngDAO")
public class CndtnTrgtMngDAO extends EgovAbstractDAO { public class CndtnTrgtMngDAO extends EgovAbstractDAO {
/* *//** /* *//**
* 등록 - C * 등록 - C
* @param VELctrDetailVO * @param VELctrDetailVO
* @throws Exception * @throws Exception
*//* *//*
public void insert(VEPrcsDetailVO paramVO) throws Exception { public void insert(VEPrcsDetailVO paramVO) throws Exception {
insert("VEPrcsAplctPrdDAO.insert", paramVO); insert("VEPrcsAplctPrdDAO.insert", paramVO);
} }
*//** *//**
* 상세보기 - R * 상세보기 - R
* @param CndtnTrgtInfoMngVO * @param CndtnTrgtInfoMngVO
* @return * @return
* @throws Exception * @throws Exception
*//* *//*
public VEPrcsDetailVO selectDetail(VEPrcsDetailVO paramVO) throws Exception { public VEPrcsDetailVO selectDetail(VEPrcsDetailVO paramVO) throws Exception {
return (VEPrcsDetailVO) select("VEPrcsAplctPrdDAO.selectDetail", paramVO); return (VEPrcsDetailVO) select("VEPrcsAplctPrdDAO.selectDetail", paramVO);
} }
*//** *//**
* 수정 - U * 수정 - U
* @param CndtnTrgtInfoMngVO * @param CndtnTrgtInfoMngVO
* @return * @return
* @throws Exception * @throws Exception
*//* *//*
public int update(VEPrcsDetailVO paramVO) throws Exception { public int update(VEPrcsDetailVO paramVO) throws Exception {
return update("VEPrcsAplctPrdDAO.update", paramVO); return update("VEPrcsAplctPrdDAO.update", paramVO);
} }
*//** *//**
* 삭제 - D * 삭제 - D
* @param addrAgencyVO * @param addrAgencyVO
* @return * @return
* @throws Exception * @throws Exception
*//* *//*
public int delete(VEPrcsDetailVO paramVO) throws Exception { public int delete(VEPrcsDetailVO paramVO) throws Exception {
return delete("VEPrcsAplctPrdDAO.delete", paramVO); return delete("VEPrcsAplctPrdDAO.delete", paramVO);
} }
//L //L
public List<VEPrcsDetailVO> selectList(VEPrcsDetailVO paramVO) throws Exception { public List<VEPrcsDetailVO> selectList(VEPrcsDetailVO paramVO) throws Exception {
List<VEPrcsDetailVO> tlist = (List<VEPrcsDetailVO>) list("VEPrcsAplctPrdDAO.selectList", paramVO); List<VEPrcsDetailVO> tlist = (List<VEPrcsDetailVO>) list("VEPrcsAplctPrdDAO.selectList", paramVO);
return tlist; return tlist;
} }
public List<VEPrcsDetailVO> selectList4Fndth(VEPrcsDetailVO paramVO) throws Exception { public List<VEPrcsDetailVO> selectList4Fndth(VEPrcsDetailVO paramVO) throws Exception {
List<VEPrcsDetailVO> tlist = (List<VEPrcsDetailVO>) list("VEPrcsAplctPrdDAO.selectList4Fndth", paramVO); List<VEPrcsDetailVO> tlist = (List<VEPrcsDetailVO>) list("VEPrcsAplctPrdDAO.selectList4Fndth", paramVO);
return tlist; return tlist;
} }
*//** *//**
* L - Page * L - Page
* @param addrVO * @param addrVO
* @return * @return
* @throws Exception * @throws Exception
*//* *//*
public List<VEPrcsDetailVO> selectPagingList(VEPrcsDetailVO paramVO) throws Exception { public List<VEPrcsDetailVO> selectPagingList(VEPrcsDetailVO paramVO) throws Exception {
List<VEPrcsDetailVO> tlist = (List<VEPrcsDetailVO>) list("VEPrcsAplctPrdDAO.selectPagingList", paramVO); List<VEPrcsDetailVO> tlist = (List<VEPrcsDetailVO>) list("VEPrcsAplctPrdDAO.selectPagingList", paramVO);
return tlist; return tlist;
} }
public List<VEPrcsDetailVO> selectPagingList4Fndth(VEPrcsDetailVO paramVO) throws Exception { public List<VEPrcsDetailVO> selectPagingList4Fndth(VEPrcsDetailVO paramVO) throws Exception {
List<VEPrcsDetailVO> tlist = (List<VEPrcsDetailVO>) list("VEPrcsAplctPrdDAO.selectPagingList4Fndth", paramVO); List<VEPrcsDetailVO> tlist = (List<VEPrcsDetailVO>) list("VEPrcsAplctPrdDAO.selectPagingList4Fndth", paramVO);
return tlist; return tlist;
} }
public VEPrcsDetailVO selectDetailNewOne(VEPrcsDetailVO paramVO) throws Exception { public VEPrcsDetailVO selectDetailNewOne(VEPrcsDetailVO paramVO) throws Exception {
return (VEPrcsDetailVO) select("VEPrcsAplctPrdDAO.selectDetailNewOne", paramVO); return (VEPrcsDetailVO) select("VEPrcsAplctPrdDAO.selectDetailNewOne", paramVO);
} }
public VEPrcsDetailVO selectDetailNewOne4Fndth(VEPrcsDetailVO paramVO) throws Exception { public VEPrcsDetailVO selectDetailNewOne4Fndth(VEPrcsDetailVO paramVO) throws Exception {
return (VEPrcsDetailVO) select("VEPrcsAplctPrdDAO.selectDetailNewOne4Fndth", paramVO); return (VEPrcsDetailVO) select("VEPrcsAplctPrdDAO.selectDetailNewOne4Fndth", paramVO);
} }
public List<VEInstrDetailVO> selectinstrAsgnmPopupPagingList(VEPrcsDetailVO vEPrcsDetailVO) { public List<VEInstrDetailVO> selectinstrAsgnmPopupPagingList(VEPrcsDetailVO vEPrcsDetailVO) {
return (List<VEInstrDetailVO>) list("VEPrcsAplctPrdDAO.selectinstrAsgnmPopupPagingList", vEPrcsDetailVO); return (List<VEInstrDetailVO>) list("VEPrcsAplctPrdDAO.selectinstrAsgnmPopupPagingList", vEPrcsDetailVO);
}*/ }*/
public List<CndtnTrgtMngVO> selectPagingList(CndtnTrgtMngVO cndtnTrgtInfoMngVO) { public List<CndtnTrgtMngVO> selectPagingList(CndtnTrgtMngVO cndtnTrgtInfoMngVO) {
return (List<CndtnTrgtMngVO>) list("cndtnTrgtInfoMngDAO.selectPagingList", cndtnTrgtInfoMngVO); return (List<CndtnTrgtMngVO>) list("cndtnTrgtInfoMngDAO.selectPagingList", cndtnTrgtInfoMngVO);
} }
public void insert(CndtnTrgtMngVO cndtnTrgtInfoMngVO) { public void insert(CndtnTrgtMngVO cndtnTrgtInfoMngVO) {
insert("cndtnTrgtInfoMngDAO.insert", cndtnTrgtInfoMngVO); insert("cndtnTrgtInfoMngDAO.insert", cndtnTrgtInfoMngVO);
} }
public CndtnTrgtMngVO selectDetail(CndtnTrgtMngVO cndtnTrgtInfoVO) { public CndtnTrgtMngVO selectDetail(CndtnTrgtMngVO cndtnTrgtInfoVO) {
return (CndtnTrgtMngVO) select("cndtnTrgtInfoMngDAO.selectDetail", cndtnTrgtInfoVO); return (CndtnTrgtMngVO) select("cndtnTrgtInfoMngDAO.selectDetail", cndtnTrgtInfoVO);
} }
public void update(CndtnTrgtMngVO cndtnTrgtInfoMngVO) { public void update(CndtnTrgtMngVO cndtnTrgtInfoMngVO) {
update("cndtnTrgtInfoMngDAO.update", cndtnTrgtInfoMngVO); update("cndtnTrgtInfoMngDAO.update", cndtnTrgtInfoMngVO);
} }
public String findByTrgtNmAndDBirthAndEduStateCd(CndtnTrgtMngVO cndtnTrgtInfoMngVO) { public String findByTrgtNmAndDBirthAndEduStateCd(CndtnTrgtMngVO cndtnTrgtInfoMngVO) {
return (String) select("cndtnTrgtInfoMngDAO.findByTrgtNmAndDBirthAndEduStateCd", cndtnTrgtInfoMngVO); return (String) select("cndtnTrgtInfoMngDAO.findByTrgtNmAndDBirthAndEduStateCd", cndtnTrgtInfoMngVO);
} }
public void updateUserId(CndtnTrgtMngVO cndtnTrgtMngVO) { public void updateUserId(CndtnTrgtMngVO cndtnTrgtMngVO) {
update("cndtnTrgtInfoMngDAO.updateUserId", cndtnTrgtMngVO); update("cndtnTrgtInfoMngDAO.updateUserId", cndtnTrgtMngVO);
} }
public String findByTrgtNmAndDBirthAndUserIdAndEduStateCd(CndtnTrgtMngVO cndtnTrgtInfoMngVO) { public String findByTrgtNmAndDBirthAndUserIdAndEduStateCd(CndtnTrgtMngVO cndtnTrgtInfoMngVO) {
return (String) select("cndtnTrgtInfoMngDAO.findByTrgtNmAndDBirthAndUserIdAndEduStateCd", cndtnTrgtInfoMngVO); return (String) select("cndtnTrgtInfoMngDAO.findByTrgtNmAndDBirthAndUserIdAndEduStateCd", cndtnTrgtInfoMngVO);
} }
public int findCntreqNmber(String reqNmbrTemp) {
} return (int) select("cndtnTrgtInfoMngDAO.findCntreqNmber", reqNmbrTemp);
}
}

View File

@ -1,117 +1,122 @@
package kcc.ve.oprtn.cndtnSspnIdtmt.trgtMng.service.impl; package kcc.ve.oprtn.cndtnSspnIdtmt.trgtMng.service.impl;
import java.util.List; import java.util.List;
import javax.annotation.Resource; import javax.annotation.Resource;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import egovframework.rte.fdl.idgnr.EgovIdGnrService; import egovframework.rte.fdl.idgnr.EgovIdGnrService;
import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsDetailVO; import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsDetailVO;
import kcc.ve.oprtn.cndtnSspnIdtmt.trgtMng.service.CndtnTrgtMngService; import kcc.ve.oprtn.cndtnSspnIdtmt.trgtMng.service.CndtnTrgtMngService;
import kcc.ve.oprtn.cndtnSspnIdtmt.trgtMng.service.CndtnTrgtMngVO; import kcc.ve.oprtn.cndtnSspnIdtmt.trgtMng.service.CndtnTrgtMngVO;
@Service("cndtnTrgtInfoMngService") @Service("cndtnTrgtInfoMngService")
public class CndtnTrgtMngServiceImpl implements CndtnTrgtMngService { public class CndtnTrgtMngServiceImpl implements CndtnTrgtMngService {
//과정신청기간순번 //과정신청기간순번
@Resource(name="prcsAplctPrdGnrService") @Resource(name="prcsAplctPrdGnrService")
private EgovIdGnrService prcsAplctPrdGnrService; private EgovIdGnrService prcsAplctPrdGnrService;
//과정 //과정
//대상자 //대상자
@Resource(name="cndtnTrgtInfoMngDAO") @Resource(name="cndtnTrgtInfoMngDAO")
private CndtnTrgtMngDAO cndtnTrgtInfoMngDAO; private CndtnTrgtMngDAO cndtnTrgtInfoMngDAO;
@Override @Override
public List<CndtnTrgtMngVO> selectPagingList(CndtnTrgtMngVO cndtnTrgtInfoMngVO) { public List<CndtnTrgtMngVO> selectPagingList(CndtnTrgtMngVO cndtnTrgtInfoMngVO) {
return cndtnTrgtInfoMngDAO.selectPagingList(cndtnTrgtInfoMngVO); return cndtnTrgtInfoMngDAO.selectPagingList(cndtnTrgtInfoMngVO);
} }
@Override @Override
public void insert(CndtnTrgtMngVO cndtnTrgtInfoMngVO) { public void insert(CndtnTrgtMngVO cndtnTrgtInfoMngVO) {
cndtnTrgtInfoMngDAO.insert(cndtnTrgtInfoMngVO); cndtnTrgtInfoMngDAO.insert(cndtnTrgtInfoMngVO);
} }
@Override @Override
public CndtnTrgtMngVO selectDetail(CndtnTrgtMngVO cndtnTrgtInfoVO) { public CndtnTrgtMngVO selectDetail(CndtnTrgtMngVO cndtnTrgtInfoVO) {
return cndtnTrgtInfoMngDAO.selectDetail(cndtnTrgtInfoVO); return cndtnTrgtInfoMngDAO.selectDetail(cndtnTrgtInfoVO);
} }
@Override @Override
public void update(CndtnTrgtMngVO cndtnTrgtInfoMngVO) { public void update(CndtnTrgtMngVO cndtnTrgtInfoMngVO) {
cndtnTrgtInfoMngDAO.update(cndtnTrgtInfoMngVO); cndtnTrgtInfoMngDAO.update(cndtnTrgtInfoMngVO);
} }
@Override @Override
public void updateUserId(CndtnTrgtMngVO cndtnTrgtMngVO) { public void updateUserId(CndtnTrgtMngVO cndtnTrgtMngVO) {
cndtnTrgtInfoMngDAO.updateUserId(cndtnTrgtMngVO); cndtnTrgtInfoMngDAO.updateUserId(cndtnTrgtMngVO);
} }
/* @Override
//C public int findCntreqNmber(String reqNmbrTemp) {
public void insert(VEPrcsDetailVO vEPrcsDetailVO) throws Exception { return cndtnTrgtInfoMngDAO.findCntreqNmber(reqNmbrTemp);
}
String prcsAplctPrdOrd = prcsAplctPrdGnrService.getNextStringId(); // 고유ID /*
vEPrcsDetailVO.setPrcsAplctPrdOrd(prcsAplctPrdOrd); //C
vEPrcsDetailVO.setLctrDivCd("50"); //강의구분코드 VE0011 10-청소년강의, 20-성인강의, 30-체험, 50-기반강화, 60-조건부 public void insert(VEPrcsDetailVO vEPrcsDetailVO) throws Exception {
//vEPrcsDetailVO.setUseYn("Y");
vEPrcsAplctPrdDAO.insert(vEPrcsDetailVO); String prcsAplctPrdOrd = prcsAplctPrdGnrService.getNextStringId(); // 고유ID
} vEPrcsDetailVO.setPrcsAplctPrdOrd(prcsAplctPrdOrd);
vEPrcsDetailVO.setLctrDivCd("50"); //강의구분코드 VE0011 10-청소년강의, 20-성인강의, 30-체험, 50-기반강화, 60-조건부
//R //vEPrcsDetailVO.setUseYn("Y");
public VEPrcsDetailVO selectDetail(VEPrcsDetailVO paramVO) throws Exception {
return vEPrcsAplctPrdDAO.selectDetail(paramVO); vEPrcsAplctPrdDAO.insert(vEPrcsDetailVO);
} }
//U //R
public int update(VEPrcsDetailVO paramVO) throws Exception{ public VEPrcsDetailVO selectDetail(VEPrcsDetailVO paramVO) throws Exception {
vEPrcsAplctPrdDAO.update(paramVO); return vEPrcsAplctPrdDAO.selectDetail(paramVO);
return vEPrcsDAO.update(paramVO); }
}
//U
//D public int update(VEPrcsDetailVO paramVO) throws Exception{
public int delete(VEPrcsDetailVO paramVO) throws Exception{ vEPrcsAplctPrdDAO.update(paramVO);
return vEPrcsAplctPrdDAO.delete(paramVO); return vEPrcsDAO.update(paramVO);
} }
//List //D
public List<VEPrcsDetailVO> selectList(VEPrcsDetailVO paramVO) throws Exception{ public int delete(VEPrcsDetailVO paramVO) throws Exception{
return vEPrcsAplctPrdDAO.selectList(paramVO); return vEPrcsAplctPrdDAO.delete(paramVO);
} }
public List<VEPrcsDetailVO> selectList4Fndth(VEPrcsDetailVO paramVO) throws Exception{ //List
return vEPrcsAplctPrdDAO.selectList4Fndth(paramVO); public List<VEPrcsDetailVO> selectList(VEPrcsDetailVO paramVO) throws Exception{
} return vEPrcsAplctPrdDAO.selectList(paramVO);
}
//paging List
public List<VEPrcsDetailVO> selectPagingList(VEPrcsDetailVO paramVO) throws Exception{ public List<VEPrcsDetailVO> selectList4Fndth(VEPrcsDetailVO paramVO) throws Exception{
return vEPrcsAplctPrdDAO.selectPagingList(paramVO); return vEPrcsAplctPrdDAO.selectList4Fndth(paramVO);
} }
public List<VEPrcsDetailVO> selectPagingList4Fndth(VEPrcsDetailVO paramVO) throws Exception{ //paging List
return vEPrcsAplctPrdDAO.selectPagingList4Fndth(paramVO); public List<VEPrcsDetailVO> selectPagingList(VEPrcsDetailVO paramVO) throws Exception{
} return vEPrcsAplctPrdDAO.selectPagingList(paramVO);
}
//R
public VEPrcsDetailVO selectDetailNewOne(VEPrcsDetailVO paramVO) throws Exception { public List<VEPrcsDetailVO> selectPagingList4Fndth(VEPrcsDetailVO paramVO) throws Exception{
return vEPrcsAplctPrdDAO.selectDetailNewOne(paramVO); return vEPrcsAplctPrdDAO.selectPagingList4Fndth(paramVO);
} }
public VEPrcsDetailVO selectDetailNewOne4Fndth(VEPrcsDetailVO paramVO) throws Exception { //R
return vEPrcsAplctPrdDAO.selectDetailNewOne4Fndth(paramVO); public VEPrcsDetailVO selectDetailNewOne(VEPrcsDetailVO paramVO) throws Exception {
} return vEPrcsAplctPrdDAO.selectDetailNewOne(paramVO);
}
@Override
public List<VEInstrDetailVO> selectinstrAsgnmPopupPagingList(VEPrcsDetailVO vEPrcsDetailVO) { public VEPrcsDetailVO selectDetailNewOne4Fndth(VEPrcsDetailVO paramVO) throws Exception {
return vEPrcsAplctPrdDAO.selectinstrAsgnmPopupPagingList(vEPrcsDetailVO); return vEPrcsAplctPrdDAO.selectDetailNewOne4Fndth(paramVO);
}*/ }
} @Override
public List<VEInstrDetailVO> selectinstrAsgnmPopupPagingList(VEPrcsDetailVO vEPrcsDetailVO) {
return vEPrcsAplctPrdDAO.selectinstrAsgnmPopupPagingList(vEPrcsDetailVO);
}*/
}

View File

@ -1,10 +1,14 @@
package kcc.ve.oprtn.cndtnSspnIdtmt.trgtMng.web; package kcc.ve.oprtn.cndtnSspnIdtmt.trgtMng.web;
import java.time.LocalDate;
import java.time.Period;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import javax.annotation.Resource; import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger; import org.slf4j.Logger;
@ -21,6 +25,7 @@ import egovframework.rte.ptl.mvc.tags.ui.pagination.PaginationInfo;
import kcc.com.cmm.LoginVO; import kcc.com.cmm.LoginVO;
import kcc.com.cmm.service.EgovFileMngService; import kcc.com.cmm.service.EgovFileMngService;
import kcc.com.cmm.service.FileVO; import kcc.com.cmm.service.FileVO;
import kcc.com.cmm.util.DateUtil;
import kcc.com.cmm.util.StringUtil; import kcc.com.cmm.util.StringUtil;
import kcc.com.utl.user.service.CheckFileUtil; import kcc.com.utl.user.service.CheckFileUtil;
import kcc.com.utl.user.service.CheckLoginUtil; import kcc.com.utl.user.service.CheckLoginUtil;
@ -149,16 +154,21 @@ public class CndtnTrgtMngController {
//로그인 처리==================================== //로그인 처리====================================
//로그인 정보 가져오기 //로그인 정보 가져오기
LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기 // LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기
SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기 SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기
System.out.println("loginVO.getAuthority() :: "+ loginVO.getAuthority());
String s_oprtnLoginCheckNInfo = checkLoginUtil.oprtnCheckNInfo(model); String s_oprtnLoginCheckNInfo = checkLoginUtil.oprtnCheckNInfo(model);
if (!"".equals(s_oprtnLoginCheckNInfo)) return s_oprtnLoginCheckNInfo; if (!"".equals(s_oprtnLoginCheckNInfo)) return s_oprtnLoginCheckNInfo;
//로그인 처리==================================== //로그인 처리====================================
String userWork = this.getUserWork(request);
cndtnTrgtInfoMngVO.setSearchCondition(userWork);
//1.pageing step1 //1.pageing step1
PaginationInfo paginationInfo = this.setCndtnPagingStep1(cndtnTrgtInfoMngVO); PaginationInfo paginationInfo = this.setCndtnPagingStep1(cndtnTrgtInfoMngVO);
@ -202,6 +212,90 @@ public class CndtnTrgtMngController {
return "oprtn/cndtnSspnIdtmt/trgtList"; return "oprtn/cndtnSspnIdtmt/trgtList";
} }
/**
* @methodName : getUserWork
* @author : 이호영
* @date : 2023.11.07
* @description : 사용자 권한이 관할청 담당자일때 userWork로 관할 가져오기
* @param request
* @return
*/
private String getUserWork(HttpServletRequest request) {
String userWork = "";
HttpSession session = request.getSession();
LoginVO loginVO = (LoginVO) session.getAttribute("LoginVO");
String authority = loginVO.getAuthority();
// 관할청 담당자일때
if("ROLE_ADR_JRSDC".equals(authority)) {
userWork = loginVO.getUserWork();
}
// TODO Auto-generated method stub
return userWork;
}
@RequestMapping("/kccadr/oprtn/cndtnSspnIdtmt/trgtMngList.do")
public String trgtMngList(
@ModelAttribute("cndtnTrgtInfoMngVO") CndtnTrgtMngVO cndtnTrgtInfoMngVO
, ModelMap model
, HttpServletRequest request
) throws Exception {
//로그인 처리====================================
//로그인 정보 가져오기
LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기
SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기
System.out.println("loginVO.getAuthority() :: "+ loginVO.getAuthority());
String s_oprtnLoginCheckNInfo = checkLoginUtil.oprtnCheckNInfo(model);
if (!"".equals(s_oprtnLoginCheckNInfo)) return s_oprtnLoginCheckNInfo;
//로그인 처리====================================
//1.pageing step1
PaginationInfo paginationInfo = this.setCndtnPagingStep1(cndtnTrgtInfoMngVO);
//임시로 페이징 처리를 안하기 위해서 RecordCountPerPage 수를 10000 으로 셋팅함
//paginationInfo.setRecordCountPerPage(10000);
//2. pageing step2
cndtnTrgtInfoMngVO = this.setCndtnPagingStep2(cndtnTrgtInfoMngVO, paginationInfo);
//검색 조회
if(StringUtil.isNotEmpty(cndtnTrgtInfoMngVO.getSearchKeyword())){
String selectCondition = "";
String searchStatus = cndtnTrgtInfoMngVO.getSearchStatus();
selectCondition = "AND a."+searchStatus+" LIKE CONCAT ('%', '" +cndtnTrgtInfoMngVO.getSearchKeyword() + "', '%')";
cndtnTrgtInfoMngVO.setSearchQuery(selectCondition);
}
// List<CndtnTrgtInfoMngVO> cndtnTrgtInfoMngVOList = cndtnTrgtInfoMngService.selectPagingList(cndtnTrgtInfoMngVO);
List<CndtnTrgtMngVO> cndtnTrgtInfoMngVOList = null;
try {
cndtnTrgtInfoMngVOList = cndtnTrgtInfoMngService.selectPagingList(cndtnTrgtInfoMngVO);
} catch (Exception e) {
e.printStackTrace();
// TODO: handle exception
}
//3.pageing step3
paginationInfo = this.setCndtnPagingStep3(cndtnTrgtInfoMngVOList, paginationInfo);
model.addAttribute("paginationInfo", paginationInfo);
//대상 리스트, 페이징 정보 전달
model.addAttribute("list", cndtnTrgtInfoMngVOList);
return "oprtn/cndtnSspnIdtmt/trgtMngList";
}
/** /**
* @methodName : trgtCmpltList * @methodName : trgtCmpltList
* @author : 이호영 * @author : 이호영
@ -278,6 +372,7 @@ public class CndtnTrgtMngController {
public String cndtnEduPrcsMngReg( public String cndtnEduPrcsMngReg(
@ModelAttribute("cndtnTrgtInfoMngVO") CndtnTrgtMngVO cndtnTrgtInfoMngVO @ModelAttribute("cndtnTrgtInfoMngVO") CndtnTrgtMngVO cndtnTrgtInfoMngVO
, ModelMap model , ModelMap model
, HttpServletRequest request
) throws Exception { ) throws Exception {
//로그인 처리==================================== //로그인 처리====================================
@ -287,7 +382,9 @@ public class CndtnTrgtMngController {
if (!"".equals(s_oprtnLoginCheckNInfo)) return s_oprtnLoginCheckNInfo; if (!"".equals(s_oprtnLoginCheckNInfo)) return s_oprtnLoginCheckNInfo;
//로그인 처리==================================== //로그인 처리====================================
String userWork = this.getUserWork(request);
model.addAttribute("userWork", userWork);
return "oprtn/cndtnSspnIdtmt/trgtReg"; return "oprtn/cndtnSspnIdtmt/trgtReg";
} }
@ -338,16 +435,18 @@ public class CndtnTrgtMngController {
); //EXT, MB size and ea ); //EXT, MB size and ea
if ("ERROR".equals(s_scholSealAtchFileId)) return modelAndView; if ("ERROR".equals(s_scholSealAtchFileId)) return modelAndView;
System.out.println("s_scholSealAtchFileId :: "+ s_scholSealAtchFileId);
// 사건번호
// 형식 : - 예시로 A-서울중앙-100-23-1 경우
// A (성인/미성년 구분), 서울중앙, 100, 23, 1
// 성인 A / 미성년 Y, 검찰청명, 검찰청 고유번호, 연도, 접수번호
cndtnTrgtInfoMngVO.setReqNmbr(this.getReqNmbr(cndtnTrgtInfoMngVO));
cndtnTrgtInfoMngVO.setSspnIdtmtTrgtOrd(trgtOrdService.getNextStringId()); cndtnTrgtInfoMngVO.setSspnIdtmtTrgtOrd(trgtOrdService.getNextStringId());
cndtnTrgtInfoMngVO.setAtchFileId(s_scholSealAtchFileId); //학교장직인 첨부파일 cndtnTrgtInfoMngVO.setAtchFileId(s_scholSealAtchFileId); //학교장직인 첨부파일
cndtnTrgtInfoMngVO.setFrstRegisterId(loginVO.getUniqId()); //esntl_id cndtnTrgtInfoMngVO.setFrstRegisterId(loginVO.getUniqId()); //esntl_id
// vEPrcsDetailVO.setPrcsOrd(prcsOrd);
// vEPrcsDetailVO.setLctrDivCd("60"); //강의구분코드 VE0011 10-청소년강의, 20-성인강의, 30-체험, 50-기반강화, 60-조건부
// vEPrcsDetailVO.setUseYn("Y");
// vEPrcsDetailVO.setFrstRegisterId(loginVO.getUniqId()); //esntl_id
cndtnTrgtInfoMngService.insert(cndtnTrgtInfoMngVO); cndtnTrgtInfoMngService.insert(cndtnTrgtInfoMngVO);
@ -358,7 +457,49 @@ public class CndtnTrgtMngController {
return modelAndView; return modelAndView;
} }
// 사건번호
// 형식 : - 예시로 A-서울중앙-100-23-1 경우
// A (성인/미성년 구분), 서울중앙, 100, 23, 1
// 성인 A / 미성년 Y, 검찰청명, 검찰청 고유번호, 연도, 접수번호
private String getReqNmbr(CndtnTrgtMngVO cndtnTrgtInfoMngVO) {
//성인 미성년 구분
String adultWhether = getIsAdultInKorea(cndtnTrgtInfoMngVO.getdBirth());
String reqNmbrTemp = adultWhether+"-"+cndtnTrgtInfoMngVO.getCmptntAthrt()+"-"+LocalDate.now().getYear()+"-";
int cnt = cndtnTrgtInfoMngService.findCntreqNmber("%" + reqNmbrTemp + "%");
return adultWhether+"-"+cndtnTrgtInfoMngVO.getCmptntAthrt()+"-"+DateUtil.getStringToLocalDateYear()+"-"+(cnt+1);
}
/**
* @methodName : getIsAdultInKorea
* @author : 이호영
* @date : 2023.11.07
* @description : 성인이면 A, 미성년이면 Y
* @param birthDateString
* @return
*/
public static String getIsAdultInKorea(String birthDateString) {
String returnData = "Y";
// 생년월일 포맷 정의 (예시: "yyyy-MM-dd")
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyyMMdd");
// 문자열로부터 LocalDate 객체 생성
LocalDate birthDate = LocalDate.parse(birthDateString, formatter);
// 현재 날짜 얻기
LocalDate now = LocalDate.now();
// 생년월일과 현재 날짜 사이의 기간 계산
Period period = Period.between(birthDate, now);
if(period.getYears() >= 19) {
returnData="A";
}
// 나이가 19세 이상인지 확인
return returnData;
}
/** /**
* 조건부기소유예과정 등록 * 조건부기소유예과정 등록
*/ */
@ -451,7 +592,7 @@ public class CndtnTrgtMngController {
} }
/** /**
* 조건부기소유예과정 상세화면 * 대상자목록
*/ */
@RequestMapping("/kccadr/oprtn/cndtnSspnIdtmt/trgtDetail.do") @RequestMapping("/kccadr/oprtn/cndtnSspnIdtmt/trgtDetail.do")
public String trgtDetail( public String trgtDetail(
@ -482,6 +623,38 @@ public class CndtnTrgtMngController {
return "oprtn/cndtnSspnIdtmt/trgtDetail"; return "oprtn/cndtnSspnIdtmt/trgtDetail";
} }
/**
* 대상자목록
*/
@RequestMapping("/kccadr/oprtn/cndtnSspnIdtmt/trgtMngDetail.do")
public String trgtMngDetail(
@ModelAttribute("cndtnTrgtInfoMngVO") CndtnTrgtMngVO cndtnTrgtInfoMngVO
, ModelMap model
, HttpServletRequest request
) throws Exception {
//로그인 처리====================================
//로그인 정보 가져오기
LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기
SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기
//로그인 처리====================================
//과정 조회
CndtnTrgtMngVO cndtnTrgtInfoVO = cndtnTrgtInfoMngService.selectDetail(cndtnTrgtInfoMngVO);
model.addAttribute("info", cndtnTrgtInfoVO);
//파일 정보 가져오기
FileVO fileVO = new FileVO();
fileVO.setAtchFileId(cndtnTrgtInfoVO.getAtchFileId());
List<FileVO> result = fileService.selectFileInfs(fileVO);
model.addAttribute("fileList", result);
model.addAttribute("fileListCnt", result.size());
return "oprtn/cndtnSspnIdtmt/trgtMngDetail";
}
/** /**
* 조건부기소유예과정 수료자 상세화면 * 조건부기소유예과정 수료자 상세화면
*/ */
@ -556,6 +729,37 @@ public class CndtnTrgtMngController {
} }
@RequestMapping("/kccadr/oprtn/cndtnSspnIdtmt/trgtMngMdfy.do")
public String trgtMngMdfy(
@ModelAttribute("cndtnTrgtInfoMngVO") CndtnTrgtMngVO cndtnTrgtInfoMngVO
, ModelMap model
, HttpServletRequest request
) throws Exception {
//로그인 처리====================================
//로그인 정보 가져오기
LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기
SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기
//로그인 처리====================================
//과정 조회
CndtnTrgtMngVO cndtnTrgtInfoVO = cndtnTrgtInfoMngService.selectDetail(cndtnTrgtInfoMngVO);
model.addAttribute("info", cndtnTrgtInfoVO);
//파일 정보 가져오기
FileVO fileVO = new FileVO();
fileVO.setAtchFileId(cndtnTrgtInfoVO.getAtchFileId());
List<FileVO> result = fileService.selectFileInfs(fileVO);
model.addAttribute("fileList", result);
model.addAttribute("fileListCnt", result.size());
return "oprtn/cndtnSspnIdtmt/trgtMngMdfy";
}

View File

@ -1,402 +1,401 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sqlMap PUBLIC "-//iBATIS.com//DTD SQL Map 2.0//EN" "http://www.ibatis.com/dtd/sql-map-2.dtd"> <!DOCTYPE sqlMap PUBLIC "-//iBATIS.com//DTD SQL Map 2.0//EN" "http://www.ibatis.com/dtd/sql-map-2.dtd">
<sqlMap namespace="LoginUsr"> <sqlMap namespace="LoginUsr">
<typeAlias alias="egovMap" type="egovframework.rte.psl.dataaccess.util.EgovMap"/> <typeAlias alias="egovMap" type="egovframework.rte.psl.dataaccess.util.EgovMap"/>
<typeAlias alias="loginVO" type="kcc.com.cmm.LoginVO"/> <typeAlias alias="loginVO" type="kcc.com.cmm.LoginVO"/>
<!-- 로그인 처리를 위한 resultMap --> <!-- 로그인 처리를 위한 resultMap -->
<resultMap id="login" class="kcc.com.cmm.LoginVO"> <resultMap id="login" class="kcc.com.cmm.LoginVO">
<result property="id" column="id" columnIndex="1"/> <result property="id" column="id" columnIndex="1"/>
<result property="name" column="name" columnIndex="2"/> <result property="name" column="name" columnIndex="2"/>
<result property="ihidNum" column="ihidNum" columnIndex="3"/> <result property="ihidNum" column="ihidNum" columnIndex="3"/>
<result property="email" column="email" columnIndex="4"/> <result property="email" column="email" columnIndex="4"/>
<result property="password" column="password" columnIndex="5"/> <result property="password" column="password" columnIndex="5"/>
<result property="userSe" column="userSe" columnIndex="6"/> <result property="userSe" column="userSe" columnIndex="6"/>
<result property="orgnztId" column="orgnztId" columnIndex="7"/> <result property="orgnztId" column="orgnztId" columnIndex="7"/>
<result property="uniqId" column="uniqId" columnIndex="8"/> <result property="uniqId" column="uniqId" columnIndex="8"/>
<result property="passMiss" column="passMiss" columnIndex="9"/> <result property="passMiss" column="passMiss" columnIndex="9"/>
<result property="emplyrSttusCode" column="emplyrSttusCode" columnIndex="10"/> <result property="emplyrSttusCode" column="emplyrSttusCode" columnIndex="10"/>
<result property="membCelnum" column="membCelnum" columnIndex="11"/> <result property="membCelnum" column="membCelnum" columnIndex="11"/>
<result property="membBirth" column="membBirth" columnIndex="12"/> <result property="membBirth" column="membBirth" columnIndex="12"/>
</resultMap> </resultMap>
<!-- SSO용 ESNTL_ID를 이용한 로그인처리 (210818 이준호) GNR -> 일반회원, USR -> 업무담당자 --> <!-- SSO용 ESNTL_ID를 이용한 로그인처리 (210818 이준호) GNR -> 일반회원, USR -> 업무담당자 -->
<select id="loginDAO.actionLogin" resultMap="login"> <select id="loginDAO.actionLogin" resultMap="login">
<!-- 일반회원 --> <!-- 일반회원 -->
<isNotNull property="userSe"> <isNotNull property="userSe">
<isEqual property="userSe" compareValue="GNR"> <isEqual property="userSe" compareValue="GNR">
SELECT mber_id AS id SELECT mber_id AS id
, mber_nm AS name , mber_nm AS name
, password AS password , password AS password
, ihidNum AS ihidNum , ihidNum AS ihidNum
, mber_email_adres AS email , mber_email_adres AS email
, 'GNR' AS userSe , 'GNR' AS userSe
, '-' AS orgnztId , '-' AS orgnztId
, ESNTL_ID AS uniqId , ESNTL_ID AS uniqId
, 0 AS passMiss , 0 AS passMiss
, mber_sttus AS emplyrSttusCode , mber_sttus AS emplyrSttusCode
, mbtlnum AS membCelnum , mbtlnum AS membCelnum
, birth_day AS membBirth , birth_day AS membBirth
FROM lettngnrlmber a
FROM lettngnrlmber a WHERE mber_id = #id#
WHERE mber_id = #id# AND PASSWORD = #password#
AND PASSWORD = #password# <isEmpty property="statusAll">
<isEmpty property="statusAll"> AND emplyr_sttus_code = 'P'
AND emplyr_sttus_code = 'P' </isEmpty>
</isEmpty> </isEqual>
</isEqual> <!-- 업무사용자 -->
<!-- 업무사용자 --> <isEqual property="userSe" compareValue="USR">
<isEqual property="userSe" compareValue="USR"> SELECT EMPLYR_ID AS id
SELECT EMPLYR_ID AS id , USER_NM AS name
, USER_NM AS name , PASSWORD AS password
, PASSWORD AS password , IHIDNUM AS ihidNum
, IHIDNUM AS ihidNum , EMAIL_ADRES AS email
, EMAIL_ADRES AS email , 'USR' AS userSe
, 'USR' AS userSe , ORGNZT_ID AS orgnztId
, ORGNZT_ID AS orgnztId , ESNTL_ID AS uniqId
, ESNTL_ID AS uniqId , PASS_MISS AS passMiss
, PASS_MISS AS passMiss , EMPLYR_STTUS_CODE AS emplyrSttusCode
, EMPLYR_STTUS_CODE AS emplyrSttusCode , mbtlnum AS membCelnum
, mbtlnum AS membCelnum , '' AS membBirth
, '' AS membBirth FROM LETTNEMPLYRINFO a
FROM LETTNEMPLYRINFO a WHERE EMPLYR_ID = #id#
WHERE EMPLYR_ID = #id# AND PASSWORD = #password#
AND PASSWORD = #password# <isEmpty property="statusAll">
<isEmpty property="statusAll"> AND emplyr_sttus_code = 'P'
AND emplyr_sttus_code = 'P' </isEmpty>
</isEmpty> </isEqual>
</isEqual> </isNotNull>
</isNotNull> </select>
</select>
<!-- 개발자 아이디 선택용 -->
<!-- 개발자 아이디 선택용 --> <select id="loginDAO.actionLoginDev" resultMap="login">
<select id="loginDAO.actionLoginDev" resultMap="login"> <!-- 일반회원 -->
<!-- 일반회원 --> <isNotNull property="userSe">
<isNotNull property="userSe"> <isEqual property="userSe" compareValue="GNR">
<isEqual property="userSe" compareValue="GNR"> SELECT mber_id AS id
SELECT mber_id AS id , mber_nm AS name
, mber_nm AS name , password AS password
, password AS password , ihidNum AS ihidNum
, ihidNum AS ihidNum , mber_email_adres AS email
, mber_email_adres AS email , 'GNR' AS userSe
, 'GNR' AS userSe , '-' AS orgnztId
, '-' AS orgnztId , ESNTL_ID AS uniqId
, ESNTL_ID AS uniqId , 0 AS passMiss
, 0 AS passMiss , mber_sttus AS emplyrSttusCode
, mber_sttus AS emplyrSttusCode , mbtlnum AS membCelnum
, mbtlnum AS membCelnum , birth_day AS membBirth
, birth_day AS membBirth
FROM lettngnrlmber a
FROM lettngnrlmber a WHERE mber_seq = #id#
WHERE mber_seq = #id# <isEmpty property="statusAll">
<isEmpty property="statusAll"> AND emplyr_sttus_code = 'P'
AND emplyr_sttus_code = 'P' </isEmpty>
</isEmpty> </isEqual>
</isEqual> <!-- 업무사용자 -->
<!-- 업무사용자 --> <isEqual property="userSe" compareValue="USR">
<isEqual property="userSe" compareValue="USR"> SELECT EMPLYR_ID AS id
SELECT EMPLYR_ID AS id , USER_NM AS name
, USER_NM AS name , PASSWORD AS password
, PASSWORD AS password , IHIDNUM AS ihidNum
, IHIDNUM AS ihidNum , EMAIL_ADRES AS email
, EMAIL_ADRES AS email , 'USR' AS userSe
, 'USR' AS userSe , ORGNZT_ID AS orgnztId
, ORGNZT_ID AS orgnztId , ESNTL_ID AS uniqId
, ESNTL_ID AS uniqId , PASS_MISS AS passMiss
, PASS_MISS AS passMiss , EMPLYR_STTUS_CODE AS emplyrSttusCode
, EMPLYR_STTUS_CODE AS emplyrSttusCode , mbtlnum AS membCelnum
, mbtlnum AS membCelnum , '' AS membBirth
, '' AS membBirth FROM LETTNEMPLYRINFO a
FROM LETTNEMPLYRINFO a WHERE EMPLYR_ID = #id#
WHERE EMPLYR_ID = #id# <isEmpty property="statusAll">
<isEmpty property="statusAll"> AND emplyr_sttus_code = 'P'
AND emplyr_sttus_code = 'P' </isEmpty>
</isEmpty> </isEqual>
</isEqual> </isNotNull>
</isNotNull> </select>
</select>
<!-- 일반 로그인 -->
<!-- 일반 로그인 --> <!-- <select id="loginDAO.actionLogin" resultMap="login">
<!-- <select id="loginDAO.actionLogin" resultMap="login"> <isEqual property="userSe" compareValue="USR">
<isEqual property="userSe" compareValue="USR"> <![CDATA[
<![CDATA[ SELECT EMPLYR_ID AS id
SELECT EMPLYR_ID AS id , USER_NM AS name
, USER_NM AS name , PASSWORD AS password
, PASSWORD AS password , IHIDNUM AS ihidNum
, IHIDNUM AS ihidNum , EMAIL_ADRES AS email
, EMAIL_ADRES AS email , 'USR' AS userSe
, 'USR' AS userSe , ORGNZT_ID AS orgnztId
, ORGNZT_ID AS orgnztId , ESNTL_ID AS uniqId
, ESNTL_ID AS uniqId , PASS_MISS AS passMiss
, PASS_MISS AS passMiss , EMPLYR_STTUS_CODE AS emplyrSttusCode
, EMPLYR_STTUS_CODE AS emplyrSttusCode FROM LETTNEMPLYRINFO a
FROM LETTNEMPLYRINFO a WHERE EMPLYR_ID = #id#
WHERE EMPLYR_ID = #id# AND PASSWORD = #password#
AND PASSWORD = #password# ]]>
]]> <isEmpty property="statusAll">
<isEmpty property="statusAll"> AND EMPLYR_STTUS_CODE = 'P'
AND EMPLYR_STTUS_CODE = 'P' </isEmpty>
</isEmpty> </isEqual>
</isEqual> </select> -->
</select> -->
<!-- 등록된 sns 수량 조회 -->
<!-- 등록된 sns 수량 조회 --> <select id="loginDAO.selectSnsIdCount" parameterClass="loginVO" resultClass="int" >
<select id="loginDAO.selectSnsIdCount" parameterClass="loginVO" resultClass="int" > <![CDATA[
<![CDATA[ SELECT
SELECT COUNT(*) AS snsIdCnt
COUNT(*) AS snsIdCnt FROM
FROM LETTNEMPLYRINFO
LETTNEMPLYRINFO WHERE
WHERE 1=1
1=1 ]]>
]]> <isEqual property="snsSite" compareValue="kakao">
<isEqual property="snsSite" compareValue="kakao"> <![CDATA[
<![CDATA[ AND KAKAO_ID =#snsId#
AND KAKAO_ID =#snsId# ]]>
]]> </isEqual>
</isEqual> <isEqual property="snsSite" compareValue="naver">
<isEqual property="snsSite" compareValue="naver"> <![CDATA[
<![CDATA[ AND NAVER_ID =#snsId#
AND NAVER_ID =#snsId# ]]>
]]> </isEqual>
</isEqual> </select>
</select>
<!-- 등록된 sns 수량 조회 -->
<!-- 등록된 sns 수량 조회 --> <select id="loginDAO.selectSnsId" parameterClass="loginVO" resultClass="loginVO" >
<select id="loginDAO.selectSnsId" parameterClass="loginVO" resultClass="loginVO" > <![CDATA[
<![CDATA[ SELECT
SELECT EMPLYR_ID AS id ,
EMPLYR_ID AS id , USER_NM AS name ,
USER_NM AS name , PASSWORD AS password ,
PASSWORD AS password , IHIDNUM AS ihidNum ,
IHIDNUM AS ihidNum , EMAIL_ADRES AS email
EMAIL_ADRES AS email FROM
FROM LETTNEMPLYRINFO
LETTNEMPLYRINFO WHERE
WHERE 1=1
1=1 ]]>
]]> <isEqual property="snsSite" compareValue="kakao">
<isEqual property="snsSite" compareValue="kakao"> <![CDATA[
<![CDATA[ AND KAKAO_EMAIL = #snsEmail#
AND KAKAO_EMAIL = #snsEmail# ]]>
]]> </isEqual>
</isEqual> <isEqual property="snsSite" compareValue="naver">
<isEqual property="snsSite" compareValue="naver"> <![CDATA[
<![CDATA[ AND NAVER_EMAIL = #snsEmail#
AND NAVER_EMAIL = #snsEmail# ]]>
]]> </isEqual>
</isEqual> </select>
</select>
<update id="loginDAO.updateSnsLink" parameterClass="loginVO">
<update id="loginDAO.updateSnsLink" parameterClass="loginVO"> UPDATE
UPDATE LETTNEMPLYRINFO
LETTNEMPLYRINFO SET
SET <isEqual property="snsSite" compareValue="kakao">
<isEqual property="snsSite" compareValue="kakao"> KAKAO_ID = #snsId#
KAKAO_ID = #snsId# , KAKAO_EMAIL = #snsId#
, KAKAO_EMAIL = #snsId# </isEqual>
</isEqual> <isEqual property="snsSite" compareValue="kakao">
<isEqual property="snsSite" compareValue="kakao"> KAKAO_ID = #snsId#
KAKAO_ID = #snsId# , KAKAO_EMAIL = #snsId#
, KAKAO_EMAIL = #snsId# </isEqual>
</isEqual> WHERE
WHERE EMPLYR_ID = #id#
EMPLYR_ID = #id# </update>
</update>
<!-- 인증서 로그인
<!-- 인증서 로그인 <select id="loginDAO.actionCrtfctLogin" resultMap="login">
<select id="loginDAO.actionCrtfctLogin" resultMap="login"> <![CDATA[
<![CDATA[ SELECT emplyr_id AS id
SELECT emplyr_id AS id , USER_NM AS name
, USER_NM AS name , password AS password
, password AS password , ihidnum AS ihidNum
, ihidnum AS ihidNum , email_adres AS email
, email_adres AS email , 'USR' AS userSe
, 'USR' AS userSe , orgnzt_id AS orgnztId
, orgnzt_id AS orgnztId , ESNTL_ID AS uniqId
, ESNTL_ID AS uniqId FROM LETTNEMPLYRINFO
FROM LETTNEMPLYRINFO WHERE sub_dn = #dn#
WHERE sub_dn = #dn# ]]>
]]> </select>
</select> -->
--> <!-- 아이디 찾기
<!-- 아이디 찾기 <select id="loginDAO.searchId" resultMap="id">
<select id="loginDAO.searchId" resultMap="id"> <isEqual property="userSe" compareValue="GNR">
<isEqual property="userSe" compareValue="GNR"> <![CDATA[
<![CDATA[ SELECT mber_id AS id
SELECT mber_id AS id FROM LETTNGNRLMBER
FROM LETTNGNRLMBER WHERE mber_nm = #name#
WHERE mber_nm = #name# AND mber_email_adres = #email#
AND mber_email_adres = #email# AND mber_sttus = 'P'
AND mber_sttus = 'P' ]]>
]]> </isEqual>
</isEqual> <isEqual property="userSe" compareValue="ENT">
<isEqual property="userSe" compareValue="ENT"> <![CDATA[
<![CDATA[ SELECT entrprsmber_id AS id
SELECT entrprsmber_id AS id FROM LETTNENTRPRSMBER
FROM LETTNENTRPRSMBER WHERE cmpny_nm = #name#
WHERE cmpny_nm = #name# AND applcnt_email_adres = #email#
AND applcnt_email_adres = #email# AND entrprs_mber_sttus = 'P'
AND entrprs_mber_sttus = 'P' ]]>
]]> </isEqual>
</isEqual> <isEqual property="userSe" compareValue="USR">
<isEqual property="userSe" compareValue="USR"> <![CDATA[
<![CDATA[ SELECT emplyr_id AS id
SELECT emplyr_id AS id FROM LETTNEMPLYRINFO
FROM LETTNEMPLYRINFO WHERE USER_NM = #name#
WHERE USER_NM = #name# AND email_adres = #email#
AND email_adres = #email# AND emplyr_sttus_code = 'P'
AND emplyr_sttus_code = 'P' ]]>
]]> </isEqual>
</isEqual> </select>
</select> -->
--> <!-- 비밀번호 찾기
<!-- 비밀번호 찾기 <select id="loginDAO.searchPassword" resultMap="password">
<select id="loginDAO.searchPassword" resultMap="password"> <isEqual property="userSe" compareValue="GNR">
<isEqual property="userSe" compareValue="GNR"> <![CDATA[
<![CDATA[ SELECT password AS password
SELECT password AS password FROM LETTNGNRLMBER
FROM LETTNGNRLMBER WHERE mber_id = #id#
WHERE mber_id = #id# AND mber_nm = #name#
AND mber_nm = #name# AND mber_email_adres = #email#
AND mber_email_adres = #email# AND password_hint = #passwordHint#
AND password_hint = #passwordHint# AND password_cnsr = #passwordCnsr#
AND password_cnsr = #passwordCnsr# AND mber_sttus = 'P'
AND mber_sttus = 'P' ]]>
]]> </isEqual>
</isEqual> <isEqual property="userSe" compareValue="ENT">
<isEqual property="userSe" compareValue="ENT"> <![CDATA[
<![CDATA[ SELECT entrprs_mber_password AS password
SELECT entrprs_mber_password AS password FROM LETTNENTRPRSMBER
FROM LETTNENTRPRSMBER WHERE entrprsmber_id = #id#
WHERE entrprsmber_id = #id# AND cmpny_nm = #name#
AND cmpny_nm = #name# AND applcnt_email_adres = #email#
AND applcnt_email_adres = #email# AND entrprs_mber_password_hint = #passwordHint#
AND entrprs_mber_password_hint = #passwordHint# AND entrprs_mber_password_cnsr = #passwordCnsr#
AND entrprs_mber_password_cnsr = #passwordCnsr# AND entrprs_mber_sttus = 'P'
AND entrprs_mber_sttus = 'P' ]]>
]]> </isEqual>
</isEqual> <isEqual property="userSe" compareValue="USR">
<isEqual property="userSe" compareValue="USR"> <![CDATA[
<![CDATA[ SELECT password AS password
SELECT password AS password FROM LETTNEMPLYRINFO
FROM LETTNEMPLYRINFO WHERE emplyr_id = #id#
WHERE emplyr_id = #id# AND USER_NM = #name#
AND USER_NM = #name# AND email_adres = #email#
AND email_adres = #email# AND password_hint = #passwordHint#
AND password_hint = #passwordHint# AND password_cnsr = #passwordCnsr#
AND password_cnsr = #passwordCnsr# AND emplyr_sttus_code = 'P'
AND emplyr_sttus_code = 'P' ]]>
]]> </isEqual>
</isEqual> </select>
</select> -->
--> <!-- 변경된 비밀번호를 저장
<!-- 변경된 비밀번호를 저장 <update id="loginDAO.updatePassword">
<update id="loginDAO.updatePassword"> <isEqual property="userSe" compareValue="GNR">
<isEqual property="userSe" compareValue="GNR"> <![CDATA[
<![CDATA[ UPDATE LETTNGNRLMBER
UPDATE LETTNGNRLMBER SET password = #password#
SET password = #password# WHERE mber_id = #id#
WHERE mber_id = #id# ]]>
]]> </isEqual>
</isEqual> <isEqual property="userSe" compareValue="ENT">
<isEqual property="userSe" compareValue="ENT"> <![CDATA[
<![CDATA[ UPDATE LETTNENTRPRSMBER
UPDATE LETTNENTRPRSMBER SET entrprs_mber_password = #password#
SET entrprs_mber_password = #password# WHERE entrprsmber_id = #id#
WHERE entrprsmber_id = #id# ]]>
]]> </isEqual>
</isEqual> <isEqual property="userSe" compareValue="USR">
<isEqual property="userSe" compareValue="USR"> <![CDATA[
<![CDATA[ UPDATE LETTNEMPLYRINFO
UPDATE LETTNEMPLYRINFO SET password = #password#
SET password = #password# WHERE emplyr_id = #id#
WHERE emplyr_id = #id# ]]>
]]> </isEqual>
</isEqual> </update>
</update> -->
-->
<!-- 사용자 권한 조회 -->
<!-- 사용자 권한 조회 --> <select id="loginDAO.getUserAuth" parameterClass="loginVO" resultClass="loginVO" >
<select id="loginDAO.getUserAuth" parameterClass="loginVO" resultClass="loginVO" > <![CDATA[
<![CDATA[ SELECT A.SCRTY_DTRMN_TRGET_ID id, A.AUTHOR_CODE AUTHORITY
SELECT A.SCRTY_DTRMN_TRGET_ID id, A.AUTHOR_CODE AUTHORITY FROM LETTNEMPLYRSCRTYESTBS A, COMVNUSERMASTER B
FROM LETTNEMPLYRSCRTYESTBS A, COMVNUSERMASTER B WHERE A.SCRTY_DTRMN_TRGET_ID = B.ESNTL_ID
WHERE A.SCRTY_DTRMN_TRGET_ID = B.ESNTL_ID AND B.USER_ID = #id#
AND B.USER_ID = #id# ]]>
]]> </select>
</select>
<!-- 일반 로그인 사이트별-->
<!-- 일반 로그인 사이트별--> <select id="loginDAO.siteActionLogin" resultMap="login">
<select id="loginDAO.siteActionLogin" resultMap="login"> <isEqual property="userSe" compareValue="USR">
<isEqual property="userSe" compareValue="USR"> <![CDATA[
<![CDATA[ SELECT EMPLYR_ID AS id
SELECT EMPLYR_ID AS id , USER_NM AS name
, USER_NM AS name , PASSWORD AS password
, PASSWORD AS password , IHIDNUM AS ihidNum
, IHIDNUM AS ihidNum , EMAIL_ADRES AS email
, EMAIL_ADRES AS email , 'USR' AS userSe
, 'USR' AS userSe , ORGNZT_ID AS orgnztId
, ORGNZT_ID AS orgnztId , ESNTL_ID AS uniqId
, ESNTL_ID AS uniqId , PASS_MISS AS passMiss
, PASS_MISS AS passMiss , EMPLYR_STTUS_CODE AS emplyrSttusCode
, EMPLYR_STTUS_CODE AS emplyrSttusCode FROM LETTNEMPLYRINFO a
FROM LETTNEMPLYRINFO a WHERE EMPLYR_ID = #id#
WHERE EMPLYR_ID = #id# AND PASSWORD = #password#
AND PASSWORD = #password# AND EMPLYR_STTUS_CODE = 'P'
AND EMPLYR_STTUS_CODE = 'P' ]]>
]]> <isEmpty property="statusAll">
<isEmpty property="statusAll"> AND EMPLYR_STTUS_CODE = 'P'
AND EMPLYR_STTUS_CODE = 'P' </isEmpty>
</isEmpty> </isEqual>
</isEqual> </select>
</select>
<!-- 유저 권한 목록 조회 by USER_ID -->
<!-- 유저 권한 목록 조회 by USER_ID --> <select id="loginDAO.selectAuthorities" resultClass="EgovMap">
<select id="loginDAO.selectAuthorities" resultClass="EgovMap"> <![CDATA[
<![CDATA[ /* WITH AA AS ( */
/* WITH AA AS ( */ SELECT AUTHOR_CODE FROM LETTNEMPLYRSCRTYESTBS
SELECT AUTHOR_CODE FROM LETTNEMPLYRSCRTYESTBS WHERE SCRTY_DTRMN_TRGET_ID =
WHERE SCRTY_DTRMN_TRGET_ID = (SELECT ESNTL_ID FROM COMVNUSERMASTER WHERE USER_ID = (
(SELECT ESNTL_ID FROM COMVNUSERMASTER WHERE USER_ID = ( SELECT EMPLYR_ID FROM LETTNEMPLYRINFO WHERE EMPLYR_ID = #id# /* AND EMPLYR_CONDITION = 1 */
SELECT EMPLYR_ID FROM LETTNEMPLYRINFO WHERE EMPLYR_ID = #id# /* AND EMPLYR_CONDITION = 1 */ )
) )
) /*
/* )
) SELECT AUTHOR_CODE AS "authorCode" FROM AA
SELECT AUTHOR_CODE AS "authorCode" FROM AA UNION ALL
UNION ALL SELECT PARNTS_ROLE AS "authorCode" FROM LETTNROLES_HIERARCHY
SELECT PARNTS_ROLE AS "authorCode" FROM LETTNROLES_HIERARCHY CONNECT BY PRIOR PARNTS_ROLE = CHLDRN_ROLE
CONNECT BY PRIOR PARNTS_ROLE = CHLDRN_ROLE START WITH CHLDRN_ROLE = (SELECT AUTHOR_CODE FROM AA)
START WITH CHLDRN_ROLE = (SELECT AUTHOR_CODE FROM AA) */
*/ ]]>
]]> </select>
</select>
<update id="loginDAO.updatePassMissPlus" parameterClass="loginVO">
<update id="loginDAO.updatePassMissPlus" parameterClass="loginVO"> UPDATE LETTNEMPLYRINFO
UPDATE LETTNEMPLYRINFO SET PASS_MISS = PASS_MISS+1
SET PASS_MISS = PASS_MISS+1 WHERE EMPLYR_ID = #id#
WHERE EMPLYR_ID = #id# </update>
</update>
<update id="loginDAO.updatePassMissReset" parameterClass="loginVO">
<update id="loginDAO.updatePassMissReset" parameterClass="loginVO"> UPDATE LETTNEMPLYRINFO
UPDATE LETTNEMPLYRINFO SET PASS_MISS = 0
SET PASS_MISS = 0 WHERE EMPLYR_ID = #id#
WHERE EMPLYR_ID = #id# </update>
</update>
<update id="loginDAO.updateEmplyrSttusCode" parameterClass="loginVO">
<update id="loginDAO.updateEmplyrSttusCode" parameterClass="loginVO"> UPDATE LETTNEMPLYRINFO
UPDATE LETTNEMPLYRINFO SET EMPLYR_STTUS_CODE = #emplyrSttusCode#
SET EMPLYR_STTUS_CODE = #emplyrSttusCode# <isEqual property="emplyrSttusCode" compareValue="D"> /**삭제의 경우 삭제 일시 넣어줌 */
<isEqual property="emplyrSttusCode" compareValue="D"> /**삭제의 경우 삭제 일시 넣어줌 */ , WITHDRAW_DE = now()
, WITHDRAW_DE = now() </isEqual>
</isEqual> <isNotEqual property="emplyrSttusCode" compareValue="D"> /**삭제 아닌경우 삭제 일시 없애줌 */
<isNotEqual property="emplyrSttusCode" compareValue="D"> /**삭제 아닌경우 삭제 일시 없애줌 */ , WITHDRAW_DE = null
, WITHDRAW_DE = null </isNotEqual>
</isNotEqual> WHERE EMPLYR_ID = #id#
WHERE EMPLYR_ID = #id# </update>
</update> </sqlMap>
</sqlMap>

View File

@ -1,494 +1,501 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sqlMap PUBLIC "-//iBATIS.com//DTD SQL Map 2.0//EN" "http://www.ibatis.com/dtd/sql-map-2.dtd"> <!DOCTYPE sqlMap PUBLIC "-//iBATIS.com//DTD SQL Map 2.0//EN" "http://www.ibatis.com/dtd/sql-map-2.dtd">
<sqlMap namespace="LoginUsr"> <sqlMap namespace="LoginUsr">
<typeAlias alias="egovMap" type="egovframework.rte.psl.dataaccess.util.EgovMap"/> <typeAlias alias="egovMap" type="egovframework.rte.psl.dataaccess.util.EgovMap"/>
<typeAlias alias="loginVO" type="kcc.com.cmm.LoginVO"/> <typeAlias alias="loginVO" type="kcc.com.cmm.LoginVO"/>
<!-- 로그인 처리를 위한 resultMap --> <!-- 로그인 처리를 위한 resultMap -->
<resultMap id="login" class="kcc.com.cmm.LoginVO"> <resultMap id="login" class="kcc.com.cmm.LoginVO">
<result property="id" column="id" columnIndex="1"/> <result property="id" column="id" columnIndex="1"/>
<result property="name" column="name" columnIndex="2"/> <result property="name" column="name" columnIndex="2"/>
<result property="ihidNum" column="ihidNum" columnIndex="3"/> <result property="ihidNum" column="ihidNum" columnIndex="3"/>
<result property="email" column="email" columnIndex="4"/> <result property="email" column="email" columnIndex="4"/>
<result property="password" column="password" columnIndex="5"/> <result property="password" column="password" columnIndex="5"/>
<result property="userSe" column="userSe" columnIndex="6"/> <result property="userSe" column="userSe" columnIndex="6"/>
<result property="orgnztId" column="orgnztId" columnIndex="7"/> <result property="orgnztId" column="orgnztId" columnIndex="7"/>
<result property="uniqId" column="uniqId" columnIndex="8"/> <result property="uniqId" column="uniqId" columnIndex="8"/>
<result property="passMiss" column="passMiss" columnIndex="9"/> <result property="passMiss" column="passMiss" columnIndex="9"/>
<result property="emplyrSttusCode" column="emplyrSttusCode" columnIndex="10"/> <result property="emplyrSttusCode" column="emplyrSttusCode" columnIndex="10"/>
<result property="membCelnum" column="membCelnum" columnIndex="11"/> <result property="membCelnum" column="membCelnum" columnIndex="11"/>
<result property="membBirth" column="membBirth" columnIndex="12"/> <result property="membBirth" column="membBirth" columnIndex="12"/>
</resultMap> <result property="userWork" column="userWork" columnIndex="13"/>
</resultMap>
<!-- SSO용 ESNTL_ID를 이용한 로그인처리 (210818 이준호) GNR -> 일반회원, USR -> 업무담당자 -->
<select id="loginDAO.actionLogin" resultMap="login"> <!-- SSO용 ESNTL_ID를 이용한 로그인처리 (210818 이준호) GNR -> 일반회원, USR -> 업무담당자 -->
<!-- 일반회원 --> <select id="loginDAO.actionLogin" resultMap="login">
<isNotNull property="userSe"> /*loginDAO.actionLogin*/
<isEqual property="userSe" compareValue="GNR"> <!-- 일반회원 -->
SELECT mber_id AS id <isNotNull property="userSe">
, mber_nm AS name <isEqual property="userSe" compareValue="GNR">
, password AS password SELECT mber_id AS id
, ihidNum AS ihidNum , mber_nm AS name
, mber_email_adres AS email , password AS password
, 'GNR' AS userSe , ihidNum AS ihidNum
, '-' AS orgnztId , mber_email_adres AS email
, ESNTL_ID AS uniqId , 'GNR' AS userSe
, 0 AS passMiss , '-' AS orgnztId
, mber_sttus AS emplyrSttusCode , ESNTL_ID AS uniqId
, mbtlnum AS membCelnum , 0 AS passMiss
, birth_day AS membBirth , mber_sttus AS emplyrSttusCode
, mbtlnum AS membCelnum
FROM lettngnrlmber a , birth_day AS membBirth
WHERE mber_id = #id#
AND PASSWORD = #password# FROM lettngnrlmber a
<isEmpty property="statusAll"> WHERE mber_id = #id#
AND emplyr_sttus_code = 'P' AND PASSWORD = #password#
</isEmpty> <isEmpty property="statusAll">
</isEqual> AND emplyr_sttus_code = 'P'
<!-- 업무사용자 --> </isEmpty>
<isEqual property="userSe" compareValue="USR"> </isEqual>
SELECT EMPLYR_ID AS id <!-- 업무사용자 -->
, USER_NM AS name <isEqual property="userSe" compareValue="USR">
, PASSWORD AS password SELECT EMPLYR_ID AS id
, IHIDNUM AS ihidNum , USER_NM AS name
, EMAIL_ADRES AS email , PASSWORD AS password
, 'USR' AS userSe , IHIDNUM AS ihidNum
, ORGNZT_ID AS orgnztId , EMAIL_ADRES AS email
, ESNTL_ID AS uniqId , 'USR' AS userSe
, PASS_MISS AS passMiss , ORGNZT_ID AS orgnztId
, EMPLYR_STTUS_CODE AS emplyrSttusCode , ESNTL_ID AS uniqId
, mbtlnum AS membCelnum , PASS_MISS AS passMiss
, '' AS membBirth , EMPLYR_STTUS_CODE AS emplyrSttusCode
FROM LETTNEMPLYRINFO a , mbtlnum AS membCelnum
WHERE EMPLYR_ID = #id# , '' AS membBirth
AND PASSWORD = #password# , user_work AS userWork
<isEmpty property="statusAll"> FROM LETTNEMPLYRINFO a
AND emplyr_sttus_code = 'P' WHERE EMPLYR_ID = #id#
</isEmpty> AND PASSWORD = #password#
</isEqual> <isEmpty property="statusAll">
</isNotNull> AND emplyr_sttus_code = 'P'
</select> </isEmpty>
</isEqual>
<!-- 개발자 아이디 선택용 --> </isNotNull>
<select id="loginDAO.actionLoginDev" resultMap="login"> </select>
<!-- 일반회원 loginDAO.actionLoginDev -->
<isNotNull property="userSe"> <!-- 개발자 아이디 선택용 -->
<isEqual property="userSe" compareValue="GNR"> <select id="loginDAO.actionLoginDev" resultMap="login">
SELECT mber_id AS id /*loginDAO.actionLoginDev*/
, mber_nm AS name <!-- 일반회원 loginDAO.actionLoginDev -->
, password AS password <isNotNull property="userSe">
, ihidNum AS ihidNum <isEqual property="userSe" compareValue="GNR">
, mber_email_adres AS email SELECT mber_id AS id
, 'GNR' AS userSe , mber_nm AS name
, '-' AS orgnztId , password AS password
, ESNTL_ID AS uniqId , ihidNum AS ihidNum
, 0 AS passMiss , mber_email_adres AS email
, mber_sttus AS emplyrSttusCode , 'GNR' AS userSe
, mbtlnum AS membCelnum , '-' AS orgnztId
, birth_day AS membBirth , ESNTL_ID AS uniqId
, 0 AS passMiss
FROM lettngnrlmber a , mber_sttus AS emplyrSttusCode
WHERE mber_seq = #id# , mbtlnum AS membCelnum
<isEmpty property="statusAll"> , birth_day AS membBirth
AND emplyr_sttus_code = 'P'
</isEmpty> FROM lettngnrlmber a
</isEqual> WHERE mber_seq = #id#
<!-- 업무사용자 --> <isEmpty property="statusAll">
<isEqual property="userSe" compareValue="USR"> AND emplyr_sttus_code = 'P'
SELECT EMPLYR_ID AS id </isEmpty>
, USER_NM AS name </isEqual>
, PASSWORD AS password <!-- 업무사용자 -->
, IHIDNUM AS ihidNum <isEqual property="userSe" compareValue="USR">
, EMAIL_ADRES AS email SELECT EMPLYR_ID AS id
, 'USR' AS userSe , USER_NM AS name
, ORGNZT_ID AS orgnztId , PASSWORD AS password
, ESNTL_ID AS uniqId , IHIDNUM AS ihidNum
, PASS_MISS AS passMiss , EMAIL_ADRES AS email
, EMPLYR_STTUS_CODE AS emplyrSttusCode , 'USR' AS userSe
, mbtlnum AS membCelnum , ORGNZT_ID AS orgnztId
, '' AS membBirth , ESNTL_ID AS uniqId
FROM LETTNEMPLYRINFO a , PASS_MISS AS passMiss
WHERE EMPLYR_ID = #id# , EMPLYR_STTUS_CODE AS emplyrSttusCode
<isEmpty property="statusAll"> , mbtlnum AS membCelnum
AND emplyr_sttus_code = 'P' , '' AS membBirth
</isEmpty> , user_work AS userWork
</isEqual> FROM LETTNEMPLYRINFO a
</isNotNull> WHERE EMPLYR_ID = #id#
</select> <isEmpty property="statusAll">
AND emplyr_sttus_code = 'P'
<!-- e배움터 연동 후 mber_seq가 아닌 mber_id로 로그인 --> </isEmpty>
<select id="loginDAO.actionLoginMberId" resultMap="login"> </isEqual>
<!-- 일반회원 loginDAO.actionLoginDev --> </isNotNull>
<isNotNull property="userSe"> </select>
<isEqual property="userSe" compareValue="GNR">
SELECT mber_id AS id <!-- e배움터 연동 후 mber_seq가 아닌 mber_id로 로그인 -->
, mber_nm AS name <select id="loginDAO.actionLoginMberId" resultMap="login">
, password AS password /*loginDAO.actionLoginMberId*/
, ihidNum AS ihidNum <!-- 일반회원 loginDAO.actionLoginDev -->
, mber_email_adres AS email <isNotNull property="userSe">
, 'GNR' AS userSe <isEqual property="userSe" compareValue="GNR">
, '-' AS orgnztId SELECT mber_id AS id
, ESNTL_ID AS uniqId , mber_nm AS name
, 0 AS passMiss , password AS password
, mber_sttus AS emplyrSttusCode , ihidNum AS ihidNum
, mbtlnum AS membCelnum , mber_email_adres AS email
, birth_day AS membBirth , 'GNR' AS userSe
, '-' AS orgnztId
FROM lettngnrlmber a , ESNTL_ID AS uniqId
WHERE mber_id = #id# , 0 AS passMiss
<isEmpty property="statusAll"> , mber_sttus AS emplyrSttusCode
AND emplyr_sttus_code = 'P' , mbtlnum AS membCelnum
</isEmpty> , birth_day AS membBirth
</isEqual>
<!-- 업무사용자 --> FROM lettngnrlmber a
<isEqual property="userSe" compareValue="USR"> WHERE mber_id = #id#
SELECT EMPLYR_ID AS id <isEmpty property="statusAll">
, USER_NM AS name AND emplyr_sttus_code = 'P'
, PASSWORD AS password </isEmpty>
, IHIDNUM AS ihidNum </isEqual>
, EMAIL_ADRES AS email <!-- 업무사용자 -->
, 'USR' AS userSe <isEqual property="userSe" compareValue="USR">
, ORGNZT_ID AS orgnztId SELECT EMPLYR_ID AS id
, ESNTL_ID AS uniqId , USER_NM AS name
, PASS_MISS AS passMiss , PASSWORD AS password
, EMPLYR_STTUS_CODE AS emplyrSttusCode , IHIDNUM AS ihidNum
, mbtlnum AS membCelnum , EMAIL_ADRES AS email
, '' AS membBirth , 'USR' AS userSe
FROM LETTNEMPLYRINFO a , ORGNZT_ID AS orgnztId
WHERE EMPLYR_ID = #id# , ESNTL_ID AS uniqId
<isEmpty property="statusAll"> , PASS_MISS AS passMiss
AND emplyr_sttus_code = 'P' , EMPLYR_STTUS_CODE AS emplyrSttusCode
</isEmpty> , mbtlnum AS membCelnum
</isEqual> , '' AS membBirth
</isNotNull> , user_work AS userWork
</select> FROM LETTNEMPLYRINFO a
WHERE EMPLYR_ID = #id#
<!-- 일반 로그인 --> <isEmpty property="statusAll">
<!-- <select id="loginDAO.actionLogin" resultMap="login"> AND emplyr_sttus_code = 'P'
<isEqual property="userSe" compareValue="USR"> </isEmpty>
<![CDATA[ </isEqual>
SELECT EMPLYR_ID AS id </isNotNull>
, USER_NM AS name </select>
, PASSWORD AS password
, IHIDNUM AS ihidNum <!-- 일반 로그인 -->
, EMAIL_ADRES AS email <!-- <select id="loginDAO.actionLogin" resultMap="login">
, 'USR' AS userSe <isEqual property="userSe" compareValue="USR">
, ORGNZT_ID AS orgnztId <![CDATA[
, ESNTL_ID AS uniqId SELECT EMPLYR_ID AS id
, PASS_MISS AS passMiss , USER_NM AS name
, EMPLYR_STTUS_CODE AS emplyrSttusCode , PASSWORD AS password
FROM LETTNEMPLYRINFO a , IHIDNUM AS ihidNum
WHERE EMPLYR_ID = #id# , EMAIL_ADRES AS email
AND PASSWORD = #password# , 'USR' AS userSe
]]> , ORGNZT_ID AS orgnztId
<isEmpty property="statusAll"> , ESNTL_ID AS uniqId
AND EMPLYR_STTUS_CODE = 'P' , PASS_MISS AS passMiss
</isEmpty> , EMPLYR_STTUS_CODE AS emplyrSttusCode
</isEqual> FROM LETTNEMPLYRINFO a
</select> --> WHERE EMPLYR_ID = #id#
AND PASSWORD = #password#
<!-- 등록된 sns 수량 조회 --> ]]>
<select id="loginDAO.selectSnsIdCount" parameterClass="loginVO" resultClass="int" > <isEmpty property="statusAll">
<![CDATA[ AND EMPLYR_STTUS_CODE = 'P'
SELECT </isEmpty>
COUNT(*) AS snsIdCnt </isEqual>
FROM </select> -->
LETTNEMPLYRINFO
WHERE <!-- 등록된 sns 수량 조회 -->
1=1 <select id="loginDAO.selectSnsIdCount" parameterClass="loginVO" resultClass="int" >
]]> <![CDATA[
<isEqual property="snsSite" compareValue="kakao"> SELECT
<![CDATA[ COUNT(*) AS snsIdCnt
AND KAKAO_ID =#snsId# FROM
]]> LETTNEMPLYRINFO
</isEqual> WHERE
<isEqual property="snsSite" compareValue="naver"> 1=1
<![CDATA[ ]]>
AND NAVER_ID =#snsId# <isEqual property="snsSite" compareValue="kakao">
]]> <![CDATA[
</isEqual> AND KAKAO_ID =#snsId#
</select> ]]>
</isEqual>
<!-- 등록된 sns 수량 조회 --> <isEqual property="snsSite" compareValue="naver">
<select id="loginDAO.selectSnsId" parameterClass="loginVO" resultClass="loginVO" > <![CDATA[
<![CDATA[ AND NAVER_ID =#snsId#
SELECT ]]>
EMPLYR_ID AS id , </isEqual>
USER_NM AS name , </select>
PASSWORD AS password ,
IHIDNUM AS ihidNum , <!-- 등록된 sns 수량 조회 -->
EMAIL_ADRES AS email <select id="loginDAO.selectSnsId" parameterClass="loginVO" resultClass="loginVO" >
FROM <![CDATA[
LETTNEMPLYRINFO SELECT
WHERE EMPLYR_ID AS id ,
1=1 USER_NM AS name ,
]]> PASSWORD AS password ,
<isEqual property="snsSite" compareValue="kakao"> IHIDNUM AS ihidNum ,
<![CDATA[ EMAIL_ADRES AS email
AND KAKAO_EMAIL = #snsEmail# FROM
]]> LETTNEMPLYRINFO
</isEqual> WHERE
<isEqual property="snsSite" compareValue="naver"> 1=1
<![CDATA[ ]]>
AND NAVER_EMAIL = #snsEmail# <isEqual property="snsSite" compareValue="kakao">
]]> <![CDATA[
</isEqual> AND KAKAO_EMAIL = #snsEmail#
</select> ]]>
</isEqual>
<update id="loginDAO.updateSnsLink" parameterClass="loginVO"> <isEqual property="snsSite" compareValue="naver">
UPDATE <![CDATA[
LETTNEMPLYRINFO AND NAVER_EMAIL = #snsEmail#
SET ]]>
<isEqual property="snsSite" compareValue="kakao"> </isEqual>
KAKAO_ID = #snsId# </select>
, KAKAO_EMAIL = #snsId#
</isEqual> <update id="loginDAO.updateSnsLink" parameterClass="loginVO">
<isEqual property="snsSite" compareValue="kakao"> UPDATE
KAKAO_ID = #snsId# LETTNEMPLYRINFO
, KAKAO_EMAIL = #snsId# SET
</isEqual> <isEqual property="snsSite" compareValue="kakao">
WHERE KAKAO_ID = #snsId#
EMPLYR_ID = #id# , KAKAO_EMAIL = #snsId#
</update> </isEqual>
<isEqual property="snsSite" compareValue="kakao">
<!-- 인증서 로그인 KAKAO_ID = #snsId#
<select id="loginDAO.actionCrtfctLogin" resultMap="login"> , KAKAO_EMAIL = #snsId#
<![CDATA[ </isEqual>
SELECT emplyr_id AS id WHERE
, USER_NM AS name EMPLYR_ID = #id#
, password AS password </update>
, ihidnum AS ihidNum
, email_adres AS email <!-- 인증서 로그인
, 'USR' AS userSe <select id="loginDAO.actionCrtfctLogin" resultMap="login">
, orgnzt_id AS orgnztId <![CDATA[
, ESNTL_ID AS uniqId SELECT emplyr_id AS id
FROM LETTNEMPLYRINFO , USER_NM AS name
WHERE sub_dn = #dn# , password AS password
]]> , ihidnum AS ihidNum
</select> , email_adres AS email
--> , 'USR' AS userSe
<!-- 아이디 찾기 , orgnzt_id AS orgnztId
<select id="loginDAO.searchId" resultMap="id"> , ESNTL_ID AS uniqId
<isEqual property="userSe" compareValue="GNR"> FROM LETTNEMPLYRINFO
<![CDATA[ WHERE sub_dn = #dn#
SELECT mber_id AS id ]]>
FROM LETTNGNRLMBER </select>
WHERE mber_nm = #name# -->
AND mber_email_adres = #email# <!-- 아이디 찾기
AND mber_sttus = 'P' <select id="loginDAO.searchId" resultMap="id">
]]> <isEqual property="userSe" compareValue="GNR">
</isEqual> <![CDATA[
<isEqual property="userSe" compareValue="ENT"> SELECT mber_id AS id
<![CDATA[ FROM LETTNGNRLMBER
SELECT entrprsmber_id AS id WHERE mber_nm = #name#
FROM LETTNENTRPRSMBER AND mber_email_adres = #email#
WHERE cmpny_nm = #name# AND mber_sttus = 'P'
AND applcnt_email_adres = #email# ]]>
AND entrprs_mber_sttus = 'P' </isEqual>
]]> <isEqual property="userSe" compareValue="ENT">
</isEqual> <![CDATA[
<isEqual property="userSe" compareValue="USR"> SELECT entrprsmber_id AS id
<![CDATA[ FROM LETTNENTRPRSMBER
SELECT emplyr_id AS id WHERE cmpny_nm = #name#
FROM LETTNEMPLYRINFO AND applcnt_email_adres = #email#
WHERE USER_NM = #name# AND entrprs_mber_sttus = 'P'
AND email_adres = #email# ]]>
AND emplyr_sttus_code = 'P' </isEqual>
]]> <isEqual property="userSe" compareValue="USR">
</isEqual> <![CDATA[
</select> SELECT emplyr_id AS id
--> FROM LETTNEMPLYRINFO
<!-- 비밀번호 찾기 WHERE USER_NM = #name#
<select id="loginDAO.searchPassword" resultMap="password"> AND email_adres = #email#
<isEqual property="userSe" compareValue="GNR"> AND emplyr_sttus_code = 'P'
<![CDATA[ ]]>
SELECT password AS password </isEqual>
FROM LETTNGNRLMBER </select>
WHERE mber_id = #id# -->
AND mber_nm = #name# <!-- 비밀번호 찾기
AND mber_email_adres = #email# <select id="loginDAO.searchPassword" resultMap="password">
AND password_hint = #passwordHint# <isEqual property="userSe" compareValue="GNR">
AND password_cnsr = #passwordCnsr# <![CDATA[
AND mber_sttus = 'P' SELECT password AS password
]]> FROM LETTNGNRLMBER
</isEqual> WHERE mber_id = #id#
<isEqual property="userSe" compareValue="ENT"> AND mber_nm = #name#
<![CDATA[ AND mber_email_adres = #email#
SELECT entrprs_mber_password AS password AND password_hint = #passwordHint#
FROM LETTNENTRPRSMBER AND password_cnsr = #passwordCnsr#
WHERE entrprsmber_id = #id# AND mber_sttus = 'P'
AND cmpny_nm = #name# ]]>
AND applcnt_email_adres = #email# </isEqual>
AND entrprs_mber_password_hint = #passwordHint# <isEqual property="userSe" compareValue="ENT">
AND entrprs_mber_password_cnsr = #passwordCnsr# <![CDATA[
AND entrprs_mber_sttus = 'P' SELECT entrprs_mber_password AS password
]]> FROM LETTNENTRPRSMBER
</isEqual> WHERE entrprsmber_id = #id#
<isEqual property="userSe" compareValue="USR"> AND cmpny_nm = #name#
<![CDATA[ AND applcnt_email_adres = #email#
SELECT password AS password AND entrprs_mber_password_hint = #passwordHint#
FROM LETTNEMPLYRINFO AND entrprs_mber_password_cnsr = #passwordCnsr#
WHERE emplyr_id = #id# AND entrprs_mber_sttus = 'P'
AND USER_NM = #name# ]]>
AND email_adres = #email# </isEqual>
AND password_hint = #passwordHint# <isEqual property="userSe" compareValue="USR">
AND password_cnsr = #passwordCnsr# <![CDATA[
AND emplyr_sttus_code = 'P' SELECT password AS password
]]> FROM LETTNEMPLYRINFO
</isEqual> WHERE emplyr_id = #id#
</select> AND USER_NM = #name#
--> AND email_adres = #email#
<!-- 변경된 비밀번호를 저장 AND password_hint = #passwordHint#
<update id="loginDAO.updatePassword"> AND password_cnsr = #passwordCnsr#
<isEqual property="userSe" compareValue="GNR"> AND emplyr_sttus_code = 'P'
<![CDATA[ ]]>
UPDATE LETTNGNRLMBER </isEqual>
SET password = #password# </select>
WHERE mber_id = #id# -->
]]> <!-- 변경된 비밀번호를 저장
</isEqual> <update id="loginDAO.updatePassword">
<isEqual property="userSe" compareValue="ENT"> <isEqual property="userSe" compareValue="GNR">
<![CDATA[ <![CDATA[
UPDATE LETTNENTRPRSMBER UPDATE LETTNGNRLMBER
SET entrprs_mber_password = #password# SET password = #password#
WHERE entrprsmber_id = #id# WHERE mber_id = #id#
]]> ]]>
</isEqual> </isEqual>
<isEqual property="userSe" compareValue="USR"> <isEqual property="userSe" compareValue="ENT">
<![CDATA[ <![CDATA[
UPDATE LETTNEMPLYRINFO UPDATE LETTNENTRPRSMBER
SET password = #password# SET entrprs_mber_password = #password#
WHERE emplyr_id = #id# WHERE entrprsmber_id = #id#
]]> ]]>
</isEqual> </isEqual>
</update> <isEqual property="userSe" compareValue="USR">
--> <![CDATA[
UPDATE LETTNEMPLYRINFO
<!-- 사용자 권한 조회 --> SET password = #password#
<select id="loginDAO.getUserAuth" parameterClass="loginVO" resultClass="loginVO" > WHERE emplyr_id = #id#
<![CDATA[ ]]>
SELECT A.SCRTY_DTRMN_TRGET_ID id, A.AUTHOR_CODE AUTHORITY </isEqual>
FROM LETTNEMPLYRSCRTYESTBS A, COMVNUSERMASTER B </update>
WHERE A.SCRTY_DTRMN_TRGET_ID = B.ESNTL_ID -->
AND B.USER_ID = #id#
]]> <!-- 사용자 권한 조회 -->
</select> <select id="loginDAO.getUserAuth" parameterClass="loginVO" resultClass="loginVO" >
<![CDATA[
<!-- 일반 로그인 사이트별--> SELECT A.SCRTY_DTRMN_TRGET_ID id, A.AUTHOR_CODE AUTHORITY
<select id="loginDAO.siteActionLogin" resultMap="login"> FROM LETTNEMPLYRSCRTYESTBS A, COMVNUSERMASTER B
<isEqual property="userSe" compareValue="USR"> WHERE A.SCRTY_DTRMN_TRGET_ID = B.ESNTL_ID
<![CDATA[ AND B.USER_ID = #id#
SELECT EMPLYR_ID AS id ]]>
, USER_NM AS name </select>
, PASSWORD AS password
, IHIDNUM AS ihidNum <!-- 일반 로그인 사이트별-->
, EMAIL_ADRES AS email <select id="loginDAO.siteActionLogin" resultMap="login">
, 'USR' AS userSe <isEqual property="userSe" compareValue="USR">
, ORGNZT_ID AS orgnztId <![CDATA[
, ESNTL_ID AS uniqId SELECT EMPLYR_ID AS id
, PASS_MISS AS passMiss , USER_NM AS name
, EMPLYR_STTUS_CODE AS emplyrSttusCode , PASSWORD AS password
FROM LETTNEMPLYRINFO a , IHIDNUM AS ihidNum
WHERE EMPLYR_ID = #id# , EMAIL_ADRES AS email
AND PASSWORD = #password# , 'USR' AS userSe
AND EMPLYR_STTUS_CODE = 'P' , ORGNZT_ID AS orgnztId
]]> , ESNTL_ID AS uniqId
<isEmpty property="statusAll"> , PASS_MISS AS passMiss
AND EMPLYR_STTUS_CODE = 'P' , EMPLYR_STTUS_CODE AS emplyrSttusCode
</isEmpty> FROM LETTNEMPLYRINFO a
</isEqual> WHERE EMPLYR_ID = #id#
</select> AND PASSWORD = #password#
AND EMPLYR_STTUS_CODE = 'P'
<!-- 유저 권한 목록 조회 by USER_ID --> ]]>
<select id="loginDAO.selectAuthorities" resultClass="EgovMap"> <isEmpty property="statusAll">
/* loginDAO.selectAuthorities */ AND EMPLYR_STTUS_CODE = 'P'
<![CDATA[ </isEmpty>
/* WITH AA AS ( */ </isEqual>
SELECT AUTHOR_CODE FROM LETTNEMPLYRSCRTYESTBS </select>
WHERE SCRTY_DTRMN_TRGET_ID =
(SELECT ESNTL_ID FROM COMVNUSERMASTER WHERE USER_ID = ( <!-- 유저 권한 목록 조회 by USER_ID -->
SELECT EMPLYR_ID FROM LETTNEMPLYRINFO WHERE EMPLYR_ID = #id# /* AND EMPLYR_CONDITION = 1 */ <select id="loginDAO.selectAuthorities" resultClass="EgovMap">
) /* loginDAO.selectAuthorities */
) <![CDATA[
/* /* WITH AA AS ( */
) SELECT AUTHOR_CODE FROM LETTNEMPLYRSCRTYESTBS
SELECT AUTHOR_CODE AS "authorCode" FROM AA WHERE SCRTY_DTRMN_TRGET_ID =
UNION ALL (SELECT ESNTL_ID FROM COMVNUSERMASTER WHERE USER_ID = (
SELECT PARNTS_ROLE AS "authorCode" FROM LETTNROLES_HIERARCHY SELECT EMPLYR_ID FROM LETTNEMPLYRINFO WHERE EMPLYR_ID = #id# /* AND EMPLYR_CONDITION = 1 */
CONNECT BY PRIOR PARNTS_ROLE = CHLDRN_ROLE )
START WITH CHLDRN_ROLE = (SELECT AUTHOR_CODE FROM AA) )
*/ /*
]]> )
</select> SELECT AUTHOR_CODE AS "authorCode" FROM AA
UNION ALL
<update id="loginDAO.updatePassMissPlus" parameterClass="loginVO"> SELECT PARNTS_ROLE AS "authorCode" FROM LETTNROLES_HIERARCHY
UPDATE LETTNEMPLYRINFO CONNECT BY PRIOR PARNTS_ROLE = CHLDRN_ROLE
SET PASS_MISS = PASS_MISS+1 START WITH CHLDRN_ROLE = (SELECT AUTHOR_CODE FROM AA)
WHERE EMPLYR_ID = #id# */
</update> ]]>
</select>
<update id="loginDAO.updatePassMissReset" parameterClass="loginVO">
UPDATE LETTNEMPLYRINFO <update id="loginDAO.updatePassMissPlus" parameterClass="loginVO">
SET PASS_MISS = 0 UPDATE LETTNEMPLYRINFO
WHERE EMPLYR_ID = #id# SET PASS_MISS = PASS_MISS+1
</update> WHERE EMPLYR_ID = #id#
</update>
<update id="loginDAO.updateEmplyrSttusCode" parameterClass="loginVO">
UPDATE LETTNEMPLYRINFO <update id="loginDAO.updatePassMissReset" parameterClass="loginVO">
SET EMPLYR_STTUS_CODE = #emplyrSttusCode# UPDATE LETTNEMPLYRINFO
<isEqual property="emplyrSttusCode" compareValue="D"> /**삭제의 경우 삭제 일시 넣어줌 */ SET PASS_MISS = 0
, WITHDRAW_DE = now() WHERE EMPLYR_ID = #id#
</isEqual> </update>
<isNotEqual property="emplyrSttusCode" compareValue="D"> /**삭제 아닌경우 삭제 일시 없애줌 */
, WITHDRAW_DE = null <update id="loginDAO.updateEmplyrSttusCode" parameterClass="loginVO">
</isNotEqual> UPDATE LETTNEMPLYRINFO
WHERE EMPLYR_ID = #id# SET EMPLYR_STTUS_CODE = #emplyrSttusCode#
</update> <isEqual property="emplyrSttusCode" compareValue="D"> /**삭제의 경우 삭제 일시 넣어줌 */
<select id="loginDAO.APIActionLogin" resultMap="login"> , WITHDRAW_DE = now()
/* 임시.*NOT_SQL_LOG.* loginDAO.APIActionLogin */ </isEqual>
SELECT mber_id AS id <isNotEqual property="emplyrSttusCode" compareValue="D"> /**삭제 아닌경우 삭제 일시 없애줌 */
, mber_nm AS name , WITHDRAW_DE = null
, password AS password </isNotEqual>
, ihidNum AS ihidNum WHERE EMPLYR_ID = #id#
, mber_email_adres AS email </update>
, 'GNR' AS userSe <select id="loginDAO.APIActionLogin" resultMap="login">
, '-' AS orgnztId /* 임시.*NOT_SQL_LOG.* loginDAO.APIActionLogin */
, ESNTL_ID AS uniqId SELECT mber_id AS id
, 0 AS passMiss , mber_nm AS name
, mber_sttus AS emplyrSttusCode , password AS password
, mbtlnum AS membCelnum , ihidNum AS ihidNum
, birth_day AS membBirth , mber_email_adres AS email
, 'GNR' AS userSe
FROM lettngnrlmber a , '-' AS orgnztId
WHERE mber_id = #id# , ESNTL_ID AS uniqId
AND PASSWORD = #password# , 0 AS passMiss
<isEmpty property="statusAll"> , mber_sttus AS emplyrSttusCode
AND mber_sttus = 'P' , mbtlnum AS membCelnum
</isEmpty> , birth_day AS membBirth
</select>
<select id="loginDAO.selectOffeduMberChk" resultClass="loginVO"> FROM lettngnrlmber a
/* 임시.*NOT_SQL_LOG.* loginDAO.selectOffeduMberChk */ WHERE mber_id = #id#
SELECT mber_id AS user_id AND PASSWORD = #password#
, mber_seq AS key <isEmpty property="statusAll">
FROM lettngnrlmber a AND mber_sttus = 'P'
WHERE mber_id = #user_id# </isEmpty>
AND mber_seq = #key# </select>
</select> <select id="loginDAO.selectOffeduMberChk" resultClass="loginVO">
/* 임시.*NOT_SQL_LOG.* loginDAO.selectOffeduMberChk */
<update id="loginDAO.updateMberSeqKeyAjax" parameterClass="loginVO"> SELECT mber_id AS user_id
/* 임시.*NOT_SQL_LOG.* loginDAO.updateMberSeqKeyAjax*/ , mber_seq AS key
UPDATE LETTNGNRLMBER FROM lettngnrlmber a
SET mber_seq = #mberSeq# WHERE mber_id = #user_id#
WHERE mber_id = #id# AND mber_seq = #key#
</update> </select>
<update id="loginDAO.updateMberSeqKeyNull" parameterClass="loginVO"> <update id="loginDAO.updateMberSeqKeyAjax" parameterClass="loginVO">
/* 임시.*NOT_SQL_LOG.* loginDAO.updateMberSeqKeyNull*/ /* 임시.*NOT_SQL_LOG.* loginDAO.updateMberSeqKeyAjax*/
UPDATE LETTNGNRLMBER UPDATE LETTNGNRLMBER
SET mber_seq = '' SET mber_seq = #mberSeq#
WHERE mber_id = #user_id# WHERE mber_id = #id#
</update> </update>
</sqlMap>
<update id="loginDAO.updateMberSeqKeyNull" parameterClass="loginVO">
/* 임시.*NOT_SQL_LOG.* loginDAO.updateMberSeqKeyNull*/
UPDATE LETTNGNRLMBER
SET mber_seq = ''
WHERE mber_id = #user_id#
</update>
</sqlMap>

View File

@ -140,6 +140,15 @@
sspn_idtmt_trgt_ord = #sspnIdtmtTrgtOrd# sspn_idtmt_trgt_ord = #sspnIdtmtTrgtOrd#
</update> </update>
<select id="cndtnTrgtInfoMngDAO.findCntreqNmber" resultClass="int" parameterClass="String">
SELECT
count(*)
FROM
vea_sspn_idmt_trgt
WHERE
req_nmbr LIKE #reqNmbrTemp# ;
</select>
<!-- 대상자 조회 후 대상자에 로그인 ID update --> <!-- 대상자 조회 후 대상자에 로그인 ID update -->
<update id="cndtnTrgtInfoMngDAO.updateUserId" parameterClass="CndtnPrcsInfoMngVO"> <update id="cndtnTrgtInfoMngDAO.updateUserId" parameterClass="CndtnPrcsInfoMngVO">
/* cndtnTrgtInfoMngDAO.updateSspnIdtmtTrgtOrd */ /* cndtnTrgtInfoMngDAO.updateSspnIdtmtTrgtOrd */
@ -168,6 +177,11 @@
AND a.EDU_STATE_CD = #eduStateCd# AND a.EDU_STATE_CD = #eduStateCd#
</isNotEmpty> </isNotEmpty>
/* 관할청 담당자를 위한 조건 */
<isNotEmpty property="searchCondition">
AND a.CMPTNT_ATHRT = #searchCondition#
</isNotEmpty>
/* 수료자 중복 리스트를 위한 조건문 */ /* 수료자 중복 리스트를 위한 조건문 */
<isNotEmpty property="trgtNm"> <isNotEmpty property="trgtNm">
AND a.TRGT_NM = #trgtNm# AND a.TRGT_NM = #trgtNm#

File diff suppressed because it is too large Load Diff

View File

@ -334,7 +334,7 @@
</tr> </tr>
</c:forEach> </c:forEach>
<c:if test="${empty list}"> <c:if test="${empty list}">
<tr><td colspan="3"><spring:message code="common.nodata.msg" /></td></tr> <tr><td colspan="11"><spring:message code="common.nodata.msg" /></td></tr>
</c:if> </c:if>
</tbody> </tbody>
</table> </table>

View File

@ -0,0 +1,367 @@
<!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;
}
</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 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/cndtnSspnIdtmt/trgtList.do'/>";
listForm.submit();
}
function fncGoDetail(sspnIdtmtTrgtOrd){
var detailForm = document.detailForm ;
detailForm.sspnIdtmtTrgtOrd.value = sspnIdtmtTrgtOrd;
detailForm.action = "<c:url value='/kccadr/oprtn/cndtnSspnIdtmt/trgtDetail.do'/>";
detailForm.submit();
}
function fncCreate() {
var listForm = document.listForm ;
listForm.action = "<c:url value='/kccadr/oprtn/cndtnSspnIdtmt/trgtReg.do'/>";
listForm.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/cndtnSspnIdtmt/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);
}
});
}
</script>
<title>교육과정관리</title>
</head>
<body>
<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>
<!-- list_top -->
<div class="list_top search-only">
<div class="list_top_1">
<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 type="button" class="btn_type08" onclick="fncGoList(); return false;">검색</button>
<!-- <button class="btn_type03" onclick="fncReset(this); return false;">초기화</button> -->
</div>
</div>
</div>
<div class="list_util">
<p class="list_util_p"><span><c:out value="${paginationInfo.totalRecordCount}" /></span>건의 접수가 검색되었습니다.</p>
<div>
<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: 10%">
<col style="width: 10%">
<col style="width: 2px">
<col style="width: 2px">
<col style="width: 2px">
<col style="width: 2px">
<col style="width: 10%">
<col style="width: 10%">
<col style="width: 10%">
<col style="width: 2px">
<col style="width: 2px">
</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>
<c:forEach var="list" items="${list}" varStatus="status">
<tr class="listCount" onclick="fncGoDetail('<c:out value="${list.sspnIdtmtTrgtOrd}"/>');" style="cursor:pointer;">
<%-- <td onclick="fncGoDetail('<c:out value="${list.sspnIdtmtTrgtOrd}"/>');" style="cursor:pointer;"> --%>
<%-- <c:out value='${list.prcsNm}'/> --%>
<!-- </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="${list.vntYear }" />형제<c:out value="${list.vntNmbr }" />
</td>
<td>
<ve:code codeId="VEA008" code="${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}">
${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="3"><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">
</div>
<div class="btn_center">
</div>
<div class="btn_right">
<button type="button" class="btn_type01" onclick="fncCreate(); return false;">등록</button>
</div>
</div>
<!-- //page -->
</div>
</div>
</div>
<!-- //cont -->
<!-- //cont -->
</form:form>
</body>
</html>

View File

@ -0,0 +1,518 @@
<!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="ve" uri="/WEB-INF/tlds/kcc_tld.tld"%>
<%@ taglib prefix="validator" uri="http://www.springmodules.org/tags/commons-validator" %>
<%
/**
* @Class Name : cndtnEduPrcsMngMdfy.jsp
* @Description : 조건부기소유예 수정
* @Modification Information
* @
* @ 수정일 수정자 수정내용
* @ ------- -------- ---------------------------
* @ 2021.12.16 조용준 최초 생성
* @author 조용주
* @since 2021.12.16
* @version 1.0
* @see
*
*/
%>
<html lang="ko">
<head>
<title>교육과정관리</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<script type="text/javascript">
$(document).ready(function() {
//파일첨부관련 설정들===============================================
$(".btn_type01").on('click', function(){
$("#file_temp").click();
});
//파일첨부관련 설정들===============================================
});
function addPro() {
var addQuest = $(".addPro_wrap");
var questLen = addQuest.children("div").length;
questLen = Number(questLen+1);
var trHtml="";
trHtml += '<div class="tbody_one">';
trHtml += '<span><span class="span_num3">'+ questLen +'</span>.</span>';
trHtml += '<div>';
trHtml += '<input type="text" name="detailPrcsNm" id="detailPrcsNm"> ';
trHtml += '<button type="button" class="table_del3" onclick="delPro(this)"><img src="${pageContext.request.contextPath}/visitEdu/adm/publish/image/content/btn_del.png"></button>';
trHtml += '</div>';
trHtml += '</div>';
addQuest.append(trHtml);
}
//삭제 버튼 클릭 시 현재 div 삭제 후 지문 숫자 재선언
function delPro(item) {
var bodyThis = $(item).closest('.tbody_one');
var tb = $(item).closest('.addPro_wrap').find('.tbody_one');
var len = $(item).closest('.addPro_wrap').children('.tbody_one').length;
var idx = bodyThis.index();
if(len == 1){
alert("세부과정은 최소1개가 존재해야합니다.");
return false;
}else{
bodyThis.remove();
for(var i=0;i<len;i++){
if(idx>i){
tb.eq(i).find('.span_num3').text(i+1);
}else{
tb.eq(i).find('.span_num3').text(i);
}
}
}
}
function fncAddUser(){
var obj = $(".memList:first").clone(true);
obj.children('input').val('')
/*
var len = $(".memList").length;
$.each(obj.find("input"), function(idx, objInput){
objInput.name = objInput.name.replace(/\[.*\]/,'['+(len+1)+']');
console.log(objInput.name);
if(objInput.name.indexOf("memGrade") < 0){
objInput.value = '';
}
});
obj.find("button").attr("id", obj.find("button").attr("id").replace(/[0-9]/gi, len+2));
obj.find("tr:last > td").text("");
*/
$(".memList:last").after(obj);
}
function fncDelUser(obj){
if($(".memList").length <= 1){
alert("담당자은 최소1개가 존재해야합니다.");
}else{
$(obj).closest("td").remove();
}
}
function fncSave(){
if(fn_valChk())
{
return false;
}
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 = "<c:url value='/kccadr/oprtn/cndtnSspnIdtmt/trgtMdfyAjax.do'/>";
$.ajax({
type:"POST",
enctype: 'multipart/form-data',
url: url,
data: data,
dataType:'json',
async: false,
processData: false,
contentType: false,
cache: false,
success:function(returnData){
if(returnData.result == "success"){
alert("수정되었습니다.");
fncGoList();
}
},
error:function(request , status, error){
alert("code:"+request.status+"\n"+"message:"+request.responseText+"\n"+"error:"+error);
}
});
}
}
function fn_valChk(){
// 의뢰일 검사
if($("#reqPnttm").val().trim() == ""){
alert("의뢰일을 입력해주세요.");
$("#reqPnttm").focus();
return true;
}
// 사건번호 검사
if($("input[name='vntNmbr']").val().trim() == ""){
alert("사건번호를 입력해주세요.");
$("input[name='vntNmbr']").focus();
return true;
}
// 관할청 검사
if($("input[name='cmptntAthrt']").val()){
alert("관할청을 입력해주세요.");
$("input[name='cmptntAthrt']").focus();
return true;
}
if($("#sex").val() == "선택" || $("#sex").val().trim() == ""){
alert("성별을 선택해주세요.");
$("#sex").focus();
return true;
}
// 성명 검사
if($("input[name='trgtNm']").val().trim() == ""){
alert("성명을 입력해주세요.");
$("input[name='trgtNm']").focus();
return true;
}
// 생년월일 검사
if($("#dBirth").val().trim() == ""){
alert("생년월일을 입력해주세요.");
$("#dBirth").focus();
return true;
}
// 의뢰번호 검사
if($("input[name='reqNmbr']").val().trim() == ""){
alert("의뢰번호를 입력해주세요.");
$("input[name='reqNmbr']").focus();
return true;
}
// 의뢰상태 검사
/* if($("#reqStateCd").val().trim() == ""){
alert("의뢰상태를 입력해주세요.");
$("input[name='reqStateCd']").focus();
return true;
} */
// 교육상태 검사
/* if($("input[name='eduStateCd']").val().trim() == ""){
alert("교육상태를 입력해주세요.");
$("input[name='eduStateCd']").focus();
return true;
}
*/
// 검사명 검사
if($("input[name='prsctrNm']").val().trim() == ""){
alert("검사명을 입력해주세요.");
$("input[name='prsctrNm']").focus();
return true;
}
// 주소 검사
if($("#post").val().trim() == "" || $("#addr").val().trim() == ""){
alert("주소를 입력해주세요.");
$("#post").focus();
return true;
}
return false; // 모든 검사를 통과하면 false 반환
}
function fncGoList(){
var listForm = document.listForm ;
listForm.action = "<c:url value='/kccadr/oprtn/cndtnSspnIdtmt/trgtList.do'/>";
listForm.submit();
}
/* 파일등록 */
var _fileIdx = 0;
var _fileForm2 = new Array();
function handleFileUpload(files,obj) //업로드 function
{
var limitsize = 20*1024*1024; //파일 제한 체크(1개, 20MB)
for (var i = 0; i < files.length; i++){
if(files[i].size > limitsize){
alert(files[i].name+"파일 사이즈가"+getStrFileSize(files[i].size)+"로 20MB이하만 업로드 가능합니다.");
return ;
}
}
for (var i = 0; i < files.length; i++)
{
var fd = new FormData();
fd.append('file', files[i]);
var tmpObj = new Object();
tmpObj.name = "file_" + _fileIdx;
tmpObj.fileObj = files[i];
_fileForm2.push(tmpObj);
sendFileToServer(fd, obj, files[i], _fileIdx);
_fileIdx++;
var totalfileSize = 0;
$('.totalfileCount').text($('.item_file_size').length) ;
$('.item_file_size').each(function(){
totalfileSize += $(this).val()*1 ;
});
$('.totalfileSize').text(getStrFileSize(totalfileSize)) ;
}
}
</script>
</head>
<body>
<form:form id="listForm" name="listForm" commandName="vEPrcsDetailVO" method="post">
</form:form>
<form:form id="createForm" name="createForm" commandName="vEPrcsDetailVO" method="post">
<input type="hidden" name="sspnIdtmtTrgtOrd" value="<c:out value='${info.sspnIdtmtTrgtOrd}' />"/>
<input type="hidden" name="atchFileId" value="<c:out value='${info.atchFileId}' />" />
<!-- cont -->
<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>
<li><span class="cur_nav">대상자 수정</span></li>
</ul>
</div>
<!-- //cont_tit -->
<div class="cont">
<!-- list_상세 -->
<div class="tb_tit01">
<p>대상자 수정</p>
</div>
<div class="tb_type02">
<table>
<colgroup>
<col style="width: 210px;">
<col style="width: auto;">
<col style="width: 210px;">
<col style="width: auto;">
</colgroup>
<tbody>
<tr>
<th scope="row">의뢰일</th>
<td>
<div id="calendar">
<div class="calendar_wrap">
<c:set var="reqPnttm" value="${fn:substring(info.reqPnttm, 0, 10)}" />
<input type="text" class="calendar" placeholder="의뢰일" title="의뢰일 선택" id="reqPnttm" name="reqPnttm" value="<c:out value="${reqPnttm }" />" />
</div>
</div>
</td>
</tr>
<tr>
<th scope="row">사건번호</th>
<td>
<input type="text" name="vntYear" style="width: 150px;margin-right: 10px;" value="<c:out value="${info.vntYear }" />"/>형제
<input type="text" name="vntNmbr" style="width: 150px;margin-left: 10px;" value="<c:out value="${info.vntNmbr }" />"/>
</td>
</tr>
<tr>
<th scope="row">관할청</th>
<td>
<ve:select codeId="VEA008" name="cmptntAthrt" id="cmptntAthrt" css="class='sel_type1'"
selectedText="${info.cmptntAthrt }" defaultValue=""
defaultText='선택'
/>
</td>
</tr>
<tr>
<th scope="row">성별</th>
<td>
<%-- <c:set var="reqPnttm" value="<ve:code codeId="COM014" code="${info.sex }"/>" /> --%>
<ve:select codeId="COM014" name="sex" id="sex" css="class='sel_type1'"
selectedValue="${info.sex }" defaultValue=""
defaultText='선택'
/>
</td>
<th scope="row">연락처</th>
<td>
<input type="text" name="clphone" id="clphone" placeholder="00000000000" maxlength="11" value="<c:out value="${info.clphone }" />" />
</td>
</tr>
<tr>
<th scope="row">성명</th>
<td>
<input type="text" name="trgtNm" value="<c:out value="${info.trgtNm }" />" />
</td>
<th scope="row">생년월일</th>
<td>
<input type="text" name="dBirth" id="dBirth" placeholder="00000000" maxlength="8" value="<c:out value="${info.dBirth }" />" />
</td>
</tr>
<!-- <tr>
<th scope="row">연락처(핸드폰)</th>
<td>
<input type="text" name="clphone" />
</td>
</tr> -->
<tr>
<th scope="row">의뢰번호</th>
<td>
<input type="text" name="reqNmbr" value="<c:out value="${info.reqNmbr }" />" />
</td>
<th scope="row">의뢰상태</th>
<td>
<ve:select codeId="VEA005" name="reqStateCd" id="reqStateCd" css="class='sel_type1'"
selectedValue="${info.reqStateCd }" defaultValue=""
defaultText='선택'
/>
</td>
</tr>
<tr>
<th scope="row">교육상태</th>
<td>
<ve:select codeId="VEA002" name="eduStateCd" id="eduStateCd" css="class='sel_type1'"
selectedValue="${info.eduStateCd }" defaultValue=""
defaultText='선택'
/>
</td>
<th scope="row">검사명</th>
<td>
<input type="text" name="prsctrNm" value="<c:out value="${info.prsctrNm }" />" />
</td>
</tr>
<tr class="input_adress">
<th scope="row">
<p>주소</p>
</th>
<td colspan="3">
<label for="post" class="label">우편번호 입력</label>
<input type="text" size="20" name="post" id="post" class="adr_input" style="background-color: #eee;" value="<c:out value='${info.post}'/>" readonly>
<button class="btnType01 btn_adr_search" onclick="fn_postCode(this); return false;">우편번호 검색</button>
<div class="detail_address">
<label for="addr" class="label">주소 입력</label>
<input type="text" size="60" name="addr" id="addr" class="searchResultAddr" value="<c:out value='${info.addr}'/>" readonly>
<label for="addrDetail" class="label">나머지 주소 입력</label>
<input type="text" size="20" name="addrDetail" id="addrDetail" class="usrInsertAddr" value="<c:out value='${info.addrDetail}'/>" maxLength="100" placeholder="나머지 주소">
</div>
</td>
</tr>
<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>
</div>
<!-- //list_상세 -->
<!-- btn_wrap -->
<div class="btn_wrap btn_layout01">
<div class="btn_left">
</div>
<div class="btn_center">
</div>
<div class="btn_right">
<button type="button" class="btn_type02" onclick="fncSave(); return false;">수정</button>
<button type="button" class="btn_type03" onclick="fncGoList(); return false;">취소</button>
</div>
</div>
</div>
</div>
</div>
</form:form>
<!-- //cont -->
</body>
</html>

View File

@ -0,0 +1,458 @@
<!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="ve" uri="/WEB-INF/tlds/kcc_tld.tld"%>
<%@ taglib prefix="validator" uri="http://www.springmodules.org/tags/commons-validator" %>
<%
/**
* @Class Name : cndtnEduPrcsMngReg.jsp
* @Description : 조건부기소유예 과정 등록
* @Modification Information
* @
* @ 수정일 수정자 수정내용
* @ ------- -------- ---------------------------
* @ 2021.12.16 조용준 최초 생성
* @author 조용주
* @since 2021.12.16
* @version 1.0
* @see
*
*/
%>
<html lang="ko">
<head>
<title>교육과정관리</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<script type="text/javascript">
//세부과정 추가 버튼 클릭 시 세부과정 추가
$(document).ready(function() {
$(".btn_type01").on('click', function(){
$("#file_temp").click();
});
});
function fncSave(){
if(fn_valChk())
{
return false;
}
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";
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();
}else if(returnData.result == "fail"){
alert(returnData.message);
}
},
error:function(request , status, error){
alert("code:"+request.status+"\n"+"message:"+request.responseText+"\n"+"error:"+error);
}
});
}
}
function fn_valChk(){
// 의뢰일 검사
if($("#reqPnttm").val().trim() == ""){
alert("의뢰일을 입력해주세요.");
$("#reqPnttm").focus();
return true;
}
// 사건번호 검사
if($("input[name='vntYear']").val().trim() == ""){
alert("사건번호를 입력해주세요.");
$("input[name='vntYear']").focus();
return true;
}
// 사건번호 검사
if($("input[name='vntNmbr']").val().trim() == ""){
alert("사건번호를 입력해주세요.");
$("input[name='vntNmbr']").focus();
return true;
}
// 관할청 검사
if($("input[name='cmptntAthrt']").val()){
alert("관할청을 입력해주세요.");
$("input[name='cmptntAthrt']").focus();
return true;
}
if($("#sex").val() == "선택" || $("#sex").val().trim() == ""){
alert("성별을 선택해주세요.");
$("#sex").focus();
return true;
}
// 성명 검사
if($("input[name='trgtNm']").val().trim() == ""){
alert("성명을 입력해주세요.");
$("input[name='trgtNm']").focus();
return true;
}
// 생년월일 검사
if($("#dBirth").val().trim() == ""){
alert("생년월일을 입력해주세요.");
$("#dBirth").focus();
return true;
}
// 의뢰번호 검사
if($("input[name='reqNmbr']").val().trim() == ""){
alert("의뢰번호를 입력해주세요.");
$("input[name='reqNmbr']").focus();
return true;
}
// 의뢰상태 검사
/* if($("#reqStateCd").val().trim() == ""){
alert("의뢰상태를 입력해주세요.");
$("input[name='reqStateCd']").focus();
return true;
} */
// 교육상태 검사
/* if($("input[name='eduStateCd']").val().trim() == ""){
alert("교육상태를 입력해주세요.");
$("input[name='eduStateCd']").focus();
return true;
}
*/
// 검사명 검사
if($("input[name='prsctrNm']").val().trim() == ""){
alert("검사명을 입력해주세요.");
$("input[name='prsctrNm']").focus();
return true;
}
// 주소 검사
if($("#post").val().trim() == "" || $("#addr").val().trim() == ""){
alert("주소를 입력해주세요.");
$("#post").focus();
return true;
}
return false; // 모든 검사를 통과하면 false 반환
}
function fncGoList(){
var listForm = document.listForm ;
listForm.action = "<c:url value='/kccadr/oprtn/cndtnSspnIdtmt/trgtList.do'/>";
listForm.submit();
}
/* 파일등록 */
var _fileIdx = 0;
var _fileForm2 = new Array();
function handleFileUpload(files,obj) //업로드 function
{
console.log('files', files);
var limitsize = 20*1024*1024; //파일 제한 체크(1개, 20MB)
for (var i = 0; i < files.length; i++){
if(files[i].size > limitsize){
alert(files[i].name+"파일 사이즈가"+getStrFileSize(files[i].size)+"로 20MB이하만 업로드 가능합니다.");
return ;
}
}
for (var i = 0; i < files.length; i++)
{
var fd = new FormData();
fd.append('file', files[i]);
var tmpObj = new Object();
tmpObj.name = "file_" + _fileIdx;
tmpObj.fileObj = files[i];
_fileForm2.push(tmpObj);
sendFileToServer(fd, obj, files[i], _fileIdx);
_fileIdx++;
var totalfileSize = 0;
$('.totalfileCount').text($('.item_file_size').length) ;
$('.item_file_size').each(function(){
totalfileSize += $(this).val()*1 ;
});
$('.totalfileSize').text(getStrFileSize(totalfileSize)) ;
}
}
</script>
</head>
<body>
<form:form id="listForm" name="listForm" commandName="vEPrcsDetailVO" method="post">
</form:form>
<form:form id="createForm" name="createForm" commandName="adjustDeptManageVO" method="post">
<!-- cont -->
<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>
<li><span class="cur_nav">대상자 등록</span></li>
</ul>
</div>
<!-- //cont_tit -->
<div class="cont">
<!-- list_상세 -->
<div class="tb_tit01">
<p>대상자 등록</p>
</div>
<div class="tb_type02">
<table>
<colgroup>
<col style="width: 210px;">
<col style="width: auto;">
<col style="width: 210px;">
<col style="width: auto;">
</colgroup>
<tbody>
<tr>
<th scope="row">의뢰일</th>
<td>
<div id="calendar">
<div class="calendar_wrap">
<input type="text" class="calendar" placeholder="의뢰일" title="의뢰일 선택" id="reqPnttm" name="reqPnttm" value="">
</div>
</div>
</td>
</tr>
<tr>
<th scope="row">사건번호</th>
<td>
<input type="text" name="vntYear" style="width: 150px;margin-right: 10px;"/>형제
<input type="text" name="vntNmbr" style="width: 150px;margin-left: 10px;" />
</td>
</tr>
<tr>
<th scope="row">관할청</th>
<td>
<ve:select codeId="VEA008" name="cmptntAthrt" id="cmptntAthrt" css="class='sel_type1'"
selectedText="" defaultValue=""
defaultText='선택'
/>
</td>
</tr>
<tr>
<th scope="row">성별</th>
<td>
<ve:select codeId="COM014" name="sex" id="sex" css="class='sel_type1'"
selectedText="" defaultValue=""
defaultText='선택'
/>
</td>
<th scope="row">연락처</th>
<td>
<input type="text" name="clphone" id="clphone" placeholder="00000000000" maxlength="11"/>
</td>
</tr>
<tr>
<th scope="row">성명</th>
<td>
<input type="text" name="trgtNm" />
</td>
<th scope="row">생년월일</th>
<td>
<input type="text" name="dBirth" id="dBirth" placeholder="00000000" maxlength="8"/>
</td>
</tr>
<!-- <tr>
<th scope="row">연락처(핸드폰)</th>
<td>
<input type="text" name="clphone" />
</td>
</tr> -->
<tr>
<th scope="row">의뢰번호</th>
<td>
<input type="text" name="reqNmbr" />
</td>
<th scope="row">의뢰상태</th>
<td>
<ve:select codeId="VEA005" name="reqStateCd" id="reqStateCd" css="class='sel_type1'"
selectedText="" defaultValue=""
defaultText='선택'
/>
</td>
</tr>
<tr>
<th scope="row">교육상태</th>
<td>
교육대기
<input type="hidden" name="eduStateCd" id="eduStateCd" value="10"/>
<%-- <ve:select codeId="VEA002" name="eduStateCd" id="eduStateCd" css="class='sel_type1'"
selectedText="" defaultValue=""
defaultText='선택'
/> --%>
</td>
<th scope="row">검사명</th>
<td>
<input type="text" name="prsctrNm" />
</td>
</tr>
<tr class="input_adress">
<th scope="row">
<p>주소</p>
</th>
<td colspan="3">
<label for="post" class="label">우편번호 입력</label>
<input type="text" size="20" name="post" id="post" class="adr_input" style="background-color: #eee;" value="<c:out value='${info.post}'/>" readonly>
<button class="btnType01 btn_adr_search" onclick="fn_postCode(this); return false;">우편번호 검색</button>
<div class="detail_address">
<label for="addr" class="label">주소 입력</label>
<input type="text" size="60" name="addr" id="addr" class="searchResultAddr" value="<c:out value='${info.addr}'/>" readonly>
<label for="addrDetail" class="label">나머지 주소 입력</label>
<input type="text" size="20" name="addrDetail" id="addrDetail" class="usrInsertAddr" value="<c:out value='${info.addrDetail}'/>" maxLength="100" placeholder="나머지 주소">
</div>
</td>
</tr>
<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>
</div>
<!-- //list_상세 -->
<!-- btn_wrap -->
<div class="btn_wrap btn_layout01">
<div class="btn_left">
</div>
<div class="btn_center">
</div>
<div class="btn_right">
<button type="button" class="btn_type02" onclick="fncSave(); return false;">저장</button>
<button type="button" class="btn_type03" onclick="fncGoList(); return false;">목록</button>
</div>
</div>
</div>
</div>
</div>
</form:form>
<!-- //cont -->
</body>
</html>

View File

@ -34,6 +34,9 @@
$(".btn_type01").on('click', function(){ $(".btn_type01").on('click', function(){
$("#file_temp").click(); $("#file_temp").click();
}); });
}); });
function fncSave(){ function fncSave(){
@ -50,7 +53,8 @@
if (obj) data.append("file"+idx, obj.fileObj); if (obj) data.append("file"+idx, obj.fileObj);
}); });
$('#cmptntAthrt').prop('disabled', false);
if(confirm("저장하시겠습니까?")){ if(confirm("저장하시겠습니까?")){
var url = "${pageContext.request.contextPath}/kccadr/oprtn/cndtnSspnIdtmt/trgtRegAjax.do"; var url = "${pageContext.request.contextPath}/kccadr/oprtn/cndtnSspnIdtmt/trgtRegAjax.do";
console.log(data); console.log(data);
@ -68,13 +72,15 @@
console.log('returnData :: ', returnData); console.log('returnData :: ', returnData);
if(returnData.result == "success"){ if(returnData.result == "success"){
alert("저장되었습니다."); alert("저장되었습니다.");
fncGoList(); // fncGoList();
}else if(returnData.result == "fail"){ }else if(returnData.result == "fail"){
alert(returnData.message); alert(returnData.message);
$('#cmptntAthrt').prop('disabled', true);
} }
}, },
error:function(request , status, error){ error:function(request , status, error){
alert("code:"+request.status+"\n"+"message:"+request.responseText+"\n"+"error:"+error); alert("code:"+request.status+"\n"+"message:"+request.responseText+"\n"+"error:"+error);
$('#cmptntAthrt').prop('disabled', true);
} }
}); });
} }
@ -105,11 +111,11 @@
} }
// 관할청 검사 // 관할청 검사
if($("input[name='cmptntAthrt']").val()){ // if($("input[name='cmptntAthrt']").val()){
alert("관할청을 입력해주세요."); // alert("관할청을 입력해주세요.");
$("input[name='cmptntAthrt']").focus(); // $("input[name='cmptntAthrt']").focus();
return true; // return true;
} // }
if($("#sex").val() == "선택" || $("#sex").val().trim() == ""){ if($("#sex").val() == "선택" || $("#sex").val().trim() == ""){
alert("성별을 선택해주세요."); alert("성별을 선택해주세요.");
@ -132,11 +138,11 @@
} }
// 의뢰번호 검사 // 의뢰번호 검사
if($("input[name='reqNmbr']").val().trim() == ""){ /* if($("input[name='reqNmbr']").val().trim() == ""){
alert("의뢰번호를 입력해주세요."); alert("의뢰번호를 입력해주세요.");
$("input[name='reqNmbr']").focus(); $("input[name='reqNmbr']").focus();
return true; return true;
} } */
// 의뢰상태 검사 // 의뢰상태 검사
/* if($("#reqStateCd").val().trim() == ""){ /* if($("#reqStateCd").val().trim() == ""){
@ -271,10 +277,18 @@
<tr> <tr>
<th scope="row">관할청</th> <th scope="row">관할청</th>
<td> <td>
<ve:select codeId="VEA008" name="cmptntAthrt" id="cmptntAthrt" css="class='sel_type1'" <c:choose>
selectedText="" defaultValue="" <c:when test="${empty userWork }">
defaultText='선택' <ve:select codeId="VEA008" name="cmptntAthrt" id="cmptntAthrt" css="class='sel_type1'"
/> selectedText="" selectedValue="" defaultValue=""
defaultText='선택'
/>
</c:when>
<c:otherwise>
<ve:code codeId="VEA008" code="${userWork }"/>
<input type="hidden" name="cmptntAthrt" value="${userWork }">
</c:otherwise>
</c:choose>
</td> </td>
</tr> </tr>
<tr> <tr>
@ -308,10 +322,10 @@
</td> </td>
</tr> --> </tr> -->
<tr> <tr>
<th scope="row">의뢰번호</th> <!-- <th scope="row">의뢰번호</th>
<td> <td>
<input type="text" name="reqNmbr" /> <input type="text" name="reqNmbr" />
</td> </td> -->
<th scope="row">의뢰상태</th> <th scope="row">의뢰상태</th>
<td> <td>
<ve:select codeId="VEA005" name="reqStateCd" id="reqStateCd" css="class='sel_type1'" <ve:select codeId="VEA005" name="reqStateCd" id="reqStateCd" css="class='sel_type1'"
@ -319,6 +333,10 @@
defaultText='선택' defaultText='선택'
/> />
</td> </td>
<th scope="row">검사명</th>
<td>
<input type="text" name="prsctrNm" />
</td>
</tr> </tr>
<tr> <tr>
<th scope="row">교육상태</th> <th scope="row">교육상태</th>
@ -330,10 +348,6 @@
defaultText='선택' defaultText='선택'
/> --%> /> --%>
</td> </td>
<th scope="row">검사명</th>
<td>
<input type="text" name="prsctrNm" />
</td>
</tr> </tr>
<tr class="input_adress"> <tr class="input_adress">
<th scope="row"> <th scope="row">