diff --git a/src/main/java/kcc/com/cmm/util/DateUtil.java b/src/main/java/kcc/com/cmm/util/DateUtil.java index 2b4ce537..f06c48f0 100644 --- a/src/main/java/kcc/com/cmm/util/DateUtil.java +++ b/src/main/java/kcc/com/cmm/util/DateUtil.java @@ -219,4 +219,21 @@ public final class DateUtil { return df.format(cal.getTime()); } + /** + * @methodName : setLastDayOfMonth + * @author : 이호영 + * @date : 2022.11.23 + * @description : 해당 년 월의 마지막 날짜 구함 + * @param year + * @param month + * @return + */ + public static int setLastDayOfMonth(String year, String month) { + + Calendar cal = Calendar.getInstance(); + cal.set(Integer.parseInt(year), Integer.parseInt(month)-1, 1); + + return cal.getActualMaximum(Calendar.DAY_OF_MONTH); + } + } diff --git a/src/main/java/kcc/kccadr/adjReqMgrOff/service/AdjReqMgrOffLineService.java b/src/main/java/kcc/kccadr/adjReqMgrOff/service/AdjReqMgrOffLineService.java index f67d75b9..4fbd7503 100644 --- a/src/main/java/kcc/kccadr/adjReqMgrOff/service/AdjReqMgrOffLineService.java +++ b/src/main/java/kcc/kccadr/adjReqMgrOff/service/AdjReqMgrOffLineService.java @@ -37,4 +37,6 @@ public interface AdjReqMgrOffLineService { int updateAdjstReqMgrOff(AdjReqMgrOffLineVO adjReqMgrOffLineVO) throws Exception; String selectAdjstReqMgrOffStatCdYn(AdjReqMgrOffLineVO adjReqMgrOffLineVO) throws Exception; + + List findByApprDeList(); } diff --git a/src/main/java/kcc/kccadr/adjReqMgrOff/service/AdjReqMgrSttstVO.java b/src/main/java/kcc/kccadr/adjReqMgrOff/service/AdjReqMgrSttstVO.java index bca71d54..cc44f65f 100644 --- a/src/main/java/kcc/kccadr/adjReqMgrOff/service/AdjReqMgrSttstVO.java +++ b/src/main/java/kcc/kccadr/adjReqMgrOff/service/AdjReqMgrSttstVO.java @@ -9,6 +9,8 @@ public class AdjReqMgrSttstVO extends ComDefaultVO implements Serializable { private String srchYear = ""; // 검색 년도 private String srchType1 = ""; // 검색 조건1 월/반기/분기 private String srchType2 = ""; // 검색 조건2 1~12월/상,하반기/1분기~4분기 + private String srchStrtDe = ""; // 검색 시작 일자 + private String srchEndDe = ""; // 검색 종료 일자 // 조정위원 @@ -59,6 +61,18 @@ public class AdjReqMgrSttstVO extends ComDefaultVO implements Serializable { public void setSrchType2(String srchType2) { this.srchType2 = srchType2; } + public String getSrchStrtDe() { + return srchStrtDe; + } + public void setSrchStrtDe(String srchStrtDe) { + this.srchStrtDe = srchStrtDe; + } + public String getSrchEndDe() { + return srchEndDe; + } + public void setSrchEndDe(String srchEndDe) { + this.srchEndDe = srchEndDe; + } public String getMemSeq() { return memSeq; } diff --git a/src/main/java/kcc/kccadr/adjReqMgrOff/service/impl/AdjReqMgrOffLineDAO.java b/src/main/java/kcc/kccadr/adjReqMgrOff/service/impl/AdjReqMgrOffLineDAO.java index eaf9cd29..45c39a17 100644 --- a/src/main/java/kcc/kccadr/adjReqMgrOff/service/impl/AdjReqMgrOffLineDAO.java +++ b/src/main/java/kcc/kccadr/adjReqMgrOff/service/impl/AdjReqMgrOffLineDAO.java @@ -106,4 +106,8 @@ public class AdjReqMgrOffLineDAO extends EgovAbstractDAO { return (String) select("adjReqMgrOffLineDAO.selectAdjstReqMgrOffStatCdYn", adjReqMgrOffLineVO); } + + public List findByApprDeList() { + return (List) list("adjReqMgrOffLineDAO.findByApprDeList"); + } } diff --git a/src/main/java/kcc/kccadr/adjReqMgrOff/service/impl/AdjReqMgrOffLineServiceImpl.java b/src/main/java/kcc/kccadr/adjReqMgrOff/service/impl/AdjReqMgrOffLineServiceImpl.java index f36a026e..bc5ca2c6 100644 --- a/src/main/java/kcc/kccadr/adjReqMgrOff/service/impl/AdjReqMgrOffLineServiceImpl.java +++ b/src/main/java/kcc/kccadr/adjReqMgrOff/service/impl/AdjReqMgrOffLineServiceImpl.java @@ -1,15 +1,18 @@ package kcc.kccadr.adjReqMgrOff.service.impl; import java.util.ArrayList; +import java.util.Calendar; import java.util.List; import javax.annotation.Resource; +import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Service; import egovframework.rte.fdl.cmmn.EgovAbstractServiceImpl; import egovframework.rte.fdl.idgnr.EgovIdGnrService; import kcc.com.cmm.service.CmmnDetailCode; +import kcc.com.cmm.util.DateUtil; import kcc.com.utl.user.service.CheckAdrProcessUtil; import kcc.kccadr.adjReqMgrOff.service.AdjReqMgrOffLineService; import kcc.kccadr.adjReqMgrOff.service.AdjReqMgrOffLineVO; @@ -725,8 +728,83 @@ public String insertAdjReqMgrRpplReq(AdjReqMgrOffLineVO adjReqMgrOffLineVO) thro } @Override - public List adjReqMgrSttstList(AdjReqMgrSttstVO adjReqMgrSttstVO) throws Exception { - return adjReqMgrOffLineDAO.adjReqMgrSttstList(adjReqMgrSttstVO); + public List adjReqMgrSttstList(AdjReqMgrSttstVO sttstVO) throws Exception { + + /* + * 검색 조건이 있는지 확인 + * 있으면 조건에 맞게 데이터 가공 + */ + String srchYear = sttstVO.getSrchYear(); + if(StringUtils.isNotEmpty(srchYear)) + { + String srchType2 = sttstVO.getSrchType2().replaceAll(",", ""); + // 세부선택 안할 시 Exception 방지 + sttstVO.setSrchStrtDe(srchYear+"-01-01"); + sttstVO.setSrchEndDe(srchYear+"-12-31"); + + + if("01".equals(sttstVO.getSrchType1())) + { + // 상반기 + if("01".equals(srchType2)) + { + sttstVO.setSrchStrtDe(srchYear+"-01-01"); + sttstVO.setSrchEndDe(srchYear+"-06-30"); + } + // 하반기 + else if("02".equals(srchType2)) + { + sttstVO.setSrchStrtDe(srchYear+"-07-01"); + sttstVO.setSrchEndDe(srchYear+"-12-31"); + } + + } + // 분기 + else if("02".equals(sttstVO.getSrchType1())) + { + // 1분기 + if("01".equals(srchType2)) + { + sttstVO.setSrchStrtDe(srchYear+"-01-01"); + sttstVO.setSrchEndDe(srchYear+"-03-31"); + } + // 2분기 + else if("02".equals(srchType2)) + { + sttstVO.setSrchStrtDe(srchYear+"-04-01"); + sttstVO.setSrchEndDe(srchYear+"-06-30"); + } + // 3분기 + else if("03".equals(srchType2)) + { + sttstVO.setSrchStrtDe(srchYear+"-07-01"); + sttstVO.setSrchEndDe(srchYear+"-09-30"); + } + // 4분기 + else if("04".equals(srchType2)) + { + sttstVO.setSrchStrtDe(srchYear+"-10-01"); + sttstVO.setSrchEndDe(srchYear+"-12-31"); + + } + } + // 월 + else if("03".equals(sttstVO.getSrchType1())) + { + sttstVO.setSrchStrtDe(srchYear+"-"+srchType2+"-01"); + sttstVO.setSrchEndDe(srchYear+"-"+srchType2+"-"+DateUtil.setLastDayOfMonth(srchYear, srchType2)); + + } + // 년도 전체 + else + { + sttstVO.setSrchStrtDe(srchYear+"-01-01"); + sttstVO.setSrchEndDe(srchYear+"-12-31"); + } + } + + + return adjReqMgrOffLineDAO.adjReqMgrSttstList(sttstVO); } @Override @@ -1034,5 +1112,11 @@ public String insertAdjReqMgrRpplReq(AdjReqMgrOffLineVO adjReqMgrOffLineVO) thro return resultSts; } + + + @Override + public List findByApprDeList() { + return adjReqMgrOffLineDAO.findByApprDeList(); + } } diff --git a/src/main/java/kcc/kccadr/advcSttst/web/AdvcSttstController.java b/src/main/java/kcc/kccadr/advcSttst/web/AdvcSttstController.java index 8895cec3..edb75275 100644 --- a/src/main/java/kcc/kccadr/advcSttst/web/AdvcSttstController.java +++ b/src/main/java/kcc/kccadr/advcSttst/web/AdvcSttstController.java @@ -470,10 +470,20 @@ public class AdvcSttstController { paginationInfo.setTotalRecordCount(adjReqMgrOffLineService.adjReqMgrOffListCount(adjReqMgrOffLineVO)); model.addAttribute("paginationInfo", paginationInfo); */ - List list = adjReqMgrOffLineService.adjReqMgrSttstList(adjReqMgrSttstVO); + + List srchYearList = adjReqMgrOffLineService.findByApprDeList(); + List list = null; + try { + + list = adjReqMgrOffLineService.adjReqMgrSttstList(adjReqMgrSttstVO); + } catch (Exception e) { + // TODO: handle exception + e.printStackTrace(); + } // 복호화 //decryptInfomation(list, null); decryptInfomation4Sttst(list, null); + model.addAttribute("srchYearList", srchYearList); model.addAttribute("list", list); diff --git a/src/main/resources/egovframework/sqlmap/kccadr/adjReqMgrOff/AdjReqMgrOff_SQL_Mysql.xml b/src/main/resources/egovframework/sqlmap/kccadr/adjReqMgrOff/AdjReqMgrOff_SQL_Mysql.xml index 4e896a1d..0826f776 100644 --- a/src/main/resources/egovframework/sqlmap/kccadr/adjReqMgrOff/AdjReqMgrOff_SQL_Mysql.xml +++ b/src/main/resources/egovframework/sqlmap/kccadr/adjReqMgrOff/AdjReqMgrOff_SQL_Mysql.xml @@ -644,6 +644,9 @@ AND amm.MEM_DEPT_SEQ=D.MEM_DEPT_SEQ AND M.STAT_CD='400000' + + M.APPR_DE BETWEEN TO_DATETIME(#srchStrtDe#, 'YYYY-MM-DD') AND TO_DATETIME(#srchEndDe#, 'YYYY-MM-DD') + )aa GROUP BY mem_seq, ccTy )aaa @@ -782,6 +785,9 @@ AND amm.MEM_DEPT_SEQ=D.MEM_DEPT_SEQ AND M.STAT_CD='400000' + + M.APPR_DE BETWEEN TO_DATETIME(#srchStrtDe#, 'YYYY-MM-DD') AND TO_DATETIME(#srchEndDe#, 'YYYY-MM-DD') + )aaa , adr_hstry bbb WHERE aaa.hstrySeq=bbb.adr_hstry_seq @@ -1001,5 +1007,10 @@ + + + diff --git a/src/main/webapp/WEB-INF/jsp/kccadr/advcSttst/memSttstList.jsp b/src/main/webapp/WEB-INF/jsp/kccadr/advcSttst/memSttstList.jsp index 39dd7fcd..2f895436 100644 --- a/src/main/webapp/WEB-INF/jsp/kccadr/advcSttst/memSttstList.jsp +++ b/src/main/webapp/WEB-INF/jsp/kccadr/advcSttst/memSttstList.jsp @@ -34,52 +34,129 @@ //해당 페이지에 대한 권한 체크 _admin_fn_check_authority("memSttstList", "div.cont", "ALL"); + // 검색 년도 (1Depth) + var srchYear = "${adjReqMgrSttstVO.srchYear}"; + console.log('srchYear :: ', srchYear); + + /** + * 처음 화면이면 검색조건 초기화 function + */ + if(!srchYear){ + $('.srchType').hide(); + } + else + { + $("#srchYear").val(srchYear).prop("selected", true); + + // 검색 조건 (2Depth - 반기/분기/월) + var srchType1 = "${adjReqMgrSttstVO.srchType1}"; + // 검색 조건 (3Depth - 반기/분기/월 - 상세) + var srchType2 = "${adjReqMgrSttstVO.srchType2}"; + srchType2 = srchType2.replaceAll(',', ''); + + console.log('srchType1 :: ', srchType1); + console.log('srchType2 :: ', srchType2); + + // 검색 조건 상세 숨김 + $('.srchTypeDetail').hide(); + $('#srchType00').val(srchType1).prop("selected", true); + $('#srchType'+srchType1).show(); + $('#srchType'+srchType1).val(srchType2).prop("selected", true); + } + + + // 년도 체인지 이벤트 + $('#srchYear').change(function(){ + if($(this).val()) + $('#srchType00').show(); + else + { + $('.srchType').hide(); + $('.srchType').val(''); + } + }); + // 반기/분기/월 선택 이벤트 + $('#srchType00').change(function(){ + + $('.srchTypeDetail').hide(); + $('.srchTypeDetail').val(''); + var selectId = 'srchType'; + + if($(this).val()){ + selectId += $(this).val(); + $('#'+selectId).show(); + }else{ + $('.srchTypeDetail').hide(); + $('.srchTypeDetail').val(''); + } + }); + }); + /* + * 3Depth가 없으면 2Depth 초기화 + */ + function fn_validator(){ + + var isVal = true; + $('.srchTypeDetail').each(function(index,item){ + if($(item).val()){ + isVal = false; + } + }); + + if(isVal) + { + $('#srchType00').val(''); + } + } + //권한 체크 결과값으로 후속처리 function admin_fn_check_authority_ret(p_param){ //alert(p_param); //리턴값으로 상세 권한 체크시 사용 "" 또는 CUD 또는 CUDP } - function fncGoList(){ - linkPage(1); - } - - function linkPage(pageNo){ - var listForm = document.listForm ; - //listForm.pageIndex.value = pageNo ; - //listForm.searchCondition.value = $('#searchCondition').val(); - //listForm.searchKeyword.value = $('#searchKeyword').val(); - listForm.action = ""; - listForm.submit(); - } - function fncCreate(){ - var listForm = document.listForm ; - listForm.action = ""; - listForm.submit(); - } - - function fncGoDetail(adrSeq){ - var listForm = document.listForm ; - listForm.adrSeq.value = adrSeq; - listForm.action = ""; - listForm.submit(); - } + function fncGoList(){ - function AppReq(){ - var form = $('
'); - form.append($('', {type: 'hidden', name: 'mltApprSeq', value: 'test'})); - form.appendTo('body'); - commonPopWindowopenForm("/kccadr/adjReqMgOff/popup/adjReqMgrOffAppReqPop.do" , "850", "700", "AppReqPopup", form); - form.remove(); - } - - function fncExcel() { - var listForm = document.listForm; - //listForm.action = ""; - listForm.action = ""; - listForm.submit(); - } + fn_validator() + linkPage(1); + } + + function linkPage(pageNo){ + var listForm = document.listForm ; + //listForm.pageIndex.value = pageNo ; + //listForm.searchCondition.value = $('#searchCondition').val(); + //listForm.searchKeyword.value = $('#searchKeyword').val(); + listForm.action = ""; + listForm.submit(); + } + function fncCreate(){ + var listForm = document.listForm ; + listForm.action = ""; + listForm.submit(); + } + + function fncGoDetail(adrSeq){ + var listForm = document.listForm ; + listForm.adrSeq.value = adrSeq; + listForm.action = ""; + listForm.submit(); + } + + function AppReq(){ + var form = $('
'); + form.append($('', {type: 'hidden', name: 'mltApprSeq', value: 'test'})); + form.appendTo('body'); + commonPopWindowopenForm("/kccadr/adjReqMgOff/popup/adjReqMgrOffAppReqPop.do" , "850", "700", "AppReqPopup", form); + form.remove(); + } + + function fncExcel() { + var listForm = document.listForm; + //listForm.action = ""; + listForm.action = ""; + listForm.submit(); + } 조정신청목록 @@ -115,32 +192,42 @@
  • 기간

    - - - - - - - - - - - - - - + + + - + + + +
  • @@ -227,6 +314,9 @@ + +
  • 해당 기간에 데이터가 없습니다.
  • +