Merge branch 'hylee' into advc

Conflicts:
	src/main/java/kcc/ve/instr/tngrVisitEdu/eduInfo/service/VEEduAplctVO.java
	src/main/webapp/WEB-INF/jsp/web/ve/aplct/sspnIdtmt/sspnIdtmtEduAplctList.jsp
This commit is contained in:
hylee 2023-11-10 14:30:05 +09:00
commit 892e8aea74
27 changed files with 2975 additions and 2278 deletions

View File

@ -64,7 +64,10 @@ public class AdrInnorixFileVO extends ComDefaultVO implements Serializable {
public String sbmtId = ""; //제출 강사 ID
public String eduDocReqOrd = "";//서류요청 순번
public String cnclCn = "";//기소유예 취소사유
public String getFileType() {
return fileType;
}
@ -169,6 +172,14 @@ public class AdrInnorixFileVO extends ComDefaultVO implements Serializable {
this.eduDocReqOrd = eduDocReqOrd;
}
public String getCnclCn() {
return cnclCn;
}
public void setCnclCn(String cnclCn) {
this.cnclCn = cnclCn;
}

View File

@ -37,5 +37,7 @@ public interface InnorixFileService {
RestResponse insertInnorixReqFile(AdrInnorixFileVO adrInnorixFileVO);
RestResponse insertInnorixDocFile(AdrInnorixFileVO adrInnorixFileVO);
RestResponse insertInnorixSspnCnClAjax(AdrInnorixFileVO adrInnorixFileVO);
}

View File

@ -27,11 +27,14 @@ import kcc.kccadr.cmm.innorix.service.AdrInnorixFileVO;
import kcc.kccadr.cmm.innorix.service.InnorixFileService;
import kcc.kccadr.cmm.innorix.service.InnorixFileVO;
import kcc.let.utl.fcc.service.EgovStringUtil;
import kcc.ve.aplct.sspnIdtmt.service.SspnIdtmtService;
import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduAplctService;
import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduAplctVO;
import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduMIXService;
import kcc.ve.instr.tngrVisitEdu.eduInfo.service.impl.VEEduMIXDAO;
import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEAPrcsAplctPrdInstrAsgnmService;
import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEAPrcsAplctPrdInstrAsgnmVO;
import kcc.ve.oprtn.cndtnSspnIdtmt.trgtMng.service.CndtnTrgtMngService;
/**
* @Class Name : EgovCmmUseServiceImpl.java
@ -82,6 +85,20 @@ public class InnorixFileServiceImpl extends EgovAbstractServiceImpl implements I
//서류요청 순번
@Resource(name="docReqOrdGnrService")
private EgovIdGnrService docReqOrdGnrService;
// 교육 신청 정보
@Resource(name="sspnIdtmtService")
private SspnIdtmtService sspnIdtmtService;
//과정 관리
@Resource(name = "cndtnTrgtInfoMngService")
private CndtnTrgtMngService cndtnTrgtInfoMngService;
//
@Resource(name = "vEEduMIXDAO")
private VEEduMIXDAO vEEduMIXDAO;
/**
* @methodName : fileDataUpload
* @author : 이호영
@ -465,4 +482,32 @@ public class InnorixFileServiceImpl extends EgovAbstractServiceImpl implements I
return new RestResponse(HttpStatus.OK, adrInnorixFileVO.getSuccessMsg(), LocalDateTime.now());
}
@Override
public RestResponse insertInnorixSspnCnClAjax(AdrInnorixFileVO adrInnorixFileVO) {
List<FileVO> result = null;
try {
// 파일 저장 저장할 file 정보를 받아옴
result = this.insertFileData(adrInnorixFileVO);
// 파일 정보 insert
String atchFileId = fileManageDAO.insertFileInfs(result);
//VE_EDU_DOC_REQ 서류요청테이블 insert
VEEduAplctVO vEEduAplctVO = new VEEduAplctVO();
vEEduAplctVO.setAplctStateCd("35"); // VEA_APLCT_DETAIL_INFO TB 상태코드 VEA003 10 - 미이수, 20 - 이수, 30 - 취소, 35 - 취소 요청
vEEduAplctVO.setCnclAtchFileId(atchFileId);
vEEduAplctVO.setCnclCn(adrInnorixFileVO.getCnclCn());
vEEduAplctVO.setPrcsAplctPrdOrd(adrInnorixFileVO.getPrcsAplctPrdOrd());
vEEduAplctVO.setEduAplctOrd(adrInnorixFileVO.getEduAplctOrd());
vEEduMIXDAO.updateCnclStatus(vEEduAplctVO);
} catch (Exception e) {
e.printStackTrace();
return new RestResponse(HttpStatus.BAD_REQUEST, "등록에 실패하였습니다.", LocalDateTime.now());
}
return new RestResponse(HttpStatus.OK, adrInnorixFileVO.getSuccessMsg(), LocalDateTime.now());
}
}

View File

@ -185,6 +185,30 @@ public class InnorixFileController {
return ResponseEntity.ok(innorixService.insertInnorixReqFile(adrInnorixFileVO));
}
/**
* @methodName : insertInnorixSspnCnClAjax
* @author : 이호영
* @date : 2023.11.08
* @description : 기소유예 취소 파일 업로드
* @param adrInnorixFileVO
* @return
* @throws Exception
*/
@RequestMapping(value = {"/web/common/insertInnorixSspnCnClAjax.do"}, method = RequestMethod.POST)
public ResponseEntity<RestResponse> insertInnorixSspnCnClAjax(@RequestBody AdrInnorixFileVO adrInnorixFileVO) throws Exception {
//로그인 권한정보 불러오기
LoginVO loginVO = EgovUserDetailsHelper.isAuthenticated()? (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser():null;
String userId = loginVO == null ? "" : EgovStringUtil.isNullToString(loginVO.getUniqId());
if(userId.equals("")) {
return ResponseEntity.ok(new RestResponse(HttpStatus.UNAUTHORIZED, "로그인이 필요합니다.", LocalDateTime.now()));
}
adrInnorixFileVO.setUniqId(userId);
return ResponseEntity.ok(innorixService.insertInnorixSspnCnClAjax(adrInnorixFileVO));
}
/**
* @methodName : insertReqDocInnorixFile
* @author : 이지우

View File

@ -1,19 +1,21 @@
package kcc.ve.aplct.sspnIdtmt.service;
import org.springframework.web.servlet.ModelAndView;
import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduAplctVO;
import kcc.ve.oprtn.cndtnSspnIdtmt.trgtMng.service.CndtnTrgtMngVO;
public interface SspnIdtmtService {
void insertVeEduAplct(VEEduAplctVO paramVO);
VEEduAplctVO findByAprvlCd(VEEduAplctVO vEEduAplctReqVO);
// String findByTrgtNmAndDBirthAndEduStateCd(CndtnTrgtMngVO cndtnTrgtInfoMngVO);
ModelAndView findByTrgtNmAndDBirthAndEduStateCd(CndtnTrgtMngVO cndtnTrgtInfoMngVO);
}
package kcc.ve.aplct.sspnIdtmt.service;
import org.springframework.web.servlet.ModelAndView;
import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduAplctVO;
import kcc.ve.oprtn.cndtnSspnIdtmt.trgtMng.service.CndtnTrgtMngVO;
public interface SspnIdtmtService {
void insertVeEduAplct(VEEduAplctVO paramVO);
void updateAprvlCd(VEEduAplctVO paramVO) throws Exception;
VEEduAplctVO findByAprvlCd(VEEduAplctVO vEEduAplctReqVO);
// String findByTrgtNmAndDBirthAndEduStateCd(CndtnTrgtMngVO cndtnTrgtInfoMngVO);
ModelAndView findByTrgtNmAndDBirthAndEduStateCd(CndtnTrgtMngVO cndtnTrgtInfoMngVO);
}

View File

@ -29,6 +29,11 @@ public class SspnIdtmtServiceImpl implements SspnIdtmtService {
public void insertVeEduAplct(VEEduAplctVO paramVO) {
vEEduAplctDAO.insertVeEduAplct(paramVO);
}
@Override
public void updateAprvlCd(VEEduAplctVO paramVO) throws Exception {
vEEduAplctDAO.updateReg(paramVO);
}
@Override
public VEEduAplctVO findByAprvlCd(VEEduAplctVO vEEduAplctReqVO) {

View File

@ -139,6 +139,8 @@ public class VEEduAplctVO extends ComDefaultVO implements Serializable {
private String isltn3Yn; //접적학교여부
private String ppltnReducAreaYn; //인구감소지역여부
private String cnclAtchFileId; //
private String cnclCn; //
public int getChasi() {
return chasi;
@ -1680,6 +1682,18 @@ public class VEEduAplctVO extends ComDefaultVO implements Serializable {
this.ppltnReducAreaYn = ppltnReducAreaYn;
}
public String getCnclAtchFileId() {
return cnclAtchFileId;
}
public void setCnclAtchFileId(String cnclAtchFileId) {
this.cnclAtchFileId = cnclAtchFileId;
}
public String getCnclCn() {
return cnclCn;
}
public void setCnclCn(String cnclCn) {
this.cnclCn = cnclCn;
}
}

View File

@ -130,6 +130,10 @@ public class VEEduAplctDAO extends EgovAbstractDAO {
public void insertVeEduAplct(VEEduAplctVO paramVO) {
insert("VEEduAplctDAO.insertVeEduAplct", paramVO);
}
public void updateAprvlCd(VEEduAplctVO paramVO) {
insert("VEEduAplctDAO.updateAprvlCd", paramVO);
}
public VEEduAplctVO findByAprvlCd(VEEduAplctVO vEEduAplctReqVO) {
return (VEEduAplctVO) select("VEEduAplctDAO.findByAprvlCd", vEEduAplctReqVO);

View File

@ -179,6 +179,10 @@ public class VEEduMIXDAO extends EgovAbstractDAO {
public void updateEduStateCd(VEEduAplctVO paramVO) {
update("VEEduMIXDAO.updateEduStateCd", paramVO);
}
public void updateCnclStatus(VEEduAplctVO vEEduAplctVO) {
update("VEEduMIXDAO.updateCnclStatus", vEEduAplctVO);
}
}

View File

@ -1,50 +1,52 @@
package kcc.ve.instr.tngrVisitEdu.prcsInfo.service;
import java.util.List;
import java.util.Map;
import kcc.ve.instr.tngrVisitEdu.instrInfo.service.VEInstrDetailVO;
public interface VEPrcsAplctPrdService {
//C
void insert(VEPrcsDetailVO paramVO) throws Exception;
//R
VEPrcsDetailVO selectDetail(VEPrcsDetailVO paramVO) throws Exception;
//U
int update(VEPrcsDetailVO paramVO) throws Exception;
//D
int delete(VEPrcsDetailVO paramVO) throws Exception;
//L
List<VEPrcsDetailVO> selectList(VEPrcsDetailVO paramVO) throws Exception;
List<VEPrcsDetailVO> selectList4Fndth(VEPrcsDetailVO paramVO) throws Exception;
//Page List
List<VEPrcsDetailVO> selectPagingList(VEPrcsDetailVO paramVO) throws Exception;
//기반강화, 기소유예
List<VEPrcsDetailVO> selectPagingList4Fndth(VEPrcsDetailVO paramVO) throws Exception;
//R
VEPrcsDetailVO selectDetailNewOne(VEPrcsDetailVO paramVO) throws Exception;
VEPrcsDetailVO selectDetailNewOne4Fndth(VEPrcsDetailVO paramVO) throws Exception;
List<VEInstrDetailVO> selectinstrAsgnmPopupPagingList(VEPrcsDetailVO vEPrcsDetailVO);
List<VEPrcsDetailVO> findByAprvlList(VEPrcsDetailVO vEPrcsDetailVO);
Map<String, Object> findAllDashboardCnt(VEPrcsDetailVO vEPrcsDetailVO);
VEPrcsDetailVO selectDetailByOrd(VEPrcsDetailVO vEPrcsDetailVO) throws Exception;
void updateOneColumn(VEPrcsDetailVO vEPrcsDetailVO) throws Exception;
}
package kcc.ve.instr.tngrVisitEdu.prcsInfo.service;
import java.util.List;
import java.util.Map;
import kcc.ve.instr.tngrVisitEdu.instrInfo.service.VEInstrDetailVO;
public interface VEPrcsAplctPrdService {
//C
void insert(VEPrcsDetailVO paramVO) throws Exception;
//R
VEPrcsDetailVO selectDetail(VEPrcsDetailVO paramVO) throws Exception;
//U
int update(VEPrcsDetailVO paramVO) throws Exception;
//D
int delete(VEPrcsDetailVO paramVO) throws Exception;
//L
List<VEPrcsDetailVO> selectList(VEPrcsDetailVO paramVO) throws Exception;
List<VEPrcsDetailVO> selectList4Fndth(VEPrcsDetailVO paramVO) throws Exception;
//Page List
List<VEPrcsDetailVO> selectPagingList(VEPrcsDetailVO paramVO) throws Exception;
//기반강화, 기소유예
List<VEPrcsDetailVO> selectPagingList4Fndth(VEPrcsDetailVO paramVO) throws Exception;
//R
VEPrcsDetailVO selectDetailNewOne(VEPrcsDetailVO paramVO) throws Exception;
VEPrcsDetailVO selectDetailNewOne4Fndth(VEPrcsDetailVO paramVO) throws Exception;
List<VEInstrDetailVO> selectinstrAsgnmPopupPagingList(VEPrcsDetailVO vEPrcsDetailVO);
List<VEPrcsDetailVO> findByAprvlList(VEPrcsDetailVO vEPrcsDetailVO);
Map<String, Object> findAllDashboardCnt(VEPrcsDetailVO vEPrcsDetailVO);
VEPrcsDetailVO selectDetailByOrd(VEPrcsDetailVO vEPrcsDetailVO) throws Exception;
void updateOneColumn(VEPrcsDetailVO vEPrcsDetailVO) throws Exception;
VEPrcsDetailVO findByCnclInfo(VEPrcsDetailVO vEPrcsDetailVO);
}

View File

@ -1,107 +1,111 @@
package kcc.ve.instr.tngrVisitEdu.prcsInfo.service.impl;
import java.util.List;
import java.util.Map;
import org.springframework.stereotype.Repository;
import egovframework.rte.psl.dataaccess.EgovAbstractDAO;
import kcc.ve.instr.tngrVisitEdu.instrInfo.service.VEInstrDetailVO;
import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEAPrcsAplctPrdInstrAsgnmVO;
import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsDetailVO;
@Repository("vEPrcsAplctPrdDAO")
public class VEPrcsAplctPrdDAO extends EgovAbstractDAO {
/**
* 등록 - C
* @param VELctrDetailVO
* @throws Exception
*/
public void insert(VEPrcsDetailVO paramVO) throws Exception {
insert("VEPrcsAplctPrdDAO.insert", paramVO);
}
/**
* 상세보기 - R
* @param CndtnTrgtInfoMngVO
* @return
* @throws Exception
*/
public VEPrcsDetailVO selectDetail(VEPrcsDetailVO paramVO) throws Exception {
return (VEPrcsDetailVO) select("VEPrcsAplctPrdDAO.selectDetail", paramVO);
}
/**
* 수정 - U
* @param CndtnTrgtInfoMngVO
* @return
* @throws Exception
*/
public int update(VEPrcsDetailVO paramVO) throws Exception {
return update("VEPrcsAplctPrdDAO.update", paramVO);
}
/**
* 삭제 - D
* @param addrAgencyVO
* @return
* @throws Exception
*/
public int delete(VEPrcsDetailVO paramVO) throws Exception {
return delete("VEPrcsAplctPrdDAO.delete", paramVO);
}
//L
public List<VEPrcsDetailVO> selectList(VEPrcsDetailVO paramVO) throws Exception {
List<VEPrcsDetailVO> tlist = (List<VEPrcsDetailVO>) list("VEPrcsAplctPrdDAO.selectList", paramVO);
return tlist;
}
public List<VEPrcsDetailVO> selectList4Fndth(VEPrcsDetailVO paramVO) throws Exception {
List<VEPrcsDetailVO> tlist = (List<VEPrcsDetailVO>) list("VEPrcsAplctPrdDAO.selectList4Fndth", paramVO);
return tlist;
}
/**
* L - Page
* @param addrVO
* @return
* @throws Exception
*/
public List<VEPrcsDetailVO> selectPagingList(VEPrcsDetailVO paramVO) throws Exception {
List<VEPrcsDetailVO> tlist = (List<VEPrcsDetailVO>) list("VEPrcsAplctPrdDAO.selectPagingList", paramVO);
return tlist;
}
public List<VEPrcsDetailVO> selectPagingList4Fndth(VEPrcsDetailVO paramVO) throws Exception {
List<VEPrcsDetailVO> tlist = (List<VEPrcsDetailVO>) list("VEPrcsAplctPrdDAO.selectPagingList4Fndth", paramVO);
return tlist;
}
public VEPrcsDetailVO selectDetailNewOne(VEPrcsDetailVO paramVO) throws Exception {
return (VEPrcsDetailVO) select("VEPrcsAplctPrdDAO.selectDetailNewOne", paramVO);
}
public VEPrcsDetailVO selectDetailNewOne4Fndth(VEPrcsDetailVO paramVO) throws Exception {
return (VEPrcsDetailVO) select("VEPrcsAplctPrdDAO.selectDetailNewOne4Fndth", paramVO);
}
public List<VEInstrDetailVO> selectinstrAsgnmPopupPagingList(VEPrcsDetailVO vEPrcsDetailVO) {
return (List<VEInstrDetailVO>) list("VEPrcsAplctPrdDAO.selectinstrAsgnmPopupPagingList", vEPrcsDetailVO);
}
public List<VEPrcsDetailVO> findByAprvlList(VEPrcsDetailVO vEPrcsDetailVO) {
return (List<VEPrcsDetailVO>) list("VEPrcsAplctPrdDAO.findByAprvlList", vEPrcsDetailVO);
}
public Map<String, Object> findAllDashboardCnt(VEPrcsDetailVO vEPrcsDetailVO) {
return (Map<String, Object>) select("VEPrcsAplctPrdDAO.findAllDashboardCnt", vEPrcsDetailVO);
}
public VEPrcsDetailVO selectDetailByOrd(VEPrcsDetailVO vEPrcsDetailVO) throws Exception {
return (VEPrcsDetailVO) select("VEPrcsAplctPrdDAO.selectDetailByOrd", vEPrcsDetailVO);
}
}
package kcc.ve.instr.tngrVisitEdu.prcsInfo.service.impl;
import java.util.List;
import java.util.Map;
import org.springframework.stereotype.Repository;
import egovframework.rte.psl.dataaccess.EgovAbstractDAO;
import kcc.ve.instr.tngrVisitEdu.instrInfo.service.VEInstrDetailVO;
import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEAPrcsAplctPrdInstrAsgnmVO;
import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsDetailVO;
@Repository("vEPrcsAplctPrdDAO")
public class VEPrcsAplctPrdDAO extends EgovAbstractDAO {
/**
* 등록 - C
* @param VELctrDetailVO
* @throws Exception
*/
public void insert(VEPrcsDetailVO paramVO) throws Exception {
insert("VEPrcsAplctPrdDAO.insert", paramVO);
}
/**
* 상세보기 - R
* @param CndtnTrgtInfoMngVO
* @return
* @throws Exception
*/
public VEPrcsDetailVO selectDetail(VEPrcsDetailVO paramVO) throws Exception {
return (VEPrcsDetailVO) select("VEPrcsAplctPrdDAO.selectDetail", paramVO);
}
/**
* 수정 - U
* @param CndtnTrgtInfoMngVO
* @return
* @throws Exception
*/
public int update(VEPrcsDetailVO paramVO) throws Exception {
return update("VEPrcsAplctPrdDAO.update", paramVO);
}
/**
* 삭제 - D
* @param addrAgencyVO
* @return
* @throws Exception
*/
public int delete(VEPrcsDetailVO paramVO) throws Exception {
return delete("VEPrcsAplctPrdDAO.delete", paramVO);
}
//L
public List<VEPrcsDetailVO> selectList(VEPrcsDetailVO paramVO) throws Exception {
List<VEPrcsDetailVO> tlist = (List<VEPrcsDetailVO>) list("VEPrcsAplctPrdDAO.selectList", paramVO);
return tlist;
}
public List<VEPrcsDetailVO> selectList4Fndth(VEPrcsDetailVO paramVO) throws Exception {
List<VEPrcsDetailVO> tlist = (List<VEPrcsDetailVO>) list("VEPrcsAplctPrdDAO.selectList4Fndth", paramVO);
return tlist;
}
/**
* L - Page
* @param addrVO
* @return
* @throws Exception
*/
public List<VEPrcsDetailVO> selectPagingList(VEPrcsDetailVO paramVO) throws Exception {
List<VEPrcsDetailVO> tlist = (List<VEPrcsDetailVO>) list("VEPrcsAplctPrdDAO.selectPagingList", paramVO);
return tlist;
}
public List<VEPrcsDetailVO> selectPagingList4Fndth(VEPrcsDetailVO paramVO) throws Exception {
List<VEPrcsDetailVO> tlist = (List<VEPrcsDetailVO>) list("VEPrcsAplctPrdDAO.selectPagingList4Fndth", paramVO);
return tlist;
}
public VEPrcsDetailVO selectDetailNewOne(VEPrcsDetailVO paramVO) throws Exception {
return (VEPrcsDetailVO) select("VEPrcsAplctPrdDAO.selectDetailNewOne", paramVO);
}
public VEPrcsDetailVO selectDetailNewOne4Fndth(VEPrcsDetailVO paramVO) throws Exception {
return (VEPrcsDetailVO) select("VEPrcsAplctPrdDAO.selectDetailNewOne4Fndth", paramVO);
}
public List<VEInstrDetailVO> selectinstrAsgnmPopupPagingList(VEPrcsDetailVO vEPrcsDetailVO) {
return (List<VEInstrDetailVO>) list("VEPrcsAplctPrdDAO.selectinstrAsgnmPopupPagingList", vEPrcsDetailVO);
}
public List<VEPrcsDetailVO> findByAprvlList(VEPrcsDetailVO vEPrcsDetailVO) {
return (List<VEPrcsDetailVO>) list("VEPrcsAplctPrdDAO.findByAprvlList", vEPrcsDetailVO);
}
public Map<String, Object> findAllDashboardCnt(VEPrcsDetailVO vEPrcsDetailVO) {
return (Map<String, Object>) select("VEPrcsAplctPrdDAO.findAllDashboardCnt", vEPrcsDetailVO);
}
public VEPrcsDetailVO selectDetailByOrd(VEPrcsDetailVO vEPrcsDetailVO) throws Exception {
return (VEPrcsDetailVO) select("VEPrcsAplctPrdDAO.selectDetailByOrd", vEPrcsDetailVO);
}
public VEPrcsDetailVO findByCnclInfo(VEPrcsDetailVO paramVO) {
return (VEPrcsDetailVO) select("VEPrcsAplctPrdDAO.findByCnclInfo", paramVO);
}
}

View File

@ -1,111 +1,115 @@
package kcc.ve.instr.tngrVisitEdu.prcsInfo.service.impl;
import java.util.List;
import java.util.Map;
import javax.annotation.Resource;
import org.springframework.stereotype.Service;
import egovframework.rte.fdl.idgnr.EgovIdGnrService;
import kcc.ve.instr.tngrVisitEdu.instrInfo.service.VEInstrDetailVO;
import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEAPrcsAplctPrdInstrAsgnmVO;
import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsAplctPrdService;
import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsDetailVO;
@Service("vEPrcsAplctPrdService")
public class VEPrcsAplctPrdServiceImpl implements VEPrcsAplctPrdService {
//과정신청기간순번
@Resource(name="prcsAplctPrdGnrService")
private EgovIdGnrService prcsAplctPrdGnrService;
//과정
@Resource(name="vEPrcsAplctPrdDAO")
private VEPrcsAplctPrdDAO vEPrcsAplctPrdDAO;
//과정
@Resource(name="vEPrcsDAO")
private VEPrcsDAO vEPrcsDAO;
//C
public void insert(VEPrcsDetailVO vEPrcsDetailVO) throws Exception {
String prcsAplctPrdOrd = prcsAplctPrdGnrService.getNextStringId(); // 고유ID
vEPrcsDetailVO.setPrcsAplctPrdOrd(prcsAplctPrdOrd);
//vEPrcsDetailVO.setUseYn("Y");
vEPrcsAplctPrdDAO.insert(vEPrcsDetailVO);
}
//R
public VEPrcsDetailVO selectDetail(VEPrcsDetailVO paramVO) throws Exception {
return vEPrcsAplctPrdDAO.selectDetail(paramVO);
}
//U
public int update(VEPrcsDetailVO paramVO) throws Exception{
vEPrcsAplctPrdDAO.update(paramVO);
return vEPrcsDAO.update(paramVO);
}
//D
public int delete(VEPrcsDetailVO paramVO) throws Exception{
return vEPrcsAplctPrdDAO.delete(paramVO);
}
//List
public List<VEPrcsDetailVO> selectList(VEPrcsDetailVO paramVO) throws Exception{
return vEPrcsAplctPrdDAO.selectList(paramVO);
}
public List<VEPrcsDetailVO> selectList4Fndth(VEPrcsDetailVO paramVO) throws Exception{
return vEPrcsAplctPrdDAO.selectList4Fndth(paramVO);
}
//paging List
public List<VEPrcsDetailVO> selectPagingList(VEPrcsDetailVO paramVO) throws Exception{
return vEPrcsAplctPrdDAO.selectPagingList(paramVO);
}
public List<VEPrcsDetailVO> selectPagingList4Fndth(VEPrcsDetailVO paramVO) throws Exception{
return vEPrcsAplctPrdDAO.selectPagingList4Fndth(paramVO);
}
//R
public VEPrcsDetailVO selectDetailNewOne(VEPrcsDetailVO paramVO) throws Exception {
return vEPrcsAplctPrdDAO.selectDetailNewOne(paramVO);
}
public VEPrcsDetailVO selectDetailNewOne4Fndth(VEPrcsDetailVO paramVO) throws Exception {
return vEPrcsAplctPrdDAO.selectDetailNewOne4Fndth(paramVO);
}
@Override
public List<VEInstrDetailVO> selectinstrAsgnmPopupPagingList(VEPrcsDetailVO vEPrcsDetailVO) {
return vEPrcsAplctPrdDAO.selectinstrAsgnmPopupPagingList(vEPrcsDetailVO);
}
@Override
public List<VEPrcsDetailVO> findByAprvlList(VEPrcsDetailVO vEPrcsDetailVO) {
return vEPrcsAplctPrdDAO.findByAprvlList(vEPrcsDetailVO);
}
@Override
public Map<String, Object> findAllDashboardCnt(VEPrcsDetailVO vEPrcsDetailVO) {
return vEPrcsAplctPrdDAO.findAllDashboardCnt(vEPrcsDetailVO);
}
public VEPrcsDetailVO selectDetailByOrd(VEPrcsDetailVO vEPrcsDetailVO) throws Exception {
return vEPrcsAplctPrdDAO.selectDetailByOrd(vEPrcsDetailVO);
}
public void updateOneColumn(VEPrcsDetailVO vEPrcsDetailVO) throws Exception {
vEPrcsAplctPrdDAO.update(vEPrcsDetailVO);
}
}
package kcc.ve.instr.tngrVisitEdu.prcsInfo.service.impl;
import java.util.List;
import java.util.Map;
import javax.annotation.Resource;
import org.springframework.stereotype.Service;
import egovframework.rte.fdl.idgnr.EgovIdGnrService;
import kcc.ve.instr.tngrVisitEdu.instrInfo.service.VEInstrDetailVO;
import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEAPrcsAplctPrdInstrAsgnmVO;
import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsAplctPrdService;
import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsDetailVO;
@Service("vEPrcsAplctPrdService")
public class VEPrcsAplctPrdServiceImpl implements VEPrcsAplctPrdService {
//과정신청기간순번
@Resource(name="prcsAplctPrdGnrService")
private EgovIdGnrService prcsAplctPrdGnrService;
//과정
@Resource(name="vEPrcsAplctPrdDAO")
private VEPrcsAplctPrdDAO vEPrcsAplctPrdDAO;
//과정
@Resource(name="vEPrcsDAO")
private VEPrcsDAO vEPrcsDAO;
//C
public void insert(VEPrcsDetailVO vEPrcsDetailVO) throws Exception {
String prcsAplctPrdOrd = prcsAplctPrdGnrService.getNextStringId(); // 고유ID
vEPrcsDetailVO.setPrcsAplctPrdOrd(prcsAplctPrdOrd);
//vEPrcsDetailVO.setUseYn("Y");
vEPrcsAplctPrdDAO.insert(vEPrcsDetailVO);
}
//R
public VEPrcsDetailVO selectDetail(VEPrcsDetailVO paramVO) throws Exception {
return vEPrcsAplctPrdDAO.selectDetail(paramVO);
}
//U
public int update(VEPrcsDetailVO paramVO) throws Exception{
vEPrcsAplctPrdDAO.update(paramVO);
return vEPrcsDAO.update(paramVO);
}
//D
public int delete(VEPrcsDetailVO paramVO) throws Exception{
return vEPrcsAplctPrdDAO.delete(paramVO);
}
//List
public List<VEPrcsDetailVO> selectList(VEPrcsDetailVO paramVO) throws Exception{
return vEPrcsAplctPrdDAO.selectList(paramVO);
}
public List<VEPrcsDetailVO> selectList4Fndth(VEPrcsDetailVO paramVO) throws Exception{
return vEPrcsAplctPrdDAO.selectList4Fndth(paramVO);
}
//paging List
public List<VEPrcsDetailVO> selectPagingList(VEPrcsDetailVO paramVO) throws Exception{
return vEPrcsAplctPrdDAO.selectPagingList(paramVO);
}
public List<VEPrcsDetailVO> selectPagingList4Fndth(VEPrcsDetailVO paramVO) throws Exception{
return vEPrcsAplctPrdDAO.selectPagingList4Fndth(paramVO);
}
//R
public VEPrcsDetailVO selectDetailNewOne(VEPrcsDetailVO paramVO) throws Exception {
return vEPrcsAplctPrdDAO.selectDetailNewOne(paramVO);
}
public VEPrcsDetailVO selectDetailNewOne4Fndth(VEPrcsDetailVO paramVO) throws Exception {
return vEPrcsAplctPrdDAO.selectDetailNewOne4Fndth(paramVO);
}
public VEPrcsDetailVO findByCnclInfo(VEPrcsDetailVO paramVO) {
return vEPrcsAplctPrdDAO.findByCnclInfo(paramVO);
}
@Override
public List<VEInstrDetailVO> selectinstrAsgnmPopupPagingList(VEPrcsDetailVO vEPrcsDetailVO) {
return vEPrcsAplctPrdDAO.selectinstrAsgnmPopupPagingList(vEPrcsDetailVO);
}
@Override
public List<VEPrcsDetailVO> findByAprvlList(VEPrcsDetailVO vEPrcsDetailVO) {
return vEPrcsAplctPrdDAO.findByAprvlList(vEPrcsDetailVO);
}
@Override
public Map<String, Object> findAllDashboardCnt(VEPrcsDetailVO vEPrcsDetailVO) {
return vEPrcsAplctPrdDAO.findAllDashboardCnt(vEPrcsDetailVO);
}
public VEPrcsDetailVO selectDetailByOrd(VEPrcsDetailVO vEPrcsDetailVO) throws Exception {
return vEPrcsAplctPrdDAO.selectDetailByOrd(vEPrcsDetailVO);
}
public void updateOneColumn(VEPrcsDetailVO vEPrcsDetailVO) throws Exception {
vEPrcsAplctPrdDAO.update(vEPrcsDetailVO);
}
}

View File

@ -22,11 +22,14 @@ import egovframework.rte.ptl.mvc.tags.ui.pagination.PaginationInfo;
import kcc.com.cmm.ComDefaultCodeVO;
import kcc.com.cmm.ComDefaultVO;
import kcc.com.cmm.LoginVO;
import kcc.com.cmm.service.EgovFileMngService;
import kcc.com.cmm.service.FileVO;
import kcc.com.cmm.service.impl.CmmUseDAO;
import kcc.com.cmm.util.StringUtil;
import kcc.com.utl.user.service.CheckLoginUtil;
import kcc.let.uat.uia.service.SsoLoginVO;
import kcc.let.utl.fcc.service.EgovCryptoUtil;
import kcc.ve.aplct.sspnIdtmt.service.SspnIdtmtService;
import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduAplctVO;
import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduMIXService;
import kcc.ve.instr.tngrVisitEdu.instrInfo.service.VEInstrDetailVO;
@ -114,8 +117,14 @@ public class CndtnPrcsInfoMngController {
//암복호화 유틸
@Resource(name = "egovCryptoUtil")
EgovCryptoUtil egovCryptoUtil;
//파일정보의 관리
@Resource(name = "EgovFileMngService")
private EgovFileMngService fileService;
//온라인콘텐츠과정 관리
@Resource(name = "sspnIdtmtService")
private SspnIdtmtService sspnIdtmtService;
/**
* 기반강화연수 과정 관리 목록 화면
*/
@ -721,6 +730,64 @@ public class CndtnPrcsInfoMngController {
}
/**
* @methodName : updateAplctStateCdAjax_only
* @author : 이호영
* @date : 2023.11.10
* @description : 관리자 과정신청기간관리목록 > 상세 > 취소요청 > 팝업 > 승인 반려
* 반려일 경우 VE_EDU_APLCT 테이블에 update 안함
* @param vEEduAplctVO
* @param model
* @param request
* @return
* @throws Exception
*/
@RequestMapping("/kccadr/oprtn/cndtnSspnIdtmt/updateAplctStateCdAjax_only.do")
public ModelAndView updateAplctStateCdAjax_only(
@ModelAttribute("vEEduAplctVO") VEEduAplctVO vEEduAplctVO
, ModelMap model
//, RedirectAttributes redirectAttributes
, HttpServletRequest request
) throws Exception {
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("jsonView");
//로그인 처리====================================
//로그인 정보 가져오기
String s_oprtnLoginCheckNInfo = checkLoginUtil.oprtnCheckNInfo(model);
if (!"".equals(s_oprtnLoginCheckNInfo)) {
modelAndView.addObject("result", "loginFail");
return modelAndView;
}
//로그인 처리====================================
LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기
SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기
vEEduAplctVO.setLastUpdusrId(loginVO.getUniqId());
//vEPrcsDetailVO.setUseYn("Y");
// VEA_APLCT_DETAIL_INFO 신청상세정보 상태값 update
vEEduMIXService.updateAplctStateCd(vEEduAplctVO);
// 취소 반려처리시 타면 안됨
//VE_EDU_APLCT UPDATE
if(StringUtils.isNotEmpty(vEEduAplctVO.getAprvlCd()))
{
sspnIdtmtService.updateAprvlCd(vEEduAplctVO);
}
modelAndView.addObject("result", "success");
return modelAndView;
}
/**
* 조건부기소유예 기간 상세화면
*/
@ -798,25 +865,26 @@ public class CndtnPrcsInfoMngController {
) throws Exception {
ModelAndView modelAndView = new ModelAndView("jsonView");
//로그인 처리====================================
//로그인 정보 가져오기
String s_oprtnLoginCheckNInfo = checkLoginUtil.oprtnCheckNInfo(model);
if (!"".equals(s_oprtnLoginCheckNInfo)) {
modelAndView.addObject("result", "loginFail");
return modelAndView;
}
//로그인 처리====================================
LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기
SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기
try {
//로그인 처리====================================
//로그인 정보 가져오기
// 신청상세정보 상태값 update
String s_oprtnLoginCheckNInfo = checkLoginUtil.oprtnCheckNInfo(model);
if (!"".equals(s_oprtnLoginCheckNInfo)) {
modelAndView.addObject("result", "loginFail");
return modelAndView;
}
//로그인 처리====================================
LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기
SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기
// 신청상세정보 상태값 update
vEEduAplctVO.setLastUpdusrId(loginVO.getUniqId());
vEEduMIXService.updateAplctStateCd(vEEduAplctVO);
// 기소유예 대상자 상태값 udpate
vEEduMIXService.updateEduStateCd(vEEduAplctVO);
modelAndView.addObject("result", "success");
@ -904,6 +972,7 @@ public class CndtnPrcsInfoMngController {
LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기
try {
vEPrcsDetailVO.setLastUpdusrId(loginVO.getUniqId());
// 교육 신청 테이블에 신청자 상태값 update
vEAPrcsAplctPrdInstrAsgnmService.updateAplctStateCdListAjax(vEPrcsDetailVO);
@ -1190,6 +1259,51 @@ public class CndtnPrcsInfoMngController {
return "/oprtn/cndtnSspnIdtmt/popup/cndtnInstrAsgnmPopup";
}
/**
* @methodName : cnclPopup
* @author : 이호영
* @date : 2023.11.09
* @description : 취소 정보 확인하는 팝업
* @param vEPrcsDetailVO
* @param model
* @param redirectAttributes
* @param session
* @param request
* @return
* @throws Exception
*/
@RequestMapping("/kccadr/oprtn/cndtnSspnIdtmt/popup/cnclPopup.do")
public String cnclPopup(
// @ModelAttribute("vEInstrDetailVO") VEInstrDetailVO vEInstrDetailVO
@ModelAttribute("vEPrcsDetailVO") VEPrcsDetailVO vEPrcsDetailVO
, ModelMap model
, RedirectAttributes redirectAttributes
, HttpSession session
, HttpServletRequest request
) throws Exception {
LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기
SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기
//로그인 처리====================================
VEPrcsDetailVO info = vEPrcsAplctPrdService.findByCnclInfo(vEPrcsDetailVO);
//파일 정보 가져오기
// FileVO fileVO = new FileVO();
// fileVO.setAtchFileId(info.getCnclAtchFileId());
// List<FileVO> result = fileService.selectFileInfs(fileVO);
// model.addAttribute("fileList", result);
// model.addAttribute("fileListCnt", result.size());
//대상 리스트, 페이징 정보 전달
model.addAttribute("info", info);
return "/oprtn/cndtnSspnIdtmt/popup/cnclPopup";
}
/**
* 강사배정 등록 처리

View File

@ -125,6 +125,8 @@
SELECT
qe.QESTNR_ID AS qestnrId , /* 설문했으면 ID가 있음 */
vadi.APLCT_STATE_CD AS aplctStateCd, /* 이수 상태 */
vadi.CNCL_ATCH_FILE_ID AS cnclAtchFileId,
vadi.CNCL_CN AS cnclCn,
le.MBER_NM AS userNm,
<include refid="VEEduMIXDAO.select_column_name"/>
FROM
@ -164,6 +166,7 @@
</isNotEmpty>
AND a.use_yn = 'Y'
AND a.aprvl_cd != '40' /* 취소된 내역 안 보여줌 */
</select>
@ -4657,6 +4660,24 @@ VALUES
vea_aplct_detail_info
SET
aplct_state_cd = #aplctStateCd#
, last_updusr_id = #lastUpdusrId#
, last_updt_pnttm = SYSDATE
WHERE
prcs_aplct_prd_ord = #prcsAplctPrdOrd#
AND edu_aplct_ord = #eduAplctOrd#
</update>
<update id="VEEduMIXDAO.updateCnclStatus" parameterClass="VEEduAplctVO">
/* VEEduMIXDAO.updateCnclStatus */
UPDATE
vea_aplct_detail_info
SET
aplct_state_cd = #aplctStateCd#
, cncl_atch_file_id = #cnclAtchFileId#
, cncl_cn = #cnclCn#
, last_updt_pnttm = SYSDATE
WHERE
prcs_aplct_prd_ord = #prcsAplctPrdOrd#
AND edu_aplct_ord = #eduAplctOrd#

View File

@ -1,186 +1,188 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sqlMap PUBLIC "-//iBATIS.com//DTD SQL Map 2.0//EN" "http://www.ibatis.com/dtd/sql-map-2.dtd">
<!-- 찾교 과정 테이블 -->
<sqlMap namespace="VEAPrcsAplctPrdInstrAsgnm">
<typeAlias alias="egovMap" type="egovframework.rte.psl.dataaccess.util.EgovMap"/>
<typeAlias alias="VEAPrcsAplctPrdInstrAsgnmVO" type="kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEAPrcsAplctPrdInstrAsgnmVO"/>
<typeAlias alias="VEPrcsDetailVO" type="kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsDetailVO"/>
<!-- 공통 테이블 명 -->
<sql id="VEAPrcsAplctPrdInstrAsgnmDAO.table_name">
vea_prcs_aplct_prd_instr_asgnm
</sql>
<!-- 저장용 공통 컬럼 명 -->
<sql id="VEAPrcsAplctPrdInstrAsgnmDAO.column_name">
prcs_aplct_prd_ord
, user_id
, lctr_plan_atch_file_id
, doc_atch_file_id
, asgnm_aprvl_cd
, asgnm_aprvl_pnttm
, asgnm_aprvl_id
, rmrks
, frst_regist_pnttm
, frst_register_id
, last_updt_pnttm
, last_updusr_id
</sql>
<!-- 조회용 공통 컬럼 명 -->
<sql id="VEAPrcsAplctPrdInstrAsgnmDAO.select_column_name">
a.prcs_aplct_prd_ord as prcsAplctPrdOrd
, a.user_id as userId
, a.lctr_plan_atch_file_id as lctrPlanAtchFileId
, a.doc_atch_file_id as docAtchFileId
, a.asgnm_aprvl_cd as asgnmAprvlCd
, a.asgnm_aprvl_pnttm as asgnmAprvlPnttm
, a.asgnm_aprvl_id as asgnmAprvlId
, a.rmrks as rmrks
, a.frst_regist_pnttm as frstRegistPnttm
, a.frst_register_id as frstRegisterId
, a.last_updt_pnttm as lastUpdtPnttm
, a.last_updusr_id as lastUpdusrId
</sql>
<!-- 강사 배정 등록 -->
<insert id="VEAPrcsAplctPrdInstrAsgnmDAO.instrInsert" parameterClass="VEAPrcsAplctPrdInstrAsgnmVO">
INSERT INTO <include refid="VEAPrcsAplctPrdInstrAsgnmDAO.table_name"/> (
<include refid="VEAPrcsAplctPrdInstrAsgnmDAO.column_name"/>
)VALUES(
#prcsAplctPrdOrd#
, #userId#
, #lctrPlanAtchFileId#
, #docAtchFileId#
, #asgnmAprvlCd#
, SYSDATE
, #asgnmAprvlId#
, #rmrks#
, SYSDATE
, #frstRegisterId#
, SYSDATE
, #lastUpdusrId#
)
</insert>
<!-- 강사 배정 등록 -->
<insert id="VEAPrcsAplctPrdInstrAsgnmDAO.insertAprvlCdEduAplctDetail" parameterClass="VEPrcsDetailVO">
/* VEAPrcsAplctPrdInstrAsgnmDAO.insertAprvlCdEduAplctDetail */
INSERT INTO vea_aplct_detail_info
(
prcs_aplct_prd_ord
, edu_aplct_ord
, aplct_state_cd
, frst_regist_pnttm
, frst_register_id
)
VALUES
(
#prcsAplctPrdOrd#
, #eduAplctOrd#
, #aplctStateCd#
, SYSDATE
, #frstRegisterId#
)
</insert>
<select id="VEAPrcsAplctPrdInstrAsgnmDAO.selectAprvlCdEduAplctDetail" parameterClass="VEPrcsDetailVO" resultClass="VEPrcsDetailVO">
select
prcs_aplct_prd_ord as prcsAplctPrdOrd
, edu_aplct_ord as eduAplctOrd
, aplct_state_cd as aplctStateCd
, frst_regist_pnttm as frstRegistPnttm
, frst_register_id as frstRegisterId
from vea_aplct_detail_info
where edu_aplct_ord = #eduAplctOrd#
and prcs_aplct_prd_ord = #prcsAplctPrdOrd#
</select>
<delete id="VEAPrcsAplctPrdInstrAsgnmDAO.updateAprvlCdEduAplctDetail" parameterClass="VEPrcsDetailVO">
UPDATE vea_aplct_detail_info SET
aplct_state_cd = #aplctStateCd#
WHERE
edu_aplct_ord = #eduAplctOrd#
AND prcs_aplct_prd_ord = #prcsAplctPrdOrd#
</delete>
<!-- 교육 신청자 상태 update -->
<update id="VEAPrcsAplctPrdInstrAsgnmDAO.udpateAprvlCdEduAplct" parameterClass="VEPrcsDetailVO">
/* VEAPrcsAplctPrdInstrAsgnmDAO.udpateAprvlCdEduAplct */
UPDATE VE_EDU_APLCT
SET aprvl_cd = #aprvlCd#
WHERE edu_aplct_ord IN
<iterate property="eduAplctOrdList" open="(" close=")" conjunction=",">
#eduAplctOrdList[]#
</iterate>
</update>
<!-- 교육 신청자 상태 update -->
<update id="VEAPrcsAplctPrdInstrAsgnmDAO.updateAplctStateCdListAjax" parameterClass="VEPrcsDetailVO">
/* VEAPrcsAplctPrdInstrAsgnmDAO.updateAplctStateCdListAjax */
UPDATE VEA_APLCT_DETAIL_INFO
SET aplct_state_cd = #aplctStateCd#
WHERE edu_aplct_ord IN
<iterate property="eduAplctOrdList" open="(" close=")" conjunction=",">
#eduAplctOrdList[]#
</iterate>
</update>
<!-- 교육 신청자 상태 update -->
<update id="VEAPrcsAplctPrdInstrAsgnmDAO.updateEduStateCdListAjax" parameterClass="VEPrcsDetailVO">
/* VEAPrcsAplctPrdInstrAsgnmDAO.updateEduStateCdListAjax */
UPDATE VEA_SSPN_IDMT_TRGT
SET edu_state_cd = #eduStateCd#
WHERE sspn_idtmt_trgt_ord IN
<iterate property="sspnIdtmtTrgtOrdList" open="(" close=")" conjunction=",">
#sspnIdtmtTrgtOrdList[]#
</iterate>
</update>
<!-- 강사 배정 등록 -->
<select id="VEAPrcsAplctPrdInstrAsgnmDAO.findByPrcsAplctPrdOrd" parameterClass="String" resultClass="VEAPrcsAplctPrdInstrAsgnmVO">
/* VEAPrcsAplctPrdInstrAsgnmDAO.findByPrcsAplctPrdOrd */
SELECT
<include refid="VEAPrcsAplctPrdInstrAsgnmDAO.select_column_name"/>
, vid.instr_nm as instrNm
, vid.phone
FROM
<include refid="VEAPrcsAplctPrdInstrAsgnmDAO.table_name"/> a
LEFT JOIN ve_instr_detail vid
ON a.user_id = vid.user_id
WHERE 1=1
AND a.prcs_aplct_prd_ord = #prcsAplctPrdOrd#
AND vid.aprvl_cd ='20' <!-- 변경 승인 -->
AND vid.instr_div ='20' <!-- 성인강사 -->
AND vid.use_yn ='Y'
</select>
<!-- 강의계획서 update -->
<update id="VEAPrcsAplctPrdInstrAsgnmDAO.updatLctrPlanAtchFileId" parameterClass="vEAPrcsAplctPrdInstrAsgnmVO">
/* VEAPrcsAplctPrdInstrAsgnmDAO.updatLctrPlanAtchFileId */
UPDATE VEA_PRCS_APLCT_PRD_INSTR_ASGNM
SET lctr_plan_atch_file_id = #lctrPlanAtchFileId#
, last_updusr_id = #lastUpdusrId#
, last_updt_pnttm = sysdate
WHERE prcs_aplct_prd_ord = #prcsAplctPrdOrd#
</update>
</sqlMap>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sqlMap PUBLIC "-//iBATIS.com//DTD SQL Map 2.0//EN" "http://www.ibatis.com/dtd/sql-map-2.dtd">
<!-- 찾교 과정 테이블 -->
<sqlMap namespace="VEAPrcsAplctPrdInstrAsgnm">
<typeAlias alias="egovMap" type="egovframework.rte.psl.dataaccess.util.EgovMap"/>
<typeAlias alias="VEAPrcsAplctPrdInstrAsgnmVO" type="kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEAPrcsAplctPrdInstrAsgnmVO"/>
<typeAlias alias="VEPrcsDetailVO" type="kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsDetailVO"/>
<!-- 공통 테이블 명 -->
<sql id="VEAPrcsAplctPrdInstrAsgnmDAO.table_name">
vea_prcs_aplct_prd_instr_asgnm
</sql>
<!-- 저장용 공통 컬럼 명 -->
<sql id="VEAPrcsAplctPrdInstrAsgnmDAO.column_name">
prcs_aplct_prd_ord
, user_id
, lctr_plan_atch_file_id
, doc_atch_file_id
, asgnm_aprvl_cd
, asgnm_aprvl_pnttm
, asgnm_aprvl_id
, rmrks
, frst_regist_pnttm
, frst_register_id
, last_updt_pnttm
, last_updusr_id
</sql>
<!-- 조회용 공통 컬럼 명 -->
<sql id="VEAPrcsAplctPrdInstrAsgnmDAO.select_column_name">
a.prcs_aplct_prd_ord as prcsAplctPrdOrd
, a.user_id as userId
, a.lctr_plan_atch_file_id as lctrPlanAtchFileId
, a.doc_atch_file_id as docAtchFileId
, a.asgnm_aprvl_cd as asgnmAprvlCd
, a.asgnm_aprvl_pnttm as asgnmAprvlPnttm
, a.asgnm_aprvl_id as asgnmAprvlId
, a.rmrks as rmrks
, a.frst_regist_pnttm as frstRegistPnttm
, a.frst_register_id as frstRegisterId
, a.last_updt_pnttm as lastUpdtPnttm
, a.last_updusr_id as lastUpdusrId
</sql>
<!-- 강사 배정 등록 -->
<insert id="VEAPrcsAplctPrdInstrAsgnmDAO.instrInsert" parameterClass="VEAPrcsAplctPrdInstrAsgnmVO">
INSERT INTO <include refid="VEAPrcsAplctPrdInstrAsgnmDAO.table_name"/> (
<include refid="VEAPrcsAplctPrdInstrAsgnmDAO.column_name"/>
)VALUES(
#prcsAplctPrdOrd#
, #userId#
, #lctrPlanAtchFileId#
, #docAtchFileId#
, #asgnmAprvlCd#
, SYSDATE
, #asgnmAprvlId#
, #rmrks#
, SYSDATE
, #frstRegisterId#
, SYSDATE
, #lastUpdusrId#
)
</insert>
<!-- 강사 배정 등록 -->
<insert id="VEAPrcsAplctPrdInstrAsgnmDAO.insertAprvlCdEduAplctDetail" parameterClass="VEPrcsDetailVO">
/* VEAPrcsAplctPrdInstrAsgnmDAO.insertAprvlCdEduAplctDetail */
INSERT INTO vea_aplct_detail_info
(
prcs_aplct_prd_ord
, edu_aplct_ord
, aplct_state_cd
, frst_regist_pnttm
, frst_register_id
)
VALUES
(
#prcsAplctPrdOrd#
, #eduAplctOrd#
, #aplctStateCd#
, SYSDATE
, #frstRegisterId#
)
</insert>
<select id="VEAPrcsAplctPrdInstrAsgnmDAO.selectAprvlCdEduAplctDetail" parameterClass="VEPrcsDetailVO" resultClass="VEPrcsDetailVO">
select
prcs_aplct_prd_ord as prcsAplctPrdOrd
, edu_aplct_ord as eduAplctOrd
, aplct_state_cd as aplctStateCd
, frst_regist_pnttm as frstRegistPnttm
, frst_register_id as frstRegisterId
from vea_aplct_detail_info
where edu_aplct_ord = #eduAplctOrd#
and prcs_aplct_prd_ord = #prcsAplctPrdOrd#
</select>
<delete id="VEAPrcsAplctPrdInstrAsgnmDAO.updateAprvlCdEduAplctDetail" parameterClass="VEPrcsDetailVO">
UPDATE vea_aplct_detail_info SET
aplct_state_cd = #aplctStateCd#
WHERE
edu_aplct_ord = #eduAplctOrd#
AND prcs_aplct_prd_ord = #prcsAplctPrdOrd#
</delete>
<!-- 교육 신청자 상태 update -->
<update id="VEAPrcsAplctPrdInstrAsgnmDAO.udpateAprvlCdEduAplct" parameterClass="VEPrcsDetailVO">
/* VEAPrcsAplctPrdInstrAsgnmDAO.udpateAprvlCdEduAplct */
UPDATE VE_EDU_APLCT
SET aprvl_cd = #aprvlCd#
WHERE edu_aplct_ord IN
<iterate property="eduAplctOrdList" open="(" close=")" conjunction=",">
#eduAplctOrdList[]#
</iterate>
</update>
<!-- 교육 신청자 상태 update -->
<update id="VEAPrcsAplctPrdInstrAsgnmDAO.updateAplctStateCdListAjax" parameterClass="VEPrcsDetailVO">
/* VEAPrcsAplctPrdInstrAsgnmDAO.updateAplctStateCdListAjax */
UPDATE VEA_APLCT_DETAIL_INFO
SET aplct_state_cd = #aplctStateCd#
,last_updusr_id = #lastUpdusrId#
,last_updt_pnttm = sysdate
WHERE edu_aplct_ord IN
<iterate property="eduAplctOrdList" open="(" close=")" conjunction=",">
#eduAplctOrdList[]#
</iterate>
</update>
<!-- 교육 신청자 상태 update -->
<update id="VEAPrcsAplctPrdInstrAsgnmDAO.updateEduStateCdListAjax" parameterClass="VEPrcsDetailVO">
/* VEAPrcsAplctPrdInstrAsgnmDAO.updateEduStateCdListAjax */
UPDATE VEA_SSPN_IDMT_TRGT
SET edu_state_cd = #eduStateCd#
WHERE sspn_idtmt_trgt_ord IN
<iterate property="sspnIdtmtTrgtOrdList" open="(" close=")" conjunction=",">
#sspnIdtmtTrgtOrdList[]#
</iterate>
</update>
<!-- 강사 배정 등록 -->
<select id="VEAPrcsAplctPrdInstrAsgnmDAO.findByPrcsAplctPrdOrd" parameterClass="String" resultClass="VEAPrcsAplctPrdInstrAsgnmVO">
/* VEAPrcsAplctPrdInstrAsgnmDAO.findByPrcsAplctPrdOrd */
SELECT
<include refid="VEAPrcsAplctPrdInstrAsgnmDAO.select_column_name"/>
, vid.instr_nm as instrNm
, vid.phone
FROM
<include refid="VEAPrcsAplctPrdInstrAsgnmDAO.table_name"/> a
LEFT JOIN ve_instr_detail vid
ON a.user_id = vid.user_id
WHERE 1=1
AND a.prcs_aplct_prd_ord = #prcsAplctPrdOrd#
AND vid.aprvl_cd ='20' <!-- 변경 승인 -->
AND vid.instr_div ='20' <!-- 성인강사 -->
AND vid.use_yn ='Y'
</select>
<!-- 강의계획서 update -->
<update id="VEAPrcsAplctPrdInstrAsgnmDAO.updatLctrPlanAtchFileId" parameterClass="vEAPrcsAplctPrdInstrAsgnmVO">
/* VEAPrcsAplctPrdInstrAsgnmDAO.updatLctrPlanAtchFileId */
UPDATE VEA_PRCS_APLCT_PRD_INSTR_ASGNM
SET lctr_plan_atch_file_id = #lctrPlanAtchFileId#
, last_updusr_id = #lastUpdusrId#
, last_updt_pnttm = sysdate
WHERE prcs_aplct_prd_ord = #prcsAplctPrdOrd#
</update>
</sqlMap>

View File

@ -310,7 +310,8 @@
, (SELECT COUNT(*)
FROM ve_edu_aplct x
WHERE x.prcs_ord = a.prcs_aplct_prd_ord
AND x.sbmt_yn='Y'
AND x.sbmt_yn='Y'
AND x.aprvl_cd != 40 /*취소된 신청자 제거*/
) AS nosCnt1
/*
신청자 정보
@ -576,6 +577,9 @@
vpap.edu_strt_pnttm AS eduStrtPnttm ,
vpap.edu_ddln_pnttm AS eduDdlnPnttm ,
a.APRVL_CD AS aprvlCd ,
vadi.APLCT_STATE_CD AS aplctStateCd,
vadi.CNCL_ATCH_FILE_ID AS cnclAtchFileId,
vadi.CNCL_CN AS cnclCn,
CASE WHEN EXISTS ( /* 설문조사 */
SELECT 1
FROM lettnqestnrrslt lerslt
@ -654,4 +658,16 @@
ORDER BY a.strt_pnttm DESC
LIMIT 1
</select>
<select id="VEPrcsAplctPrdDAO.findByCnclInfo" parameterClass="VEPrcsDetailVO" resultClass="VEPrcsDetailVO">
/* VEPrcsAplctPrdDAO.findByCnclInfo */
SELECT
CNCL_ATCH_FILE_ID as cnclAtchFileId
, CNCL_CN as cnclCn
FROM
vea_aplct_detail_info a
WHERE
PRCS_APLCT_PRD_ORD = #prcsAplctPrdOrd#
AND EDU_APLCT_ORD = #eduAplctOrd#
</select>
</sqlMap>

View File

@ -28,6 +28,9 @@
<head>
<title>교육과정관리</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<script type="text/javascript" src="<c:url value='/js/web/popup.js'/>" ></script>
<script type="text/javascript">
$(document).ready(function(){

View File

@ -271,7 +271,8 @@
<c:out value="${list.prcsNm}"/>(<c:out value="${list.prcsAplctPrdOrd}"/>)
</td>
<td>
<c:out value="${list.eduStrtPnttm}"/>~<c:out value="${list.eduDdlnPnttm}"/>
<%-- <c:out value="${list.eduStrtPnttm}"/>~<c:out value="${list.eduDdlnPnttm}"/> --%>
<c:out value="${list.eduStrtPnttm}"/>
</td>
<td>
<c:out value="${list.nosCnt1}"/>/<c:out value="${list.nos}"/>

View File

@ -28,6 +28,7 @@
<head>
<title>교육과정관리</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<script type="text/javascript" src="<c:url value='/js/web/popup.js'/>" ></script>
<script type="text/javascript">
@ -88,9 +89,6 @@
function fn_delInstr(data){
document.instrForm.userId.value = data ;
var data = new FormData(document.getElementById("instrForm"));
if(confirm("삭제하시겠습니까?")){
// var url = "<c:url value='/kccadr/oprtn/cndtnSspnIdtmt/instrDelAjax.do'/>";
@ -122,26 +120,30 @@
// 강사 배치
function fncInstrAsgnmInfo(prcsAplctPrdOrd) {
var form = document.popForm;
form.prcsAplctPrdOrd.value = prcsAplctPrdOrd;
// form.action = "<c:url value='/kccadr/oprtn/cndtnSspnIdtmt/popup/fndthInstrAsgnmPopup.do'/>";
form.action = "<c:url value='/kccadr/oprtn/cndtnSspnIdtmt/popup/cndtnInstrAsgnmPopup.do'/>";
window.open("#", "_securityPop", "scrollbars = no, top=100px, left=100px, height=750px, width=950px");
form.target = "_securityPop";
form.submit();
}
function chkAll(obj) {
// 모든 체크박스의 상태를 헤더 체크박스의 상태와 동일하게 설정
$("input[name='chk']").prop('checked', $(obj).prop('checked'));
}
function updateEduAplctOrd(p_aprvlCd, p_prcsAplctPrdOrd) {
// 사용자 승인 반려 처리 : 체크박스X
function updateEduAplctOrd(p_aprvlCd, p_eduAplctOrd, p_prcsAplctPrdOrd){
// 기존에 있던 updateEduAplctOrdList function 사용하기 위한 function
var selectedEduAplctOrd = [];
selectedEduAplctOrd.push(p_eduAplctOrd);
var dataToSend = {
"eduAplctOrdList": selectedEduAplctOrd,
"aprvlCd": p_aprvlCd,
"prcsAplctPrdOrd": p_prcsAplctPrdOrd
};
commAjax(dataToSend);
}
// 사용자 승인 반려 처리 : 체크박스O
function updateEduAplctOrdList(p_aprvlCd, p_prcsAplctPrdOrd) {
var selectedEduAplctOrd = [];
// "chk" 이름을 가진 체크박스가 체크된 항목들을 순회
@ -150,7 +152,6 @@
selectedEduAplctOrd.push(eduAplctOrdValue);
});
console.log('selectedEduAplctOrd : ', selectedEduAplctOrd);
// 선택된 항목이 없으면 경고 메시지를 표시하고 함수를 종료
if (selectedEduAplctOrd.length === 0) {
alert("선택된 항목이 없습니다. 선택 후 다시 시도하세요.");
@ -163,6 +164,11 @@
"prcsAplctPrdOrd": p_prcsAplctPrdOrd
};
commAjax(dataToSend);
}
function commAjax(dataToSend){
var url = "<c:url value='/kccadr/oprtn/cndtnSspnIdtmt/updateEduAplctAprvlCdAjax.do'/>";
@ -186,7 +192,6 @@
console.error("Response:", jqXHR.responseText);
}
});
}
@ -219,11 +224,45 @@
});
}
}
// 강사 배치
function fncInstrAsgnmInfo(prcsAplctPrdOrd) {
var form = document.popForm;
form.prcsAplctPrdOrd.value = prcsAplctPrdOrd;
// form.action = "<c:url value='/kccadr/oprtn/cndtnSspnIdtmt/popup/fndthInstrAsgnmPopup.do'/>";
form.action = "<c:url value='/kccadr/oprtn/cndtnSspnIdtmt/popup/cndtnInstrAsgnmPopup.do'/>";
window.open("#", "_securityPop", "scrollbars = no, top=100px, left=100px, height=750px, width=950px");
form.target = "_securityPop";
form.submit();
}
function fnCnclPopup(eduAplctOrd, prcsAplctPrdOrd) {
var form = document.cnclPopupForm;
form.eduAplctOrd.value = eduAplctOrd;
form.prcsAplctPrdOrd.value = prcsAplctPrdOrd;
form.action = "<c:url value='/kccadr/oprtn/cndtnSspnIdtmt/popup/cnclPopup.do'/>";
openPopupAndSubmitForm('cnclPopupForm', 'cnclPopupForm', 700, 380);
}
</script>
</head>
<body>
<form id="cnclPopupForm" name="cnclPopupForm" method="post">
<input type="hidden" id="eduAplctOrd" name="eduAplctOrd" />
<input type="hidden" name="prcsAplctPrdOrd" id="prcsAplctPrdOrd" />
</form>
<form id="modyfiForm" name="modyfiForm">
<input type="hidden" id="modyDdlnCd" name="ddlnCd" />
<input type="hidden" name="prcsAplctPrdOrd" id="prcsAplctPrdOrd" value="<c:out value='${vEPrcsDetailVO.prcsAplctPrdOrd}' />"/>
@ -458,9 +497,8 @@
<th>신청자</th>
<th>신청일</th>
<th>확정여부</th>
<th>이수여부</th>
<th>설문조사</th>
<th>이수증</th>
<th>교육상태</th>
<th>승인처리</th>
</tr>
</thead>
<tbody>
@ -469,8 +507,14 @@
<c:forEach var="list" items="${listPrcsAplct}" varStatus="status">
<tr>
<td>
<input name="chk" class="${list.asgnmAprvlCd}"
value="${list.eduAplctOrd}" title="Check" type="checkbox"/>
<c:choose>
<c:when test="${list.aplctStateCd ne 30 and list.aplctStateCd ne 35}">
<input name="chk" class="${list.asgnmAprvlCd}"
value="${list.eduAplctOrd}" title="Check" type="checkbox"/>
</c:when>
<c:otherwise>
</c:otherwise>
</c:choose>
</td>
<td>
<c:out value="${list.userNm}"/>
@ -483,34 +527,27 @@
</td>
<td>
<ve:code codeId="VEA003" code="${list.aplctStateCd}"/>
<!-- 취소요청 내용이 있고 미이수, 이수인 상태 -->
<c:if test="${not empty list.cnclCn and (list.aplctStateCd eq 10 or list.aplctStateCd eq 20)}">
(취소-반려)
</c:if>
</td>
<td>
<c:choose>
<c:when test="${list.qestnrId }">
<button type="button" class="btn_type04" onclick="fn_qestnr('<c:out value="${list.qestnrId }"/>');">설문결과</button>
<c:when test="${list.aplctStateCd ne 30 and list.aplctStateCd ne 35}">
<button type="button" class="btn_type04" onclick="updateEduAplctOrd('20', '<c:out value="${list.eduAplctOrd }" />', '<c:out value="${info.prcsAplctPrdOrd }"/>')">승인</button>
<button type="button" class="btn_type05" onclick="updateEduAplctOrd('30', '<c:out value="${list.eduAplctOrd }" />', '<c:out value="${info.prcsAplctPrdOrd }"/>')">반려</button>
</c:when>
<c:otherwise>
미입력
<button type="button" class="btn_type05" onclick="fnCnclPopup('<c:out value="${list.eduAplctOrd }" />', '<c:out value="${info.prcsAplctPrdOrd }"/>')">취소요청</button>
</c:otherwise>
</c:choose>
</td>
<td>
<c:choose>
<c:when test="${list.qestnrId }">
<%-- <button type="button" class="btnType04" onclick="fn_qestnr('<c:out value="${list.qestnrId }"/>');">출력</button> --%>
<button type="button" class="btn_type04">출력</button>
</c:when>
<c:otherwise>
<button type="button" class="btn_type04">이수증(테스트)</button>
</c:otherwise>
</c:choose>
</td>
</tr>
</c:forEach>
</c:when>
<c:otherwise>
<tr>
<td colspan="7">신청자가 없습니다.</td>
<td colspan="6">신청자가 없습니다.</td>
</tr>
</c:otherwise>
</c:choose>
@ -530,8 +567,8 @@
</div>
<div class="btn_right">
<button type="button" class="btn_type04" onclick="location.href='<c:url value="/kccadr/oprtn/cndtnSspnIdtmt/cndtnEduPrcsAplctPrdMngList.do" />'; return false;">강의목록</button>
<button type="button" class="btn_type04" onclick="updateEduAplctOrd(30, '<c:out value="${info.prcsAplctPrdOrd }" />'); return false;">접수취소(반려)</button>
<button type="button" class="btn_type04" onclick="updateEduAplctOrd(20, '<c:out value="${info.prcsAplctPrdOrd }" />'); return false;">교육승인</button>
<button type="button" class="btn_type04" onclick="updateEduAplctOrdList(30, '<c:out value="${info.prcsAplctPrdOrd }" />'); return false;">접수취소(반려)</button>
<button type="button" class="btn_type04" onclick="updateEduAplctOrdList(20, '<c:out value="${info.prcsAplctPrdOrd }" />'); return false;">교육승인</button>
</div>
</div>

View File

@ -263,7 +263,7 @@
<th>대면구분</th>
<th>과정명</th>
<th>신청기간</th>
<th>교육기간</th>
<th>교육일자</th>
<th>신청자/정원</th>
<th>상태</th>
<!-- <th>공개여부</th> -->
@ -285,7 +285,8 @@
<c:out value="${list.strtPnttm}"/>~<c:out value="${list.endPnttm}"/>
</td>
<td>
<c:out value="${list.eduStrtPnttm}"/>~<c:out value="${list.eduDdlnPnttm}"/>
<%-- <c:out value="${list.eduStrtPnttm}"/>~<c:out value="${list.eduDdlnPnttm}"/> --%>
<c:out value="${list.eduStrtPnttm}"/>
</td>
<td>
<c:out value="${list.nosCnt1}"/>/<c:out value="${list.nos}"/>

View File

@ -230,7 +230,7 @@
<tr>
<th scope="row">교육부분</th>
<td>
<input type="text" name="prcsDiv" id="prcsDiv" readonly="readonly" value="${prcsDivNm }"/>
<input type="text" id="prcsDiv" readonly="readonly" value="${prcsDivNm }"/>
<%-- <ve:select codeId="VEA001" name="prcsDiv" id="prcsDiv" css="class='sel_type1'" selectedValue="${info.prcsDiv}"/> --%>
</td>
</tr>

View File

@ -0,0 +1,139 @@
<!DOCTYPE html>
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
<%@ taglib prefix="validator" uri="http://www.springmodules.org/tags/commons-validator" %>
<%@ taglib prefix="ve" uri="/WEB-INF/tlds/kcc_tld.tld"%>
<%
/**
* @Class Name : instrAsgnmPopup.jsp
* @Description : 강사배치 팝업
* @Modification Information
* @
* @ 수정일 수정자 수정내용
* @ ------- -------- ---------------------------
* @ 2021.08.09 김봉호 최초 생성
* @author 안주영
* @since 2022.1.8
* @version 1.0
* @see
*
*/
%>
<html lang="ko">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<%-- <script type="text/javascript" src="<c:url value='/js/ve/tmapJS.js'/>"></script> --%>
<script type="text/javascript">
</script>
<title>강사배치 팝업</title>
<script type="text/javaScript" language="javascript">
$(document).ready(function(){
});
function fncPopClose(){
self.close();
}
function fn_updateCnclUpdate(aplctStateCd, aprvlCd, p_msg) {
var msg = p_msg;
var form = document.updateForm ;
form.aplctStateCd.value = aplctStateCd ;
form.aprvlCd.value = aprvlCd ;
var data1 = new FormData(document.getElementById("updateForm"));
if(confirm(msg+" 하시겠습니까?")){
$.ajax({
type:"POST",
url:"${pageContext.request.contextPath}/kccadr/oprtn/cndtnSspnIdtmt/updateAplctStateCdAjax_only.do",
data: data1,
dataType:'json',
async: false,
processData: false,
contentType: false,
cache: false,
success:function(returnData){
if(returnData.result == 'success'){
alert("처리 되었습니다.");
window.opener.location.reload();
fncPopClose();
}
},
error:function(request , status, error){
alert("code:"+request.status+"\n"+"message:"+request.responseText+"\n"+"error:"+error);
}
});
}
}
</script>
</head>
<body>
<div class="area_popup supm_popup">
<div class="cont_popup">
<form id="updateForm" name="updateForm" method="post">
<input type="hidden" id="prcsAplctPrdOrd" name="prcsAplctPrdOrd" value="<c:out value="${vEPrcsDetailVO.prcsAplctPrdOrd }" />">
<input type="hidden" id="eduAplctOrd" name="eduAplctOrd" value="<c:out value="${vEPrcsDetailVO.eduAplctOrd }" />">
<input type="hidden" id="aplctStateCd" name="aplctStateCd" value="">
<input type="hidden" id="aprvlCd" name="aprvlCd" value="">
</form>
<form:form id="listForm" name="listForm" method="post" onsubmit="return false;">
<div class="area_popup">
<div class="cont_popup">
<div class="pop_tb_tit01">
<p>교육취소 내용</p>
</div>
<div>
<table class="pop_tb_type02">
<colgroup>
<col style="width: 9%;">
<col style="width: 15%;">
</colgroup>
<tbody>
<tr>
<th scope="row"><p>구분</p></th>
<td><c:out value="${info.cnclCn }" /></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.cnclAtchFileId}" />
<c:param name="pdf_view" value="Y" />
</c:import>
</td>
</tr>
</tbody>
</table>
</div>
<!-- //page -->
<div class="btn_wrap_pop btn_layout01">
<div class="btn_left">
</div>
<div class="btn_center">
<button type="button" class="btn_type05" onclick="fn_updateCnclUpdate(30, 40, '취소');">승인</button>
<button type="button" class="btn_type02" onclick="fn_updateCnclUpdate(10, '', '반려');">반려</button>
</div>
<div class="btn_right">
</div>
</div>
</div>
</div>
</form:form>
</div>
</div>
</body>
</html>

View File

@ -332,10 +332,8 @@
<tr>
<th scope="row">관할청</th>
<td>
<ve:select codeId="VEA008" name="cmptntAthrt" id="cmptntAthrt" css="class='sel_type1'"
selectedText="${info.cmptntAthrt }" defaultValue=""
defaultText='선택'
/>
<ve:code codeId="VEA008" code="${info.cmptntAthrt }"/>
<input type="hidden" name="cmptntAthrt" value="${info.cmptntAthrt }">
</td>
</tr>
<tr>

View File

@ -1,367 +1,508 @@
<%@ page contentType="text/html; charset=utf-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
<%@ taglib prefix="ve" uri="/WEB-INF/tlds/kcc_tld.tld"%>
<%@ taglib prefix="un" uri="http://jakarta.apache.org/taglibs/unstandard-1.0" %>
<%@ taglib prefix="kc" uri="/WEB-INF/tlds/kcc_tld.tld"%>
<un:useConstants var="VeConstants" className="kcc.ve.cmm.VeConstants" />
<title>교육신청 목록 > 성인 찾아가는 저작권 교육 > 한국저작권위원회 저작권 교육 시스템</title>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<script type="text/javaScript" language="javascript">
$(document).ready(function(){
});
function fncEduReg(prcsAplctPrdOrd){
var regForm = document.regForm;
regForm.prcsAplctPrdOrd.value = prcsAplctPrdOrd;
var data = new FormData(document.getElementById("regForm"));
if(confirm("신청하시겠습니까?")){
var url = "${pageContext.request.contextPath}/web/ve/aplct/fndtnEnhanceTrn/eduRegAjax.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("저장되었습니다.");
fncGoList();
}
},
error:function(request , status, error){
alert("code:"+request.status+"\n"+"message:"+request.responseText+"\n"+"error:"+error);
}
});
}
}
function linkPage(pageNo){
var listForm = document.listForm ;
listForm.pageIndex.value = pageNo ;
listForm.action = "<c:url value='/web/ve/aplct/fndtnEnhanceTrn/eduAplctList.do'/>";
listForm.submit();
}
function goEduAplctList(prcsAplctPrdOrd){
var goEduAplctListForm = document.goEduAplctListForm ;
goEduAplctListForm.action = "<c:url value='/web/ve/aplct/fndtnEnhanceTrn/eduAplctList.do'/>";
goEduAplctListForm.submit();
}
function fncGoList(){
linkPage(1);
}
function fncReset(thisObj){
var targetObj = $(thisObj).closest('.list_top').find('select,input');
$.each(targetObj, function(){
$(this).val('');
});
}
function fncGoDetail(prcsAplctPrdOrd){
var viewForm = document.viewForm ;
viewForm.prcsAplctPrdOrd.value = prcsAplctPrdOrd ;
viewForm.action = "<c:url value='/web/ve/aplct/fndtnEnhanceTrn/eduAplctDetail.do'/>";
viewForm.submit();
}
</script>
<!-- content -->
<div class="cont_wrap" id="sub">
<form name="regForm" id="regForm">
<input type="hidden" name="prcsAplctPrdOrd">
</form>
<form name="viewForm" id="viewForm">
<input type="hidden" name="prcsAplctPrdOrd">
</form>
<form name="goEduAplctListForm" id="goEduAplctListForm">
</form>
<form:form id="listForm" name="listForm" commandName="vEPrcsDetailVO">
<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" name="eduAplctOrd" id="eduAplctOrd" value="" />
<div class="cont_tit">
<h2>신청목록</h2>
<div class="sns_go">
<button type="button" title="새창열림"><img src="${pageContext.request.contextPath}/visitEdu/usr/publish/images/content/facebook_icon.png" alt="페이스북 바로가기"></button>
<button type="button" title="새창열림"><img src="${pageContext.request.contextPath}/visitEdu/usr/publish/images/content/twitter_icon.png" alt="트위터 바로가기"></button>
</div>
</div>
<div class="list_top">
<div class="list_top_left">
<label for="searchStatus" class="label">신청상태 선택</label>
<select class="selType1" id="searchStatus" name="searchStatus">
<option ${vEPrcsDetailVO.searchStatus eq '' ? 'selected' : ''} value="">전체</option>
<option ${vEPrcsDetailVO.searchStatus eq VeConstants.STATUS_CD_SBMT ? 'selected' : ''} value="${VeConstants.STATUS_CD_SBMT}">교육신청</option>
<option ${vEPrcsDetailVO.searchStatus eq VeConstants.STATUS_CD_EDT_REQ ? 'selected' : ''} value="${VeConstants.STATUS_CD_EDT_REQ}">수정요청</option>
<option ${vEPrcsDetailVO.searchStatus eq VeConstants.STATUS_CD_EDT_CMPT ? 'selected' : ''} value="${VeConstants.STATUS_CD_EDT_CMPT}">수정완료</option>
<option ${vEPrcsDetailVO.searchStatus eq VeConstants.STATUS_CD_CAN ? 'selected' : ''} value="${VeConstants.STATUS_CD_CAN}">교육취소</option>
<option ${vEPrcsDetailVO.searchStatus eq VeConstants.STATUS_CD_EDU_SELCT ? 'selected' : ''} value="${VeConstants.STATUS_CD_EDU_SELCT}">교육확정</option>
</select>
</div>
<div class="btn_wrap">
<div class="calendar_wrap">
<%-- <input type="text" class="calendar" id="searchStartDt" name="searchStartDt" title="시작일 선택" value="${vEPrcsDetailVO.searchStartDt}"> --%>
<duet-date-picker identifier="date" name="searchStartDt" class="startDate" value="${vEPrcsDetailVO.searchStartDt}"></duet-date-picker>
</div>
~
<div class="calendar_wrap">
<%-- <input type="text" class="calendar" id="searchEndDt" name="searchEndDt" title="종료일 선택" value="${vEPrcsDetailVO.searchEndDt}"> --%>
<duet-date-picker identifier="date" name="searchEndDt" class="endDate" value="${vEPrcsDetailVO.searchEndDt}"></duet-date-picker>
</div>
<script src="${pageContext.request.contextPath}/visitEdu/usr/publish/script/duetdatepicker.js"></script>
<button type="button" class="btnType01" onclick="fncGoList();">검색</button>
<button type="button" class="btnType02" onclick="fncReset(this);">초기화</button>
</div>
</div>
<!-- list -->
<div class="tb_list01">
<table>
<caption>교육 목록표</caption>
<colgroup>
<col style="width:35%;">
<col style="width:;">
<col style="width:13%;">
<col style="width:13%;">
<col style="width:13%;">
</colgroup>
<thead>
<tr>
<th>교육과정</th>
<th>교육일자</th>
<th>신청결과</th>
<th>설문조사</th>
<th>이수증</th>
</tr>
</thead>
<tbody>
<c:forEach var="list" items="${list}" varStatus="status">
<tr>
<td onclick="fncGoDetail('<c:out value="${list.prcsAplctPrdOrd}"/>');" style="cursor:pointer;">
<c:out value="${list.prcsNm}"/>(<c:out value="${list.prcsAplctPrdOrd}"/>)
</td>
<td>
<%-- <c:out value="${list.eduStrtPnttm}"/>~<c:out value="${list.eduDdlnPnttm}"/> --%>
<c:out value="${list.eduStrtPnttm}"/>
</td>
<td>
<!--
10 요청
120 선정완료
140 선정취소
20 승인
230 대기
30 반려
40 취소
60 교육확정
70 수정요청
80 수정완료
90 교육미확정
-->
<kc:code codeId="VE0003" code="${list.aprvlCd}"/>
<c:if test="${list.aprvlCd eq 10
or list.aprvlCd eq 120
or list.aprvlCd eq 20
or list.aprvlCd eq 230
}">
<button type="button" title="신청취소" class="btnType02" data-tooltip="sub01_pop01">취소</button>
</c:if>
</td>
<td>
<!-- 신청 승인상태 20 and 현재가 교육종료보다 이후 체크 1 -->
<c:choose>
<c:when test="${list.aprvlCd eq 20 and list.dateChk eq 1 and not list.qestRsltExists }">
<button type="button" title="설문등록" class="btnType04" data-tooltip="edu_in">설문등록</button>
</c:when>
<c:when test="${list.aprvlCd eq 20 and list.dateChk eq 1 and list.qestRsltExists }">
설문완료
</c:when>
<c:otherwise>
-
</c:otherwise>
</c:choose>
</td>
<td>
<c:choose>
<c:when test="${list.qestRsltExists }">
<button type="button" title="출력" class="btnType03">출력</button>
</c:when>
<c:when test="${list.dateChk eq 1 and not list.qestRsltExists}">
교육완료
</c:when>
<c:otherwise>
-
</c:otherwise>
</c:choose>
<button type="button" title="이수증" class="btnType01" onclick="fncCmpltCrtfc('<c:out value="${list.prcsAplctPrdOrd}"/>', '<c:out value="${list.eduAplctOrd}"/>');">이수증테스트</button>
</td>
<!-- <td>-</td> -->
</tr>
</c:forEach>
<c:if test="${empty list}">
<tr><td colspan="5"><spring:message code="common.nodata.msg" /></td></tr>
</c:if>
</tbody>
</table>
</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="btnType01" onclick="location.href='<c:url value="/web/ve/aplct/sspnIdtmt/eduAplctList.do" />'">강의목록</button>
</div>
</div>
<!-- page -->
<div class="page">
<ui:pagination paginationInfo = "${paginationInfo}" type="image" jsFunction="linkPage" />
</div>
</form:form>
</div>
<!-- 교육신청 취소 -->
<div class="tooltip-wrap">
<div class="popup_wrap popType01" tabindex="0"
data-tooltip-con="sub01_pop01" data-focus="sub01_pop01"
data-focus-prev="sub01_pop01_close">
<div class="popup_tit">
<p>교육신청 취소</p>
<button class="btn_popup_close tooltip-close"
data-focus="sub01_pop01_close" title="팝업 닫기">
<i></i>
</button>
</div>
<div class="popup_cont">
<div class="cont_body">
<div class="pop_tb_type01">
<table>
<colgroup>
<col style="width: 22%;">
<col style="">
</colgroup>
<tr>
<th>첨부파일</th>
<td>
<div class="btn_wrap">
<button type="button" class="btnType01 right">파일찾기</button>
</div>
<div class="file_wrap">
<table>
<colgroup>
<col style="width: auto;">
<col style="width: 15%;">
<col style="width: 15%;">
</colgroup>
<thead>
<th>파일 명</th>
<th>종류</th>
<th>크기</th>
</thead>
<tbody class="tb_file_before">
<tr>
<td colspan="3">
<p>
첨부하실 파일을 <span>마우스끌어서</span> 넣어주세요.
</p>
</td>
</tr>
</tbody>
</table>
</div>
</td>
</tr>
<tr>
<th>취소사유</th>
<td><textarea></textarea></td>
</tr>
</table>
</div>
<div class="pop_btn_wrap btn_layout01">
<div class="btn_left"></div>
<div class="btn_center">
<button type="button" class="btnType05">제출</button>
<button type="button" class="btnType02 tooltip-close"
data-focus="imsi-close" data-focus-next="imsi">취소</button>
</div>
<div class="btn_right"></div>
</div>
</div>
</div>
</div>
</div>
<!--// 교육신청 취소 -->
<script src="http://119.193.215.98:8093/ReportingServer/html5/js/crownix-viewer.min.js"></script>
<link rel="stylesheet" type="text/css" href="http://119.193.215.98:8093/ReportingServer/html5/css/crownix-viewer.min.css">
<script>
/*
* 오버레이 방식
*/
function fncCmpltCrtfc(p_prcsAplctPrdOrd, p_eduAplctOrd) {
var viewer = new m2soft.crownix.Viewer('http://119.193.215.98:8093/ReportingServer/service');
//viewer.openFile('cmplt_crtfc_20231030.mrd', '/rfn [jsonsample_red_2.json]');
//viewer.openFile('cmplt_crtfc_20231030.mrd','/rexport [5]');
//viewer.openFile('sample.mrd','/rfn [sample.txt]');
//viewer.hideToolbarItem(["save"]);
//viewer.openFile('sample.mrd');
viewer.hideToolbarItem([ "save" ]);
//viewer.showToolbarItem(["print"]);
viewer.showToolbarItem([ "print_pdf" ]);
//viewer.openFile('cmplt_crtfc_20231030.mrd');
//viewer.openFile('cmplt_crtfc_20231030.mrd', '/rfn [cmplt_crtfc_20231030.json]');
viewer
.openFile(
'cmplt_crtfc_20231030.mrd',
'/rf [http://119.193.215.98:9989/offedu/ve/aplct/sspnIdtmt/sspnIdtmtEduAplctCmpltCrtfcAjax.do?prcsAplctPrdOrd='
+ p_prcsAplctPrdOrd
+ '&eduAplctOrd='
+ p_eduAplctOrd + ']');
/*
var viewer = new m2soft.crownix.Viewer('http://192.168.0.176:8093/ReportingServer/service',
'crownix-viewer');
viewer.openFile('cmplt_crtfc_20231030.mrd');
*/
}
/*
window.onload = function(){
var viewer = new m2soft.crownix.Viewer('http://192.168.0.176:8093/ReportingServer/service');
viewer.openFile('json_subject.mrd', '/rfn [jsonsample_red_2.json]');
};
*/
<%@ page contentType="text/html; charset=utf-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
<%@ taglib prefix="ve" uri="/WEB-INF/tlds/kcc_tld.tld"%>
<%@ taglib prefix="un" uri="http://jakarta.apache.org/taglibs/unstandard-1.0" %>
<%@ taglib prefix="kc" uri="/WEB-INF/tlds/kcc_tld.tld"%>
<un:useConstants var="VeConstants" className="kcc.ve.cmm.VeConstants" />
<title>교육신청 목록 > 성인 찾아가는 저작권 교육 > 한국저작권위원회 저작권 교육 시스템</title>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<spring:eval expression="@property['Globals.Innorix.License']" var="license"/>
<script src="<c:url value='/innorix/innorix_${license}.js' />"></script>
<script src="<c:url value='/js/kccadr/innorixCommon.js' />"></script>
<link rel="stylesheet" href="<c:url value='/innorix/innorix.css'/>" type="text/css">
<style>
input:disabled {
background-color: #f9f9f9 !important;
}
input:read-only {
background-color: #f9f9f9 !important;
}
#fileControl{margin: 8px 0 0 0; border: 1px solid #d5d5d5; border-radius: 5px; height: 150px !important; background-color: #fafafa;}
.innorix_basic div.irx_filetree.empty-uploader{background: url(/offedu/visitEdu/usr/publish/images/content/dropzone_file_before.png) no-repeat center; height: 150px !important;}
.irx_filetree,.innorix_basic div.irx_infoBox{height: 150px !important;}
</style>
<script type="text/javaScript" language="javascript">
$(document).ready(function(){
//대용량 업로드 세팅
/*
* ==================================================================
* INNORIX
* 파일전송 컨트롤 생성
* ==================================================================
*/
control = innorix.create({
el: '#fileControl' // 컨트롤 출력 HTML 객체 ID
, transferMode: 'both' // 업로드, 다운로드 혼합사용
, installUrl: '<c:url value="/innorix/install/install.html" />' // Agent 설치 페이지
, uploadUrl: '<c:url value="/innorix/exam/upload.jsp" />' // 업로드 URL
, height:40
, width: 650
, maxFileCount : 1 // 첨부파일 최대 갯수
, allowExtension : ["txt","xls","xlsx","png","jpg","jpeg","doc","ppt","hwp","pdf","zip"]
// 가능한 확장자 txt|xls|xlsx|png|jpg|jpeg|doc|ppt|hwp|pdf|zip
});
// 업로드 완료 후 이벤트
control.on('uploadComplete', function (p) {
console.log('uploadComplete : ', p);
fn_callBackInnorix(p.files); // 파일 정보 DB isnert function
});
});
/*
* 교육 확정일떄 취소를하면 팝업이 열림
* 열리기전 데이터를 form에 넣고 팝업 오픈
*/
function fn_cnclUpdate(eduAplctOrd, prcsAplctPrdOrd){
var cnclForm = document.cnclForm;
cnclForm.eduAplctOrd.value = eduAplctOrd;
cnclForm.prcsAplctPrdOrd.value = prcsAplctPrdOrd;
}
function fn_veEduAplctCnclUpdate(eduAplctOrd){
var form = document.veEduAplctForm;
form.eduAplctOrd.value = eduAplctOrd;
var data = new FormData(document.getElementById("veEduAplctForm"));
if(confirm("취소 신청하시겠습니까?")){
var url = "${pageContext.request.contextPath}/web/ve/aplct/sspnIdtmt/cnclUpdateAjax.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("취소되었습니다.");
fncGoList();
}
},
error:function(request , status, error){
alert("code:"+request.status+"\n"+"message:"+request.responseText+"\n"+"error:"+error);
}
});
}
}
function linkPage(pageNo){
var listForm = document.listForm ;
listForm.pageIndex.value = pageNo ;
listForm.action = "<c:url value='/web/ve/aplct/sspnIdtmt/sspnIdtmtEduAplctList.do'/>";
listForm.submit();
}
function fncGoList(){
linkPage(1);
}
function fncReset(thisObj){
var targetObj = $(thisObj).closest('.list_top').find('select,input');
$.each(targetObj, function(){
$(this).val('');
});
}
function fncGoDetail(prcsAplctPrdOrd){
var viewForm = document.viewForm ;
viewForm.prcsAplctPrdOrd.value = prcsAplctPrdOrd ;
viewForm.action = "<c:url value='/web/ve/aplct/sspnIdtmt/eduAplctDetail.do'/>";
viewForm.submit();
}
//서류 요청
function insetDocReq(){
//서류명 체크
if($("input[name=cnclCn]").val() == ''){
alert("취소사유를 입력해 주세요");
return false;
}
//첨부파일 체크 및 요청
if(confirm("제출 하시겠습니까?")){
if(control.getUploadFiles().length > 0){
var postObj = new Object();
postObj.innoDirPath = $('#innoDirPath').val();
control.setPostData(postObj); // 업로드시 함께 전달될 POST Param 추가
control.upload(); // 업로드 시작
}else{
alert("등록된 첨부파일이 없습니다.");
return false;
}
}
}
//서류 요청 양식 업로드 후 콜백
function fn_callBackInnorix(data){
var url = "<c:url value='/web/common/insertInnorixSspnCnClAjax.do' />";
//선택된 강사 ID
var sendData = {
"fileType": "sspnForm"
, "eduAplctOrd": $('#cnclForm #eduAplctOrd').val()
, "prcsAplctPrdOrd": $('#cnclForm #prcsAplctPrdOrd').val()
, "innorixFileListVO": data
, "cnclCn" : $('#cnclCn').val()
, "successMsg" : "등록이 완료되었습니다."
}
console.log('sendData : ', sendData);
/*
* 공통 : innorixCommon.js
* fn_innorixCmmAjax() 호출 후 status가 성공(OK)이면 실행
*/
if(fn_innorixCmmAjax(sendData, url) == "OK")
{
location.reload(true);
}
}
</script>
<!-- content -->
<div class="cont_wrap" id="sub">
<form id="veEduAplctForm" name="veEduAplctForm">
<input type="hidden" id="eduAplctOrd" name="eduAplctOrd">
<input type="hidden" id="aprvlCd" name="aprvlCd" value="40">
</form>
<form id="cnclForm" name="cnclForm">
<input type="hidden" id="eduAplctOrd" name="eduAplctOrd">
<input type="hidden" id="prcsAplctPrdOrd" name="prcsAplctPrdOrd">
</form>
<form name="regForm" id="regForm">
<input type="hidden" name="prcsAplctPrdOrd">
</form>
<form name="viewForm" id="viewForm">
<input type="hidden" name="prcsAplctPrdOrd">
</form>
<form name="goEduAplctListForm" id="goEduAplctListForm">
</form>
<form:form id="listForm" name="listForm" commandName="vEPrcsDetailVO">
<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" name="eduAplctOrd" id="eduAplctOrd" value="" />
<div class="cont_tit">
<h2>신청목록</h2>
<div class="sns_go">
<button type="button" title="새창열림"><img src="${pageContext.request.contextPath}/visitEdu/usr/publish/images/content/facebook_icon.png" alt="페이스북 바로가기"></button>
<button type="button" title="새창열림"><img src="${pageContext.request.contextPath}/visitEdu/usr/publish/images/content/twitter_icon.png" alt="트위터 바로가기"></button>
</div>
</div>
<div class="list_top">
<div class="list_top_left">
<label for="searchStatus" class="label">신청상태 선택</label>
<select class="selType1" id="searchStatus" name="searchStatus">
<option ${vEPrcsDetailVO.searchStatus eq '' ? 'selected' : ''} value="">전체</option>
<option ${vEPrcsDetailVO.searchStatus eq VeConstants.STATUS_CD_SBMT ? 'selected' : ''} value="${VeConstants.STATUS_CD_SBMT}">교육신청</option>
<option ${vEPrcsDetailVO.searchStatus eq VeConstants.STATUS_CD_EDT_REQ ? 'selected' : ''} value="${VeConstants.STATUS_CD_EDT_REQ}">수정요청</option>
<option ${vEPrcsDetailVO.searchStatus eq VeConstants.STATUS_CD_EDT_CMPT ? 'selected' : ''} value="${VeConstants.STATUS_CD_EDT_CMPT}">수정완료</option>
<option ${vEPrcsDetailVO.searchStatus eq VeConstants.STATUS_CD_CAN ? 'selected' : ''} value="${VeConstants.STATUS_CD_CAN}">교육취소</option>
<option ${vEPrcsDetailVO.searchStatus eq VeConstants.STATUS_CD_EDU_SELCT ? 'selected' : ''} value="${VeConstants.STATUS_CD_EDU_SELCT}">교육확정</option>
</select>
</div>
<div class="btn_wrap">
<div class="calendar_wrap">
<%-- <input type="text" class="calendar" id="searchStartDt" name="searchStartDt" title="시작일 선택" value="${vEPrcsDetailVO.searchStartDt}"> --%>
<duet-date-picker identifier="date" name="searchStartDt" class="startDate" value="${vEPrcsDetailVO.searchStartDt}"></duet-date-picker>
</div>
~
<div class="calendar_wrap">
<%-- <input type="text" class="calendar" id="searchEndDt" name="searchEndDt" title="종료일 선택" value="${vEPrcsDetailVO.searchEndDt}"> --%>
<duet-date-picker identifier="date" name="searchEndDt" class="endDate" value="${vEPrcsDetailVO.searchEndDt}"></duet-date-picker>
</div>
<script src="${pageContext.request.contextPath}/visitEdu/usr/publish/script/duetdatepicker.js"></script>
<button type="button" class="btnType01" onclick="fncGoList();">검색</button>
<button type="button" class="btnType02" onclick="fncReset(this);">초기화</button>
</div>
</div>
<!-- list -->
<div class="tb_list01">
<table>
<caption>교육 목록표</caption>
<colgroup>
<col style="width:35%;">
<col style="width:10%;">
<col style="width:13%;">
<col style="width:13%;">
<col style="width:13%;">
</colgroup>
<thead>
<tr>
<th>교육과정</th>
<th>교육일자</th>
<th>신청결과</th>
<th>설문조사</th>
<th>이수증</th>
</tr>
</thead>
<tbody>
<c:forEach var="list" items="${list}" varStatus="status">
<tr>
<td onclick="fncGoDetail('<c:out value="${list.prcsAplctPrdOrd}"/>');" style="cursor:pointer;">
<c:out value="${list.prcsNm}"/>(<c:out value="${list.prcsAplctPrdOrd}"/>)
</td>
<td>
<%-- <c:out value="${list.eduStrtPnttm}"/>~<c:out value="${list.eduDdlnPnttm}"/> --%>
<c:out value="${list.eduStrtPnttm}"/>
</td>
<td>
<!--
10 요청
120 선정완료
140 선정취소
20 승인
230 대기
30 반려
40 취소
60 교육확정
70 수정요청
80 수정완료
90 교육미확정
-->
<c:choose>
<c:when test="${not empty list.aplctStateCd }">
<!--
VEA003 10 미이수
VEA003 20 이수완료
VEA003 30 취소
VEA003 35 취소요청
-->
<kc:code codeId="VEA003" code="${list.aplctStateCd }"/>
<!-- 취소요청 내용이 있고 미이수, 이수인 상태 -->
<c:if test="${not empty list.cnclCn and (list.aplctStateCd eq 10 or list.aplctStateCd eq 20)}">
(취소-반려)
</c:if>
<c:if test="${list.aplctStateCd eq 10 }"> <!--교육 승인된 상태 (미이수)일 때만 취소버튼 노출 -->
<button type="button" title="신청취소" class="btnType02" data-tooltip="sub37_pop02" onclick="fn_cnclUpdate('${list.eduAplctOrd }','${list.prcsAplctPrdOrd }')">취소</button>
</c:if>
</c:when>
<c:otherwise>
<kc:code codeId="VE0003" code="${list.aprvlCd}"/>
<c:if test="${list.aprvlCd eq 10 }">
<button type="button" title="신청취소" class="btnType02" onclick="fn_veEduAplctCnclUpdate('${list.eduAplctOrd }')">취소</button>
</c:if>
</c:otherwise>
</c:choose>
<!-- <button type="button" title="신청취소" class="btnType02" data-tooltip="sub01_pop01">취소</button> -->
</td>
<td>
<!-- 신청 승인상태 20 and 현재가 교육종료보다 이후 체크 1 -->
<!--
취소상태
list.aplctStateCd ne 30
list.aprvlCd ne 40
-->
<c:choose>
<c:when test="${list.aprvlCd eq 20
and list.dateChk eq 1
and not list.qestRsltExists
and list.aplctStateCd ne 30
and list.aprvlCd ne 40
}">
<button type="button" title="설문등록" class="btnType04" data-tooltip="edu_in">설문등록</button>
</c:when>
<c:when test="${list.aprvlCd eq 20 and list.dateChk eq 1 and list.qestRsltExists }">
설문완료
</c:when>
<c:otherwise>
-
</c:otherwise>
</c:choose>
</td>
<td>
<!--
취소상태
list.aplctStateCd ne 30
list.aprvlCd ne 40
-->
<c:choose>
<c:when test="${list.qestRsltExists }">
<button type="button" title="출력" class="btnType03">출력</button>
</c:when>
<c:when test="${list.dateChk eq 1
and not list.qestRsltExists
and list.aplctStateCd ne 30
and list.aprvlCd ne 40
}">
교육완료
</c:when>
<c:otherwise>
-
</c:otherwise>
</c:choose>
<button type="button" title="이수증" class="btnType01" onclick="fncCmpltCrtfc('<c:out value="${list.prcsAplctPrdOrd}"/>', '<c:out value="${list.eduAplctOrd}"/>');">이수증테스트</button>
</td>
<!-- <td>-</td> -->
</tr>
</c:forEach>
<c:if test="${empty list}">
<tr><td colspan="5"><spring:message code="common.nodata.msg" /></td></tr>
</c:if>
</tbody>
</table>
</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="btnType01" onclick="location.href='<c:url value="/web/ve/aplct/sspnIdtmt/eduAplctList.do" />'">강의목록</button>
</div>
</div>
<!-- page -->
<div class="page">
<ui:pagination paginationInfo = "${paginationInfo}" type="image" jsFunction="linkPage" />
</div>
</form:form>
</div>
<!-- 서류요청 팝업 -->
<div class="tooltip-wrap">
<div class="popup_wrap popType05" tabindex="0" data-tooltip-con="sub37_pop02" data-focus="sub37_pop02" data-focus-prev="sub37_pop02_close">
<div class="popup_tit">
<p>취소 사용 제출</p>
<button class="btn_popup_close tooltip-close" data-focus="sub37_pop02_close" title="팝업 닫기"><i></i></button>
</div>
<div class="popup_cont">
<div class="cont_body">
<div class="popup_table_top">
<button type="button" class="btnType06">취소양식 다운로드</button>
</div>
<div class="pop_tb_type01">
<table>
<colgroup>
<col style="width: 22%;">
<col style="">
</colgroup>
<tr>
<th>취소사유</th>
<td><textarea id="cnclCn" name="cnclCn"></textarea></td>
</tr>
</table>
</div>
<div class="popup_cont upload_area">
<div>
<div class="pop_search_wrap">
<label for="fileNm" class="label">첨부파일 선택</label>
<button type="button" onclick="control.openFileDialogSingle();" class="btnType01 btn_add_file">파일찾기</button>
</div>
<div id="fileControl"></div><br/>
<div class="pop_btn_wrap btn_layout01">
<div class="btn_left">
</div>
<div class="btn_center">
</div>
<div class="btn_right">
</div>
</div>
</div>
</div>
<div class="pop_btn_wrap btn_layout01">
<div class="btn_left">
</div>
<div class="btn_center">
<!-- <button type="button" class="btnType05">제출</button> -->
<button type="button" class="btnType05" id="popupSubmin" onclick="insetDocReq();">요청</button>
<button type="button" class="btnType02 tooltip-close" data-focus="sub37_pop02_close" data-focus-next="sub37_pop02">닫기</button>
</div>
<div class="btn_right">
</div>
</div>
</div>
</div>
</div>
</div>
<!--// 서류요청 팝업-->
<script src="http://119.193.215.98:8093/ReportingServer/html5/js/crownix-viewer.min.js"></script>
<link rel="stylesheet" type="text/css" href="http://119.193.215.98:8093/ReportingServer/html5/css/crownix-viewer.min.css">
<script>
/*
* 오버레이 방식
*/
function fncCmpltCrtfc(p_prcsAplctPrdOrd, p_eduAplctOrd) {
var viewer = new m2soft.crownix.Viewer(
'http://119.193.215.98:8093/ReportingServer/service');
//viewer.openFile('cmplt_crtfc_20231030.mrd', '/rfn [jsonsample_red_2.json]');
//viewer.openFile('cmplt_crtfc_20231030.mrd','/rexport [5]');
//viewer.openFile('sample.mrd','/rfn [sample.txt]');
//viewer.hideToolbarItem(["save"]);
//viewer.openFile('sample.mrd');
viewer.hideToolbarItem([ "save" ]);
//viewer.showToolbarItem(["print"]);
viewer.showToolbarItem([ "print_pdf" ]);
//viewer.openFile('cmplt_crtfc_20231030.mrd');
//viewer.openFile('cmplt_crtfc_20231030.mrd', '/rfn [cmplt_crtfc_20231030.json]');
viewer
.openFile(
'cmplt_crtfc_20231030.mrd',
'/rf [http://119.193.215.98:9989/offedu/ve/aplct/sspnIdtmt/sspnIdtmtEduAplctCmpltCrtfcAjax.do?prcsAplctPrdOrd='
+ p_prcsAplctPrdOrd
+ '&eduAplctOrd='
+ p_eduAplctOrd + ']');
/*
var viewer = new m2soft.crownix.Viewer('http://192.168.0.176:8093/ReportingServer/service',
'crownix-viewer');
viewer.openFile('cmplt_crtfc_20231030.mrd');
*/
}
/*
window.onload = function(){
var viewer = new m2soft.crownix.Viewer('http://192.168.0.176:8093/ReportingServer/service');
viewer.openFile('json_subject.mrd', '/rfn [jsonsample_red_2.json]');
};
*/
>>>>>>> refs/heads/hylee
</script>

View File

@ -1,21 +1,55 @@
/****************************************************************
*
* 파일명 : popup
* : 팝업 기능을 처리하는 JavaScript
*
* 수정일 수정자 Version Function
* ------------ --------- ------------- ----------------------------
* 2016.08.05 장동한 1.0 최초생성
*
*/
/* ********************************************************
* 팝업창 오픈
******************************************************** */
function fn_egov_popup(sName, sUrl, width, height){
var LeftPosition=(screen.width-width)/2;
var TopPosition=(screen.height-height)/2;
var oPopup = window.open(sUrl,sName,"width="+width+",height="+height+",top="+TopPosition+",left="+LeftPosition+", scrollbars=no");
if(oPopup){oPopup.focus();}
/****************************************************************
*
* 파일명 : popup
* : 팝업 기능을 처리하는 JavaScript
*
* 수정일 수정자 Version Function
* ------------ --------- ------------- ----------------------------
* 2016.08.05 장동한 1.0 최초생성
*
*/
/* ********************************************************
* 팝업창 오픈
******************************************************** */
function fn_egov_popup(sName, sUrl, width, height){
var LeftPosition=(screen.width-width)/2;
var TopPosition=(screen.height-height)/2;
var oPopup = window.open(sUrl,sName,"width="+width+",height="+height+",top="+TopPosition+",left="+LeftPosition+", scrollbars=no");
if(oPopup){oPopup.focus();}
}
/* ********************************************************
* 팝업창 form action + 모니터 가운데 노출
******************************************************** */
function openPopupAndSubmitForm(p_targetNm, p_formId, p_width, p_height) {
var width = p_width; // 팝업 창의 너비
var height = p_height; // 팝업 창의 높이
// 화면의 너비와 높이를 가져옵니다.
var curX = window.screenLeft;
var curWidth = document.body.clientWidth;
// 팝업 창의 x, y 위치를 계산합니다.
var left = curX + (curWidth / 2) - (width / 2);
var top = (window.screen.height / 2) - (height / 2);
// 팝업 창 설정 및 중앙 위치
var popup = window.open('', p_targetNm, 'width=' + width + ',height=' + height + ',scrollbars=yes,resizable=yes,left=' + left + ',top=' + top);
// form의 target을 새 창으로 설정하고 제출
var form = document.getElementById(p_formId);
console.log('p_formId : ', p_formId);
console.log('form : ', form);
form.target = p_targetNm;
form.submit();
// 포커스를 새 팝업 창으로 이동
popup.focus();
return false;
}