From 53b8f42c76297708a0b72a58c8408911f3aac70c Mon Sep 17 00:00:00 2001 From: itms-merge-dev Date: Sun, 19 Jul 2026 17:10:04 +0900 Subject: [PATCH] =?UTF-8?q?fix(itms):=20=EA=B3=A0=EA=B0=9D=20=EC=88=98?= =?UTF-8?q?=EC=A0=95=EC=9A=94=EC=B2=AD=2040=EA=B1=B4=20=EC=B2=98=EB=A6=AC?= =?UTF-8?q?=20=E2=80=94=20=EB=A1=9C=EA=B7=B8=EC=9D=B8=20=EC=9E=A0=EA=B8=88?= =?UTF-8?q?=C2=B7=EC=84=9C=EB=B9=84=EC=8A=A4=EB=8D=B0=EC=8A=A4=ED=81=AC=20?= =?UTF-8?q?=EA=B6=8C=ED=95=9C/=EA=B2=80=EC=A6=9D=C2=B7=EC=9A=A9=EC=96=B4?= =?UTF-8?q?=20=ED=86=B5=EC=9D=BC=C2=B7=EB=B8=8C=EB=9E=9C=EB=94=A9=20?= =?UTF-8?q?=EA=B4=80=EB=A6=AC(F12)=20(SR=5F20260708)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Fable 5 --- .gitignore | 3 + .../main/controller/MainController.java | 32 +- .../srm/controller/SvcDeskController.java | 32 +- .../srm/controller/SvcDeskReqController.java | 35 +- .../sys/controller/UserManageController.java | 15 +- .../sqlmap/itms/bbs/BBSAdminManageMapper.xml | 2 + .../sqlmap/itms/srm/SvcDeskReqMapper.xml | 5 +- ...SM 고객 수정 요청 체크리스트_20260708.xlsx | Bin 0 -> 1364556 bytes ... 수정 요청 체크리스트_20260708_조치결과.xlsx | Bin 0 -> 23563 bytes ...SM 기능개선 및 장애처리_V1.1_20260707.pptx | Bin 0 -> 1745919 bytes ...M 작업 분류 계획서(WBS)_V1.1_20260707.xlsx | Bin 0 -> 1030908 bytes docs/SR_BACKLOG_20260708.md | 86 +++ docs/SR_CHANGES_20260719.md | 416 +++++++++++ .../common/service/CommonService.java | 2 +- .../basefront/config/SecurityConfig.java | 5 +- .../controller/BrandingController.java | 227 ++++++ .../basefront/controller/MainController.java | 35 +- .../controller/ArticleCommentController.java | 4 +- .../controller/BBSAdminManageController.java | 3 + .../srm/controller/ReportCheckController.java | 10 +- .../srm/controller/ReportErrorController.java | 10 +- .../srm/controller/ReportIssueController.java | 10 +- .../srm/controller/ReportOtherController.java | 10 +- .../srm/controller/SvcDeskController.java | 60 +- .../srm/controller/SvcDeskReqController.java | 20 +- .../itmsfront/srm/domain/IncidentReqVo.java | 2 +- .../itmsfront/srm/domain/IncidentVo.java | 554 +++++++------- .../static/js/tinymce_uritms_setting.js | 2 + .../resources/validator/urp/ItsmValidator.xml | 376 +++++----- .../WEB-INF/jsp/branding/brandingManage.jsp | 115 +++ .../jsp/itms/bbs/admin/NoticeInqire.jsp | 9 +- .../WEB-INF/jsp/itms/bbs/admin/NoticeList.jsp | 694 +++++++++--------- .../WEB-INF/jsp/itms/error/errorNoAuth.jsp | 2 +- .../WEB-INF/jsp/itms/pot/MyTodoPortlet.jsp | 172 ++--- .../WEB-INF/jsp/itms/rem/ReportList.jsp | 2 +- .../WEB-INF/jsp/itms/search/SearchOne.jsp | 442 +++++------ .../WEB-INF/jsp/itms/search/SearchTotal.jsp | 664 ++++++++--------- .../jsp/itms/srm/ReportCheckCopyInsert.jsp | 6 +- .../jsp/itms/srm/ReportCheckDetail.jsp | 2 +- .../jsp/itms/srm/ReportCheckInsert.jsp | 6 +- .../WEB-INF/jsp/itms/srm/ReportCheckList.jsp | 9 +- .../jsp/itms/srm/ReportCheckPrintPop.jsp | 2 +- .../jsp/itms/srm/ReportCheckUpdate.jsp | 2 +- .../jsp/itms/srm/ReportErrorCopyInsert.jsp | 6 +- .../jsp/itms/srm/ReportErrorDetail.jsp | 2 +- .../jsp/itms/srm/ReportErrorInsert.jsp | 6 +- .../WEB-INF/jsp/itms/srm/ReportErrorList.jsp | 4 +- .../jsp/itms/srm/ReportErrorPrintPop.jsp | 2 +- .../jsp/itms/srm/ReportErrorUpdate.jsp | 2 +- .../jsp/itms/srm/ReportIssueCopyInsert.jsp | 6 +- .../jsp/itms/srm/ReportIssueDetail.jsp | 7 +- .../jsp/itms/srm/ReportIssueInsert.jsp | 6 +- .../WEB-INF/jsp/itms/srm/ReportIssueList.jsp | 4 +- .../jsp/itms/srm/ReportIssuePrintPop.jsp | 2 +- .../jsp/itms/srm/ReportIssueUpdate.jsp | 2 +- .../jsp/itms/srm/ReportOtherCopyInsert.jsp | 6 +- .../jsp/itms/srm/ReportOtherDetail.jsp | 2 +- .../jsp/itms/srm/ReportOtherInsert.jsp | 6 +- .../WEB-INF/jsp/itms/srm/ReportOtherList.jsp | 4 +- .../jsp/itms/srm/ReportOtherPrintPop.jsp | 2 +- .../jsp/itms/srm/ReportOtherUpdate.jsp | 2 +- .../jsp/itms/srm/SvcDeskCopyInsert.jsp | 18 +- .../WEB-INF/jsp/itms/srm/SvcDeskDetail.jsp | 68 +- .../WEB-INF/jsp/itms/srm/SvcDeskInsert.jsp | 34 +- .../WEB-INF/jsp/itms/srm/SvcDeskList.jsp | 2 +- .../WEB-INF/jsp/itms/srm/SvcDeskReqDetail.jsp | 34 +- .../WEB-INF/jsp/itms/srm/SvcDeskReqInsert.jsp | 47 +- .../WEB-INF/jsp/itms/srm/SvcDeskReqList.jsp | 2 +- .../WEB-INF/jsp/itms/srm/SvcDeskReqUpdate.jsp | 12 +- .../WEB-INF/jsp/itms/srm/SvcDeskUpdate.jsp | 18 +- .../jsp/itms/sys/AuthorGroupManage.jsp | 3 +- .../WEB-INF/jsp/itms/sys/UserSelectUpdt.jsp | 11 + .../main/webapp/WEB-INF/jsp/main/LoginUsr.jsp | 640 ++++++++-------- .../webapp/WEB-INF/jsp/main/LoginUsr_kic.jsp | 6 +- .../webapp/WEB-INF/jsp/main/PopIdFind.jsp | 2 +- .../WEB-INF/jsp/main/PopPasswordReset.jsp | 10 +- .../webapp/WEB-INF/jsp/main/inc/IncFooter.jsp | 2 +- .../webapp/WEB-INF/jsp/main/inc/IncHeader.jsp | 3 +- .../jsp/tilesLayout/uritms-base-main1.jsp | 142 ++-- .../jsp/tilesLayout/uritms-base-main2.jsp | 154 ++-- .../jsp/tilesLayout/uritms-base-popup1.jsp | 2 +- .../WEB-INF/jsp/tilesLayout/uritms-popup1.jsp | 124 ++-- .../main/webapp/branding/default/favicon.jpg | Bin 0 -> 1686 bytes .../src/main/webapp/branding/default/logo.svg | 14 + 84 files changed, 3270 insertions(+), 2232 deletions(-) create mode 100644 docs/ITSM 고객 수정 요청 체크리스트_20260708.xlsx create mode 100644 docs/ITSM 고객 수정 요청 체크리스트_20260708_조치결과.xlsx create mode 100644 docs/ITSM 기능개선 및 장애처리_V1.1_20260707.pptx create mode 100644 docs/ITSM 작업 분류 계획서(WBS)_V1.1_20260707.xlsx create mode 100644 docs/SR_BACKLOG_20260708.md create mode 100644 docs/SR_CHANGES_20260719.md create mode 100644 front/src/main/java/com/urpsys/basefront/controller/BrandingController.java create mode 100644 front/src/main/webapp/WEB-INF/jsp/branding/brandingManage.jsp create mode 100644 front/src/main/webapp/branding/default/favicon.jpg create mode 100644 front/src/main/webapp/branding/default/logo.svg diff --git a/.gitignore b/.gitignore index 409fd97f..36ec089d 100644 --- a/.gitignore +++ b/.gitignore @@ -36,3 +36,6 @@ Thumbs.db # 설치 패키지 빌드 산출물(make_package.sh 로 재생성) /dist/ + +# MCP 설정(API 키 포함 — 커밋 금지) +.mcp.json diff --git a/api/src/main/java/com/urpsys/baseapi/main/controller/MainController.java b/api/src/main/java/com/urpsys/baseapi/main/controller/MainController.java index d9ef2f93..983c5f50 100644 --- a/api/src/main/java/com/urpsys/baseapi/main/controller/MainController.java +++ b/api/src/main/java/com/urpsys/baseapi/main/controller/MainController.java @@ -80,7 +80,25 @@ public class MainController @Value("${custom.front_host_info}") private String strFrontHostInfo; - + + // 2026.07.19 SR#1 : 시스템 관리자(KIC 담당자) 성명/호칭 동적 셋팅 (미설정 시 "시스템 관리자") + @Value("${custom.adminName:}") + private String strAdminName; + + @Value("${custom.adminTitle:}") + private String strAdminTitle; + + private String getAdminDisplay() + { + String strName = (strAdminName == null) ? "" : strAdminName.trim(); + String strTitle = (strAdminTitle == null) ? "" : strAdminTitle.trim(); + if(strName.equals("")) + { + return "시스템 관리자"; + } + return "시스템 관리자(" + strName + (strTitle.equals("") ? "" : " " + strTitle) + ")"; + } + /** * Header Page를 조회한다. * @param menuManageVO MenuManageVO @@ -272,10 +290,18 @@ public class MainController { resBody.put("resultCd" , -6 ); resBody.put("resultMsg", "사용자정보가 일치하지 않습니다." ); - + return ResultData.ok(resBody); } - + // 2026.07.19 SR#1 : 계정이 잠겨 있는 경우 비밀번호 초기화 차단 + 잠금 안내 (관리자가 잠금 해제 후 초기화 가능) + else if(CommonUtil.nvl(userInfoMap.get("lockAt")).equals("Y")) + { + resBody.put("resultCd" , -7 ); + resBody.put("resultMsg", "로그인 시도 횟수 초과로 계정이 잠겼습니다. " + getAdminDisplay() + "에게 문의 바랍니다." ); + + return ResultData.ok(resBody); + } + String strResetPassword = CommonUtil.getRandomChar(10); log.info("새로운 비밀번호 [{}]", strResetPassword ); diff --git a/api/src/main/java/com/urpsys/itmsapi/srm/controller/SvcDeskController.java b/api/src/main/java/com/urpsys/itmsapi/srm/controller/SvcDeskController.java index 3222ea33..a1aa2fe4 100644 --- a/api/src/main/java/com/urpsys/itmsapi/srm/controller/SvcDeskController.java +++ b/api/src/main/java/com/urpsys/itmsapi/srm/controller/SvcDeskController.java @@ -283,12 +283,34 @@ public class SvcDeskController LinkedHashMap resBody = new LinkedHashMap(); - LinkedHashMap incidentVoMap = (LinkedHashMap)requestMap.get("incidentVo" ); // 인스던트 기본정보 + LinkedHashMap incidentVoMap = (LinkedHashMap)requestMap.get("incidentVo" ); // 서비스 기본정보 LinkedHashMap reqApprovalMap = (LinkedHashMap)requestMap.get("reqApprovalMap" ); // 승인요청 정보 - List> approvalsList = (List>)requestMap.get("approvalsList"); // 인스던트 결재정보 - List> fileList = (List>)requestMap.get("fileList" ); // 인스던트 첨부파일 - - // 서비스 인스던트 등록 + List> approvalsList = (List>)requestMap.get("approvalsList"); // 서비스 결재정보 + List> fileList = (List>)requestMap.get("fileList" ); // 서비스 첨부파일 + + // 2026.07.19 SR#12 : 입력값 길이 예외처리 (초과 시 명확한 안내 + 등록 차단) + String strTitle = CommonUtil.nvl(incidentVoMap.get("vcIncidentTitle")); + String strBody = CommonUtil.nvl(incidentVoMap.get("txIncidentBody")); + if(strTitle.length() > 200) + { + resBody.put("resultCd" , "-2" ); + resBody.put("resultMsg" , "제목은 200자 이내로 입력해 주세요. (현재 " + strTitle.length() + "자)" ); + return ResultData.ok(resBody); + } + if(strBody.length() > 60000) + { + resBody.put("resultCd" , "-2" ); + resBody.put("resultMsg" , "본문 내용이 너무 깁니다. 60,000자 이내로 입력해 주세요." ); + return ResultData.ok(resBody); + } + + // 2026.07.19 SR#9-2,9-3 : 접수자/접수일시는 서버 권한값으로 강제 (일반 사용자의 임의 조작 차단) + TokenInfo tokenInfoReg = CommonUtil.getAccessTokenInfo(request); + incidentVoMap.put("inRegUser" , tokenInfoReg.getUniqId()); // 접수자 ID = 로그인 사용자 + incidentVoMap.put("vcRegUser" , tokenInfoReg.getUserName()); // 접수자 명 = 로그인 사용자 + incidentVoMap.put("dtReceiptDatetime", CommonUtil.getKST("yyyy-MM-dd HH:mm")); // 접수일시 = 서버 현재시각 + + // 서비스 등록 LinkedHashMap returnMap = svcDeskService.addIncident(incidentVoMap, approvalsList, fileList, reqApprovalMap); int iSucc = (int)returnMap.get("iSucc"); diff --git a/api/src/main/java/com/urpsys/itmsapi/srm/controller/SvcDeskReqController.java b/api/src/main/java/com/urpsys/itmsapi/srm/controller/SvcDeskReqController.java index 0e011999..c930879b 100644 --- a/api/src/main/java/com/urpsys/itmsapi/srm/controller/SvcDeskReqController.java +++ b/api/src/main/java/com/urpsys/itmsapi/srm/controller/SvcDeskReqController.java @@ -74,10 +74,17 @@ public class SvcDeskReqController // 토큰정보 획득 TokenInfo tokenInfo = CommonUtil.getAccessTokenInfo(request); - + log.info("tokenInfo [{}]", tokenInfo.toString() ); log.info("tokenInfo [{}]", tokenInfo.getAuthorities() ); - + + // 2026.07.19 SR#16 : 일반 사용자(비관리자)는 본인이 신청한 건만 조회 (서버측 권한 제어) + String strRoleReq = CommonUtil.nvl(tokenInfo.getAuthorities()); + if(strRoleReq.indexOf("ROLE_ADMIN") < 0) + { + requestMap.put("reqUserFilter", tokenInfo.getUniqId()); + } + // 서비스데스크 조회 List> resultList = svcDeskReqService.searchReqIncident(requestMap); @@ -202,10 +209,26 @@ public class SvcDeskReqController LinkedHashMap resBody = new LinkedHashMap(); - LinkedHashMap incidentReqVoMap = (LinkedHashMap)requestMap.get("incidentReqVo" ); // 인스던트 기본정보 - List> fileList = (List>)requestMap.get("fileList" ); // 인스던트 첨부파일 - - // 서비스 인스던트 신청 등록 + LinkedHashMap incidentReqVoMap = (LinkedHashMap)requestMap.get("incidentReqVo" ); // 서비스 기본정보 + List> fileList = (List>)requestMap.get("fileList" ); // 서비스 첨부파일 + + // 2026.07.19 SR#12 : 입력값 길이 예외처리 (초과 시 명확한 안내 + 등록 차단) + String strReqTitle = CommonUtil.nvl(incidentReqVoMap.get("vcIncidentTitle")); + String strReqBody = CommonUtil.nvl(incidentReqVoMap.get("txIncidentBody")); + if(strReqTitle.length() > 200) + { + resBody.put("resultCd" , "-2" ); + resBody.put("resultMsg" , "제목은 200자 이내로 입력해 주세요. (현재 " + strReqTitle.length() + "자)" ); + return ResultData.ok(resBody); + } + if(strReqBody.length() > 60000) + { + resBody.put("resultCd" , "-2" ); + resBody.put("resultMsg" , "본문 내용이 너무 깁니다. 60,000자 이내로 입력해 주세요." ); + return ResultData.ok(resBody); + } + + // 서비스 신청 등록 LinkedHashMap returnMap = svcDeskReqService.addReqIncident(incidentReqVoMap, fileList); int iSucc = (int)returnMap.get("iSucc"); diff --git a/api/src/main/java/com/urpsys/itmsapi/sys/controller/UserManageController.java b/api/src/main/java/com/urpsys/itmsapi/sys/controller/UserManageController.java index c7773ff4..4c42fd29 100644 --- a/api/src/main/java/com/urpsys/itmsapi/sys/controller/UserManageController.java +++ b/api/src/main/java/com/urpsys/itmsapi/sys/controller/UserManageController.java @@ -370,14 +370,23 @@ public class UserManageController LinkedHashMap resBody = new LinkedHashMap(); - // 사용자 기본정보 추출 + // 사용자 기본정보 추출 LinkedHashMap userInfoMap = userManageService.selectUser(requestMap); - + + // 2026.07.19 SR#1 : 계정이 잠겨 있는 경우 비밀번호 초기화 차단 (잠금 해제 후 초기화 가능) + if(CommonUtil.nvl(userInfoMap.get("lockAt")).equals("Y")) + { + resBody.put("resultCd" , "-2" ); + resBody.put("resultMsg", "계정이 잠겨 있습니다. [로그인인증제한해제]로 잠금을 먼저 해제한 후 비밀번호를 초기화하세요." ); + + return ResultData.ok(resBody); + } + if(CommonUtil.nvl(userInfoMap.get("emailAdres")).equals("")) { resBody.put("resultCd" , "-1" ); resBody.put("resultMsg", "E-mail 이 존재하지 않습니다." ); - + return ResultData.ok(resBody); } diff --git a/api/src/main/resources/mapper/primarydb/sqlmap/itms/bbs/BBSAdminManageMapper.xml b/api/src/main/resources/mapper/primarydb/sqlmap/itms/bbs/BBSAdminManageMapper.xml index 1af572c2..61f2050f 100644 --- a/api/src/main/resources/mapper/primarydb/sqlmap/itms/bbs/BBSAdminManageMapper.xml +++ b/api/src/main/resources/mapper/primarydb/sqlmap/itms/bbs/BBSAdminManageMapper.xml @@ -35,6 +35,8 @@ , IFNULL(b.USER_NM, a.PSTGR_NM) AS frstRegisterNm , DATE_FORMAT(a.FRST_REG_DTM, '%Y-%m-%d') AS frstRegisterPnttm , a.INQ_CNT AS inqireCo + , ( SELECT COUNT(1) FROM TB_CMNT_INFO cc + WHERE cc.NTT_ID = a.NTT_ID AND cc.USE_AT = 'Y' ) AS cmntCnt , a.PARNTSCTT_NO AS parnts , a.CMNT_AT AS replyAt , a.CMNT_LCTN AS replyLc diff --git a/api/src/main/resources/mapper/primarydb/sqlmap/itms/srm/SvcDeskReqMapper.xml b/api/src/main/resources/mapper/primarydb/sqlmap/itms/srm/SvcDeskReqMapper.xml index 3f97b88c..1ab0ccd3 100644 --- a/api/src/main/resources/mapper/primarydb/sqlmap/itms/srm/SvcDeskReqMapper.xml +++ b/api/src/main/resources/mapper/primarydb/sqlmap/itms/srm/SvcDeskReqMapper.xml @@ -46,9 +46,12 @@ - AND A.VC_REQ_INCIDENT_NUM = #{incidentReqNum} + + AND A.VC_REQ_INCIDENT_NUM LIKE CONCAT('%', #{incidentReqNum}, '%') AND A.VC_REQ_USER LIKE "%${reqUser}%" AND A.VC_INCIDENT_TITLE LIKE "%${incidentTitle}%" + + AND A.IN_REQ_USER = #{reqUserFilter} + +조치예정자 검색 + +``` +변경 후: +```jsp + + +(자동배정) + +``` + +### `api/.../itmsapi/srm/controller/SvcDeskController.java` (접수자/접수일시 서버 강제) +변경 전: (클라이언트가 보낸 incidentVo 값을 그대로 서비스로 전달) +```java +LinkedHashMap returnMap = svcDeskService.addIncident(incidentVoMap, approvalsList, fileList, reqApprovalMap); +``` +변경 후: +```java +// SR#9-2,9-3 : 접수자/접수일시 서버 권한값 강제 +TokenInfo tokenInfoReg = CommonUtil.getAccessTokenInfo(request); +incidentVoMap.put("inRegUser" , tokenInfoReg.getUniqId()); +incidentVoMap.put("vcRegUser" , tokenInfoReg.getUserName()); +incidentVoMap.put("dtReceiptDatetime", CommonUtil.getKST("yyyy-MM-dd HH:mm")); + +LinkedHashMap returnMap = svcDeskService.addIncident(incidentVoMap, approvalsList, fileList, reqApprovalMap); +``` +(완료요청일시는 사용자 입력 성격상 유지) + +--- + +## SR#12 입력값 길이 검증 + 이중 결함(장애페이지 후 등록) 차단 + +### `api/.../itmsapi/srm/controller/SvcDeskController.java` 및 `SvcDeskReqController.java` (등록 전 길이검증) +변경 전: 검증 없이 바로 등록 호출. +변경 후(양 컨트롤러 공통): +```java +String strTitle = CommonUtil.nvl(incidentVoMap.get("vcIncidentTitle")); +String strBody = CommonUtil.nvl(incidentVoMap.get("txIncidentBody")); +if(strTitle.length() > 200) { resBody.put("resultCd","-2"); resBody.put("resultMsg","제목은 200자 이내로 입력해 주세요. (현재 "+strTitle.length()+"자)"); return ResultData.ok(resBody); } +if(strBody.length() > 60000){ resBody.put("resultCd","-2"); resBody.put("resultMsg","본문 내용이 너무 깁니다. 60,000자 이내로 입력해 주세요."); return ResultData.ok(resBody); } +``` + +### `front/.../itmsfront/srm/controller/SvcDeskController.java` (커밋 후 메일 예외 격리) +변경 전: +```java +if(returnMap.get("resultCd").equals("0")) { commonService.sendIncidentMail(1, (int)returnMap.get("inIncidentSeq")); } +if(strReqApprovalYn.equals("Y") && returnMap.get("resultCd").equals("0")) { commonService.sendIncidentMail(3, (int)returnMap.get("inIncidentSeq")); } +``` +변경 후: +```java +try { + if(returnMap.get("resultCd").equals("0")) { commonService.sendIncidentMail(1, (int)returnMap.get("inIncidentSeq")); } + if(strReqApprovalYn.equals("Y") && returnMap.get("resultCd").equals("0")) { commonService.sendIncidentMail(3, (int)returnMap.get("inIncidentSeq")); } +} catch(Exception mailEx) { + log.error("서비스 등록 후 메일발송 실패(등록은 정상): {}", mailEx.getMessage()); // 등록 결과에 영향 없음 +} +``` + +### `front/.../jsp/itms/srm/{SvcDeskInsert,SvcDeskReqInsert}.jsp` (검증 메시지 노출 + maxlength) +변경 전: +```javascript +success: function(data) { alert("등록 완료 되었습니다."); fncSvcDeskList(); } +``` +변경 후: +```javascript +success: function(data) { + if(data.resultCd != "0") { alert(data.resultMsg); return; } // SR#12 검증 실패 안내 + alert("등록 완료 되었습니다."); fncSvcDeskList(); +} +``` +그리고 제목 input에 `maxlength="200"` 추가. + +--- + +## SR#13 에디터 높이 무한 증가 → 최대높이 + +### `front/src/main/resources/static/js/tinymce_uritms_setting.js` (drawEditorWrite/drawEditorRead 2곳) +변경 전: +```javascript +height: 300, +min_height: 300, // 최소 높이 +toolbar_mode: 'floating', +``` +변경 후: +```javascript +height: 300, +min_height: 300, // 최소 높이 +max_height: 600, // SR#13 최대 높이 제한(초과 시 내부 스크롤) +toolbar_mode: 'floating', +``` + +--- + +## SR#14 신청번호 부분검색 + SR#16 본인 신청건만 조회 + +### `api/.../mapper/.../itms/srm/SvcDeskReqMapper.xml` +변경 전: +```xml + + AND A.VC_REQ_INCIDENT_NUM = #{incidentReqNum} + ... + +``` +변경 후: +```xml + + + AND A.VC_REQ_INCIDENT_NUM LIKE CONCAT('%', #{incidentReqNum}, '%') + ... + + AND A.IN_REQ_USER = #{reqUserFilter} + +``` + +### `api/.../itmsapi/srm/controller/SvcDeskReqController.java` (비관리자 필터 주입) +변경 후 추가: +```java +String strRoleReq = CommonUtil.nvl(tokenInfo.getAuthorities()); +if(strRoleReq.indexOf("ROLE_ADMIN") < 0) { requestMap.put("reqUserFilter", tokenInfo.getUniqId()); } +``` + +--- + +## SR#19 오타 "없무권한" → "업무권한" + +### `front/.../jsp/itms/error/errorNoAuth.jsp` +변경 전: `시스템 관리자에게 없무권한 부여후 사용하시길 바랍니다.` +변경 후: `시스템 관리자에게 업무권한 부여후 사용하시길 바랍니다.` + +--- + +## SR#20 "인스턴트"(인스던트/인시던트) → "서비스" + +front 모듈 전체 스윕 — JSP/JS/Java/XML 48파일 172건. 예: +- 변경 전: ` 인스던트 신청 ` / `confirm("인스던트 신청 처리를 하시겠습니까?")` / ` 인스던트 접수번호 ` +- 변경 후: ` 서비스 신청 ` / `confirm("서비스 신청 처리를 하시겠습니까?")` / ` 서비스 접수번호 ` +(명령: `sed 's/인스던트/서비스/g'`, `sed 's/인시던트/서비스/g'` — "인스턴스"(instance)는 미변경) + +--- + +## SR#23 FOOTER 저작권 오타 + +### `front/.../jsp/main/inc/IncFooter.jsp` +변경 전: `COPYRIGHT © 20242 URP. All Right Reserved` +변경 후: `COPYRIGHT © 2024 URP. All Right Reserved` + +--- + +## F01 보고서 양식명 전체 표시(툴팁) + +### `front/.../jsp/itms/rem/ReportList.jsp` +변경 전: `${report.vcFormName}` +변경 후: `${report.vcFormName}` + +--- + +## F03 서비스신청 서비스 항목 고정(SR기본요청양식) + +### `front/.../jsp/itms/srm/SvcDeskReqInsert.jsp` +변경 후 추가(select 아래): +```javascript +$(function(){ + var $s = $('#inServiceCode'); + $s.find('option').each(function(){ if($.trim($(this).text())=='SR기본요청양식'){ $s.val($(this).val()); return false; } }); + $s.css({'pointer-events':'none','background-color':'#f2f2f2'}).attr('tabindex','-1'); // 값은 제출, 변경 불가 +}); +``` + +--- + +## F05 그룹아이디 기본값 KIC + +### `front/.../jsp/itms/sys/UserSelectUpdt.jsp` +변경 후 추가(select 아래): +```javascript +$(function(){ + var $g = $('#groupId'); + if($g.length>0 && ($g.val()==null || $g.val()=='')) { + $g.find('option').each(function(){ if($.trim($(this).text())=='KIC'){ $g.val($(this).val()); return false; } }); + } +}); +``` + +--- + +## F06 게시판 제목 클릭 진입 + +### `front/.../jsp/itms/srm/ReportCheckList.jsp` +변경 전(제목 = 일반 텍스트): +```jsp + + ...... + +``` +변경 후(제목 = 링크): +```jsp + + + ... + + +``` + +--- + +## F09 관리자 게시물/댓글 삭제 권한 + +### `front/.../itmsfront/bbs/controller/BBSAdminManageController.java` +변경 후 추가: `model.addAttribute("sessionAdminYn", (role.indexOf("ROLE_ADMIN")>-1)?"Y":"N");` + +### `front/.../jsp/itms/bbs/admin/NoticeInqire.jsp` +변경 후: 작성자 삭제 블록 뒤에 관리자 전용 삭제 버튼 추가 +```jsp + + + +``` +댓글 삭제 조건 변경 전: `` → 변경 후: `` + +--- + +## F10 게시판 조회수/댓글수 표기 + +### `api/.../mapper/.../itms/bbs/BBSAdminManageMapper.xml` +변경 후 추가(select 컬럼): +```xml +, ( SELECT COUNT(1) FROM TB_CMNT_INFO cc WHERE cc.NTT_ID = a.NTT_ID AND cc.USE_AT = 'Y' ) AS cmntCnt +``` +### `front/.../jsp/itms/bbs/admin/NoticeList.jsp` +헤더에 `댓글수`, 본문에 `` 추가(빈목록 colspan 7/5/4 → 8/6/5). + +--- + +## F12 로고/파비콘 브랜딩 관리(KIC) + +### 신규 `front/.../basefront/controller/BrandingController.java` +- `GET /branding/logo`·`/branding/favicon` : 업로드본 우선, 없으면 번들 KIC 기본자산(webapp `/branding/default/*`) 폴백. 캐시무효화 헤더. +- `GET /branding/brandingManageView.do` : 관리자 화면(비관리자 → 메인 리다이렉트). +- `POST /branding/upload.do` : 관리자 검증 + 확장자 화이트리스트(logo: svg/png/jpg/gif, favicon: ico/png/svg/jpg/gif) + 2MB 제한 + 저장파일명 서버고정(`kind.ext`, 사용자 파일명 미사용→경로조작 차단) + canonical 경로 재확인. + +### `front/.../basefront/config/SecurityConfig.java` +변경 후 추가: `.antMatchers("/branding/logo", "/branding/favicon").permitAll()` (로그인 전 표출). + +### 참조 변경(정적 로고/파비콘 → 동적 엔드포인트) +- `front/.../jsp/main/LoginUsr.jsp`·`LoginUsr_kic.jsp` : `${ctx}/images/main/logo.png` → `${ctx}/branding/logo` +- `front/.../jsp/tilesLayout/{uritms-base-main1,uritms-base-main2,uritms-base-popup1,uritms-popup1}.jsp` : `` → `href="${pageContext.request.contextPath}/branding/favicon"` +- `front/.../jsp/main/inc/IncHeader.jsp` : `

` 에 `background-image:url('')` 인라인 지정 + +### 신규 자산·화면 +- `front/src/main/webapp/branding/default/logo.svg`·`favicon.jpg` (KIC 공식 자산 번들) +- `front/.../jsp/branding/brandingManage.jsp` (업로드/미리보기 화면) + +--- + +## D04 검색 후 페이지네이션 검색조건 소실 + +### `front/.../jsp/itms/sys/AuthorGroupManage.jsp` +변경 전: `` (해당 함수 미정의 → 검색조건 유실) +변경 후: `` (listForm 재제출 → searchCondition/searchKeyword 유지) diff --git a/front/src/main/java/com/urpsys/basefront/common/service/CommonService.java b/front/src/main/java/com/urpsys/basefront/common/service/CommonService.java index 23a83e46..e52e3f8b 100644 --- a/front/src/main/java/com/urpsys/basefront/common/service/CommonService.java +++ b/front/src/main/java/com/urpsys/basefront/common/service/CommonService.java @@ -170,7 +170,7 @@ public class CommonService } /** - * 인스던트 액션별 메일처리 + * 서비스 액션별 메일처리 * @author urp 인프라본부 나혁제 * 작성일 : 2025.03.20 */ diff --git a/front/src/main/java/com/urpsys/basefront/config/SecurityConfig.java b/front/src/main/java/com/urpsys/basefront/config/SecurityConfig.java index 6287def7..b217cc74 100644 --- a/front/src/main/java/com/urpsys/basefront/config/SecurityConfig.java +++ b/front/src/main/java/com/urpsys/basefront/config/SecurityConfig.java @@ -69,8 +69,9 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter .antMatchers("/EgovModal.do" ).permitAll() .antMatchers("/main/noAuth*.do" ).permitAll() .antMatchers("/validator*" ).permitAll() - .antMatchers("/main/ssoDirectlogin.do" ).permitAll() // 2026.04.02 나혁제 SSO 로그인처리 - + .antMatchers("/main/ssoDirectlogin.do" ).permitAll() // 2026.04.02 나혁제 SSO 로그인처리 + .antMatchers("/branding/logo", "/branding/favicon").permitAll() // 2026.07.19 F12 브랜딩 로고/파비콘 공개 서빙 (로그인 페이지 표출용) + // .antMatchers("//validator*" ).permitAll() // .antMatchers("/main/searchIdFind.do" ).permitAll() // .antMatchers("/main/UserPasswordResetExt.do" ).permitAll() diff --git a/front/src/main/java/com/urpsys/basefront/controller/BrandingController.java b/front/src/main/java/com/urpsys/basefront/controller/BrandingController.java new file mode 100644 index 00000000..75d90770 --- /dev/null +++ b/front/src/main/java/com/urpsys/basefront/controller/BrandingController.java @@ -0,0 +1,227 @@ +package com.urpsys.basefront.controller; + +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.io.OutputStream; +import java.nio.file.Files; +import java.util.Arrays; +import java.util.List; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import javax.servlet.http.HttpSession; + +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; +import org.springframework.web.servlet.ModelAndView; + +import com.urpsys.basefront.domain.TokenInfo; + +import lombok.extern.slf4j.Slf4j; + +/** + * @Class Name : BrandingController.java + * @Description : 2026.07.19 기능개선12/F12 — 로고/파비콘 교체 관리(KIC 브랜딩) + * + * - 공개 서빙 : GET /branding/logo, GET /branding/favicon (로그인 페이지·헤더·favicon 참조) + * - 관리자 화면 : GET /branding/brandingManageView.do (업로드/미리보기) + * - 업로드 처리 : POST /branding/upload.do (관리자만, 확장자 화이트리스트·크기제한·경로조작 차단) + * + * DB 의존 없음. 업로드본은 파일시스템(custom.brandingDir, 미설정 시 java.io.tmpdir/itms-branding)에 저장하며 + * 재기동 없이 즉시 반영된다. 업로드본이 없으면 webapp 번들 KIC 기본자산(/branding/default/*)으로 폴백한다. + * + * @author URP 인프라본부 + * @since 2026.07.19 + */ +@Slf4j +@Controller +public class BrandingController +{ + // 허용 확장자(화이트리스트) — 사용자 입력 파일명은 절대 저장경로에 사용하지 않음(경로조작 차단) + private static final List ALLOW_LOGO = Arrays.asList("svg", "png", "jpg", "jpeg", "gif"); + private static final List ALLOW_FAVICON = Arrays.asList("ico", "png", "svg", "jpg", "jpeg", "gif"); + private static final long MAX_SIZE = 2L * 1024 * 1024; // 2MB + + @Value("${custom.brandingDir:}") + private String strBrandingDir; + + /** 업로드 저장 디렉터리(미설정 시 임시디렉터리 하위 고정 폴더) */ + private File getBrandingDir() + { + String dir = (strBrandingDir == null) ? "" : strBrandingDir.trim(); + if(dir.equals("")) + { + dir = System.getProperty("java.io.tmpdir") + File.separator + "itms-branding"; + } + File f = new File(dir); + if(!f.exists()) f.mkdirs(); + return f; + } + + private String contentType(String ext) + { + switch(ext) + { + case "svg" : return "image/svg+xml"; + case "png" : return "image/png"; + case "jpg" : + case "jpeg": return "image/jpeg"; + case "ico" : return "image/x-icon"; + case "gif" : return "image/gif"; + default : return "application/octet-stream"; + } + } + + /** 업로드된 오버라이드 파일(kind.ext) 탐색 — 없으면 null */ + private File findOverride(String kind, List allow) + { + File dir = getBrandingDir(); + for(String ext : allow) + { + File f = new File(dir, kind + "." + ext); + if(f.exists() && f.isFile()) return f; + } + return null; + } + + /** 확장자 추출(소문자) */ + private String extOf(String name) + { + if(name == null) return ""; + int p = name.lastIndexOf('.'); + return (p < 0) ? "" : name.substring(p + 1).toLowerCase(); + } + + /** 공통 서빙 로직 : 오버라이드 → 없으면 번들 기본자산 */ + private void serve(String kind, List allow, String defaultResource, String defaultExt + , HttpServletRequest request, HttpServletResponse response) throws IOException + { + response.setHeader("Cache-Control", "no-cache, no-store, must-revalidate"); + response.setHeader("Pragma", "no-cache"); + + File override = findOverride(kind, allow); + if(override != null) + { + response.setContentType(contentType(extOf(override.getName()))); + try(InputStream in = new FileInputStream(override); OutputStream out = response.getOutputStream()) + { + copy(in, out); + } + return; + } + + // 번들 KIC 기본자산 폴백 (webapp /branding/default/*) + response.setContentType(contentType(defaultExt)); + try(InputStream in = request.getServletContext().getResourceAsStream(defaultResource); + OutputStream out = response.getOutputStream()) + { + if(in != null) copy(in, out); + } + } + + private void copy(InputStream in, OutputStream out) throws IOException + { + byte[] buf = new byte[8192]; + int n; + while((n = in.read(buf)) != -1) out.write(buf, 0, n); + out.flush(); + } + + // --------------------------------------------------------------------- + // 공개 서빙 엔드포인트 (SecurityConfig permitAll) + // --------------------------------------------------------------------- + @RequestMapping(value = "/branding/logo") + public void logo(HttpServletRequest request, HttpServletResponse response) throws IOException + { + serve("logo", ALLOW_LOGO, "/branding/default/logo.svg", "svg", request, response); + } + + @RequestMapping(value = "/branding/favicon") + public void favicon(HttpServletRequest request, HttpServletResponse response) throws IOException + { + serve("favicon", ALLOW_FAVICON, "/branding/default/favicon.jpg", "jpg", request, response); + } + + // --------------------------------------------------------------------- + // 관리자 화면 + 업로드 (인증 필요, 관리자 권한 검증) + // --------------------------------------------------------------------- + private boolean isAdmin(HttpServletRequest request) + { + HttpSession session = request.getSession(false); + if(session == null) return false; + Object obj = session.getAttribute("tokenInfo"); + if(!(obj instanceof TokenInfo)) return false; + String auth = ((TokenInfo)obj).getAuthorities(); + return (auth != null && auth.indexOf("ROLE_ADMIN") > -1); + } + + @RequestMapping(value = "/branding/brandingManageView.do") + public ModelAndView brandingManageView(HttpServletRequest request) + { + ModelAndView mav = new ModelAndView(); + if(!isAdmin(request)) + { + mav.setViewName("redirect:/main/mainPage.do"); + return mav; + } + mav.addObject("hasLogo" , findOverride("logo" , ALLOW_LOGO) != null); + mav.addObject("hasFavicon", findOverride("favicon", ALLOW_FAVICON) != null); + mav.setViewName("uritms-tiles1/branding/brandingManage"); + return mav; + } + + @ResponseBody + @RequestMapping(value = "/branding/upload.do") + public String upload(@RequestParam("kind") String kind + , @RequestParam("file") MultipartFile file + , HttpServletRequest request) throws IOException + { + if(!isAdmin(request)) + { + return "{\"resultCd\":\"-9\",\"resultMsg\":\"관리자만 변경할 수 있습니다.\"}"; + } + if(!("logo".equals(kind) || "favicon".equals(kind))) + { + return "{\"resultCd\":\"-1\",\"resultMsg\":\"잘못된 요청입니다.\"}"; + } + if(file == null || file.isEmpty()) + { + return "{\"resultCd\":\"-2\",\"resultMsg\":\"파일을 선택해 주세요.\"}"; + } + if(file.getSize() > MAX_SIZE) + { + return "{\"resultCd\":\"-3\",\"resultMsg\":\"파일 크기는 2MB 이하만 허용됩니다.\"}"; + } + + List allow = "logo".equals(kind) ? ALLOW_LOGO : ALLOW_FAVICON; + String ext = extOf(file.getOriginalFilename()); + if(!allow.contains(ext)) + { + return "{\"resultCd\":\"-4\",\"resultMsg\":\"허용되지 않는 형식입니다. (허용: " + allow + ")\"}"; + } + + // 저장 파일명은 서버가 고정 생성(kind.ext) — 사용자 파일명 미사용 → 경로조작 원천 차단 + File dir = getBrandingDir(); + // 기존 동종 오버라이드 정리(확장자 변경 대비) + File old = findOverride(kind, allow); + if(old != null) old.delete(); + + File target = new File(dir, kind + "." + ext); + // canonical 경로가 지정 디렉터리 하위인지 재확인(방어적) + if(!target.getCanonicalPath().startsWith(dir.getCanonicalPath())) + { + return "{\"resultCd\":\"-5\",\"resultMsg\":\"잘못된 경로입니다.\"}"; + } + + Files.copy(file.getInputStream(), target.toPath(), java.nio.file.StandardCopyOption.REPLACE_EXISTING); + log.info("F12 브랜딩 업로드 완료: kind={}, ext={}, path={}", kind, ext, target.getAbsolutePath()); + + return "{\"resultCd\":\"0\",\"resultMsg\":\"정상적으로 변경되었습니다.\"}"; + } +} diff --git a/front/src/main/java/com/urpsys/basefront/controller/MainController.java b/front/src/main/java/com/urpsys/basefront/controller/MainController.java index d0a4aa42..37707b75 100644 --- a/front/src/main/java/com/urpsys/basefront/controller/MainController.java +++ b/front/src/main/java/com/urpsys/basefront/controller/MainController.java @@ -106,8 +106,30 @@ public class MainController private String strClient; // 납품고객 @Value("${custom.urlAuthCheck}") - private String strUrlAuthCheck; // 2026.03.12 나혁제 url 보안체크 여부 - + private String strUrlAuthCheck; // 2026.03.12 나혁제 url 보안체크 여부 + + // 2026.07.19 SR#1~3 시스템 관리자(KIC 담당자) 성명/호칭 동적 셋팅 (프로파일 yml custom.adminName/custom.adminTitle 로 설정, 미설정 시 "시스템 관리자") + @Value("${custom.adminName:}") + private String strAdminName; // 시스템 관리자 성명 (예: 홍길동) + + @Value("${custom.adminTitle:}") + private String strAdminTitle; // 시스템 관리자 호칭 (예: 과장) + + /** + * 시스템 관리자 표기 문자열 생성 (SR#1~3) + * 성명 미설정: "시스템 관리자" / 성명 설정: "시스템 관리자(홍길동 과장)" + */ + private String getAdminDisplay() + { + String strName = (strAdminName == null) ? "" : strAdminName.trim(); + String strTitle = (strAdminTitle == null) ? "" : strAdminTitle.trim(); + if(strName.equals("")) + { + return "시스템 관리자"; + } + return "시스템 관리자(" + strName + (strTitle.equals("") ? "" : " " + strTitle) + ")"; + } + @RequestMapping(value={ "/", "/main/actionMain.do"}) public String actionMain(HttpServletRequest request , HttpServletResponse response @@ -149,15 +171,18 @@ public class MainController // 에러메세지 생성 if(srError[0].equals("-1")) { - strErrorMsg = "고객님의 아이디는 5회 로그인 오류로 인해 잠금처리 되었습니다. 시스템 관리자에게 연락해 주세요."; + // SR#1,2 / 장애처리03 : 계정 잠금 안내 (시스템 관리자 성명·호칭 동적) + strErrorMsg = "로그인 시도 횟수 초과로 계정이 잠겼습니다. " + getAdminDisplay() + "에게 문의 바랍니다."; } else if(srError[0].equals("-2")) { - strErrorMsg = "아이디 혹은 비밀번호을 확인해주세요. 5회 로그인 오류인경우 아이디가 잠금처리가 됩니다."; + // SR#3 / 장애처리03 : 아이디 또는 패스워드 오입력 (잠금과 구분) + strErrorMsg = "아이디 또는 패스워드가 잘못 되었습니다. 아이디와 패스워드를 정확히 입력해 주세요."; } else if(srError[0].equals("-3")) { - strErrorMsg = "아이디 혹은 비밀번호을 확인해주세요. 5회 로그인 오류인경우 아이디가 잠금처리가 됩니다."; + // SR#3 / 장애처리03 : 아이디 또는 패스워드 오입력 (잠금과 구분) + strErrorMsg = "아이디 또는 패스워드가 잘못 되었습니다. 아이디와 패스워드를 정확히 입력해 주세요."; } else if(srError[0].equals("-4")) { diff --git a/front/src/main/java/com/urpsys/itmsfront/bbs/controller/ArticleCommentController.java b/front/src/main/java/com/urpsys/itmsfront/bbs/controller/ArticleCommentController.java index a10d5629..6528b282 100644 --- a/front/src/main/java/com/urpsys/itmsfront/bbs/controller/ArticleCommentController.java +++ b/front/src/main/java/com/urpsys/itmsfront/bbs/controller/ArticleCommentController.java @@ -88,7 +88,7 @@ public class ArticleCommentController String strMoveUrl = ""; - // 인스던트 상세화면을 이동 + // 서비스 상세화면을 이동 if(comment.getBbsId().equals("INCIDENT")) { strMoveUrl = "redirect:/srm/getIncidentBySeq.do?inIncidentSeq="+comment.getNttId(); @@ -131,7 +131,7 @@ public class ArticleCommentController String strMoveUrl = ""; - // 인스던트 상세화면을 이동 + // 서비스 상세화면을 이동 if(comment.getBbsId().equals("INCIDENT")) { strMoveUrl = "redirect:/srm/getIncidentBySeq.do?inIncidentSeq="+comment.getNttId(); diff --git a/front/src/main/java/com/urpsys/itmsfront/bbs/controller/BBSAdminManageController.java b/front/src/main/java/com/urpsys/itmsfront/bbs/controller/BBSAdminManageController.java index c10f2654..f0cdce03 100644 --- a/front/src/main/java/com/urpsys/itmsfront/bbs/controller/BBSAdminManageController.java +++ b/front/src/main/java/com/urpsys/itmsfront/bbs/controller/BBSAdminManageController.java @@ -469,6 +469,9 @@ public class BBSAdminManageController model.addAttribute("result" , returnMap.get("resultMap")); model.addAttribute("resultCnList" , returnMap.get("resultCnList")); // 2025.04.01 나혁제 댓글정보 추가 model.addAttribute("sessionUniqId", memberVo.getTokenInfo().getUniqId()); + // 2026.07.19 기능개선09/F09 : 관리자 게시물/댓글 삭제 권한 플래그 + String strBbsRole = memberVo.getTokenInfo().getAuthorities(); + model.addAttribute("sessionAdminYn", (strBbsRole != null && strBbsRole.indexOf("ROLE_ADMIN") > -1) ? "Y" : "N"); //---------------------------- // template 처리 (기본 BBS template 지정 포함) diff --git a/front/src/main/java/com/urpsys/itmsfront/srm/controller/ReportCheckController.java b/front/src/main/java/com/urpsys/itmsfront/srm/controller/ReportCheckController.java index 9fe18721..70333930 100644 --- a/front/src/main/java/com/urpsys/itmsfront/srm/controller/ReportCheckController.java +++ b/front/src/main/java/com/urpsys/itmsfront/srm/controller/ReportCheckController.java @@ -189,7 +189,7 @@ public class ReportCheckController // RestApi Call End --------------------------------- - // 인스던트 본문 복호화처리 + // 서비스 본문 복호화처리 String strReportBody = (String)resultReportCheck.get("txReportBody"); String strReportBodyDec = CommonUtil.base64decode(strReportBody); @@ -257,7 +257,7 @@ public class ReportCheckController // RestApi Call End --------------------------------- - // 인스던트 본문 복호화처리 + // 서비스 본문 복호화처리 String strReportBody = (String)resultReportCheck.get("txReportBody"); String strReportBodyDec = CommonUtil.base64decode(strReportBody); @@ -307,16 +307,16 @@ public class ReportCheckController List> resultService = (List>)returnMap.get("resultService"); List> resultForm = (List>)returnMap.get("resultForm"); Map resultTaskMap = (Map)returnMap.get("resultTask"); - Map resultIncident = (Map)returnMap.get("resultIncident"); // 인스던트 정보 확인 + Map resultIncident = (Map)returnMap.get("resultIncident"); // 서비스 정보 확인 Map resultAsset = (Map)returnMap.get("resultAsset"); // 2025.08.20 나혁제 자산정보추가 model.addAttribute("resultService" , resultService ); // 서비스 정보 model.addAttribute("resultTaskMap" , resultTaskMap ); // 작업정보 - model.addAttribute("resultIncident" , resultIncident ); // 인스던트 정보 + model.addAttribute("resultIncident" , resultIncident ); // 서비스 정보 model.addAttribute("resultForm" , resultForm ); // 보고서 양식 정보 model.addAttribute("resultAsset" , resultAsset ); // 보고서 양식 정보 - // 인스던트 정보가 없는경우 0 으로 세팅 + // 서비스 정보가 없는경우 0 으로 세팅 if(resultIncident.get("inIncidentSeq") == null) { model.addAttribute("inIncidentSeq", 0 ); diff --git a/front/src/main/java/com/urpsys/itmsfront/srm/controller/ReportErrorController.java b/front/src/main/java/com/urpsys/itmsfront/srm/controller/ReportErrorController.java index fa221657..1f778825 100644 --- a/front/src/main/java/com/urpsys/itmsfront/srm/controller/ReportErrorController.java +++ b/front/src/main/java/com/urpsys/itmsfront/srm/controller/ReportErrorController.java @@ -180,7 +180,7 @@ public class ReportErrorController // RestApi Call End --------------------------------- - // 인스던트 본문 복호화처리 + // 서비스 본문 복호화처리 String strReportBody = (String)resultReportError.get("txReportBody"); String strReportBodyDec = CommonUtil.base64decode(strReportBody); @@ -247,7 +247,7 @@ public class ReportErrorController // RestApi Call End --------------------------------- - // 인스던트 본문 복호화처리 + // 서비스 본문 복호화처리 String strReportBody = (String)resultReportError.get("txReportBody"); String strReportBodyDec = CommonUtil.base64decode(strReportBody); @@ -294,14 +294,14 @@ public class ReportErrorController List> resultService = (List>)returnMap.get("resultService"); List> resultForm = (List>)returnMap.get("resultForm"); Map resultTaskMap = (Map)returnMap.get("resultTask"); - Map resultIncident = (Map)returnMap.get("resultIncident"); // 인스던트 정보 확인 + Map resultIncident = (Map)returnMap.get("resultIncident"); // 서비스 정보 확인 model.addAttribute("resultService" , resultService ); // 서비스 정보 model.addAttribute("resultTaskMap" , resultTaskMap ); // 작업정보 - model.addAttribute("resultIncident" , resultIncident ); // 인스던트 정보 + model.addAttribute("resultIncident" , resultIncident ); // 서비스 정보 model.addAttribute("resultForm" , resultForm ); // 보고서 양식 정보 - // 인스던트 정보가 없는경우 0 으로 세팅 + // 서비스 정보가 없는경우 0 으로 세팅 if(resultIncident.get("inIncidentSeq") == null) { model.addAttribute("inIncidentSeq", 0 ); diff --git a/front/src/main/java/com/urpsys/itmsfront/srm/controller/ReportIssueController.java b/front/src/main/java/com/urpsys/itmsfront/srm/controller/ReportIssueController.java index e4ef38c1..89505b7c 100644 --- a/front/src/main/java/com/urpsys/itmsfront/srm/controller/ReportIssueController.java +++ b/front/src/main/java/com/urpsys/itmsfront/srm/controller/ReportIssueController.java @@ -180,7 +180,7 @@ public class ReportIssueController // RestApi Call End --------------------------------- - // 인스던트 본문 복호화처리 + // 서비스 본문 복호화처리 String strReportBody = (String)resultReportIssue.get("txReportBody"); String strReportBodyDec = CommonUtil.base64decode(strReportBody); @@ -247,7 +247,7 @@ public class ReportIssueController // RestApi Call End --------------------------------- - // 인스던트 본문 복호화처리 + // 서비스 본문 복호화처리 String strReportBody = (String)resultReportIssue.get("txReportBody"); String strReportBodyDec = CommonUtil.base64decode(strReportBody); @@ -295,14 +295,14 @@ public class ReportIssueController List> resultService = (List>)returnMap.get("resultService"); List> resultForm = (List>)returnMap.get("resultForm"); Map resultTaskMap = (Map)returnMap.get("resultTask"); - Map resultIncident = (Map)returnMap.get("resultIncident"); // 인스던트 정보 확인 + Map resultIncident = (Map)returnMap.get("resultIncident"); // 서비스 정보 확인 model.addAttribute("resultService" , resultService ); // 서비스 정보 model.addAttribute("resultTaskMap" , resultTaskMap ); // 작업정보 - model.addAttribute("resultIncident" , resultIncident ); // 인스던트 정보 + model.addAttribute("resultIncident" , resultIncident ); // 서비스 정보 model.addAttribute("resultForm" , resultForm ); // 보고서 양식 정보 - // 인스던트 정보가 없는경우 0 으로 세팅 + // 서비스 정보가 없는경우 0 으로 세팅 if(resultIncident.get("inIncidentSeq") == null) { model.addAttribute("inIncidentSeq", 0 ); diff --git a/front/src/main/java/com/urpsys/itmsfront/srm/controller/ReportOtherController.java b/front/src/main/java/com/urpsys/itmsfront/srm/controller/ReportOtherController.java index 43bee873..9df7b224 100644 --- a/front/src/main/java/com/urpsys/itmsfront/srm/controller/ReportOtherController.java +++ b/front/src/main/java/com/urpsys/itmsfront/srm/controller/ReportOtherController.java @@ -181,7 +181,7 @@ public class ReportOtherController // RestApi Call End --------------------------------- - // 인스던트 본문 복호화처리 + // 서비스 본문 복호화처리 String strReportBody = (String)resultReportOther.get("txReportBody"); String strReportBodyDec = CommonUtil.base64decode(strReportBody); @@ -247,7 +247,7 @@ public class ReportOtherController // RestApi Call End --------------------------------- - // 인스던트 본문 복호화처리 + // 서비스 본문 복호화처리 String strReportBody = (String)resultReportOther.get("txReportBody"); String strReportBodyDec = CommonUtil.base64decode(strReportBody); @@ -298,14 +298,14 @@ public class ReportOtherController List> resultService = (List>)returnMap.get("resultService"); List> resultForm = (List>)returnMap.get("resultForm"); Map resultTaskMap = (Map)returnMap.get("resultTask"); - Map resultIncident = (Map)returnMap.get("resultIncident"); // 인스던트 정보 확인 + Map resultIncident = (Map)returnMap.get("resultIncident"); // 서비스 정보 확인 model.addAttribute("resultService" , resultService ); // 서비스 정보 model.addAttribute("resultTaskMap" , resultTaskMap ); // 작업정보 - model.addAttribute("resultIncident" , resultIncident ); // 인스던트 정보 + model.addAttribute("resultIncident" , resultIncident ); // 서비스 정보 model.addAttribute("resultForm" , resultForm ); // 보고서 양식 정보 - // 인스던트 정보가 없는경우 0 으로 세팅 + // 서비스 정보가 없는경우 0 으로 세팅 if(resultIncident.get("inIncidentSeq") == null) { model.addAttribute("inIncidentSeq", 0 ); diff --git a/front/src/main/java/com/urpsys/itmsfront/srm/controller/SvcDeskController.java b/front/src/main/java/com/urpsys/itmsfront/srm/controller/SvcDeskController.java index 54edf5d5..8777a4f8 100644 --- a/front/src/main/java/com/urpsys/itmsfront/srm/controller/SvcDeskController.java +++ b/front/src/main/java/com/urpsys/itmsfront/srm/controller/SvcDeskController.java @@ -77,7 +77,7 @@ public class SvcDeskController CommonService commonService; /** - * 서비스 데스크 인스던트 목록을 조회한다. + * 서비스 데스크 서비스 목록을 조회한다. * @author urp 인프라본부 나혁제 * 작성일 : 2025.02.08 */ @@ -138,7 +138,7 @@ public class SvcDeskController } /** - * 서비스 데스크 인스던트 상세조회 화면으로 이동한다. + * 서비스 데스크 서비스 상세조회 화면으로 이동한다. * @author urp 인프라본부 나혁제 * 작성일 : 2025.02.13 */ @@ -187,7 +187,7 @@ public class SvcDeskController // RestApi Call End --------------------------------- - // 인스던트 본문 복호화처리 + // 서비스 본문 복호화처리 String strIncidentBody = (String)resultIncident.get("txIncidentBody"); String strIncidentBodyDec = CommonUtil.base64decode(strIncidentBody); @@ -215,7 +215,7 @@ public class SvcDeskController } /** - * 서비스 데스크 인스던트 인쇄 화면 오픈 + * 서비스 데스크 서비스 인쇄 화면 오픈 * @author urp 인프라본부 나혁제 * 작성일 : 2025.02.15 */ @@ -261,7 +261,7 @@ public class SvcDeskController // RestApi Call End --------------------------------- - // 인스던트 본문 복호화처리 + // 서비스 본문 복호화처리 String strIncidentBody = (String)resultIncident.get("txIncidentBody"); String strIncidentBodyDec = CommonUtil.base64decode(strIncidentBody); @@ -286,7 +286,7 @@ public class SvcDeskController /** - * 서비스 데스크 인스던트 등록 화면으로 이동한다. + * 서비스 데스크 서비스 등록 화면으로 이동한다. * @author urp 인프라본부 나혁제 * 작성일 : 2025.02.13 */ @@ -338,7 +338,7 @@ public class SvcDeskController // 서비스코드 String strInServiceCode = CommonUtil.nvl(resultReqIncident.get("inServiceCode")); - // 인스던트 본문 복호화처리 + // 서비스 본문 복호화처리 String strIncidentBody = (String)resultReqIncident.get("txIncidentBody"); String strIncidentBodyDec = CommonUtil.base64decode(strIncidentBody); @@ -382,7 +382,7 @@ public class SvcDeskController } /** - * 서비스 데스크 인스던트 수정 화면으로 이동한다. + * 서비스 데스크 서비스 수정 화면으로 이동한다. * @author urp 인프라본부 나혁제 * 작성일 : 2025.02.13 */ @@ -433,7 +433,7 @@ public class SvcDeskController // RestApi Call End --------------------------------- - // 인스던트 본문 복호화처리 + // 서비스 본문 복호화처리 String strIncidentBody = (String)resultIncident.get("txIncidentBody"); String strIncidentBodyDec = CommonUtil.base64decode(strIncidentBody); @@ -473,7 +473,7 @@ public class SvcDeskController } /** - * 서비스 데스크 인스던트 새로만들기 화면으로 이동한다. + * 서비스 데스크 서비스 새로만들기 화면으로 이동한다. * @author urp 인프라본부 나혁제 * 작성일 : 2026.01.21 */ @@ -522,7 +522,7 @@ public class SvcDeskController // RestApi Call End --------------------------------- - // 인스던트 본문 복호화처리 + // 서비스 본문 복호화처리 String strIncidentBody = (String)resultIncident.get("txIncidentBody"); String strIncidentBodyDec = CommonUtil.base64decode(strIncidentBody); @@ -586,7 +586,7 @@ public class SvcDeskController /** - * 서비스데스크 인스던트 등록 처리를 한다. + * 서비스데스크 서비스 등록 처리를 한다. * @author urp 인프라본부 나혁제 * 작성일 : 2025.02.13 */ @@ -701,16 +701,26 @@ public class SvcDeskController String strReqApprovalYn = CommonUtil.getData(request, "reqApprovalYn"); - // 접수처리 메일처리 - if(returnMap.get("resultCd").equals("0")) + // 2026.07.19 SR#12 : 등록(커밋) 이후의 메일발송 실패가 사용자에게 오류페이지로 노출되어 + // 'DB에는 등록됐는데 에러화면' 이중 결함을 유발하던 문제 → try/catch로 격리 + try { - commonService.sendIncidentMail(1, (int)returnMap.get("inIncidentSeq")); + // 접수처리 메일처리 + if(returnMap.get("resultCd").equals("0")) + { + commonService.sendIncidentMail(1, (int)returnMap.get("inIncidentSeq")); + } + + // 승인요청 메일처리 + if(strReqApprovalYn.equals("Y") && returnMap.get("resultCd").equals("0") ) + { + commonService.sendIncidentMail(3, (int)returnMap.get("inIncidentSeq")); + } } - - // 승인요청 메일처리 - if(strReqApprovalYn.equals("Y") && returnMap.get("resultCd").equals("0") ) + catch(Exception mailEx) { - commonService.sendIncidentMail(3, (int)returnMap.get("inIncidentSeq")); + // 메일 발송 실패는 등록 결과에 영향을 주지 않음 (등록은 이미 정상 처리됨) + log.error("서비스 등록 후 메일발송 실패(등록은 정상): {}", mailEx.getMessage()); } log.info("<<<<<<<<<<<<<<< /srm/addIncident.do >>>>>>>>>>>>>>>"); @@ -719,7 +729,7 @@ public class SvcDeskController } /** - * 서비스데스크 인스던트 수정 처리를 한다. + * 서비스데스크 서비스 수정 처리를 한다. * @author urp 인프라본부 나혁제 * 작성일 : 2025.02.14 */ @@ -878,7 +888,7 @@ public class SvcDeskController } /** - * 서비스데스크 인스던트 삭제 처리를 한다. + * 서비스데스크 서비스 삭제 처리를 한다. * @author urp 인프라본부 나혁제 * 작성일 : 2025.02.24 */ @@ -915,7 +925,7 @@ public class SvcDeskController } /** - * 서비스데스크 인스던트 승인요청 처리를 한다. + * 서비스데스크 서비스 승인요청 처리를 한다. * @author urp 인프라본부 나혁제 * 작성일 : 2025.02.24 */ @@ -978,7 +988,7 @@ public class SvcDeskController /** - * 서비스데스크 인스던트 처리완료 처리를 한다. + * 서비스데스크 서비스 처리완료 처리를 한다. * @author urp 인프라본부 나혁제 * 작성일 : 2025.02.15 */ @@ -1041,7 +1051,7 @@ public class SvcDeskController } /** - * 인스던트 승인 처리를 한다. + * 서비스 승인 처리를 한다. * @author urp 인프라본부 나혁제 * 작성일 : 2025.02.24 */ @@ -1103,7 +1113,7 @@ public class SvcDeskController } /** - * 인스던트 반려 처리를 한다. + * 서비스 반려 처리를 한다. * @author urp 인프라본부 나혁제 * 작성일 : 2025.02.24 */ diff --git a/front/src/main/java/com/urpsys/itmsfront/srm/controller/SvcDeskReqController.java b/front/src/main/java/com/urpsys/itmsfront/srm/controller/SvcDeskReqController.java index b0dfa3f5..b51f5894 100644 --- a/front/src/main/java/com/urpsys/itmsfront/srm/controller/SvcDeskReqController.java +++ b/front/src/main/java/com/urpsys/itmsfront/srm/controller/SvcDeskReqController.java @@ -77,7 +77,7 @@ public class SvcDeskReqController CommonService commonService; /** - * 서비스 데스크 인스던트 신청 목록을 조회한다. + * 서비스 데스크 서비스 신청 목록을 조회한다. * @author urp 인프라본부 나혁제 * 작성일 : 2025.12.15 */ @@ -128,7 +128,7 @@ public class SvcDeskReqController } /** - * 서비스 데스크 인스던트 신청 상세조회 화면으로 이동한다. + * 서비스 데스크 서비스 신청 상세조회 화면으로 이동한다. * @author URP 인프라본부 나혁제 * 작성일 : 2025.12.16 */ @@ -165,7 +165,7 @@ public class SvcDeskReqController log.info("strCompletedYn [{}]", strCompletedYn ); // RestApi Call End --------------------------------- - // 인스던트 본문 복호화처리 + // 서비스 본문 복호화처리 String strIncidentBody = (String)resultReqIncident.get("txIncidentBody"); String strIncidentBodyDec = CommonUtil.base64decode(strIncidentBody); @@ -220,7 +220,7 @@ public class SvcDeskReqController /** - * 서비스 데스크 인스던트 신청 등록 화면으로 이동한다. + * 서비스 데스크 서비스 신청 등록 화면으로 이동한다. * @author URP 인프라본부 나혁제 * 작성일 : 2025.12.15 */ @@ -270,7 +270,7 @@ public class SvcDeskReqController } /** - * 서비스 데스크 인스던트 신청 수정 화면으로 이동한다. + * 서비스 데스크 서비스 신청 수정 화면으로 이동한다. * @author URP 인프라본부 나혁제 * 작성일 : 2025.12.16 */ @@ -300,7 +300,7 @@ public class SvcDeskReqController Map resultReqIncident = (Map)returnMap.get("resultReqIncident"); // RestApi Call End --------------------------------- - // 인스던트 본문 복호화처리 + // 서비스 본문 복호화처리 String strIncidentBody = (String)resultReqIncident.get("txIncidentBody"); String strIncidentBodyDec = CommonUtil.base64decode(strIncidentBody); @@ -342,7 +342,7 @@ public class SvcDeskReqController /** - * 서비스데스크 인스던트 신청 등록 처리를 한다. + * 서비스데스크 서비스 신청 등록 처리를 한다. * @author URP 인프라본부 나혁제 * 작성일 : 2025.12.15 */ @@ -421,7 +421,7 @@ public class SvcDeskReqController } /** - * 서비스데스크 인스던트 신청 수정 처리를 한다. + * 서비스데스크 서비스 신청 수정 처리를 한다. * @author URP 인프라본부 나혁제 * 작성일 : 2025.12.17 */ @@ -516,7 +516,7 @@ public class SvcDeskReqController } /** - * 서비스데스크 인스던트 신청정보 삭제 처리를 한다. + * 서비스데스크 서비스 신청정보 삭제 처리를 한다. * @author urp 인프라본부 나혁제 * 작성일 : 2025.12.18 */ @@ -553,7 +553,7 @@ public class SvcDeskReqController } /** - * 인스던트 신청정보 반려 처리를 한다. + * 서비스 신청정보 반려 처리를 한다. * @author URP 인프라본부 나혁제 * 작성일 : 2025.12.18 */ diff --git a/front/src/main/java/com/urpsys/itmsfront/srm/domain/IncidentReqVo.java b/front/src/main/java/com/urpsys/itmsfront/srm/domain/IncidentReqVo.java index 8c60cd17..3ec065c4 100644 --- a/front/src/main/java/com/urpsys/itmsfront/srm/domain/IncidentReqVo.java +++ b/front/src/main/java/com/urpsys/itmsfront/srm/domain/IncidentReqVo.java @@ -1,7 +1,7 @@ package com.urpsys.itmsfront.srm.domain; /** - * 서비스데스크 인스던트 신청 처리 model 클래스를 정의한다. + * 서비스데스크 서비스 신청 처리 model 클래스를 정의한다. * @author urp 인프라본부 나혁제 * @since 2025.12.15 * @version 1.0 diff --git a/front/src/main/java/com/urpsys/itmsfront/srm/domain/IncidentVo.java b/front/src/main/java/com/urpsys/itmsfront/srm/domain/IncidentVo.java index 90df2afe..0763ff1b 100644 --- a/front/src/main/java/com/urpsys/itmsfront/srm/domain/IncidentVo.java +++ b/front/src/main/java/com/urpsys/itmsfront/srm/domain/IncidentVo.java @@ -1,278 +1,278 @@ -package com.urpsys.itmsfront.srm.domain; - -/** - * 서비스데스크 인스던트 처리 model 클래스를 정의한다. - * @author urp 인프라본부 나혁제 - * @since 2025.02.13 - * @version 1.0 - * @see - * - *
- * << 개정이력(Modification Information) >>
- *   
- *   수정일         수정자           수정내용
- *  -------      --------    ---------------------------
- *   2025.02.13   나혁제        최초 생성
- *
- * 
- */ - -public class IncidentVo -{ - private String inIncidentSeq ; - private String inIncidentStatus ; - private String vcIncidentNum ; - private String inServiceCode ; - private String vcServiceName ; - private String inChargeUser ; - private String vcChargeUser ; - private String inDevUser ; - private String vcDevUser ; - private String dtReceiptDatetime ; - private String dtReqDatetime ; - private String dtCompleteDatetime ; - private String vcIncidentTitle ; - private String txIncidentBody ; - private String vcIncidentStatus ; - private String inRegUser ; - private String vcRegUser ; - private String inReqApprovalUser ; - private String vcReqApprovalUser ; - private String dtReqApprovalDatetime ; - private String txReqApprovalComment ; - private String vcCompleted ; - private String inCompleted ; - private String txCompletedComment ; - private String inDifficulty ; - private String inSatisfaction ; - private String vcServiceTarget ; - private String vcRequestDept ; - private String vcRequestUser ; - private String dtServiceStartDatetime ; - private String atchFileId ; - private String atchFileInUpGb ; - private String vcReqIncidentNum ; // 2025.12.17 나혁제 신청번호 - private String reqAtchFileId ; // 2025.12.17 나혁제 신청첨부파일 - private String reqRptRejTxComment ; // 2025.12.17 나혁제 접수의견 - - public String getInIncidentSeq() { - return inIncidentSeq; - } - public void setInIncidentSeq(String inIncidentSeq) { - this.inIncidentSeq = inIncidentSeq; - } - public String getInIncidentStatus() { - return inIncidentStatus; - } - public void setInIncidentStatus(String inIncidentStatus) { - this.inIncidentStatus = inIncidentStatus; - } - public String getVcIncidentNum() { - return vcIncidentNum; - } - public void setVcIncidentNum(String vcIncidentNum) { - this.vcIncidentNum = vcIncidentNum; - } - public String getInServiceCode() { - return inServiceCode; - } - public void setInServiceCode(String inServiceCode) { - this.inServiceCode = inServiceCode; - } - public String getVcServiceName() { - return vcServiceName; - } - public void setVcServiceName(String vcServiceName) { - this.vcServiceName = vcServiceName; - } - public String getInChargeUser() { - return inChargeUser; - } - public void setInChargeUser(String inChargeUser) { - this.inChargeUser = inChargeUser; - } - public String getVcChargeUser() { - return vcChargeUser; - } - public void setVcChargeUser(String vcChargeUser) { - this.vcChargeUser = vcChargeUser; - } - public String getInDevUser() { - return inDevUser; - } - public void setInDevUser(String inDevUser) { - this.inDevUser = inDevUser; - } - public String getVcDevUser() { - return vcDevUser; - } - public void setVcDevUser(String vcDevUser) { - this.vcDevUser = vcDevUser; - } - public String getDtReceiptDatetime() { - return dtReceiptDatetime; - } - public void setDtReceiptDatetime(String dtReceiptDatetime) { - this.dtReceiptDatetime = dtReceiptDatetime; - } - public String getDtReqDatetime() { - return dtReqDatetime; - } - public void setDtReqDatetime(String dtReqDatetime) { - this.dtReqDatetime = dtReqDatetime; - } - public String getDtCompleteDatetime() { - return dtCompleteDatetime; - } - public void setDtCompleteDatetime(String dtCompleteDatetime) { - this.dtCompleteDatetime = dtCompleteDatetime; - } - public String getVcIncidentTitle() { - return vcIncidentTitle; - } - public void setVcIncidentTitle(String vcIncidentTitle) { - this.vcIncidentTitle = vcIncidentTitle; - } - public String getTxIncidentBody() { - return txIncidentBody; - } - public void setTxIncidentBody(String txIncidentBody) { - this.txIncidentBody = txIncidentBody; - } - public String getVcIncidentStatus() { - return vcIncidentStatus; - } - public void setVcIncidentStatus(String vcIncidentStatus) { - this.vcIncidentStatus = vcIncidentStatus; - } - public String getInRegUser() { - return inRegUser; - } - public void setInRegUser(String inRegUser) { - this.inRegUser = inRegUser; - } - public String getVcRegUser() { - return vcRegUser; - } - public void setVcRegUser(String vcRegUser) { - this.vcRegUser = vcRegUser; - } - public String getInReqApprovalUser() { - return inReqApprovalUser; - } - public void setInReqApprovalUser(String inReqApprovalUser) { - this.inReqApprovalUser = inReqApprovalUser; - } - public String getVcReqApprovalUser() { - return vcReqApprovalUser; - } - public void setVcReqApprovalUser(String vcReqApprovalUser) { - this.vcReqApprovalUser = vcReqApprovalUser; - } - public String getDtReqApprovalDatetime() { - return dtReqApprovalDatetime; - } - public void setDtReqApprovalDatetime(String dtReqApprovalDatetime) { - this.dtReqApprovalDatetime = dtReqApprovalDatetime; - } - public String getTxReqApprovalComment() { - return txReqApprovalComment; - } - public void setTxReqApprovalComment(String txReqApprovalComment) { - this.txReqApprovalComment = txReqApprovalComment; - } - public String getVcCompleted() { - return vcCompleted; - } - public void setVcCompleted(String vcCompleted) { - this.vcCompleted = vcCompleted; - } - public String getInCompleted() { - return inCompleted; - } - public void setInCompleted(String inCompleted) { - this.inCompleted = inCompleted; - } - public String getTxCompletedComment() { - return txCompletedComment; - } - public void setTxCompletedComment(String txCompletedComment) { - this.txCompletedComment = txCompletedComment; - } - public String getInDifficulty() { - return inDifficulty; - } - public void setInDifficulty(String inDifficulty) { - this.inDifficulty = inDifficulty; - } - public String getInSatisfaction() { - return inSatisfaction; - } - public void setInSatisfaction(String inSatisfaction) { - this.inSatisfaction = inSatisfaction; - } - public String getVcServiceTarget() { - return vcServiceTarget; - } - public void setVcServiceTarget(String vcServiceTarget) { - this.vcServiceTarget = vcServiceTarget; - } - public String getVcRequestDept() { - return vcRequestDept; - } - public void setVcRequestDept(String vcRequestDept) { - this.vcRequestDept = vcRequestDept; - } - public String getVcRequestUser() { - return vcRequestUser; - } - public void setVcRequestUser(String vcRequestUser) { - this.vcRequestUser = vcRequestUser; - } - public String getDtServiceStartDatetime() { - return dtServiceStartDatetime; - } - public void setDtServiceStartDatetime(String dtServiceStartDatetime) { - this.dtServiceStartDatetime = dtServiceStartDatetime; - } - public String getAtchFileId() { - return atchFileId; - } - public void setAtchFileId(String atchFileId) { - this.atchFileId = atchFileId; - } - public String getAtchFileInUpGb() { - return atchFileInUpGb; - } - public void setAtchFileInUpGb(String atchFileInUpGb) { - this.atchFileInUpGb = atchFileInUpGb; - } - public String getVcReqIncidentNum() { - return vcReqIncidentNum; - } - public void setVcReqIncidentNum(String vcReqIncidentNum) { - this.vcReqIncidentNum = vcReqIncidentNum; - } - public String getReqAtchFileId() { - return reqAtchFileId; - } - public void setReqAtchFileId(String reqAtchFileId) { - this.reqAtchFileId = reqAtchFileId; - } - public String getReqRptRejTxComment() { - return reqRptRejTxComment; - } - public void setReqRptRejTxComment(String reqRptRejTxComment) { - this.reqRptRejTxComment = reqRptRejTxComment; - } - - - - - - - - - - +package com.urpsys.itmsfront.srm.domain; + +/** + * 서비스데스크 서비스 처리 model 클래스를 정의한다. + * @author urp 인프라본부 나혁제 + * @since 2025.02.13 + * @version 1.0 + * @see + * + *
+ * << 개정이력(Modification Information) >>
+ *   
+ *   수정일         수정자           수정내용
+ *  -------      --------    ---------------------------
+ *   2025.02.13   나혁제        최초 생성
+ *
+ * 
+ */ + +public class IncidentVo +{ + private String inIncidentSeq ; + private String inIncidentStatus ; + private String vcIncidentNum ; + private String inServiceCode ; + private String vcServiceName ; + private String inChargeUser ; + private String vcChargeUser ; + private String inDevUser ; + private String vcDevUser ; + private String dtReceiptDatetime ; + private String dtReqDatetime ; + private String dtCompleteDatetime ; + private String vcIncidentTitle ; + private String txIncidentBody ; + private String vcIncidentStatus ; + private String inRegUser ; + private String vcRegUser ; + private String inReqApprovalUser ; + private String vcReqApprovalUser ; + private String dtReqApprovalDatetime ; + private String txReqApprovalComment ; + private String vcCompleted ; + private String inCompleted ; + private String txCompletedComment ; + private String inDifficulty ; + private String inSatisfaction ; + private String vcServiceTarget ; + private String vcRequestDept ; + private String vcRequestUser ; + private String dtServiceStartDatetime ; + private String atchFileId ; + private String atchFileInUpGb ; + private String vcReqIncidentNum ; // 2025.12.17 나혁제 신청번호 + private String reqAtchFileId ; // 2025.12.17 나혁제 신청첨부파일 + private String reqRptRejTxComment ; // 2025.12.17 나혁제 접수의견 + + public String getInIncidentSeq() { + return inIncidentSeq; + } + public void setInIncidentSeq(String inIncidentSeq) { + this.inIncidentSeq = inIncidentSeq; + } + public String getInIncidentStatus() { + return inIncidentStatus; + } + public void setInIncidentStatus(String inIncidentStatus) { + this.inIncidentStatus = inIncidentStatus; + } + public String getVcIncidentNum() { + return vcIncidentNum; + } + public void setVcIncidentNum(String vcIncidentNum) { + this.vcIncidentNum = vcIncidentNum; + } + public String getInServiceCode() { + return inServiceCode; + } + public void setInServiceCode(String inServiceCode) { + this.inServiceCode = inServiceCode; + } + public String getVcServiceName() { + return vcServiceName; + } + public void setVcServiceName(String vcServiceName) { + this.vcServiceName = vcServiceName; + } + public String getInChargeUser() { + return inChargeUser; + } + public void setInChargeUser(String inChargeUser) { + this.inChargeUser = inChargeUser; + } + public String getVcChargeUser() { + return vcChargeUser; + } + public void setVcChargeUser(String vcChargeUser) { + this.vcChargeUser = vcChargeUser; + } + public String getInDevUser() { + return inDevUser; + } + public void setInDevUser(String inDevUser) { + this.inDevUser = inDevUser; + } + public String getVcDevUser() { + return vcDevUser; + } + public void setVcDevUser(String vcDevUser) { + this.vcDevUser = vcDevUser; + } + public String getDtReceiptDatetime() { + return dtReceiptDatetime; + } + public void setDtReceiptDatetime(String dtReceiptDatetime) { + this.dtReceiptDatetime = dtReceiptDatetime; + } + public String getDtReqDatetime() { + return dtReqDatetime; + } + public void setDtReqDatetime(String dtReqDatetime) { + this.dtReqDatetime = dtReqDatetime; + } + public String getDtCompleteDatetime() { + return dtCompleteDatetime; + } + public void setDtCompleteDatetime(String dtCompleteDatetime) { + this.dtCompleteDatetime = dtCompleteDatetime; + } + public String getVcIncidentTitle() { + return vcIncidentTitle; + } + public void setVcIncidentTitle(String vcIncidentTitle) { + this.vcIncidentTitle = vcIncidentTitle; + } + public String getTxIncidentBody() { + return txIncidentBody; + } + public void setTxIncidentBody(String txIncidentBody) { + this.txIncidentBody = txIncidentBody; + } + public String getVcIncidentStatus() { + return vcIncidentStatus; + } + public void setVcIncidentStatus(String vcIncidentStatus) { + this.vcIncidentStatus = vcIncidentStatus; + } + public String getInRegUser() { + return inRegUser; + } + public void setInRegUser(String inRegUser) { + this.inRegUser = inRegUser; + } + public String getVcRegUser() { + return vcRegUser; + } + public void setVcRegUser(String vcRegUser) { + this.vcRegUser = vcRegUser; + } + public String getInReqApprovalUser() { + return inReqApprovalUser; + } + public void setInReqApprovalUser(String inReqApprovalUser) { + this.inReqApprovalUser = inReqApprovalUser; + } + public String getVcReqApprovalUser() { + return vcReqApprovalUser; + } + public void setVcReqApprovalUser(String vcReqApprovalUser) { + this.vcReqApprovalUser = vcReqApprovalUser; + } + public String getDtReqApprovalDatetime() { + return dtReqApprovalDatetime; + } + public void setDtReqApprovalDatetime(String dtReqApprovalDatetime) { + this.dtReqApprovalDatetime = dtReqApprovalDatetime; + } + public String getTxReqApprovalComment() { + return txReqApprovalComment; + } + public void setTxReqApprovalComment(String txReqApprovalComment) { + this.txReqApprovalComment = txReqApprovalComment; + } + public String getVcCompleted() { + return vcCompleted; + } + public void setVcCompleted(String vcCompleted) { + this.vcCompleted = vcCompleted; + } + public String getInCompleted() { + return inCompleted; + } + public void setInCompleted(String inCompleted) { + this.inCompleted = inCompleted; + } + public String getTxCompletedComment() { + return txCompletedComment; + } + public void setTxCompletedComment(String txCompletedComment) { + this.txCompletedComment = txCompletedComment; + } + public String getInDifficulty() { + return inDifficulty; + } + public void setInDifficulty(String inDifficulty) { + this.inDifficulty = inDifficulty; + } + public String getInSatisfaction() { + return inSatisfaction; + } + public void setInSatisfaction(String inSatisfaction) { + this.inSatisfaction = inSatisfaction; + } + public String getVcServiceTarget() { + return vcServiceTarget; + } + public void setVcServiceTarget(String vcServiceTarget) { + this.vcServiceTarget = vcServiceTarget; + } + public String getVcRequestDept() { + return vcRequestDept; + } + public void setVcRequestDept(String vcRequestDept) { + this.vcRequestDept = vcRequestDept; + } + public String getVcRequestUser() { + return vcRequestUser; + } + public void setVcRequestUser(String vcRequestUser) { + this.vcRequestUser = vcRequestUser; + } + public String getDtServiceStartDatetime() { + return dtServiceStartDatetime; + } + public void setDtServiceStartDatetime(String dtServiceStartDatetime) { + this.dtServiceStartDatetime = dtServiceStartDatetime; + } + public String getAtchFileId() { + return atchFileId; + } + public void setAtchFileId(String atchFileId) { + this.atchFileId = atchFileId; + } + public String getAtchFileInUpGb() { + return atchFileInUpGb; + } + public void setAtchFileInUpGb(String atchFileInUpGb) { + this.atchFileInUpGb = atchFileInUpGb; + } + public String getVcReqIncidentNum() { + return vcReqIncidentNum; + } + public void setVcReqIncidentNum(String vcReqIncidentNum) { + this.vcReqIncidentNum = vcReqIncidentNum; + } + public String getReqAtchFileId() { + return reqAtchFileId; + } + public void setReqAtchFileId(String reqAtchFileId) { + this.reqAtchFileId = reqAtchFileId; + } + public String getReqRptRejTxComment() { + return reqRptRejTxComment; + } + public void setReqRptRejTxComment(String reqRptRejTxComment) { + this.reqRptRejTxComment = reqRptRejTxComment; + } + + + + + + + + + + } \ No newline at end of file diff --git a/front/src/main/resources/static/js/tinymce_uritms_setting.js b/front/src/main/resources/static/js/tinymce_uritms_setting.js index 04f16ffc..c1f58f0b 100644 --- a/front/src/main/resources/static/js/tinymce_uritms_setting.js +++ b/front/src/main/resources/static/js/tinymce_uritms_setting.js @@ -29,6 +29,7 @@ function drawEditorWrite(strBody, content) selector: strSelector, height: 300, min_height: 300, // 최소 높이 + max_height: 600, // 2026.07.19 SR#13 최대 높이 제한 (초과 시 에디터 내부 스크롤) toolbar_mode: 'floating', //image upload image_title: true, @@ -134,6 +135,7 @@ function drawEditorRead(strBody, content) selector: strSelector, height: 300, min_height: 300, // 최소 높이 + max_height: 600, // 2026.07.19 SR#13 최대 높이 제한 (초과 시 에디터 내부 스크롤) toolbar_mode: 'floating', // readonly: 1, menubar: false, diff --git a/front/src/main/resources/validator/urp/ItsmValidator.xml b/front/src/main/resources/validator/urp/ItsmValidator.xml index 14876fbc..496065d6 100644 --- a/front/src/main/resources/validator/urp/ItsmValidator.xml +++ b/front/src/main/resources/validator/urp/ItsmValidator.xml @@ -1,189 +1,189 @@ - - - - - - -
- - - - - - - - maxlength - 50 - - - - - - - - - - - - - - - - - -
- - -
- - - - - - -
- - -
- - - - - - -
- - -
- - - - - - - - - - - -
- - -
- - - - - - - - - -
- - - -
- - - - - -
- - -
- - - - - -
- - -
- - - - - -
- - -
- - - - - -
- - - - - - - - - - -
- + + + + + + +
+ + + + + + + + maxlength + 50 + + + + + + + + + + + + + + + + + +
+ + +
+ + + + + + +
+ + +
+ + + + + + +
+ + +
+ + + + + + + + + + + +
+ + +
+ + + + + + + + + +
+ + + +
+ + + + + +
+ + +
+ + + + + +
+ + +
+ + + + + +
+ + +
+ + + + + +
+ + + + + + + + + + +
+
\ No newline at end of file diff --git a/front/src/main/webapp/WEB-INF/jsp/branding/brandingManage.jsp b/front/src/main/webapp/WEB-INF/jsp/branding/brandingManage.jsp new file mode 100644 index 00000000..3fe5ae21 --- /dev/null +++ b/front/src/main/webapp/WEB-INF/jsp/branding/brandingManage.jsp @@ -0,0 +1,115 @@ + +<%-- + * @Class Name : brandingManage.jsp + * @Description : 2026.07.19 기능개선12/F12 — 로고/파비콘 교체 관리(KIC 브랜딩) + * @author URP 인프라본부 +--%> +<%@ page language="java" contentType="text/html; charset=UTF-8" %> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> + + 로고/파비콘 관리 + + + +
+ + +
+

로고 / 파비콘 관리

+
+
+
+ +
+
+
+
+ + +
+ + + + + + + + + + + + + + + + + + + + + + +
로고/파비콘 관리
로고 + + 로고 파일 + + +
허용: svg/png/jpg/gif, 2MB 이하
+
파비콘 + 파비콘 미리보기 + 파비콘 파일 + + +
허용: ico/png/svg/jpg/gif, 2MB 이하
+
+

※ 변경 시 재기동 없이 즉시 반영됩니다. 업로드본이 없으면 KIC 기본 로고/파비콘이 표시됩니다.

+
+ +
diff --git a/front/src/main/webapp/WEB-INF/jsp/itms/bbs/admin/NoticeInqire.jsp b/front/src/main/webapp/WEB-INF/jsp/itms/bbs/admin/NoticeInqire.jsp index 79f9e8dc..885ac74c 100644 --- a/front/src/main/webapp/WEB-INF/jsp/itms/bbs/admin/NoticeInqire.jsp +++ b/front/src/main/webapp/WEB-INF/jsp/itms/bbs/admin/NoticeInqire.jsp @@ -327,6 +327,12 @@ + <%-- 2026.07.19 기능개선09/F09 : 관리자는 타인 게시물도 삭제 가능 --%> + + + <%-- 2025.04.01 나혁제 댓글형태 변경 @@ -390,7 +396,8 @@ ${listCn.wrterNm} ${listCn.frstRegisterPnttm}
- + <%-- 2026.07.19 기능개선09/F09 : 작성자 또는 관리자면 댓글 삭제 가능 --%> + diff --git a/front/src/main/webapp/WEB-INF/jsp/itms/bbs/admin/NoticeList.jsp b/front/src/main/webapp/WEB-INF/jsp/itms/bbs/admin/NoticeList.jsp index 0eade970..38c23669 100644 --- a/front/src/main/webapp/WEB-INF/jsp/itms/bbs/admin/NoticeList.jsp +++ b/front/src/main/webapp/WEB-INF/jsp/itms/bbs/admin/NoticeList.jsp @@ -1,347 +1,349 @@ - - -<% -/** - * @ Class Name : NoticeList.jsp - * @ Description : 게시물 목록화면 - * @ Modification Information - * @ - * @ 수정일 수정자 수정내용 - * @ ------- -------- --------------------------- - * @ 2025.01.20 나혁제 최초 생성 - * - * @ author urp 인프라본부 나혁제 - * @ since 2025.01.20 - * @ version 1.0 - * @ see - * - */ -%> - -<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> -<%-- <%@ page import="egovframework.com.cmm.service.EgovProperties" %> --%> -<%@ 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"%> - - - -<c:out value="${brdMstrVO.bbsNm}" />관리 - - -" rel="stylesheet" type="text/css"> - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - -
- - <%-- 2025.01.20 나혁제 신화면 적용 -
- - - -

관리

- --%> - - - - -
- - - - - - - - - - - -
- - - - -
- -
- - -
-
- - - - <%-- 2025.01.20 나혁제 신화면적용 - -
-
-
- - - - - -
-
-
- - --%> - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
게시물 목록
번호제목게시시작일게시종료일작성자작성일조회수
- <%-- --%> - - -   - - - reply arrow - - - - - - - - - <%-- - - " /> - - - - - --%> - - ', ''); return false;"> - - - -
- -
- - - - - - - -
- -
- - - -
- - -
- - -
-
- - - - <%-- 2025.01.20 나혁제 신디자인 적용 - -
- -
- - - -
- - -
- -
- -
- - --%> - - <%-- 2025.01.20 나혁제 신화면적용 -
- --%> -
+ + +<% +/** + * @ Class Name : NoticeList.jsp + * @ Description : 게시물 목록화면 + * @ Modification Information + * @ + * @ 수정일 수정자 수정내용 + * @ ------- -------- --------------------------- + * @ 2025.01.20 나혁제 최초 생성 + * + * @ author urp 인프라본부 나혁제 + * @ since 2025.01.20 + * @ version 1.0 + * @ see + * + */ +%> + +<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> +<%-- <%@ page import="egovframework.com.cmm.service.EgovProperties" %> --%> +<%@ 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"%> + + + +<c:out value="${brdMstrVO.bbsNm}" />관리 + + +" rel="stylesheet" type="text/css"> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + <%-- 2025.01.20 나혁제 신화면 적용 +
+ + + +

관리

+ --%> + + + + +
+ + + + + + + + + + + +
+ + + + +
+ +
+ + +
+
+ + + + <%-- 2025.01.20 나혁제 신화면적용 + +
+
+
+ + + + + +
+
+
+ + --%> + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
게시물 목록
번호제목게시시작일게시종료일작성자작성일조회수댓글수
+ <%-- --%> + + +   + + + reply arrow + + + + + + + + + <%-- + + " /> + + + + + --%> + + ', ''); return false;"> + + + +
+ +
+ + + + + + + +
+ +
+ + + +
+ + +
+ + +
+
+ + + + <%-- 2025.01.20 나혁제 신디자인 적용 + +
+ +
+ + + +
+ + +
+ +
+ +
+ + --%> + + <%-- 2025.01.20 나혁제 신화면적용 +
+ --%> +
\ No newline at end of file diff --git a/front/src/main/webapp/WEB-INF/jsp/itms/error/errorNoAuth.jsp b/front/src/main/webapp/WEB-INF/jsp/itms/error/errorNoAuth.jsp index f31890f6..012562ea 100644 --- a/front/src/main/webapp/WEB-INF/jsp/itms/error/errorNoAuth.jsp +++ b/front/src/main/webapp/WEB-INF/jsp/itms/error/errorNoAuth.jsp @@ -54,7 +54,7 @@ 해당 사용자는 현재 업무에 대해 처리권한이 없습니다. 서비스 이용에 불편을 드려 죄송합니다.
- 시스템 관리자에게 없무권한 부여후 사용하시길 바랍니다. + 시스템 관리자에게 업무권한 부여후 사용하시길 바랍니다.

diff --git a/front/src/main/webapp/WEB-INF/jsp/itms/pot/MyTodoPortlet.jsp b/front/src/main/webapp/WEB-INF/jsp/itms/pot/MyTodoPortlet.jsp index b5f7fb31..3d634e93 100644 --- a/front/src/main/webapp/WEB-INF/jsp/itms/pot/MyTodoPortlet.jsp +++ b/front/src/main/webapp/WEB-INF/jsp/itms/pot/MyTodoPortlet.jsp @@ -1,87 +1,87 @@ - -<% - /** - * @Class Name : MyTodoPortlet.jsp - * @Description : TO_DO 포틀릿 - * @Modification Information - * @ - * @ 수정일 수정자 수정내용 - * @ ------- -------- --------------------------- - * @ 2025.03.10 나혁제 최초 생성 - * - * @author urp 인프라본부 나혁제 - * @since 2025.03.10 - * @version 1.0 - * @see - * - */ -%> -<%@ 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="spring" uri="http://www.springframework.org/tags"%> - - - -
-

TO-DO 현황더보기 -
- - -
-

-
    - -
  • - - - - - ${result.vcType} - ${result.dtRegDatetime} - -
  • - -
    -
+ +<% + /** + * @Class Name : MyTodoPortlet.jsp + * @Description : TO_DO 포틀릿 + * @Modification Information + * @ + * @ 수정일 수정자 수정내용 + * @ ------- -------- --------------------------- + * @ 2025.03.10 나혁제 최초 생성 + * + * @author urp 인프라본부 나혁제 + * @since 2025.03.10 + * @version 1.0 + * @see + * + */ +%> +<%@ 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="spring" uri="http://www.springframework.org/tags"%> + + + +
+

TO-DO 현황더보기 +
+ + +
+

+
    + +
  • + + + + + ${result.vcType} + ${result.dtRegDatetime} + +
  • + +
    +
\ No newline at end of file diff --git a/front/src/main/webapp/WEB-INF/jsp/itms/rem/ReportList.jsp b/front/src/main/webapp/WEB-INF/jsp/itms/rem/ReportList.jsp index e6068727..5566b94e 100644 --- a/front/src/main/webapp/WEB-INF/jsp/itms/rem/ReportList.jsp +++ b/front/src/main/webapp/WEB-INF/jsp/itms/rem/ReportList.jsp @@ -161,7 +161,7 @@ - ${report.vcFormName} + ${report.vcFormName} diff --git a/front/src/main/webapp/WEB-INF/jsp/itms/search/SearchOne.jsp b/front/src/main/webapp/WEB-INF/jsp/itms/search/SearchOne.jsp index 1110d629..9e9f656b 100644 --- a/front/src/main/webapp/WEB-INF/jsp/itms/search/SearchOne.jsp +++ b/front/src/main/webapp/WEB-INF/jsp/itms/search/SearchOne.jsp @@ -1,221 +1,221 @@ - - -<% - /** - * @Class Name : SearchOne.jsp - * @Description : 개별 검색 처리 화면 - * @Modification Information - * @ - * @ 수정일 수정자 수정내용 - * @ ------- -------- --------------------------- - * @ 2025.04.25 나혁제 최초 생성 - * - * @author urp 인프라본부 나혁제 - * @since 2025.04.25 - * @version 1.0 - * @see - * - */ -%> - -<%@ 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"%> - - -자산분류관리 - - - - - - - - - -
- - -
- -
- -
- -
-
-
- - - - - - - -
-
-
- - -
- -
-
- '${searchVO.searchKeyword}'에 대한 통합검색 결과 총${resultCnt}건입니다. -
-
- - -
- -
- - 인스던트 - 보고서 - 게시판 - - '${searchVO.searchKeyword}' 관련 정보 총${resultCnt} -
- - -
-
    - - -
  • 검색된 내용이 없습니다.
  • -
    - - -
  • - -
    - - - - -
    - ${result.source.user} - ${result.source.last_date} -
    - -
    - - -
      -
    • - ${result.source.text} -
    • -
    - -
  • -
    -
-
- -
- -
- - - - - -
- -
- -
- - - - - -
+ + +<% + /** + * @Class Name : SearchOne.jsp + * @Description : 개별 검색 처리 화면 + * @Modification Information + * @ + * @ 수정일 수정자 수정내용 + * @ ------- -------- --------------------------- + * @ 2025.04.25 나혁제 최초 생성 + * + * @author urp 인프라본부 나혁제 + * @since 2025.04.25 + * @version 1.0 + * @see + * + */ +%> + +<%@ 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"%> + + +자산분류관리 + + + + + + + + + +
+ + +
+ +
+ +
+ +
+
+
+ + + + + + + +
+
+
+ + +
+ +
+
+ '${searchVO.searchKeyword}'에 대한 통합검색 결과 총${resultCnt}건입니다. +
+
+ + +
+ +
+ + 서비스 + 보고서 + 게시판 + + '${searchVO.searchKeyword}' 관련 정보 총${resultCnt} +
+ + +
+
    + + +
  • 검색된 내용이 없습니다.
  • +
    + + +
  • + +
    + + + + +
    + ${result.source.user} + ${result.source.last_date} +
    + +
    + + +
      +
    • + ${result.source.text} +
    • +
    + +
  • +
    +
+
+ +
+ +
+ + + + + +
+ +
+ +
+ + + + + +
diff --git a/front/src/main/webapp/WEB-INF/jsp/itms/search/SearchTotal.jsp b/front/src/main/webapp/WEB-INF/jsp/itms/search/SearchTotal.jsp index 970ddd77..708fc253 100644 --- a/front/src/main/webapp/WEB-INF/jsp/itms/search/SearchTotal.jsp +++ b/front/src/main/webapp/WEB-INF/jsp/itms/search/SearchTotal.jsp @@ -1,332 +1,332 @@ - - -<% - /** - * @Class Name : SearchTotal.jsp - * @Description : 통합 검색 처리 화면 - * @Modification Information - * @ - * @ 수정일 수정자 수정내용 - * @ ------- -------- --------------------------- - * @ 2025.04.25 나혁제 최초 생성 - * - * @author urp 인프라본부 나혁제 - * @since 2025.04.25 - * @version 1.0 - * @see - * - */ -%> - -<%@ 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"%> - - -자산분류관리 - - - - - - - - - -
- - -
- -
- -
- -
-
-
- - - - - - - -
-
-
- - -
- -
-
- '${searchVO.searchKeyword}'에 대한 통합검색 결과 총${iIncidentCnt+iReportCnt+iBbsInfoCnt}건입니다. -
-
- - -
- -
- 인스던트 - '${searchVO.searchKeyword}' 관련 정보 총${iIncidentCnt} -
- - -
-
    - - -
  • 검색된 내용이 없습니다.
  • -
    - - -
  • - -
    - - - - -
    - ${result.source.user} - ${result.source.last_date} -
    - -
    - - -
      -
    • - ${result.source.text} -
    • -
    - -
  • -
    -
-
- - - -
- -
-
- -
- - - -
- -
- 보고서 - '${searchVO.searchKeyword}' 관련 정보 총${iReportCnt} -
- - -
-
    - -
  • 검색된 내용이 없습니다.
  • -
    - - -
  • - -
    - - - - -
    - ${result.source.user} - ${result.source.last_date} -
    - -
    - - -
      -
    • - ${result.source.text} -
    • -
    - -
  • -
    -
-
- - - -
- -
-
- -
- - - -
- -
- 게시판 - '${searchVO.searchKeyword}' 관련 정보 총${iBbsInfoCnt} -
- - -
-
    - -
  • 검색된 내용이 없습니다.
  • -
    - - -
  • - -
    - - - - -
    - ${result.source.user} - ${result.source.last_date} -
    - -
    - - -
      -
    • - ${result.source.text} -
    • -
    - -
  • -
    -
-
- - - -
- -
-
- -
- -
- -
- -
- -
- - - - - -
+ + +<% + /** + * @Class Name : SearchTotal.jsp + * @Description : 통합 검색 처리 화면 + * @Modification Information + * @ + * @ 수정일 수정자 수정내용 + * @ ------- -------- --------------------------- + * @ 2025.04.25 나혁제 최초 생성 + * + * @author urp 인프라본부 나혁제 + * @since 2025.04.25 + * @version 1.0 + * @see + * + */ +%> + +<%@ 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"%> + + +자산분류관리 + + + + + + + + + +
+ + +
+ +
+ +
+ +
+
+
+ + + + + + + +
+
+
+ + +
+ +
+
+ '${searchVO.searchKeyword}'에 대한 통합검색 결과 총${iIncidentCnt+iReportCnt+iBbsInfoCnt}건입니다. +
+
+ + +
+ +
+ 서비스 + '${searchVO.searchKeyword}' 관련 정보 총${iIncidentCnt} +
+ + +
+
    + + +
  • 검색된 내용이 없습니다.
  • +
    + + +
  • + +
    + + + + +
    + ${result.source.user} + ${result.source.last_date} +
    + +
    + + +
      +
    • + ${result.source.text} +
    • +
    + +
  • +
    +
+
+ + + +
+ +
+
+ +
+ + + +
+ +
+ 보고서 + '${searchVO.searchKeyword}' 관련 정보 총${iReportCnt} +
+ + +
+
    + +
  • 검색된 내용이 없습니다.
  • +
    + + +
  • + +
    + + + + +
    + ${result.source.user} + ${result.source.last_date} +
    + +
    + + +
      +
    • + ${result.source.text} +
    • +
    + +
  • +
    +
+
+ + + +
+ +
+
+ +
+ + + +
+ +
+ 게시판 + '${searchVO.searchKeyword}' 관련 정보 총${iBbsInfoCnt} +
+ + +
+
    + +
  • 검색된 내용이 없습니다.
  • +
    + + +
  • + +
    + + + + +
    + ${result.source.user} + ${result.source.last_date} +
    + +
    + + +
      +
    • + ${result.source.text} +
    • +
    + +
  • +
    +
+
+ + + +
+ +
+
+ +
+ +
+ +
+ +
+ +
+ + + + + +
diff --git a/front/src/main/webapp/WEB-INF/jsp/itms/srm/ReportCheckCopyInsert.jsp b/front/src/main/webapp/WEB-INF/jsp/itms/srm/ReportCheckCopyInsert.jsp index 1717646f..c844472c 100644 --- a/front/src/main/webapp/WEB-INF/jsp/itms/srm/ReportCheckCopyInsert.jsp +++ b/front/src/main/webapp/WEB-INF/jsp/itms/srm/ReportCheckCopyInsert.jsp @@ -700,7 +700,7 @@ - 인스던트 접수번호 + 서비스 접수번호 작업분류 @@ -923,8 +923,8 @@ -
diff --git a/front/src/main/webapp/WEB-INF/jsp/itms/srm/ReportCheckDetail.jsp b/front/src/main/webapp/WEB-INF/jsp/itms/srm/ReportCheckDetail.jsp index 73a04c6f..3e18a779 100644 --- a/front/src/main/webapp/WEB-INF/jsp/itms/srm/ReportCheckDetail.jsp +++ b/front/src/main/webapp/WEB-INF/jsp/itms/srm/ReportCheckDetail.jsp @@ -503,7 +503,7 @@ - 인스던트 접수번호 + 서비스 접수번호 ${incidentId} diff --git a/front/src/main/webapp/WEB-INF/jsp/itms/srm/ReportCheckInsert.jsp b/front/src/main/webapp/WEB-INF/jsp/itms/srm/ReportCheckInsert.jsp index 3916ed70..b804d745 100644 --- a/front/src/main/webapp/WEB-INF/jsp/itms/srm/ReportCheckInsert.jsp +++ b/front/src/main/webapp/WEB-INF/jsp/itms/srm/ReportCheckInsert.jsp @@ -811,7 +811,7 @@ - 인스던트 접수번호 + 서비스 접수번호 ${resultIncident.vcIncidentNum} 작업분류 @@ -992,8 +992,8 @@ - diff --git a/front/src/main/webapp/WEB-INF/jsp/itms/srm/ReportCheckList.jsp b/front/src/main/webapp/WEB-INF/jsp/itms/srm/ReportCheckList.jsp index 9abc3831..d5ba72e1 100644 --- a/front/src/main/webapp/WEB-INF/jsp/itms/srm/ReportCheckList.jsp +++ b/front/src/main/webapp/WEB-INF/jsp/itms/srm/ReportCheckList.jsp @@ -164,7 +164,7 @@ " >         - + " >         @@ -226,7 +226,7 @@ 문서번호 - 인스던트 접수번호 + 서비스 접수번호 서비스 승인상태 제목 @@ -250,8 +250,10 @@ + - + + ... @@ -259,6 +261,7 @@ + <%-- 2026.03.11 나혁제 작성자 부분 그룹 추가 --%> diff --git a/front/src/main/webapp/WEB-INF/jsp/itms/srm/ReportCheckPrintPop.jsp b/front/src/main/webapp/WEB-INF/jsp/itms/srm/ReportCheckPrintPop.jsp index 7a73e1ed..0ec7befe 100644 --- a/front/src/main/webapp/WEB-INF/jsp/itms/srm/ReportCheckPrintPop.jsp +++ b/front/src/main/webapp/WEB-INF/jsp/itms/srm/ReportCheckPrintPop.jsp @@ -184,7 +184,7 @@ - 인스던트 접수번호 + 서비스 접수번호 ${incidentId} diff --git a/front/src/main/webapp/WEB-INF/jsp/itms/srm/ReportCheckUpdate.jsp b/front/src/main/webapp/WEB-INF/jsp/itms/srm/ReportCheckUpdate.jsp index a5aa2393..9bd1fafa 100644 --- a/front/src/main/webapp/WEB-INF/jsp/itms/srm/ReportCheckUpdate.jsp +++ b/front/src/main/webapp/WEB-INF/jsp/itms/srm/ReportCheckUpdate.jsp @@ -800,7 +800,7 @@ - 인스던트 접수번호 + 서비스 접수번호 ${incidentId} 작업분류 diff --git a/front/src/main/webapp/WEB-INF/jsp/itms/srm/ReportErrorCopyInsert.jsp b/front/src/main/webapp/WEB-INF/jsp/itms/srm/ReportErrorCopyInsert.jsp index 339d6a8b..86d57a6f 100644 --- a/front/src/main/webapp/WEB-INF/jsp/itms/srm/ReportErrorCopyInsert.jsp +++ b/front/src/main/webapp/WEB-INF/jsp/itms/srm/ReportErrorCopyInsert.jsp @@ -701,7 +701,7 @@ - 인스던트 접수번호 + 서비스 접수번호 작업분류 @@ -926,8 +926,8 @@ - diff --git a/front/src/main/webapp/WEB-INF/jsp/itms/srm/ReportErrorDetail.jsp b/front/src/main/webapp/WEB-INF/jsp/itms/srm/ReportErrorDetail.jsp index e9437390..ef753dc4 100644 --- a/front/src/main/webapp/WEB-INF/jsp/itms/srm/ReportErrorDetail.jsp +++ b/front/src/main/webapp/WEB-INF/jsp/itms/srm/ReportErrorDetail.jsp @@ -480,7 +480,7 @@ - 인스던트 접수번호 + 서비스 접수번호 ${incidentId} diff --git a/front/src/main/webapp/WEB-INF/jsp/itms/srm/ReportErrorInsert.jsp b/front/src/main/webapp/WEB-INF/jsp/itms/srm/ReportErrorInsert.jsp index 3a516b5e..43d7be41 100644 --- a/front/src/main/webapp/WEB-INF/jsp/itms/srm/ReportErrorInsert.jsp +++ b/front/src/main/webapp/WEB-INF/jsp/itms/srm/ReportErrorInsert.jsp @@ -808,7 +808,7 @@ - 인스던트 접수번호 + 서비스 접수번호 ${resultIncident.vcIncidentNum} 작업분류 @@ -992,8 +992,8 @@ - diff --git a/front/src/main/webapp/WEB-INF/jsp/itms/srm/ReportErrorList.jsp b/front/src/main/webapp/WEB-INF/jsp/itms/srm/ReportErrorList.jsp index ea826f30..20e47fd1 100644 --- a/front/src/main/webapp/WEB-INF/jsp/itms/srm/ReportErrorList.jsp +++ b/front/src/main/webapp/WEB-INF/jsp/itms/srm/ReportErrorList.jsp @@ -164,7 +164,7 @@ " >         - + " >         @@ -226,7 +226,7 @@ 문서번호 - 인스던트 접수번호 + 서비스 접수번호 서비스 승인상태 제목 diff --git a/front/src/main/webapp/WEB-INF/jsp/itms/srm/ReportErrorPrintPop.jsp b/front/src/main/webapp/WEB-INF/jsp/itms/srm/ReportErrorPrintPop.jsp index 79c240d8..34a9199c 100644 --- a/front/src/main/webapp/WEB-INF/jsp/itms/srm/ReportErrorPrintPop.jsp +++ b/front/src/main/webapp/WEB-INF/jsp/itms/srm/ReportErrorPrintPop.jsp @@ -160,7 +160,7 @@ - 인스던트 접수번호 + 서비스 접수번호 ${incidentId} diff --git a/front/src/main/webapp/WEB-INF/jsp/itms/srm/ReportErrorUpdate.jsp b/front/src/main/webapp/WEB-INF/jsp/itms/srm/ReportErrorUpdate.jsp index 588b638f..ca1d85be 100644 --- a/front/src/main/webapp/WEB-INF/jsp/itms/srm/ReportErrorUpdate.jsp +++ b/front/src/main/webapp/WEB-INF/jsp/itms/srm/ReportErrorUpdate.jsp @@ -795,7 +795,7 @@ - 인스던트 접수번호 + 서비스 접수번호 ${incidentId} 작업분류 diff --git a/front/src/main/webapp/WEB-INF/jsp/itms/srm/ReportIssueCopyInsert.jsp b/front/src/main/webapp/WEB-INF/jsp/itms/srm/ReportIssueCopyInsert.jsp index 85740502..00f43c33 100644 --- a/front/src/main/webapp/WEB-INF/jsp/itms/srm/ReportIssueCopyInsert.jsp +++ b/front/src/main/webapp/WEB-INF/jsp/itms/srm/ReportIssueCopyInsert.jsp @@ -701,7 +701,7 @@ - 인스던트 접수번호 + 서비스 접수번호 작업분류 @@ -921,8 +921,8 @@ - diff --git a/front/src/main/webapp/WEB-INF/jsp/itms/srm/ReportIssueDetail.jsp b/front/src/main/webapp/WEB-INF/jsp/itms/srm/ReportIssueDetail.jsp index fe44947b..308ad305 100644 --- a/front/src/main/webapp/WEB-INF/jsp/itms/srm/ReportIssueDetail.jsp +++ b/front/src/main/webapp/WEB-INF/jsp/itms/srm/ReportIssueDetail.jsp @@ -498,7 +498,7 @@ - 인스던트 접수번호 + 서비스 접수번호 ${incidentId} @@ -677,10 +677,7 @@
- - + diff --git a/front/src/main/webapp/WEB-INF/jsp/itms/srm/ReportIssueInsert.jsp b/front/src/main/webapp/WEB-INF/jsp/itms/srm/ReportIssueInsert.jsp index f13fd323..1fe5eb24 100644 --- a/front/src/main/webapp/WEB-INF/jsp/itms/srm/ReportIssueInsert.jsp +++ b/front/src/main/webapp/WEB-INF/jsp/itms/srm/ReportIssueInsert.jsp @@ -810,7 +810,7 @@ - 인스던트 접수번호 + 서비스 접수번호 ${resultIncident.vcIncidentNum} 작업분류 @@ -989,8 +989,8 @@ - diff --git a/front/src/main/webapp/WEB-INF/jsp/itms/srm/ReportIssueList.jsp b/front/src/main/webapp/WEB-INF/jsp/itms/srm/ReportIssueList.jsp index 4dbba9f3..68633d75 100644 --- a/front/src/main/webapp/WEB-INF/jsp/itms/srm/ReportIssueList.jsp +++ b/front/src/main/webapp/WEB-INF/jsp/itms/srm/ReportIssueList.jsp @@ -164,7 +164,7 @@ " >         - + " >         @@ -226,7 +226,7 @@ 문서번호 - 인스던트 접수번호 + 서비스 접수번호 서비스 승인상태 제목 diff --git a/front/src/main/webapp/WEB-INF/jsp/itms/srm/ReportIssuePrintPop.jsp b/front/src/main/webapp/WEB-INF/jsp/itms/srm/ReportIssuePrintPop.jsp index 55a4e587..1e840ac0 100644 --- a/front/src/main/webapp/WEB-INF/jsp/itms/srm/ReportIssuePrintPop.jsp +++ b/front/src/main/webapp/WEB-INF/jsp/itms/srm/ReportIssuePrintPop.jsp @@ -160,7 +160,7 @@ - 인스던트 접수번호 + 서비스 접수번호 ${incidentId} diff --git a/front/src/main/webapp/WEB-INF/jsp/itms/srm/ReportIssueUpdate.jsp b/front/src/main/webapp/WEB-INF/jsp/itms/srm/ReportIssueUpdate.jsp index 4c9c0bd3..31d7203d 100644 --- a/front/src/main/webapp/WEB-INF/jsp/itms/srm/ReportIssueUpdate.jsp +++ b/front/src/main/webapp/WEB-INF/jsp/itms/srm/ReportIssueUpdate.jsp @@ -792,7 +792,7 @@ - 인스던트 접수번호 + 서비스 접수번호 ${incidentId} 작업분류 diff --git a/front/src/main/webapp/WEB-INF/jsp/itms/srm/ReportOtherCopyInsert.jsp b/front/src/main/webapp/WEB-INF/jsp/itms/srm/ReportOtherCopyInsert.jsp index 3a454d8f..f14c075b 100644 --- a/front/src/main/webapp/WEB-INF/jsp/itms/srm/ReportOtherCopyInsert.jsp +++ b/front/src/main/webapp/WEB-INF/jsp/itms/srm/ReportOtherCopyInsert.jsp @@ -700,7 +700,7 @@ - 인스던트 접수번호 + 서비스 접수번호 작업분류 @@ -923,8 +923,8 @@ - diff --git a/front/src/main/webapp/WEB-INF/jsp/itms/srm/ReportOtherDetail.jsp b/front/src/main/webapp/WEB-INF/jsp/itms/srm/ReportOtherDetail.jsp index f4ac97c8..dbb6c30d 100644 --- a/front/src/main/webapp/WEB-INF/jsp/itms/srm/ReportOtherDetail.jsp +++ b/front/src/main/webapp/WEB-INF/jsp/itms/srm/ReportOtherDetail.jsp @@ -519,7 +519,7 @@ - 인스던트 접수번호 + 서비스 접수번호 ${incidentId} diff --git a/front/src/main/webapp/WEB-INF/jsp/itms/srm/ReportOtherInsert.jsp b/front/src/main/webapp/WEB-INF/jsp/itms/srm/ReportOtherInsert.jsp index 3c5d6d1c..d17b8afb 100644 --- a/front/src/main/webapp/WEB-INF/jsp/itms/srm/ReportOtherInsert.jsp +++ b/front/src/main/webapp/WEB-INF/jsp/itms/srm/ReportOtherInsert.jsp @@ -828,7 +828,7 @@ - 인스던트 접수번호 + 서비스 접수번호 ${resultIncident.vcIncidentNum} 작업분류 @@ -1006,8 +1006,8 @@ - diff --git a/front/src/main/webapp/WEB-INF/jsp/itms/srm/ReportOtherList.jsp b/front/src/main/webapp/WEB-INF/jsp/itms/srm/ReportOtherList.jsp index 7328d657..d39c8059 100644 --- a/front/src/main/webapp/WEB-INF/jsp/itms/srm/ReportOtherList.jsp +++ b/front/src/main/webapp/WEB-INF/jsp/itms/srm/ReportOtherList.jsp @@ -168,7 +168,7 @@ " >         - + " >         @@ -230,7 +230,7 @@ 문서번호 - 인스던트 접수번호 + 서비스 접수번호 서비스 승인상태 제목 diff --git a/front/src/main/webapp/WEB-INF/jsp/itms/srm/ReportOtherPrintPop.jsp b/front/src/main/webapp/WEB-INF/jsp/itms/srm/ReportOtherPrintPop.jsp index b72bea36..52777f18 100644 --- a/front/src/main/webapp/WEB-INF/jsp/itms/srm/ReportOtherPrintPop.jsp +++ b/front/src/main/webapp/WEB-INF/jsp/itms/srm/ReportOtherPrintPop.jsp @@ -184,7 +184,7 @@ - 인스던트 접수번호 + 서비스 접수번호 ${incidentId} diff --git a/front/src/main/webapp/WEB-INF/jsp/itms/srm/ReportOtherUpdate.jsp b/front/src/main/webapp/WEB-INF/jsp/itms/srm/ReportOtherUpdate.jsp index b33bf921..681e557b 100644 --- a/front/src/main/webapp/WEB-INF/jsp/itms/srm/ReportOtherUpdate.jsp +++ b/front/src/main/webapp/WEB-INF/jsp/itms/srm/ReportOtherUpdate.jsp @@ -802,7 +802,7 @@ - 인스던트 접수번호 + 서비스 접수번호 ${incidentId} 작업분류 diff --git a/front/src/main/webapp/WEB-INF/jsp/itms/srm/SvcDeskCopyInsert.jsp b/front/src/main/webapp/WEB-INF/jsp/itms/srm/SvcDeskCopyInsert.jsp index 364b88b7..0bb5d616 100644 --- a/front/src/main/webapp/WEB-INF/jsp/itms/srm/SvcDeskCopyInsert.jsp +++ b/front/src/main/webapp/WEB-INF/jsp/itms/srm/SvcDeskCopyInsert.jsp @@ -30,7 +30,7 @@ <%@ taglib prefix="validator" uri="http://www.springmodules.org/tags/commons-validator" %> - 인스던트 수정 + 서비스 수정 @@ -228,7 +228,7 @@ // ---------------------------------------- function fncSvcDeskIncidentInsert() { - var bYes = confirm("인스던트 접수 처리를 하시겠습니까?"); + var bYes = confirm("서비스 접수 처리를 하시겠습니까?"); if(bYes==false) return; var form = document.svcDeskManage; @@ -264,7 +264,7 @@ // ---------------------------------------- function fncSvcDeskIncidentInsertReqApp() { - var bYes = confirm("인스던트 등록/승인요청 처리를 하시겠습니까?"); + var bYes = confirm("서비스 등록/승인요청 처리를 하시겠습니까?"); if(bYes==false) return; var form = document.svcDeskManage; @@ -298,7 +298,7 @@ //---------------------------------------- - // 인스던트 변경/승인처리 처리(최종 저장 처리 ) + // 서비스 변경/승인처리 처리(최종 저장 처리 ) // ---------------------------------------- function fncAppLast(strMsg) { @@ -429,7 +429,7 @@ // ---------------------------------------- var proc = { - // 인스던트 접수 + // 서비스 접수 fn_incident_save : function () { var form = $('#svcDeskManage')[0]; @@ -452,7 +452,7 @@ }, error: function(errorThrown) { - alert("인스던트 접수 등록중 오류가 발생하였습니다. \n 시스템관리자에게 문의해 주시기 바랍니다."); + alert("서비스 접수 등록중 오류가 발생하였습니다. \n 시스템관리자에게 문의해 주시기 바랍니다."); console.log(JSON.stringify(errorThrown)); } }); @@ -527,7 +527,7 @@
  • SR관리
  • -
  • 인스던트 수정
  • +
  • 서비스 수정
@@ -723,8 +723,8 @@ - diff --git a/front/src/main/webapp/WEB-INF/jsp/itms/srm/SvcDeskDetail.jsp b/front/src/main/webapp/WEB-INF/jsp/itms/srm/SvcDeskDetail.jsp index af0c85f5..d986192d 100644 --- a/front/src/main/webapp/WEB-INF/jsp/itms/srm/SvcDeskDetail.jsp +++ b/front/src/main/webapp/WEB-INF/jsp/itms/srm/SvcDeskDetail.jsp @@ -30,7 +30,7 @@ <%@ taglib prefix="validator" uri="http://www.springmodules.org/tags/commons-validator" %> - 인스던트 상세조회 + 서비스 상세조회 @@ -89,27 +89,27 @@ } //---------------------------------------- - // 인스던트 수정 화면 이동처리 + // 서비스 수정 화면 이동처리 // ---------------------------------------- function fncSvcDeskIncidentUpdate() { if($('#inIncidentStatus').val()=='1') { - if(confirm("인시던트가 승인 진행중입니다.\n수정하면 모든 승인 정보는 초기화 됩니다.\n수정하시겠습니까?") == false) return; + if(confirm("서비스가 승인 진행중입니다.\n수정하면 모든 승인 정보는 초기화 됩니다.\n수정하시겠습니까?") == false) return; } else if($('#inIncidentStatus').val() == '2') { // 2025.11.18 나혁제 반려된 자료 수정불가 - // if(confirm("반려된 인시던트입니다.\n수정하면 모든 승인 정보는 초기화 됩니다.\n수정하시겠습니까?") == false) return; - alert("반려된 인시던트입니다.\n 재작성하시길 바랍니다."); + // if(confirm("반려된 서비스입니다.\n수정하면 모든 승인 정보는 초기화 됩니다.\n수정하시겠습니까?") == false) return; + alert("반려된 서비스입니다.\n 재작성하시길 바랍니다."); return; } else if($('#inIncidentStatus').val() == '3') { // 2025.11.18 나혁제 반려된 자료 수정불가 - // if(confirm("승인완료된 인시던트입니다.\n수정하면 모든 승인 정보는 초기화 됩니다.\n수정하시겠습니까?") == false) return; - alert("승인완료된 인시던트입니다.\n 재작성하시길 바랍니다."); + // if(confirm("승인완료된 서비스입니다.\n수정하면 모든 승인 정보는 초기화 됩니다.\n수정하시겠습니까?") == false) return; + alert("승인완료된 서비스입니다.\n 재작성하시길 바랍니다."); return; } @@ -130,13 +130,13 @@ //---------------------------------------- // 2025.01.21 나혁제 새로만들 기능확장 - // 인스던트 새로만들기 화면 이동처리 + // 서비스 새로만들기 화면 이동처리 // ---------------------------------------- function fncSvcDeskIncidentCopyInsert() { if($('#inIncidentStatus').val() != '2' && $('#inIncidentStatus').val() != '3' ) { - alert("[승인완료/반려]된 인시던트에서만 새로만들기가 가능합니다."); + alert("[승인완료/반려]된 서비스에서만 새로만들기가 가능합니다."); return; } @@ -148,18 +148,18 @@ //---------------------------------------- - // 인스던트 삭제 처리 + // 서비스 삭제 처리 // ---------------------------------------- function fncSvcDeskIncidentDelete() { // 2025.11.18 나혁제 [승인완료/반려] 삭제 불가 if($('#inIncidentStatus').val() == '2' || $('#inIncidentStatus').val() == '3' ) { - alert("[승인완료/반려] 상태의 인시던트는 삭제가 불가합니다."); + alert("[승인완료/반려] 상태의 서비스는 삭제가 불가합니다."); return; } - var bYes = confirm("인스던트 삭제 처리를 하시겠습니까?"); + var bYes = confirm("서비스 삭제 처리를 하시겠습니까?"); if(bYes==false) return; proc.fn_IncidentDelete_save(); @@ -171,7 +171,7 @@ // ---------------------------------------- function fncSvcDeskIncidentCompleted() { - var bYes = confirm("인스던트 처리완료 처리를 하시겠습니까?"); + var bYes = confirm("서비스 처리완료 처리를 하시겠습니까?"); if(bYes==false) return; // 처리완료 메세지 팝업 open @@ -195,7 +195,7 @@ // ---------------------------------------- function fncSvcDeskIncidentReqApp() { - var bYes = confirm("인스던트 승인요청 처리를 하시겠습니까?"); + var bYes = confirm("서비스 승인요청 처리를 하시겠습니까?"); if(bYes==false) return; // 승인요청 메세지 팝업 open @@ -203,7 +203,7 @@ } //---------------------------------------- - // 인스던트 승인요청 처리(최종 저장 처리 ) + // 서비스 승인요청 처리(최종 저장 처리 ) // ---------------------------------------- function fncAppLast(strMsg) { @@ -218,7 +218,7 @@ // ---------------------------------------- function fncSvcDeskIncidentAppRej() { - var bYes = confirm("인스던트 승인/반려 처리를 하시겠습니까?"); + var bYes = confirm("서비스 승인/반려 처리를 하시겠습니까?"); if(bYes==false) return; // 승인&반려 메세지 팝업 open @@ -226,7 +226,7 @@ } //---------------------------------------- - // 인스던트 변경/승인 처리(최종 저장 처리 ) + // 서비스 변경/승인 처리(최종 저장 처리 ) // ---------------------------------------- // 2025.11.17 나혁제 strStsfdgCd 만족도 추가 function fncAppRejLast(strGubun , strMsg, strStsfdgCd) @@ -374,7 +374,7 @@ } //---------------------------------------- - // 인스던트 댓글 등록 + // 서비스 댓글 등록 // ---------------------------------------- function fn_egov_insert_commentList(bbsId, nttId) { @@ -396,7 +396,7 @@ } //---------------------------------------- - // 인스던트 댓글 삭제 + // 서비스 댓글 삭제 // ---------------------------------------- function fn_egov_deleteCommentList(commentNo, bbsId, nttId) { @@ -416,7 +416,7 @@ // 서블릿 통신 var proc = { - // 인스던트 처리완료 + // 서비스 처리완료 fn_completedIncident_save : function () { var form = $('#svcDeskManage')[0]; @@ -438,13 +438,13 @@ }, error: function(errorThrown) { - alert("인스던트 처리완료중 오류가 발생하였습니다. \n 시스템 관리자에게 문의해 주시기 바랍니다."); + alert("서비스 처리완료중 오류가 발생하였습니다. \n 시스템 관리자에게 문의해 주시기 바랍니다."); console.log(JSON.stringify(errorThrown)); } }); } , - // 인스던트 승인요청 + // 서비스 승인요청 fn_IncidentReqApp_save : function () { var form = $('#svcDeskManage')[0]; @@ -466,13 +466,13 @@ }, error: function(errorThrown) { - alert("인스던트 승인요청중 오류가 발생하였습니다. \n 시스템 관리자에게 문의해 주시기 바랍니다."); + alert("서비스 승인요청중 오류가 발생하였습니다. \n 시스템 관리자에게 문의해 주시기 바랍니다."); console.log(JSON.stringify(errorThrown)); } }); } , - // 인스던트 삭제 + // 서비스 삭제 fn_IncidentDelete_save : function () { var form = $('#svcDeskManage')[0]; @@ -489,18 +489,18 @@ , cache:false , success: function(data) { - alert("인스던트 삭제 되었습니다."); + alert("서비스 삭제 되었습니다."); fncSvcDeskList(); }, error: function(errorThrown) { - alert("인스던트 삭제중 오류가 발생하였습니다. \n 시스템 관리자에게 문의해 주시기 바랍니다."); + alert("서비스 삭제중 오류가 발생하였습니다. \n 시스템 관리자에게 문의해 주시기 바랍니다."); console.log(JSON.stringify(errorThrown)); } }); } , - // 인스던트 승인 + // 서비스 승인 fn_Incident_Approval : function () { var form = $('#svcDeskManage')[0]; @@ -517,18 +517,18 @@ , cache:false , success: function(data) { - alert("인스던트 승인 되었습니다."); + alert("서비스 승인 되었습니다."); fncSvcDeskList(); }, error: function(errorThrown) { - alert("인스던트 승인중 오류가 발생하였습니다. \n 시스템 관리자에게 문의해 주시기 바랍니다."); + alert("서비스 승인중 오류가 발생하였습니다. \n 시스템 관리자에게 문의해 주시기 바랍니다."); console.log(JSON.stringify(errorThrown)); } }); } , - // 인스던트 반려 + // 서비스 반려 fn_Incident_Reject : function () { var form = $('#svcDeskManage')[0]; @@ -545,12 +545,12 @@ , cache:false , success: function(data) { - alert("인스던트 반려 되었습니다."); + alert("서비스 반려 되었습니다."); fncSvcDeskList(); }, error: function(errorThrown) { - alert("인스던트 반려중 오류가 발생하였습니다. \n 시스템 관리자에게 문의해 주시기 바랍니다."); + alert("서비스 반려중 오류가 발생하였습니다. \n 시스템 관리자에게 문의해 주시기 바랍니다."); console.log(JSON.stringify(errorThrown)); } }); @@ -639,7 +639,7 @@
-

인스던트 상세조회

+

서비스 상세조회

@@ -648,7 +648,7 @@
  • SR관리
  • -
  • 인스던트 상세조회
  • +
  • 서비스 상세조회
diff --git a/front/src/main/webapp/WEB-INF/jsp/itms/srm/SvcDeskInsert.jsp b/front/src/main/webapp/WEB-INF/jsp/itms/srm/SvcDeskInsert.jsp index 338c293d..dfe123fb 100644 --- a/front/src/main/webapp/WEB-INF/jsp/itms/srm/SvcDeskInsert.jsp +++ b/front/src/main/webapp/WEB-INF/jsp/itms/srm/SvcDeskInsert.jsp @@ -30,7 +30,7 @@ <%@ taglib prefix="validator" uri="http://www.springmodules.org/tags/commons-validator" %> - 인스던트 등록 + 서비스 등록 @@ -251,7 +251,7 @@ ${uploadMax } // ---------------------------------------- function fncSvcDeskIncidentInsert() { - var bYes = confirm("인스던트 접수 처리를 하시겠습니까?"); + var bYes = confirm("서비스 접수 처리를 하시겠습니까?"); if(bYes==false) return; var form = document.svcDeskManage; @@ -287,7 +287,7 @@ ${uploadMax } // ---------------------------------------- function fncSvcDeskIncidentInsertReqApp() { - var bYes = confirm("인스던트 등록/승인요청 처리를 하시겠습니까?"); + var bYes = confirm("서비스 등록/승인요청 처리를 하시겠습니까?"); if(bYes==false) return; var form = document.svcDeskManage; @@ -320,7 +320,7 @@ ${uploadMax } } //---------------------------------------- - // 인스던트 변경/승인처리 처리(최종 저장 처리 ) + // 서비스 변경/승인처리 처리(최종 저장 처리 ) // ---------------------------------------- function fncAppLast(strMsg) { @@ -451,7 +451,7 @@ ${uploadMax } // ---------------------------------------- var proc = { - // 인스던트 접수 + // 서비스 접수 fn_incident_save : function () { var form = $('#svcDeskManage')[0]; @@ -466,15 +466,21 @@ ${uploadMax } , processData:false , contentType:false , cache:false - , success: function(data) + , success: function(data) { + // 2026.07.19 SR#12 : 서버 검증 실패(길이초과 등) 시 안내 메시지 노출 후 등록 중단 + if(data.resultCd != "0") + { + alert(data.resultMsg); + return; + } alert("등록 완료 되었습니다."); fncSvcDeskList(); - + }, - error: function(errorThrown) + error: function(errorThrown) { - alert("인스던트 접수 등록중 오류가 발생하였습니다. \n 시스템관리자에게 문의해 주시기 바랍니다."); + alert("서비스 접수 등록중 오류가 발생하였습니다. \n 시스템관리자에게 문의해 주시기 바랍니다."); console.log(JSON.stringify(errorThrown)); } }); @@ -616,7 +622,7 @@ ${uploadMax }
  • SR관리
  • -
  • 인스던트 접수
  • +
  • 서비스 접수
@@ -631,7 +637,7 @@ ${uploadMax } "> - + @@ -687,7 +693,7 @@ ${uploadMax }
인스던트 등록서비스 등록
제목 - + 조치자 @@ -808,8 +814,8 @@ ${uploadMax } - diff --git a/front/src/main/webapp/WEB-INF/jsp/itms/srm/SvcDeskList.jsp b/front/src/main/webapp/WEB-INF/jsp/itms/srm/SvcDeskList.jsp index d353e527..e84ff49e 100644 --- a/front/src/main/webapp/WEB-INF/jsp/itms/srm/SvcDeskList.jsp +++ b/front/src/main/webapp/WEB-INF/jsp/itms/srm/SvcDeskList.jsp @@ -233,7 +233,7 @@ "> - + diff --git a/front/src/main/webapp/WEB-INF/jsp/itms/srm/SvcDeskReqDetail.jsp b/front/src/main/webapp/WEB-INF/jsp/itms/srm/SvcDeskReqDetail.jsp index bb09042e..5d9c2cfd 100644 --- a/front/src/main/webapp/WEB-INF/jsp/itms/srm/SvcDeskReqDetail.jsp +++ b/front/src/main/webapp/WEB-INF/jsp/itms/srm/SvcDeskReqDetail.jsp @@ -30,7 +30,7 @@ <%@ taglib prefix="validator" uri="http://www.springmodules.org/tags/commons-validator" %> - 인스던트 신청 + 서비스 신청 @@ -86,7 +86,7 @@ } //---------------------------------------- - // 인스던트 신청 수정 화면 이동처리 + // 서비스 신청 수정 화면 이동처리 // ---------------------------------------- function fncSvcDeskReqIncidentUpdate() { @@ -97,18 +97,18 @@ } //---------------------------------------- - // 인스던트 삭제 처리 + // 서비스 삭제 처리 // ---------------------------------------- function fncSvcDeskReqIncidentDelete() { // 2025.11.18 나혁제 [승인완료/반려] 삭제 불가 if($('#inReqStatus').val() != '-1' ) { - alert("신청상태 이외의 인시던트 신청정보는 삭제가 불가합니다."); + alert("신청상태 이외의 서비스 신청정보는 삭제가 불가합니다."); return; } - var bYes = confirm("인스던트 신청정보 삭제 처리를 하시겠습니까?"); + var bYes = confirm("서비스 신청정보 삭제 처리를 하시겠습니까?"); if(bYes==false) return; proc.fn_ReqIncidentDelete_save(); @@ -119,7 +119,7 @@ // ---------------------------------------- function fncSvcDeskReqIncidentRptRej() { - var bYes = confirm("인스던트 접수/반려 처리를 하시겠습니까?"); + var bYes = confirm("서비스 접수/반려 처리를 하시겠습니까?"); if(bYes==false) return; // 승인&반려 메세지 팝업 open @@ -127,7 +127,7 @@ } //---------------------------------------- - // 인스던트 접수/반려 처리(최종 저장 처리 ) + // 서비스 접수/반려 처리(최종 저장 처리 ) // ---------------------------------------- function fncRptRejLast(strGubun , strMsg) { @@ -136,7 +136,7 @@ // 접수처리 if(strGubun=='0') { - // 인스던트 접수 화면으로 이동처리 + // 서비스 접수 화면으로 이동처리 var varFrom = document.getElementById("svcDeskReqManage"); varFrom.action = ""; varFrom.submit(); @@ -192,7 +192,7 @@ // ---------------------------------------- var proc = { - // 인스던트 삭제 + // 서비스 삭제 fn_ReqIncidentDelete_save : function () { var form = $('#svcDeskReqManage')[0]; @@ -209,17 +209,17 @@ , cache:false , success: function(data) { - alert("인스던트 신청정보 삭제 되었습니다."); + alert("서비스 신청정보 삭제 되었습니다."); fncSvcDeskReqList(); }, error: function(errorThrown) { - alert("인스던트 신청정보 삭제처리중 오류가 발생하였습니다. \n 시스템 관리자에게 문의해 주시기 바랍니다."); + alert("서비스 신청정보 삭제처리중 오류가 발생하였습니다. \n 시스템 관리자에게 문의해 주시기 바랍니다."); console.log(JSON.stringify(errorThrown)); } }); } - // 인스던트 신청정보 반려 + // 서비스 신청정보 반려 , fn_Incident_Req_Reject : function () { var form = $('#svcDeskReqManage')[0]; @@ -236,12 +236,12 @@ , cache:false , success: function(data) { - alert("인스던트 신청정보 반려 되었습니다."); + alert("서비스 신청정보 반려 되었습니다."); fncSvcDeskReqList(); }, error: function(errorThrown) { - alert("인스던트 신청정보 반려중 오류가 발생하였습니다. \n 시스템 관리자에게 문의해 주시기 바랍니다."); + alert("서비스 신청정보 반려중 오류가 발생하였습니다. \n 시스템 관리자에게 문의해 주시기 바랍니다."); console.log(JSON.stringify(errorThrown)); } }); @@ -272,7 +272,7 @@
  • SR관리
  • -
  • 인스던트 신청 상세조회
  • +
  • 서비스 신청 상세조회
@@ -287,7 +287,7 @@
서비스데스크 인스던트 관리 서비스데스크 서비스 관리
"> - + @@ -337,7 +337,7 @@
인스던트 등록서비스 등록
"> - + diff --git a/front/src/main/webapp/WEB-INF/jsp/itms/srm/SvcDeskReqInsert.jsp b/front/src/main/webapp/WEB-INF/jsp/itms/srm/SvcDeskReqInsert.jsp index 84d37e5a..4d4d7726 100644 --- a/front/src/main/webapp/WEB-INF/jsp/itms/srm/SvcDeskReqInsert.jsp +++ b/front/src/main/webapp/WEB-INF/jsp/itms/srm/SvcDeskReqInsert.jsp @@ -30,7 +30,7 @@ <%@ taglib prefix="validator" uri="http://www.springmodules.org/tags/commons-validator" %> - 인스던트 신청 + 서비스 신청 @@ -148,7 +148,7 @@ // ---------------------------------------- function fncSvcDeskReqIncidentInsert() { - var bYes = confirm("인스던트 신청 처리를 하시겠습니까?"); + var bYes = confirm("서비스 신청 처리를 하시겠습니까?"); if(bYes==false) return; var form = document.svcDeskReqManage; @@ -233,7 +233,7 @@ // ---------------------------------------- var proc = { - // 인스던트 신청 등록 + // 서비스 신청 등록 fn_req_incident_save : function () { var form = $('#svcDeskReqManage')[0]; @@ -248,15 +248,21 @@ , processData:false , contentType:false , cache:false - , success: function(data) + , success: function(data) { + // 2026.07.19 SR#12 : 서버 검증 실패(길이초과 등) 시 안내 후 신청 중단 + if(data.resultCd != "0") + { + alert(data.resultMsg); + return; + } alert("신청 완료 되었습니다."); fncSvcDeskReqList(); - + }, error: function(errorThrown) { - alert("인스던트 신청 등록중 오류가 발생하였습니다. \n 시스템관리자에게 문의해 주시기 바랍니다."); + alert("서비스 신청 등록중 오류가 발생하였습니다. \n 시스템관리자에게 문의해 주시기 바랍니다."); console.log(JSON.stringify(errorThrown)); } }); @@ -323,7 +329,7 @@
  • SR관리
  • -
  • 인스던트 신청
  • +
  • 서비스 신청
@@ -338,7 +344,7 @@
인스던트 등록서비스 등록
"> - + @@ -371,22 +377,31 @@ diff --git a/front/src/main/webapp/WEB-INF/jsp/itms/srm/SvcDeskReqList.jsp b/front/src/main/webapp/WEB-INF/jsp/itms/srm/SvcDeskReqList.jsp index 0c9d4207..8c15b1fe 100644 --- a/front/src/main/webapp/WEB-INF/jsp/itms/srm/SvcDeskReqList.jsp +++ b/front/src/main/webapp/WEB-INF/jsp/itms/srm/SvcDeskReqList.jsp @@ -135,7 +135,7 @@
인스던트 등록서비스 등록
서비스 + + 조치예정자 - - - - 조치예정자 검색 - - + + + (자동배정) + - + 완료요청일시 @@ -397,7 +412,7 @@
제목 - +
"> - + diff --git a/front/src/main/webapp/WEB-INF/jsp/itms/srm/SvcDeskReqUpdate.jsp b/front/src/main/webapp/WEB-INF/jsp/itms/srm/SvcDeskReqUpdate.jsp index 5f422fbb..ae7885a3 100644 --- a/front/src/main/webapp/WEB-INF/jsp/itms/srm/SvcDeskReqUpdate.jsp +++ b/front/src/main/webapp/WEB-INF/jsp/itms/srm/SvcDeskReqUpdate.jsp @@ -30,7 +30,7 @@ <%@ taglib prefix="validator" uri="http://www.springmodules.org/tags/commons-validator" %> - 인스던트 신청 수정 + 서비스 신청 수정 @@ -144,11 +144,11 @@ } //---------------------------------------- - // 인스던트 변경처리 + // 서비스 변경처리 // ---------------------------------------- function fncSvcDeskReqIncidentUpdate() { - var bYes = confirm("인스던트 신청 변경 처리를 하시겠습니까?"); + var bYes = confirm("서비스 신청 변경 처리를 하시겠습니까?"); if(bYes==false) return; var form = document.svcDeskReqManage; @@ -267,7 +267,7 @@ }, error: function(errorThrown) { - alert("인스던트 신청 정보 수정 처리중 오류가 발생 하였습니다. \n 시스템 관리자에게 연락바랍니다."); + alert("서비스 신청 정보 수정 처리중 오류가 발생 하였습니다. \n 시스템 관리자에게 연락바랍니다."); console.log(JSON.stringify(errorThrown)); } @@ -335,7 +335,7 @@
  • SR관리
  • -
  • 인스던트 신청
  • +
  • 서비스 신청
@@ -350,7 +350,7 @@
서비스데스크 인스던트 관리 서비스데스크 서비스 관리
"> - + diff --git a/front/src/main/webapp/WEB-INF/jsp/itms/srm/SvcDeskUpdate.jsp b/front/src/main/webapp/WEB-INF/jsp/itms/srm/SvcDeskUpdate.jsp index da1ab6be..33c37524 100644 --- a/front/src/main/webapp/WEB-INF/jsp/itms/srm/SvcDeskUpdate.jsp +++ b/front/src/main/webapp/WEB-INF/jsp/itms/srm/SvcDeskUpdate.jsp @@ -30,7 +30,7 @@ <%@ taglib prefix="validator" uri="http://www.springmodules.org/tags/commons-validator" %> - 인스던트 수정 + 서비스 수정 @@ -224,11 +224,11 @@ } //---------------------------------------- - // 인스던트 변경처리 + // 서비스 변경처리 // ---------------------------------------- function fncSvcDeskIncidentUpdate() { - var bYes = confirm("인스던트 변경 처리를 하시겠습니까?"); + var bYes = confirm("서비스 변경 처리를 하시겠습니까?"); if(bYes==false) return; var form = document.svcDeskManage; @@ -260,11 +260,11 @@ } //---------------------------------------- - // 인스던트 변경/승인처리 처리 + // 서비스 변경/승인처리 처리 // ---------------------------------------- function fncSvcDeskIncidentUpdateApp() { - var bYes = confirm("인스던트 변경/승인요청 처리를 하시겠습니까?"); + var bYes = confirm("서비스 변경/승인요청 처리를 하시겠습니까?"); if(bYes==false) return; var form = document.svcDeskManage; @@ -332,7 +332,7 @@ } //---------------------------------------- - // 인스던트 변경/승인처리 처리(최종 저장 처리 ) + // 서비스 변경/승인처리 처리(최종 저장 처리 ) // ---------------------------------------- function fncAppLast(strMsg) { @@ -496,7 +496,7 @@ }, error: function(errorThrown) { - alert("인스던트 정보 수정 처리중 오류가 발생 하였습니다. \n 시스템 관리자에게 연락바랍니다."); + alert("서비스 정보 수정 처리중 오류가 발생 하였습니다. \n 시스템 관리자에게 연락바랍니다."); console.log(JSON.stringify(errorThrown)); } @@ -627,7 +627,7 @@
-

인스던트 수정

+

서비스 수정

@@ -636,7 +636,7 @@
  • SR관리
  • -
  • 인스던트 수정
  • +
  • 서비스 수정
diff --git a/front/src/main/webapp/WEB-INF/jsp/itms/sys/AuthorGroupManage.jsp b/front/src/main/webapp/WEB-INF/jsp/itms/sys/AuthorGroupManage.jsp index 429ba66b..81f26177 100644 --- a/front/src/main/webapp/WEB-INF/jsp/itms/sys/AuthorGroupManage.jsp +++ b/front/src/main/webapp/WEB-INF/jsp/itms/sys/AuthorGroupManage.jsp @@ -372,7 +372,8 @@ diff --git a/front/src/main/webapp/WEB-INF/jsp/itms/sys/UserSelectUpdt.jsp b/front/src/main/webapp/WEB-INF/jsp/itms/sys/UserSelectUpdt.jsp index 7ccda886..ed8b0299 100644 --- a/front/src/main/webapp/WEB-INF/jsp/itms/sys/UserSelectUpdt.jsp +++ b/front/src/main/webapp/WEB-INF/jsp/itms/sys/UserSelectUpdt.jsp @@ -433,6 +433,17 @@
+ diff --git a/front/src/main/webapp/WEB-INF/jsp/main/LoginUsr.jsp b/front/src/main/webapp/WEB-INF/jsp/main/LoginUsr.jsp index 2050c20a..fddf7a39 100644 --- a/front/src/main/webapp/WEB-INF/jsp/main/LoginUsr.jsp +++ b/front/src/main/webapp/WEB-INF/jsp/main/LoginUsr.jsp @@ -1,320 +1,320 @@ - - -<%-- - Class Name : LoginUsr.jsp - Description : 로그인화면 - Modification Information - - 수정일 수정자 수정내용 - ------- -------- --------------------------- - 2025.01.03 나혁제 최초생성 - - author : 인프라본부 나혁제 - since : 2025.01.02 ---%> -<%@ 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" %> - - - - UR-ITSM - - - - - - - urITSM - - - - - - - - - - - - - - - - - - - - - - - -
- - -
-
- - -
-

uWorks Portal logo

-

urITSM 에 오신것을 환영합니다.

- - - -
- - -
- - - + + +<%-- + Class Name : LoginUsr.jsp + Description : 로그인화면 + Modification Information + + 수정일 수정자 수정내용 + ------- -------- --------------------------- + 2025.01.03 나혁제 최초생성 + + author : 인프라본부 나혁제 + since : 2025.01.02 +--%> +<%@ 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" %> + + + + UR-ITSM + + + + + + + urITSM + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+
+ + +
+

uWorks Portal logo

+

urITSM 에 오신것을 환영합니다.

+ + + +
+ + +
+ + + diff --git a/front/src/main/webapp/WEB-INF/jsp/main/LoginUsr_kic.jsp b/front/src/main/webapp/WEB-INF/jsp/main/LoginUsr_kic.jsp index 4120591b..f976d123 100644 --- a/front/src/main/webapp/WEB-INF/jsp/main/LoginUsr_kic.jsp +++ b/front/src/main/webapp/WEB-INF/jsp/main/LoginUsr_kic.jsp @@ -319,7 +319,7 @@
인스던트 등록서비스 등록