Merge branch 'advc' of http://yongjoon.cho@vcs.iten.co.kr:9999/hylee/offedu into advc
This commit is contained in:
commit
0d1f1558b5
@ -228,4 +228,21 @@ public final class DateUtil {
|
||||
LocalDate date = LocalDate.parse(p_date, formatter);
|
||||
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;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@ -600,6 +600,7 @@ public class EgovLoginController {
|
||||
|
||||
// 1. 로그인 처리
|
||||
LoginVO resultVO = loginService.actionLogin(loginVO);
|
||||
System.out.println("UserWork :: "+resultVO.getUserWork());
|
||||
|
||||
if (loginService.getUserAuth(resultVO) != null) {
|
||||
resultVO.setAuthority(loginService.getUserAuth(resultVO).getAuthority());
|
||||
@ -665,7 +666,7 @@ public class EgovLoginController {
|
||||
// 2. spring security 연동
|
||||
|
||||
request.getSession().setAttribute("LoginVO", resultVO);
|
||||
|
||||
System.out.println("===============!==============");
|
||||
UsernamePasswordAuthenticationFilter springSecurity = new UsernamePasswordAuthenticationFilter();
|
||||
|
||||
ApplicationContext act = WebApplicationContextUtils.getRequiredWebApplicationContext(request.getSession().getServletContext());
|
||||
@ -1697,6 +1698,8 @@ public class EgovLoginController {
|
||||
return "redirect:/web/main/mainPage.do";
|
||||
} else if ("ROLE_VISIT".equals(user.getAuthority())) {
|
||||
return "redirect:/cmm/main/mainPage.do";
|
||||
} else if ("ROLE_ADR_JRSDC".equals(user.getAuthority())) {
|
||||
return "redirect:/kccadr/oprtn/cndtnSspnIdtmt/trgtList.do";
|
||||
} else if ("ROLE_USER_MEMBER".equals(user.getAuthority())) {
|
||||
System.out.println("비정상적인 사용자 redirect 임");
|
||||
return "redirect:/web/main/mainPage.do";
|
||||
|
||||
@ -527,6 +527,7 @@ public class EgovUserManageController {
|
||||
}
|
||||
}
|
||||
//관리자등록일 경우
|
||||
System.out.println("userManageVO.getGnrlUser() :: "+ userManageVO.getGnrlUser());
|
||||
if(userManageVO.getGnrlUser().equals("N")) {
|
||||
RedirectUrlMaker redirectUrlMaker = new RedirectUrlMaker("/uss/umt/user/EgovUserManage.do");
|
||||
return redirectUrlMaker.getRedirectUrl();
|
||||
|
||||
@ -15,6 +15,8 @@ public interface CndtnTrgtMngService {
|
||||
|
||||
void updateUserId(CndtnTrgtMngVO cndtnTrgtMngVO);
|
||||
|
||||
int findCntreqNmber(String reqNmbrTemp);
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@ -35,9 +35,11 @@ public class CndtnTrgtMngVO extends ComDefaultVO implements Serializable {
|
||||
private String cmptntAthrt; // 관할청
|
||||
private String sex; // 성별
|
||||
private String reqNmbr; // 의뢰번호
|
||||
private String reqNmbrTemp; // 의뢰번호
|
||||
private String prsctrNm; // 검사성명
|
||||
private String reqStateCd; // 의뢰상태코드
|
||||
private String prcsAplctPrdOrdCmplt;// 중복확인을 위한 신청강의 PK
|
||||
private String atchFileId;// 첨부파일 ID
|
||||
|
||||
|
||||
|
||||
@ -165,6 +167,12 @@ public class CndtnTrgtMngVO extends ComDefaultVO implements Serializable {
|
||||
public void setReqNmbr(String reqNmbr) {
|
||||
this.reqNmbr = reqNmbr;
|
||||
}
|
||||
public String getReqNmbrTemp() {
|
||||
return reqNmbrTemp;
|
||||
}
|
||||
public void setReqNmbrTemp(String reqNmbrTemp) {
|
||||
this.reqNmbrTemp = reqNmbrTemp;
|
||||
}
|
||||
public String getPrsctrNm() {
|
||||
return prsctrNm;
|
||||
}
|
||||
@ -183,6 +191,12 @@ public class CndtnTrgtMngVO extends ComDefaultVO implements Serializable {
|
||||
public void setPrcsAplctPrdOrdCmplt(String prcsAplctPrdOrdCmplt) {
|
||||
this.prcsAplctPrdOrdCmplt = prcsAplctPrdOrdCmplt;
|
||||
}
|
||||
public String getAtchFileId() {
|
||||
return atchFileId;
|
||||
}
|
||||
public void setAtchFileId(String atchFileId) {
|
||||
this.atchFileId = atchFileId;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
@ -121,5 +121,9 @@ public class CndtnTrgtMngDAO extends EgovAbstractDAO {
|
||||
return (String) select("cndtnTrgtInfoMngDAO.findByTrgtNmAndDBirthAndUserIdAndEduStateCd", cndtnTrgtInfoMngVO);
|
||||
}
|
||||
|
||||
public int findCntreqNmber(String reqNmbrTemp) {
|
||||
return (int) select("cndtnTrgtInfoMngDAO.findCntreqNmber", reqNmbrTemp);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@ -53,6 +53,11 @@ public class CndtnTrgtMngServiceImpl implements CndtnTrgtMngService {
|
||||
cndtnTrgtInfoMngDAO.updateUserId(cndtnTrgtMngVO);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int findCntreqNmber(String reqNmbrTemp) {
|
||||
return cndtnTrgtInfoMngDAO.findCntreqNmber(reqNmbrTemp);
|
||||
}
|
||||
|
||||
/*
|
||||
//C
|
||||
public void insert(VEPrcsDetailVO vEPrcsDetailVO) throws Exception {
|
||||
|
||||
@ -1,10 +1,14 @@
|
||||
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.List;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpSession;
|
||||
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.slf4j.Logger;
|
||||
@ -13,12 +17,17 @@ import org.springframework.stereotype.Controller;
|
||||
import org.springframework.ui.ModelMap;
|
||||
import org.springframework.web.bind.annotation.ModelAttribute;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.multipart.MultipartHttpServletRequest;
|
||||
import org.springframework.web.servlet.ModelAndView;
|
||||
|
||||
import egovframework.rte.fdl.idgnr.EgovIdGnrService;
|
||||
import egovframework.rte.ptl.mvc.tags.ui.pagination.PaginationInfo;
|
||||
import kcc.com.cmm.LoginVO;
|
||||
import kcc.com.cmm.service.EgovFileMngService;
|
||||
import kcc.com.cmm.service.FileVO;
|
||||
import kcc.com.cmm.util.DateUtil;
|
||||
import kcc.com.cmm.util.StringUtil;
|
||||
import kcc.com.utl.user.service.CheckFileUtil;
|
||||
import kcc.com.utl.user.service.CheckLoginUtil;
|
||||
import kcc.let.uat.uia.service.SsoLoginVO;
|
||||
import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsAplctPrdService;
|
||||
@ -85,6 +94,18 @@ public class CndtnTrgtMngController {
|
||||
//과정차시 관리
|
||||
@Resource(name = "vEPrcsAplctPrdService")
|
||||
private VEPrcsAplctPrdService vEPrcsAplctPrdService;
|
||||
|
||||
|
||||
//파일 체크 util
|
||||
@Resource(name = "checkFileUtil")
|
||||
private CheckFileUtil checkFileUtil;
|
||||
|
||||
|
||||
//파일정보의 관리
|
||||
@Resource(name = "EgovFileMngService")
|
||||
private EgovFileMngService fileService;
|
||||
|
||||
|
||||
/*
|
||||
|
||||
// 교육신청 서비스단
|
||||
@ -133,6 +154,95 @@ public class CndtnTrgtMngController {
|
||||
|
||||
//로그인 처리====================================
|
||||
//로그인 정보 가져오기
|
||||
// LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기
|
||||
SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기
|
||||
|
||||
|
||||
String s_oprtnLoginCheckNInfo = checkLoginUtil.oprtnCheckNInfo(model);
|
||||
if (!"".equals(s_oprtnLoginCheckNInfo)) return s_oprtnLoginCheckNInfo;
|
||||
|
||||
//로그인 처리====================================
|
||||
|
||||
|
||||
|
||||
|
||||
String userWork = this.getUserWork(request);
|
||||
cndtnTrgtInfoMngVO.setSearchCondition(userWork);
|
||||
|
||||
//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/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 로그인 정보 가져오기
|
||||
|
||||
@ -183,7 +293,7 @@ public class CndtnTrgtMngController {
|
||||
//대상 리스트, 페이징 정보 전달
|
||||
model.addAttribute("list", cndtnTrgtInfoMngVOList);
|
||||
|
||||
return "oprtn/cndtnSspnIdtmt/trgtList";
|
||||
return "oprtn/cndtnSspnIdtmt/trgtMngList";
|
||||
}
|
||||
|
||||
/**
|
||||
@ -262,6 +372,7 @@ public class CndtnTrgtMngController {
|
||||
public String cndtnEduPrcsMngReg(
|
||||
@ModelAttribute("cndtnTrgtInfoMngVO") CndtnTrgtMngVO cndtnTrgtInfoMngVO
|
||||
, ModelMap model
|
||||
, HttpServletRequest request
|
||||
) throws Exception {
|
||||
|
||||
//로그인 처리====================================
|
||||
@ -272,6 +383,8 @@ public class CndtnTrgtMngController {
|
||||
|
||||
//로그인 처리====================================
|
||||
|
||||
String userWork = this.getUserWork(request);
|
||||
model.addAttribute("userWork", userWork);
|
||||
|
||||
return "oprtn/cndtnSspnIdtmt/trgtReg";
|
||||
}
|
||||
@ -283,8 +396,8 @@ public class CndtnTrgtMngController {
|
||||
public ModelAndView cndtnEduPrcsMngRegAjax(
|
||||
@ModelAttribute("cndtnTrgtInfoMngVO") CndtnTrgtMngVO cndtnTrgtInfoMngVO
|
||||
, ModelMap model
|
||||
//, RedirectAttributes redirectAttributes
|
||||
, HttpServletRequest request
|
||||
, final MultipartHttpServletRequest multiRequest
|
||||
) throws Exception {
|
||||
|
||||
ModelAndView modelAndView = new ModelAndView();
|
||||
@ -305,12 +418,35 @@ public class CndtnTrgtMngController {
|
||||
SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기
|
||||
|
||||
|
||||
//step2.파일 처리====================================
|
||||
//파일 정상 처리 여부와 첨부 파일 정보
|
||||
//String atchFileId = this.takeFile(multiRequest, modelAndView, bmVO);
|
||||
//파일 제한 수량 가져오기, 없으면 기본값 사용
|
||||
int i_file_limit = checkFileUtil.getLimitCount(request); // file count
|
||||
int i_limit_size = checkFileUtil.getLimitSize(request); // file MB
|
||||
String s_file_exts = checkFileUtil.getS_exts(); // file exts
|
||||
|
||||
String s_scholSealAtchFileId = checkFileUtil.fileValCheckNdbInsert(
|
||||
multiRequest, modelAndView
|
||||
, "APLCT_" //file_name_prefix
|
||||
, s_file_exts
|
||||
, i_limit_size
|
||||
, i_file_limit
|
||||
); //EXT, MB size and ea
|
||||
|
||||
if ("ERROR".equals(s_scholSealAtchFileId)) return modelAndView;
|
||||
|
||||
|
||||
// 사건번호
|
||||
// 형식 : - 예시로 A-서울중앙-100-23-1 경우
|
||||
// A (성인/미성년 구분), 서울중앙, 100, 23, 1
|
||||
// 성인 A / 미성년 Y, 검찰청명, 검찰청 고유번호, 연도, 접수번호
|
||||
|
||||
cndtnTrgtInfoMngVO.setReqNmbr(this.getReqNmbr(cndtnTrgtInfoMngVO));
|
||||
|
||||
cndtnTrgtInfoMngVO.setSspnIdtmtTrgtOrd(trgtOrdService.getNextStringId());
|
||||
cndtnTrgtInfoMngVO.setAtchFileId(s_scholSealAtchFileId); //학교장직인 첨부파일
|
||||
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);
|
||||
|
||||
|
||||
@ -322,6 +458,48 @@ public class CndtnTrgtMngController {
|
||||
|
||||
}
|
||||
|
||||
// 사건번호
|
||||
// 형식 : - 예시로 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;
|
||||
}
|
||||
|
||||
/**
|
||||
* 조건부기소유예과정 등록
|
||||
*/
|
||||
@ -331,6 +509,7 @@ public class CndtnTrgtMngController {
|
||||
, ModelMap model
|
||||
//, RedirectAttributes redirectAttributes
|
||||
, HttpServletRequest request
|
||||
, final MultipartHttpServletRequest multiRequest
|
||||
) throws Exception {
|
||||
|
||||
ModelAndView modelAndView = new ModelAndView();
|
||||
@ -351,6 +530,56 @@ public class CndtnTrgtMngController {
|
||||
SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기
|
||||
|
||||
|
||||
//step2.첨부파일 체크 후 저장 하기
|
||||
String s_scholSealAtchFileId = "";
|
||||
s_scholSealAtchFileId = cndtnTrgtInfoMngVO.getAtchFileId();
|
||||
|
||||
//DB에서 실제 첨부파일 존재 여부 확인
|
||||
FileVO fileVO = new FileVO();
|
||||
fileVO.setAtchFileId(s_scholSealAtchFileId);
|
||||
List<FileVO> result = fileService.selectFileInfs(fileVO);
|
||||
if (result.size()<=0) {
|
||||
s_scholSealAtchFileId = "";
|
||||
}
|
||||
|
||||
|
||||
//step3.파일 처리====================================
|
||||
//파일 정상 처리 여부와 첨부 파일 정보
|
||||
//String atchFileId = this.takeFile(multiRequest, modelAndView, bmVO);
|
||||
//파일 제한 수량 가져오기, 없으면 기본값 사용
|
||||
int i_file_limit = checkFileUtil.getLimitCount(request); // file count
|
||||
int i_limit_size = checkFileUtil.getLimitSize(request); // file MB
|
||||
String s_file_exts = checkFileUtil.getS_exts(); // file exts
|
||||
|
||||
|
||||
//기존 파일 존재 여부에 따라서 insert or update 처리
|
||||
if ("".equals(s_scholSealAtchFileId)) {
|
||||
//atchFileId = this.fileValCheckNdbInsert(multiRequest, modelAndView, checkFileUtil.getS_exts(), i_limit_size, i_file_limit); //EXT, MB size and ea
|
||||
s_scholSealAtchFileId = checkFileUtil.fileValCheckNdbInsert(
|
||||
multiRequest, modelAndView
|
||||
, "APLCT_"
|
||||
, s_file_exts
|
||||
, i_limit_size
|
||||
, i_file_limit
|
||||
); //EXT, MB size and ea
|
||||
cndtnTrgtInfoMngVO.setAtchFileId(s_scholSealAtchFileId);
|
||||
}else {
|
||||
//atchFileId = this.fileValCheckNdbUpdate(multiRequest, modelAndView, checkFileUtil.getS_exts(), i_limit_size, i_file_limit, atchFileId); //EXT, MB size and ea
|
||||
s_scholSealAtchFileId = checkFileUtil.fileValCheckNdbUpdate(
|
||||
multiRequest, modelAndView
|
||||
, "APLCT_"
|
||||
, s_file_exts
|
||||
, i_limit_size
|
||||
, i_file_limit
|
||||
, s_scholSealAtchFileId
|
||||
); //EXT, MB size and ea
|
||||
}
|
||||
|
||||
if ("ERROR".equals(s_scholSealAtchFileId)) return modelAndView;
|
||||
|
||||
|
||||
|
||||
|
||||
cndtnTrgtInfoMngVO.setLastUpdusrId(loginVO.getUniqId()); //esntl_id
|
||||
cndtnTrgtInfoMngService.update(cndtnTrgtInfoMngVO);
|
||||
|
||||
@ -363,7 +592,7 @@ public class CndtnTrgtMngController {
|
||||
|
||||
}
|
||||
/**
|
||||
* 조건부기소유예과정 상세화면
|
||||
* 대상자목록
|
||||
*/
|
||||
@RequestMapping("/kccadr/oprtn/cndtnSspnIdtmt/trgtDetail.do")
|
||||
public String trgtDetail(
|
||||
@ -383,10 +612,49 @@ public class CndtnTrgtMngController {
|
||||
//과정 조회
|
||||
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/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";
|
||||
}
|
||||
/**
|
||||
* 조건부기소유예과정 수료자 상세화면
|
||||
*/
|
||||
@ -449,10 +717,49 @@ public class CndtnTrgtMngController {
|
||||
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/trgtMdfy";
|
||||
}
|
||||
|
||||
|
||||
@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";
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@ -67,7 +67,7 @@
|
||||
, #authorNm#
|
||||
, #authorDc#
|
||||
, (SELECT CAST(MAX(sort_num)+1 AS VARCHAR(2)) FROM LETTNAUTHORINFO)
|
||||
, DATE_FORMAT(NOW(), '%Y-%m-%d'))
|
||||
, TO_CHAR(SYSDATE, 'YYYY-MM-DD'))
|
||||
]]>
|
||||
</insert>
|
||||
|
||||
|
||||
@ -40,7 +40,6 @@
|
||||
, mber_sttus AS emplyrSttusCode
|
||||
, mbtlnum AS membCelnum
|
||||
, birth_day AS membBirth
|
||||
|
||||
FROM lettngnrlmber a
|
||||
WHERE mber_id = #id#
|
||||
AND PASSWORD = #password#
|
||||
|
||||
@ -20,11 +20,13 @@
|
||||
<result property="emplyrSttusCode" column="emplyrSttusCode" columnIndex="10"/>
|
||||
<result property="membCelnum" column="membCelnum" columnIndex="11"/>
|
||||
<result property="membBirth" column="membBirth" columnIndex="12"/>
|
||||
<result property="userWork" column="userWork" columnIndex="13"/>
|
||||
</resultMap>
|
||||
|
||||
|
||||
<!-- SSO용 ESNTL_ID를 이용한 로그인처리 (210818 이준호) GNR -> 일반회원, USR -> 업무담당자 -->
|
||||
<select id="loginDAO.actionLogin" resultMap="login">
|
||||
/*loginDAO.actionLogin*/
|
||||
<!-- 일반회원 -->
|
||||
<isNotNull property="userSe">
|
||||
<isEqual property="userSe" compareValue="GNR">
|
||||
@ -62,6 +64,7 @@
|
||||
, EMPLYR_STTUS_CODE AS emplyrSttusCode
|
||||
, mbtlnum AS membCelnum
|
||||
, '' AS membBirth
|
||||
, user_work AS userWork
|
||||
FROM LETTNEMPLYRINFO a
|
||||
WHERE EMPLYR_ID = #id#
|
||||
AND PASSWORD = #password#
|
||||
@ -74,6 +77,7 @@
|
||||
|
||||
<!-- 개발자 아이디 선택용 -->
|
||||
<select id="loginDAO.actionLoginDev" resultMap="login">
|
||||
/*loginDAO.actionLoginDev*/
|
||||
<!-- 일반회원 loginDAO.actionLoginDev -->
|
||||
<isNotNull property="userSe">
|
||||
<isEqual property="userSe" compareValue="GNR">
|
||||
@ -110,6 +114,7 @@
|
||||
, EMPLYR_STTUS_CODE AS emplyrSttusCode
|
||||
, mbtlnum AS membCelnum
|
||||
, '' AS membBirth
|
||||
, user_work AS userWork
|
||||
FROM LETTNEMPLYRINFO a
|
||||
WHERE EMPLYR_ID = #id#
|
||||
<isEmpty property="statusAll">
|
||||
@ -121,6 +126,7 @@
|
||||
|
||||
<!-- e배움터 연동 후 mber_seq가 아닌 mber_id로 로그인 -->
|
||||
<select id="loginDAO.actionLoginMberId" resultMap="login">
|
||||
/*loginDAO.actionLoginMberId*/
|
||||
<!-- 일반회원 loginDAO.actionLoginDev -->
|
||||
<isNotNull property="userSe">
|
||||
<isEqual property="userSe" compareValue="GNR">
|
||||
@ -157,6 +163,7 @@
|
||||
, EMPLYR_STTUS_CODE AS emplyrSttusCode
|
||||
, mbtlnum AS membCelnum
|
||||
, '' AS membBirth
|
||||
, user_work AS userWork
|
||||
FROM LETTNEMPLYRINFO a
|
||||
WHERE EMPLYR_ID = #id#
|
||||
<isEmpty property="statusAll">
|
||||
|
||||
@ -35,6 +35,7 @@
|
||||
, req_nmbr
|
||||
, prsctr_nm
|
||||
, req_state_cd
|
||||
, atch_file_id
|
||||
</sql>
|
||||
|
||||
<!-- 조회용 공통 컬럼 명 -->
|
||||
@ -62,6 +63,7 @@
|
||||
, a.req_nmbr AS reqNmbr
|
||||
, a.prsctr_nm AS prsctrNm
|
||||
, a.req_state_cd AS reqStateCd
|
||||
, a.atch_file_id AS atchFileId
|
||||
</sql>
|
||||
|
||||
|
||||
@ -93,6 +95,7 @@
|
||||
, #reqNmbr#
|
||||
, #prsctrNm#
|
||||
, #reqStateCd#
|
||||
, #atchFileId#
|
||||
)
|
||||
</insert>
|
||||
|
||||
@ -132,10 +135,20 @@
|
||||
, req_nmbr = #reqNmbr#
|
||||
, prsctr_nm = #prsctrNm#
|
||||
, req_state_cd = #reqStateCd#
|
||||
, atch_file_id = #atchFileId#
|
||||
WHERE
|
||||
sspn_idtmt_trgt_ord = #sspnIdtmtTrgtOrd#
|
||||
</update>
|
||||
|
||||
<select id="cndtnTrgtInfoMngDAO.findCntreqNmber" resultClass="int" parameterClass="String">
|
||||
SELECT
|
||||
count(*)
|
||||
FROM
|
||||
vea_sspn_idmt_trgt
|
||||
WHERE
|
||||
req_nmbr LIKE #reqNmbrTemp# ;
|
||||
|
||||
</select>
|
||||
<!-- 대상자 조회 후 대상자에 로그인 ID update -->
|
||||
<update id="cndtnTrgtInfoMngDAO.updateUserId" parameterClass="CndtnPrcsInfoMngVO">
|
||||
/* cndtnTrgtInfoMngDAO.updateSspnIdtmtTrgtOrd */
|
||||
@ -164,6 +177,11 @@
|
||||
AND a.EDU_STATE_CD = #eduStateCd#
|
||||
</isNotEmpty>
|
||||
|
||||
/* 관할청 담당자를 위한 조건 */
|
||||
<isNotEmpty property="searchCondition">
|
||||
AND a.CMPTNT_ATHRT = #searchCondition#
|
||||
</isNotEmpty>
|
||||
|
||||
/* 수료자 중복 리스트를 위한 조건문 */
|
||||
<isNotEmpty property="trgtNm">
|
||||
AND a.TRGT_NM = #trgtNm#
|
||||
|
||||
@ -950,7 +950,7 @@
|
||||
,LAST_UPDUSR_ID = #lastUpdusrId#
|
||||
<isNotEmpty property="sbmtYn">
|
||||
, SBMT_YN = #sbmtYn#
|
||||
, SBMT_PNTTM = IF(#sbmtYn# = 'Y', SYSDATE, NULL)
|
||||
, SBMT_PNTTM = CASE WHEN #sbmtYn# = 'Y' THEN SYSDATE ELSE NULL END
|
||||
</isNotEmpty>
|
||||
<isNotEmpty property="aprvlCd">
|
||||
, APRVL_CD = #aprvlCd#
|
||||
|
||||
@ -107,7 +107,7 @@
|
||||
<tr>
|
||||
<th scope="row">관할청</th>
|
||||
<td>
|
||||
<c:out value="${info.cmptntAthrt }" />
|
||||
<ve:code codeId="VEA008" code="${info.cmptntAthrt }"/>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
@ -170,6 +170,17 @@
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row">
|
||||
<p>첨부파일</p>
|
||||
</th>
|
||||
<td>
|
||||
<c:import url="/cmm/fms/selectBBSFileInfs.do" charEncoding="utf-8">
|
||||
<c:param name="param_atchFileId" value="${info.atchFileId}" />
|
||||
<c:param name="pdf_view" value="Y" />
|
||||
</c:import>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
@ -303,7 +303,7 @@
|
||||
<c:out value="${list.vntYear }" />형제<c:out value="${list.vntNmbr }" />
|
||||
</td>
|
||||
<td>
|
||||
<c:out value="${list.cmptntAthrt }" />
|
||||
<ve:code codeId="VEA008" code="${list.cmptntAthrt }"/>
|
||||
</td>
|
||||
<td>
|
||||
<c:out value="${list.dBirth }" />
|
||||
@ -334,7 +334,7 @@
|
||||
</tr>
|
||||
</c:forEach>
|
||||
<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>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
@ -29,7 +29,16 @@
|
||||
<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;
|
||||
@ -105,10 +114,17 @@
|
||||
}
|
||||
|
||||
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',
|
||||
@ -127,6 +143,7 @@
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
@ -147,7 +164,7 @@
|
||||
}
|
||||
|
||||
// 관할청 검사
|
||||
if($("input[name='cmptntAthrt']").val().trim() == ""){
|
||||
if($("input[name='cmptntAthrt']").val()){
|
||||
alert("관할청을 입력해주세요.");
|
||||
$("input[name='cmptntAthrt']").focus();
|
||||
return true;
|
||||
@ -181,11 +198,11 @@
|
||||
}
|
||||
|
||||
// 의뢰상태 검사
|
||||
if($("#reqStateCd").val().trim() == ""){
|
||||
/* if($("#reqStateCd").val().trim() == ""){
|
||||
alert("의뢰상태를 입력해주세요.");
|
||||
$("input[name='reqStateCd']").focus();
|
||||
return true;
|
||||
}
|
||||
} */
|
||||
|
||||
// 교육상태 검사
|
||||
/* if($("input[name='eduStateCd']").val().trim() == ""){
|
||||
@ -219,6 +236,39 @@
|
||||
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>
|
||||
@ -227,6 +277,7 @@
|
||||
</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">
|
||||
@ -281,7 +332,10 @@
|
||||
<tr>
|
||||
<th scope="row">관할청</th>
|
||||
<td>
|
||||
<input type="text" name="cmptntAthrt" value="<c:out value="${info.cmptntAthrt }" />" />
|
||||
<ve:select codeId="VEA008" name="cmptntAthrt" id="cmptntAthrt" css="class='sel_type1'"
|
||||
selectedText="${info.cmptntAthrt }" defaultValue=""
|
||||
defaultText='선택'
|
||||
/>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
@ -358,6 +412,87 @@
|
||||
</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>
|
||||
|
||||
367
src/main/webapp/WEB-INF/jsp/oprtn/cndtnSspnIdtmt/trgtMngList.jsp
Normal file
367
src/main/webapp/WEB-INF/jsp/oprtn/cndtnSspnIdtmt/trgtMngList.jsp
Normal 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>
|
||||
518
src/main/webapp/WEB-INF/jsp/oprtn/cndtnSspnIdtmt/trgtMngMdfy.jsp
Normal file
518
src/main/webapp/WEB-INF/jsp/oprtn/cndtnSspnIdtmt/trgtMngMdfy.jsp
Normal 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>
|
||||
458
src/main/webapp/WEB-INF/jsp/oprtn/cndtnSspnIdtmt/trgtMngReg.jsp
Normal file
458
src/main/webapp/WEB-INF/jsp/oprtn/cndtnSspnIdtmt/trgtMngReg.jsp
Normal 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>
|
||||
@ -31,22 +31,12 @@
|
||||
<script type="text/javascript">
|
||||
//세부과정 추가 버튼 클릭 시 세부과정 추가
|
||||
$(document).ready(function() {
|
||||
/* $('#dBirth').on('input', function() {
|
||||
var input = $(this).val();
|
||||
var length = input.length;
|
||||
var lastChar = input.charAt(length - 1);
|
||||
$(".btn_type01").on('click', function(){
|
||||
$("#file_temp").click();
|
||||
});
|
||||
|
||||
|
||||
// 숫자만 입력되도록 검사
|
||||
if (!lastChar.match(/[0-9]/)) {
|
||||
$(this).val(input.substring(0, length - 1));
|
||||
return;
|
||||
}
|
||||
|
||||
// 포맷 적용
|
||||
if (length === 4 || length === 7) {
|
||||
$(this).val(input + '-');
|
||||
}
|
||||
}); */
|
||||
});
|
||||
|
||||
function fncSave(){
|
||||
@ -57,11 +47,20 @@
|
||||
}
|
||||
|
||||
var data = new FormData(document.getElementById("createForm"));
|
||||
|
||||
//첨부파일 등록 처리-step2
|
||||
_fileForm2.forEach(function(obj, idx) {
|
||||
if (obj) data.append("file"+idx, obj.fileObj);
|
||||
|
||||
});
|
||||
|
||||
$('#cmptntAthrt').prop('disabled', false);
|
||||
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',
|
||||
@ -70,13 +69,18 @@
|
||||
contentType: false,
|
||||
cache: false,
|
||||
success:function(returnData){
|
||||
console.log('returnData :: ', returnData);
|
||||
if(returnData.result == "success"){
|
||||
alert("저장되었습니다.");
|
||||
fncGoList();
|
||||
// fncGoList();
|
||||
}else if(returnData.result == "fail"){
|
||||
alert(returnData.message);
|
||||
$('#cmptntAthrt').prop('disabled', true);
|
||||
}
|
||||
},
|
||||
error:function(request , status, error){
|
||||
alert("code:"+request.status+"\n"+"message:"+request.responseText+"\n"+"error:"+error);
|
||||
$('#cmptntAthrt').prop('disabled', true);
|
||||
}
|
||||
});
|
||||
}
|
||||
@ -107,11 +111,11 @@
|
||||
}
|
||||
|
||||
// 관할청 검사
|
||||
if($("input[name='cmptntAthrt']").val().trim() == ""){
|
||||
alert("관할청을 입력해주세요.");
|
||||
$("input[name='cmptntAthrt']").focus();
|
||||
return true;
|
||||
}
|
||||
// if($("input[name='cmptntAthrt']").val()){
|
||||
// alert("관할청을 입력해주세요.");
|
||||
// $("input[name='cmptntAthrt']").focus();
|
||||
// return true;
|
||||
// }
|
||||
|
||||
if($("#sex").val() == "선택" || $("#sex").val().trim() == ""){
|
||||
alert("성별을 선택해주세요.");
|
||||
@ -134,11 +138,11 @@
|
||||
}
|
||||
|
||||
// 의뢰번호 검사
|
||||
if($("input[name='reqNmbr']").val().trim() == ""){
|
||||
/* if($("input[name='reqNmbr']").val().trim() == ""){
|
||||
alert("의뢰번호를 입력해주세요.");
|
||||
$("input[name='reqNmbr']").focus();
|
||||
return true;
|
||||
}
|
||||
} */
|
||||
|
||||
// 의뢰상태 검사
|
||||
/* if($("#reqStateCd").val().trim() == ""){
|
||||
@ -179,6 +183,40 @@
|
||||
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>
|
||||
@ -239,7 +277,18 @@
|
||||
<tr>
|
||||
<th scope="row">관할청</th>
|
||||
<td>
|
||||
<input type="text" name="cmptntAthrt" />
|
||||
<c:choose>
|
||||
<c:when test="${empty userWork }">
|
||||
<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>
|
||||
</tr>
|
||||
<tr>
|
||||
@ -273,10 +322,10 @@
|
||||
</td>
|
||||
</tr> -->
|
||||
<tr>
|
||||
<th scope="row">의뢰번호</th>
|
||||
<!-- <th scope="row">의뢰번호</th>
|
||||
<td>
|
||||
<input type="text" name="reqNmbr" />
|
||||
</td>
|
||||
</td> -->
|
||||
<th scope="row">의뢰상태</th>
|
||||
<td>
|
||||
<ve:select codeId="VEA005" name="reqStateCd" id="reqStateCd" css="class='sel_type1'"
|
||||
@ -284,6 +333,10 @@
|
||||
defaultText='선택'
|
||||
/>
|
||||
</td>
|
||||
<th scope="row">검사명</th>
|
||||
<td>
|
||||
<input type="text" name="prsctrNm" />
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row">교육상태</th>
|
||||
@ -295,10 +348,6 @@
|
||||
defaultText='선택'
|
||||
/> --%>
|
||||
</td>
|
||||
<th scope="row">검사명</th>
|
||||
<td>
|
||||
<input type="text" name="prsctrNm" />
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="input_adress">
|
||||
<th scope="row">
|
||||
@ -316,6 +365,88 @@
|
||||
</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>
|
||||
|
||||
@ -215,6 +215,16 @@
|
||||
</c:choose>
|
||||
</td>
|
||||
</tr>
|
||||
<c:if test="${info.aprvlCd eq '70'}">
|
||||
<tr>
|
||||
<th scope="row">
|
||||
<p>수정요청사유</p>
|
||||
</th>
|
||||
<td colspan="3">
|
||||
<c:out value="${info.aprvlCn}"/>
|
||||
</td>
|
||||
</tr>
|
||||
</c:if>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
@ -344,13 +354,13 @@
|
||||
<tbody>
|
||||
<tr>
|
||||
<th scope="row">
|
||||
<p>대상학년</p>
|
||||
<p>대상학년/반</p>
|
||||
</th>
|
||||
<td>${info.trgtGrade}</td>
|
||||
<th scope="row">
|
||||
<%-- <th scope="row">
|
||||
<p>대상반</p>
|
||||
</th>
|
||||
<td>${info.trgtClsrm}</td>
|
||||
<td>${info.trgtClsrm}</td> --%>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row">
|
||||
|
||||
@ -305,12 +305,6 @@
|
||||
$("#trgtGrade").focus();
|
||||
return false;
|
||||
}
|
||||
if($('#trgtClsrm').val() == ''){
|
||||
alert('대상반을 입력해주세요.');
|
||||
$("#trgtClsrm").focus();
|
||||
return false;
|
||||
}
|
||||
|
||||
if($('#trgtPrsnl').val() == ''){
|
||||
alert('학생수를 입력해주세요.');
|
||||
$("#trgtPrsnl").focus();
|
||||
|
||||
@ -494,13 +494,13 @@
|
||||
<tbody>
|
||||
<tr>
|
||||
<th scope="row">
|
||||
<p>대상학년</p>
|
||||
<p>대상학년/반</p>
|
||||
</th>
|
||||
<td>${info.trgtGrade}</td>
|
||||
<th scope="row">
|
||||
<%-- <th scope="row">
|
||||
<p>대상반</p>
|
||||
</th>
|
||||
<td>${info.trgtClsrm}</td>
|
||||
<td>${info.trgtClsrm}</td> --%>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row">
|
||||
|
||||
@ -83,8 +83,8 @@
|
||||
<table>
|
||||
<colgroup>
|
||||
<col style="width: 10%;">
|
||||
<col style="width: auto;">
|
||||
<col style="width: 15%;">
|
||||
<col style="width: auto;">
|
||||
<col style="width: 15%">
|
||||
<col style="width: 20%;">
|
||||
<col style="width: 15%;">
|
||||
@ -92,8 +92,8 @@
|
||||
<thead>
|
||||
<tr>
|
||||
<th scope="col">번호</th>
|
||||
<th scope="col">운영 연도</th>
|
||||
<th scope="col">교육내용</th>
|
||||
<th scope="col">접수종료일</th>
|
||||
<th scope="col">신청일</th>
|
||||
<th scope="col">학교명</th>
|
||||
<th scope="col">처리상태</th>
|
||||
@ -108,13 +108,13 @@
|
||||
</td>
|
||||
<td>
|
||||
<a href="javascript:fncGoDetail('${list.eduAplctOrd}');" >
|
||||
${list.chrgMjr}
|
||||
<fmt:parseDate value="${list.oprtnStrtDt}" var="oprtnStrtDt" pattern="yyyyMMdd"/>
|
||||
<fmt:formatDate value="${oprtnStrtDt}" pattern="yyyy년"/>
|
||||
</a>
|
||||
</td>
|
||||
<td>
|
||||
<a href="javascript:fncGoDetail('${list.eduAplctOrd}');" >
|
||||
<fmt:parseDate value="${list.prcsEndPnttm}" var="prcsEndPnttm" pattern="yyyyMMddHHmm"/>
|
||||
<fmt:formatDate value="${prcsEndPnttm}" pattern="yyyy.MM.dd"/>
|
||||
${list.chrgMjr}
|
||||
</a>
|
||||
</td>
|
||||
<td>
|
||||
|
||||
@ -119,13 +119,6 @@
|
||||
<button type="button" title="새창열림"><img src="${pageContext.request.contextPath}/visitEdu/usr/publish/images/content/twitter_icon.png" alt="트위터 바로가기"></button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="tit_box">
|
||||
<i class="tit_box_icon1"></i>
|
||||
<div>
|
||||
<p>찾아가는 저작권 교육</p>
|
||||
<span>‘찾아가는 저작권 교육’은 저작권 교육이 필요한 <span>전국 초ㆍ중ㆍ고등학교, 청소년ㆍ아동복지ㆍ노인ㆍ장애인 기관 및 단체 등</span>에 직접 방문하여 무료로 강의를 지원하는 맞춤형 교육 서비스입니다.</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="tb_tit01">
|
||||
<div class="tb_tit01_left">
|
||||
@ -150,7 +143,7 @@
|
||||
<c:choose>
|
||||
<c:when test="${not empty info.sbmtPnttmDetail}">
|
||||
<fmt:parseDate value="${info.sbmtPnttmDetail}" var="sbmtPnttm" pattern="yyyy-MM-dd HH:mm:ss"/>
|
||||
<fmt:formatDate value="${sbmtPnttm}" pattern="yyyy-MM-dd HH시 mm분"/>
|
||||
<fmt:formatDate value="${sbmtPnttm}" pattern="yyyy-MM-dd HH:mm:ss"/>
|
||||
</c:when>
|
||||
<c:otherwise>
|
||||
-
|
||||
@ -158,12 +151,6 @@
|
||||
</c:choose>
|
||||
</td>
|
||||
|
||||
<th scope="row">
|
||||
<p>접수종료일</p>
|
||||
</th>
|
||||
<td>
|
||||
<c:out value="${endPnttm }"/>
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="trLength2">
|
||||
<th scope="row">
|
||||
@ -181,21 +168,6 @@
|
||||
</c:choose>
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="trLength2">
|
||||
<th scope="row">
|
||||
<p>접수종료일</p>
|
||||
</th>
|
||||
<td colspan="3">
|
||||
<c:choose>
|
||||
<c:when test="${not empty endPnttm}">
|
||||
<c:out value="${endPnttm }"/>
|
||||
</c:when>
|
||||
<c:otherwise>
|
||||
-
|
||||
</c:otherwise>
|
||||
</c:choose>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row">
|
||||
<p>처리상태</p>
|
||||
@ -231,6 +203,14 @@
|
||||
<td colspan="3">${info.aprvlCn}</td>
|
||||
</tr>
|
||||
</c:if>
|
||||
<c:if test="${info.aprvlCd eq VeConstants.APRVL_CD_70}">
|
||||
<tr>
|
||||
<th scope="row">
|
||||
<p>수정요청사유</p>
|
||||
</th>
|
||||
<td colspan="3">${info.aprvlCn}</td>
|
||||
</tr>
|
||||
</c:if>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
@ -283,12 +263,6 @@
|
||||
<kc:code codeId="COM014" code="${info.chrgSexCd}"/>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row">
|
||||
<p>이메일</p>
|
||||
</th>
|
||||
<td>${info.email}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row">
|
||||
<p>휴대폰</p>
|
||||
@ -300,6 +274,12 @@
|
||||
<p>전화</p>
|
||||
</th>
|
||||
<td>${info.phone}</td>
|
||||
</tr
|
||||
<tr>
|
||||
<th scope="row">
|
||||
<p>이메일</p>
|
||||
</th>
|
||||
<td>${info.email}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row">
|
||||
@ -367,26 +347,26 @@
|
||||
<tbody>
|
||||
<tr class="trLength4">
|
||||
<th scope="row">
|
||||
<p>대상학년</p>
|
||||
<p>대상학년/반</p>
|
||||
</th>
|
||||
<td>${info.trgtGrade}</td>
|
||||
<th scope="row">
|
||||
<%-- <th scope="row">
|
||||
<p>대상반</p>
|
||||
</th>
|
||||
<td>${info.trgtClsrm}</td>
|
||||
<td>${info.trgtClsrm}</td> --%>
|
||||
</tr>
|
||||
<tr class="trLength2">
|
||||
<th scope="row">
|
||||
<p>대상학년</p>
|
||||
<p>대상학년/반</p>
|
||||
</th>
|
||||
<td colspan="3">${info.trgtGrade}</td>
|
||||
</tr>
|
||||
<tr class="trLength2">
|
||||
<%-- <tr class="trLength2">
|
||||
<th scope="row">
|
||||
<p>대상반</p>
|
||||
</th>
|
||||
<td colspan="3">${info.trgtClsrm}</td>
|
||||
</tr>
|
||||
</tr> --%>
|
||||
<tr class="trLength4">
|
||||
<th scope="row">
|
||||
<p>대상학생수</p>
|
||||
|
||||
@ -124,8 +124,8 @@
|
||||
<table>
|
||||
<colgroup>
|
||||
<col style="width: 10%;">
|
||||
<col style="width: auto;">
|
||||
<col style="width: 15%;">
|
||||
<col style="width: auto;">
|
||||
<col style="width: 15%">
|
||||
<col style="width: 20%;">
|
||||
<col style="width: 15%;">
|
||||
@ -133,8 +133,8 @@
|
||||
<thead>
|
||||
<tr>
|
||||
<th scope="col">번호</th>
|
||||
<th scope="col">운영 연도</th>
|
||||
<th scope="col">교육내용</th>
|
||||
<th scope="col">접수종료일</th>
|
||||
<th scope="col">신청일</th>
|
||||
<th scope="col">학교명</th>
|
||||
<th scope="col">처리상태</th>
|
||||
@ -149,13 +149,13 @@
|
||||
</td>
|
||||
<td>
|
||||
<a href="javascript:fncGoDetail('${list.eduAplctOrd}');" >
|
||||
${list.chrgMjr}
|
||||
<fmt:parseDate value="${list.oprtnStrtDt}" var="oprtnStrtDt" pattern="yyyyMMdd"/>
|
||||
<fmt:formatDate value="${oprtnStrtDt}" pattern="yyyy년"/>
|
||||
</a>
|
||||
</td>
|
||||
<td>
|
||||
<a href="javascript:fncGoDetail('${list.eduAplctOrd}');" >
|
||||
<fmt:parseDate value="${list.prcsEndPnttm}" var="prcsEndPnttm" pattern="yyyyMMddHHmm"/>
|
||||
<fmt:formatDate value="${prcsEndPnttm}" pattern="yyyy.MM.dd"/>
|
||||
${list.chrgMjr}
|
||||
</a>
|
||||
</td>
|
||||
<td>
|
||||
|
||||
@ -168,7 +168,7 @@
|
||||
|
||||
function fncSave(type){
|
||||
|
||||
if(type == 'S'){
|
||||
if(type == 'S' || type == 'E'){
|
||||
if (!validCheck()) return;
|
||||
}
|
||||
|
||||
@ -180,6 +180,9 @@
|
||||
if(confirm("교육신청을 "+(type == 'I'? '임시저장' : '등록')+"하시겠습니까?")){
|
||||
if(type == 'I'){
|
||||
$("#sbmtYn").val("N");
|
||||
}else if(type == 'E'){
|
||||
$("#sbmtYn").val("Y");
|
||||
$("#aprvlCd").val(VeConstants.APRVL_CD_80);
|
||||
}else{
|
||||
$("#sbmtYn").val("Y");
|
||||
$("#aprvlCd").val(VeConstants.APRVL_CD_10);
|
||||
@ -394,15 +397,21 @@
|
||||
$("#trgtGrade").focus();
|
||||
return false;
|
||||
}
|
||||
if($('#trgtClsrm').val() == ''){
|
||||
/* if($('#trgtClsrm').val() == ''){
|
||||
alert('대상반을 입력해주세요.');
|
||||
$("#trgtClsrm").focus();
|
||||
return false;
|
||||
}
|
||||
} */
|
||||
|
||||
if($('#trgtPrsnl').val() == ''){
|
||||
alert('학생수를 입력해주세요.');
|
||||
alert('전체학생 수를 입력해주세요.');
|
||||
$("#trgtPrsnl").focus();
|
||||
return
|
||||
false;
|
||||
}
|
||||
if($('#needTxtbNum').val() == ''){
|
||||
alert('필요 교재 수량을 입력해주세요.');
|
||||
$("#needTxtbNum").focus();
|
||||
return false;
|
||||
}
|
||||
|
||||
@ -567,7 +576,7 @@
|
||||
}
|
||||
|
||||
$("#trgtGrade").val(info.trgtGrade);
|
||||
$("#trgtClsrm").val(info.trgtClsrm);
|
||||
/* $("#trgtClsrm").val(info.trgtClsrm); */
|
||||
$("#trgtPrsnl").val(info.trgtPrsnl);
|
||||
$("#needTxtbNum").val(info.needTxtbNum);
|
||||
|
||||
@ -687,13 +696,12 @@
|
||||
script="onFocus='this.initialSelect = this.selectedIndex;' onChange='this.selectedIndex = this.initialSelect;'"/>
|
||||
<label for="scholInsttNm" class="label">학교(기관)명 입력</label>
|
||||
<input type="text" value="${info.scholInsttNm}" size="25" readonly id="scholInsttNm" name="scholInsttNm">
|
||||
<button type="button" class="btnType01" data-tooltip="sub01_pop02" onclick="fncScholList();" title="팝업 열림">학교검색</button>
|
||||
<button type="button" class="btnType01" data-tooltip="sub01_pop02" onclick="fncScholList();" title="팝업 열림">학교검색</button> ※ 학교명이 검색되지 않을 경우, 담당자에게 연락
|
||||
<input type="hidden" size="25" title="학교명코드" id="stndrdScholCd" name="stndrdScholCd" value="${info.stndrdScholCd}">
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row">
|
||||
<p class="req_text"><span>필수입력 항목</span>*</p>
|
||||
<p>학교구분</p>
|
||||
</th>
|
||||
<td colspan="3">
|
||||
@ -785,7 +793,6 @@
|
||||
</tr>
|
||||
<tr class="input_adress">
|
||||
<th scope="row">
|
||||
<p class="req_text"><span>필수입력 항목</span>*</p>
|
||||
<p>주소</p>
|
||||
</th>
|
||||
<td colspan="3">
|
||||
@ -897,25 +904,26 @@
|
||||
<tr>
|
||||
<th scope="row">
|
||||
<p class="req_text"><span>필수입력 항목</span>*</p>
|
||||
<p>학년수</p>
|
||||
<p>대상학년/반</p>
|
||||
</th>
|
||||
<td>
|
||||
<label for="trgtGrade" class="label">대상 학년 입력</label>
|
||||
<input type="text" name="trgtGrade" id="trgtGrade" onkeyup="onlyNumber(this);" maxlength="3" value="${info.trgtGrade}" size="20"> 학년
|
||||
<input type="text" name="trgtGrade" id="trgtGrade" maxlength="20" value="${info.trgtGrade}" size="20">
|
||||
</td>
|
||||
<th scope="row">
|
||||
<!-- 231107 학년과 대상 통합 요청 -->
|
||||
<%--<th scope="row">
|
||||
<p class="req_text"><span>필수입력 항목</span>*</p>
|
||||
<p>대상 반</p>
|
||||
</th>
|
||||
<td>
|
||||
<label for="trgtClsrm" class="label">대상 반 입력</label>
|
||||
<input type="text" name="trgtClsrm" id="trgtClsrm" value="${info.trgtClsrm}" title="교육인원" size="20"> 반
|
||||
</td>
|
||||
</td> --%>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row">
|
||||
<p class="req_text"><span>필수입력 항목</span>*</p>
|
||||
<p>학생수</p>
|
||||
<p>전체학생 수</p>
|
||||
</th>
|
||||
<td>
|
||||
<label for="trgtPrsnl" class="label">학생 수 입력</label>
|
||||
@ -964,10 +972,11 @@
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row">
|
||||
<p class="req_text"><span>필수입력 항목</span>*</p>
|
||||
<p>필요 교재 수량</p>
|
||||
</th>
|
||||
<td>
|
||||
<label for="trgtGrade" class="label">필요 교재 수량 입력</label>
|
||||
<label for="needTxtbNum" class="label">필요 교재 수량 입력</label>
|
||||
<input type="text" name="needTxtbNum" id="needTxtbNum" onkeyup="onlyNumber(this);" value="${info.trgtPrsnlReal}" title="전체 교육인원" size="20" maxlength="4">
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -71,26 +71,26 @@
|
||||
<tbody>
|
||||
<tr class="trLength4">
|
||||
<th scope="row">
|
||||
<p>대상학년</p>
|
||||
<p>대상학년/반</p>
|
||||
</th>
|
||||
<td>${info.trgtGrade}</td>
|
||||
<th scope="row">
|
||||
<%-- <th scope="row">
|
||||
<p>대상반</p>
|
||||
</th>
|
||||
<td>${info.trgtClsrm}</td>
|
||||
<td>${info.trgtClsrm}</td> --%>
|
||||
</tr>
|
||||
<tr class="trLength2">
|
||||
<th scope="row">
|
||||
<p>대상학년</p>
|
||||
<p>대상학년/반</p>
|
||||
</th>
|
||||
<td colspan="3">${info.trgtGrade}</td>
|
||||
</tr>
|
||||
<tr class="trLength2">
|
||||
<%-- <tr class="trLength2">
|
||||
<th scope="row">
|
||||
<p>대상반</p>
|
||||
</th>
|
||||
<td colspan="3">${info.trgtClsrm}</td>
|
||||
</tr>
|
||||
</tr> --%>
|
||||
<tr class="trLength4">
|
||||
<th scope="row">
|
||||
<p>대상학생수</p>
|
||||
|
||||
@ -492,13 +492,13 @@
|
||||
<tbody>
|
||||
<tr>
|
||||
<th scope="row">
|
||||
<p>대상학년</p>
|
||||
<p>대상학년/반</p>
|
||||
</th>
|
||||
<td>${info.trgtGrade}</td>
|
||||
<th scope="row">
|
||||
<%-- <th scope="row">
|
||||
<p>대상반</p>
|
||||
</th>
|
||||
<td>${info.trgtClsrm}</td>
|
||||
<td>${info.trgtClsrm}</td> --%>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row">
|
||||
|
||||
@ -36,6 +36,12 @@
|
||||
frm.submit();
|
||||
}
|
||||
|
||||
function goMain(){
|
||||
var frm = document.getElementById("prcsOrdForm");
|
||||
frm.action = "<c:url value='/web/main/mainPage.do'/>";
|
||||
frm.submit();
|
||||
}
|
||||
|
||||
|
||||
</script>
|
||||
<form id="prcsOrdForm" name="prcsOrdForm">
|
||||
@ -59,6 +65,7 @@
|
||||
</c:if>
|
||||
</dl>
|
||||
</div>
|
||||
<c:if test="${detailVO.checkYn eq 'Y' }">
|
||||
<div class="title">· 신청서 접수 시 유의사항</div>
|
||||
<div class="list">
|
||||
<ol>
|
||||
@ -74,6 +81,7 @@
|
||||
<li><span class="number">8.</span>선정 후 취소(신규 운영 교사 사전 연수 불참 등) 및 운영 포기교실은 차년도 참여를 제한합니다.<br>(해당 내용 학교 공문 발송 예정)</li>
|
||||
</ol>
|
||||
</div>
|
||||
</c:if>
|
||||
</div>
|
||||
<div class="pop_btn_wrap btn_layout01">
|
||||
<div class="btn_left">
|
||||
@ -82,6 +90,9 @@
|
||||
<c:if test="${detailVO.checkYn eq 'Y' }">
|
||||
<button type="button" class="btnType05" onclick="goWrite();">확인</button>
|
||||
</c:if>
|
||||
<c:if test="${detailVO.checkYn ne 'Y' }">
|
||||
<button type="button" class="btnType05" onclick="goMain();">찾아가는 저작권 교육</button>
|
||||
</c:if>
|
||||
<button type="button" class="btnType02 tooltip-close" data-focus="list_popup_close" data-focus-next="sub40_pop01">취소</button>
|
||||
</div>
|
||||
<div class="btn_right">
|
||||
|
||||
Loading…
Reference in New Issue
Block a user