2023-10-26 12:07 청소년 배정 관련 테이블 수정

This commit is contained in:
myname 2023-10-26 12:07:32 +09:00
parent 946df34bc2
commit c3e4c857a0
20 changed files with 1553 additions and 145 deletions

View File

@ -42,4 +42,11 @@ public interface VEAStngMixService {
//vea_lctr_rnds_stng - 해당 회차의 신청 가능한 시간인지 체크 //vea_lctr_rnds_stng - 해당 회차의 신청 가능한 시간인지 체크
//vea_area_lctr_stng //vea_area_lctr_stng
boolean eduAplctChkTime(VEAStngVO vEAStngVO , HttpServletRequest request) throws Exception; boolean eduAplctChkTime(VEAStngVO vEAStngVO , HttpServletRequest request) throws Exception;
//vea_lctr_psbl_prd_stng - 해당 회차의 신청 가능한 기간일지 체크
String selectEduGetStngYrToStr(VEAStngVO vEAStngVO) throws Exception;
//VEA_INSTR_ASGNM_CNDTN - 강사배정조건
//강의가능기간 일정 데이터 - 강의가능기간 세부 선택 데이터
List<VEAStngVO> selectList_VEAIAC_1(VEAStngVO paramVO) throws Exception; // LIST
} }

View File

@ -49,4 +49,31 @@ public interface VEAStngService {
int delete_VEAALS(VEAStngVO paramVO) throws Exception; // D int delete_VEAALS(VEAStngVO paramVO) throws Exception; // D
List<VEAStngVO> selectList_VEAALS(VEAStngVO paramVO) throws Exception; // LIST List<VEAStngVO> selectList_VEAALS(VEAStngVO paramVO) throws Exception; // LIST
List<VEAStngVO> selectPagingList_VEAALS(VEAStngVO paramVO) throws Exception; // Page List List<VEAStngVO> selectPagingList_VEAALS(VEAStngVO paramVO) throws Exception; // Page List
//VEA_INSTR_ASGNM_CNDTN - 강사배정조건
void insert_VEAIAC(VEAStngVO paramVO) throws Exception; // C
VEAStngVO selectDetail_VEAIAC(VEAStngVO paramVO) throws Exception; // R
int update_VEAIAC(VEAStngVO paramVO) throws Exception; // U
int delete_VEAIAC(VEAStngVO paramVO) throws Exception; // D
List<VEAStngVO> selectList_VEAIAC(VEAStngVO paramVO) throws Exception; // LIST
List<VEAStngVO> selectPagingList_VEAIAC(VEAStngVO paramVO) throws Exception; // Page List
//VEA_INSTR_MNT_TM - 강사월별시수
void insert_VEAIMT(VEAStngVO paramVO) throws Exception; // C
VEAStngVO selectDetail_VEAIMT(VEAStngVO paramVO) throws Exception; // R
int update_VEAIMT(VEAStngVO paramVO) throws Exception; // U
int delete_VEAIMT(VEAStngVO paramVO) throws Exception; // D
List<VEAStngVO> selectList_VEAIMT(VEAStngVO paramVO) throws Exception; // LIST
List<VEAStngVO> selectPagingList_VEAIMT(VEAStngVO paramVO) throws Exception; // Page List
//VEA_INSTR_RSDNC_RATIO - 강사거주지별비율
void insert_VEAIRR(VEAStngVO paramVO) throws Exception; // C
VEAStngVO selectDetail_VEAIRR(VEAStngVO paramVO) throws Exception; // R
int update_VEAIRR(VEAStngVO paramVO) throws Exception; // U
int delete_VEAIRR(VEAStngVO paramVO) throws Exception; // D
List<VEAStngVO> selectList_VEAIRR(VEAStngVO paramVO) throws Exception; // LIST
List<VEAStngVO> selectPagingList_VEAIRR(VEAStngVO paramVO) throws Exception; // Page List
} }

View File

@ -52,6 +52,44 @@ public class VEAStngVO extends ComDefaultVO implements Serializable {
private String ttlRgstrChasiRegistPnttm; //총접수차시등록일시 private String ttlRgstrChasiRegistPnttm; //총접수차시등록일시
private String ttlRgstrChasiRegisterId; //총정수차시등록자 private String ttlRgstrChasiRegisterId; //총정수차시등록자
//vea_instr_asgnm_cndtn - 강사배정조건
private String asgnmCd; //배정코드
private String useYn; //사용여부
private String asgnmNm; //코드명
//vea_instr_rsdnc_ratio - 강사거주지별비율
private String ratio5; //5일강사비율
private String ratio4; //5일강사비율
private String ratio3; //5일강사비율
private String ratio2; //5일강사비율
private String ratio1; //5일강사비율
//vea_instr_mnt_tm - 강사월별시수
private String mnt; //
private String aplctChasi; //해당월 접수차시(교육확정)
private String instrEa5; //해당월 5일강사수
private String instrTm5; //해당월 5일강사인당시간
private String asgnmChasi5; //해당월 5일강사배정총차시
private String instrEa4; //해당월 4일강사수
private String instrTm4; //해당월 4일강사인당시간
private String asgnmChasi4; //해당월 4일강사배정총차시
private String instrEa3; //해당월 3일강사수
private String instrTm3; //해당월 3일강사인당시간
private String asgnmChasi3; //해당월 3일강사배정총차시
private String instrEa2; //해당월 2일강사수
private String instrTm2; //해당월 2일강사인당시간
private String asgnmChasi2; //해당월 2일강사배정총차시
private String instrEa1; //해당월 1일강사수
private String instrTm1; //해당월 1일강사인당시간
private String asgnmChasi1; //해당월 1일강사배정총차시
//etc //etc
private String code; //설정 년도 private String code; //설정 년도
@ -385,5 +423,155 @@ public class VEAStngVO extends ComDefaultVO implements Serializable {
public void setSearchWord(String searchWord) { public void setSearchWord(String searchWord) {
this.searchWord = searchWord; this.searchWord = searchWord;
} }
public String getAsgnmCd() {
return asgnmCd;
}
public void setAsgnmCd(String asgnmCd) {
this.asgnmCd = asgnmCd;
}
public String getUseYn() {
return useYn;
}
public void setUseYn(String useYn) {
this.useYn = useYn;
}
public String getRatio5() {
return ratio5;
}
public void setRatio5(String ratio5) {
this.ratio5 = ratio5;
}
public String getRatio4() {
return ratio4;
}
public void setRatio4(String ratio4) {
this.ratio4 = ratio4;
}
public String getRatio3() {
return ratio3;
}
public void setRatio3(String ratio3) {
this.ratio3 = ratio3;
}
public String getRatio2() {
return ratio2;
}
public void setRatio2(String ratio2) {
this.ratio2 = ratio2;
}
public String getRatio1() {
return ratio1;
}
public void setRatio1(String ratio1) {
this.ratio1 = ratio1;
}
public String getMnt() {
return mnt;
}
public void setMnt(String mnt) {
this.mnt = mnt;
}
public String getAplctChasi() {
return aplctChasi;
}
public void setAplctChasi(String aplctChasi) {
this.aplctChasi = aplctChasi;
}
public String getInstrEa5() {
return instrEa5;
}
public void setInstrEa5(String instrEa5) {
this.instrEa5 = instrEa5;
}
public String getInstrTm5() {
return instrTm5;
}
public void setInstrTm5(String instrTm5) {
this.instrTm5 = instrTm5;
}
public String getAsgnmChasi5() {
return asgnmChasi5;
}
public void setAsgnmChasi5(String asgnmChasi5) {
this.asgnmChasi5 = asgnmChasi5;
}
public String getInstrEa4() {
return instrEa4;
}
public void setInstrEa4(String instrEa4) {
this.instrEa4 = instrEa4;
}
public String getInstrTm4() {
return instrTm4;
}
public void setInstrTm4(String instrTm4) {
this.instrTm4 = instrTm4;
}
public String getAsgnmChasi4() {
return asgnmChasi4;
}
public void setAsgnmChasi4(String asgnmChasi4) {
this.asgnmChasi4 = asgnmChasi4;
}
public String getInstrEa3() {
return instrEa3;
}
public void setInstrEa3(String instrEa3) {
this.instrEa3 = instrEa3;
}
public String getInstrTm3() {
return instrTm3;
}
public void setInstrTm3(String instrTm3) {
this.instrTm3 = instrTm3;
}
public String getAsgnmChasi3() {
return asgnmChasi3;
}
public void setAsgnmChasi3(String asgnmChasi3) {
this.asgnmChasi3 = asgnmChasi3;
}
public String getInstrEa2() {
return instrEa2;
}
public void setInstrEa2(String instrEa2) {
this.instrEa2 = instrEa2;
}
public String getInstrTm2() {
return instrTm2;
}
public void setInstrTm2(String instrTm2) {
this.instrTm2 = instrTm2;
}
public String getAsgnmChasi2() {
return asgnmChasi2;
}
public void setAsgnmChasi2(String asgnmChasi2) {
this.asgnmChasi2 = asgnmChasi2;
}
public String getInstrEa1() {
return instrEa1;
}
public void setInstrEa1(String instrEa1) {
this.instrEa1 = instrEa1;
}
public String getInstrTm1() {
return instrTm1;
}
public void setInstrTm1(String instrTm1) {
this.instrTm1 = instrTm1;
}
public String getAsgnmChasi1() {
return asgnmChasi1;
}
public void setAsgnmChasi1(String asgnmChasi1) {
this.asgnmChasi1 = asgnmChasi1;
}
public String getAsgnmNm() {
return asgnmNm;
}
public void setAsgnmNm(String asgnmNm) {
this.asgnmNm = asgnmNm;
}
} }

View File

@ -158,4 +158,91 @@ public class VEAStngDAO extends EgovAbstractDAO {
List<VEAStngVO> tlist = (List<VEAStngVO>) list("VEAAreaLctrStngDAO.selectPagingList", paramVO); List<VEAStngVO> tlist = (List<VEAStngVO>) list("VEAAreaLctrStngDAO.selectPagingList", paramVO);
return tlist; return tlist;
} }
//VEA_INSTR_ASGNM_CNDTN - 강사배정조건
public void insert_VEAIAC(VEAStngVO paramVO) throws Exception {
insert("VEAInstrAsgnmCndtnDAO.insert", paramVO);
}
public VEAStngVO selectDetail_VEAIAC(VEAStngVO paramVO) throws Exception {
return (VEAStngVO) select("VEAInstrAsgnmCndtnDAO.selectDetail", paramVO);
}
public int update_VEAIAC(VEAStngVO paramVO) throws Exception {
return update("VEAInstrAsgnmCndtnDAO.update", paramVO);
}
public int delete_VEAIAC(VEAStngVO paramVO) throws Exception {
return delete("VEAInstrAsgnmCndtnDAO.delete", paramVO);
}
//L
public List<VEAStngVO> selectList_VEAIAC(VEAStngVO paramVO) throws Exception {
List<VEAStngVO> tlist = (List<VEAStngVO>) list("VEAInstrAsgnmCndtnDAO.selectList", paramVO);
return tlist;
}
public List<VEAStngVO> selectPagingList_VEAIAC(VEAStngVO paramVO) throws Exception {
List<VEAStngVO> tlist = (List<VEAStngVO>) list("VEAInstrAsgnmCndtnDAO.selectPagingList", paramVO);
return tlist;
}
//VEA_INSTR_MNT_TM - 강사월별시수
public void insert_VEAIMT(VEAStngVO paramVO) throws Exception {
insert("VEAInstrMntTmDAO.insert", paramVO);
}
public VEAStngVO selectDetail_VEAIMT(VEAStngVO paramVO) throws Exception {
return (VEAStngVO) select("VEAInstrMntTmDAO.selectDetail", paramVO);
}
public int update_VEAIMT(VEAStngVO paramVO) throws Exception {
return update("VEAInstrMntTmDAO.update", paramVO);
}
public int delete_VEAIMT(VEAStngVO paramVO) throws Exception {
return delete("VEAInstrMntTmDAO.delete", paramVO);
}
//L
public List<VEAStngVO> selectList_VEAIMT(VEAStngVO paramVO) throws Exception {
List<VEAStngVO> tlist = (List<VEAStngVO>) list("VEAInstrMntTmDAO.selectList", paramVO);
return tlist;
}
public List<VEAStngVO> selectPagingList_VEAIMT(VEAStngVO paramVO) throws Exception {
List<VEAStngVO> tlist = (List<VEAStngVO>) list("VEAInstrMntTmDAO.selectPagingList", paramVO);
return tlist;
}
//VEA_INSTR_RSDNC_RATIO - 강사거주지별비율
public void insert_VEAIRR(VEAStngVO paramVO) throws Exception {
insert("VEAInstrRsdncRatioDAO.insert", paramVO);
}
public VEAStngVO selectDetail_VEAIRR(VEAStngVO paramVO) throws Exception {
return (VEAStngVO) select("VEAInstrRsdncRatioDAO.selectDetail", paramVO);
}
public int update_VEAIRR(VEAStngVO paramVO) throws Exception {
return update("VEAInstrRsdncRatioDAO.update", paramVO);
}
public int delete_VEAIRR(VEAStngVO paramVO) throws Exception {
return delete("VEAInstrRsdncRatioDAO.delete", paramVO);
}
//L
public List<VEAStngVO> selectList_VEAIRR(VEAStngVO paramVO) throws Exception {
List<VEAStngVO> tlist = (List<VEAStngVO>) list("VEAInstrRsdncRatioDAO.selectList", paramVO);
return tlist;
}
public List<VEAStngVO> selectPagingList_VEAIRR(VEAStngVO paramVO) throws Exception {
List<VEAStngVO> tlist = (List<VEAStngVO>) list("VEAInstrRsdncRatioDAO.selectPagingList", paramVO);
return tlist;
}
} }

View File

@ -66,4 +66,17 @@ public class VEAStngMixDAO extends EgovAbstractDAO {
//VEAStngVO tlist = (VEAStngVO) list("VEALctrYrStngMixDAO.selectEduAplctTimeChkList", paramVO); //VEAStngVO tlist = (VEAStngVO) list("VEALctrYrStngMixDAO.selectEduAplctTimeChkList", paramVO);
//return tlist; //return tlist;
} }
//L
public String selectEduGetStngYrToStr(VEAStngVO paramVO) throws Exception {
return (String) select("VEALctrYrStngMixDAO.selectEduGetStngYrToStr", paramVO);
//return tlist;
}
//L
public List<VEAStngVO> selectList_VEAIAC_1(VEAStngVO paramVO) throws Exception {
List<VEAStngVO> tlist = (List<VEAStngVO>) list("VEAAsgnmStngMixDAO.selectList_VEAIAC_1", paramVO);
return tlist;
}
} }

View File

@ -275,4 +275,19 @@ public class VEAStngMixServiceImpl implements VEAStngMixService {
return flag; return flag;
} }
@Override
public String selectEduGetStngYrToStr(VEAStngVO vEAStngVO) throws Exception {
boolean flag = true;
String v_ret = "";
v_ret = vEAStngMixDAO.selectEduGetStngYrToStr(vEAStngVO);
return v_ret;
}
public List<VEAStngVO> selectList_VEAIAC_1(VEAStngVO paramVO) throws Exception{
return vEAStngMixDAO.selectList_VEAIAC_1(paramVO);
}
} }

View File

@ -194,4 +194,102 @@ public class VEAStngServiceImpl implements VEAStngService {
return vEAStngDAO.selectPagingList_VEAALS(paramVO); return vEAStngDAO.selectPagingList_VEAALS(paramVO);
} }
//VEA_INSTR_ASGNM_CNDTN - 강사배정조건
//C
public void insert_VEAIAC(VEAStngVO paramVO) throws Exception {
vEAStngDAO.insert_VEAIAC(paramVO);
}
//R
public VEAStngVO selectDetail_VEAIAC(VEAStngVO paramVO) throws Exception {
return vEAStngDAO.selectDetail_VEAIAC(paramVO);
}
//U
public int update_VEAIAC(VEAStngVO paramVO) throws Exception{
return vEAStngDAO.update_VEAIAC(paramVO);
}
//D
public int delete_VEAIAC(VEAStngVO paramVO) throws Exception{
return vEAStngDAO.delete_VEAIAC(paramVO);
}
//List
public List<VEAStngVO> selectList_VEAIAC(VEAStngVO paramVO) throws Exception{
return vEAStngDAO.selectList_VEAIAC(paramVO);
}
//paging List
public List<VEAStngVO> selectPagingList_VEAIAC(VEAStngVO paramVO) throws Exception{
return vEAStngDAO.selectPagingList_VEAIAC(paramVO);
}
//VEA_INSTR_MNT_TM - 강사월별시수
//C
public void insert_VEAIMT(VEAStngVO paramVO) throws Exception {
vEAStngDAO.insert_VEAIMT(paramVO);
}
//R
public VEAStngVO selectDetail_VEAIMT(VEAStngVO paramVO) throws Exception {
return vEAStngDAO.selectDetail_VEAIMT(paramVO);
}
//U
public int update_VEAIMT(VEAStngVO paramVO) throws Exception{
return vEAStngDAO.update_VEAIMT(paramVO);
}
//D
public int delete_VEAIMT(VEAStngVO paramVO) throws Exception{
return vEAStngDAO.delete_VEAIMT(paramVO);
}
//List
public List<VEAStngVO> selectList_VEAIMT(VEAStngVO paramVO) throws Exception{
return vEAStngDAO.selectList_VEAIMT(paramVO);
}
//paging List
public List<VEAStngVO> selectPagingList_VEAIMT(VEAStngVO paramVO) throws Exception{
return vEAStngDAO.selectPagingList_VEAIMT(paramVO);
}
//VEA_INSTR_RSDNC_RATIO - 강사거주지별비율
//C
public void insert_VEAIRR(VEAStngVO paramVO) throws Exception {
vEAStngDAO.insert_VEAIRR(paramVO);
}
//R
public VEAStngVO selectDetail_VEAIRR(VEAStngVO paramVO) throws Exception {
return vEAStngDAO.selectDetail_VEAIRR(paramVO);
}
//U
public int update_VEAIRR(VEAStngVO paramVO) throws Exception{
return vEAStngDAO.update_VEAIRR(paramVO);
}
//D
public int delete_VEAIRR(VEAStngVO paramVO) throws Exception{
return vEAStngDAO.delete_VEAIRR(paramVO);
}
//List
public List<VEAStngVO> selectList_VEAIRR(VEAStngVO paramVO) throws Exception{
return vEAStngDAO.selectList_VEAIRR(paramVO);
}
//paging List
public List<VEAStngVO> selectPagingList_VEAIRR(VEAStngVO paramVO) throws Exception{
return vEAStngDAO.selectPagingList_VEAIRR(paramVO);
}
} }

View File

@ -132,6 +132,8 @@ public class VEEduAplctVO extends ComDefaultVO implements Serializable {
private String aplctCn; //신청 내용 private String aplctCn; //신청 내용
private String stngYr; //기준년도
public int getChasi() { public int getChasi() {
return chasi; return chasi;
@ -1601,6 +1603,12 @@ public class VEEduAplctVO extends ComDefaultVO implements Serializable {
public void setAplctCn(String aplctCn) { public void setAplctCn(String aplctCn) {
this.aplctCn = aplctCn; this.aplctCn = aplctCn;
} }
public String getStngYr() {
return stngYr;
}
public void setStngYr(String stngYr) {
this.stngYr = stngYr;
}
} }

View File

@ -39,6 +39,7 @@ import kcc.let.uss.ion.cnt.service.EgovCntManageService;
import kcc.let.uss.umt.service.EgovMberManageService; import kcc.let.uss.umt.service.EgovMberManageService;
import kcc.let.uss.umt.service.UserManageVO; import kcc.let.uss.umt.service.UserManageVO;
import kcc.let.utl.fcc.service.EgovCryptoUtil; import kcc.let.utl.fcc.service.EgovCryptoUtil;
import kcc.ve.adv.tngr.stngInfo.service.VEAStngMixService;
import kcc.ve.cmm.VeConstants; import kcc.ve.cmm.VeConstants;
import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduAplctService; import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduAplctService;
import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduAplctVO; import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduAplctVO;
@ -131,6 +132,10 @@ public class EduAplctMngTngrController {
@Resource(name = "mberManageService") @Resource(name = "mberManageService")
private EgovMberManageService mberManageService; private EgovMberManageService mberManageService;
//강의설정 관리(MIX)
@Resource(name = "vEAStngMixService")
private VEAStngMixService vEAStngMixService;
/** /**
* 교육신청관리 목록 화면 * 교육신청관리 목록 화면
*/ */
@ -139,6 +144,18 @@ public class EduAplctMngTngrController {
LoginVO user = EgovUserDetailsHelper.isAuthenticated()? (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser():null; LoginVO user = EgovUserDetailsHelper.isAuthenticated()? (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser():null;
//기준년도가 없으면 최종 신청년도가 속한 회차의 년도를 기본값으로 가져온다. // 없으면 올해가 기본
/*
{
if ("".equals(vEEduAplctVO.getStngYr()) || vEEduAplctVO.getStngYr()==null) {
VEAStngVO vEAStngVO = new VEAStngVO();
String s_stngYr = vEAStngMixService.selectEduGetStngYrToStr(vEAStngVO);
vEEduAplctVO.setStngYr(s_stngYr);
}
}
*/
//년도 //년도
if(StringUtils.isBlank(vEEduAplctVO.getSearchYear())){ if(StringUtils.isBlank(vEEduAplctVO.getSearchYear())){
//vEEduAplctVO.setSearchYear(String.valueOf(LocalDate.now().getYear())); //vEEduAplctVO.setSearchYear(String.valueOf(LocalDate.now().getYear()));

View File

@ -30,6 +30,7 @@ import kcc.com.utl.user.service.CheckLoginUtil;
import kcc.kccadr.cmm.CmmUtil; import kcc.kccadr.cmm.CmmUtil;
import kcc.let.utl.fcc.service.EgovCryptoUtil; import kcc.let.utl.fcc.service.EgovCryptoUtil;
import kcc.let.utl.fcc.service.VEPagingUtil; import kcc.let.utl.fcc.service.VEPagingUtil;
import kcc.ve.adv.tngr.stngInfo.service.VEAStngMixService;
import kcc.ve.cmm.VeConstants; import kcc.ve.cmm.VeConstants;
import kcc.ve.instr.tngrVisitEdu.asgnmInfo.service.VEAcmdtAplctService; import kcc.ve.instr.tngrVisitEdu.asgnmInfo.service.VEAcmdtAplctService;
import kcc.ve.instr.tngrVisitEdu.asgnmInfo.service.VEAsgnmMIX2023Service; import kcc.ve.instr.tngrVisitEdu.asgnmInfo.service.VEAsgnmMIX2023Service;
@ -151,6 +152,10 @@ public class EduCnfrmMngTngrController {
@Resource(name = "vEEduInstrDstncService") @Resource(name = "vEEduInstrDstncService")
private VEEduInstrDstncService vEEduInstrDstncService; private VEEduInstrDstncService vEEduInstrDstncService;
//강의설정 관리(MIX)
@Resource(name = "vEAStngMixService")
private VEAStngMixService vEAStngMixService;
/** /**
* 교육확정관리 목록 화면 * 교육확정관리 목록 화면
*/ */
@ -168,6 +173,19 @@ public class EduCnfrmMngTngrController {
//로그인 처리==================================== //로그인 처리====================================
//기준년도가 없으면 최종 신청년도가 속한 회차의 년도를 기본값으로 가져온다. // 없으면 올해가 기본
/*
{
if ("".equals(vEEduAplctVO.getStngYr()) || vEEduAplctVO.getStngYr()==null) {
VEAStngVO vEAStngVO = new VEAStngVO();
String s_stngYr = vEAStngMixService.selectEduGetStngYrToStr(vEAStngVO);
vEEduAplctVO.setStngYr(s_stngYr);
}
}
*/
//1.pageing step1 //1.pageing step1
PaginationInfo paginationInfo = this.setPagingStep1(vEEduAplctVO); PaginationInfo paginationInfo = this.setPagingStep1(vEEduAplctVO);

View File

@ -12,9 +12,11 @@ import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap; import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.ModelAttribute; import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;
import egovframework.rte.ptl.mvc.tags.ui.pagination.PaginationInfo; import egovframework.rte.ptl.mvc.tags.ui.pagination.PaginationInfo;
import kcc.com.cmm.ComDefaultVO; import kcc.com.cmm.ComDefaultVO;
import kcc.com.cmm.LoginVO;
import kcc.com.cmm.service.EgovCmmUseService; import kcc.com.cmm.service.EgovCmmUseService;
import kcc.com.cmm.service.EgovFileMngService; import kcc.com.cmm.service.EgovFileMngService;
import kcc.com.cmm.service.EgovFileMngUtil; import kcc.com.cmm.service.EgovFileMngUtil;
@ -22,6 +24,9 @@ import kcc.com.cmm.util.StringUtil;
import kcc.com.utl.user.service.CheckLoginUtil; import kcc.com.utl.user.service.CheckLoginUtil;
import kcc.let.utl.fcc.service.EgovCryptoUtil; import kcc.let.utl.fcc.service.EgovCryptoUtil;
import kcc.let.utl.fcc.service.VEPagingUtil; import kcc.let.utl.fcc.service.VEPagingUtil;
import kcc.ve.adv.tngr.stngInfo.service.VEAStngMixService;
import kcc.ve.adv.tngr.stngInfo.service.VEAStngService;
import kcc.ve.adv.tngr.stngInfo.service.VEAStngVO;
import kcc.ve.instr.tngrVisitEdu.asgnmInfo.service.VEAcmdtAplctService; import kcc.ve.instr.tngrVisitEdu.asgnmInfo.service.VEAcmdtAplctService;
import kcc.ve.instr.tngrVisitEdu.asgnmInfo.service.VEAsgnmMIX2023Service; import kcc.ve.instr.tngrVisitEdu.asgnmInfo.service.VEAsgnmMIX2023Service;
import kcc.ve.instr.tngrVisitEdu.asgnmInfo.service.VEAsgnmMIXService; import kcc.ve.instr.tngrVisitEdu.asgnmInfo.service.VEAsgnmMIXService;
@ -140,6 +145,17 @@ public class NewEduCnfrmMngTngrController {
@Resource(name = "vEEduInstrDstncService") @Resource(name = "vEEduInstrDstncService")
private VEEduInstrDstncService vEEduInstrDstncService; private VEEduInstrDstncService vEEduInstrDstncService;
// 신규테이블 기본 VEA_
@Resource(name = "vEAStngService")
private VEAStngService vEAStngService;
// 신규테이블 응용 VEA_
@Resource(name = "vEAStngMixService")
private VEAStngMixService vEAStngMixService;
/** /**
* 특정 강사배치 팝업 * 특정 강사배치 팝업
* fncSpcfcInstrAsgnmInfo * fncSpcfcInstrAsgnmInfo
@ -272,108 +288,109 @@ public class NewEduCnfrmMngTngrController {
//로그인 처리==================================== //로그인 처리====================================
//로그인 정보 가져오기 //로그인 정보 가져오기
String s_oprtnLoginCheckNInfo = checkLoginUtil.oprtnCheckNInfo(model);
//String s_userCheckNInfo = checkLoginUtil.userCheckNInfo(model, request); if (!"".equals(s_oprtnLoginCheckNInfo)) return s_oprtnLoginCheckNInfo;
//if (!"".equals(s_userCheckNInfo)) return s_userCheckNInfo;
//로그인 처리==================================== //로그인 처리====================================
//0.pageing step0 //0.pageing step0
//온라인 오프라인 여부 확인 //온라인 오프라인 여부 확인
//배치대상신청정보 //배치대상신청정보
//vEEduAplctVO = vEEduAplctService.selectDetail(vEEduAplctVO); //vEEduAplctVO = vEEduAplctService.selectDetail(vEEduAplctVO);
//System.out.println(vEEduAplctVO.getEduSlctCd()); //10-온라인, 20-오프라인 //System.out.println(vEEduAplctVO.getEduSlctCd()); //10-온라인, 20-오프라인
//1.pageing step1 //a
PaginationInfo paginationInfo = this.setPagingStep1(vEInstrDetailVO); VEAStngVO vEAStngVO = new VEAStngVO();
vEAStngVO.setCode("VEA007");
vEAStngVO.setUseYn("Y");
List<VEAStngVO> asgnmStngVOList = vEAStngMixService.selectList_VEAIAC_1(vEAStngVO);
//2. pageing step2
vEInstrDetailVO = this.setPagingStep2(vEInstrDetailVO, paginationInfo);
//3. SelectPagingListQuery set 조건 설정
String selectCondition = new String();
//3.1 제출 완료 사용중인 데이터 조회
selectCondition += "AND a0.sbmt_yn='Y' AND a0.use_yn = 'Y'";
//3.2 강사 테이블 성인강사여부 Y인것만 조회
//selectCondition += "AND (b0.tngr_instr_yn ='Y' OR a0.qlfct_end_yn = 'Y') ";
//3.3 이름 검색
if(StringUtil.isNotEmpty(vEInstrDetailVO.getSearchKeyword())){
//이름 암호화 - comDefaultVO 검색단어 공통 암호화
ComDefaultVO comDefaultVO = new ComDefaultVO();
comDefaultVO.setSearchKeyword(vEInstrDetailVO.getSearchKeyword());
comDefaultVO = egovCryptoUtil.encryptComDefaultVO(comDefaultVO);
vEInstrDetailVO.setSearchKeyword(comDefaultVO.getSearchKeyword());
//selectCondition += "AND a.instr_nm LIKE CONCAT ('%', '" +vEInstrDetailVO.getSearchKeyword() + "', '%')";
selectCondition += "AND a0.instr_nm LIKE '%'||'" +vEInstrDetailVO.getSearchKeyword() + "'||'%'";
comDefaultVO = egovCryptoUtil.decryptComDefaultVO(comDefaultVO);
vEInstrDetailVO.setSearchKeyword(comDefaultVO.getSearchKeyword());
}
//3.4 요청일 시작일 검색
/*if(StringUtil.isNotEmpty(vEInstrDetailVO.getSearchStartDt())){
selectCondition += "AND TO_CHAR(a.sbmt_pnttm, 'YYYYMMDD') >= REPLACE('"+vEInstrDetailVO.getSearchStartDt()+"', '.', '')";
}
//3.5 요청일 종료일 검색
if(StringUtil.isNotEmpty(vEInstrDetailVO.getSearchEndDt())){
selectCondition += "AND TO_CHAR(a.sbmt_pnttm, 'YYYYMMDD') <= REPLACE('"+vEInstrDetailVO.getSearchEndDt()+"', '.', '')";
}*/
//정보변경 요청사항 있는 강사부터 조회
vEInstrDetailVO.setOrderByQuery(" rqstCnt DESC ");
vEInstrDetailVO.setInstrDiv("10");
vEInstrDetailVO.setSelectPagingListQuery(selectCondition);
List<VEInstrDetailVO> vEInstrDetailVOList = vEInstrMixService.selectPagingDetailList(vEInstrDetailVO);
vEInstrDetailVOList = egovCryptoUtil.decryptVEInstrDetailVOList(vEInstrDetailVOList);
//4.pageing step3
paginationInfo = this.setPagingStep3(vEInstrDetailVOList, paginationInfo);
model.addAttribute("paginationInfo", paginationInfo);
//대상 리스트, 페이징 정보 전달 //대상 리스트, 페이징 정보 전달
model.addAttribute("resultList", vEInstrDetailVOList); model.addAttribute("asgnmStngVOList", asgnmStngVOList);
//배치 목록
//1.pageing step1
PaginationInfo paginationInfo1 = this.setPagingStep_1(vEEduAplctVO);
//2. pageing step2
vEEduAplctVO = this.setPagingStep_2(vEEduAplctVO, paginationInfo1);
vEEduAplctVO.setInstrDiv("10"); //청소년
vEEduAplctVO.setLctrDivCd("10"); //청소년강의
vEEduAplctVO.setAprvlCd("60"); //확정코드
if(!"".equals(vEEduAplctVO.getSearchInstrNm())) {
vEEduAplctVO.setSearchInstrNm(egovCryptoUtil.encrypt(vEEduAplctVO.getSearchInstrNm()));
}
vEEduAplctVO.setAprvlCd("60"); //확정코드
List<VEEduAplctVO> vEEduAplctVOList = vEEduMIXService.selectTngrRsltPagingList(vEEduAplctVO);
VEEduAplctVO vo = new VEEduAplctVO();
for(int i=0; i < vEEduAplctVOList.size(); i++) {
vo = egovCryptoUtil.decryptVEEduAplctVOInfo(vEEduAplctVOList.get(i));
vEEduAplctVOList.get(i).setUserId(vo.getUserId());
vEEduAplctVOList.get(i).setChrgNm(vo.getChrgNm());
}
//3.pageing step3
paginationInfo1 = this.setPagingStep_3(vEEduAplctVOList, paginationInfo1);
model.addAttribute("paginationInfo1", paginationInfo1);
model.addAttribute("cryptoUtil", egovCryptoUtil);
//대상 리스트, 페이징 정보 전달
model.addAttribute("list", vEEduAplctVOList);
return "oprtn/tngrVisitEdu/popup/instrAsgnmCndtnMngPopup"; return "oprtn/tngrVisitEdu/popup/instrAsgnmCndtnMngPopup";
} }
/**
* 강사 배정 조건 관리 팝업
* fncSpcfcInstrAsgnmInfo
*/
@RequestMapping("popup/instrAsgnmCndtnMngPopupAjax.do")
public ModelAndView instrAsgnmCndtnMngPopupAjax(ModelMap model
, HttpServletRequest request
) throws Exception {
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("jsonView");
//로그인 처리====================================
//로그인 정보 가져오기
String s_oprtnLoginCheckNInfo = checkLoginUtil.oprtnCheckNInfo(model);
if (!"".equals(s_oprtnLoginCheckNInfo)) {
modelAndView.addObject("result", "fail");
return modelAndView;
}
//로그인 처리====================================
System.out.println("request.getParameter(10)");
System.out.println(request.getParameter("10"));
System.out.println(request.getParameter("20"));
System.out.println(request.getParameter("30"));
//기존에 강사 배정이 안된 차시에 대해서만 자동 배정 조건에 따라서 강사 배정을 한다.
//step0.소속 차시 정보 가져오기
//step1.온오프라인 여부 확인
//step2.대상 리스트 가져오기
//step3.없으면 저장하고, 있으면 skip
LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기
VEAStngVO vEAStngVO = new VEAStngVO();
vEAStngVO.setFrstRegisterId(loginVO.getUniqId());
//code-10
vEAStngVO.setAsgnmCd("10");
vEAStngVO.setUseYn(request.getParameter("10"));
int i_ret = vEAStngService.update_VEAIAC(vEAStngVO);
if (i_ret<=0) {
modelAndView.addObject("result", "fail");
return modelAndView;
}
//code-20
vEAStngVO.setAsgnmCd("20");
vEAStngVO.setUseYn(request.getParameter("20"));
i_ret = vEAStngService.update_VEAIAC(vEAStngVO);
if (i_ret<=0) {
modelAndView.addObject("result", "fail");
return modelAndView;
}
//code-30
vEAStngVO.setAsgnmCd("30");
vEAStngVO.setUseYn(request.getParameter("30"));
i_ret = vEAStngService.update_VEAIAC(vEAStngVO);
if (i_ret<=0) {
modelAndView.addObject("result", "fail");
return modelAndView;
}
//modelAndView.addObject("rsCnt", rs);
modelAndView.addObject("result", "success");
return modelAndView;
}
/** /**
* 강사 월별 시수계산 관리 팝업 * 강사 월별 시수계산 관리 팝업
* fncSpcfcInstrAsgnmInfo * fncSpcfcInstrAsgnmInfo

View File

@ -122,4 +122,11 @@
<sqlMap resource="egovframework/sqlmap/ve/tngr/VEALctrRndsStng_SQL_Tibero.xml"/> <!-- 강의회차설정 --> <sqlMap resource="egovframework/sqlmap/ve/tngr/VEALctrRndsStng_SQL_Tibero.xml"/> <!-- 강의회차설정 -->
<sqlMap resource="egovframework/sqlmap/ve/tngr/VEALctrPsblPrdStng_SQL_Tibero.xml"/> <!-- 강의가능기간설정 --> <sqlMap resource="egovframework/sqlmap/ve/tngr/VEALctrPsblPrdStng_SQL_Tibero.xml"/> <!-- 강의가능기간설정 -->
<sqlMap resource="egovframework/sqlmap/ve/tngr/VEAAreaLctrStng_SQL_Tibero.xml"/> <!-- 지역별강의설정 --> <sqlMap resource="egovframework/sqlmap/ve/tngr/VEAAreaLctrStng_SQL_Tibero.xml"/> <!-- 지역별강의설정 -->
<sqlMap resource="egovframework/sqlmap/ve/tngr/VEAInstrAsgnmCndtn_SQL_Tibero.xml"/> <!-- 강사배정조건 -->
<sqlMap resource="egovframework/sqlmap/ve/tngr/VEAInstrRsdncRatio_SQL_Tibero.xml"/> <!-- 강사주거지별비율 -->
<sqlMap resource="egovframework/sqlmap/ve/tngr/VEAInstrMntTm_SQL_Tibero.xml"/> <!-- 강사월별시수 -->
<sqlMap resource="egovframework/sqlmap/ve/tngr/VEAAsgnmStngMix_SQL_Tibero.xml"/> <!-- 강사배정(MIX) -->
</sqlMapConfig> </sqlMapConfig>

View File

@ -0,0 +1,23 @@
<?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="VEAAsgnmStngMix">
<typeAlias alias="VEAStngVO" type="kcc.ve.adv.tngr.stngInfo.service.VEAStngVO"/>
<!-- 강의가능기간 달력 용 데이터 -->
<select id="VEAAsgnmStngMixDAO.selectList_VEAIAC_1" parameterClass="VEAStngVO" resultClass="VEAStngVO">
/* VEAAsgnmStngMixDAO.selectList_VEAIAC_1 */
SELECT
a.code_nm AS asgnmNm
, NVL(b.asgnm_cd, a.code) AS asgnmCd
, b.USE_YN AS useYn
FROM lettccmmndetailcode a
LEFT OUTER JOIN vea_instr_asgnm_cndtn b
on(a.code=b.asgnm_cd)
WHERE code_id=#code#
AND use_at=#useYn#
ORDER BY a.code ASC
</select>
</sqlMap>

View File

@ -0,0 +1,209 @@
<?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="VEAInstrAsgnmCndtn">
<typeAlias alias="egovMap" type="egovframework.rte.psl.dataaccess.util.EgovMap"/>
<typeAlias alias="VEAStngVO" type="kcc.ve.adv.tngr.stngInfo.service.VEAStngVO"/>
<!-- 공통 테이블 명 -->
<sql id="VEAInstrAsgnmCndtnDAO.table_name">
vea_instr_asgnm_cndtn
</sql>
<!-- 저장용 공통 컬럼 명 -->
<sql id="VEAInstrAsgnmCndtnDAO.column_name">
asgnm_cd,
use_yn,
frst_regist_pnttm,
frst_register_id,
last_updt_pnttm,
last_updusr_id
</sql>
<!-- 조회용 공통 컬럼 명 -->
<sql id="VEAInstrAsgnmCndtnDAO.select_column_name">
a.asgnm_cd AS asgnmCd,
a.use_yn AS useYn,
TO_CHAR(a.frst_regist_pnttm,'YYYY-MM-DD') AS frstRegistPnttm,
a.frst_register_id AS frstRegisterId,
TO_CHAR(a.last_updt_pnttm,'YYYY-MM-DD') AS lastUpdtPnttm,
a.last_updusr_id AS lastUpdusrId
</sql>
<!-- 강사 등록 C -->
<insert id="VEAInstrAsgnmCndtnDAO.insert" parameterClass="VEAStngVO">
/* VEAInstrAsgnmCndtnDAO.insert */
MERGE INTO <include refid="VEAInstrAsgnmCndtnDAO.table_name"/>
USING DUAL
ON(asgnm_cd=#asgnmCd#)
WHEN NOT MATCHED THEN
INSERT
(
<include refid="VEAInstrAsgnmCndtnDAO.column_name"/>
)
VALUES(
#asgnmCd#,
#useYn#,
SYSDATE,
#frstRegisterId#,
NULL,
NULL
)
WHEN MATCHED THEN
UPDATE
SET use_yn = #useYn#
, last_updusr_id = #frstRegisterId#
, last_updt_pnttm = SYSDATE
</insert>
<!-- 강사 정보 R -->
<select id="VEAInstrAsgnmCndtnDAO.selectDetail" parameterClass="VEAStngVO" resultClass="VEAStngVO">
SELECT
<include refid="VEAInstrAsgnmCndtnDAO.select_column_name"/>
FROM
<include refid="VEAInstrAsgnmCndtnDAO.table_name"/> a
WHERE
a.asgnm_cd = #asgnmCd#
</select>
<!-- 강사 정보 U -->
<update id="VEAInstrAsgnmCndtnDAO.update" parameterClass="VEAStngVO">
/* VEAInstrAsgnmCndtnDAO.update */
MERGE INTO <include refid="VEAInstrAsgnmCndtnDAO.table_name"/>
USING DUAL
ON(asgnm_cd=#asgnmCd#)
WHEN NOT MATCHED THEN
INSERT
(
<include refid="VEAInstrAsgnmCndtnDAO.column_name"/>
)
VALUES(
#asgnmCd#,
#useYn#,
SYSDATE,
#frstRegisterId#,
NULL,
NULL
)
WHEN MATCHED THEN
UPDATE
SET use_yn = #useYn#
, last_updusr_id = #frstRegisterId#
, last_updt_pnttm = SYSDATE
</update>
<!-- 강사 정보 U -->
<!--
<update id="VEAInstrAsgnmCndtnDAO.updateBulk" parameterClass="VEAStngVO">
INSERT INTO <include refid="VEAInstrAsgnmCndtnDAO.table_name"/>
(
edu_aplct_ord,
prcs_ord,
frst_regist_pnttm,
frst_register_id
)
SELECT #eduAplctOrd#,prcs_ord, SYSDATE,#lastUpdusrId#
FROM ve_prcs_onln_cntnt
WHERE prcs_ord=#prcsOrd#
AND use_yn='Y'
ON DUPLICATE KEY UPDATE
last_updt_pnttm=SYSDATE,
last_updusr_id=#lastUpdusrId#
</update>
-->
<!-- 강사 정보 D -->
<delete id="VEAInstrAsgnmCndtnDAO.delete" parameterClass="VEAStngVO">
DELETE FROM
<include refid="VEAInstrAsgnmCndtnDAO.table_name"/> a
WHERE
a.asgnm_cd = #asgnmCd#
</delete>
<!-- 강사 정보 L -->
<select id="VEAInstrAsgnmCndtnDAO.selectList" parameterClass="VEAStngVO" resultClass="VEAStngVO">
/* VEAInstrAsgnmCndtnDAO.selectList */
SELECT
<include refid="VEAInstrAsgnmCndtnDAO.select_column_name"/>
FROM
<include refid="VEAInstrAsgnmCndtnDAO.table_name"/> a
WHERE
1=1
<isNotEmpty property="useYn">
AND a.use_yn=#useYn#
</isNotEmpty>
<isNotEmpty property="asgnmCd">
AND a.asgnm_cd=#asgnmCd#
</isNotEmpty>
<isNotEmpty property="searchWord" prepend="AND">
a.use_yn LIKE '%'||#searchWord#||'%'
</isNotEmpty>
</select>
<!-- 강사 정보 L page -->
<select id="VEAInstrAsgnmCndtnDAO.selectPagingList" parameterClass="VEAStngVO" resultClass="VEAStngVO">
SELECT
COUNT(1) OVER() AS totCnt ,
<include refid="VEAInstrAsgnmCndtnDAO.select_column_name"/>
FROM
<include refid="VEAInstrAsgnmCndtnDAO.table_name"/> a
WHERE
1=1
<isNotEmpty property="selectPagingListQuery">
$selectPagingListQuery$
</isNotEmpty>
<isNotEmpty property="asgnmCd">
AND a.asgnm_cd=#asgnmCd#
</isNotEmpty>
ORDER BY 1
<isEmpty property="orderByQuery">
, a.asgnm_cd desc
</isEmpty>
<isNotEmpty property="orderByQuery">
, $orderByQuery$
</isNotEmpty>
/*
LIMIT recordCountPerPage OFFSET firstIndex
*/
OFFSET #firstIndex# ROWS FETCH NEXT #recordCountPerPage# ROWS ONLY;
</select>
</sqlMap>

View File

@ -0,0 +1,404 @@
<?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="VEAInstrMntTm">
<typeAlias alias="egovMap" type="egovframework.rte.psl.dataaccess.util.EgovMap"/>
<typeAlias alias="VEAStngVO" type="kcc.ve.adv.tngr.stngInfo.service.VEAStngVO"/>
<!-- 공통 테이블 명 -->
<sql id="VEAInstrMntTmDAO.table_name">
vea_instr_mnt_tm
</sql>
<!-- 저장용 공통 컬럼 명 -->
<sql id="VEAInstrMntTmDAO.column_name">
yr,
mnt,
aplct_chasi,
instr_ea_5,
instr_tm_5,
asgnm_chasi_5,
instr_ea_4,
instr_tm_4,
asgnm_chasi_4,
instr_ea_3,
instr_tm_3,
asgnm_chasi_3,
instr_ea_2,
instr_tm_2,
asgnm_chasi_2,
instr_ea_1,
instr_tm_1,
asgnm_chasi_1,
frst_regist_pnttm,
frst_register_id,
last_updt_pnttm,
last_updusr_id
</sql>
<!-- 조회용 공통 컬럼 명 -->
<sql id="VEAInstrMntTmDAO.select_column_name">
a.yr AS yr,
a.mnt AS mnt,
aplct_chasi AS aplctChasi,
instr_ea_5 AS instrEa5,
instr_tm_5 AS instrTm5,
asgnm_chasi_5 AS asgnmChasi5,
instr_ea_4 AS instrEa4,
instr_tm_4 AS instrTm4,
asgnm_chasi_4 AS asgnmChasi4,
instr_ea_3 AS instrEa3,
instr_tm_3 AS instrTm3,
asgnm_chasi_3 AS asgnmChasi3,
instr_ea_2 AS instrEa2,
instr_tm_2 AS instrTm2,
asgnm_chasi_2 AS asgnmChasi2,
instr_ea_1 AS instrEa1,
instr_tm_1 AS instrTm1,
asgnm_chasi_1 AS asgnmChasi1,
TO_CHAR(a.frst_regist_pnttm,'YYYY-MM-DD') AS frstRegistPnttm,
a.frst_register_id AS frstRegisterId,
TO_CHAR(a.last_updt_pnttm,'YYYY-MM-DD') AS lastUpdtPnttm,
a.last_updusr_id AS lastUpdusrId
</sql>
<!-- 강사 등록 C -->
<insert id="VEAInstrMntTmDAO.insert" parameterClass="VEAStngVO">
/* VEAInstrMntTmDAO.insert */
MERGE INTO <include refid="VEAInstrMntTmDAO.table_name"/>
USING DUAL
ON(yr=#yr# AND mnt=#mnt#)
WHEN NOT MATCHED THEN
INSERT
(
<include refid="VEAInstrMntTmDAO.column_name"/>
)
VALUES(
#yr#,
#mnt#,
#aplctChasi#,
#instrEa5#,
#instrTm5#,
#asgnmChasi5#,
#instrEa4#,
#instrTm4#,
#asgnmChasi4#,
#instrEa3#,
#instrTm3#,
#asgnmChasi3#,
#instrEa2#,
#instrTm2#,
#asgnmChasi2#,
#instrEa1#,
#instrTm1#,
#asgnmChasi1#,
SYSDATE,
#frstRegisterId#,
NULL,
NULL
)
WHEN MATCHED THEN
UPDATE
SET last_updusr_id = #frstRegisterId#
, last_updt_pnttm = SYSDATE
<isNotEmpty property="aplctChasi">
AND aplct_chasi=#aplctChasi#
</isNotEmpty><isNotEmpty property="instrEa5">
AND instr_ea_5=#instrEa5#
</isNotEmpty><isNotEmpty property="instrTm5">
AND instr_tm_5=#instrTm5#
</isNotEmpty><isNotEmpty property="asgnmChasi5">
AND asgnm_chasi_5=#asgnmChasi5#
</isNotEmpty><isNotEmpty property="instrEa4">
AND instr_ea_4=#instrEa4#
</isNotEmpty><isNotEmpty property="instrTm4">
AND instr_tm_4=#instrTm4#
</isNotEmpty><isNotEmpty property="asgnmChasi4">
AND asgnm_chasi_4=#asgnmChasi4#
</isNotEmpty><isNotEmpty property="instrEa3">
AND instr_ea_3=#instrEa3#
</isNotEmpty><isNotEmpty property="instrTm3">
AND instr_tm_3=#instrTm3#
</isNotEmpty><isNotEmpty property="asgnmChasi3">
AND asgnm_chasi_3=#asgnmChasi3#
</isNotEmpty><isNotEmpty property="instrEa2">
AND instr_ea_2=#instrEa2#
</isNotEmpty><isNotEmpty property="instrTm2">
AND instr_tm_2=#instrTm2#
</isNotEmpty><isNotEmpty property="asgnmChasi2">
AND asgnm_chasi_2=#asgnmChasi2#
</isNotEmpty><isNotEmpty property="instrEa1">
AND instr_ea_1=#instrEa1#
</isNotEmpty><isNotEmpty property="instrTm1">
AND instr_tm_1=#instrTm1#
</isNotEmpty><isNotEmpty property="asgnmChasi1">
AND asgnm_chasi_1=#asgnmChasi1#
</isNotEmpty>
</insert>
<!-- 강사 정보 R -->
<select id="VEAInstrMntTmDAO.selectDetail" parameterClass="VEAStngVO" resultClass="VEAStngVO">
SELECT
<include refid="VEAInstrMntTmDAO.select_column_name"/>
FROM
<include refid="VEAInstrMntTmDAO.table_name"/> a
WHERE
a.yr = #yr#
AND a.mnt = #mnt#
</select>
<!-- 강사 정보 U -->
<update id="VEAInstrMntTmDAO.update" parameterClass="VEAStngVO">
/* VEAInstrMntTmDAO.update */
MERGE INTO <include refid="VEAInstrMntTmDAO.table_name"/>
USING DUAL
ON(yr=#yr# AND mnt=#mnt#)
WHEN NOT MATCHED THEN
INSERT
(
<include refid="VEAInstrMntTmDAO.column_name"/>
)
VALUES(
#yr#,
#mnt#,
#aplctChasi#,
#instrEa5#,
#instrTm5#,
#asgnmChasi5#,
#instrEa4#,
#instrTm4#,
#asgnmChasi4#,
#instrEa3#,
#instrTm3#,
#asgnmChasi3#,
#instrEa2#,
#instrTm2#,
#asgnmChasi2#,
#instrEa1#,
#instrTm1#,
#asgnmChasi1#,
SYSDATE,
#frstRegisterId#,
NULL,
NULL
)
WHEN MATCHED THEN
UPDATE
SET last_updusr_id = #frstRegisterId#
, last_updt_pnttm = SYSDATE
<isNotEmpty property="aplctChasi">
AND aplct_chasi=#aplctChasi#
</isNotEmpty><isNotEmpty property="instrEa5">
AND instr_ea_5=#instrEa5#
</isNotEmpty><isNotEmpty property="instrTm5">
AND instr_tm_5=#instrTm5#
</isNotEmpty><isNotEmpty property="asgnmChasi5">
AND asgnm_chasi_5=#asgnmChasi5#
</isNotEmpty><isNotEmpty property="instrEa4">
AND instr_ea_4=#instrEa4#
</isNotEmpty><isNotEmpty property="instrTm4">
AND instr_tm_4=#instrTm4#
</isNotEmpty><isNotEmpty property="asgnmChasi4">
AND asgnm_chasi_4=#asgnmChasi4#
</isNotEmpty><isNotEmpty property="instrEa3">
AND instr_ea_3=#instrEa3#
</isNotEmpty><isNotEmpty property="instrTm3">
AND instr_tm_3=#instrTm3#
</isNotEmpty><isNotEmpty property="asgnmChasi3">
AND asgnm_chasi_3=#asgnmChasi3#
</isNotEmpty><isNotEmpty property="instrEa2">
AND instr_ea_2=#instrEa2#
</isNotEmpty><isNotEmpty property="instrTm2">
AND instr_tm_2=#instrTm2#
</isNotEmpty><isNotEmpty property="asgnmChasi2">
AND asgnm_chasi_2=#asgnmChasi2#
</isNotEmpty><isNotEmpty property="instrEa1">
AND instr_ea_1=#instrEa1#
</isNotEmpty><isNotEmpty property="instrTm1">
AND instr_tm_1=#instrTm1#
</isNotEmpty><isNotEmpty property="asgnmChasi1">
AND asgnm_chasi_1=#asgnmChasi1#
</isNotEmpty>
</update>
<!-- 강사 정보 U -->
<!--
<update id="VEAInstrMntTmDAO.updateBulk" parameterClass="VEAStngVO">
INSERT INTO <include refid="VEAInstrMntTmDAO.table_name"/>
(
edu_aplct_ord,
prcs_ord,
frst_regist_pnttm,
frst_register_id
)
SELECT #eduAplctOrd#,prcs_ord, SYSDATE,#lastUpdusrId#
FROM ve_prcs_onln_cntnt
WHERE prcs_ord=#prcsOrd#
AND use_yn='Y'
ON DUPLICATE KEY UPDATE
last_updt_pnttm=SYSDATE,
last_updusr_id=#lastUpdusrId#
</update>
-->
<!-- 강사 정보 D -->
<delete id="VEAInstrMntTmDAO.delete" parameterClass="VEAStngVO">
DELETE FROM
<include refid="VEAInstrMntTmDAO.table_name"/> a
WHERE
a.yr = #yr#
AND a.mnt = #mnt#
</delete>
<!-- 강사 정보 L -->
<select id="VEAInstrMntTmDAO.selectList" parameterClass="VEAStngVO" resultClass="VEAStngVO">
/* VEAInstrMntTmDAO.selectList */
SELECT
<include refid="VEAInstrMntTmDAO.select_column_name"/>
FROM
<include refid="VEAInstrMntTmDAO.table_name"/> a
WHERE
1=1
<isNotEmpty property="yr">
AND a.yr=#yr#
</isNotEmpty>
<isNotEmpty property="mnt">
AND a.mnt=#mnt#
</isNotEmpty>
</select>
<!-- 강사 정보 L page -->
<select id="VEAInstrMntTmDAO.selectPagingList" parameterClass="VEAStngVO" resultClass="VEAStngVO">
SELECT
COUNT(1) OVER() AS totCnt ,
<include refid="VEAInstrMntTmDAO.select_column_name"/>
FROM
<include refid="VEAInstrMntTmDAO.table_name"/> a
WHERE
1=1
<isNotEmpty property="selectPagingListQuery">
$selectPagingListQuery$
</isNotEmpty>
<isNotEmpty property="yr">
AND a.yr=#yr#
</isNotEmpty>
<isNotEmpty property="mnt">
AND a.mnt=#mnt#
</isNotEmpty>
ORDER BY 1
<isEmpty property="orderByQuery">
, a.yr desc
, a.mnt asc
</isEmpty>
<isNotEmpty property="orderByQuery">
, $orderByQuery$
</isNotEmpty>
/*
LIMIT recordCountPerPage OFFSET firstIndex
*/
OFFSET #firstIndex# ROWS FETCH NEXT #recordCountPerPage# ROWS ONLY;
</select>
</sqlMap>

View File

@ -0,0 +1,252 @@
<?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="VEAInstrRsdncRatio">
<typeAlias alias="egovMap" type="egovframework.rte.psl.dataaccess.util.EgovMap"/>
<typeAlias alias="VEAStngVO" type="kcc.ve.adv.tngr.stngInfo.service.VEAStngVO"/>
<!-- 공통 테이블 명 -->
<sql id="VEAInstrRsdncRatioDAO.table_name">
vea_instr_rsdnc_ratio
</sql>
<!-- 저장용 공통 컬럼 명 -->
<sql id="VEAInstrRsdncRatioDAO.column_name">
area_cd,
ratio_5,
ratio_4,
ratio_3,
ratio_2,
ratio_1,
frst_regist_pnttm,
frst_register_id,
last_updt_pnttm,
last_updusr_id
</sql>
<!-- 조회용 공통 컬럼 명 -->
<sql id="VEAInstrRsdncRatioDAO.select_column_name">
a.area_cd AS areaCd,
ratio_5 AS ratio5,
ratio_4 AS ratio4,
ratio_3 AS ratio3,
ratio_2 AS ratio2,
ratio_1 AS ratio1,
TO_CHAR(a.frst_regist_pnttm,'YYYY-MM-DD') AS frstRegistPnttm,
a.frst_register_id AS frstRegisterId,
TO_CHAR(a.last_updt_pnttm,'YYYY-MM-DD') AS lastUpdtPnttm,
a.last_updusr_id AS lastUpdusrId
</sql>
<!-- 강사 등록 C -->
<insert id="VEAInstrRsdncRatioDAO.insert" parameterClass="VEAStngVO">
/* VEAInstrRsdncRatioDAO.insert */
MERGE INTO <include refid="VEAInstrRsdncRatioDAO.table_name"/>
USING DUAL
ON(area_cd=#areaCd#)
WHEN NOT MATCHED THEN
INSERT
(
<include refid="VEAInstrRsdncRatioDAO.column_name"/>
)
VALUES(
#areaCd#,
#ratio5#,
#ratio4#,
#ratio3#,
#ratio2#,
#ratio1#,
SYSDATE,
#frstRegisterId#,
NULL,
NULL
)
WHEN MATCHED THEN
UPDATE
SET last_updusr_id = #frstRegisterId#
, last_updt_pnttm = SYSDATE
<isNotEmpty property="ratio5">
AND ratio_5=#ratio5#
</isNotEmpty><isNotEmpty property="ratio4">
AND ratio_4=#ratio4#
</isNotEmpty><isNotEmpty property="ratio3">
AND ratio_3=#ratio3#
</isNotEmpty><isNotEmpty property="ratio2">
AND ratio_2=#ratio2#
</isNotEmpty><isNotEmpty property="ratio1">
AND ratio_1=#ratio1#
</isNotEmpty>
</insert>
<!-- 강사 정보 R -->
<select id="VEAInstrRsdncRatioDAO.selectDetail" parameterClass="VEAStngVO" resultClass="VEAStngVO">
SELECT
<include refid="VEAInstrRsdncRatioDAO.select_column_name"/>
FROM
<include refid="VEAInstrRsdncRatioDAO.table_name"/> a
WHERE
a.area_cd=#areaCd#
</select>
<!-- 강사 정보 U -->
<update id="VEAInstrRsdncRatioDAO.update" parameterClass="VEAStngVO">
/* VEAInstrRsdncRatioDAO.update */
MERGE INTO <include refid="VEAInstrRsdncRatioDAO.table_name"/>
USING DUAL
ON(area_cd=#areaCd#)
WHEN NOT MATCHED THEN
INSERT
(
<include refid="VEAInstrRsdncRatioDAO.column_name"/>
)
VALUES(
#areaCd#,
#ratio5#,
#ratio4#,
#ratio3#,
#ratio2#,
#ratio1#,
SYSDATE,
#frstRegisterId#,
NULL,
NULL
)
WHEN MATCHED THEN
UPDATE
SET last_updusr_id = #frstRegisterId#
, last_updt_pnttm = SYSDATE
<isNotEmpty property="ratio5">
AND ratio_5=#ratio5#
</isNotEmpty><isNotEmpty property="ratio4">
AND ratio_4=#ratio4#
</isNotEmpty><isNotEmpty property="ratio3">
AND ratio_3=#ratio3#
</isNotEmpty><isNotEmpty property="ratio2">
AND ratio_2=#ratio2#
</isNotEmpty><isNotEmpty property="ratio1">
AND ratio_1=#ratio1#
</isNotEmpty>
</update>
<!-- 강사 정보 U -->
<!--
<update id="VEAInstrRsdncRatioDAO.updateBulk" parameterClass="VEAStngVO">
INSERT INTO <include refid="VEAInstrRsdncRatioDAO.table_name"/>
(
edu_aplct_ord,
prcs_ord,
frst_regist_pnttm,
frst_register_id
)
SELECT #eduAplctOrd#,prcs_ord, SYSDATE,#lastUpdusrId#
FROM ve_prcs_onln_cntnt
WHERE prcs_ord=#prcsOrd#
AND use_yn='Y'
ON DUPLICATE KEY UPDATE
last_updt_pnttm=SYSDATE,
last_updusr_id=#lastUpdusrId#
</update>
-->
<!-- 강사 정보 D -->
<delete id="VEAInstrRsdncRatioDAO.delete" parameterClass="VEAStngVO">
DELETE FROM
<include refid="VEAInstrRsdncRatioDAO.table_name"/> a
WHERE
a.area_cd=#areaCd#
</delete>
<!-- 강사 정보 L -->
<select id="VEAInstrRsdncRatioDAO.selectList" parameterClass="VEAStngVO" resultClass="VEAStngVO">
/* VEAInstrRsdncRatioDAO.selectList */
SELECT
<include refid="VEAInstrRsdncRatioDAO.select_column_name"/>
FROM
<include refid="VEAInstrRsdncRatioDAO.table_name"/> a
WHERE
1=1
<isNotEmpty property="areaCd">
AND a.area_cd=#areaCd#
</isNotEmpty>
</select>
<!-- 강사 정보 L page -->
<select id="VEAInstrRsdncRatioDAO.selectPagingList" parameterClass="VEAStngVO" resultClass="VEAStngVO">
SELECT
COUNT(1) OVER() AS totCnt ,
<include refid="VEAInstrRsdncRatioDAO.select_column_name"/>
FROM
<include refid="VEAInstrRsdncRatioDAO.table_name"/> a
WHERE
1=1
<isNotEmpty property="selectPagingListQuery">
$selectPagingListQuery$
</isNotEmpty>
<isNotEmpty property="areaCd">
AND a.area_cd=#areaCd#
</isNotEmpty>
ORDER BY 1
<isEmpty property="orderByQuery">
, a.area_cd ASC
</isEmpty>
<isNotEmpty property="orderByQuery">
, $orderByQuery$
</isNotEmpty>
/*
LIMIT recordCountPerPage OFFSET firstIndex
*/
OFFSET #firstIndex# ROWS FETCH NEXT #recordCountPerPage# ROWS ONLY;
</select>
</sqlMap>

View File

@ -484,4 +484,23 @@
</select> </select>
<!-- 최종 신청년도를 가져온다. -->
<select id="VEALctrYrStngMixDAO.selectEduGetStngYrToStr" parameterClass="VEAStngVO" resultClass="String">
/* VEALctrYrStngMixDAO.selectEduGetStngYrToStr */
SELECT max(yr) AS yr
FROM (
SELECT b1.yr
FROM (
SELECT a.rnds_ord
FROM ve_edu_aplct a
GROUP BY a.rnds_ord
)a1
,vea_lctr_rnds_stng b1
WHERE a1.rnds_ord=b1.rnds_ord
UNION ALL
SELECT to_char(sysdate, 'YYYY')
FROM dual
)aa1
</select>
</sqlMap> </sqlMap>

View File

@ -88,6 +88,8 @@
$(this).val(new Date().getMonth()+1); $(this).val(new Date().getMonth()+1);
}else if($(this).attr('name').indexOf('Year') != -1){ }else if($(this).attr('name').indexOf('Year') != -1){
$(this).val(new Date().getFullYear()); $(this).val(new Date().getFullYear());
}else if($(this).attr('name').indexOf('stngYr') != -1){
$(this).val('${vEEduAplctVO.stngYr}');
}else{ }else{
$(this).prop("selectedIndex", 0); $(this).prop("selectedIndex", 0);
} }
@ -277,6 +279,20 @@
<div class="cont"> <div class="cont">
<!-- list_top --> <!-- list_top -->
<div class="list_top"> <div class="list_top">
<!--
<div class="list_top_1">
<div class="util_left">
<p>기준년도</p>
</div>
<div class="util_right">
<label for="searchStatus2" class="label">신청상태 선택</label>
<ve:select codeId="VE0029" name="stngYr" id="stngYr" css="class='sel_type1'"
selectedValue="${vEEduAplctVO.stngYr}"
onChange="fncGoListReset(); return false;"
/>
</div>
</div>
-->
<div class="list_top_1"> <div class="list_top_1">
<div class="util_left"> <div class="util_left">
<p>구분</p> <p>구분</p>

View File

@ -772,7 +772,23 @@
<div class="cont"> <div class="cont">
<!-- list_top --> <!-- list_top -->
<div class="list_top"> <div class="list_top">
<!--
<div class="list_top_1"> <div class="list_top_1">
<div class="util_left">
<p>기준년도</p>
</div>
<div class="util_right">
<label for="searchStatus2" class="label">신청상태 선택</label>
<ve:select codeId="VE0029" name="stngYr" id="stngYr" css="class='sel_type1'"
selectedValue="${vEEduAplctVO.stngYr}"
onChange="fncGoListReset(); return false;"
/>
</div>
</div>
-->
<div class="list_top_1">
<div class="util_left"> <div class="util_left">
<p>확정여부</p> <p>확정여부</p>
</div> </div>
@ -794,7 +810,7 @@
<!-- <button type="button" class="btn_type08" onclick="fncGoList(); return false;">검색</button> --> <!-- <button type="button" class="btn_type08" onclick="fncGoList(); return false;">검색</button> -->
</div> </div>
<div class="right_box"> <div class="right_box">
<button type="button" class="btn_type06" onclick="fncInstrAsgnmCndtnMng(); return false;">강사배정조건관리X</button> <button type="button" class="btn_type06" onclick="fncInstrAsgnmCndtnMng(); return false;">강사배정조건관리</button>
<button type="button" class="btn_type06" onclick="fncInstrMntTmMng(); return false;">강사월별시수계산X</button> <button type="button" class="btn_type06" onclick="fncInstrMntTmMng(); return false;">강사월별시수계산X</button>
<button type="button" class="btn_type06" onclick="fncInstrRsdncMng(); return false;">강사거주지별배정비율설정X</button> <button type="button" class="btn_type06" onclick="fncInstrRsdncMng(); return false;">강사거주지별배정비율설정X</button>

View File

@ -74,21 +74,13 @@
*/ */
} }
function fncInstrAsgnm(id, p_rank) { function fncInstrAsgnm() {
$("#userId").val(id);
if (p_rank=='-'){
$("#rmrks").val(p_rank);
}else{
$("#rmrks").val("배정기준"+p_rank+"순위");
}
var data1 = new FormData(document.getElementById("createForm")); var data1 = new FormData(document.getElementById("createForm"));
$.ajax({ $.ajax({
type:"POST", type:"POST",
url:"${pageContext.request.contextPath}/kccadr/oprtn/tngrVisitEdu/popup/instrAsgnmAjax.do", url:"${pageContext.request.contextPath}/kccadr/oprtn/tngrVisitEdu/popup/instrAsgnmCndtnMngPopupAjax.do",
data: data1, data: data1,
dataType:'json', dataType:'json',
async: false, async: false,
@ -98,8 +90,8 @@
success:function(returnData){ success:function(returnData){
if(returnData.result == 'success'){ if(returnData.result == 'success'){
alert("저장 되었습니다."); alert("저장 되었습니다.");
opener.location.reload(); location.reload();
fncPopClose(); //fncPopClose();
} }
}, },
error:function(request , status, error){ error:function(request , status, error){
@ -163,15 +155,6 @@
<input type="hidden" name="userId" id="userId" /> <input type="hidden" name="userId" id="userId" />
<input type="hidden" name="rmrks" id="rmrks" /> <input type="hidden" name="rmrks" id="rmrks" />
<input type="hidden" name="asgnmAprvlCd" value="${vEEduAplctVO.asgnmAprvlCd}"/> <input type="hidden" name="asgnmAprvlCd" value="${vEEduAplctVO.asgnmAprvlCd}"/>
</form:form>
<form:form id="listForm" name="listForm" method="post" onsubmit="return false;">
<input type="hidden" name="pageIndex" value="<c:out value='${vEEduAplctVO.pageIndex}' default='1' />"/>
<input type="hidden" name="searchSortCnd" value="<c:out value="${vEEduAplctVO.searchSortCnd}" />" />
<input type="hidden" name="searchSortOrd" value="<c:out value="${vEEduAplctVO.searchSortOrd}" />" />
<input type="hidden" name="eduAplctOrd" value="<c:out value="${vEEduAplctVO.eduAplctOrd}" />" />
<input type="hidden" name="eduChasiOrd" value="<c:out value="${vEEduAplctVO.eduChasiOrd}" />" />
<input type="hidden" name="instrDiv" value="<c:out value="${vEEduAplctVO.instrDiv}" />" /><!-- 성인 -->
<div class="area_popup"> <div class="area_popup">
@ -196,42 +179,26 @@
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
<c:forEach var="row" items="${asgnmStngVOList}" varStatus="status">
<tr> <tr>
<td> <td>
<p>거주지 우선</p> <p>${row.asgnmNm}</p>
</td> </td>
<td> <td>
<input type="radio" name="isltnScholYn0" id="isltn_schol_Y" value="Y" ${empty info.isltnScholYn or info.isltnScholYn eq 'N' ? 'checked' : info.isltnScholYn}> <input type="radio" name="${row.asgnmCd}" id="${row.asgnmCd}_Y" value="Y" ${row.useYn eq 'Y' ? 'checked' : ''}>
<label for="isltn_schol_Y">적용</label> <label for="${row.asgnmCd}_Y">적용</label>
<input type="radio" name="isltnScholYn0" id="isltn_schol_N" value="N" ${info.isltnScholYn eq 'Y' ? 'checked' : info.isltnScholYn}> <input type="radio" name="${row.asgnmCd}" id="${row.asgnmCd}_N" value="N" ${row.useYn ne 'Y' ? 'checked' : ''}>
<label for="isltn_schol_N">제외</label> <label for="${row.asgnmCd}_N">제외</label>
</td> </td>
</tr> </tr>
<tr> </c:forEach>
<td>
<p>연강 기준</p>
</td>
<td>
<input type="radio" name="isltnScholYn1" id="isltn_schol_Y" value="Y" ${empty info.isltnScholYn or info.isltnScholYn eq 'N' ? 'checked' : info.isltnScholYn}>
<label for="isltn_schol_Y">적용</label>
<input type="radio" name="isltnScholYn1" id="isltn_schol_N" value="N" ${info.isltnScholYn eq 'Y' ? 'checked' : info.isltnScholYn}>
<label for="isltn_schol_N">제외</label>
</td>
</tr>
<tr>
<td>
<p>패널티 기준</p>
</td>
<td>
<input type="radio" name="isltnScholYn2" id="isltn_schol_Y" value="Y" ${empty info.isltnScholYn or info.isltnScholYn eq 'N' ? 'checked' : info.isltnScholYn}>
<label for="isltn_schol_Y">적용</label>
<input type="radio" name="isltnScholYn2" id="isltn_schol_N" value="N" ${info.isltnScholYn eq 'Y' ? 'checked' : info.isltnScholYn}>
<label for="isltn_schol_N">제외</label>
</td>
</tr>
</tbody> </tbody>
</table> </table>
</div> </div>
@ -241,7 +208,7 @@
<div class="btn_left"> <div class="btn_left">
</div> </div>
<div class="btn_center"> <div class="btn_center">
<button type="button" class="btn_type06" onclick="self.close();">저장</button> <button type="button" class="btn_type06" onclick="fncInstrAsgnm();return false;">저장</button>
<button type="button" class="btn_type04" onclick="self.close();">닫기</button> <button type="button" class="btn_type04" onclick="self.close();">닫기</button>
</div> </div>
<div class="btn_right"> <div class="btn_right">