diff --git a/src/main/java/kcc/com/uss/ion/hld/service/HolidayService.java b/src/main/java/kcc/com/uss/ion/hld/service/HolidayService.java index daf5e367..bcd52250 100644 --- a/src/main/java/kcc/com/uss/ion/hld/service/HolidayService.java +++ b/src/main/java/kcc/com/uss/ion/hld/service/HolidayService.java @@ -10,4 +10,6 @@ public interface HolidayService { public void insertHoliday(HolidayVO holidayVO) throws Exception; + public int selectHolidayCnt(HolidayVO holidayVO) throws Exception; + } diff --git a/src/main/java/kcc/com/uss/ion/hld/service/HolidayVO.java b/src/main/java/kcc/com/uss/ion/hld/service/HolidayVO.java index 3fc4be5d..feacf56f 100644 --- a/src/main/java/kcc/com/uss/ion/hld/service/HolidayVO.java +++ b/src/main/java/kcc/com/uss/ion/hld/service/HolidayVO.java @@ -16,6 +16,9 @@ public class HolidayVO extends ComDefaultVO implements Serializable { public String regDt = ""; //등록일 public String updDt = ""; //변경일 + public String sdt = ""; //기간 계산 - 시작일 + public String edt = ""; //기간 계산 - 종료일 + public String getLocdate() { return locdate; } @@ -57,6 +60,18 @@ public class HolidayVO extends ComDefaultVO implements Serializable { } public void setUpdDt(String updDt) { this.updDt = updDt; + } + public String getSdt() { + return sdt; + } + public void setSdt(String sdt) { + this.sdt = sdt; + } + public String getEdt() { + return edt; + } + public void setEdt(String edt) { + this.edt = edt; } diff --git a/src/main/java/kcc/com/uss/ion/hld/service/impl/HolidayDAO.java b/src/main/java/kcc/com/uss/ion/hld/service/impl/HolidayDAO.java index 36e7f79b..8e6b0498 100644 --- a/src/main/java/kcc/com/uss/ion/hld/service/impl/HolidayDAO.java +++ b/src/main/java/kcc/com/uss/ion/hld/service/impl/HolidayDAO.java @@ -21,4 +21,8 @@ public class HolidayDAO extends EgovAbstractDAO { update("holidayDAO.insertHoliday", holidayVO); } + public int selectHolidayCnt(HolidayVO holidayVO) throws Exception { + return (Integer) select("holidayDAO.selectHolidayCnt", holidayVO); + } + } diff --git a/src/main/java/kcc/com/uss/ion/hld/service/impl/HolidayServiceImpl.java b/src/main/java/kcc/com/uss/ion/hld/service/impl/HolidayServiceImpl.java index 48a3104a..71bffa47 100644 --- a/src/main/java/kcc/com/uss/ion/hld/service/impl/HolidayServiceImpl.java +++ b/src/main/java/kcc/com/uss/ion/hld/service/impl/HolidayServiceImpl.java @@ -30,4 +30,9 @@ public class HolidayServiceImpl extends EgovAbstractServiceImpl implements Holid public void insertHoliday(HolidayVO holidayVO) throws Exception { holidayDAO.insertHoliday(holidayVO); } + + @Override + public int selectHolidayCnt(HolidayVO holidayVO) throws Exception { + return holidayDAO.selectHolidayCnt(holidayVO); + } } diff --git a/src/main/java/kcc/com/uss/ion/hld/web/HolidayController.java b/src/main/java/kcc/com/uss/ion/hld/web/HolidayController.java index ff864202..9e81453c 100644 --- a/src/main/java/kcc/com/uss/ion/hld/web/HolidayController.java +++ b/src/main/java/kcc/com/uss/ion/hld/web/HolidayController.java @@ -7,6 +7,7 @@ import java.net.HttpURLConnection; import java.net.URL; import java.net.URLEncoder; import java.time.LocalDate; +import java.time.format.DateTimeFormatter; import java.util.ArrayList; import java.util.List; @@ -15,9 +16,12 @@ import javax.servlet.http.HttpSession; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; import org.springframework.stereotype.Controller; import org.springframework.ui.ModelMap; import org.springframework.web.bind.annotation.ModelAttribute; +import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.servlet.mvc.support.RedirectAttributes; import org.w3c.dom.Document; @@ -120,4 +124,28 @@ public class HolidayController { return "redirect:/uss/holiday/selectHolidayList.do"; } + + @RequestMapping(value="/uss/holiday/returnHolidayAjax.do") + public ResponseEntity returnHolidayAjax(@RequestBody HolidayVO holidayVO, RedirectAttributes redirectAttributes)throws Exception{ + String std = holidayVO.getSdt(); + String etd = holidayVO.getEdt(); + + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyyMMdd"); + LocalDate startDate = LocalDate.parse(std, formatter); + LocalDate endDate = LocalDate.parse(etd, formatter); + + //공휴일 수 + int hldCnt = holidayService.selectHolidayCnt(holidayVO); + + int workCnt = 0; + //주말, 공휴일 뺀 기간 + for (LocalDate date = startDate; !date.isAfter(endDate); date = date.plusDays(1)) { + // 주말이 아닌 경우에만 근무일 수 증가 + if (date.getDayOfWeek().getValue() != 6 && date.getDayOfWeek().getValue() != 7) { + workCnt++; + } + } + workCnt = workCnt - hldCnt -1; + return new ResponseEntity(workCnt, HttpStatus.OK); + } } diff --git a/src/main/resources/egovframework/sqlmap/com/uss/ion/hld/Holiday_SQL_Oracle.xml b/src/main/resources/egovframework/sqlmap/com/uss/ion/hld/Holiday_SQL_Oracle.xml index 474866cb..28dec813 100644 --- a/src/main/resources/egovframework/sqlmap/com/uss/ion/hld/Holiday_SQL_Oracle.xml +++ b/src/main/resources/egovframework/sqlmap/com/uss/ion/hld/Holiday_SQL_Oracle.xml @@ -52,4 +52,13 @@ ) + diff --git a/src/main/webapp/WEB-INF/jsp/com/holiday/holidayList.jsp b/src/main/webapp/WEB-INF/jsp/com/holiday/holidayList.jsp index f8e86583..7da8acda 100644 --- a/src/main/webapp/WEB-INF/jsp/com/holiday/holidayList.jsp +++ b/src/main/webapp/WEB-INF/jsp/com/holiday/holidayList.jsp @@ -96,9 +96,9 @@ function fn_holdayAPI(){ - 날짜 - 공휴일 이름 - 등록일 + 날짜 + 공휴일 이름 + 등록일 삭제 diff --git a/src/main/webapp/WEB-INF/jsp/seed/_extra/gtm/trublprocessmng/rceptEdit.jsp b/src/main/webapp/WEB-INF/jsp/seed/_extra/gtm/trublprocessmng/rceptEdit.jsp index ba62ff46..c406a7ae 100644 --- a/src/main/webapp/WEB-INF/jsp/seed/_extra/gtm/trublprocessmng/rceptEdit.jsp +++ b/src/main/webapp/WEB-INF/jsp/seed/_extra/gtm/trublprocessmng/rceptEdit.jsp @@ -257,7 +257,7 @@ $(document).ready(function(){ $(".readOff div.picker").remove(); } - $("#suppCalculation").click(function(){ +/* $("#suppCalculation").click(function(){ if($("#appReqDt").val() == ""){ alert("신청인 보완요청일을 입력 해 주세요."); return false; @@ -291,7 +291,7 @@ $(document).ready(function(){ callRestDeApi(appReqDt,appSubmitDt,"appReqTerm"); } - }); + }); */ $("#stopCalculation").click(function(){ if($("#stopReqDt").val() == ""){ @@ -314,7 +314,7 @@ $(document).ready(function(){ $("#stopReqTerm").val(stopReqTerm); }); - $("#anwCalculation").click(function(){ +/* $("#anwCalculation").click(function(){ if($("#answerReqDt").val() == ""){ alert("답변요청일을 입력 해 주세요."); return false; @@ -329,11 +329,110 @@ $(document).ready(function(){ var respondentReqDt = $("#respondentReqDt").val().replace(/-/gi,""); callRestDeApi(answerReqDt,respondentReqDt,"answerTerm"); - }); + }); */ //처리기간 계산 ((조정종료일 - 신청서 보완기간) / 24 * 60 * 60 * 1000) - 보완기간 - $("#periodCalulation").click(function(){ + /* $("#periodCalulation").click(function(){ + + if($("#mediationEndDt").val() == ""){ + alert("조정종료일이 존재하지 않습니다."); + return false; + } + + var caseNo = '${masterData.caseNo}'; + var caseDate = '${masterData.caseDate}'; + var previousStep = '${masterData.previousStep}'; + var mediationSmallRb = '${masterData.mediationSmallRb}'; + if(mediationSmallRb == '0617000000' || caseNo == '유통2020-0030'){ + var appReqTerm = $("#appReqTerm").val();//보완기간 + var stopReqTerm = $("#stopReqTerm").val(); + if(appReqTerm == ""){ + appReqTerm = 0; + } + if(stopReqTerm == ""){ + stopReqTerm = 0; + } + + caseDate = caseDate.substring(0,4)+'-'+caseDate.substring(4,6)+'-'+caseDate.substring(6,8); + var caseDateArr = caseDate.split('-'); + var mediationEndDtArr = $("#mediationEndDt").val().split('-'); + + var caseDateDt = new Date(caseDateArr[0], Number(caseDateArr[1]) - 1, caseDateArr[2]);//접수일 + var mediationEndDt = new Date(mediationEndDtArr[0], Number(mediationEndDtArr[1])-1, mediationEndDtArr[2]);//조정종료일 + + var currDay = 24 * 60 * 60 * 1000; + + var pendencyPeriod = ((mediationEndDt - caseDateDt) / currDay) - (appReqTerm +1) - (stopReqTerm + 1); + + var processStopDay = getProcessStopDay(); + + pendencyPeriod = pendencyPeriod - processStopDay; + + $("#pendencyPeriod").val(pendencyPeriod); + }else{ + var caseDt = caseDate.replace(/-/gi,""); + var mediationEndDt = $("#mediationEndDt").val().replace(/-/gi,""); + callRestDeApi(caseDt,mediationEndDt,"pendencyPeriod"); + } + }); */ + + +//신청서 보완기간 계산 + $("#suppCalculation").click(function(){ + if($("#appReqDt").val() == ""){ + alert("신청인 보완요청일을 입력 해 주세요."); + return false; + } + + if($("#appSubmitDt").val() == ""){ + alert("신청인 제출일을 입력 해 주세요."); + return false; + } + + var caseNo = '${masterData.caseNo}'; + var caseDate = '${masterData.caseDate}'; + var mediationSmallRb = '${masterData.mediationSmallRb}'; + if(mediationSmallRb == '0617000000' || caseNo == '유통2020-0030'){ + var appReqDtArr = $("#appReqDt").val().split('-'); + var appSubmitDtArr = $("#appSubmitDt").val().split('-'); + var appReqDt = new Date(appReqDtArr[0], Number(appReqDtArr[1]) -1 , appReqDtArr[2]); + var appSubmitDt = new Date(appSubmitDtArr[0], Number(appSubmitDtArr[1]) -1, appSubmitDtArr[2]); + var currDay = 24 * 60 * 60 * 1000; + var appReqTerm = (appSubmitDt - appReqDt) / currDay; + + if(appReqTerm > 21){ + //신청인 보완기간은 최대 21일로 고정 + appReqTerm = 21; + } + + $("#appReqTerm").val(appReqTerm); + }else{ + var appReqDt = $("#appReqDt").val().replace(/-/gi,""); + var appSubmitDt = $("#appSubmitDt").val().replace(/-/gi,""); + returnTerm(appReqDt,appSubmitDt,"appReqTerm"); + } + + }); +//답변서 제출기간 계산 + $("#anwCalculation").click(function(){ + if($("#answerReqDt").val() == ""){ + alert("답변요청일을 입력 해 주세요."); + return false; + } + + if($("#respondentReqDt").val() == ""){ + alert("피신청인 답변서 제출일을 입력 해 주세요."); + return false; + } + + var answerReqDt = $("#answerReqDt").val().replace(/-/gi,""); + var respondentReqDt = $("#respondentReqDt").val().replace(/-/gi,""); + returnTerm(answerReqDt,respondentReqDt,"answerTerm"); + }); + +//조정종료 처리기간 계산 +$("#periodCalulation").click(function(){ /* if($("#appReqTerm").val() == ""){ alert("신청인 보완기간 입력 해 주세요."); return false; @@ -377,9 +476,10 @@ $(document).ready(function(){ }else{ var caseDt = caseDate.replace(/-/gi,""); var mediationEndDt = $("#mediationEndDt").val().replace(/-/gi,""); - callRestDeApi(caseDt,mediationEndDt,"pendencyPeriod"); + returnTerm(caseDt,mediationEndDt,"pendencyPeriod"); } }); + $("#test").click(function(){ var processStopDay = ''; @@ -4260,6 +4360,38 @@ function callRestDeApi(sdt,edt,gubun){ }); } + + + +//기간 내 주말, 공휴일 계산 하기 +function returnTerm(sdt,edt,gubun){ + var data = { + "sdt" : sdt, + "edt" : edt + } + $.ajax({ + type : "POST", + url : "/uss/holiday/returnHolidayAjax.do", + contentType: "application/json", + data : JSON.stringify(data), + success: function(response) { + if(gubun == "appReqTerm"){ + $("#appReqTerm").val(response); + }else if(gubun == "answerTerm"){ + $("#answerTerm").val(response); + }else if(gubun == "pendencyPeriod"){ + var pendencyPeriod = response; + var processStopDay = getProcessStopDay(); + pendencyPeriod = pendencyPeriod - processStopDay + $("#pendencyPeriod").val(pendencyPeriod); + } + }, + error: function(xhr, status, error) { + alert("기간 계산 오류"); + } + }) +} + function getFormatDate(date){ var year = date.getFullYear(); var month = (1+date.getMonth()); @@ -9634,4 +9766,4 @@ function docOpen(obj) { - \ No newline at end of file +