From cbf698b4af641a1e70f16765581c6fc584d1d77e Mon Sep 17 00:00:00 2001 From: nhj Date: Fri, 23 Jan 2026 10:46:41 +0900 Subject: [PATCH] =?UTF-8?q?=EC=83=88=EB=A1=9C=EB=A7=8C=EB=93=A4=EA=B8=B0,?= =?UTF-8?q?=20ID/PASS/=ED=9A=8C=EC=9B=90=EA=B0=80=EC=9E=85=20=EA=B8=B0?= =?UTF-8?q?=EB=8A=A5=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .classpath | 6 +- .../common/service/CommonService.java | 32 + .../basefront/config/SecurityConfig.java | 12 +- .../basefront/controller/MainController.java | 194 +++- .../srm/controller/ReportCheckController.java | 104 +- .../srm/controller/ReportErrorController.java | 95 ++ .../srm/controller/ReportIssueController.java | 100 ++ .../srm/controller/ReportOtherController.java | 100 ++ .../srm/controller/SvcDeskController.java | 103 +- .../srm/controller/SvcDeskReqController.java | 2 +- .../itmsfront/srm/domain/ReportCheckVo.java | 8 + .../itmsfront/srm/domain/ReportErrorVo.java | 7 + .../itmsfront/srm/domain/ReportIssueVo.java | 7 + .../itmsfront/srm/domain/ReportOtherVo.java | 7 + .../sys/controller/UserManageController.java | 7 +- src/main/resources/application-local.yml | 2 +- .../validator/egov_vailidator_all.xml | 1 - .../resources/validator/urp/EgovValidator.xml | 48 + .../jsp/itms/srm/ReportCheckCopyInsert.jsp | 965 +++++++++++++++++ .../jsp/itms/srm/ReportCheckDetail.jsp | 25 +- .../jsp/itms/srm/ReportCheckInsert.jsp | 14 +- .../WEB-INF/jsp/itms/srm/ReportCheckList.jsp | 12 +- .../jsp/itms/srm/ReportErrorCopyInsert.jsp | 968 ++++++++++++++++++ .../jsp/itms/srm/ReportErrorDetail.jsp | 25 +- .../jsp/itms/srm/ReportErrorInsert.jsp | 11 +- .../WEB-INF/jsp/itms/srm/ReportErrorList.jsp | 32 +- .../jsp/itms/srm/ReportIssueCopyInsert.jsp | 963 +++++++++++++++++ .../jsp/itms/srm/ReportIssueDetail.jsp | 48 +- .../jsp/itms/srm/ReportIssueInsert.jsp | 15 +- .../WEB-INF/jsp/itms/srm/ReportIssueList.jsp | 27 +- .../jsp/itms/srm/ReportIssueUpdate.jsp | 4 +- .../jsp/itms/srm/ReportOtherCopyInsert.jsp | 965 +++++++++++++++++ .../jsp/itms/srm/ReportOtherDetail.jsp | 43 +- .../jsp/itms/srm/ReportOtherInsert.jsp | 11 +- .../WEB-INF/jsp/itms/srm/ReportOtherList.jsp | 12 +- .../jsp/itms/srm/SvcDeskCopyInsert.jsp | 786 ++++++++++++++ .../WEB-INF/jsp/itms/srm/SvcDeskDetail.jsp | 25 + .../WEB-INF/jsp/itms/srm/SvcDeskInsert.jsp | 7 +- .../WEB-INF/jsp/itms/srm/SvcDeskReqDetail.jsp | 2 +- src/main/webapp/WEB-INF/jsp/main/LoginUsr.jsp | 61 +- .../webapp/WEB-INF/jsp/main/LoginUsr_kic.jsp | 122 ++- .../webapp/WEB-INF/jsp/main/PopIdFind.jsp | 7 +- .../WEB-INF/jsp/main/PopPasswordReset.jsp | 25 +- .../webapp/WEB-INF/jsp/main/PopUserRegist.jsp | 375 +++++++ 44 files changed, 6247 insertions(+), 138 deletions(-) create mode 100644 src/main/webapp/WEB-INF/jsp/itms/srm/ReportCheckCopyInsert.jsp create mode 100644 src/main/webapp/WEB-INF/jsp/itms/srm/ReportErrorCopyInsert.jsp create mode 100644 src/main/webapp/WEB-INF/jsp/itms/srm/ReportIssueCopyInsert.jsp create mode 100644 src/main/webapp/WEB-INF/jsp/itms/srm/ReportOtherCopyInsert.jsp create mode 100644 src/main/webapp/WEB-INF/jsp/itms/srm/SvcDeskCopyInsert.jsp create mode 100644 src/main/webapp/WEB-INF/jsp/main/PopUserRegist.jsp diff --git a/.classpath b/.classpath index 36064bc1..a50c6c85 100644 --- a/.classpath +++ b/.classpath @@ -12,7 +12,11 @@ - + + + + + diff --git a/src/main/java/com/urpsys/basefront/common/service/CommonService.java b/src/main/java/com/urpsys/basefront/common/service/CommonService.java index 66e1869d..102b7c1e 100644 --- a/src/main/java/com/urpsys/basefront/common/service/CommonService.java +++ b/src/main/java/com/urpsys/basefront/common/service/CommonService.java @@ -87,6 +87,38 @@ public class CommonService return uniqId; } + /** + * 각 기능에 대한 고유ID 획득(미인증) + * @author urp 인프라본부 나혁제 + * 작성일 : 2025.01.17 + */ + public String noAuthGetIdGen(String strIdName) throws Exception + { + log.info(">>>>>>>>>> noAuthGetIdGen <<<<<<<<<<"); + + log.info("strIdName [{}]", strIdName); + + Map bodyMap = new LinkedHashMap(); + Map returnMap = new LinkedHashMap(); + + // Body Setting Start --------------------------------- + bodyMap.put("IdName", strIdName); + // Body Setting End --------------------------------- + + // RestApi Call Start --------------------------------- + returnMap = restApiCallUtil.RestApiCallNoAuth(bodyMap, "/main/noAuthGetIdGen.do"); + // RestApi Call End --------------------------------- + + // Return Data Setting Start -------------------------- + String uniqId = (String)returnMap.get("strGenId"); + // Return Data Setting End -------------------------- + + log.info("<<<<<<<<<< noAuthGetIdGen >>>>>>>>>>"); + + return uniqId; + } + + /** * 코드정보 추출 * @author urp 인프라본부 나혁제 diff --git a/src/main/java/com/urpsys/basefront/config/SecurityConfig.java b/src/main/java/com/urpsys/basefront/config/SecurityConfig.java index 496d7c82..720931d7 100644 --- a/src/main/java/com/urpsys/basefront/config/SecurityConfig.java +++ b/src/main/java/com/urpsys/basefront/config/SecurityConfig.java @@ -55,6 +55,7 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter public void configure(HttpSecurity http) throws Exception { // 2026.01.14 나혁제 공통팝업 허용처리 + // 2026.01.19 나혁제 id 체크 컨트롤러 추가 http.csrf().disable() .authorizeRequests() .requestMatchers(PathRequest.toStaticResources().atCommonLocations()).permitAll() @@ -62,9 +63,16 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter .antMatchers("/logout*.do" ).permitAll() .antMatchers("/main/logout.do" ).permitAll() .antMatchers("/common/PageRedirection.do" ).permitAll() - .antMatchers("/main/searchIdFind.do" ).permitAll() - .antMatchers("/main/UserPasswordResetExt.do" ).permitAll() .antMatchers("/egov/js/**" ).permitAll() + .antMatchers("/egov/css/**" ).permitAll() + .antMatchers("/egov/images/**" ).permitAll() + .antMatchers("/EgovModal.do" ).permitAll() + .antMatchers("/main/noAuth*.do" ).permitAll() + .antMatchers("//validator*" ).permitAll() + + // .antMatchers("/main/searchIdFind.do" ).permitAll() + // .antMatchers("/main/UserPasswordResetExt.do" ).permitAll() + .antMatchers("/").permitAll() .and() .headers().frameOptions().disable() diff --git a/src/main/java/com/urpsys/basefront/controller/MainController.java b/src/main/java/com/urpsys/basefront/controller/MainController.java index 21049505..fe06d02f 100644 --- a/src/main/java/com/urpsys/basefront/controller/MainController.java +++ b/src/main/java/com/urpsys/basefront/controller/MainController.java @@ -1,5 +1,6 @@ package com.urpsys.basefront.controller; +import java.util.ArrayList; import java.util.HashMap; import java.util.LinkedHashMap; import java.util.List; @@ -12,26 +13,33 @@ import javax.servlet.http.HttpSession; import org.egovframe.rte.fdl.property.EgovPropertyService; import org.egovframe.rte.ptl.mvc.tags.ui.pagination.PaginationInfo; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.security.core.context.SecurityContextHolder; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.ui.ModelMap; +import org.springframework.validation.BindingResult; import org.springframework.web.bind.annotation.ModelAttribute; 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.servlet.ModelAndView; import com.google.gson.FieldNamingPolicy; import com.google.gson.Gson; import com.google.gson.GsonBuilder; import com.urpsys.basefront.common.egov.util.EgovStringUtil; +import com.urpsys.basefront.common.service.CommonService; import com.urpsys.basefront.common.util.CommonUtil; import com.urpsys.basefront.common.util.ConvertUtils; import com.urpsys.basefront.common.util.RestApiCallUtil; import com.urpsys.basefront.domain.MemberVO; import com.urpsys.basefront.domain.TokenInfo; +import com.urpsys.itmsfront.cmm.domain.ComDefaultCodeVO; import com.urpsys.itmsfront.sys.domain.PrsnlPortletCreateVO; import com.urpsys.itmsfront.sys.domain.PrsnlPortletManageVO; +import com.urpsys.itmsfront.sys.domain.UserDefaultVO; import com.urpsys.itmsfront.sys.domain.UserManageVO; import kong.unirest.HttpResponse; @@ -75,6 +83,9 @@ public class MainController @Resource(name = "propertiesService") protected EgovPropertyService propertyService; + @Autowired + private CommonService commonService; + // @Autowired // HtmlEmailUtil htmlEmailUtil; @@ -425,11 +436,11 @@ public class MainController * 작성일 : 2026.01.14 */ @ResponseBody - @RequestMapping(value="/main/searchIdFind.do") + @RequestMapping(value="/main/noAuthSearchIdFind.do") public LinkedHashMap searchIdFind( HttpServletRequest request , HttpServletResponse response ) throws Exception { - log.info(">>>>>>>>>>>>>>> /main/searchIdFind.do <<<<<<<<<<<<<<<"); + log.info(">>>>>>>>>>>>>>> /main/noAuthSearchIdFind.do <<<<<<<<<<<<<<<"); LinkedHashMap resBody = new LinkedHashMap(); // Response Map @@ -441,14 +452,14 @@ public class MainController bodyMap.put("userEmail" , CommonUtil.getData(request, "userEmail")); // RestApi Call Start --------------------------------- - returnMap = restApiCallUtil.RestApiCallNoAuth(bodyMap, "/main/searchIdFind.do"); + returnMap = restApiCallUtil.RestApiCallNoAuth(bodyMap, "/main/noAuthSearchIdFind.do"); // RestApi Call End --------------------------------- String userId = (String)returnMap.get("userId"); resBody.put("userId", userId ); - log.info("<<<<<<<<<<<<<<< /main/searchIdFind.do >>>>>>>>>>>>>>>"); + log.info("<<<<<<<<<<<<<<< /main/noAuthSearchIdFind.do >>>>>>>>>>>>>>>"); return resBody; } @@ -459,11 +470,11 @@ public class MainController * 작성일 : 2026.01.14 */ @ResponseBody - @RequestMapping(value="/main/UserPasswordResetExt.do") + @RequestMapping(value="/main/noAuthUserPasswordResetExt.do") public LinkedHashMap UserPasswordResetExt( HttpServletRequest request , HttpServletResponse response ) throws Exception { - log.info(">>>>>>>>>>>>>>> /main/UserPasswordResetExt.do <<<<<<<<<<<<<<<"); + log.info(">>>>>>>>>>>>>>> /main/noAuthUserPasswordResetExt.do <<<<<<<<<<<<<<<"); LinkedHashMap resBody = new LinkedHashMap(); // Response Map @@ -476,7 +487,7 @@ public class MainController bodyMap.put("userEmail" , CommonUtil.getData(request, "userEmail")); // RestApi Call Start --------------------------------- - returnMap = restApiCallUtil.RestApiCallNoAuth(bodyMap, "/main/UserPasswordResetExt.do"); + returnMap = restApiCallUtil.RestApiCallNoAuth(bodyMap, "/main/noAuthUserPasswordResetExt.do"); // RestApi Call End --------------------------------- int resultCd = (int)returnMap.get("resultCd"); @@ -485,11 +496,178 @@ public class MainController resBody.put("resultCd" , resultCd ); resBody.put("resultMsg" , resultMsg ); - log.info("<<<<<<<<<<<<<<< /main/UserPasswordResetExt.do >>>>>>>>>>>>>>>"); + log.info("<<<<<<<<<<<<<<< /main/noAuthUserPasswordResetExt.do >>>>>>>>>>>>>>>"); return resBody; } + /** + * 사용자 등록 화면으로 이동한다. + * @author urp 인프라본부 나혁제 + * 작성일 : 2026.01.20 + */ + @RequestMapping("/main/noAuthUserInsertView.do") + public String noAuthUserInsertView( @ModelAttribute("userSearchVO" ) UserDefaultVO userSearchVO + , @ModelAttribute("userManageExtVO") UserManageVO userManageVO + , Model model) throws Exception + { + log.info(" >>>>>>>>>>>>>>> /main/noAuthUserInsertView.do <<<<<<<<<<<<<<< "); + + Map bodyMap = new LinkedHashMap(); + Map returnMap = new LinkedHashMap(); + + ComDefaultCodeVO voComCode = new ComDefaultCodeVO(); + + List> listComCode = new ArrayList(); + List chglistComCode = new ArrayList(); + + // 조직정보 추출 + voComCode = new ComDefaultCodeVO(); + voComCode.setTableNm("COMTNORGNZTINFO"); + + // Body Setting Start --------------------------------- + bodyMap = ConvertUtils.convertToMap(voComCode); + // Body Setting End --------------------------------- + + // RestApi Call Start --------------------------------- + returnMap = restApiCallUtil.RestApiCallNoAuth(bodyMap, "/main/noAuthSelectOgrnztIdDetail.do"); + // RestApi Call End --------------------------------- + + listComCode = (List>)returnMap.get("resultList"); + chglistComCode = ConvertUtils.convertToValueObjects(listComCode, ComDefaultCodeVO.class); + model.addAttribute("orgnztId_result", chglistComCode); + + // 그룹정보 추출 + voComCode = new ComDefaultCodeVO(); + voComCode.setTableNm("COMTNORGNZTINFO"); + + // Body Setting Start --------------------------------- + bodyMap = ConvertUtils.convertToMap(voComCode); + // Body Setting End --------------------------------- + + // RestApi Call Start --------------------------------- + returnMap = restApiCallUtil.RestApiCallNoAuth(bodyMap, "/main/noAuthSelectGroupIdDetail.do"); + // RestApi Call End --------------------------------- + + listComCode = (List>)returnMap.get("resultList"); + chglistComCode = ConvertUtils.convertToValueObjects(listComCode, ComDefaultCodeVO.class); + model.addAttribute("groupId_result", chglistComCode); // 소속기관코드를 코드정보로부터 조회 - COM025 + + log.info(" <<<<<<<<<<<<<<< /main/noAuthUserInsertView.do >>>>>>>>>>>>>>> "); + + return "uritms-base-popup1/main/PopUserRegist"; + } + + /** + * 입력한 사용자아이디의 중복여부를 체크하여 사용가능여부를 확인(미인증) + * @author urp 인프라본부 나혁제 + * 작성일 : 2026.01.20 + */ + @RequestMapping(value = "/main/noAuthIdDplctCnfirmAjax.do") + public ModelAndView noAuthIdDplctCnfirmAjax(@RequestParam Map commandMap) throws Exception + { + log.info(">>>>>>>>>>>>>>> /main/noAuthIdDplctCnfirmAjax.do <<<<<<<<<<<<<<<"); + + Map bodyMap = new LinkedHashMap(); + Map returnMap = new LinkedHashMap(); + + ModelAndView modelAndView = new ModelAndView(); + modelAndView.setViewName("jsonView"); + + String checkId = (String) commandMap.get("checkId"); + + // Body Setting Start --------------------------------- + // bodyMap = ConvertUtils.convertToMap(commandMap); + bodyMap.put("checkId", checkId); + // Body Setting End --------------------------------- + + // RestApi Call Start --------------------------------- + returnMap = restApiCallUtil.RestApiCallNoAuth(bodyMap, "/main/noAuthIdDplctCnfirmAjax.do"); + // RestApi Call End --------------------------------- + + // Return Data Setting Start -------------------------- + int usedCnt = (int)returnMap.get("usedCnt"); + // Return Data Setting End -------------------------- + + modelAndView.addObject("usedCnt", usedCnt); + modelAndView.addObject("checkId", checkId); + + log.info("<<<<<<<<<<<<<<< /main/noAuthIdDplctCnfirmAjax.do >>>>>>>>>>>>>>>"); + + return modelAndView; + } + + /** + * 회원가입(미인증) + * @author urp 인프라본부 나혁제 + * 작성일 : 2026.01.21 + */ + @ResponseBody + @RequestMapping("/main/noAuthUserInsertExt.do") + public LinkedHashMap noAuthUserInsertExt( @ModelAttribute("userManageExtVO") UserManageVO userManageVO + , Model model) throws Exception + { + log.info(">>>>>>>>>>>>>>> /main/noAuthUserInsertExt.do <<<<<<<<<<<<<<<"); + + Map bodyMap = new LinkedHashMap(); + Map returnMap = new LinkedHashMap(); + + LinkedHashMap resBody = new LinkedHashMap(); // Response Map + + String strReturnUrl=""; + + String uniqId = commonService.noAuthGetIdGen("egovUsrCnfrmIdGnrService"); + + if(uniqId==null || uniqId.equals("")) + { + resBody.put("resultCd" , -1 ); + resBody.put("resultMsg" , "사용자 고유번호 획득시 오류가 발생했습니다. " ); + } + + userManageVO.setUniqId(uniqId); + + // KISA 보안약점 조치 + if ("".equals(userManageVO.getOrgnztId())) + { + userManageVO.setOrgnztId(null); + } + + //KISA 보안약점 조치 + if ("".equals(userManageVO.getGroupId())) + { + userManageVO.setGroupId(null); + } + + // 기본정보 세팅 + userManageVO.setPasswordHint ("P01"); + userManageVO.setPasswordCnsr ("없음"); + userManageVO.setAreaNo ("0000"); + userManageVO.setHomemiddleTelno("0000"); + userManageVO.setHomeendTelno ("0000"); + userManageVO.setHomeadres ("주소없음"); + userManageVO.setZip (""); + userManageVO.setEmplyrSttusCode("A"); + + // Body Setting Start --------------------------------- + bodyMap = ConvertUtils.convertToMapAll(userManageVO); + // Body Setting End --------------------------------- + + // RestApi Call Start --------------------------------- + returnMap = restApiCallUtil.RestApiCallNoAuth(bodyMap, "/main/noAuthUserInsertExt.do"); + // RestApi Call End --------------------------------- + + resBody = (LinkedHashMap)returnMap; + + log.info(">>>>>>>>>>>>>>> /main/noAuthUserInsertExt.do <<<<<<<<<<<<<<<"); + + return resBody; + } + + + + + + diff --git a/src/main/java/com/urpsys/itmsfront/srm/controller/ReportCheckController.java b/src/main/java/com/urpsys/itmsfront/srm/controller/ReportCheckController.java index 45eed9a2..68684b25 100644 --- a/src/main/java/com/urpsys/itmsfront/srm/controller/ReportCheckController.java +++ b/src/main/java/com/urpsys/itmsfront/srm/controller/ReportCheckController.java @@ -316,7 +316,7 @@ public class ReportCheckController model.addAttribute("resultForm" , resultForm ); // 보고서 양식 정보 model.addAttribute("resultAsset" , resultAsset ); // 보고서 양식 정보 - // 인스던트 정보가 없는경우 0 으로 세팅 + // 인스던트 정보가 없는경우 0 으로 세팅 if(resultIncident.get("inIncidentSeq") == null) { model.addAttribute("inIncidentSeq", 0 ); @@ -436,6 +436,108 @@ public class ReportCheckController return "uritms-tiles2/srm/ReportCheckUpdate"; } + /** + * 보고서 새로만들기 화면으로 이동한다. + * @author urp 인프라본부 나혁제 + * 작성일 : 2026.01.22 + */ + @RequestMapping(value = "/srm/insertCopyViewReportCheck.do") + public String insertCopyViewReportCheck( @ModelAttribute("ReportCheckListVo") ReportCheckListVo reportCheckListVo + , @ModelAttribute("searchVO") ReportCheckListVo searchVO + , HttpServletRequest request + , HttpServletResponse response + , ModelMap model) throws Exception + { + log.info(">>>>>>>>>>>>>>> /srm/insertCopyViewReportCheck.do <<<<<<<<<<<<<<<"); + + // api in/out map 정의 + Map bodyMap = new LinkedHashMap(); + Map returnMap = new LinkedHashMap(); + + int inReportSeq = CommonUtil.zeroConvert(reportCheckListVo.getInReportSeq()); + + // Body Setting Start --------------------------------- + bodyMap.put("inReportSeq", inReportSeq); + // Body Setting End --------------------------------- + + // RestApi Call Start --------------------------------- + returnMap = restApiCallUtil.RestApiCall(bodyMap, "/srm/getReportWithBodyCheck.do"); + // RestApi Call End --------------------------------- + + // 결과값 추출 Start --------------------------------- + Map resultReportCheck = (Map)returnMap.get("resultReportCheck"); + List> resultSharings = (List>)returnMap.get("resultSharings"); + List> resultAssets = (List>)returnMap.get("resultAssets"); + List> resultApprovals = (List>)returnMap.get("resultApprovals"); + + String sharingTxt = (String)returnMap.get("sharingTxt"); + String privType = (String)returnMap.get("privType"); + String incidentId = (String)returnMap.get("incidentId"); + int approvalReq = (int)returnMap.get("approvalReq"); + + log.info("sharingTxt [{}]", sharingTxt); + log.info("privType [{}]", privType); + log.info("approvalReq [{}]", approvalReq); + // 결과값 추출 End --------------------------------- + + // 보고서 본문 복호화처리 + String strReportBody = (String)resultReportCheck.get("txReportBody"); + String strReportBodyDec = CommonUtil.base64decode(strReportBody); + + resultReportCheck.put("txReportBody", strReportBodyDec); + model.addAttribute("sharingTxt" , sharingTxt ); // String + model.addAttribute("privType" , privType ); // String + model.addAttribute("incidentId" , incidentId ); // String + model.addAttribute("approvalReq" , approvalReq ); // int + + model.addAttribute("resultReport" , resultReportCheck ); // Map + model.addAttribute("resultSharings" , resultSharings ); // List + model.addAttribute("resultAssets" , resultAssets ); // List + model.addAttribute("resultApprovals" , resultApprovals ); // List + + // 서비스 정보 추출 + // RestApi Call Start --------------------------------- + returnMap = restApiCallUtil.RestApiCall(bodyMap, "/srm/getInitReportCheck.do"); + // RestApi Call End --------------------------------- + List> resultService = (List>)returnMap.get("resultService"); + List> resultForm = (List>)returnMap.get("resultForm"); + + model.addAttribute("resultService" , resultService ); // 서비스 정보 + model.addAttribute("resultForm" , resultForm ); // 보고서 양식 정보 + + model.addAttribute("dtDownstartDatetime" , CommonUtil.getKST("yyyy-MM-dd HH:mm")); // 시작일시 + model.addAttribute("dtDownfinishDatetime" , CommonUtil.getKST("yyyy-MM-dd HH:mm")); // 종료일시 + model.addAttribute("dtStartDatetime" , CommonUtil.getKST("yyyy-MM-dd HH:mm")); // 서비스다운시작일시 + model.addAttribute("dtFinishDatetime" , CommonUtil.getKST("yyyy-MM-dd HH:mm")); // 서비스다운종료일시 + + TokenInfo tokenInfo = CommonUtil.getTokenInfo(); + + model.addAttribute("inRegUser", tokenInfo.getUniqId ()); // 접속자ID + model.addAttribute("vcRegUser", tokenInfo.getUserName()); // 접속자명 + + // 2025.12.03 나혁제 파일체크 로직 추가 + // 파일업로드 제한 + String whiteListFileUploadExtensions = propertyService.getString("Globals.fileUpload.Extensions"); + String fileUploadMaxSize = propertyService.getString("Globals.fileUpload.maxSize"); + + model.addAttribute("fileUploadExtensions", whiteListFileUploadExtensions); + model.addAttribute("fileUploadMaxSize" , fileUploadMaxSize); + + model.addAttribute("inIncidentSeq", 0 ); + + log.info("<<<<<<<<<<<<<<< /srm/insertCopyViewReportCheck.do >>>>>>>>>>>>>>>"); + + return "uritms-tiles2/srm/ReportCheckCopyInsert"; + } + + + + + + + + + /** * 보고서 등록 처리를 한다. * @author urp 인프라본부 나혁제 diff --git a/src/main/java/com/urpsys/itmsfront/srm/controller/ReportErrorController.java b/src/main/java/com/urpsys/itmsfront/srm/controller/ReportErrorController.java index b6d996ed..39ed8edf 100644 --- a/src/main/java/com/urpsys/itmsfront/srm/controller/ReportErrorController.java +++ b/src/main/java/com/urpsys/itmsfront/srm/controller/ReportErrorController.java @@ -422,6 +422,101 @@ public class ReportErrorController return "uritms-tiles2/srm/ReportErrorUpdate"; } + /** + * 보고서 새로만들기 화면으로 이동한다. + * @author urp 인프라본부 나혁제 + * 작성일 : 2026.01.22 + */ + @RequestMapping(value = "/srm/insertCopyViewReportError.do") + public String insertCopyViewReportError( @ModelAttribute("ReportErrorListVo") ReportErrorListVo reportErrorListVo + , @ModelAttribute("searchVO") ReportErrorListVo searchVO + , HttpServletRequest request + , HttpServletResponse response + , ModelMap model) throws Exception + { + log.info(">>>>>>>>>>>>>>> /srm/insertCopyViewReportError.do <<<<<<<<<<<<<<<"); + + // api in/out map 정의 + Map bodyMap = new LinkedHashMap(); + Map returnMap = new LinkedHashMap(); + + int inReportSeq = CommonUtil.zeroConvert(reportErrorListVo.getInReportSeq()); + + // Body Setting Start --------------------------------- + bodyMap.put("inReportSeq", inReportSeq); + // Body Setting End --------------------------------- + + // RestApi Call Start --------------------------------- + returnMap = restApiCallUtil.RestApiCall(bodyMap, "/srm/getReportWithBodyError.do"); + // RestApi Call End --------------------------------- + + // 결과값 추출 Start --------------------------------- + Map resultReportError = (Map)returnMap.get("resultReportError"); + List> resultSharings = (List>)returnMap.get("resultSharings"); + List> resultAssets = (List>)returnMap.get("resultAssets"); + List> resultApprovals = (List>)returnMap.get("resultApprovals"); + + String sharingTxt = (String)returnMap.get("sharingTxt"); + String privType = (String)returnMap.get("privType"); + String incidentId = (String)returnMap.get("incidentId"); + int approvalReq = (int)returnMap.get("approvalReq"); + + log.info("sharingTxt [{}]", sharingTxt); + log.info("privType [{}]", privType); + log.info("approvalReq [{}]", approvalReq); + // 결과값 추출 End --------------------------------- + + // 보고서 본문 복호화처리 + String strReportBody = (String)resultReportError.get("txReportBody"); + String strReportBodyDec = CommonUtil.base64decode(strReportBody); + + resultReportError.put("txReportBody", strReportBodyDec); + model.addAttribute("sharingTxt" , sharingTxt ); // String + model.addAttribute("privType" , privType ); // String + model.addAttribute("incidentId" , incidentId ); // String + model.addAttribute("approvalReq" , approvalReq ); // int + + model.addAttribute("resultReport" , resultReportError ); // Map + model.addAttribute("resultSharings" , resultSharings ); // List + model.addAttribute("resultAssets" , resultAssets ); // List + model.addAttribute("resultApprovals" , resultApprovals ); // List + + // 서비스 정보 추출 + // RestApi Call Start --------------------------------- + returnMap = restApiCallUtil.RestApiCall(bodyMap, "/srm/getInitReportError.do"); + // RestApi Call End --------------------------------- + List> resultService = (List>)returnMap.get("resultService"); + List> resultForm = (List>)returnMap.get("resultForm"); + + model.addAttribute("resultService" , resultService ); // 서비스 정보 + model.addAttribute("resultForm" , resultForm ); // 보고서 양식 정보 + + model.addAttribute("dtDownstartDatetime" , CommonUtil.getKST("yyyy-MM-dd HH:mm")); // 시작일시 + model.addAttribute("dtDownfinishDatetime" , CommonUtil.getKST("yyyy-MM-dd HH:mm")); // 종료일시 + model.addAttribute("dtStartDatetime" , CommonUtil.getKST("yyyy-MM-dd HH:mm")); // 서비스다운시작일시 + model.addAttribute("dtFinishDatetime" , CommonUtil.getKST("yyyy-MM-dd HH:mm")); // 서비스다운종료일시 + + TokenInfo tokenInfo = CommonUtil.getTokenInfo(); + + model.addAttribute("inRegUser", tokenInfo.getUniqId ()); // 접속자ID + model.addAttribute("vcRegUser", tokenInfo.getUserName()); // 접속자명 + + // 2025.12.03 나혁제 파일체크 로직 추가 + // 파일업로드 제한 + String whiteListFileUploadExtensions = propertyService.getString("Globals.fileUpload.Extensions"); + String fileUploadMaxSize = propertyService.getString("Globals.fileUpload.maxSize"); + + model.addAttribute("fileUploadExtensions", whiteListFileUploadExtensions); + model.addAttribute("fileUploadMaxSize" , fileUploadMaxSize); + + model.addAttribute("inIncidentSeq", 0 ); + + log.info("<<<<<<<<<<<<<<< /srm/insertCopyViewReportError.do >>>>>>>>>>>>>>>"); + + return "uritms-tiles2/srm/ReportErrorCopyInsert"; + } + + /** * 장애보고서 등록 처리를 한다. * @author urp 인프라본부 나혁제 diff --git a/src/main/java/com/urpsys/itmsfront/srm/controller/ReportIssueController.java b/src/main/java/com/urpsys/itmsfront/srm/controller/ReportIssueController.java index 30ad0072..ea5c07d6 100644 --- a/src/main/java/com/urpsys/itmsfront/srm/controller/ReportIssueController.java +++ b/src/main/java/com/urpsys/itmsfront/srm/controller/ReportIssueController.java @@ -423,6 +423,106 @@ public class ReportIssueController return "uritms-tiles2/srm/ReportIssueUpdate"; } + /** + * 보고서 새로만들기 화면으로 이동한다. + * @author urp 인프라본부 나혁제 + * 작성일 : 2026.01.22 + */ + @RequestMapping(value = "/srm/insertCopyViewReportIssue.do") + public String insertCopyViewReportIssue( @ModelAttribute("ReportIssueListVo") ReportIssueListVo reportIssueListVo + , @ModelAttribute("searchVO") ReportIssueListVo searchVO + , HttpServletRequest request + , HttpServletResponse response + , ModelMap model) throws Exception + { + log.info(">>>>>>>>>>>>>>> /srm/insertCopyViewReportIssue.do <<<<<<<<<<<<<<<"); + + // api in/out map 정의 + Map bodyMap = new LinkedHashMap(); + Map returnMap = new LinkedHashMap(); + + int inReportSeq = CommonUtil.zeroConvert(reportIssueListVo.getInReportSeq()); + + // Body Setting Start --------------------------------- + bodyMap.put("inReportSeq", inReportSeq); + // Body Setting End --------------------------------- + + // RestApi Call Start --------------------------------- + returnMap = restApiCallUtil.RestApiCall(bodyMap, "/srm/getReportWithBodyIssue.do"); + // RestApi Call End --------------------------------- + + // 결과값 추출 Start --------------------------------- + Map resultReportIssue = (Map)returnMap.get("resultReportIssue"); + List> resultSharings = (List>)returnMap.get("resultSharings"); + List> resultAssets = (List>)returnMap.get("resultAssets"); + List> resultApprovals = (List>)returnMap.get("resultApprovals"); + + String sharingTxt = (String)returnMap.get("sharingTxt"); + String privType = (String)returnMap.get("privType"); + String incidentId = (String)returnMap.get("incidentId"); + int approvalReq = (int)returnMap.get("approvalReq"); + + log.info("sharingTxt [{}]", sharingTxt); + log.info("privType [{}]", privType); + log.info("approvalReq [{}]", approvalReq); + // 결과값 추출 End --------------------------------- + + // 보고서 본문 복호화처리 + String strReportBody = (String)resultReportIssue.get("txReportBody"); + String strReportBodyDec = CommonUtil.base64decode(strReportBody); + + resultReportIssue.put("txReportBody", strReportBodyDec); + model.addAttribute("sharingTxt" , sharingTxt ); // String + model.addAttribute("privType" , privType ); // String + model.addAttribute("incidentId" , incidentId ); // String + model.addAttribute("approvalReq" , approvalReq ); // int + + model.addAttribute("resultReport" , resultReportIssue ); // Map + model.addAttribute("resultSharings" , resultSharings ); // List + model.addAttribute("resultAssets" , resultAssets ); // List + model.addAttribute("resultApprovals" , resultApprovals ); // List + + // 서비스 정보 추출 + // RestApi Call Start --------------------------------- + returnMap = restApiCallUtil.RestApiCall(bodyMap, "/srm/getInitReportIssue.do"); + // RestApi Call End --------------------------------- + List> resultService = (List>)returnMap.get("resultService"); + List> resultForm = (List>)returnMap.get("resultForm"); + + model.addAttribute("resultService" , resultService ); // 서비스 정보 + model.addAttribute("resultForm" , resultForm ); // 보고서 양식 정보 + + model.addAttribute("dtDownstartDatetime" , CommonUtil.getKST("yyyy-MM-dd HH:mm")); // 시작일시 + model.addAttribute("dtDownfinishDatetime" , CommonUtil.getKST("yyyy-MM-dd HH:mm")); // 종료일시 + model.addAttribute("dtStartDatetime" , CommonUtil.getKST("yyyy-MM-dd HH:mm")); // 서비스다운시작일시 + model.addAttribute("dtFinishDatetime" , CommonUtil.getKST("yyyy-MM-dd HH:mm")); // 서비스다운종료일시 + + TokenInfo tokenInfo = CommonUtil.getTokenInfo(); + + model.addAttribute("inRegUser", tokenInfo.getUniqId ()); // 접속자ID + model.addAttribute("vcRegUser", tokenInfo.getUserName()); // 접속자명 + + // 2025.12.03 나혁제 파일체크 로직 추가 + // 파일업로드 제한 + String whiteListFileUploadExtensions = propertyService.getString("Globals.fileUpload.Extensions"); + String fileUploadMaxSize = propertyService.getString("Globals.fileUpload.maxSize"); + + model.addAttribute("fileUploadExtensions", whiteListFileUploadExtensions); + model.addAttribute("fileUploadMaxSize" , fileUploadMaxSize); + + model.addAttribute("inIncidentSeq", 0 ); + + log.info("<<<<<<<<<<<<<<< /srm/insertCopyViewReportIssue.do >>>>>>>>>>>>>>>"); + + return "uritms-tiles2/srm/ReportIssueCopyInsert"; + } + + + + + + + /** * 이슈보고서 등록 처리를 한다. * @author urp 인프라본부 나혁제 diff --git a/src/main/java/com/urpsys/itmsfront/srm/controller/ReportOtherController.java b/src/main/java/com/urpsys/itmsfront/srm/controller/ReportOtherController.java index f15c9786..dd773830 100644 --- a/src/main/java/com/urpsys/itmsfront/srm/controller/ReportOtherController.java +++ b/src/main/java/com/urpsys/itmsfront/srm/controller/ReportOtherController.java @@ -430,6 +430,106 @@ public class ReportOtherController return "uritms-tiles2/srm/ReportOtherUpdate"; } + /** + * 보고서 새로만들기 화면으로 이동한다. + * @author urp 인프라본부 나혁제 + *Other : 2026.01.22 + */ + @RequestMapping(value = "/srm/insertCopyViewReportOther.do") + public String insertCopyViewReportOther( @ModelAttribute("ReportOtherListVo") ReportOtherListVo reportOtherListVo + , @ModelAttribute("searchVO") ReportOtherListVo searchVO + , HttpServletRequest request + , HttpServletResponse response + , ModelMap model) throws Exception + { + log.info(">>>>>>>>>>>>>>> /srm/insertCopyViewReportOther.do <<<<<<<<<<<<<<<"); + + // api in/out map 정의 + Map bodyMap = new LinkedHashMap(); + Map returnMap = new LinkedHashMap(); + + int inReportSeq = CommonUtil.zeroConvert(reportOtherListVo.getInReportSeq()); + + // Body Setting Start --------------------------------- + bodyMap.put("inReportSeq", inReportSeq); + bodyMap.put("inTask", CommonUtil.getData(request, "inTask")); // 보고서 유형 추출 + // Body Setting End --------------------------------- + + // RestApi Call Start --------------------------------- + returnMap = restApiCallUtil.RestApiCall(bodyMap, "/srm/getReportWithBodyOther.do"); + // RestApi Call End --------------------------------- + + // 결과값 추출 Start --------------------------------- + Map resultReportOther = (Map)returnMap.get("resultReportOther"); + List> resultSharings = (List>)returnMap.get("resultSharings"); + List> resultAssets = (List>)returnMap.get("resultAssets"); + List> resultApprovals = (List>)returnMap.get("resultApprovals"); + + String sharingTxt = (String)returnMap.get("sharingTxt"); + String privType = (String)returnMap.get("privType"); + String incidentId = (String)returnMap.get("incidentId"); + int approvalReq = (int)returnMap.get("approvalReq"); + + log.info("sharingTxt [{}]", sharingTxt); + log.info("privType [{}]", privType); + log.info("approvalReq [{}]", approvalReq); + // 결과값 추출 End --------------------------------- + + // 보고서 본문 복호화처리 + String strReportBody = (String)resultReportOther.get("txReportBody"); + String strReportBodyDec = CommonUtil.base64decode(strReportBody); + + resultReportOther.put("txReportBody", strReportBodyDec); + model.addAttribute("sharingTxt" , sharingTxt ); // String + model.addAttribute("privType" , privType ); // String + model.addAttribute("incidentId" , incidentId ); // String + model.addAttribute("approvalReq" , approvalReq ); // int + + model.addAttribute("resultReport" , resultReportOther ); // Map + model.addAttribute("resultSharings" , resultSharings ); // List + model.addAttribute("resultAssets" , resultAssets ); // List + model.addAttribute("resultApprovals" , resultApprovals ); // List + + // 서비스 정보 추출 + // RestApi Call Start --------------------------------- + returnMap = restApiCallUtil.RestApiCall(bodyMap, "/srm/getInitReportOther.do"); + // RestApi Call End --------------------------------- + List> resultService = (List>)returnMap.get("resultService"); + List> resultForm = (List>)returnMap.get("resultForm"); + + model.addAttribute("resultService" , resultService ); // 서비스 정보 + model.addAttribute("resultForm" , resultForm ); // 보고서 양식 정보 + + model.addAttribute("dtDownstartDatetime" , CommonUtil.getKST("yyyy-MM-dd HH:mm")); // 시작일시 + model.addAttribute("dtDownfinishDatetime" , CommonUtil.getKST("yyyy-MM-dd HH:mm")); // 종료일시 + model.addAttribute("dtStartDatetime" , CommonUtil.getKST("yyyy-MM-dd HH:mm")); // 서비스다운시작일시 + model.addAttribute("dtFinishDatetime" , CommonUtil.getKST("yyyy-MM-dd HH:mm")); // 서비스다운종료일시 + + TokenInfo tokenInfo = CommonUtil.getTokenInfo(); + + model.addAttribute("inRegUser", tokenInfo.getUniqId ()); // 접속자ID + model.addAttribute("vcRegUser", tokenInfo.getUserName()); // 접속자명 + + // 2025.12.03 나혁제 파일체크 로직 추가 + // 파일업로드 제한 + String whiteListFileUploadExtensions = propertyService.getString("Globals.fileUpload.Extensions"); + String fileUploadMaxSize = propertyService.getString("Globals.fileUpload.maxSize"); + + model.addAttribute("fileUploadExtensions", whiteListFileUploadExtensions); + model.addAttribute("fileUploadMaxSize" , fileUploadMaxSize); + + model.addAttribute("inIncidentSeq", 0 ); + + log.info("<<<<<<<<<<<<<<< /srm/insertCopyViewReportOther.do >>>>>>>>>>>>>>>"); + + return "uritms-tiles2/srm/ReportOtherCopyInsert"; + } + + + + + + /** * 기타보고서 등록 처리를 한다. * @author urp 인프라본부 나혁제 diff --git a/src/main/java/com/urpsys/itmsfront/srm/controller/SvcDeskController.java b/src/main/java/com/urpsys/itmsfront/srm/controller/SvcDeskController.java index f9998612..3662b399 100644 --- a/src/main/java/com/urpsys/itmsfront/srm/controller/SvcDeskController.java +++ b/src/main/java/com/urpsys/itmsfront/srm/controller/SvcDeskController.java @@ -334,7 +334,7 @@ public class SvcDeskController // 조치예정일일 dtReqDatetime = CommonUtil.nvl(resultReqIncident.get("dtCompleteReqDateTime")); - // 조치예정일일 + // 첨부파일 String strRegAtchFileId = CommonUtil.nvl(resultReqIncident.get("atchFileId")); // 서비스코드 String strInServiceCode = CommonUtil.nvl(resultReqIncident.get("inServiceCode")); @@ -364,7 +364,6 @@ public class SvcDeskController model.addAttribute("dtReqDatetime" , dtReqDatetime); // 완료요청일시는 7일 이후 model.addAttribute("vcReqIncidentNum" , strReqIncidentNum); // 신청번호 - TokenInfo tokenInfo = CommonUtil.getTokenInfo(); model.addAttribute("inRegUser", tokenInfo.getUniqId()); // 접수자ID @@ -474,6 +473,106 @@ public class SvcDeskController return "uritms-tiles2/srm/SvcDeskUpdate"; } + /** + * 서비스 데스크 인스던트 새로만들기 화면으로 이동한다. + * @author urp 인프라본부 나혁제 + * 작성일 : 2026.01.21 + */ + @PostMapping(value = "/srm/insertCopyViewIncident.do") + public String insertCopyViewIncident( @ModelAttribute("SvcDeskListVo") SvcDeskListVo svcDeskListVo + , @ModelAttribute("searchVO") SvcDeskListVo searchVO + , HttpServletRequest request + , HttpServletResponse response + , ModelMap model) throws Exception + { + log.info(">>>>>>>>>>>>>>> /srm/insertCopyViewIncident.do <<<<<<<<<<<<<<<"); + + // api in/out map 정의 + Map bodyMap = new LinkedHashMap(); + Map returnMap = new LinkedHashMap(); + + int inIncidentSeq = CommonUtil.zeroConvert(svcDeskListVo.getInIncidentSeq()); + + // Body Setting Start --------------------------------- + bodyMap.put("inIncidentSeq", inIncidentSeq); + // Body Setting End --------------------------------- + + // RestApi Call Start --------------------------------- + returnMap = restApiCallUtil.RestApiCall(bodyMap, "/srm/getIncidentBySeq.do"); + // RestApi Call End --------------------------------- + + // 결과값 추출 Start --------------------------------- + Map resultIncident = (Map)returnMap.get("resultIncident"); + List> resultSharings = (List>)returnMap.get("resultSharings"); + List> resultReports = (List>)returnMap.get("resultReports"); + List> resultApprovals = (List>)returnMap.get("resultApprovals"); + List> resultTransgers = (List>)returnMap.get("resultTransgers"); + + String sharingTxt = (String)returnMap.get("sharingTxt"); + String privType = (String)returnMap.get("privType"); + + int transfer_avail = (int)returnMap.get("transfer_avail"); + int editDifficulty = (int)returnMap.get("editDifficulty"); + int approvalReq = (int)returnMap.get("approvalReq"); + + log.info("sharingTxt [{}]", sharingTxt); + log.info("privType [{}]", privType); + log.info("transfer_avail [{}]", transfer_avail); + log.info("editDifficulty [{}]", editDifficulty); + log.info("approvalReq [{}]", approvalReq); + + // RestApi Call End --------------------------------- + + // 인스던트 본문 복호화처리 + String strIncidentBody = (String)resultIncident.get("txIncidentBody"); + String strIncidentBodyDec = CommonUtil.base64decode(strIncidentBody); + + resultIncident.put("txIncidentBody", strIncidentBodyDec); + + model.addAttribute("sharingTxt" , sharingTxt ); // String + model.addAttribute("transfer_avail" , transfer_avail ); // int + model.addAttribute("editDifficulty" , editDifficulty ); // int + model.addAttribute("approvalReq" , approvalReq ); // int + model.addAttribute("privType" , privType ); // String + + model.addAttribute("resultIncident" , resultIncident ); // Map + model.addAttribute("resultSharings" , resultSharings ); // List + model.addAttribute("resultReports" , resultReports ); // List + model.addAttribute("resultApprovals" , resultApprovals ); // List + model.addAttribute("resultTransgers" , resultTransgers ); // List + + // 서비스 정보 추출 + // RestApi Call Start --------------------------------- + returnMap = restApiCallUtil.RestApiCall(bodyMap, "/srm/getServiceCombo.do"); + // RestApi Call End --------------------------------- + List> resultList = (List>)returnMap.get("resultList"); + + model.addAttribute("serviceList", resultList); // 서비스 정보 + + String dtReqDatetime = CommonUtil.getDatewithSpan(CommonUtil.getKST("yyyyMMddHHmm"), 7, "D", "yyyy-MM-dd HH:mm"); + + model.addAttribute("dtReceiptDatetime" , CommonUtil.getKST("yyyy-MM-dd HH:mm")); // 접수일시 + model.addAttribute("dtReqDatetime" , dtReqDatetime); // 완료요청일시는 7일 이후 + + TokenInfo tokenInfo = CommonUtil.getTokenInfo(); + + model.addAttribute("inRegUser", tokenInfo.getUniqId()); // 접수자ID + model.addAttribute("vcRegUser", tokenInfo.getUserName()); // 접수자명 + + // 2025.12.03 나혁제 파일체크 로직 추가 + // 파일업로드 제한 + String whiteListFileUploadExtensions = propertyService.getString("Globals.fileUpload.Extensions"); + String fileUploadMaxSize = propertyService.getString("Globals.fileUpload.maxSize"); + + model.addAttribute("fileUploadExtensions", whiteListFileUploadExtensions); + model.addAttribute("fileUploadMaxSize" , fileUploadMaxSize); + + log.info("<<<<<<<<<<<<<<< /srm/insertCopyViewIncident.do >>>>>>>>>>>>>>>"); + + return "uritms-tiles2/srm/SvcDeskCopyInsert"; + } + + diff --git a/src/main/java/com/urpsys/itmsfront/srm/controller/SvcDeskReqController.java b/src/main/java/com/urpsys/itmsfront/srm/controller/SvcDeskReqController.java index e8713acc..ff8ac6c6 100644 --- a/src/main/java/com/urpsys/itmsfront/srm/controller/SvcDeskReqController.java +++ b/src/main/java/com/urpsys/itmsfront/srm/controller/SvcDeskReqController.java @@ -79,7 +79,7 @@ public class SvcDeskReqController /** * 서비스 데스크 인스던트 목록을 조회한다. * @author urp 인프라본부 나혁제 - * 작성일 : 2025.02.08 + * 작성일 : 2025.12.15 */ @RequestMapping("/srm/searchReqIncident.do") public String searchReqIncident( @ModelAttribute("searchVO") SvcDeskReqListVo searchVO diff --git a/src/main/java/com/urpsys/itmsfront/srm/domain/ReportCheckVo.java b/src/main/java/com/urpsys/itmsfront/srm/domain/ReportCheckVo.java index 4bfa58f3..af8a038e 100644 --- a/src/main/java/com/urpsys/itmsfront/srm/domain/ReportCheckVo.java +++ b/src/main/java/com/urpsys/itmsfront/srm/domain/ReportCheckVo.java @@ -51,6 +51,8 @@ public class ReportCheckVo private String inPercallPrice ; private String atchFileId ; private String atchFileInUpGb ; + private String oldAtchFileId ; // 2026.01.22 나혁제 이전첨부파일 + public String getInReportSeq() { return inReportSeq; @@ -238,6 +240,12 @@ public class ReportCheckVo public void setAtchFileInUpGb(String atchFileInUpGb) { this.atchFileInUpGb = atchFileInUpGb; } + public String getOldAtchFileId() { + return oldAtchFileId; + } + public void setOldAtchFileId(String oldAtchFileId) { + this.oldAtchFileId = oldAtchFileId; + } diff --git a/src/main/java/com/urpsys/itmsfront/srm/domain/ReportErrorVo.java b/src/main/java/com/urpsys/itmsfront/srm/domain/ReportErrorVo.java index 863c5a1b..b03abe30 100644 --- a/src/main/java/com/urpsys/itmsfront/srm/domain/ReportErrorVo.java +++ b/src/main/java/com/urpsys/itmsfront/srm/domain/ReportErrorVo.java @@ -51,6 +51,7 @@ public class ReportErrorVo private String inPercallPrice ; private String atchFileId ; private String atchFileInUpGb ; + private String oldAtchFileId ; // 2026.01.22 나혁제 이전첨부파일 public String getInReportSeq() { return inReportSeq; @@ -238,6 +239,12 @@ public class ReportErrorVo public void setAtchFileInUpGb(String atchFileInUpGb) { this.atchFileInUpGb = atchFileInUpGb; } + public String getOldAtchFileId() { + return oldAtchFileId; + } + public void setOldAtchFileId(String oldAtchFileId) { + this.oldAtchFileId = oldAtchFileId; + } diff --git a/src/main/java/com/urpsys/itmsfront/srm/domain/ReportIssueVo.java b/src/main/java/com/urpsys/itmsfront/srm/domain/ReportIssueVo.java index 783800fc..39d4206c 100644 --- a/src/main/java/com/urpsys/itmsfront/srm/domain/ReportIssueVo.java +++ b/src/main/java/com/urpsys/itmsfront/srm/domain/ReportIssueVo.java @@ -51,6 +51,7 @@ public class ReportIssueVo private String inPercallPrice ; private String atchFileId ; private String atchFileInUpGb ; + private String oldAtchFileId ; // 2026.01.22 나혁제 이전첨부파일 public String getInReportSeq() { return inReportSeq; @@ -238,6 +239,12 @@ public class ReportIssueVo public void setAtchFileInUpGb(String atchFileInUpGb) { this.atchFileInUpGb = atchFileInUpGb; } + public String getOldAtchFileId() { + return oldAtchFileId; + } + public void setOldAtchFileId(String oldAtchFileId) { + this.oldAtchFileId = oldAtchFileId; + } diff --git a/src/main/java/com/urpsys/itmsfront/srm/domain/ReportOtherVo.java b/src/main/java/com/urpsys/itmsfront/srm/domain/ReportOtherVo.java index dcdd86bc..220fe5a8 100644 --- a/src/main/java/com/urpsys/itmsfront/srm/domain/ReportOtherVo.java +++ b/src/main/java/com/urpsys/itmsfront/srm/domain/ReportOtherVo.java @@ -50,6 +50,7 @@ public class ReportOtherVo private String inPercallPrice ; private String atchFileId ; private String atchFileInUpGb ; + private String oldAtchFileId ; // 2026.01.22 나혁제 이전첨부파일 public String getInReportSeq() { return inReportSeq; @@ -237,6 +238,12 @@ public class ReportOtherVo public void setAtchFileInUpGb(String atchFileInUpGb) { this.atchFileInUpGb = atchFileInUpGb; } + public String getOldAtchFileId() { + return oldAtchFileId; + } + public void setOldAtchFileId(String oldAtchFileId) { + this.oldAtchFileId = oldAtchFileId; + } diff --git a/src/main/java/com/urpsys/itmsfront/sys/controller/UserManageController.java b/src/main/java/com/urpsys/itmsfront/sys/controller/UserManageController.java index 438a7807..eef5c737 100644 --- a/src/main/java/com/urpsys/itmsfront/sys/controller/UserManageController.java +++ b/src/main/java/com/urpsys/itmsfront/sys/controller/UserManageController.java @@ -537,12 +537,13 @@ public class UserManageController userManageVO.setUniqId(uniqId); - {//KISA 보안약점 조치 (2018-10-29, 윤창원) - if ("".equals(userManageVO.getOrgnztId())) + // KISA 보안약점 조치 + if ("".equals(userManageVO.getOrgnztId())) + { userManageVO.setOrgnztId(null); } - //KISA 보안약점 조치 (2018-10-29, 윤창원) + //KISA 보안약점 조치 if ("".equals(userManageVO.getGroupId())) { userManageVO.setGroupId(null); diff --git a/src/main/resources/application-local.yml b/src/main/resources/application-local.yml index f5efb58f..a3809da8 100644 --- a/src/main/resources/application-local.yml +++ b/src/main/resources/application-local.yml @@ -50,6 +50,6 @@ senderName: 나혁제 socketFactory-class: javax.net.ssl.SSLSocketFactory supplier: gmail.com - client : local + client : kic \ No newline at end of file diff --git a/src/main/resources/validator/egov_vailidator_all.xml b/src/main/resources/validator/egov_vailidator_all.xml index 77ebb7d2..e46b1c5f 100644 --- a/src/main/resources/validator/egov_vailidator_all.xml +++ b/src/main/resources/validator/egov_vailidator_all.xml @@ -677,7 +677,6 @@ for (x in oRequired) { - var field = form[oRequired[x][0]]; if ((field.type == 'hidden' || diff --git a/src/main/resources/validator/urp/EgovValidator.xml b/src/main/resources/validator/urp/EgovValidator.xml index b1f7955a..14604319 100644 --- a/src/main/resources/validator/urp/EgovValidator.xml +++ b/src/main/resources/validator/urp/EgovValidator.xml @@ -4277,6 +4277,54 @@ + +
+ + + + + + maxlength + 20 + + + + + + + + maxlength + 50 + + + + + + + + + + + + maxlength + 15 + + + + + + + + maxlength + 50 + + + + + + +
+
diff --git a/src/main/webapp/WEB-INF/jsp/itms/srm/ReportCheckCopyInsert.jsp b/src/main/webapp/WEB-INF/jsp/itms/srm/ReportCheckCopyInsert.jsp new file mode 100644 index 00000000..1717646f --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/itms/srm/ReportCheckCopyInsert.jsp @@ -0,0 +1,965 @@ + + +<% +/** + * @Class Name : ReportCheckCopyInsert.jsp + * @Description : 점검보고서 새로 만들기 + * @Modification Information + * @ + * @ 수정일 수정자 수정내용 + * @ ------- -------- --------------------------- + * @ 2026.01.22 나혁제 최초 생성 + * + * @author urp 인프라본부 나혁제 + * @since 2026.01.22 + * @version 1.0 + * @see + * + * Copyright (C) 2009 by MOPAS All right reserved. + */ +%> + +<%@ page language="java" contentType="text/html; charset=UTF-8" %> + +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> +<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui" %> +<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %> +<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %> +<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %> +<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %> +<%@ taglib prefix="validator" uri="http://www.springmodules.org/tags/commons-validator" %> + + + 점검보고서 수정 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +

점검보고서 새로만들기

+ + +
+
+
+ +
+
+
+ +
+ + + + +
+ + + "> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <%-- 2025.09.01 나혁제 불필요한 항목 사젝 --%> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
점검보고서 등록
보고서ID 서비스 + + 작성자 + + +
인스던트 접수번호 작업분류 + + + + 작업자 + + + + 작업자 검색 + + + + +
서비스다운 + + ~ + 보고서양식 + + 시작일시 + + + 종료일시 + + +
제목 + + + +
+ +
+
+ + +
기존첨부파일 + + + + +
서비스 결재 라인 + +
+ + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
결재라인
결재순서결재자상태Comment
+ +
+
+ +
+ + +
+ +
+ +
자산 + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
연결자산정보
소분류자산명비고
+ + + +
+
+ +
+ + + + +
+ + +
+ +
+ + +
+ + +
+ + +
+ +
+ + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ diff --git a/src/main/webapp/WEB-INF/jsp/itms/srm/ReportCheckDetail.jsp b/src/main/webapp/WEB-INF/jsp/itms/srm/ReportCheckDetail.jsp index 6ef646e6..f2de21ad 100644 --- a/src/main/webapp/WEB-INF/jsp/itms/srm/ReportCheckDetail.jsp +++ b/src/main/webapp/WEB-INF/jsp/itms/srm/ReportCheckDetail.jsp @@ -84,6 +84,25 @@ varFrom.submit(); } + //---------------------------------------- + // 2026.01.22 나혁제 + // 새로만들기 기능확장 + // ---------------------------------------- + function fncReportCheckCopyInsert() + { + + if($('#inReportStatus').val()!='2' && $('#inReportStatus').val()!='3' ) + { + alert("[승인완료/반려]된 보고서을 이용하야 새로만들기가 가능합니다."); + return; + } + + // 수정화면으로 이동처리 + var varFrom = document.getElementById("reportCheckManage"); + varFrom.action = ""; + varFrom.submit(); + } + //---------------------------------------- // 보고서 수정 화면 이동처리 // ---------------------------------------- @@ -105,7 +124,7 @@ { // 2025.11.18 나혁제 승인완료된 자료 수정불가 // if(confirm("승인완료된 보고서입니다. \n수정하면 모든 승인 정보는 초기화 됩니다.\n수정하시겠습니까?") == false) return; - alert("승인완료된 보고ㅓ입니다.\n 재작성하시길 바랍니다."); + alert("승인완료된 보고서입니다.\n 재작성하시길 바랍니다."); return; } @@ -669,6 +688,10 @@ + + diff --git a/src/main/webapp/WEB-INF/jsp/itms/srm/ReportCheckInsert.jsp b/src/main/webapp/WEB-INF/jsp/itms/srm/ReportCheckInsert.jsp index fa5adc36..3916ed70 100644 --- a/src/main/webapp/WEB-INF/jsp/itms/srm/ReportCheckInsert.jsp +++ b/src/main/webapp/WEB-INF/jsp/itms/srm/ReportCheckInsert.jsp @@ -256,6 +256,12 @@ return false; } + if($("#approvalsId").val() == '') + { + alert("결재라인을 입력해 주세요."); + return; + } + // 2025.12.02 나혁제 파일체크 로직 추가 if (!fncAttachFileCheck()) { @@ -290,7 +296,7 @@ if($("#approvalsId").val() == '') { - alert("승인요청시에는 결재라인이 필요합니다."); + alert("결재라인을 입력해 주세요."); return; } @@ -800,9 +806,8 @@ 작성자 - + - @@ -816,7 +821,7 @@ 작업자 - + 작업자 검색 @@ -991,6 +996,7 @@ + diff --git a/src/main/webapp/WEB-INF/jsp/itms/srm/ReportCheckList.jsp b/src/main/webapp/WEB-INF/jsp/itms/srm/ReportCheckList.jsp index 776dec96..1760f4dc 100644 --- a/src/main/webapp/WEB-INF/jsp/itms/srm/ReportCheckList.jsp +++ b/src/main/webapp/WEB-INF/jsp/itms/srm/ReportCheckList.jsp @@ -142,19 +142,19 @@ - " >         - - 인스던트 접수번호: + " >         - " >         - " > @@ -207,7 +207,7 @@ 문서번호 - 요청번호 + 인스던트 접수번호 서비스 승인상태 제목 diff --git a/src/main/webapp/WEB-INF/jsp/itms/srm/ReportErrorCopyInsert.jsp b/src/main/webapp/WEB-INF/jsp/itms/srm/ReportErrorCopyInsert.jsp new file mode 100644 index 00000000..339d6a8b --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/itms/srm/ReportErrorCopyInsert.jsp @@ -0,0 +1,968 @@ + + +<% +/** + * @Class Name : ReportErrorCopyInsert.jsp + * @Description : 장애보고서 새로 만들기 + * @Modification Information + * @ + * @ 수정일 수정자 수정내용 + * @ ------- -------- --------------------------- + * @ 2026.01.22 나혁제 최초 생성 + * + * @author urp 인프라본부 나혁제 + * @since 2026.01.22 + * @version 1.0 + * @see + * + * Copyright (C) 2009 by MOPAS All right reserved. + */ +%> + +<%@ page language="java" contentType="text/html; charset=UTF-8" %> + +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> +<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui" %> +<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %> +<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %> +<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %> +<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %> +<%@ taglib prefix="validator" uri="http://www.springmodules.org/tags/commons-validator" %> + + + 장애보고서 수정 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + +
+ + + "> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
장애보고서 등록
보고서ID 서비스 + + 작성자 + + + +
인스던트 접수번호 작업분류 + + + + 작업자 + + + + 작업자 검색 + + + + +
서비스다운 + + ~ + 시작일시 + + + 종료일시 + + +
보고서양식 + + + +
+ +
+
+ + +
기존첨부파일 + + + + +
제목 + +
서비스 결재 라인 + +
+ + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
결재라인
결재순서결재자상태Comment
+ +
+
+ +
+ + +
+ +
+ +
자산 + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
연결자산정보
소분류자산명비고
+ + + +
+
+ +
+ + + + +
+ + +
+ +
+ + +
+ + +
+ + +
+ +
+ + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/webapp/WEB-INF/jsp/itms/srm/ReportErrorDetail.jsp b/src/main/webapp/WEB-INF/jsp/itms/srm/ReportErrorDetail.jsp index c723b181..66349c90 100644 --- a/src/main/webapp/WEB-INF/jsp/itms/srm/ReportErrorDetail.jsp +++ b/src/main/webapp/WEB-INF/jsp/itms/srm/ReportErrorDetail.jsp @@ -84,6 +84,25 @@ varFrom.submit(); } + //---------------------------------------- + // 2026.01.22 나혁제 + // 새로만들기 기능확장 + // ---------------------------------------- + function fncReportErrorCopyInsert() + { + + if($('#inReportStatus').val()!='2' && $('#inReportStatus').val()!='3' ) + { + alert("[승인완료/반려]된 보고서을 이용하야 새로만들기가 가능합니다."); + return; + } + + // 수정화면으로 이동처리 + var varFrom = document.getElementById("reportErrorManage"); + varFrom.action = ""; + varFrom.submit(); + } + //---------------------------------------- // 보고서 수정 화면 이동처리 // ---------------------------------------- @@ -105,7 +124,7 @@ { // 2025.11.18 나혁제 승인완료된 자료 수정불가 // if(confirm("승인완료된 보고서입니다. \n수정하면 모든 승인 정보는 초기화 됩니다.\n수정하시겠습니까?") == false) return; - alert("승인완료된 보고ㅓ입니다.\n 신규 재작성하시길 바랍니다."); + alert("승인완료된 보고서입니다.\n 신규 재작성하시길 바랍니다."); return; } @@ -642,6 +661,10 @@
+ + diff --git a/src/main/webapp/WEB-INF/jsp/itms/srm/ReportErrorInsert.jsp b/src/main/webapp/WEB-INF/jsp/itms/srm/ReportErrorInsert.jsp index 4a925425..3a516b5e 100644 --- a/src/main/webapp/WEB-INF/jsp/itms/srm/ReportErrorInsert.jsp +++ b/src/main/webapp/WEB-INF/jsp/itms/srm/ReportErrorInsert.jsp @@ -251,6 +251,13 @@ return false; } + // 2026.01.23 나혁제 결재라인 체크 추가 + if($("#approvalsId").val() == '') + { + alert("결재라인을 입력해 주세요."); + return; + } + // 2025.12.02 나혁제 파일체크 로직 추가 if (!fncAttachFileCheck()) { @@ -279,7 +286,7 @@ if($("#approvalsId").val() == '') { - alert("승인요청시에는 결재라인이 필요합니다."); + alert("결재라인을 입력해 주세요."); return; } @@ -811,7 +818,7 @@ 작업자 - + 작업자 검색 diff --git a/src/main/webapp/WEB-INF/jsp/itms/srm/ReportErrorList.jsp b/src/main/webapp/WEB-INF/jsp/itms/srm/ReportErrorList.jsp index e1b9230b..66efe09e 100644 --- a/src/main/webapp/WEB-INF/jsp/itms/srm/ReportErrorList.jsp +++ b/src/main/webapp/WEB-INF/jsp/itms/srm/ReportErrorList.jsp @@ -52,23 +52,6 @@ function fncSearchReportErrorList() { linkPage(1); - - /* - var arStatus = []; // 승인상태 - - if($("#chk1_1").is(":checked")) arStatus.push("0"); - if($("#chk1_2").is(":checked")) arStatus.push("1"); - if($("#chk1_3").is(":checked")) arStatus.push("2"); - if($("#chk1_4").is(":checked")) arStatus.push("3"); - - $("#status" ).val(arStatus.join(",")); - - alert($("#status").val()); - - document.listForm.pageIndex.value = "1"; - document.listForm.action = ""; - document.listForm.submit(); - */ } //---------------------------------------- @@ -112,9 +95,6 @@ document.listForm.submit(); } - - - @@ -162,19 +142,19 @@ - " >         - - 인스던트 접수번호: + " >         - " >         - " > @@ -227,7 +207,7 @@ 문서번호 - 요청번호 + 인스던트 접수번호 서비스 승인상태 제목 diff --git a/src/main/webapp/WEB-INF/jsp/itms/srm/ReportIssueCopyInsert.jsp b/src/main/webapp/WEB-INF/jsp/itms/srm/ReportIssueCopyInsert.jsp new file mode 100644 index 00000000..85740502 --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/itms/srm/ReportIssueCopyInsert.jsp @@ -0,0 +1,963 @@ + + +<% +/** + * @Class Name : ReportIssueCopyInsert.jsp + * @Description : 이슈보고서 새로 만들기 + * @Modification Information + * @ + * @ 수정일 수정자 수정내용 + * @ ------- -------- --------------------------- + * @ 2026.01.22 나혁제 최초 생성 + * + * @author urp 인프라본부 나혁제 + * @since 2026.01.22 + * @version 1.0 + * @see + * + * Copyright (C) 2009 by MOPAS All right reserved. + */ +%> + +<%@ page language="java" contentType="text/html; charset=UTF-8" %> + +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> +<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui" %> +<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %> +<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %> +<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %> +<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %> +<%@ taglib prefix="validator" uri="http://www.springmodules.org/tags/commons-validator" %> + + + 이슈보고서 수정 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + +
+ + + "> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
아슈보고서 등록
보고서ID 서비스 + + 작성자 + + + +
인스던트 접수번호 작업분류 + + + + 작업자 + + + + 작업자 검색 + + + + +
서비스다운 + + ~ + 시작일시 + + + 종료일시 + + +
보고서양식 + + + +
+ +
+
+ + +
기존첨부파일 + + + + +
제목 + +
서비스 결재 라인 + +
+ + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
결재라인
결재순서결재자상태Comment
+ +
+
+ +
+ + +
+ +
+ +
자산 + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
연결자산정보
소분류자산명비고
+ + + +
+
+ +
+ + + + +
+ + +
+ +
+ + +
+ + +
+ + +
+ +
+ + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/webapp/WEB-INF/jsp/itms/srm/ReportIssueDetail.jsp b/src/main/webapp/WEB-INF/jsp/itms/srm/ReportIssueDetail.jsp index 2bf7a484..71606260 100644 --- a/src/main/webapp/WEB-INF/jsp/itms/srm/ReportIssueDetail.jsp +++ b/src/main/webapp/WEB-INF/jsp/itms/srm/ReportIssueDetail.jsp @@ -84,6 +84,25 @@ varFrom.submit(); } + //---------------------------------------- + // 2026.01.22 나혁제 + // 새로만들기 기능확장 + // ---------------------------------------- + function fncReportIssueCopyInsert() + { + + if($('#inReportStatus').val()!='2' && $('#inReportStatus').val()!='3' ) + { + alert("[승인완료/반려]된 보고서을 이용하야 새로만들기가 가능합니다."); + return; + } + + // 수정화면으로 이동처리 + var varFrom = document.getElementById("reportIssueManage"); + varFrom.action = ""; + varFrom.submit(); + } + //---------------------------------------- // 보고서 수정 화면 이동처리 // ---------------------------------------- @@ -105,7 +124,7 @@ { // 2025.11.20 나혁제 승인완료된 자료 수정불가 // if(confirm("승인완료된 보고서입니다. \n수정하면 모든 승인 정보는 초기화 됩니다.\n수정하시겠습니까?") == false) return; - alert("승인완료된 보고ㅓ입니다.\n 신규 재작성하시길 바랍니다."); + alert("승인완료된 보고서입니다.\n 신규 재작성하시길 바랍니다."); return; } @@ -124,6 +143,25 @@ varFrom.submit(); } + //---------------------------------------- + // 2026.01.22 나혁제 + // 새로만들기 기능확장 + // ---------------------------------------- + function fncReportIssueCopyInsert() + { + + if($('#inReportStatus').val()!='2' && $('#inReportStatus').val()!='3' ) + { + alert("[승인완료/반려]된 보고서을 이용하야 새로만들기가 가능합니다."); + return; + } + + // 수정화면으로 이동처리 + var varFrom = document.getElementById("reportIssueManage"); + varFrom.action = ""; + varFrom.submit(); + } + //---------------------------------------- // 보고서 삭제처리 // ---------------------------------------- @@ -629,12 +667,20 @@
+ + + + diff --git a/src/main/webapp/WEB-INF/jsp/itms/srm/ReportIssueInsert.jsp b/src/main/webapp/WEB-INF/jsp/itms/srm/ReportIssueInsert.jsp index 759fe9f8..f13fd323 100644 --- a/src/main/webapp/WEB-INF/jsp/itms/srm/ReportIssueInsert.jsp +++ b/src/main/webapp/WEB-INF/jsp/itms/srm/ReportIssueInsert.jsp @@ -251,6 +251,13 @@ return false; } + // 2026.01.23 나혁제 결재라인 체크 추가 + if($("#approvalsId").val() == '') + { + alert("결재라인을 입력해 주세요."); + return; + } + // 2025.12.02 나혁제 파일체크 로직 추가 if (!fncAttachFileCheck()) { @@ -279,7 +286,7 @@ if($("#approvalsId").val() == '') { - alert("승인요청시에는 결재라인이 필요합니다."); + alert("결재라인을 입력해 주세요."); return; } @@ -797,7 +804,7 @@ 작성자 - + @@ -807,13 +814,13 @@ ${resultIncident.vcIncidentNum} 작업분류 - + 작업자 - + 작업자 검색 diff --git a/src/main/webapp/WEB-INF/jsp/itms/srm/ReportIssueList.jsp b/src/main/webapp/WEB-INF/jsp/itms/srm/ReportIssueList.jsp index 9d068ecc..83a49e83 100644 --- a/src/main/webapp/WEB-INF/jsp/itms/srm/ReportIssueList.jsp +++ b/src/main/webapp/WEB-INF/jsp/itms/srm/ReportIssueList.jsp @@ -52,21 +52,6 @@ function fncSearchReportIssueList() { linkPage(1); - - /* - var arStatus = []; // 승인상태 - - if($("#chk1_1").is(":checked")) arStatus.push("0"); - if($("#chk1_2").is(":checked")) arStatus.push("1"); - if($("#chk1_3").is(":checked")) arStatus.push("2"); - if($("#chk1_4").is(":checked")) arStatus.push("3"); - - $("#status" ).val(arStatus.join(",")); - - document.listForm.pageIndex.value = "1"; - document.listForm.action = ""; - document.listForm.submit(); - */ } //---------------------------------------- @@ -158,19 +143,19 @@ - " >         - - 인스던트 접수번호: + " >         - " >         - " > @@ -223,7 +208,7 @@ 문서번호 - 요청번호 + 인스던트 접수번호 서비스 승인상태 제목 diff --git a/src/main/webapp/WEB-INF/jsp/itms/srm/ReportIssueUpdate.jsp b/src/main/webapp/WEB-INF/jsp/itms/srm/ReportIssueUpdate.jsp index 28f30967..4c9c0bd3 100644 --- a/src/main/webapp/WEB-INF/jsp/itms/srm/ReportIssueUpdate.jsp +++ b/src/main/webapp/WEB-INF/jsp/itms/srm/ReportIssueUpdate.jsp @@ -786,7 +786,7 @@ 작성자 - + @@ -802,7 +802,7 @@ 작업자 - + 작업자 검색 diff --git a/src/main/webapp/WEB-INF/jsp/itms/srm/ReportOtherCopyInsert.jsp b/src/main/webapp/WEB-INF/jsp/itms/srm/ReportOtherCopyInsert.jsp new file mode 100644 index 00000000..3a454d8f --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/itms/srm/ReportOtherCopyInsert.jsp @@ -0,0 +1,965 @@ + + +<% +/** + * @Class Name : ReportOtherCopyInsert.jsp + * @Description : 기타보고서 새로 만들기 + * @Modification Information + * @ + * @ 수정일 수정자 수정내용 + * @ ------- -------- --------------------------- + * @ 2026.01.22 나혁제 최초 생성 + * + * @author urp 인프라본부 나혁제 + * @since 2026.01.22 + * @version 1.0 + * @see + * + * Copyright (C) 2009 by MOPAS All right reserved. + */ +%> + +<%@ page language="java" contentType="text/html; charset=UTF-8" %> + +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> +<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui" %> +<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %> +<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %> +<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %> +<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %> +<%@ taglib prefix="validator" uri="http://www.springmodules.org/tags/commons-validator" %> + + + 기타보고서 수정 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + +
+ + + "> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <%-- 2025.09.01 나혁제 불필요한 항목 사젝 --%> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
기타보고서 등록
보고서ID 서비스 + + 작성자 + + +
인스던트 접수번호 작업분류 + + + + 작업자 + + + + 작업자 검색 + + + + +
서비스다운 + + ~ + 보고서양식 + + 시작일시 + + + 종료일시 + + +
제목 + + + +
+ +
+
+ + +
기존첨부파일 + + + + +
서비스 결재 라인 + +
+ + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
결재라인
결재순서결재자상태Comment
+ +
+
+ +
+ + +
+ +
+ +
자산 + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
연결자산정보
소분류자산명비고
+ + + +
+
+ +
+ + + + +
+ + +
+ +
+ + +
+ + +
+ + +
+ +
+ + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/webapp/WEB-INF/jsp/itms/srm/ReportOtherDetail.jsp b/src/main/webapp/WEB-INF/jsp/itms/srm/ReportOtherDetail.jsp index 35e036ce..0384bacc 100644 --- a/src/main/webapp/WEB-INF/jsp/itms/srm/ReportOtherDetail.jsp +++ b/src/main/webapp/WEB-INF/jsp/itms/srm/ReportOtherDetail.jsp @@ -84,6 +84,43 @@ varFrom.submit(); } + //---------------------------------------- + // 2026.01.22 나혁제 + // 새로만들기 기능확장 + // ---------------------------------------- + function fncReportIssueCopyInsert() + { + + if($('#inReportStatus').val()!='2' && $('#inReportStatus').val()!='3' ) + { + alert("[승인완료/반려]된 보고서을 이용하야 새로만들기가 가능합니다."); + return; + } + + // 수정화면으로 이동처리 + var varFrom = document.getElementById("reportOtherManage"); + varFrom.action = ""; + varFrom.submit(); + } + + //---------------------------------------- + // 2026.01.22 나혁제 + // 새로만들기 기능확장 + // ---------------------------------------- + function fncReportOtherCopyInsert() + { + if($('#inReportStatus').val()!='2' && $('#inReportStatus').val()!='3' ) + { + alert("[승인완료/반려]된 보고서을 이용하야 새로만들기가 가능합니다."); + return; + } + + // 수정화면으로 이동처리 + var varFrom = document.getElementById("reportOtherManage"); + varFrom.action = ""; + varFrom.submit(); + } + //---------------------------------------- // 보고서 수정 화면 이동처리 // ---------------------------------------- @@ -104,7 +141,7 @@ { // 2025.11.20 나혁제 승인완료된 자료 수정불가 // if(confirm("승인완료된 보고서입니다. \n수정하면 모든 승인 정보는 초기화 됩니다.\n수정하시겠습니까?") == false) return; - alert("승인완료된 보고ㅓ입니다.\n 재작성하시길 바랍니다."); + alert("승인완료된 보고서입니다.\n 재작성하시길 바랍니다."); return; } @@ -663,6 +700,10 @@
+ + diff --git a/src/main/webapp/WEB-INF/jsp/itms/srm/ReportOtherInsert.jsp b/src/main/webapp/WEB-INF/jsp/itms/srm/ReportOtherInsert.jsp index a9d589cb..3c5d6d1c 100644 --- a/src/main/webapp/WEB-INF/jsp/itms/srm/ReportOtherInsert.jsp +++ b/src/main/webapp/WEB-INF/jsp/itms/srm/ReportOtherInsert.jsp @@ -261,6 +261,13 @@ return false; } + // 2026.01.23 나혁제 결재라인 체크 추가 + if($("#approvalsId").val() == '') + { + alert("결재라인을 입력해 주세요."); + return; + } + // 2025.12.02 나혁제 파일체크 로직 추가 if (!fncAttachFileCheck()) { @@ -815,7 +822,7 @@ 작성자 - + @@ -831,7 +838,7 @@ 작업자 - + 작업자 검색 diff --git a/src/main/webapp/WEB-INF/jsp/itms/srm/ReportOtherList.jsp b/src/main/webapp/WEB-INF/jsp/itms/srm/ReportOtherList.jsp index 390ef0bb..7e893eaa 100644 --- a/src/main/webapp/WEB-INF/jsp/itms/srm/ReportOtherList.jsp +++ b/src/main/webapp/WEB-INF/jsp/itms/srm/ReportOtherList.jsp @@ -149,19 +149,19 @@ - " >         - - 인스던트 접수번호: + " >         - " >         - " > @@ -214,7 +214,7 @@ 문서번호 - 요청번호 + 인스던트 접수번호 서비스 승인상태 제목 diff --git a/src/main/webapp/WEB-INF/jsp/itms/srm/SvcDeskCopyInsert.jsp b/src/main/webapp/WEB-INF/jsp/itms/srm/SvcDeskCopyInsert.jsp new file mode 100644 index 00000000..a25e4422 --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/itms/srm/SvcDeskCopyInsert.jsp @@ -0,0 +1,786 @@ + + +<% +/** + * @Class Name : SvcDeskCopyInsert.jsp + * @Description : 서비스데스크 인스턴스 새로만들기 화면 + * @Modification Information + * @ + * @ 수정일 수정자 수정내용 + * @ ------- -------- --------------------------- + * @ 2026.01.21 나혁제 최초 생성 + * + * @author urp 인프라본부 나혁제 + * @since 2026.01.21 + * @version 1.0 + * @see + * + * Copyright (C) 2009 by MOPAS All right reserved. + */ +%> + +<%@ page language="java" contentType="text/html; charset=UTF-8" %> + +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> +<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui" %> +<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %> +<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %> +<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %> +<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %> +<%@ taglib prefix="validator" uri="http://www.springmodules.org/tags/commons-validator" %> + + + 인스던트 수정 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +

서비스 등록

+ + +
+
+
+ +
+
+
+ +
+ + + + +
+ + + "> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
서비스 등록
접수번호 접수자 + + + + 조치예정자 검색 + + + 접수일시 + +
서비스 + + 조치예정자 + + + + 조치예정자 검색 + + + + + 완료요청일시 + +
제목 + + 조치자 ${resultIncident.vcDevUser} +
+ +
+ +
+
+ + +
서비스 진행사항
기존첨부파일 + + + + +
서비스 결재 라인 + +
+ + +
+ + + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
결재라인
결재순서결재자상태Comment
+ +
+
+ +
+ + +
+ + +
+ +
+ + + + +
+ + +
+ +
+ + +
+ + +
+ + +
+
+ + + <%-- +
+ +
+ + +
+ + +
+ + + + +
+
+ --%> + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/webapp/WEB-INF/jsp/itms/srm/SvcDeskDetail.jsp b/src/main/webapp/WEB-INF/jsp/itms/srm/SvcDeskDetail.jsp index 0efe1d50..84e0ca2a 100644 --- a/src/main/webapp/WEB-INF/jsp/itms/srm/SvcDeskDetail.jsp +++ b/src/main/webapp/WEB-INF/jsp/itms/srm/SvcDeskDetail.jsp @@ -128,6 +128,25 @@ varFrom.submit(); } + //---------------------------------------- + // 2025.01.21 나혁제 새로만들 기능확장 + // 인스던트 새로만들기 화면 이동처리 + // ---------------------------------------- + function fncSvcDeskIncidentCopyInsert() + { + if($('#inIncidentStatus').val() != '2' && $('#inIncidentStatus').val() != '3' ) + { + alert("[승인완료/반려]된 인시던트에서만 새로만들기가 가능합니다."); + return; + } + + // 새로만들기 화면으로 이동처리 + var varFrom = document.getElementById("svcDeskManage"); + varFrom.action = ""; + varFrom.submit(); + } + + //---------------------------------------- // 인스던트 삭제 처리 // ---------------------------------------- @@ -857,6 +876,12 @@
+ + + +      - + - - + diff --git a/src/main/webapp/WEB-INF/jsp/main/LoginUsr_kic.jsp b/src/main/webapp/WEB-INF/jsp/main/LoginUsr_kic.jsp index 540f3d98..4120591b 100644 --- a/src/main/webapp/WEB-INF/jsp/main/LoginUsr_kic.jsp +++ b/src/main/webapp/WEB-INF/jsp/main/LoginUsr_kic.jsp @@ -1,14 +1,14 @@ <%-- - Class Name : LoginUsr.jsp + Class Name : LoginUsr_kic.jsp Description : 로그인화면 Modification Information 수정일 수정자 수정내용 ------- -------- --------------------------- - 2025.01.03 나혁제 최초생성 + 2025.12.01 나혁제 최초생성 author : 인프라본부 나혁제 - since : 2025.01.02 + since : 2025.12.01 --%> <%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> @@ -115,6 +115,9 @@ }); + //---------------------------------------- + // 로그인 처리 + // ---------------------------------------- function actionLogin() { if (document.loginForm.userId.value =="") @@ -146,8 +149,9 @@ } } - // 쿠키 조회 - // name : 쿠키값 + //---------------------------------------- + // 쿠키 조회 + // ---------------------------------------- function getCookie(name) { const cookie = document.cookie; @@ -167,10 +171,9 @@ return "" ; } - // 쿠키 설정 - // name : 쿠키명 - // value : 쿠키값 - // expiredays : 쿠키 만료일 + //---------------------------------------- + // 쿠키 설정 + // ---------------------------------------- function setCookie(name,value,expiredays) { const date = new Date(); @@ -178,15 +181,104 @@ document.cookie = escape(name) + "=" + escape(value) + "; path=/; expires=" + date.toUTCString(); } - // 쿠키 삭제 - // name : 쿠키명 + //---------------------------------------- + // 쿠키 삭제 + // ---------------------------------------- function deleteCookie(name) { const expireDate = new Date(); expireDate.setDate(expireDate.getDate() - 1); document.cookie = name + "= " + "; expires=" + expireDate.toGMTString(); } + + //---------------------------------------- + // 2026.01.22 나혁제 추가 + // ID 찾기 + // ---------------------------------------- + function fncIdFindOpen() + { + PopupOpen("/main/PopIdFind", 470, 450, ''); + } + //---------------------------------------- + // 2026.01.22 나혁제 추가 + // 패스워드 초기화 + // ---------------------------------------- + function fncPopPassworkdResetOpen() + { + PopupOpen("/main/PopPasswordReset", 380, 450, ''); + } + + //---------------------------------------- + // 2026.01.22 나혁제 추가 + // 패스워드 초기화 + // ---------------------------------------- + function fncPopUserRegistOpen() + { + // PopupOpen("/main/PopUserRegist", 380, 800, ''); + + var $dialog = $('
') + .html('') + .dialog({ + autoOpen: false + , modal: true + , height: 600 + , width: 800 + , title: '회원가입' + , open: function (event, ui) + { + $(".ui-icon-closethick").remove(); // 닫기 버튼 제거 + $('.ui-dialog-titlebar-close').css({ + width: '30px' // 닫기 버튼 너비 + // , height: '50px' // 닫기 버튼 높이 + }); + $(this).parent().find(".ui-dialog-titlebar").hide(); // 타이틀바 안보이게 처리 + } + + , closeText: '닫기' + }); + + $dialog.dialog('open'); + + // 팝업 화면 맨앞으로 배치 + $(".ui-dialog").css("z-index", "99"); + + } + + //---------------------------------------- + // 팝업 오픈 + // ---------------------------------------- + function PopupOpen(strUrl, hei, wid, pagetitle) + { + var page = "/common/PageRedirection.do?Page="+ strUrl + + "&PopupYn=B"; + + var $dialog = $('
') + .html('') + .dialog({ + autoOpen: false + , modal: true + , height: hei + , width: wid + , title: pagetitle + , open: function (event, ui) + { + $(".ui-icon-closethick").remove(); // 닫기 버튼 제거 + $('.ui-dialog-titlebar-close').css({ + width: '30px' // 닫기 버튼 너비 + // , height: '50px' // 닫기 버튼 높이 + }); + $(this).parent().find(".ui-dialog-titlebar").hide(); // 타이틀바 안보이게 처리 + } + + , closeText: '닫기' + }); + + $dialog.dialog('open'); + + // 팝업 화면 맨앞으로 배치 + $(".ui-dialog").css("z-index", "99"); + } /* @@ -228,6 +320,7 @@ diff --git a/src/main/webapp/WEB-INF/jsp/main/PopIdFind.jsp b/src/main/webapp/WEB-INF/jsp/main/PopIdFind.jsp index 924f102b..9d84effd 100644 --- a/src/main/webapp/WEB-INF/jsp/main/PopIdFind.jsp +++ b/src/main/webapp/WEB-INF/jsp/main/PopIdFind.jsp @@ -81,7 +81,7 @@ var formData = new FormData(form); $.ajax({ - url: '/main/searchIdFind.do' + url: '/main/noAuthSearchIdFind.do' , type: 'post' , enctype:'multipart/form-data' , data: formData @@ -91,6 +91,11 @@ , cache:false , success: function(data) { + if(data.userId==null || data.userId =='') + { + alert("사용자 정보를 찾을수가 없습니다."); + } + $('#userId').val(data.userId); }, error: function(errorThrown) diff --git a/src/main/webapp/WEB-INF/jsp/main/PopPasswordReset.jsp b/src/main/webapp/WEB-INF/jsp/main/PopPasswordReset.jsp index 9a3b485b..3fb69d09 100644 --- a/src/main/webapp/WEB-INF/jsp/main/PopPasswordReset.jsp +++ b/src/main/webapp/WEB-INF/jsp/main/PopPasswordReset.jsp @@ -48,17 +48,17 @@ { if ($('#userId').val()=='') { - alert("성명을 입력하세요"); + alert("아이디을 입력하세요"); return false; } if ($('#userNm').val()=='') { - alert("성명을 입력하세요"); + alert("사용자명을 입력하세요"); return false; } else if ($('#userEmail').val()=='') { - alert("Email 입력하세요"); + alert("Email을 입력하세요"); return false; } else @@ -79,14 +79,14 @@ // 서블릿 통신 var proc = { - // 인스던트 처리완료 + // 비밀번호 초기화 fn_password_reset : function () { var form = $('#PopPasswordReset')[0]; var formData = new FormData(form); $.ajax({ - url: '/main/UserPasswordResetExt.do' + url: '/main/noAuthUserPasswordResetExt.do' , type: 'post' , enctype:'multipart/form-data' , data: formData @@ -96,12 +96,21 @@ , cache:false , success: function(data) { - alert(JSON.stringify(data)); + if(data.resultCd == 0) + { + alert("새로운 비밀번호가 정상적으로 보내졌습니다. \n E-mail을 확인하시기 바랍니다."); + fncClose(); + } + else + { + alert("비밀번호 초기화에 실패하였습니다. \n사용자정보을 확인해주시길 바랍니다."); + } + // alert(JSON.stringify(data)); // $('#userId').val(data.userId); }, error: function(errorThrown) { - alert("ID 찾기 오류가 발생하였습니다. \n 시스템 관리자에게 문의해 주시기 바랍니다."); + alert("Password 초기화중 오류가 발생하였습니다. \n 시스템 관리자에게 문의해 주시기 바랍니다."); console.log(JSON.stringify(errorThrown)); } }); @@ -137,7 +146,7 @@ - 성명 + 아이디 diff --git a/src/main/webapp/WEB-INF/jsp/main/PopUserRegist.jsp b/src/main/webapp/WEB-INF/jsp/main/PopUserRegist.jsp new file mode 100644 index 00000000..c87d2622 --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/main/PopUserRegist.jsp @@ -0,0 +1,375 @@ + + +<%-- + /** + * @Class Name : PopUserRegist.jsp + * @Description : 회원가입 팝엄 화면 + * @Modification Information + * @ + * @ 수정일 수정자 수정내용 + * @ ---------- -------- --------------------------- + * @ 2026.01.19 나혁제 최초 생성 + * + * @author urp 인프라본부 나혁제 + * @since 2026.01.19 + * @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"%> +<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %> +<%@ taglib prefix="validator" uri="http://www.springmodules.org/tags/commons-validator" %> + +ID 찾기 + + + + + + + + + + + + + + + + + +
+

회원가입

+
+ + +
+ + + "> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
회원가입
* + +
+ +
+
* + +
+
* +
+ +
+
+
* + +
+
+
+
+
+
+
* + +
+
* + +
+
+ + + + +
+
* + + + + +
+
+
+ +
+ + +
+ + + + + + + + + + + +
+ + + + + + + + + + + +