From a7863450470da9df998084bdee4202723c98dd84 Mon Sep 17 00:00:00 2001 From: JIWOO Date: Tue, 24 Dec 2024 14:36:08 +0900 Subject: [PATCH] =?UTF-8?q?=EC=9D=B4=EC=A7=80=EC=9A=B0=20-=20=EA=B4=80?= =?UTF-8?q?=EB=A6=AC=EC=9E=90=20>=20=EC=9A=B4=EC=98=81=EA=B4=80=EB=A6=AC?= =?UTF-8?q?=20>=20=EA=B3=B5=ED=9C=B4=EC=9D=BC=EA=B4=80=EB=A6=AC=20?= =?UTF-8?q?=EB=A9=94=EB=89=B4=20=EC=83=9D=EC=84=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../uss/ion/hld/service/HolidayService.java | 13 ++ .../com/uss/ion/hld/service/HolidayVO.java | 63 ++++++++ .../uss/ion/hld/service/impl/HolidayDAO.java | 24 ++++ .../hld/service/impl/HolidayServiceImpl.java | 33 +++++ .../uss/ion/hld/web/HolidayController.java | 123 ++++++++++++++++ .../com/uss/ion/hld/Holiday_SQL_Oracle.xml | 55 +++++++ .../sql-map-config-oracle-uss-ion-hld.xml | 7 + .../WEB-INF/jsp/com/holiday/holidayInsert.jsp | 94 ++++++++++++ .../WEB-INF/jsp/com/holiday/holidayList.jsp | 136 ++++++++++++++++++ 9 files changed, 548 insertions(+) create mode 100644 src/main/java/kcc/com/uss/ion/hld/service/HolidayService.java create mode 100644 src/main/java/kcc/com/uss/ion/hld/service/HolidayVO.java create mode 100644 src/main/java/kcc/com/uss/ion/hld/service/impl/HolidayDAO.java create mode 100644 src/main/java/kcc/com/uss/ion/hld/service/impl/HolidayServiceImpl.java create mode 100644 src/main/java/kcc/com/uss/ion/hld/web/HolidayController.java create mode 100644 src/main/resources/egovframework/sqlmap/com/uss/ion/hld/Holiday_SQL_Oracle.xml create mode 100644 src/main/resources/egovframework/sqlmap/config/oracle/sql-map-config-oracle-uss-ion-hld.xml create mode 100644 src/main/webapp/WEB-INF/jsp/com/holiday/holidayInsert.jsp create mode 100644 src/main/webapp/WEB-INF/jsp/com/holiday/holidayList.jsp 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 new file mode 100644 index 00000000..daf5e367 --- /dev/null +++ b/src/main/java/kcc/com/uss/ion/hld/service/HolidayService.java @@ -0,0 +1,13 @@ +package kcc.com.uss.ion.hld.service; + +import java.util.List; + +public interface HolidayService { + + public List selectHolidayList(HolidayVO holidayVO) throws Exception; + + public void deleteHoliday(HolidayVO holidayVO) throws Exception; + + public void insertHoliday(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 new file mode 100644 index 00000000..3fc4be5d --- /dev/null +++ b/src/main/java/kcc/com/uss/ion/hld/service/HolidayVO.java @@ -0,0 +1,63 @@ +package kcc.com.uss.ion.hld.service; + +import java.io.Serializable; + +import kcc.com.cmm.ComDefaultVO; + +public class HolidayVO extends ComDefaultVO implements Serializable { + + private static final long serialVersionUID = 5641887401063483713L; + + public String locdate = ""; //날짜 + public String dateKind = ""; //날짜종류 + public String dateName = ""; //날짜명 + public String holidayYn = ""; //공휴일 여부 + public String delYn = ""; //삭제여부 + public String regDt = ""; //등록일 + public String updDt = ""; //변경일 + + public String getLocdate() { + return locdate; + } + public void setLocdate(String locdate) { + this.locdate = locdate; + } + public String getDateKind() { + return dateKind; + } + public void setDateKind(String dateKind) { + this.dateKind = dateKind; + } + public String getDateName() { + return dateName; + } + public void setDateName(String dateName) { + this.dateName = dateName; + } + public String getHolidayYn() { + return holidayYn; + } + public void setHolidayYn(String holidayYn) { + this.holidayYn = holidayYn; + } + public String getDelYn() { + return delYn; + } + public void setDelYn(String delYn) { + this.delYn = delYn; + } + public String getRegDt() { + return regDt; + } + public void setRegDt(String regDt) { + this.regDt = regDt; + } + public String getUpdDt() { + return updDt; + } + public void setUpdDt(String updDt) { + this.updDt = updDt; + } + + +} 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 new file mode 100644 index 00000000..36e7f79b --- /dev/null +++ b/src/main/java/kcc/com/uss/ion/hld/service/impl/HolidayDAO.java @@ -0,0 +1,24 @@ +package kcc.com.uss.ion.hld.service.impl; + +import java.util.List; + +import org.springframework.stereotype.Repository; + +import egovframework.rte.psl.dataaccess.EgovAbstractDAO; +import kcc.com.uss.ion.hld.service.HolidayVO; + +@Repository("holidayDAO") +public class HolidayDAO extends EgovAbstractDAO { + public List selectHolidayList(HolidayVO holidayVO) throws Exception { + return (List) list("holidayDAO.selectHolidayList", holidayVO); + } + + public void deleteHoliday(HolidayVO holidayVO) throws Exception { + update("holidayDAO.deleteHoliday", holidayVO); + } + + public void insertHoliday(HolidayVO holidayVO) throws Exception { + update("holidayDAO.insertHoliday", 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 new file mode 100644 index 00000000..48a3104a --- /dev/null +++ b/src/main/java/kcc/com/uss/ion/hld/service/impl/HolidayServiceImpl.java @@ -0,0 +1,33 @@ +package kcc.com.uss.ion.hld.service.impl; + +import java.util.List; + +import javax.annotation.Resource; + +import org.springframework.stereotype.Service; + +import egovframework.rte.fdl.cmmn.EgovAbstractServiceImpl; +import kcc.com.uss.ion.hld.service.HolidayService; +import kcc.com.uss.ion.hld.service.HolidayVO; + +@Service("holidayService") +public class HolidayServiceImpl extends EgovAbstractServiceImpl implements HolidayService{ + + @Resource(name="holidayDAO") + private HolidayDAO holidayDAO; + + @Override + public List selectHolidayList(HolidayVO holidayVO) throws Exception { + return holidayDAO.selectHolidayList(holidayVO); + } + + @Override + public void deleteHoliday(HolidayVO holidayVO) throws Exception { + holidayDAO.deleteHoliday(holidayVO); + } + + @Override + public void insertHoliday(HolidayVO holidayVO) throws Exception { + holidayDAO.insertHoliday(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 new file mode 100644 index 00000000..ff864202 --- /dev/null +++ b/src/main/java/kcc/com/uss/ion/hld/web/HolidayController.java @@ -0,0 +1,123 @@ +package kcc.com.uss.ion.hld.web; + +import java.io.BufferedReader; +import java.io.InputStreamReader; +import java.io.StringReader; +import java.net.HttpURLConnection; +import java.net.URL; +import java.net.URLEncoder; +import java.time.LocalDate; +import java.util.ArrayList; +import java.util.List; + +import javax.annotation.Resource; +import javax.servlet.http.HttpSession; +import javax.xml.parsers.DocumentBuilder; +import javax.xml.parsers.DocumentBuilderFactory; + +import org.springframework.stereotype.Controller; +import org.springframework.ui.ModelMap; +import org.springframework.web.bind.annotation.ModelAttribute; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.servlet.mvc.support.RedirectAttributes; +import org.w3c.dom.Document; +import org.w3c.dom.Element; +import org.w3c.dom.NodeList; +import org.xml.sax.InputSource; + +import kcc.com.uss.ion.hld.service.HolidayService; +import kcc.com.uss.ion.hld.service.HolidayVO; + +@Controller +public class HolidayController { + + @Resource(name = "holidayService") + private HolidayService holidayService; + + @RequestMapping(value="/uss/holiday/selectHolidayList.do") + public String selectHolidayList(@ModelAttribute("holidayVO") HolidayVO holidayVO,ModelMap model, HttpSession session)throws Exception{ + //현재년도 가져오기 + LocalDate now = LocalDate.now(); + int nowYear = now.getYear(); + String nowYearStr = String.valueOf(nowYear); + model.addAttribute("nowYearStr", nowYearStr); + + if("".equals(holidayVO.getSearchYear())) { + holidayVO.setSearchYear(nowYearStr); + } + List holidayList = holidayService.selectHolidayList(holidayVO); + model.addAttribute("holidayList", holidayList); + return "/com/holiday/holidayList"; + } + + @RequestMapping(value="/uss/holiday/deleteHoliday.do") + public String deleteHoliday(@ModelAttribute("holidayVO") HolidayVO holidayVO, RedirectAttributes redirectAttributes)throws Exception{ + holidayService.deleteHoliday(holidayVO); + redirectAttributes.addAttribute("searchYear", holidayVO.getSearchYear()); + return "redirect:/uss/holiday/selectHolidayList.do"; + } + @RequestMapping(value="/uss/holiday/insertViewHoliday.do") + public String insertViewHoliday(@ModelAttribute("holidayVO") HolidayVO holidayVO)throws Exception{ + + return "/com/holiday/holidayInsert"; + } + + @RequestMapping(value="/uss/holiday/insertHoliday.do") + public String insertHoliday(@ModelAttribute("holidayVO") HolidayVO holidayVO, RedirectAttributes redirectAttributes)throws Exception{ + holidayService.insertHoliday(holidayVO); + return "redirect:/uss/holiday/selectHolidayList.do"; + } + + @RequestMapping(value="/uss/holiday/insertHolidayAPI.do") + public String insertHolidayAPI(@ModelAttribute("holidayVO") HolidayVO holidayVO, RedirectAttributes redirectAttributes)throws Exception{ + StringBuilder urlBuilder = new StringBuilder("http://apis.data.go.kr/B090041/openapi/service/SpcdeInfoService/getRestDeInfo"); /*URL*/ + urlBuilder.append("?" + URLEncoder.encode("serviceKey","UTF-8") + "=qC21K3oaxizQNSTba2aKLXQY8PdMn8N0GPYtjhnOUETJIlvcZ4bmeyJz2eyBQ9hCe%2B9v7A3ZINAKTWaofuR%2Fjw%3D%3D"); /*Service Key*/ + urlBuilder.append("&" + URLEncoder.encode("numOfRows","UTF-8") + "=" + URLEncoder.encode("100", "UTF-8")); /*한 페이지 결과 수*/ + urlBuilder.append("&" + URLEncoder.encode("solYear","UTF-8") + "=" + URLEncoder.encode(holidayVO.getSearchYear(), "UTF-8")); /*연*/ + URL url = new URL(urlBuilder.toString()); + HttpURLConnection conn = (HttpURLConnection) url.openConnection(); + conn.setRequestMethod("GET"); + conn.setRequestProperty("Content-type", "application/json"); + System.out.println("Response code: " + conn.getResponseCode()); + BufferedReader rd; + if(conn.getResponseCode() >= 200 && conn.getResponseCode() <= 300) { + rd = new BufferedReader(new InputStreamReader(conn.getInputStream())); + } else { + rd = new BufferedReader(new InputStreamReader(conn.getErrorStream())); + } + StringBuilder sb = new StringBuilder(); + String line; + while ((line = rd.readLine()) != null) { + sb.append(line); + } + rd.close(); + conn.disconnect(); + + /*파싱 후 insert 반복*/ + DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); + DocumentBuilder builder = factory.newDocumentBuilder(); + InputSource is = new InputSource(new StringReader(sb.toString())); + Document doc = builder.parse(is); + + NodeList itemList = doc.getElementsByTagName("item"); + List holidayList = new ArrayList<>(); + + for(int i=0; i + + + + + + + + + + + UPDATE C_RESTDEINFO + SET + DEL_YN = 'Y', + UPD_DT = sysdate + WHERE LOCDATE = #locdate# + AND DATE_NAME = #dateName# + + + + INSERT INTO C_RESTDEINFO (LOCDATE, DATE_KIND, DATE_NAME, HOLIDAY_YN, DEL_YN, REG_DT ) + SELECT + #locdate#, + #dateKind#, + #dateName#, + 'Y', + 'N', + SYSDATE + FROM dual + WHERE NOT EXISTS ( + SELECT 1 + FROM C_RESTDEINFO + WHERE LOCDATE = #locdate# AND DATE_NAME = #dateName# + ) + + + diff --git a/src/main/resources/egovframework/sqlmap/config/oracle/sql-map-config-oracle-uss-ion-hld.xml b/src/main/resources/egovframework/sqlmap/config/oracle/sql-map-config-oracle-uss-ion-hld.xml new file mode 100644 index 00000000..0eb98e0f --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/config/oracle/sql-map-config-oracle-uss-ion-hld.xml @@ -0,0 +1,7 @@ + + + + + + diff --git a/src/main/webapp/WEB-INF/jsp/com/holiday/holidayInsert.jsp b/src/main/webapp/WEB-INF/jsp/com/holiday/holidayInsert.jsp new file mode 100644 index 00000000..25f436de --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/com/holiday/holidayInsert.jsp @@ -0,0 +1,94 @@ +<%@ page contentType="text/html; charset=utf-8"%> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> +<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%> +<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %> +<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%> +<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %> +<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %> + + + +공휴일 관리 + + + + +
+ + +
+
+ + +
+

공휴일 등록

+
    +
  • +
  • +

    공휴일관리

    +
  • +
  • +

    공휴일관리

    +
  • +
  • 공휴일 등록
  • +
+
+ + +
+ +
+ + + + + + + + + + + + + + + + +
공휴일 이름 + +
날짜 + +
+
+ + + +
+
+ + +
+
+ +
+
+
+ +
+ + diff --git a/src/main/webapp/WEB-INF/jsp/com/holiday/holidayList.jsp b/src/main/webapp/WEB-INF/jsp/com/holiday/holidayList.jsp new file mode 100644 index 00000000..f8e86583 --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/com/holiday/holidayList.jsp @@ -0,0 +1,136 @@ +<%@ page contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> +<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%> +<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %> +<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%> +<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %> + + + + +공휴일 관리 + + + +
+ + + + +
+
+
+

공휴일관리

+
    +
  • +
  • +

    공휴일관리

    +
  • +
  • 공휴일관리
  • +
+
+ +
+ +
+

+
+ + +
+
+ + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
날짜공휴일 이름등록일삭제
+ +
+
+ + + +
+ +
+ + +
+
+
+ +
+ +