diff --git a/.classpath b/.classpath
index 9ca42e7..16fa6cf 100644
--- a/.classpath
+++ b/.classpath
@@ -33,5 +33,6 @@
+
diff --git a/2_apply.bat b/2_apply.bat
index 34d1800..0e79bd7 100644
--- a/2_apply.bat
+++ b/2_apply.bat
@@ -1,14 +1,22 @@
@echo off
setlocal enabledelayedexpansion
+
set source_prefix=src\main\webapp\
set target_prefix=C:\Users\dbnt\eclipse-workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\geoinfo_admin\
set target_directory=C:\Users\dbnt\git\dbnt\geoinfo.or.kr\old-geoinfo-or-kr-admin\
-set source_file=
-set target_file=
+rem For 192.168.10.20
+hostname | find "DESKTOP-9C42CR8" > nul
+if %errorlevel% == 0 (
+ set target_prefix=D:\app_geoinfo\app\eclipse\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\old-geoinfo-or-kr-admin\
+ set target_directory=D:\app_geoinfo\app\eclipse\workspace\old-geoinfo-or-kr-admin\
+) else (
+ echo goodbye
+)
-for /f "delims=" %%i in (list.txt) do (
+
+for /f "delims=" %%i in (admin_list.txt) do (
set line=%%i
if "!line:~-5!" == ".java" (
diff --git a/list.txt b/admin_list.txt
similarity index 76%
rename from list.txt
rename to admin_list.txt
index e17e1c4..1b8295a 100644
--- a/list.txt
+++ b/admin_list.txt
@@ -1,4 +1,3 @@
-src\main\resources\egovframework\egovProps\globals.properties_thkim_disabled
src\main\webapp\WEB-INF\config\springmvc\action-servlet.xml
src\main\webapp\WEB-INF\views\admins\user\left.jsp
src\main\webapp\images\renew\arrow-right.png
@@ -17,4 +16,10 @@ src\main\resources\geoinfo\sqlmap\mappers\admins\user\HomeTrainingMapper.xml
src\main\webapp\WEB-INF\views\admins\user\home-training-index.jsp
src\main\webapp\WEB-INF\views\admins\user\home-training-approval-system.jsp
src\main\webapp\WEB-INF\views\admins\user\visit-training-index.jsp
-src\main\webapp\WEB-INF\views\admins\user\visit-training-approval-system.jsp
\ No newline at end of file
+src\main\webapp\WEB-INF\views\admins\user\visit-training-approval-system.jsp
+src\main\java\geoinfo\util\MyUtil.java
+src\main\webapp\WEB-INF\lib\json-simple-1.1.1.jar
+src\main\java\geoinfo\admins\main\MainController.java
+src\main\resources\geoinfo\sqlmap\mappers\admins\main\Login_SQL.xml
+src\main\webapp\WEB-INF\views\admins\main\main.jsp
+src\main\webapp\WEB-INF\views\admins\frame\mainframe.jsp
diff --git a/old/GeneralUserMngController.class b/old/GeneralUserMngController.class
new file mode 100644
index 0000000..99cfb80
Binary files /dev/null and b/old/GeneralUserMngController.class differ
diff --git a/old/HomeTrainingMapper.class b/old/HomeTrainingMapper.class
new file mode 100644
index 0000000..838099c
Binary files /dev/null and b/old/HomeTrainingMapper.class differ
diff --git a/old/HomeTrainingMapper.xml b/old/HomeTrainingMapper.xml
new file mode 100644
index 0000000..44aa3c6
--- /dev/null
+++ b/old/HomeTrainingMapper.xml
@@ -0,0 +1,88 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/old/HomeTrainingService.class b/old/HomeTrainingService.class
new file mode 100644
index 0000000..65f8743
Binary files /dev/null and b/old/HomeTrainingService.class differ
diff --git a/old/HomeTrainingServiceImpl.class b/old/HomeTrainingServiceImpl.class
new file mode 100644
index 0000000..3f5efc4
Binary files /dev/null and b/old/HomeTrainingServiceImpl.class differ
diff --git a/old/Login_SQL.xml b/old/Login_SQL.xml
new file mode 100644
index 0000000..eca19d6
--- /dev/null
+++ b/old/Login_SQL.xml
@@ -0,0 +1,42 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/old/MainController.class b/old/MainController.class
new file mode 100644
index 0000000..1e60865
Binary files /dev/null and b/old/MainController.class differ
diff --git a/old/MyUtil.class b/old/MyUtil.class
new file mode 100644
index 0000000..b7cc487
Binary files /dev/null and b/old/MyUtil.class differ
diff --git a/old/action-servlet.xml b/old/action-servlet.xml
new file mode 100644
index 0000000..9fe211d
--- /dev/null
+++ b/old/action-servlet.xml
@@ -0,0 +1,88 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ geoinfo.**.service
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ /WEB-INF/tiles/tiles-layout.xml
+
+
+
+
+
+
\ No newline at end of file
diff --git a/old/add.png b/old/add.png
new file mode 100644
index 0000000..392fe0d
Binary files /dev/null and b/old/add.png differ
diff --git a/old/arrow-right.png b/old/arrow-right.png
new file mode 100644
index 0000000..b887d35
Binary files /dev/null and b/old/arrow-right.png differ
diff --git a/old/chevron.png b/old/chevron.png
new file mode 100644
index 0000000..f80cedb
Binary files /dev/null and b/old/chevron.png differ
diff --git a/old/chevron.svg b/old/chevron.svg
new file mode 100644
index 0000000..c1794ab
--- /dev/null
+++ b/old/chevron.svg
@@ -0,0 +1,3 @@
+
diff --git a/old/delete.png b/old/delete.png
new file mode 100644
index 0000000..0b915d7
Binary files /dev/null and b/old/delete.png differ
diff --git a/old/home-training-approval-system.jsp b/old/home-training-approval-system.jsp
new file mode 100644
index 0000000..f1cad31
--- /dev/null
+++ b/old/home-training-approval-system.jsp
@@ -0,0 +1,23 @@
+<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
+<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
+<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
+<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%>
+
+
+
+
+
+
+
+
+
+
+
+
+ 집합교육 - 집합교육 신청 승인
+
+
+
+
diff --git a/old/home-training-index.jsp b/old/home-training-index.jsp
new file mode 100644
index 0000000..1cce9ed
--- /dev/null
+++ b/old/home-training-index.jsp
@@ -0,0 +1,540 @@
+<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
+<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
+<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
+<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%>
+
+
+
+
+
+
+
+
+
+
+
+
+ 집합교육
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ |
+ 번호 |
+ 집합교육명 |
+ 교육일시 |
+ 교육장소 |
+ 접수기간 |
+ 신청 |
+
+
+
+
+
+
+
+
+
+
+
+
+
+
교육 대상자 명단
+
⁕ 신청 집합교육명 :
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ | 신청자 |
+ 소속기관 |
+ 부서 |
+ 직급 |
+ 연락처 |
+ 이메일 |
+ 비고 |
+
+
+
+
+
+
+
+
+
diff --git a/old/json-simple-1.1.1.jar b/old/json-simple-1.1.1.jar
new file mode 100644
index 0000000..dfd5856
Binary files /dev/null and b/old/json-simple-1.1.1.jar differ
diff --git a/old/left.jsp b/old/left.jsp
new file mode 100644
index 0000000..8b61aab
--- /dev/null
+++ b/old/left.jsp
@@ -0,0 +1,195 @@
+<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
+<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
+<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
+<%@ taglib prefix="fn" uri = "http://java.sun.com/jsp/jstl/functions" %>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+  |
+
+
+
+
+
+
+
+
+
+
+
+
+ |
+
+
+
+
+
+
+
+
+
+
+
+
+ |
+
+
+
+
+
+
+
+
+
+
+
+
+ |
+
+
+
+
+
+
+
+
+
+
+
+
+ |
+
+
+
+
+
+
+
+
+
+
+
+ |
+
+
+
+
+
+
+
+
+
+
+
+ |
+
+
+
+
+
+
+
+
+
+
+
+ |
+
+
+ |
+
+ |
+
+
+ |
+
+ |
+
+
+
+ |
+
+
+
+
+
+
+
diff --git a/old/main.jsp b/old/main.jsp
new file mode 100644
index 0000000..1cd36d5
--- /dev/null
+++ b/old/main.jsp
@@ -0,0 +1,173 @@
+<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
+<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
+<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
+
+
+
+국토지반정보 포털 관리시스템
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ |
+  |
+
+
+
+ |
+
+
+
+
+
+
+ |
+
+ |
+ |
+
+
+
+
+
+ |
+
+
+ |
+
+
+
+
+
+
+
+  |
+
+
+ |
+
+
+
+
+
+
+
+<%--
+
+ 승인 대기 건
+
+
+ 승인 대기 0건
+
+ --%>
+
+
diff --git a/old/mainframe.jsp b/old/mainframe.jsp
new file mode 100644
index 0000000..f966a6b
--- /dev/null
+++ b/old/mainframe.jsp
@@ -0,0 +1,22 @@
+<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/old/minus.png b/old/minus.png
new file mode 100644
index 0000000..e9f5eff
Binary files /dev/null and b/old/minus.png differ
diff --git a/old/style.css b/old/style.css
new file mode 100644
index 0000000..3be7f8f
--- /dev/null
+++ b/old/style.css
@@ -0,0 +1,782 @@
+@charset "UTF-8";
+/* 기본 */
+img {
+ border: 0;
+}
+
+body {
+ margin-left: 16;
+ margin-top: 20;
+ margin-right: 16;
+ margin-bottom: 0;
+ scrollbar-face-color: #FFFFFF;
+ scrollbar-shadow-color: #A0A0A0;
+ scrollbar-highlight-color: #FFFFFF;
+ scrollbar-3dlight-color: #A0A0A0;
+ scrollbar-darkshadow-color: #F6F6F6;
+ scrollbar-track-color: #F6F6F6;
+ scrollbar-arrow-color: #A0A0A0;
+}
+
+/* 페이지 네비게이션 */
+.navi_cur {
+ font-family: "굴림체";
+ font-size: 9pt;
+ color: #3F3F3F;
+ line-height: 150%;
+ font-weight: bold;
+}
+
+a.navi:link {
+ font-family: "굴림체";
+ font-size: 9pt;
+ color: #3F3F3F;
+ text-decoration: none;
+ line-height: 150%;
+}
+
+a.navi:visited {
+ font-family: "굴림체";
+ font-size: 9pt;
+ color: #3F3F3F;
+ text-decoration: none;
+ line-height: 150%;
+}
+
+a.navi:hover {
+ font-family: "굴림체";
+ font-size: 9pt;
+ color: #3F3F3F;
+ text-decoration: underline;
+ line-height: 150%;
+}
+
+/* 목록 헤드와 내용 */
+.list_head {
+ font-size: 9pt;
+ font-family: 굴림체;
+ font-weight: bold;
+ line-height: 150%;
+ color: #B64E0F;
+}
+
+.list_head2 {
+ font-size: 9pt;
+ font-family: 굴림체;
+ font-weight: bold;
+ line-height: 150%;
+ color: #1180B5;
+}
+
+.list_head_noti {
+ font-size: 9pt;
+ font-family: 굴림체;
+ font-weight: bold;
+ line-height: 150%;
+ color: #B64E0F;
+}
+
+.list_content {
+ font-size: 9pt;
+ font-family: 굴림체;
+ line-height: 150%;
+ color: #525252;
+}
+
+/* search */
+.search {
+ font-size: 9pt;
+ color: #545454;
+}
+
+.search1 {
+ font-size: 9pt;
+ color: #545454;
+}
+
+.date_search {
+ font-size: 9pt;
+ font-weight: bold;
+ color: #545454;
+}
+
+/* 폼 */
+Select {
+ font-size: 9pt;
+}
+
+input {
+ font-size: 9pt;
+}
+
+.write {
+ background-color: #FFFFFF;
+ border-color: #C5C5C5;
+ border-width: 1px;
+ border-style: solid;
+ font-size: 10pt;
+}
+
+.input {
+ font-size: 9pt;
+ border: 1x solid #C8D0D5;
+ text-align: left;
+ color: #333333;
+}
+
+.input1 {
+ font-size: 9pt;
+ border: 1x solid #8C8C8C;
+}
+
+.input2 {
+ font-size: 9pt;
+ border: 1x solid #D1DEDE;
+ text-align: justify;
+ padding-right: 3px;
+ background-color: #F4F7F7;
+ height: 17px;
+ padding-left: 3px;
+}
+
+.input3 {
+ font-size: 9pt;
+ border: 1x solid #8C8C8C;
+ text-align: center;
+ padding-top: 2px;
+}
+
+Input.search {
+ background-color: #F9F9F9;
+ border-color: #C5C5C5;
+ border-width: 1px;
+ border-style: solid;
+ font-size: 10pt;
+}
+
+/* 일반 */
+a:link {
+ font-family: "굴림체";
+ font-size: 9pt;
+ color: #525252;
+ text-decoration: none;
+ line-height: 150%;
+}
+
+a:visited {
+ font-family: "굴림체";
+ font-size: 9pt;
+ color: #525252;
+ text-decoration: none;
+ line-height: 150%;
+}
+
+a:hover {
+ font-family: "굴림체";
+ font-size: 9pt;
+ color: #FF8000;
+ text-decoration: underline;
+ line-height: 150%;
+}
+
+/* FAQ */
+.faq_q {
+ font-size: 9pt;
+ line-height: 150%;
+ color: #1F177C;
+ font-weight: bold;
+}
+
+.faq_a {
+ font-size: 9pt;
+ line-height: 150%;
+ color: #1F177C;
+}
+
+/* QnA */
+.qna_head {
+ font-size: 9pt;
+ font-family: 굴림체;
+ font-weight: bold;
+ line-height: 150%;
+ color: #939393;
+}
+
+.qna_content {
+ font-size: 9pt;
+ font-family: 굴림체;
+ line-height: 150%;
+ color: #939393;
+ padding-left: 5px;
+ padding-right: 5px;
+}
+
+.qna_contentH {
+ font-size: 9pt;
+ font-family: 굴림체;
+ line-height: 150%;
+ color: #939393;
+ padding: 5px;
+}
+
+.qna_reply {
+ font-size: 9pt;
+ font-family: 굴림체;
+ line-height: 120%;
+ color: #3F83FF;
+ padding-left: 5px;
+ padding-right: 5px;
+}
+
+.qna_reply_gray {
+ font-size: 9pt;
+ font-family: 굴림체;
+ line-height: 150%;
+ color: #939393;
+}
+
+/* 팝업타이틀, 입력창(input, select) 추가 2017.08.01 */
+.pop_title {
+ height: 20px;
+ border-bottom: 1px solid #31b0e5;
+ background: url("../../images/admins/bullet03.png") 10px 10px no-repeat;
+ padding: 7px 0 7px 27px;
+ font-size: 14px;
+ font-family: 굴림체;
+ font-weight: bold;
+ line-height: 150%;
+ color: #1180B5;
+}
+
+.input_txt {
+ padding: 3px;
+ border: 1px solid #ccc;
+ border-radius: 3px;
+ color: #666;
+ font-size: 12px;
+}
+
+/* 2023.10.11 LHJ 게시판 제목에서 길이 초과된 뒷부분 생략 추가 */
+#Table_List {
+ table-layout: fixed;
+}
+
+#Table_List td {
+ text-overflow: ellipsis;
+ white-space: nowrap;
+ overflow: hidden;
+}
+
+/* 2023.10.23 LHJ 팝업 미리보기 화면 추가 */
+.popup_noti {
+ width: 500px;
+ height: 600px;
+ display: flex;
+ flex-direction: column;
+ position: relative;
+}
+
+.bg_noti:nth-child(1) {
+ flex-grow: 2.5;
+ background-color: #FFCCB3;
+}
+
+.bg_noti:nth-child(2) {
+ flex-grow: 1.5;
+ background-color: #FFF2D0;
+}
+
+.bg_noti:nth-child(3) {
+ flex-grow: 6;
+ background-color: #DCF1EA;
+}
+
+.bg_white {
+ position: absolute;
+ top: 10%;
+ left: 7%;
+ right: 7%;
+ bottom: 5%;
+ background-color: white;
+ border: 1px solid black;
+}
+
+.subject_noti {
+ position: absolute;
+ top: 10%;
+ left: 7%;
+ right: 7%;
+ font-family: "NanumGothicB";
+ font-weight: bold;
+ font-size: 15pt;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ display: -webkit-box;
+ -webkit-line-clamp: 2;
+ -webkit-box-orient: vertical;
+}
+
+.contents_noti pre {
+ display: block;
+ padding: inherit;
+ margin: inherit;
+ font-size: inherit;
+ line-height: inherit;
+ color: inherit;
+ word-break: break-all;
+ word-wrap: break-word;
+ white-space: pre-wrap;
+ background-color: inherit;
+ border: inherit;
+ border-radius: inherit;
+ font-family: inherit;
+}
+
+.contents_noti {
+ position: absolute;
+ top: 27%;
+ left: 7%;
+ right: 7%;
+ bottom: 5%;
+ font-family: "Nanum Gothic";
+ font-size: 9pt;
+ overflow-y: auto;
+ text-overflow: ellipsis;
+ display: -webkit-box;
+ -webkit-line-clamp: 10;
+ -webkit-box-orient: vertical;
+}
+
+.menu-item {
+ padding: 0px 5px;
+ width: 230px;
+ text-align: center;
+ margin-bottom: 9px;
+}
+.menu-item span {
+ box-sizing: border-box;
+ display: inline-block;
+ width: 220px;
+ padding: 5px 20px;
+ padding-left: 31px;
+ box-shadow: inset 2px 2px 6px #b7b7b7;
+ border-radius: 20px;
+ text-align: left;
+ background: #ffffff;
+ color: #888888;
+ font-size: 14px;
+ font-weight: 600;
+ margin-left: 4px;
+}
+.menu-item .sub-menu {
+ display: none;
+}
+.menu-item.active {
+ margin-bottom: 3px;
+}
+.menu-item.active span {
+ color: #2b85c6;
+}
+.menu-item.active .sub-menu {
+ display: block;
+ margin: 0px;
+ margin-top: 3px;
+ padding: 0px;
+ text-align: right;
+}
+.menu-item.active .sub-menu .sub-menu-item {
+ box-sizing: border-box;
+ display: inline-block;
+ width: 180px;
+ padding: 5px 20px;
+ padding-left: 31px;
+ box-shadow: inset 2px 2px 6px #b7b7b7;
+ border-radius: 20px;
+ text-align: left;
+ background: #ffffff;
+ color: #888888;
+ font-size: 14px;
+ font-weight: 600;
+ margin-left: 4px;
+ margin-right: 4px;
+ margin-bottom: 3px;
+ cursor: pointer;
+}
+.menu-item.active .sub-menu .sub-menu-item.active {
+ color: #2b85c6;
+}
+
+.main-title {
+ font-size: 20px;
+}
+
+.sub-title {
+ font-size: 20px;
+ color: #df8107;
+}
+
+.home-trainning {
+ width: 100%;
+ max-width: 1600px;
+ position: relative;
+ /* 신청인정보 */
+}
+.home-trainning th,
+.home-trainning tr {
+ height: 36px;
+}
+.home-trainning .contentBtn {
+ display: flex;
+ gap: 10px;
+ justify-content: end;
+ margin: 10px 0;
+}
+.home-trainning button {
+ background-color: #007BFF;
+ color: #fff;
+ border-radius: 6px;
+ border: none;
+ padding: 5px 10px;
+}
+.home-trainning .Table_Main {
+ width: 100%;
+ max-width: 1600px;
+ border: 1px solid #e9e9e9;
+ text-align: center;
+}
+.home-trainning .Table_Main.course-list-table tbody tr {
+ cursor: pointer;
+}
+.home-trainning .Table_Main.course-list-table tbody tr:hover {
+ background: #f1f1f1;
+}
+.home-trainning .Table_Main.new-course-creation-table {
+ margin-bottom: 50px;
+}
+.home-trainning .Table_Main.new-course-creation-table .new-course-creation-tbody tr td input {
+ width: 100%;
+ height: 100%;
+ height: 35px;
+ border: none;
+ padding: 0px 5px;
+ font-size: 14px;
+}
+.home-trainning .Table_Main.new-course-creation-table .new-course-creation-tbody tr td input.reg-start-end-date {
+ width: 40%;
+ padding: 0px;
+}
+.home-trainning .Table_List {
+ background: #e9eff4;
+}
+.home-trainning .application {
+ width: 60px;
+ padding: 5px;
+ background: #E9F0F5;
+ border-radius: 6px;
+ border: none;
+ font-weight: 600;
+ font-size: 12px;
+}
+.home-trainning .applicationEnd {
+ color: red;
+}
+.home-trainning .home-visit-item {
+ display: none;
+}
+.home-trainning #UserDate {
+ margin: 25px 0;
+ display: none;
+}
+.home-trainning .DateTitle {
+ font-size: 18px;
+ font-weight: 700;
+ line-height: 18px;
+ display: inline-block;
+ margin-right: 20px;
+}
+.home-trainning .AddBtn {
+ display: block;
+ margin: 30px auto;
+ padding: 10px 20px;
+ background-color: #007BFF;
+ color: white;
+ border: none;
+ border-radius: 5px;
+ cursor: pointer;
+}
+.home-trainning button:hover {
+ background-color: #0056b3;
+}
+.home-trainning #ContentAdd {
+ display: none;
+}
+.home-trainning .DateTitle {
+ font-size: 18px;
+ font-weight: 700;
+ line-height: 18px;
+ display: inline-block;
+ margin-right: 20px;
+}
+.home-trainning .DateText {
+ font-size: 15px;
+ font-weight: 400;
+ line-height: 12px;
+ align-items: center;
+}
+.home-trainning .DateText .home-visit-item-training-name {
+ font-weight: 600;
+}
+
+.visit-trainning {
+ /* 기본 레이아웃 설정 */
+ /* 캘린더 CSS */
+ /* Form css */
+ /* 관리자용 css */
+}
+.visit-trainning .page-content-wrapper {
+ display: inline-block;
+ width: auto;
+ margin: 0 auto;
+}
+.visit-trainning .page-sidebar-wrapper {
+ float: left;
+ width: 222px;
+ height: 1000px;
+}
+.visit-trainning .page-content {
+ width: 100%;
+}
+.visit-trainning .content-bg {
+ background-color: #e9eff4;
+ padding: 30px;
+}
+.visit-trainning .CalendarOverlay {
+ display: inline-flex;
+}
+.visit-trainning .Calendar {
+ padding: 30px;
+ background: white;
+ border-radius: 16px;
+ flex-direction: column;
+ justify-content: flex-start;
+ align-items: flex-start;
+ gap: 12px;
+ display: flex;
+}
+.visit-trainning .Header {
+ align-self: stretch;
+ justify-content: space-between;
+ align-items: center;
+ display: inline-flex;
+}
+.visit-trainning .yyyy-mm {
+ color: black;
+ font-size: 24px;
+ font-family: Inter;
+ font-weight: 900;
+ word-wrap: break-word;
+}
+.visit-trainning .Frame9 {
+ justify-content: flex-start;
+ align-items: flex-start;
+ gap: 12px;
+ display: flex;
+}
+.visit-trainning .Chevron {
+ padding: 8px;
+ justify-content: flex-start;
+ align-items: flex-start;
+ gap: 10px;
+ display: flex;
+}
+.visit-trainning .page-prev {
+ margin-top: 3px;
+ width: 26px;
+ height: 26px;
+ transform: rotate(90deg);
+}
+.visit-trainning .page-next {
+ margin-top: 3px;
+ width: 26px;
+ height: 26px;
+ transform: rotate(-90deg);
+}
+.visit-trainning .month {
+ margin: 0px auto;
+}
+.visit-trainning .month .Days {
+ flex-direction: column;
+ justify-content: flex-start;
+ align-items: center;
+ display: flex;
+}
+.visit-trainning .month .Row {
+ justify-content: flex-start;
+ align-items: center;
+ display: flex;
+}
+.visit-trainning .month .Cell {
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ width: 64px;
+ height: 64px;
+ padding: 10px;
+ box-sizing: border-box;
+ padding: 20px;
+}
+.visit-trainning .month .Cell:hover {
+ background-color: #e9eff4;
+}
+.visit-trainning .month .Day {
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ width: 64px;
+ height: 64px;
+ padding: 10px;
+ border: 1px solid #D5D4DF;
+ box-sizing: border-box;
+ padding: 20px;
+}
+.visit-trainning .month .Week {
+ width: 24px;
+ height: 24px;
+ text-align: center;
+ color: black;
+ font-size: 14px;
+ font-family: Inter;
+ font-weight: 600;
+ word-wrap: break-word;
+ border: 1px solid #fff;
+}
+.visit-trainning .month .Day {
+ border: 1px #D5D4DF solid;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ font-size: 14px;
+}
+.visit-trainning .month .inactive {
+ width: 64px;
+ height: 64 px;
+ text-align: center;
+ color: #A8A8A8;
+ font-size: 14px;
+ font-family: Inter;
+ font-weight: 400;
+ word-wrap: break-word;
+}
+.visit-trainning .month .Weekdays {
+ width: 24px;
+ height: 24px;
+ text-align: center;
+ color: black;
+ font-size: 14px;
+ font-family: Inter;
+ font-weight: 400;
+ word-wrap: break-word;
+}
+.visit-trainning .month .Su {
+ color: #FF6666;
+}
+.visit-trainning .month .Sa {
+ color: #3378C1;
+}
+.visit-trainning .month .today {
+ background-color: #45539d;
+ font-weight: bold;
+ color: #fff;
+ pointer-events: none;
+}
+.visit-trainning .Application {
+ width: 430px;
+ margin-top: 15px;
+ float: right;
+}
+.visit-trainning .InputBox {
+ width: 342px;
+ height: 34px;
+ background: white;
+ border-radius: 6px;
+ border: 1px solid rgba(66, 80, 102, 0.4);
+}
+.visit-trainning #Agency, .visit-trainning #Place {
+ width: 160px;
+}
+.visit-trainning #Name {
+ width: 91px;
+}
+.visit-trainning #Persons {
+ width: 79px;
+}
+.visit-trainning #Tel, .visit-trainning #Place {
+ margin-left: -13px;
+}
+.visit-trainning #Hope1, .visit-trainning #Hope2, .visit-trainning #Hope3 {
+ width: 342px;
+ margin-left: -20px;
+}
+.visit-trainning label {
+ margin: 0 25px 0 20px;
+ display: inline-block;
+ text-align: left;
+ line-height: 50px;
+ font-size: 14px;
+}
+.visit-trainning .possible {
+ width: 100px;
+ height: 32px;
+ padding: 5px;
+ background: #E9F0F5;
+ border-radius: 6px;
+ border: none;
+}
+.visit-trainning .impossibility {
+ width: 100px;
+ height: 32px;
+ padding: 5px;
+ background: #EAEAEA;
+ border-radius: 6px;
+ border: none;
+}
+
+.visit-trainning-approval-system th,
+.visit-trainning-approval-system tr {
+ height: 36px;
+}
+.visit-trainning-approval-system #Table_Main {
+ width: 1020px;
+ border: 1px solid #e9e9e9;
+ text-align: center;
+}
+.visit-trainning-approval-system .Table_List {
+ background: #e9eff4;
+}
+.visit-trainning-approval-system .caption {
+ font-size: 11px;
+ margin: 10px;
+}
+.visit-trainning-approval-system .HopeDay {
+ color: #2e5aac;
+ bordeR: 1px solid #89a7e0;
+ padding: 5px;
+ background: #fff;
+ border-radius: 2px;
+}
+.visit-trainning-approval-system .cancel {
+ border: 1px solid red;
+ color: red;
+ border-radius: 2px;
+ padding: 4px 8px;
+ background-color: #fff;
+}
+.visit-trainning-approval-system .HopeDay.clicked {
+ background-color: #89a7e0;
+ color: white;
+}
+.visit-trainning-approval-system .statusConfirmed {
+ color: #2e5aac;
+}
+
+/*# sourceMappingURL=style.css.map */
diff --git a/old/style.css.map b/old/style.css.map
new file mode 100644
index 0000000..53162a0
--- /dev/null
+++ b/old/style.css.map
@@ -0,0 +1 @@
+{"version":3,"sourceRoot":"","sources":["sass/style.scss"],"names":[],"mappings":";AAAA;AACA;EAAM;;;AACN;EAEC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGD;AACA;EAAY;EAAoB;EAAiB;EAAgB;EAAkB;;;AACnF;EAAc;EAAoB;EAAiB;EAAgB;EAAuB;;;AAC1F;EAAgB;EAAoB;EAAiB;EAAgB;EAAuB;;;AAC5F;EAAc;EAAoB;EAAiB;EAAgB;EAA4B;;;AAE/F;AACA;EAAe;EAAe;EAAkB;EAAkB;EAAkB;;;AACpF;EAAe;EAAe;EAAkB;EAAkB;EAAkB;;;AACpF;EAAkB;EAAe;EAAkB;EAAkB;EAAkB;;;AACvF;EAAiB;EAAe;EAAkB;EAAkB;;;AAEpE;AACA;EAAY;EAAe;;;AAC3B;EAAY;EAAe;;;AAC3B;EAAe;EAAe;EAAkB;;;AAEhD;AACA;EAAY;;;AACZ;EAAU;;;AACV;EAAY;EAA0B;EAAsB;EAAkB;EAAoB;;;AAClG;EAAW;EAAe;EAA0B;EAAkB;;;AACtE;EAAW;EAAe;;;AAC1B;EAAW;EAAe;EAAyB;EAAqB;EAAoB;EAA2B;EAAc;;;AACrI;EAAW;EAAe;EAAyB;EAAoB;;;AACvE;EAAe;EAA0B;EAAsB;EAAkB;EAAoB;;;AAErG;AACA;EAAU;EAAoB;EAAgB;EAAgB;EAAuB;;;AACrF;EAAY;EAAoB;EAAgB;EAAgB;EAAuB;;;AACvF;EAAW;EAAoB;EAAgB;EAAgB;EAA4B;;;AAE3F;AACA;EAAY;EAAe;EAAkB;EAAe;;;AAC5D;EAAW;EAAe;EAAkB;;;AAG5C;AACA;EAAc;EAAe;EAAkB;EAAkB;EAAkB;;;AACnF;EAAgB;EAAe;EAAkB;EAAkB;EAAe;EAAkB;;;AACpG;EAAiB;EAAe;EAAkB;EAAkB;EAAe;;;AACnF;EAAe;EAAe;EAAkB;EAAkB;EAAe;EAAkB;;;AACnG;EAAkB;EAAe;EAAkB;EAAkB;;;AAErE;AACA;EAAa;EAAa;EAAiC;EAAwE;EAAwB;EAAiB;EAAkB;EAAkB;EAAkB;;;AAClO;EAAY;EAAa;EAAuB;EAAmB;EAAY;;;AAE/E;AACA;EAAa;;;AACb;EAAgB;EAAyB;EAAqB;;;AAE9D;AACA;EACI;EACH;EACG;EACA;EACA;;;AAEJ;EACI;EACA;;;AAEJ;EACI;EACA;;;AAEJ;EACI;EACA;;;AAEJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;;;AAEJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACC;EACA;EACA;EACA;EACA;;;AAEL;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAED;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGJ;EACI;EACA;EACA;EACA;;AACA;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGJ;EACI;;AAEJ;EACI;;AACA;EACI;;AAEJ;EACI;EACA;EACA;EACA;EACA;;AACA;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AACA;EACI;;;AAOpB;EACI;;;AAEJ;EACI;EACA;;;AAGJ;EACI;EACA;EACA;AAwEA;;AAvEA;AAAA;EAEI;;AAEJ;EACI;EACA;EACA;EACA;;AAEJ;EACI;EACA;EACA;EACA;EACA;;AAEJ;EACI;EACA;EACA;EACA;;AAGQ;EACI;;AACA;EACI;;AAOhB;EACI;;AAIY;EACI;EACA;EACA;EACA;EACA;EACA;;AACA;EACI;EACA;;AAQ5B;EACI;;AAEJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;;AAEJ;EACI;;AAIJ;EACI;;AAEJ;EACI;EACA;;AAEJ;EACI;EACA;EACA;EACA;EACA;;AAEJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGJ;EACI;;AAEJ;EACI;;AAGJ;EACI;EACA;EACA;EACA;EACA;;AAGJ;EACI;EACA;EACA;EACA;;AACA;EACI;;;AAMZ;AACI;AAmBA;AA8IA;AAsCA;;AAtMA;EACI;EACA;EACA;;AAEJ;EACI;EACA;EACA;;AAEJ;EACI;;AAEJ;EACI;EACA;;AAIJ;EACI;;AAEJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEJ;EACI;EACA;EACA;EACA;;AAEJ;EACI;EACA;EACA;EACA;EACA;;AAEJ;EACI;EACA;EACA;EACA;;AAEJ;EACK;EACA;EACA;EACA;EACA;;AAEL;EACI;EACA;EACA;EACA;;AAEJ;EACI;EACA;EACA;EACA;;AAEJ;EACI;;AACA;EACI;EACA;EACA;EACA;;AAEJ;EACG;EACA;EACA;;AAEH;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEJ;EACI;;AAGJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEJ;EACG;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEH;EACI;EACA;EACA;EACA;EACA;;AAEJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEJ;EACI;;AAEJ;EACI;;AAEJ;EACI;EACA;EACA;EACA;;AAKR;EACI;EACA;EACA;;AAEJ;EACI;EACC;EACA;EACA;EACA;;AAEL;EACI;;AAEJ;EACI;;AAEJ;EACI;;AAEJ;EACI;;AAEJ;EACI;EACC;;AAGL;EACI;EACC;EACA;EACA;EACA;;AAKL;EACI;EACA;EACA;EACA;EACA;EACA;;AAEJ;EACK;EACD;EACA;EACA;EACA;EACA;;;AAMJ;AAAA;EAEI;;AAEJ;EACI;EACA;EACA;;AAEJ;EACI;;AAEJ;EACG;EACC;;AAIJ;EACI;EACA;EACA;EACA;EACA;;AAEJ;EACI;EACA;EACA;EACA;EACA;;AAGJ;EACI;EACA;;AAEJ;EACG","file":"style.css"}
\ No newline at end of file
diff --git a/old/visit-training-approval-system.jsp b/old/visit-training-approval-system.jsp
new file mode 100644
index 0000000..e2afa19
--- /dev/null
+++ b/old/visit-training-approval-system.jsp
@@ -0,0 +1,120 @@
+<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
+<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
+<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
+<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%>
+
+
+
+
+
+
+
+
+
+
+
+
+ 방문교육 - 방문교육 신청 승인
+
+
+
본 방문교육 신청 후 교육일정이 확정되기 전까지 변경 및 취소가 가능하며 일자 확정시 변경 및 취소는 불가하며, 확정일자를 클릭하여 공문 스캔본과 함께 신청서를
+ 이메일(ryujisong@kict.re.kr)로
+ 접수하셔야 합니다.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ | 번호 |
+ 현장명 |
+ 기관명 |
+ 신청자 |
+ 연락처 |
+ 이메일 |
+ 예상인원 |
+ 1차희망일 |
+ 2차희망일 |
+ 3차희망일 |
+ 상태 |
+
+
+
+
+ | 3 |
+ 용산구 재개발 |
+ 디비엔텍 |
+ 홍길동 |
+ 032-721-5678 |
+ aaa@naver.com |
+ 25명 |
+ |
+ |
+ |
+ |
+
+
+ | 2 |
+ 로봇타워 신축공사 |
+ 디비엔텍 |
+ 홍길동 |
+ 032-721-5678 |
+ aaa@naver.com |
+ 30명 |
+ |
+ |
+ |
+ |
+
+
+ | 1 |
+ 인천항만 부두 확장 공사 |
+ 디비엔텍 |
+ 홍길동 |
+ 032-721-5678 |
+ aaa@naver.com |
+ 40명 |
+ |
+ |
+ |
+ |
+
+
+
+
+
+
diff --git a/old/visit-training-index.jsp b/old/visit-training-index.jsp
new file mode 100644
index 0000000..1f1b83a
--- /dev/null
+++ b/old/visit-training-index.jsp
@@ -0,0 +1,241 @@
+<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
+<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
+<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
+<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%>
+
+
+
+
+
+
+
+
+
+
+
+
+ 방문교육 - 방문가능 일자 지정
+
+
+
+
diff --git a/open_builded.bat b/open_builded.bat
index b8a52e3..e32afe9 100644
--- a/open_builded.bat
+++ b/open_builded.bat
@@ -1 +1,10 @@
explorer C:\Users\dbnt\eclipse-workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\geoinfo_admin
+
+
+rem For 192.168.10.20
+hostname | find "DESKTOP-9C42CR8" > nul
+if %errorlevel% == 0 (
+explorer D:\app_geoinfo\app\eclipse\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\old-geoinfo-or-kr-admin
+) else (
+ echo goodbye
+)
diff --git a/open_css.bat b/open_css.bat
new file mode 100644
index 0000000..b3ba9d3
--- /dev/null
+++ b/open_css.bat
@@ -0,0 +1 @@
+explorer src\main\webapp\css\admins\sass\
\ No newline at end of file
diff --git a/src/main/java/geoinfo/admins/main/MainController.java b/src/main/java/geoinfo/admins/main/MainController.java
index 0fe7c92..66caa3c 100644
--- a/src/main/java/geoinfo/admins/main/MainController.java
+++ b/src/main/java/geoinfo/admins/main/MainController.java
@@ -105,13 +105,13 @@ public class MainController {
params.put("id", id);
params.put("ipAdd", ipAdd);
-/*
- String strAccessAllows =
- "[" +
- "{\"ip\":\"218.49.16.78\", \"id\":\"admin_user\"}, " +
+/*
+ String strAccessAllows =
+ "[" +
+ "{\"ip\":\"218.49.16.78\", \"id\":\"admin_user\"}, " +
"{\"ip\":\"0:0:0:0:0:0:0:1\", \"id\":\"admin_user\"}, "+
- "{\"ip\":\"218.49.21.65\",\"id\":\"admin_user\"}, " +
- "{\"ip\":\"218.49.21.65\",\"id\":\"sogone\"}, " +
+ "{\"ip\":\"218.49.21.65\",\"id\":\"admin_user\"}, " +
+ "{\"ip\":\"218.49.21.65\",\"id\":\"sogone\"}, " +
"{\"ip\":\"218.232.234.161\",\"id\":\"admin_user\"} " +
"]";
@@ -169,7 +169,7 @@ public class MainController {
boolean isAuth = false;
boolean encryptChange = true;
boolean loginSuccess = false;
-
+
String encryptChk = mainService.encryptChk(params);
if (encryptChk == null || ("").equals(encryptChk)) {
@@ -188,7 +188,10 @@ public class MainController {
if( getMemberInfo != null && getMemberInfo.get("cls") != null) {
System.out.println("mainService.getMemberInfo - 후:" + getMemberInfo.get("cls").toString() + "- IP:" + ipAdd);
} else {
- System.out.println("mainService.getMemberInfo - 후: getMemberInfo.get(\"cls\") is null - IP:" + ipAdd);
+ System.out.println("mainService.getMemberInfo - 후: getMemberInfo.get(\"cls\") is null - \n" +
+ "ID:[" + params.get("id") == null ? "null" : params.get("id") + "] " + "\n" +
+ "Password:[" + params.get("pw") == null ? "null" : params.get("pw") + "] " + "\n" +
+ "IP:" + ipAdd);
}
} else {
System.out.println("mainService.getMemberInfo - 후: null - IP:" + ipAdd);
@@ -201,12 +204,13 @@ public class MainController {
if(ip.equals(ipAdd)) {
isAuth = true;
System.out.println("관리자 접속을 허용합니다:" + ipAdd);
+ break;
}
}
- if(isAuth) {
+ if(isAuth) {
loginSuccess = true;
UserInfo.setSession(request, id.trim(), getMemberInfo.get("userName").toString(), "", "admin");
-
+
if (!encryptChange) {
params.put("pw", admin_passwd);
mainService.updateEncrypt(params);
@@ -215,7 +219,7 @@ public class MainController {
}
}
}
-
+
System.out.println("관리자 isAuth:" + isAuth);
System.out.println("관리자 loginSuccess:" + loginSuccess);
diff --git a/src/main/java/geoinfo/admins/user/GeneralUserMngController.java b/src/main/java/geoinfo/admins/user/GeneralUserMngController.java
index f8fab44..1f6a7d0 100644
--- a/src/main/java/geoinfo/admins/user/GeneralUserMngController.java
+++ b/src/main/java/geoinfo/admins/user/GeneralUserMngController.java
@@ -71,8 +71,8 @@ public class GeneralUserMngController {
@Resource(name = "homeTrainingService")
private HomeTrainingService homeTrainingService;
-
-
+
+
private static final Logger LOGGER = Logger.getLogger(RefrncRoomController.class.getName());
// 운영서버 경로
@@ -628,7 +628,7 @@ public class GeneralUserMngController {
model.addAttribute("jsonView", jsonMap); // JSON으로 리턴하기 위해서는 모델키를 'jsonView'로 지정해야함
return model;
}
-
+
/**
* 집합교육 화면
* @param params
@@ -648,7 +648,7 @@ public class GeneralUserMngController {
model.addAttribute("params", params);
return "admins/user/home-training-index";
}
-
+
/**
* 집합교육 추가
* @param request
@@ -662,17 +662,17 @@ public class GeneralUserMngController {
HttpServletRequest request,
@RequestBody String strJSON,
HttpServletResponse response) {
-
-
+
+
JSONObject jsonResponse = new JSONObject();
-
+
System.out.println(
"\n--------------------------------------------------------------\n" +
request.getRequestURI() + " IN:" +
"\n--------------------------------------------------------------\n" +
"strJSON" + strJSON + "\n" +
"\n--------------------------------------------------------------\n"
- );
+ );
JSONParser jsonParser = new JSONParser();
JSONArray jsonArr = null;
boolean isFail = false;
@@ -681,7 +681,7 @@ public class GeneralUserMngController {
jsonArr = (JSONArray)jsonParser.parse(strJSON);
for (Object obj : jsonArr) {
JSONObject jsonObject = (JSONObject) obj;
-
+
// JSONObject를 HashMap으로 변환
HashMap params = new HashMap<>();
for (Object key : jsonObject.keySet()) {
@@ -695,7 +695,7 @@ public class GeneralUserMngController {
String lpszRetMsg = MyUtil.getStringFromObject(hashMap.get("p_err_msg"));
long lWvtRegId = MyUtil.getLongFromObject(hashMap.get("p_wvt_reg_id"));
-
+
if( nRetCode == 100 ) {
jsonResponse.put("resultCode", nRetCode);
jsonResponse.put("result", "true");
@@ -706,15 +706,15 @@ public class GeneralUserMngController {
"사업명: " + params.get("constName");
}
jsonResponse.put("resultCode", nRetCode);
- jsonResponse.put("result", "false");
+ jsonResponse.put("result", "false");
jsonResponse.put("message", lpszRetMsg);
-
- isFail = true;
+
+ isFail = true;
failMsg = lpszRetMsg;
break;
}
-
- } catch (Exception e) {
+
+ } catch (Exception e) {
// TODO Auto-generated catch block
String strTxt =
"---------- BUG REPORTING START ----------" + "\n" +
@@ -730,18 +730,18 @@ public class GeneralUserMngController {
jsonResponse.put("message", e.getMessage());
}
}
-
+
} catch (org.json.simple.parser.ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
-
+
if( isFail ) {
jsonResponse.put("resultCode", -2);
jsonResponse.put("result", "false");
- jsonResponse.put("message", failMsg);
+ jsonResponse.put("message", failMsg);
}
-
+
System.out.println("\n--------------------------------------------------------------\n" +
request.getRequestURI() + " OUT:" +
"\n--------------------------------------------------------------\n" +
@@ -750,17 +750,117 @@ public class GeneralUserMngController {
return jsonResponse;
}
-
+
+ /**
+ * 집합교육 수정
+ * @param request
+ * @param strJSON
+ * @param response
+ * @return
+ */
+ @RequestMapping(value = "admins/user/home-training-index/update.do", method = RequestMethod.POST)
+ @ResponseBody
+ public JSONObject updateHomeTraining(
+ HttpServletRequest request,
+ @RequestBody String strJSON,
+ HttpServletResponse response) {
+
+
+ JSONObject jsonResponse = new JSONObject();
+
+ System.out.println(
+ "\n--------------------------------------------------------------\n" +
+ request.getRequestURI() + " IN:" +
+ "\n--------------------------------------------------------------\n" +
+ "strJSON" + strJSON + "\n" +
+ "\n--------------------------------------------------------------\n"
+ );
+ JSONParser jsonParser = new JSONParser();
+ JSONArray jsonArr = null;
+ boolean isFail = false;
+ String failMsg = "";
+ try {
+ jsonArr = (JSONArray)jsonParser.parse(strJSON);
+ for (Object obj : jsonArr) {
+ JSONObject jsonObject = (JSONObject) obj;
+
+ // JSONObject를 HashMap으로 변환
+ HashMap params = new HashMap<>();
+ for (Object key : jsonObject.keySet()) {
+ String keyStr = (String) key;
+ Object value = jsonObject.get(keyStr);
+ params.put(keyStr, value);
+ }
+ try {
+ HashMap hashMap = homeTrainingService.updateHomeTraining(request, response, params);
+ int nRetCode = MyUtil.getIntegerFromObject(hashMap.get("p_result_code"));
+ String lpszRetMsg = MyUtil.getStringFromObject(hashMap.get("p_err_msg"));
+
+ if( nRetCode == 100 ) {
+ jsonResponse.put("resultCode", nRetCode);
+ jsonResponse.put("result", "true");
+ jsonResponse.put("message", "수정이 완료되었습니다.");
+ } else {
+ if( nRetCode == 11 ) {
+ lpszRetMsg += "\n" +
+ "사업명: " + params.get("constName");
+ }
+ jsonResponse.put("resultCode", nRetCode);
+ jsonResponse.put("result", "false");
+ jsonResponse.put("message", lpszRetMsg);
+
+ isFail = true;
+ failMsg = lpszRetMsg;
+ break;
+ }
+
+ } catch (Exception e) {
+ // TODO Auto-generated catch block
+ String strTxt =
+ "---------- BUG REPORTING START ----------" + "\n" +
+ "에러 문구:[" + request.getRequestURI() + " " + "]" + "\n" +
+ "strJSON:[\n" + strJSON + "\n]\n" +
+ "e.getMessage():[\n" + e.getMessage() + "\n]\n" + "\n" +
+ "new Date().toString():[" + new Date().toString() + "]\n" + "\n" +
+ "---------- BUG REPORTING END ----------" + "\n" +
+ "";
+ System.out.println(strTxt);
+ jsonResponse.put("resultCode", -1);
+ jsonResponse.put("result", "false");
+ jsonResponse.put("message", e.getMessage());
+ }
+ }
+
+ } catch (org.json.simple.parser.ParseException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+
+ if( isFail ) {
+ jsonResponse.put("resultCode", -2);
+ jsonResponse.put("result", "false");
+ jsonResponse.put("message", failMsg);
+ }
+
+ System.out.println("\n--------------------------------------------------------------\n" +
+ request.getRequestURI() + " OUT:" +
+ "\n--------------------------------------------------------------\n" +
+ "jsonResponse.toJSONString():[" + jsonResponse.toJSONString() + "]\n" +
+ "\n--------------------------------------------------------------\n");
+
+ return jsonResponse;
+ }
+
@RequestMapping(value = "admins/user/home-training-index/list.do", method = RequestMethod.GET)
@ResponseBody
public JSONObject getHomeTraining(
HttpServletRequest request,
@RequestParam HashMap params,
HttpServletResponse response) {
-
-
+
+
JSONObject jsonResponse = new JSONObject();
-
+
System.out.println(
"\n--------------------------------------------------------------\n" +
request.getRequestURI() + " IN:" +
@@ -768,15 +868,15 @@ public class GeneralUserMngController {
"params.toString()" + params.toString() + "\n" +
"\n--------------------------------------------------------------\n"
);
-
-
+
+
try {
homeTrainingService.getHomeTraining(request, response, jsonResponse, params);
jsonResponse.put("resultCode", 100);
jsonResponse.put("result", "true");
jsonResponse.put("message", "조회가 완료되었습니다.");
-
- } catch (Exception e) {
+
+ } catch (Exception e) {
// TODO Auto-generated catch block
String strTxt =
"---------- BUG REPORTING START ----------" + "\n" +
@@ -786,19 +886,19 @@ public class GeneralUserMngController {
"---------- BUG REPORTING END ----------" + "\n" +
"";
System.out.println(strTxt);
-
+
String eMsg = e.getMessage();
if( eMsg != null ) {
if( eMsg.equals("로그인이 필요한 서비스입니다.") ) {
jsonResponse.put("resultCode", 401);
}
}
-
+
jsonResponse.put("resultCode", -1);
jsonResponse.put("result", "false");
jsonResponse.put("message", e.getMessage());
}
-
+
System.out.println(
"\n--------------------------------------------------------------\n" +
request.getRequestURI() + " OUT:" +
@@ -809,7 +909,7 @@ public class GeneralUserMngController {
return jsonResponse;
}
-
+
/**
* 특정 집합교육에 참여한 사용자 목록을 조회한다.
* @param request
@@ -823,10 +923,10 @@ public class GeneralUserMngController {
HttpServletRequest request,
@RequestParam HashMap params,
HttpServletResponse response) {
-
-
+
+
JSONObject jsonResponse = new JSONObject();
-
+
System.out.println(
"\n--------------------------------------------------------------\n" +
request.getRequestURI() + " IN:" +
@@ -834,15 +934,15 @@ public class GeneralUserMngController {
"params.toString()" + params.toString() + "\n" +
"\n--------------------------------------------------------------\n"
);
-
-
+
+
try {
homeTrainingService.getHomeTrainingItemList(request, response, jsonResponse, params);
jsonResponse.put("resultCode", 100);
jsonResponse.put("result", "true");
jsonResponse.put("message", "조회가 완료되었습니다.");
-
- } catch (Exception e) {
+
+ } catch (Exception e) {
// TODO Auto-generated catch block
String strTxt =
"---------- BUG REPORTING START ----------" + "\n" +
@@ -856,7 +956,7 @@ public class GeneralUserMngController {
jsonResponse.put("result", "false");
jsonResponse.put("message", e.getMessage());
}
-
+
System.out.println(
"\n--------------------------------------------------------------\n" +
request.getRequestURI() + " OUT:" +
@@ -867,18 +967,18 @@ public class GeneralUserMngController {
return jsonResponse;
}
-
-
+
+
@RequestMapping(value = "admins/user/home-training-index/item/delete.do", method = RequestMethod.POST)
@ResponseBody
public JSONObject deleteHomeTrainingItem(
HttpServletRequest request,
@RequestBody String strJSON,
HttpServletResponse response) {
-
-
+
+
JSONObject jsonResponse = new JSONObject();
-
+
System.out.println(
"\n--------------------------------------------------------------\n" +
request.getRequestURI() + " IN:" +
@@ -886,7 +986,7 @@ public class GeneralUserMngController {
"strJSON" + strJSON + "\n" +
"\n--------------------------------------------------------------\n"
);
-
+
JSONParser jsonParser = new JSONParser();
JSONArray jsonArr = null;
boolean isFail = false;
@@ -895,7 +995,7 @@ public class GeneralUserMngController {
jsonArr = (JSONArray)jsonParser.parse(strJSON);
for (Object obj : jsonArr) {
JSONObject jsonObject = (JSONObject) obj;
-
+
// JSONObject를 HashMap으로 변환
HashMap params = new HashMap<>();
for (Object key : jsonObject.keySet()) {
@@ -907,8 +1007,8 @@ public class GeneralUserMngController {
HashMap hashMap = homeTrainingService.deleteHomeTrainingItem(request, response, params);
int nRetCode = MyUtil.getIntegerFromObject(hashMap.get("p_result_code"));
String lpszRetMsg = MyUtil.getStringFromObject(hashMap.get("p_err_msg"));
-
-
+
+
if( nRetCode == 100 ) {
jsonResponse.put("resultCode", nRetCode);
jsonResponse.put("result", "true");
@@ -919,15 +1019,15 @@ public class GeneralUserMngController {
"사업명: " + params.get("constName");
}
jsonResponse.put("resultCode", nRetCode);
- jsonResponse.put("result", "false");
+ jsonResponse.put("result", "false");
jsonResponse.put("message", lpszRetMsg);
-
- isFail = true;
+
+ isFail = true;
failMsg = lpszRetMsg;
break;
}
-
- } catch (Exception e) {
+
+ } catch (Exception e) {
// TODO Auto-generated catch block
String strTxt =
"---------- BUG REPORTING START ----------" + "\n" +
@@ -943,18 +1043,18 @@ public class GeneralUserMngController {
jsonResponse.put("message", e.getMessage());
}
}
-
+
} catch (org.json.simple.parser.ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
-
+
if( isFail ) {
jsonResponse.put("resultCode", -2);
jsonResponse.put("result", "false");
- jsonResponse.put("message", failMsg);
+ jsonResponse.put("message", failMsg);
}
-
+
System.out.println("\n--------------------------------------------------------------\n" +
request.getRequestURI() + " OUT:" +
"\n--------------------------------------------------------------\n" +
@@ -963,7 +1063,7 @@ public class GeneralUserMngController {
return jsonResponse;
}
-
+
/**
* 집합교육 승인 화면
* @param params
@@ -983,7 +1083,7 @@ public class GeneralUserMngController {
model.addAttribute("params", params);
return "admins/user/home-training-approval-system";
}
-
+
/**
* 방문교육 달력 화면
* @param params
@@ -1003,7 +1103,7 @@ public class GeneralUserMngController {
model.addAttribute("params", params);
return "admins/user/visit-training-index";
}
-
+
/**
* 방문교육 승인 화면
* @param params
diff --git a/src/main/java/geoinfo/admins/user/service/HomeTrainingMapper.java b/src/main/java/geoinfo/admins/user/service/HomeTrainingMapper.java
index 7f4a6b0..e4a3f3a 100644
--- a/src/main/java/geoinfo/admins/user/service/HomeTrainingMapper.java
+++ b/src/main/java/geoinfo/admins/user/service/HomeTrainingMapper.java
@@ -8,12 +8,13 @@ import egovframework.rte.psl.dataaccess.mapper.Mapper;
import egovframework.rte.psl.dataaccess.util.EgovMap;
@Mapper("homeTrainingMapper")
-public interface HomeTrainingMapper {
+public interface HomeTrainingMapper {
public HashMap callSpAddHomeTrainingReg(HashMap params) throws SQLException;
+ public HashMap callSpUdtHomeTrainingReg(HashMap params) throws SQLException;
public List callSpGetHomeTrainingReg(HashMap params) throws SQLException;
public long callSpCntHomeTrainingReg(HashMap params) throws SQLException;
public List callSpGetHomeTrainingReq(HashMap params) throws SQLException;
public long callSpCntHomeTrainingReq(HashMap params) throws SQLException;
public void callSpDelHomeTrainingReg(HashMap params) throws SQLException;
-
+
}
\ No newline at end of file
diff --git a/src/main/java/geoinfo/admins/user/service/HomeTrainingService.java b/src/main/java/geoinfo/admins/user/service/HomeTrainingService.java
index f2b96c5..81c843b 100644
--- a/src/main/java/geoinfo/admins/user/service/HomeTrainingService.java
+++ b/src/main/java/geoinfo/admins/user/service/HomeTrainingService.java
@@ -9,9 +9,10 @@ import org.json.simple.JSONObject;
public interface HomeTrainingService {
HashMap addHomeTraining(HttpServletRequest request, HttpServletResponse response, HashMap params) throws Exception;
+ HashMap updateHomeTraining(HttpServletRequest request, HttpServletResponse response, HashMap params) throws Exception;
void getHomeTraining(HttpServletRequest request, HttpServletResponse response, JSONObject jsonResponse, HashMap params) throws Exception;
void getHomeTrainingItemList(HttpServletRequest request, HttpServletResponse response, JSONObject jsonResponse, HashMap params) throws Exception;
HashMap deleteHomeTrainingItem(HttpServletRequest request, HttpServletResponse response, HashMap params) throws Exception;
-
-
+
+
}
diff --git a/src/main/java/geoinfo/admins/user/service/impl/HomeTrainingServiceImpl.java b/src/main/java/geoinfo/admins/user/service/impl/HomeTrainingServiceImpl.java
index ca8f65a..4a94633 100644
--- a/src/main/java/geoinfo/admins/user/service/impl/HomeTrainingServiceImpl.java
+++ b/src/main/java/geoinfo/admins/user/service/impl/HomeTrainingServiceImpl.java
@@ -28,15 +28,15 @@ import oracle.sql.TIMESTAMP;
public class HomeTrainingServiceImpl implements HomeTrainingService {
@Resource(name="homeTrainingMapper")
- private HomeTrainingMapper homeTrainingMapper;
+ private HomeTrainingMapper homeTrainingMapper;
@Override
public HashMap addHomeTraining(HttpServletRequest request, HttpServletResponse response, HashMap params) throws Exception {
-
+
if (!UserInfo.isValidSession(request, response, "admin")) {
throw new Exception("로그인이 필요한 서비스입니다.");
}
-
+
System.out.println( "thkim test 5");
params.put("trainingAdmin", "류지송");
params.put("trainingTel", "031-995-0934");
@@ -48,26 +48,57 @@ public class HomeTrainingServiceImpl implements HomeTrainingService {
LocalDateTime dateTime = LocalDateTime.parse(str, formatter);
Timestamp timestamp = Timestamp.valueOf(dateTime);
params.put("trainingDatetime", timestamp);
-
+
try {
homeTrainingMapper.callSpAddHomeTrainingReg(params);
return params;
} catch (SQLException e) {
throw new Exception( e.getMessage() );
}
-
+
}
-
-
+
@Override
- public void getHomeTraining(HttpServletRequest request, HttpServletResponse response, JSONObject jsonResponse, HashMap params) throws Exception {
-
+ public HashMap updateHomeTraining(HttpServletRequest request, HttpServletResponse response, HashMap params) throws Exception {
+
if (!UserInfo.isValidSession(request, response, "admin")) {
throw new Exception("로그인이 필요한 서비스입니다.");
}
-
+
+ params.put("trainingAdmin", "류지송");
+ params.put("trainingTel", "031-995-0934");
String userId = (String)request.getSession().getAttribute("admin.userID");
-
+ params.put("userId", userId);
+ String str = MyUtil.getStringFromObject( params.get("trainingDatetime") );
+ // DateTimeFormatter를 사용하여 문자열을 LocalDateTime으로 파싱합니다.
+ DateTimeFormatter formatter = DateTimeFormatter.ISO_LOCAL_DATE_TIME;
+ LocalDateTime dateTime = LocalDateTime.parse(str, formatter);
+ Timestamp timestamp = Timestamp.valueOf(dateTime);
+ params.put("trainingDatetime", timestamp);
+
+
+ params.put("wvtRegId", MyUtil.getLongFromObject( params.get("wvtRegId")) );
+
+
+ try {
+ homeTrainingMapper.callSpUdtHomeTrainingReg(params);
+ return params;
+ } catch (SQLException e) {
+ throw new Exception( e.getMessage() );
+ }
+
+ }
+
+
+ @Override
+ public void getHomeTraining(HttpServletRequest request, HttpServletResponse response, JSONObject jsonResponse, HashMap params) throws Exception {
+
+ if (!UserInfo.isValidSession(request, response, "admin")) {
+ throw new Exception("로그인이 필요한 서비스입니다.");
+ }
+
+ String userId = (String)request.getSession().getAttribute("admin.userID");
+
Enumeration enumeration = request.getSession().getAttributeNames();
// Enumeration을 사용하여 루프 돌기
@@ -75,7 +106,7 @@ public class HomeTrainingServiceImpl implements HomeTrainingService {
String attributeName = enumeration.nextElement();
System.out.println(attributeName);
}
-
+
if ( userId == null ) {
throw new Exception("로그인이 필요한 서비스입니다.");
}
@@ -88,10 +119,10 @@ public class HomeTrainingServiceImpl implements HomeTrainingService {
params.put("stateCode", null); // 상태 코드
params.put("ncount", 100); // 페이지당 한번에 가져올 개수
params.put("npage", 0); // 페이지 번호
-
+
try {
List list = homeTrainingMapper.callSpGetHomeTrainingReg(params);
-
+
List dto = new ArrayList();
for( EgovMap item : list ) {
if( item.get("crtDt") != null ) {
@@ -102,10 +133,10 @@ public class HomeTrainingServiceImpl implements HomeTrainingService {
TIMESTAMP oracleTimestampModDt = (TIMESTAMP) item.get("modDt");
item.put("modDt", new Timestamp(oracleTimestampModDt.timestampValue().getTime()));
}
-
+
dto.add(item);
}
-
+
jsonResponse.put("data", dto);
long count = homeTrainingMapper.callSpCntHomeTrainingReg(params);
jsonResponse.put("count", count);
@@ -113,31 +144,31 @@ public class HomeTrainingServiceImpl implements HomeTrainingService {
} catch (SQLException e) {
throw new Exception( e.getMessage() );
}
-
+
}
-
-
+
+
@Override
public void getHomeTrainingItemList(HttpServletRequest request, HttpServletResponse response, JSONObject jsonResponse, HashMap params) throws Exception {
-
+
if (!UserInfo.isValidSession(request, response, "admin")) {
throw new Exception("로그인이 필요한 서비스입니다.");
}
-
+
String userId = (String)request.getSession().getAttribute("admin.userID");
params.put("userId", userId);
-
+
params.put("wvtId", null);
params.put("companyName", null);
params.put("reqName", null);
- params.put("reqTel", null);
+ params.put("reqTel", null);
params.put("stateCode", null); // 상태 코드
params.put("ncount", 100); // 페이지당 한번에 가져올 개수
params.put("npage", 0); // 페이지 번호
try {
List list = homeTrainingMapper.callSpGetHomeTrainingReq(params);
-
+
List dto = new ArrayList();
for( EgovMap item : list ) {
@@ -152,7 +183,7 @@ public class HomeTrainingServiceImpl implements HomeTrainingService {
dto.add(item);
}
-
+
jsonResponse.put("data", dto);
long count = homeTrainingMapper.callSpCntHomeTrainingReq(params);
jsonResponse.put("count", count);
@@ -160,28 +191,28 @@ public class HomeTrainingServiceImpl implements HomeTrainingService {
} catch (SQLException e) {
throw new Exception( e.getMessage() );
}
-
+
}
@Override
public HashMap deleteHomeTrainingItem(HttpServletRequest request, HttpServletResponse response,
HashMap params) throws Exception {
-
+
if (!UserInfo.isValidSession(request, response, "admin")) {
throw new Exception("로그인이 필요한 서비스입니다.");
}
-
+
String userId = (String)request.getSession().getAttribute("admin.userID");
params.put("userId", userId);
-
+
try {
homeTrainingMapper.callSpDelHomeTrainingReg(params);
return params;
} catch (SQLException e) {
throw new Exception( e.getMessage() );
}
-
+
}
}
diff --git a/src/main/resources/geoinfo/sqlmap/mappers/admins/user/HomeTrainingMapper.xml b/src/main/resources/geoinfo/sqlmap/mappers/admins/user/HomeTrainingMapper.xml
index 44aa3c6..5c04e78 100644
--- a/src/main/resources/geoinfo/sqlmap/mappers/admins/user/HomeTrainingMapper.xml
+++ b/src/main/resources/geoinfo/sqlmap/mappers/admins/user/HomeTrainingMapper.xml
@@ -3,12 +3,12 @@
-
+
-
+
-
-
-
-
+
+
교육 대상자 명단
⁕ 신청 집합교육명 :
-
+
-
+
+