From 234ddb5d74ddbac9e276ee0b254702e7919335a5 Mon Sep 17 00:00:00 2001 From: myname Date: Fri, 27 Oct 2023 17:11:58 +0900 Subject: [PATCH] =?UTF-8?q?2023-10-27=2017:11=20=EC=B2=AD=EC=86=8C?= =?UTF-8?q?=EB=85=84=20=EA=B0=95=EC=82=AC=20=EB=B0=B0=EC=A0=95=20=EC=9E=91?= =?UTF-8?q?=EC=97=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../stngInfo/service/VEAStngMixService.java | 11 +- .../adv/tngr/stngInfo/service/VEAStngVO.java | 22 + .../stngInfo/service/impl/VEAStngMixDAO.java | 17 +- .../service/impl/VEAStngMixServiceImpl.java | 12 + .../eduInfo/service/VEEduMIXService.java | 2 + .../eduInfo/service/impl/VEEduMIXDAO.java | 6 + .../service/impl/VEEduMIXServiceImpl.java | 5 + .../instrInfo/service/VEInstrDetailVO.java | 43 ++ .../instrInfo/service/VEInstrMixService.java | 6 + .../instrInfo/service/impl/VEInstrMixDAO.java | 10 + .../service/impl/VEInstrMixServiceImpl.java | 10 + .../web/EduCnfrmMngTngrController.java | 66 ++ .../web/NewEduCnfrmMngTngrController.java | 564 +++++++++++------- .../EgovCmmnDetailCodeManage_SQL_Tibero.xml | 2 +- .../sqlmap/ve/edu/VEEdu_MIX_SQL_Tibero.xml | 281 +++++++++ .../ve/instr/VEInstr_MIX_SQL_Tibero.xml | 279 +++++++++ .../ve/tngr/VEAAsgnmStngMix_SQL_Tibero.xml | 121 +++- .../ve/tngr/VEAInstrMntTm_SQL_Tibero.xml | 80 ++- .../ve/tngr/VEAInstrRsdncRatio_SQL_Tibero.xml | 22 +- .../oprtn/tngrVisitEdu/eduCnfrmMngList.jsp | 38 +- .../popup/instrAsgnmCndtnMngPopup.jsp | 6 +- .../tngrVisitEdu/popup/instrMntTmMngPopup.jsp | 483 ++++++++------- .../tngrVisitEdu/popup/instrRsdncMngPopup.jsp | 519 +++++----------- .../popup/spcfcInstrAsgnmPopup.jsp | 94 +-- 24 files changed, 1811 insertions(+), 888 deletions(-) diff --git a/src/main/java/kcc/ve/adv/tngr/stngInfo/service/VEAStngMixService.java b/src/main/java/kcc/ve/adv/tngr/stngInfo/service/VEAStngMixService.java index 0787308f..ac3b7c14 100644 --- a/src/main/java/kcc/ve/adv/tngr/stngInfo/service/VEAStngMixService.java +++ b/src/main/java/kcc/ve/adv/tngr/stngInfo/service/VEAStngMixService.java @@ -46,7 +46,16 @@ public interface VEAStngMixService { //vea_lctr_psbl_prd_stng - 해당 회차의 신청 가능한 기간일지 체크 String selectEduGetStngYrToStr(VEAStngVO vEAStngVO) throws Exception; + //VEA_INSTR_ASGNM_CNDTN - 강사배정조건 - //강의가능기간 일정 데이터 - 강의가능기간 세부 선택 데이터 List selectList_VEAIAC_1(VEAStngVO paramVO) throws Exception; // LIST + + //VEA_INSTR_RSDNC_RATIO - 강사주거지비율 + List selectList_VEAIRR_1(VEAStngVO paramVO) throws Exception; // LIST + + //VEA_INSTR_MNT_TM - 강사월별시수 + List selectList_VEAIMT_1(VEAStngVO paramVO) throws Exception; // LIST + + //VEA_INSTR_MNT_TM - 강사월별시수 + int selectList_VEAIMT_2(VEAStngVO paramVO) throws Exception; // LIST } diff --git a/src/main/java/kcc/ve/adv/tngr/stngInfo/service/VEAStngVO.java b/src/main/java/kcc/ve/adv/tngr/stngInfo/service/VEAStngVO.java index 98a75766..d1552011 100644 --- a/src/main/java/kcc/ve/adv/tngr/stngInfo/service/VEAStngVO.java +++ b/src/main/java/kcc/ve/adv/tngr/stngInfo/service/VEAStngVO.java @@ -89,6 +89,10 @@ public class VEAStngVO extends ComDefaultVO implements Serializable { private String instrEa1; //해당월 1일강사수 private String instrTm1; //해당월 1일강사인당시간 private String asgnmChasi1; //해당월 1일강사배정총차시 + + private String instrEa0; //해당월 0일강사수 + private String instrTm0; //해당월 0일강사인당시간 + private String asgnmChasi0; //해당월 0일강사배정총차시 //etc private String code; //설정 년도 @@ -573,5 +577,23 @@ public class VEAStngVO extends ComDefaultVO implements Serializable { public void setAsgnmNm(String asgnmNm) { this.asgnmNm = asgnmNm; } + public String getInstrEa0() { + return instrEa0; + } + public void setInstrEa0(String instrEa0) { + this.instrEa0 = instrEa0; + } + public String getInstrTm0() { + return instrTm0; + } + public void setInstrTm0(String instrTm0) { + this.instrTm0 = instrTm0; + } + public String getAsgnmChasi0() { + return asgnmChasi0; + } + public void setAsgnmChasi0(String asgnmChasi0) { + this.asgnmChasi0 = asgnmChasi0; + } } diff --git a/src/main/java/kcc/ve/adv/tngr/stngInfo/service/impl/VEAStngMixDAO.java b/src/main/java/kcc/ve/adv/tngr/stngInfo/service/impl/VEAStngMixDAO.java index d5433582..4223554e 100644 --- a/src/main/java/kcc/ve/adv/tngr/stngInfo/service/impl/VEAStngMixDAO.java +++ b/src/main/java/kcc/ve/adv/tngr/stngInfo/service/impl/VEAStngMixDAO.java @@ -78,5 +78,20 @@ public class VEAStngMixDAO extends EgovAbstractDAO { List tlist = (List) list("VEAAsgnmStngMixDAO.selectList_VEAIAC_1", paramVO); return tlist; } - + + //L + public List selectList_VEAIRR_1(VEAStngVO paramVO) throws Exception { + List tlist = (List) list("VEAAsgnmStngMixDAO.selectList_VEAIRR_1", paramVO); + return tlist; + } + + //L + public List selectList_VEAIMT_1(VEAStngVO paramVO) throws Exception { + List tlist = (List) list("VEAAsgnmStngMixDAO.selectList_VEAIMT_1", paramVO); + return tlist; + } + + public int selectList_VEAIMT_2(VEAStngVO paramVO) throws Exception { + return (int) select("VEAAsgnmStngMixDAO.selectList_VEAIMT_2", paramVO); + } } diff --git a/src/main/java/kcc/ve/adv/tngr/stngInfo/service/impl/VEAStngMixServiceImpl.java b/src/main/java/kcc/ve/adv/tngr/stngInfo/service/impl/VEAStngMixServiceImpl.java index 73fd848c..6c9d4ac7 100644 --- a/src/main/java/kcc/ve/adv/tngr/stngInfo/service/impl/VEAStngMixServiceImpl.java +++ b/src/main/java/kcc/ve/adv/tngr/stngInfo/service/impl/VEAStngMixServiceImpl.java @@ -290,4 +290,16 @@ public class VEAStngMixServiceImpl implements VEAStngMixService { public List selectList_VEAIAC_1(VEAStngVO paramVO) throws Exception{ return vEAStngMixDAO.selectList_VEAIAC_1(paramVO); } + + public List selectList_VEAIRR_1(VEAStngVO paramVO) throws Exception{ + return vEAStngMixDAO.selectList_VEAIRR_1(paramVO); + } + + public List selectList_VEAIMT_1(VEAStngVO paramVO) throws Exception{ + return vEAStngMixDAO.selectList_VEAIMT_1(paramVO); + } + + public int selectList_VEAIMT_2(VEAStngVO paramVO) throws Exception{ + return vEAStngMixDAO.selectList_VEAIMT_2(paramVO); + } } diff --git a/src/main/java/kcc/ve/instr/tngrVisitEdu/eduInfo/service/VEEduMIXService.java b/src/main/java/kcc/ve/instr/tngrVisitEdu/eduInfo/service/VEEduMIXService.java index 09575957..a51ab05c 100644 --- a/src/main/java/kcc/ve/instr/tngrVisitEdu/eduInfo/service/VEEduMIXService.java +++ b/src/main/java/kcc/ve/instr/tngrVisitEdu/eduInfo/service/VEEduMIXService.java @@ -24,6 +24,8 @@ public interface VEEduMIXService { List selectTngrRsltPagingList(VEEduAplctVO paramVO) throws Exception; + List selectTngrRsltList(VEEduAplctVO paramVO) throws Exception; + List selectTngrFeePagingList(VEEduAplctVO paramVO) throws Exception; List selectTngrRsltPagingList4Excel(VEEduAplctVO paramVO) throws Exception; diff --git a/src/main/java/kcc/ve/instr/tngrVisitEdu/eduInfo/service/impl/VEEduMIXDAO.java b/src/main/java/kcc/ve/instr/tngrVisitEdu/eduInfo/service/impl/VEEduMIXDAO.java index 46fb49a6..dc95f5d5 100644 --- a/src/main/java/kcc/ve/instr/tngrVisitEdu/eduInfo/service/impl/VEEduMIXDAO.java +++ b/src/main/java/kcc/ve/instr/tngrVisitEdu/eduInfo/service/impl/VEEduMIXDAO.java @@ -62,6 +62,12 @@ public class VEEduMIXDAO extends EgovAbstractDAO { return tlist; } + public List selectTngrRsltList(VEEduAplctVO paramVO) { + @SuppressWarnings("unchecked") + List tlist = (List) list("VEEduMIXDAO.selectTngrRsltList", paramVO); + return tlist; + } + public List selectTngrFeePagingList(VEEduAplctVO paramVO) { @SuppressWarnings("unchecked") List tlist = (List) list("VEEduMIXDAO.selectTngrFeePagingList", paramVO); diff --git a/src/main/java/kcc/ve/instr/tngrVisitEdu/eduInfo/service/impl/VEEduMIXServiceImpl.java b/src/main/java/kcc/ve/instr/tngrVisitEdu/eduInfo/service/impl/VEEduMIXServiceImpl.java index 488331ae..093b56f8 100644 --- a/src/main/java/kcc/ve/instr/tngrVisitEdu/eduInfo/service/impl/VEEduMIXServiceImpl.java +++ b/src/main/java/kcc/ve/instr/tngrVisitEdu/eduInfo/service/impl/VEEduMIXServiceImpl.java @@ -55,6 +55,11 @@ public class VEEduMIXServiceImpl implements VEEduMIXService { return vEEduMIXDAO.selectTngrRsltPagingList(paramVO); } + @Override + public List selectTngrRsltList(VEEduAplctVO paramVO) throws Exception{ + return vEEduMIXDAO.selectTngrRsltList(paramVO); + } + @Override public List selectTngrFeePagingList(VEEduAplctVO paramVO) throws Exception{ return vEEduMIXDAO.selectTngrFeePagingList(paramVO); diff --git a/src/main/java/kcc/ve/instr/tngrVisitEdu/instrInfo/service/VEInstrDetailVO.java b/src/main/java/kcc/ve/instr/tngrVisitEdu/instrInfo/service/VEInstrDetailVO.java index 6d9fc633..e85c93d3 100644 --- a/src/main/java/kcc/ve/instr/tngrVisitEdu/instrInfo/service/VEInstrDetailVO.java +++ b/src/main/java/kcc/ve/instr/tngrVisitEdu/instrInfo/service/VEInstrDetailVO.java @@ -162,6 +162,13 @@ public class VEInstrDetailVO extends ComDefaultVO implements Serializable { private String sigMemo; // 특이사항 메모 + private String day5cnt; + private String day4cnt; + private String day3cnt; + private String day2cnt; + private String day1cnt; + private String day0cnt; + public String getLrnTmSum() { return lrnTmSum; } @@ -810,5 +817,41 @@ public class VEInstrDetailVO extends ComDefaultVO implements Serializable { public void setRprtScore(String rprtScore) { this.rprtScore = rprtScore; } + public String getDay5cnt() { + return day5cnt; + } + public void setDay5cnt(String day5cnt) { + this.day5cnt = day5cnt; + } + public String getDay4cnt() { + return day4cnt; + } + public void setDay4cnt(String day4cnt) { + this.day4cnt = day4cnt; + } + public String getDay3cnt() { + return day3cnt; + } + public void setDay3cnt(String day3cnt) { + this.day3cnt = day3cnt; + } + public String getDay2cnt() { + return day2cnt; + } + public void setDay2cnt(String day2cnt) { + this.day2cnt = day2cnt; + } + public String getDay1cnt() { + return day1cnt; + } + public void setDay1cnt(String day1cnt) { + this.day1cnt = day1cnt; + } + public String getDay0cnt() { + return day0cnt; + } + public void setDay0cnt(String day0cnt) { + this.day0cnt = day0cnt; + } } diff --git a/src/main/java/kcc/ve/instr/tngrVisitEdu/instrInfo/service/VEInstrMixService.java b/src/main/java/kcc/ve/instr/tngrVisitEdu/instrInfo/service/VEInstrMixService.java index ba2f2967..5d4fe448 100644 --- a/src/main/java/kcc/ve/instr/tngrVisitEdu/instrInfo/service/VEInstrMixService.java +++ b/src/main/java/kcc/ve/instr/tngrVisitEdu/instrInfo/service/VEInstrMixService.java @@ -37,6 +37,12 @@ public interface VEInstrMixService { //L page (강사디테일 믹스) List selectPagingDetailList(VEInstrDetailVO vEInstrDetailVO) throws Exception; + + //L page (강사디테일 믹스) + List selectPagingDetailList4Asgnm(VEInstrDetailVO vEInstrDetailVO) throws Exception; + + //L (특정강사배정용리스트) + List selectDetailList(VEInstrDetailVO vEInstrDetailVO) throws Exception; //R (강사 디테일 수정요청) VEInstrDetailVO selectMdfyRqstDetail(VEInstrDetailVO vEInstrDetailVO) throws Exception; diff --git a/src/main/java/kcc/ve/instr/tngrVisitEdu/instrInfo/service/impl/VEInstrMixDAO.java b/src/main/java/kcc/ve/instr/tngrVisitEdu/instrInfo/service/impl/VEInstrMixDAO.java index 32d8c2b6..7732b567 100644 --- a/src/main/java/kcc/ve/instr/tngrVisitEdu/instrInfo/service/impl/VEInstrMixDAO.java +++ b/src/main/java/kcc/ve/instr/tngrVisitEdu/instrInfo/service/impl/VEInstrMixDAO.java @@ -85,6 +85,16 @@ public class VEInstrMixDAO extends EgovAbstractDAO { return tlist; } + public List selectPagingDetailList4Asgnm(VEInstrDetailVO vEInstrDetailVO) throws Exception { + List tlist = (List) list("VEInstrMixDAO.selectPagingDetailList4Asgnm", vEInstrDetailVO); + return tlist; + } + + public List selectDetailList(VEInstrDetailVO vEInstrDetailVO) throws Exception { + List tlist = (List) list("VEInstrMixDAO.selectDetailList", vEInstrDetailVO); + return tlist; + } + /** * 상세보기 - R * @param VEInstrDetailVO diff --git a/src/main/java/kcc/ve/instr/tngrVisitEdu/instrInfo/service/impl/VEInstrMixServiceImpl.java b/src/main/java/kcc/ve/instr/tngrVisitEdu/instrInfo/service/impl/VEInstrMixServiceImpl.java index 237b76dd..07dd810f 100644 --- a/src/main/java/kcc/ve/instr/tngrVisitEdu/instrInfo/service/impl/VEInstrMixServiceImpl.java +++ b/src/main/java/kcc/ve/instr/tngrVisitEdu/instrInfo/service/impl/VEInstrMixServiceImpl.java @@ -66,7 +66,17 @@ public class VEInstrMixServiceImpl implements VEInstrMixService { public List selectPagingDetailList(VEInstrDetailVO vEInstrDetailVO) throws Exception{ return vEInstrMixDAO.selectPagingDetailList(vEInstrDetailVO); } + + //paging List + public List selectPagingDetailList4Asgnm(VEInstrDetailVO vEInstrDetailVO) throws Exception{ + return vEInstrMixDAO.selectPagingDetailList4Asgnm(vEInstrDetailVO); + } + //List + public List selectDetailList(VEInstrDetailVO vEInstrDetailVO) throws Exception{ + return vEInstrMixDAO.selectDetailList(vEInstrDetailVO); + } + //R public VEInstrDetailVO selectMdfyRqstDetail(VEInstrDetailVO vEInstrDetailVO) throws Exception { return vEInstrMixDAO.selectMdfyRqstDetail(vEInstrDetailVO); diff --git a/src/main/java/kcc/ve/oprtn/tngrVisitEdu/eduCnfrmMng/web/EduCnfrmMngTngrController.java b/src/main/java/kcc/ve/oprtn/tngrVisitEdu/eduCnfrmMng/web/EduCnfrmMngTngrController.java index 0abbc671..35b2cb51 100644 --- a/src/main/java/kcc/ve/oprtn/tngrVisitEdu/eduCnfrmMng/web/EduCnfrmMngTngrController.java +++ b/src/main/java/kcc/ve/oprtn/tngrVisitEdu/eduCnfrmMng/web/EduCnfrmMngTngrController.java @@ -745,6 +745,72 @@ public class EduCnfrmMngTngrController { } + /** + * 강사배정 등록 처리 + */ + @RequestMapping("popup/instrAsgnmForceAjax.do") + public ModelAndView instrAsgnmAjaxinstrAsgnmForceAjax( + @ModelAttribute("vEInstrAsgnmVO") VEInstrAsgnmVO vEInstrAsgnmVO + , 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(); //권한에 따른 로그인 정보 가져오기 + + // 강사배정 테이블에 강사료 정보 update + try { + if("".equals(vEInstrAsgnmVO.getAsgnmAprvlCd()) || "10".equals(vEInstrAsgnmVO.getAsgnmAprvlCd())) { + //현재 상태값 없이 강사 최초 배치이거나, 상태가 요청대기인 경우는 요청대기 상태로 set + vEInstrAsgnmVO.setAsgnmAprvlCd("10"); + } else if ("50".equals(vEInstrAsgnmVO.getAsgnmAprvlCd()) || "60".equals(vEInstrAsgnmVO.getAsgnmAprvlCd())) { + //추가신청 강사 선정 시, 내역테이블의 해당 강사 선정확정, 나머지 강사 선정 제외 상태로 set + if("50".equals(vEInstrAsgnmVO.getAsgnmAprvlCd())) { + vEEduChasiInstrAsgnmService.updateAsgnmY(vEInstrAsgnmVO); + vEEduChasiInstrAsgnmService.updateAsgnmN(vEInstrAsgnmVO); + } + //현재 상태값이 추가신청이거나, 변경요청 상태인 경우SMS 교육확정 상태로 set + vEInstrAsgnmVO.setAsgnmAprvlCd("30"); + } + + //선택한 강사 데이터 등록 처리 + vEInstrAsgnmVO.setFrstRegisterId(loginVO.getUniqId()); //esntl_id + //// 데이터 있으면 update, 없으면 insert 처리(MERGE) + + String[] a_aplct_chasi = vEInstrAsgnmVO.getEduAplctOrd().split("__"); + + for (int i=0;i vEInstrDetailVOList = vEInstrMixService.selectPagingDetailList(vEInstrDetailVO); + vEInstrDetailVO.setInstrNm(egovCryptoUtil.encrypt(vEInstrDetailVO.getInstrNm())); + + List vEInstrDetailVOList = vEInstrMixService.selectDetailList(vEInstrDetailVO); vEInstrDetailVOList = egovCryptoUtil.decryptVEInstrDetailVOList(vEInstrDetailVOList); - - //4.pageing step3 - paginationInfo = this.setPagingStep3(vEInstrDetailVOList, paginationInfo); - model.addAttribute("paginationInfo", paginationInfo); - + //대상 리스트, 페이징 정보 전달 model.addAttribute("resultList", vEInstrDetailVOList); - //배치 목록 + //교육 목록 //1.pageing step1 - PaginationInfo paginationInfo1 = this.setPagingStep_1(vEEduAplctVO); + //PaginationInfo paginationInfo1 = this.setPagingStep_1(vEEduAplctVO); //2. pageing step2 - vEEduAplctVO = this.setPagingStep_2(vEEduAplctVO, paginationInfo1); + //vEEduAplctVO = this.setPagingStep_2(vEEduAplctVO, paginationInfo1); + vEEduAplctVO.setInstrDiv("10"); //청소년 vEEduAplctVO.setLctrDivCd("10"); //청소년강의 vEEduAplctVO.setAprvlCd("60"); //확정코드 @@ -251,7 +257,7 @@ public class NewEduCnfrmMngTngrController { vEEduAplctVO.setAprvlCd("60"); //확정코드 - List vEEduAplctVOList = vEEduMIXService.selectTngrRsltPagingList(vEEduAplctVO); + List vEEduAplctVOList = vEEduMIXService.selectTngrRsltList(vEEduAplctVO); VEEduAplctVO vo = new VEEduAplctVO(); for(int i=0; i < vEEduAplctVOList.size(); i++) { vo = egovCryptoUtil.decryptVEEduAplctVOInfo(vEEduAplctVOList.get(i)); @@ -260,9 +266,9 @@ public class NewEduCnfrmMngTngrController { } //3.pageing step3 - paginationInfo1 = this.setPagingStep_3(vEEduAplctVOList, paginationInfo1); + //paginationInfo1 = this.setPagingStep_3(vEEduAplctVOList, paginationInfo1); - model.addAttribute("paginationInfo1", paginationInfo1); + //model.addAttribute("paginationInfo1", paginationInfo1); model.addAttribute("cryptoUtil", egovCryptoUtil); //대상 리스트, 페이징 정보 전달 @@ -299,7 +305,7 @@ public class NewEduCnfrmMngTngrController { //vEEduAplctVO = vEEduAplctService.selectDetail(vEEduAplctVO); //System.out.println(vEEduAplctVO.getEduSlctCd()); //10-온라인, 20-오프라인 - //a + //강사배정조건대상 가져오기 VEAStngVO vEAStngVO = new VEAStngVO(); vEAStngVO.setCode("VEA007"); vEAStngVO.setUseYn("Y"); @@ -336,56 +342,36 @@ public class NewEduCnfrmMngTngrController { //로그인 처리==================================== - System.out.println("request.getParameter(10)"); - System.out.println(request.getParameter("10")); - System.out.println(request.getParameter("20")); - System.out.println(request.getParameter("30")); + String s_ret = ""; - //기존에 강사 배정이 안된 차시에 대해서만 자동 배정 조건에 따라서 강사 배정을 한다. - - - //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); + //작성자 정보 + LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기 + vEAStngVO.setFrstRegisterId(loginVO.getUniqId()); + + //강사배정조건 대상 코드 가져오기 + CmmnDetailCodeVO searchVO = new CmmnDetailCodeVO(); + searchVO.setCodeId("VEA007"); + searchVO.setOrderByQuery(" CODE_NM ASC "); + List rList = (List)cmmnDetailCodeManageService.selectCmmnDetailCodeDetailListWithCode(searchVO); + + //강사배정조건 대상 코드 저장하기 + for (int i=0;i asgnmStngVOList = vEAStngMixService.selectList_VEAIMT_1(vEAStngVO); + + //대상 리스트, 페이징 정보 전달 + model.addAttribute("asgnmStngVOList", asgnmStngVOList); + + + return "oprtn/tngrVisitEdu/popup/instrMntTmMngPopup"; + } + + /** + * 강사 월별 시수계산 + * fncSpcfcInstrAsgnmInfo + */ + + @RequestMapping("popup/instrMntTmMngPopupAjax.do") + public ModelAndView instrMntTmMngPopupAjax(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; + } - //String s_userCheckNInfo = checkLoginUtil.userCheckNInfo(model, request); - //if (!"".equals(s_userCheckNInfo)) return s_userCheckNInfo; + //로그인 처리==================================== - //로그인 처리==================================== - //0.pageing step0 - //온라인 오프라인 여부 확인 - //배치대상신청정보 - //vEEduAplctVO = vEEduAplctService.selectDetail(vEEduAplctVO); - //System.out.println(vEEduAplctVO.getEduSlctCd()); //10-온라인, 20-오프라인 + //step1.현재 일별 강사수 확인#1 + //step2.총합 계산 + //step3.1일당 비율 계산 + //step4.일별 차시 확인#3 + //step5.일별 총합 차시 계산#2 - //1.pageing step1 - PaginationInfo paginationInfo = this.setPagingStep1(vEInstrDetailVO); - - - //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()+"', '.', '')"; - }*/ - + String s_yrMnt = request.getParameter("yrMnt"); + String s_stngYr = request.getParameter("stngYr"); + + //#1 + VEInstrDetailVO vEInstrDetailVO4 = null; //일별강사수 정보 - #1 + int i_rate_ttl = 0; //비율 총합 + int i_chasiCnfrmCnt = 0; //교육확정차시 + int i_rate_day = 0; //일당 차시수 + + //#2일별 총 차시 + int i_tm5Ttl = 0; + int i_tm4Ttl = 0; + int i_tm3Ttl = 0; + int i_tm2Ttl = 0; + int i_tm1Ttl = 0; + int i_tm0Ttl = 0; + + //#3일별 강사 시간 + int i_tm5 = 0; + int i_tm4 = 0; + int i_tm3 = 0; + int i_tm2 = 0; + int i_tm1 = 0; + int i_tm0 = 0; + + //step1.현재 일별 강사수 확인#1 //정보변경 요청사항 있는 강사부터 조회 + VEInstrDetailVO vEInstrDetailVO = new VEInstrDetailVO(); + + //3. SelectPagingListQuery set 할 조건 설정 + String selectCondition = new String(); + //3.1 제출 완료 후 사용중인 데이터 조회 + selectCondition += "AND a0.sbmt_yn='Y' AND a0.use_yn = 'Y'"; + vEInstrDetailVO.setOrderByQuery(" rqstCnt DESC "); vEInstrDetailVO.setInstrDiv("10"); vEInstrDetailVO.setSelectPagingListQuery(selectCondition); + vEInstrDetailVO.setSearchQlfctEndYn("N"); - List vEInstrDetailVOList = vEInstrMixService.selectPagingDetailList(vEInstrDetailVO); - - vEInstrDetailVOList = egovCryptoUtil.decryptVEInstrDetailVOList(vEInstrDetailVOList); - - //4.pageing step3 - paginationInfo = this.setPagingStep3(vEInstrDetailVOList, paginationInfo); - model.addAttribute("paginationInfo", paginationInfo); - - //대상 리스트, 페이징 정보 전달 - model.addAttribute("resultList", vEInstrDetailVOList); - + List vEInstrDetailVOList = vEInstrMixService.selectPagingDetailList4Asgnm(vEInstrDetailVO); - //배치 목록 - //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())); - } + //step2.총합 계산 + if (vEInstrDetailVOList.size()>0) { + vEInstrDetailVO4 = vEInstrDetailVOList.get(0); + + + i_rate_ttl = 5*Integer.parseInt(vEInstrDetailVO4.getDay5cnt()) + + 4*Integer.parseInt(vEInstrDetailVO4.getDay4cnt()) + + 3*Integer.parseInt(vEInstrDetailVO4.getDay3cnt()) + + 2*Integer.parseInt(vEInstrDetailVO4.getDay2cnt()) + + 1*Integer.parseInt(vEInstrDetailVO4.getDay1cnt()); + + } + + + //step3.1일당 비율 계산 + //강사 월별 시수 계산 가져오기 + VEAStngVO vEAStngVO = new VEAStngVO(); + + vEAStngVO.setYr(s_stngYr); //기준년도 + vEAStngVO.setMnt(s_yrMnt); //기준년월 + try { + i_chasiCnfrmCnt = vEAStngMixService.selectList_VEAIMT_2(vEAStngVO); - vEEduAplctVO.setAprvlCd("60"); //확정코드 + }catch(Exception ex) { + ex.printStackTrace(); + } - List 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()); + + + //일당 차시수 + i_rate_day = (int) Math.ceil((double)i_chasiCnfrmCnt / i_rate_ttl); + + System.out.println("i_chasiCnfrmCnt"); + System.out.println(i_chasiCnfrmCnt); + System.out.println(i_rate_ttl); + System.out.println(i_rate_day); + + //#3 + i_tm5 = i_rate_day*5; + i_tm4 = i_rate_day*4; + i_tm3 = i_rate_day*3; + i_tm2 = i_rate_day*2; + i_tm1 = i_rate_day*1; + i_tm0 = i_rate_day*0; + + + //#2 + i_tm5Ttl = i_tm5 * Integer.parseInt(vEInstrDetailVO4.getDay5cnt()); + i_tm4Ttl = i_tm4 * Integer.parseInt(vEInstrDetailVO4.getDay4cnt()); + i_tm3Ttl = i_tm3 * Integer.parseInt(vEInstrDetailVO4.getDay3cnt()); + i_tm2Ttl = i_tm2 * Integer.parseInt(vEInstrDetailVO4.getDay2cnt()); + i_tm1Ttl = i_tm1 * Integer.parseInt(vEInstrDetailVO4.getDay1cnt()); + i_tm0Ttl = i_tm0 * Integer.parseInt(vEInstrDetailVO4.getDay0cnt()); + + vEAStngVO.setMnt(s_yrMnt.split("[.]")[1]); + vEAStngVO.setAplctChasi(Integer.toString(i_chasiCnfrmCnt)); + + vEAStngVO.setInstrEa5(vEInstrDetailVO4.getDay5cnt()); + vEAStngVO.setInstrTm5(Integer.toString(i_tm5)); + vEAStngVO.setAsgnmChasi5(Integer.toString(i_tm5Ttl)); + + vEAStngVO.setInstrEa4(vEInstrDetailVO4.getDay4cnt()); + vEAStngVO.setInstrTm4(Integer.toString(i_tm4)); + vEAStngVO.setAsgnmChasi4(Integer.toString(i_tm4Ttl)); + + vEAStngVO.setInstrEa3(vEInstrDetailVO4.getDay3cnt()); + vEAStngVO.setInstrTm3(Integer.toString(i_tm3)); + vEAStngVO.setAsgnmChasi3(Integer.toString(i_tm3Ttl)); + + vEAStngVO.setInstrEa2(vEInstrDetailVO4.getDay2cnt()); + vEAStngVO.setInstrTm2(Integer.toString(i_tm2)); + vEAStngVO.setAsgnmChasi2(Integer.toString(i_tm2Ttl)); + + vEAStngVO.setInstrEa1(vEInstrDetailVO4.getDay1cnt()); + vEAStngVO.setInstrTm1(Integer.toString(i_tm1)); + vEAStngVO.setAsgnmChasi1(Integer.toString(i_tm1Ttl)); + + vEAStngVO.setInstrEa0(vEInstrDetailVO4.getDay0cnt()); + vEAStngVO.setInstrTm0(Integer.toString(i_tm0)); + vEAStngVO.setAsgnmChasi0(Integer.toString(i_tm0Ttl)); + + + int i_ret = vEAStngService.update_VEAIMT(vEAStngVO); + + + modelAndView.addObject("result", "success"); + + return modelAndView; + } + + /** + * 강사 월별 시수계산-초기화 + * fncSpcfcInstrAsgnmInfo + */ + + @RequestMapping("popup/instrMntTmInitMngPopupAjax.do") + public ModelAndView instrMntTmInitMngPopupAjax(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; } - //3.pageing step3 - paginationInfo1 = this.setPagingStep_3(vEEduAplctVOList, paginationInfo1); + //로그인 처리==================================== - model.addAttribute("paginationInfo1", paginationInfo1); - model.addAttribute("cryptoUtil", egovCryptoUtil); + //step1.현재 일별 강사수 확인#1 + //step2.총합 계산 + //step3.1일당 비율 계산 + //step4.일별 차시 확인#3 + //step5.일별 총합 차시 계산#2 - //대상 리스트, 페이징 정보 전달 - model.addAttribute("list", vEEduAplctVOList); - - - - return "oprtn/tngrVisitEdu/popup/instrMntTmMngPopup"; + String s_yrMnt = request.getParameter("yrMnt"); + + //step3.1일당 비율 계산 + //강사 월별 시수 계산 가져오기 + VEAStngVO vEAStngVO = new VEAStngVO(); + + vEAStngVO.setYr(s_yrMnt.substring(0,4)); //기준년 + vEAStngVO.setMnt(s_yrMnt.substring(5,7)); //기준월 + + int i_ret = vEAStngService.delete_VEAIMT(vEAStngVO); + + + modelAndView.addObject("result", "success"); + + return modelAndView; } /** @@ -534,98 +649,83 @@ public class NewEduCnfrmMngTngrController { //vEEduAplctVO = vEEduAplctService.selectDetail(vEEduAplctVO); //System.out.println(vEEduAplctVO.getEduSlctCd()); //10-온라인, 20-오프라인 - //1.pageing step1 - PaginationInfo paginationInfo = this.setPagingStep1(vEInstrDetailVO); - - - //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 vEInstrDetailVOList = vEInstrMixService.selectPagingDetailList(vEInstrDetailVO); - - vEInstrDetailVOList = egovCryptoUtil.decryptVEInstrDetailVOList(vEInstrDetailVOList); - - //4.pageing step3 - paginationInfo = this.setPagingStep3(vEInstrDetailVOList, paginationInfo); - model.addAttribute("paginationInfo", paginationInfo); - + //강사배정조건대상 가져오기 + VEAStngVO vEAStngVO = new VEAStngVO(); + vEAStngVO.setCode("VE0008"); + vEAStngVO.setUseYn("Y"); + + List asgnmStngVOList = vEAStngMixService.selectList_VEAIRR_1(vEAStngVO); + //대상 리스트, 페이징 정보 전달 - model.addAttribute("resultList", vEInstrDetailVOList); - - - - //배치 목록 - //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 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); - - + model.addAttribute("asgnmStngVOList", asgnmStngVOList); return "oprtn/tngrVisitEdu/popup/instrRsdncMngPopup"; //instrRsdncMng } + /** + * 강사 배정 조건 관리 팝업 + * fncSpcfcInstrAsgnmInfo + */ + + @RequestMapping("popup/instrRsdncMngPopupAjax.do") + public ModelAndView instrRsdncMngPopupAjax(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; + } + + //로그인 처리==================================== + + String s_ret = ""; + + VEAStngVO vEAStngVO = new VEAStngVO(); + + //작성자 정보 + LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기 + vEAStngVO.setFrstRegisterId(loginVO.getUniqId()); + + //강사배정조건 대상 코드 가져오기 + CmmnDetailCodeVO searchVO = new CmmnDetailCodeVO(); + searchVO.setCodeId("VE0008"); + searchVO.setOrderByQuery(" CODE_NM ASC "); + List rList = (List)cmmnDetailCodeManageService.selectCmmnDetailCodeDetailListWithCode(searchVO); + + //강사배정조건 대상 코드 저장하기 + for (int i=0;i - ORDER BY 1=1 + ORDER BY 1 , $orderByQuery$ diff --git a/src/main/resources/egovframework/sqlmap/ve/edu/VEEdu_MIX_SQL_Tibero.xml b/src/main/resources/egovframework/sqlmap/ve/edu/VEEdu_MIX_SQL_Tibero.xml index a44d8e18..affbb049 100644 --- a/src/main/resources/egovframework/sqlmap/ve/edu/VEEdu_MIX_SQL_Tibero.xml +++ b/src/main/resources/egovframework/sqlmap/ve/edu/VEEdu_MIX_SQL_Tibero.xml @@ -1673,6 +1673,287 @@ + + + + + + + + + /* VEAAsgnmStngMixDAO.selectList_VEAIAC_1 */ @@ -19,5 +19,122 @@ AND use_at=#useYn# ORDER BY a.code ASC - + + + + + + + + + + diff --git a/src/main/resources/egovframework/sqlmap/ve/tngr/VEAInstrMntTm_SQL_Tibero.xml b/src/main/resources/egovframework/sqlmap/ve/tngr/VEAInstrMntTm_SQL_Tibero.xml index f6439e31..66064ddd 100644 --- a/src/main/resources/egovframework/sqlmap/ve/tngr/VEAInstrMntTm_SQL_Tibero.xml +++ b/src/main/resources/egovframework/sqlmap/ve/tngr/VEAInstrMntTm_SQL_Tibero.xml @@ -36,7 +36,11 @@ instr_ea_1, instr_tm_1, asgnm_chasi_1, - + + instr_ea_0, + instr_tm_0, + asgnm_chasi_0, + frst_regist_pnttm, frst_register_id, last_updt_pnttm, @@ -71,7 +75,11 @@ instr_ea_1 AS instrEa1, instr_tm_1 AS instrTm1, asgnm_chasi_1 AS asgnmChasi1, - + + instr_ea_0 AS instrEa0, + instr_tm_0 AS instrTm0, + asgnm_chasi_0 AS asgnmChasi0, + 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, @@ -115,7 +123,11 @@ #instrEa1#, #instrTm1#, - #asgnmChasi1#, + #asgnmChasi1#, + + #instrEa0#, + #instrTm0#, + #asgnmChasi0#, SYSDATE, #frstRegisterId#, @@ -178,7 +190,17 @@ AND asgnm_chasi_1=#asgnmChasi1# - + + + + AND instr_ea_0=#instrEa0# + + + AND instr_tm_0=#instrTm0# + + + AND asgnm_chasi_0=#asgnmChasi0# + @@ -233,7 +255,11 @@ #instrEa1#, #instrTm1#, #asgnmChasi1#, - + + #instrEa0#, + #instrTm0#, + #asgnmChasi0#, + SYSDATE, #frstRegisterId#, NULL, @@ -245,57 +271,67 @@ , last_updt_pnttm = SYSDATE - AND aplct_chasi=#aplctChasi# + , aplct_chasi=#aplctChasi# - AND instr_ea_5=#instrEa5# + , instr_ea_5=#instrEa5# - AND instr_tm_5=#instrTm5# + , instr_tm_5=#instrTm5# - AND asgnm_chasi_5=#asgnmChasi5# + , asgnm_chasi_5=#asgnmChasi5# - AND instr_ea_4=#instrEa4# + , instr_ea_4=#instrEa4# - AND instr_tm_4=#instrTm4# + , instr_tm_4=#instrTm4# - AND asgnm_chasi_4=#asgnmChasi4# + , asgnm_chasi_4=#asgnmChasi4# - AND instr_ea_3=#instrEa3# + , instr_ea_3=#instrEa3# - AND instr_tm_3=#instrTm3# + , instr_tm_3=#instrTm3# - AND asgnm_chasi_3=#asgnmChasi3# + , asgnm_chasi_3=#asgnmChasi3# - AND instr_ea_2=#instrEa2# + , instr_ea_2=#instrEa2# - AND instr_tm_2=#instrTm2# + , instr_tm_2=#instrTm2# - AND asgnm_chasi_2=#asgnmChasi2# + , asgnm_chasi_2=#asgnmChasi2# - AND instr_ea_1=#instrEa1# + , instr_ea_1=#instrEa1# - AND instr_tm_1=#instrTm1# + , instr_tm_1=#instrTm1# - AND asgnm_chasi_1=#asgnmChasi1# - + , asgnm_chasi_1=#asgnmChasi1# + + + + , instr_ea_0=#instrEa0# + + + , instr_tm_0=#instrTm0# + + + , asgnm_chasi_0=#asgnmChasi0# + diff --git a/src/main/resources/egovframework/sqlmap/ve/tngr/VEAInstrRsdncRatio_SQL_Tibero.xml b/src/main/resources/egovframework/sqlmap/ve/tngr/VEAInstrRsdncRatio_SQL_Tibero.xml index dc6440f1..cc6a93fc 100644 --- a/src/main/resources/egovframework/sqlmap/ve/tngr/VEAInstrRsdncRatio_SQL_Tibero.xml +++ b/src/main/resources/egovframework/sqlmap/ve/tngr/VEAInstrRsdncRatio_SQL_Tibero.xml @@ -77,19 +77,19 @@ , last_updt_pnttm = SYSDATE - AND ratio_5=#ratio5# + , ratio_5=#ratio5# - AND ratio_4=#ratio4# + , ratio_4=#ratio4# - AND ratio_3=#ratio3# + , ratio_3=#ratio3# - AND ratio_2=#ratio2# + , ratio_2=#ratio2# - AND ratio_1=#ratio1# + , ratio_1=#ratio1# @@ -139,21 +139,21 @@ , last_updt_pnttm = SYSDATE - AND ratio_5=#ratio5# + , ratio_5=#ratio5# - AND ratio_4=#ratio4# + , ratio_4=#ratio4# - AND ratio_3=#ratio3# + , ratio_3=#ratio3# - AND ratio_2=#ratio2# + , ratio_2=#ratio2# - AND ratio_1=#ratio1# + , ratio_1=#ratio1# - + diff --git a/src/main/webapp/WEB-INF/jsp/oprtn/tngrVisitEdu/eduCnfrmMngList.jsp b/src/main/webapp/WEB-INF/jsp/oprtn/tngrVisitEdu/eduCnfrmMngList.jsp index e8864034..1bad941d 100644 --- a/src/main/webapp/WEB-INF/jsp/oprtn/tngrVisitEdu/eduCnfrmMngList.jsp +++ b/src/main/webapp/WEB-INF/jsp/oprtn/tngrVisitEdu/eduCnfrmMngList.jsp @@ -683,8 +683,31 @@ return; } + var fnExit = false; + + chkStatCd = "30"; + msg = "특정강사배정(교육확정 건)"; + + var varEduAplctOrd = ''; + + $('input:checkbox[name="chk"]:checked').each(function() { + if(!fnExit){ + varEduAplctOrd = varEduAplctOrd + $(this).val() + "__"; + if($(this).attr("class") == chkStatCd) { + alert("선택한 목록 중 " + msg + "이 불가능한 건이 있습니다."); + fnExit = true; + } + } + }); + + + //체크한 리스트 중 해당 상태에 실행 불가능한 건이 있는지 체크 후, 존재 시 함수 종료 + if(fnExit) return false; + - var form = document.listForm; + var form = document.popForm; + + form.eduAplctOrd.value = varEduAplctOrd; form.action = ""; @@ -811,11 +834,8 @@
- - - - - + +
@@ -830,10 +850,10 @@
- - + + - +
diff --git a/src/main/webapp/WEB-INF/jsp/oprtn/tngrVisitEdu/popup/instrAsgnmCndtnMngPopup.jsp b/src/main/webapp/WEB-INF/jsp/oprtn/tngrVisitEdu/popup/instrAsgnmCndtnMngPopup.jsp index f166440c..8855447a 100644 --- a/src/main/webapp/WEB-INF/jsp/oprtn/tngrVisitEdu/popup/instrAsgnmCndtnMngPopup.jsp +++ b/src/main/webapp/WEB-INF/jsp/oprtn/tngrVisitEdu/popup/instrAsgnmCndtnMngPopup.jsp @@ -178,7 +178,7 @@ - + @@ -194,10 +194,6 @@ - - - - diff --git a/src/main/webapp/WEB-INF/jsp/oprtn/tngrVisitEdu/popup/instrMntTmMngPopup.jsp b/src/main/webapp/WEB-INF/jsp/oprtn/tngrVisitEdu/popup/instrMntTmMngPopup.jsp index d09c7139..4b46d45c 100644 --- a/src/main/webapp/WEB-INF/jsp/oprtn/tngrVisitEdu/popup/instrMntTmMngPopup.jsp +++ b/src/main/webapp/WEB-INF/jsp/oprtn/tngrVisitEdu/popup/instrMntTmMngPopup.jsp @@ -74,21 +74,15 @@ */ } - function fncInstrAsgnm(id, p_rank) { - $("#userId").val(id); - - if (p_rank=='-'){ - $("#rmrks").val(p_rank); - }else{ - $("#rmrks").val("배정기준"+p_rank+"순위"); - } - + function fncInstrAsgnmCndtnMng(p_yrMnt) { + + $("#yrMnt").val(p_yrMnt); var data1 = new FormData(document.getElementById("createForm")); $.ajax({ type:"POST", - url:"${pageContext.request.contextPath}/kccadr/oprtn/tngrVisitEdu/popup/instrAsgnmAjax.do", + url:"${pageContext.request.contextPath}/kccadr/oprtn/tngrVisitEdu/popup/instrMntTmMngPopupAjax.do", data: data1, dataType:'json', async: false, @@ -98,8 +92,9 @@ success:function(returnData){ if(returnData.result == 'success'){ alert("저장 되었습니다."); - opener.location.reload(); - fncPopClose(); + //opener.location.reload(); + //fncPopClose(); + location.reload(); } }, error:function(request , status, error){ @@ -109,6 +104,37 @@ } + + function fncInstrAsgnmCndtnInitMng(p_yrMnt) { + + $("#yrMnt").val(p_yrMnt); + + + var data1 = new FormData(document.getElementById("createForm")); + $.ajax({ + type:"POST", + url:"${pageContext.request.contextPath}/kccadr/oprtn/tngrVisitEdu/popup/instrMntTmInitMngPopupAjax.do", + data: data1, + dataType:'json', + async: false, + processData: false, + contentType: false, + cache: false, + success:function(returnData){ + if(returnData.result == 'success'){ + alert("저장 되었습니다."); + //opener.location.reload(); + //fncPopClose(); + location.reload(); + } + }, + error:function(request , status, error){ + alert("code:"+request.status+"\n"+"message:"+request.responseText+"\n"+"error:"+error); + } + }); + + + } //동일 학교 여부 체크 function fncInstrAsgnm_bef(id, p_rank) { @@ -148,7 +174,23 @@ function reloadPage(){ location.reload(); } + + function fncGoListReset(){ + $("#rndsOrd").val(''); + linkPage(1); + } + function fncGoList(){ + linkPage(1); + } + + function linkPage(pageNo){ + var listForm = document.createForm ; + //listForm.searchCondition.value = $('#searchCondition').val(); + //listForm.searchKeyword.value = $('#searchKeyword').val(); + listForm.action = ""; + listForm.submit(); + } @@ -163,229 +205,249 @@ - - - - " /> - " /> - " /> - " /> - " /> - +
-
- +
+

강사 월별 시수 계산

+ +
+
+
+

구분1

+
+
+ +

   년도  

+ + + + + +
+
+
+ + +
- - - - - - - - - - - - - +<%-- --%> + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - + + + + + + + + + + + - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
교육일정(월)교육확정차시5일4일3일2일1일0일
교육일정(월)1월2월3월4월5월6월7월8월9월10월11월12월
강사차시시간강사차시시간강사차시시간강사차시시간강사차시시간강사차시시간
교육접수차시100차시100차시100차시100차시100차시100차시100차시100차시100차시100차시100차시100차시1200차시
구분강사|차시|시간(인)강사|차시|시간(인)강사|차시|시간(인)강사|차시|시간(인)강사|차시|시간(인)강사|차시|시간(인)강사|차시|시간(인)강사|차시|시간(인)강사|차시|시간(인)강사|차시|시간(인)강사|차시|시간(인)강사|차시|시간(인)강사|차시|시간(인)
5일40|800|20||||||||||||||||||||||40|800|20
4일30|480|16||||||||||||||||||||||30|480|16
3일20|240|12||||||||||||||||||||||20|240|12
2일10|80|8||||||||||||||||||||||10|80|8
1일5|20|4||||||||||||||||||||||5|20|4
0일5|0|0||||||||||||||||||||||5|0|0
110|1620|||||||||||||||||||||||110|1620| + + + + + + 총계 + + + + + + +

+
+

차시

+

-
+
+
diff --git a/src/main/webapp/WEB-INF/jsp/oprtn/tngrVisitEdu/popup/instrRsdncMngPopup.jsp b/src/main/webapp/WEB-INF/jsp/oprtn/tngrVisitEdu/popup/instrRsdncMngPopup.jsp index 50924218..d898a002 100644 --- a/src/main/webapp/WEB-INF/jsp/oprtn/tngrVisitEdu/popup/instrRsdncMngPopup.jsp +++ b/src/main/webapp/WEB-INF/jsp/oprtn/tngrVisitEdu/popup/instrRsdncMngPopup.jsp @@ -75,20 +75,11 @@ } function fncInstrAsgnm(id, p_rank) { - $("#userId").val(id); - - if (p_rank=='-'){ - $("#rmrks").val(p_rank); - }else{ - $("#rmrks").val("배정기준"+p_rank+"순위"); - } - - var data1 = new FormData(document.getElementById("createForm")); $.ajax({ type:"POST", - url:"${pageContext.request.contextPath}/kccadr/oprtn/tngrVisitEdu/popup/instrAsgnmAjax.do", + url:"${pageContext.request.contextPath}/kccadr/oprtn/tngrVisitEdu/popup/instrRsdncMngPopupAjax.do", data: data1, dataType:'json', async: false, @@ -98,16 +89,13 @@ success:function(returnData){ if(returnData.result == 'success'){ alert("저장 되었습니다."); - opener.location.reload(); - fncPopClose(); + location.reload(); } }, error:function(request , status, error){ alert("code:"+request.status+"\n"+"message:"+request.responseText+"\n"+"error:"+error); } }); - - } //동일 학교 여부 체크 @@ -148,7 +136,25 @@ function reloadPage(){ location.reload(); } - + + //체크박스 전체 선택 + function chkAll(thisObj){ + $("input[name=chk]").prop("checked" , $(thisObj).is(":checked")); + } + + function fncInstrMassAsgnm(){ + var varEduAplctOrd = ''; + $('input:checkbox[name="chk"]:checked').each(function() { + //alert($(this).val()); + + $("#ratio5_"+$(this).val()).val($("#ratio5_default").val()); + $("#ratio4_"+$(this).val()).val($("#ratio4_default").val()); + $("#ratio3_"+$(this).val()).val($("#ratio3_default").val()); + $("#ratio2_"+$(this).val()).val($("#ratio2_default").val()); + $("#ratio1_"+$(this).val()).val($("#ratio1_default").val()); + + }); + } @@ -163,74 +169,110 @@ -
- - - " /> - " /> - " /> - " /> - " /> - -
-

강사 배정 조건 관리

+

강사 거주지별 배정 비율 관리

+ +
+
+
+

구분1

+
+
+ + + 5일 + + + 4일 + + + 3일 + + + 2일 + + + 1일 + + + + + + +
+
+
+
+ + - - - - - - - - - - - - - - - - - - - + + + + + + + + + + - + - - - - - - - - - - + + + + + + + - - - - - - - - - - - - - - + + + + - +<%-- --%> + + - +<%-- --%> + + - +<%-- --%> + + - +<%-- --%> + + - - - + /> + +<%-- --%> + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + +
거주지별비율 + + 거주지별비율 + 강원도경기도경상남도경상북도광주광역시대구광역시대전광역시부산광역시서울특별시온라인5일4일3일2일1일
5일 - 10 +
+ +

+
+ +

+
비율 + + + + + + + + +
4일 - 8
3일 - 6
2일 - 4
1일 - 2
-
- +
+
- +
diff --git a/src/main/webapp/WEB-INF/jsp/oprtn/tngrVisitEdu/popup/spcfcInstrAsgnmPopup.jsp b/src/main/webapp/WEB-INF/jsp/oprtn/tngrVisitEdu/popup/spcfcInstrAsgnmPopup.jsp index 948853d4..64ba42ea 100644 --- a/src/main/webapp/WEB-INF/jsp/oprtn/tngrVisitEdu/popup/spcfcInstrAsgnmPopup.jsp +++ b/src/main/webapp/WEB-INF/jsp/oprtn/tngrVisitEdu/popup/spcfcInstrAsgnmPopup.jsp @@ -73,22 +73,55 @@ listForm.submit(); */ } - - function fncInstrAsgnm(id, p_rank) { - $("#userId").val(id); - - if (p_rank=='-'){ - $("#rmrks").val(p_rank); - }else{ - $("#rmrks").val("배정기준"+p_rank+"순위"); - } - - + //특정강사배정 + function fncInstrAsgnm(id) { + $("#userId").val(id); + $("#rmrks").val("특정강사배정"); + + + var chkLen = $(listForm).find("input[name=chk]:checked").length; + + if(chkLen == 0){ + alert("선택된 항목이 없습니다."); + return; + } + + //var fnExit = false; + //chkStatCd = "30"; + //msg = "특정강사배정(교육확정 건)"; + + var varEduAplctOrd = ''; + + $('input:checkbox[name="chk"]:checked').each(function() { + + varEduAplctOrd = varEduAplctOrd + $(this).val() + "__"; + + /* + if(!fnExit){ + varEduAplctOrd = varEduAplctOrd + $(this).val() + "__"; + if($(this).attr("class") == chkStatCd) { + alert("선택한 목록 중 " + msg + "이 불가능한 건이 있습니다."); + fnExit = true; + } + } + */ + }); + + + //체크한 리스트 중 해당 상태에 실행 불가능한 건이 있는지 체크 후, 존재 시 함수 종료 + //if(fnExit) return false; + + var tForm = document.createForm ; + tForm.eduAplctOrd.value = varEduAplctOrd ; + tForm.asgnmAprvlCd.value = "10" ; + var data1 = new FormData(document.getElementById("createForm")); + + $.ajax({ type:"POST", - url:"${pageContext.request.contextPath}/kccadr/oprtn/tngrVisitEdu/popup/instrAsgnmAjax.do", + url:"${pageContext.request.contextPath}/kccadr/oprtn/tngrVisitEdu/popup/instrAsgnmForceAjax.do", data: data1, dataType:'json', async: false, @@ -111,6 +144,7 @@ } //동일 학교 여부 체크 + /* function fncInstrAsgnm_bef(id, p_rank) { $("#userId").val(id); $("#rmrks").val("배정기준"+p_rank+"순위"); @@ -144,10 +178,16 @@ } + */ function reloadPage(){ location.reload(); } + + //체크박스 전체 선택 + function chkAll(thisObj){ + $("input[name=chk]").prop("checked" , $(thisObj).is(":checked")); + } @@ -190,13 +230,15 @@
+

강사 목록

@@ -268,19 +310,8 @@ <%-- --%> - - - - - - - - - - - - - +<%-- --%> + @@ -291,16 +322,7 @@
- - - - -
@@ -421,7 +443,7 @@
- +