diff --git a/.classpath b/.classpath index a50c6c85..36064bc1 100644 --- a/.classpath +++ b/.classpath @@ -12,11 +12,7 @@ - - - - - + diff --git a/src/main/java/com/urpsys/basefront/common/util/RestApiCallUtil.java b/src/main/java/com/urpsys/basefront/common/util/RestApiCallUtil.java index 044c8bcb..266aee5d 100644 --- a/src/main/java/com/urpsys/basefront/common/util/RestApiCallUtil.java +++ b/src/main/java/com/urpsys/basefront/common/util/RestApiCallUtil.java @@ -146,7 +146,8 @@ public class RestApiCallUtil String strFullReturnData = returnObj.toString(); - // log.info("전체 리턴값 => [{}]", returnObj.toString()); + // 개발완료 후 주석처리 + log.info("전체 리턴값 => [{}]", returnObj.toString()); // Map 변환처리 Map returnMap = null; diff --git a/src/main/java/com/urpsys/itmsfront/pot/controller/PortletManageController.java b/src/main/java/com/urpsys/itmsfront/pot/controller/PortletManageController.java index d1944d16..7a974ed4 100644 --- a/src/main/java/com/urpsys/itmsfront/pot/controller/PortletManageController.java +++ b/src/main/java/com/urpsys/itmsfront/pot/controller/PortletManageController.java @@ -861,6 +861,254 @@ public class PortletManageController { return resBody; } + /** + * SR 처리준수율 통계 포틀릿 + * @author urp 인프라본부 나혁제 + * 작성일 : 2025.12.10 + */ + @RequestMapping(value = "/potl/getSrProPromiseRate.do") + public String getSrProPromiseRate( HttpServletRequest request + , @RequestParam Map commandMap + , ModelMap model) throws Exception + { + log.info(">>>>>>>>>>>>>>> /potl/getSrProPromiseRate.do <<<<<<<<<<<<<<<"); + + PrsnlPortletManageVO prsnlPortletManageVO = new PrsnlPortletManageVO(); + + prsnlPortletManageVO.setPrsnlId((String) commandMap.get("prsnlId")); + + // Body Setting Start --------------------------------- + Map bodyMap2 = ConvertUtils.convertToMapAll(prsnlPortletManageVO); + // Body Setting End --------------------------------- + // RestApi Call Start --------------------------------- + Map returnMap2 = restApiCallUtil.RestApiCall(bodyMap2, "/potl/selectPotlSize.do"); + // RestApi Call End --------------------------------- + + // Return Data Setting Start -------------------------- + Map resultList2 = (Map)returnMap2.get("resultList"); + // Return Data Setting End -------------------------- + + int potlWidth= (int) resultList2.get("portletWidth"); + int potlHeight= (int) resultList2.get("portletHeight"); + + String potlId=(String) commandMap.get("prsnlId"); + + model.addAttribute("potlId", potlId); + model.addAttribute("potlWidth" , potlWidth); + model.addAttribute("potlHeight", potlHeight); + + model.addAttribute("dtCurMonth" , CommonUtil.getKST("yyyy-MM")); // 조회일시 + + log.info("<<<<<<<<<<<<<<< /potl/getSrProPromiseRate.do >>>>>>>>>>>>>>>"); + + return "/itms/pot/MySrProPromiseRate"; + } + + /** + * 월간 SR 처리준수율 현황 통계 조회 + * @author urp 인프라본부 나혁제 + * 작성일 : 2025.12.09 + */ + @ResponseBody + @RequestMapping(value="/potl/getSrProPromiseRateData.do") + public LinkedHashMap getSrProPromiseRateData( @RequestBody LinkedHashMap requestMap + , HttpServletRequest request + , HttpServletResponse response ) throws Exception + { + log.info(">>>>>>>>>>>>>>> /potl/getSrProPromiseRateData.do <<<<<<<<<<<<<<<"); + + // api in/out map 정의 + Map bodyMap = new LinkedHashMap(); + Map returnMap = new LinkedHashMap(); + + // return 처리 + LinkedHashMap resBody = new LinkedHashMap(); // Response Map + + // Body Setting Start --------------------------------- + bodyMap.put("strSearchMon" , (String)requestMap.get("strSearchMon")); + // Body Setting End --------------------------------- + + // RestApi Call Start --------------------------------- + returnMap = restApiCallUtil.RestApiCall(bodyMap, "/srm/getSrProPromiseRate.do"); + // RestApi Call End --------------------------------- + + // Return Data Setting Start -------------------------- + List> resultList = (List>)returnMap.get("resultList"); + // Return Data Setting End -------------------------- + + resBody.put("resultList" , resultList ); + + log.info("<<<<<<<<<<<<<<< /potl/getSrProPromiseRateData.do >>>>>>>>>>>>>>>"); + + return resBody; + } + + /** + * SR 만족율 통계 포틀릿 + * @author urp 인프라본부 나혁제 + * 작성일 : 2025.12.10 + */ + @RequestMapping(value = "/potl/getSrStsfdgRatePage.do") + public String getSrStsfdgRatePage( HttpServletRequest request + , @RequestParam Map commandMap + , ModelMap model) throws Exception + { + log.info(">>>>>>>>>>>>>>> /potl/getSrStsfdgRatePage.do <<<<<<<<<<<<<<<"); + + PrsnlPortletManageVO prsnlPortletManageVO = new PrsnlPortletManageVO(); + + prsnlPortletManageVO.setPrsnlId((String) commandMap.get("prsnlId")); + + // Body Setting Start --------------------------------- + Map bodyMap2 = ConvertUtils.convertToMapAll(prsnlPortletManageVO); + // Body Setting End --------------------------------- + // RestApi Call Start --------------------------------- + Map returnMap2 = restApiCallUtil.RestApiCall(bodyMap2, "/potl/selectPotlSize.do"); + // RestApi Call End --------------------------------- + + // Return Data Setting Start -------------------------- + Map resultList2 = (Map)returnMap2.get("resultList"); + // Return Data Setting End -------------------------- + + int potlWidth= (int) resultList2.get("portletWidth"); + int potlHeight= (int) resultList2.get("portletHeight"); + + String potlId=(String) commandMap.get("prsnlId"); + + model.addAttribute("potlId", potlId); + model.addAttribute("potlWidth" , potlWidth); + model.addAttribute("potlHeight", potlHeight); + + model.addAttribute("dtCurMonth" , CommonUtil.getKST("yyyy-MM")); // 조회일시 + + log.info("<<<<<<<<<<<<<<< /potl/getSrStsfdgRatePage.do >>>>>>>>>>>>>>>"); + + return "/itms/pot/MySrStsfdgRate"; + } + + /** + * SR 만족율 통계 통계 조회 + * @author urp 인프라본부 나혁제 + * 작성일 : 2025.12.09 + */ + @ResponseBody + @RequestMapping(value="/potl/getSrStsfdgRate.do") + public LinkedHashMap getSrStsfdgRate( @RequestBody LinkedHashMap requestMap + , HttpServletRequest request + , HttpServletResponse response ) throws Exception + { + log.info(">>>>>>>>>>>>>>> /potl/getSrStsfdgRate.do <<<<<<<<<<<<<<<"); + + // api in/out map 정의 + Map bodyMap = new LinkedHashMap(); + Map returnMap = new LinkedHashMap(); + + // return 처리 + LinkedHashMap resBody = new LinkedHashMap(); // Response Map + + // Body Setting Start --------------------------------- + bodyMap.put("strSearchMon" , (String)requestMap.get("strSearchMon")); + // Body Setting End --------------------------------- + + // RestApi Call Start --------------------------------- + returnMap = restApiCallUtil.RestApiCall(bodyMap, "/srm/getSrStsfdgRate.do"); + // RestApi Call End --------------------------------- + + // Return Data Setting Start -------------------------- + List> resultList = (List>)returnMap.get("resultList"); + // Return Data Setting End -------------------------- + + resBody.put("resultList" , resultList ); + + log.info("<<<<<<<<<<<<<<< /potl/getSrStsfdgRate.do >>>>>>>>>>>>>>>"); + + return resBody; + } + + /** + * 보고서 만족율 통계 포틀릿 + * @author urp 인프라본부 나혁제 + * 작성일 : 2025.12.10 + */ + @RequestMapping(value = "/potl/getReportStsfdgRatePage.do") + public String getReportStsfdgRatePage( HttpServletRequest request + , @RequestParam Map commandMap + , ModelMap model) throws Exception + { + log.info(">>>>>>>>>>>>>>> /potl/getReportStsfdgRatePage.do <<<<<<<<<<<<<<<"); + + PrsnlPortletManageVO prsnlPortletManageVO = new PrsnlPortletManageVO(); + + prsnlPortletManageVO.setPrsnlId((String) commandMap.get("prsnlId")); + + // Body Setting Start --------------------------------- + Map bodyMap2 = ConvertUtils.convertToMapAll(prsnlPortletManageVO); + // Body Setting End --------------------------------- + // RestApi Call Start --------------------------------- + Map returnMap2 = restApiCallUtil.RestApiCall(bodyMap2, "/potl/selectPotlSize.do"); + // RestApi Call End --------------------------------- + + // Return Data Setting Start -------------------------- + Map resultList2 = (Map)returnMap2.get("resultList"); + // Return Data Setting End -------------------------- + + int potlWidth= (int) resultList2.get("portletWidth"); + int potlHeight= (int) resultList2.get("portletHeight"); + + String potlId=(String) commandMap.get("prsnlId"); + + model.addAttribute("potlId", potlId); + model.addAttribute("potlWidth" , potlWidth); + model.addAttribute("potlHeight", potlHeight); + + model.addAttribute("dtCurMonth" , CommonUtil.getKST("yyyy-MM")); // 조회일시 + + log.info("<<<<<<<<<<<<<<< /potl/getReportStsfdgRatePage.do >>>>>>>>>>>>>>>"); + + return "/itms/pot/MyReportStsfdgRate"; + } + + /** + * SR 만족율 통계 통계 조회 + * @author urp 인프라본부 나혁제 + * 작성일 : 2025.12.09 + */ + @ResponseBody + @RequestMapping(value="/potl/getReportStsfdgRate.do") + public LinkedHashMap getReportStsfdgRate( @RequestBody LinkedHashMap requestMap + , HttpServletRequest request + , HttpServletResponse response ) throws Exception + { + log.info(">>>>>>>>>>>>>>> /potl/getReportStsfdgRate.do <<<<<<<<<<<<<<<"); + + // api in/out map 정의 + Map bodyMap = new LinkedHashMap(); + Map returnMap = new LinkedHashMap(); + + // return 처리 + LinkedHashMap resBody = new LinkedHashMap(); // Response Map + + // Body Setting Start --------------------------------- + bodyMap.put("strSearchMon" , (String)requestMap.get("strSearchMon")); + // Body Setting End --------------------------------- + + // RestApi Call Start --------------------------------- + returnMap = restApiCallUtil.RestApiCall(bodyMap, "/srm/getReportStsfdgRate.do"); + // RestApi Call End --------------------------------- + + // Return Data Setting Start -------------------------- + List> resultList = (List>)returnMap.get("resultList"); + // Return Data Setting End -------------------------- + + resBody.put("resultList" , resultList ); + + log.info("<<<<<<<<<<<<<<< /potl/getReportStsfdgRate.do >>>>>>>>>>>>>>>"); + + return resBody; + } + + + 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 6466e74e..f9998612 100644 --- a/src/main/java/com/urpsys/itmsfront/srm/controller/SvcDeskController.java +++ b/src/main/java/com/urpsys/itmsfront/srm/controller/SvcDeskController.java @@ -312,17 +312,63 @@ public class SvcDeskController model.addAttribute("serviceList", resultList); // 서비스 정보 - String dtReqDatetime = CommonUtil.getDatewithSpan(CommonUtil.getKST("yyyyMMddHHmm"), 7, "D", "yyyy-MM-dd HH:mm"); + String strReqIncidentNum = CommonUtil.nvl(request.getParameter("vcReqIncidentNum" )); + + // 출력데이터 + String dtReqDatetime = ""; + + // 2025.12.17 나혁제 신청화면에서 오는 경우 + if(!strReqIncidentNum.equals("")) + { + // Body Setting Start --------------------------------- + bodyMap.put("vcReqIncidentNum", strReqIncidentNum); + // Body Setting End --------------------------------- + + // RestApi Call Start --------------------------------- + returnMap = restApiCallUtil.RestApiCall(bodyMap, "/srm/getReqIncidentBySeq.do"); + // RestApi Call End --------------------------------- + + // 결과값 추출 Start --------------------------------- + Map resultReqIncident = (Map)returnMap.get("resultReqIncident"); + // RestApi Call End --------------------------------- + + // 조치예정일일 + dtReqDatetime = CommonUtil.nvl(resultReqIncident.get("dtCompleteReqDateTime")); + // 조치예정일일 + String strRegAtchFileId = CommonUtil.nvl(resultReqIncident.get("atchFileId")); + // 서비스코드 + String strInServiceCode = CommonUtil.nvl(resultReqIncident.get("inServiceCode")); + + // 인스던트 본문 복호화처리 + String strIncidentBody = (String)resultReqIncident.get("txIncidentBody"); + String strIncidentBodyDec = CommonUtil.base64decode(strIncidentBody); + + model.addAttribute("reqTxIncidentBody" , strIncidentBodyDec ); // 본문내용 + model.addAttribute("reqAtchFileId" , strRegAtchFileId ); // 신청첨부파일 + model.addAttribute("reqInServiceCode" , strInServiceCode ); // 서비스코드 + model.addAttribute("reqVcIncidentTitle" , CommonUtil.nvl(resultReqIncident.get("vcIncidentTitle")) ); // 제목 + + model.addAttribute("reqInChargeUser", CommonUtil.nvl(resultReqIncident.get("inChargeUser")) ); // 조치예정자 ID + model.addAttribute("reqVcChargeUser", CommonUtil.nvl(resultReqIncident.get("vcChargeUser")) ); // 조치예정자 명 + + model.addAttribute("reqRptRejTxComment", CommonUtil.nvl(request.getParameter("reqRptRejTxComment")) ); // 접수의견 + } + else + { + dtReqDatetime = CommonUtil.getDatewithSpan(CommonUtil.getKST("yyyyMMddHHmm"), 7, "D", "yyyy-MM-dd HH:mm"); + } log.info(" dtReqDatetime [{}]", dtReqDatetime); model.addAttribute("dtReceiptDatetime" , CommonUtil.getKST("yyyy-MM-dd HH:mm")); // 접수일시 model.addAttribute("dtReqDatetime" , dtReqDatetime); // 완료요청일시는 7일 이후 + model.addAttribute("vcReqIncidentNum" , strReqIncidentNum); // 신청번호 + TokenInfo tokenInfo = CommonUtil.getTokenInfo(); model.addAttribute("inRegUser", tokenInfo.getUniqId()); // 접수자ID - model.addAttribute("vcRegUser", tokenInfo.getUserName()); // 접수일시 + model.addAttribute("vcRegUser", tokenInfo.getUserName()); // 접수자명 // 2025.12.03 나혁제 파일체크 로직 추가 // 파일업로드 제한 @@ -385,7 +431,7 @@ public class SvcDeskController log.info("privType [{}]", privType); log.info("transfer_avail [{}]", transfer_avail); log.info("editDifficulty [{}]", editDifficulty); - log.info("approvalReq [{}]", approvalReq); + log.info("approvalReq [{}]", approvalReq); // RestApi Call End --------------------------------- @@ -473,6 +519,8 @@ public class SvcDeskController List> approvalsList = new ArrayList(); + log.info("reqRptRejTxComment [{}]", incidentVo.getReqRptRejTxComment()); + if(srApprovalsId != null && srApprovalsId.length > 0) { int iSeq=0; @@ -499,7 +547,6 @@ public class SvcDeskController incidentVo.setTxIncidentBody(strBodyEnc); - // 첨부파일 Setting Start ********************** / // 첨부파일 관련 첨부파일ID 생성 List _result = null; diff --git a/src/main/java/com/urpsys/itmsfront/srm/controller/SvcDeskReqController.java b/src/main/java/com/urpsys/itmsfront/srm/controller/SvcDeskReqController.java new file mode 100644 index 00000000..e8713acc --- /dev/null +++ b/src/main/java/com/urpsys/itmsfront/srm/controller/SvcDeskReqController.java @@ -0,0 +1,599 @@ +package com.urpsys.itmsfront.srm.controller; + +import java.util.ArrayList; +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +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.stereotype.Controller; +import org.springframework.ui.ModelMap; +import org.springframework.web.bind.annotation.ModelAttribute; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; +import org.springframework.web.multipart.MultipartHttpServletRequest; + +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.common.egov.util.EgovFileMngUtil; +import com.urpsys.basefront.common.service.CommonService; +import com.urpsys.basefront.domain.FileVO; +import com.urpsys.basefront.domain.TokenInfo; +import com.urpsys.basefront.config.EgovMessageSource; +import com.urpsys.itmsfront.srm.domain.IncidentReqVo; +import com.urpsys.itmsfront.srm.domain.IncidentVo; +import com.urpsys.itmsfront.srm.domain.SvcDeskListVo; +import com.urpsys.itmsfront.srm.domain.SvcDeskReqListVo; + +import lombok.extern.slf4j.Slf4j; + +/** + * 서비스 데스크 신청 관련 컨트롤러 클래스 (게시판생성관리-enterprise) + * @author URP 인프라본부 나혁제 + * @since 2025.12.15 + * @version 1.0 + * @see + * + *
+ * << 개정이력(Modification Information) >>
+ *
+ *  수정일         수정자       수정내용
+ *  ----------   --------   ---------------------------
+ *  2025.12.15   나혁제       최초 생성
+ *
+ * 
+ * + */ + +@Slf4j +@Controller +public class SvcDeskReqController +{ + /** EgovMessageSource */ + @Resource(name="egovMessageSource") + EgovMessageSource egovMessageSource; + + /* 파일처리 */ + @Resource(name="EgovFileMngUtil") + private EgovFileMngUtil fileUtil; + + /** EgovPropertyService */ + @Resource(name = "propertiesService") + protected EgovPropertyService propertyService; + + @Resource(name="RestApiCallUtil") + private RestApiCallUtil restApiCallUtil; + + @Autowired + CommonService commonService; + + /** + * 서비스 데스크 인스던트 목록을 조회한다. + * @author urp 인프라본부 나혁제 + * 작성일 : 2025.02.08 + */ + @RequestMapping("/srm/searchReqIncident.do") + public String searchReqIncident( @ModelAttribute("searchVO") SvcDeskReqListVo searchVO + , HttpServletRequest request + , HttpServletResponse response + , ModelMap model ) throws Exception + { + log.info(">>>>>>>>>>>>>>> /srm/searchReqIncident.do <<<<<<<<<<<<<<<"); + + // api in/out map 정의 + Map bodyMap = new LinkedHashMap(); + Map returnMap = new LinkedHashMap(); + + /** paging */ + PaginationInfo paginationInfo = new PaginationInfo(); + paginationInfo.setCurrentPageNo (searchVO.getPageIndex()); + paginationInfo.setRecordCountPerPage(searchVO.getPageUnit()); + paginationInfo.setPageSize (searchVO.getPageSize()); + + searchVO.setFirstIndex(paginationInfo.getFirstRecordIndex()); + searchVO.setLastIndex(paginationInfo.getLastRecordIndex()); + searchVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage()); + + // Body Setting Start --------------------------------- + bodyMap = ConvertUtils.convertToMapAll(searchVO); + // Body Setting End --------------------------------- + + // RestApi Call Start --------------------------------- + returnMap = restApiCallUtil.RestApiCall(bodyMap, "/srm/searchReqIncident.do"); + // RestApi Call End --------------------------------- + + // Return Data Setting Start -------------------------- + List> resultList = (List>)returnMap.get("resultList"); + int totCnt = (int)returnMap.get("totCnt"); + // Return Data Setting End -------------------------- + + paginationInfo.setTotalRecordCount(totCnt); + + model.addAttribute("resultList" , resultList); + model.addAttribute("paginationInfo" , paginationInfo); + model.addAttribute("message" , egovMessageSource.getMessage("success.common.select")); + + log.info("<<<<<<<<<<<<<<< /srm/searchReqIncident.do >>>>>>>>>>>>>>>"); + + return "uritms-tiles2/srm/SvcDeskReqList"; + } + + /** + * 서비스 데스크 인스던트 신청 상세조회 화면으로 이동한다. + * @author URP 인프라본부 나혁제 + * 작성일 : 2025.12.16 + */ + @RequestMapping(value = "/srm/getReqIncidentBySeq.do") + public String getReqIncidentBySeq( @ModelAttribute("SvcDeskListVo") SvcDeskReqListVo svcDeskReqListVo + , @ModelAttribute("searchVO") SvcDeskReqListVo searchVO + , HttpServletRequest request + , HttpServletResponse response + , ModelMap model) throws Exception + { + log.info(">>>>>>>>>>>>>>> /srm/getReqIncidentBySeq.do <<<<<<<<<<<<<<<"); + + // api in/out map 정의 + Map bodyMap = new LinkedHashMap(); + Map returnMap = new LinkedHashMap(); + + String vcReqIncidentNum = CommonUtil.nvl(svcDeskReqListVo.getVcReqIncidentNum()); + + // Body Setting Start --------------------------------- + bodyMap.put("vcReqIncidentNum", vcReqIncidentNum); + // Body Setting End --------------------------------- + + // RestApi Call Start --------------------------------- + returnMap = restApiCallUtil.RestApiCall(bodyMap, "/srm/getReqIncidentBySeq.do"); + // RestApi Call End --------------------------------- + + // 결과값 추출 Start --------------------------------- + Map resultReqIncident = (Map)returnMap.get("resultReqIncident"); + + String strChangeYn = (String)returnMap.get("strChangeYn"); + String strCompletedYn = (String)returnMap.get("strCompletedYn"); + + log.info("strChangeYn [{}]", strChangeYn ); + log.info("strCompletedYn [{}]", strCompletedYn ); + // RestApi Call End --------------------------------- + + // 인스던트 본문 복호화처리 + String strIncidentBody = (String)resultReqIncident.get("txIncidentBody"); + String strIncidentBodyDec = CommonUtil.base64decode(strIncidentBody); + + resultReqIncident.put("txIncidentBody", strIncidentBodyDec); + + model.addAttribute("strChangeYn" , strChangeYn ); // 수정/삭제 가능여부 + model.addAttribute("strCompletedYn" , strCompletedYn ); // 처리완료 + + model.addAttribute("resultReqIncident" , resultReqIncident ); // Map + + // 접수정보 추출 + String strIncidentSeq = CommonUtil.nvl(resultReqIncident.get("inIncidentSeq")); + + if(!strIncidentSeq.equals("")) + { + int inIncidentSeq = CommonUtil.stoi(strIncidentSeq); + + // 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"); + + model.addAttribute("resultIncident" , resultIncident ); // Map + + model.addAttribute("bRptYn", "Y"); + } + else + { + + TokenInfo tokenInfo = CommonUtil.getTokenInfo(); + + model.addAttribute("inReqUser", tokenInfo.getUniqId()); // 접수자ID + model.addAttribute("vcReqUser", tokenInfo.getUserName()); // 접수일시 + + // 조치예정자만 접수권한 부여 + if(tokenInfo.getUniqId().equals(resultReqIncident.get("inChargeUser"))) + { + model.addAttribute("bRptAuth", "Y"); + } + } + + log.info("<<<<<<<<<<<<<<< /srm/getReqIncidentBySeq.do >>>>>>>>>>>>>>>"); + + return "uritms-tiles2/srm/SvcDeskReqDetail"; + } + + + /** + * 서비스 데스크 인스던트 신청 등록 화면으로 이동한다. + * @author URP 인프라본부 나혁제 + * 작성일 : 2025.12.15 + */ + @PostMapping(value = "/srm/insertViewReqIncident.do") + public String insertViewIncident( @ModelAttribute("searchVO") SvcDeskReqListVo searchVO + , HttpServletRequest request + , HttpServletResponse response + , ModelMap model) throws Exception + { + log.info(">>>>>>>>>>>>>>> /srm/insertViewReqIncident.do <<<<<<<<<<<<<<<"); + + // api in/out map 정의 + Map bodyMap = new LinkedHashMap(); + Map returnMap = new LinkedHashMap(); + + // 서비스 정보 추출 + // RestApi Call Start --------------------------------- + returnMap = restApiCallUtil.RestApiCall(bodyMap, "/srm/getServiceCombo.do"); + // RestApi Call End --------------------------------- + List> resultList = (List>)returnMap.get("resultList"); + + model.addAttribute("serviceList", resultList); // 서비스 정보 + + String dtCompleteReqDateTime = CommonUtil.getDatewithSpan(CommonUtil.getKST("yyyyMMddHHmm"), 7, "D", "yyyy-MM-dd HH:mm"); + + log.info(" dtCompleteReqDateTime [{}]", dtCompleteReqDateTime); + + model.addAttribute("dtReqDateTime" , CommonUtil.getKST("yyyy-MM-dd HH:mm")); // 신청일시 + model.addAttribute("dtCompleteReqDateTime" , dtCompleteReqDateTime); // 완료요청일시는 7일 이후 + + TokenInfo tokenInfo = CommonUtil.getTokenInfo(); + + model.addAttribute("inReqUser", tokenInfo.getUniqId()); // 접수자ID + model.addAttribute("vcReqUser", 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/insertViewReqIncident.do >>>>>>>>>>>>>>>"); + + return "uritms-tiles2/srm/SvcDeskReqInsert"; + } + + /** + * 서비스 데스크 인스던트 신청 수정 화면으로 이동한다. + * @author URP 인프라본부 나혁제 + * 작성일 : 2025.12.16 + */ + @PostMapping(value = "/srm/updateViewReqIncident.do") + public String updateViewReqIncident( @ModelAttribute("SvcDeskListVo") SvcDeskReqListVo svcDeskReqListVo + , @ModelAttribute("searchVO") SvcDeskListVo searchVO + , HttpServletRequest request + , HttpServletResponse response + , ModelMap model) throws Exception + { + log.info(">>>>>>>>>>>>>>> /srm/updateViewReqIncident.do <<<<<<<<<<<<<<<"); + // api in/out map 정의 + Map bodyMap = new LinkedHashMap(); + Map returnMap = new LinkedHashMap(); + + String vcReqIncidentNum = CommonUtil.nvl(svcDeskReqListVo.getVcReqIncidentNum()); + + // Body Setting Start --------------------------------- + bodyMap.put("vcReqIncidentNum", vcReqIncidentNum); + // Body Setting End --------------------------------- + + // RestApi Call Start --------------------------------- + returnMap = restApiCallUtil.RestApiCall(bodyMap, "/srm/getReqIncidentBySeq.do"); + // RestApi Call End --------------------------------- + + // 결과값 추출 Start --------------------------------- + Map resultReqIncident = (Map)returnMap.get("resultReqIncident"); + // RestApi Call End --------------------------------- + + // 인스던트 본문 복호화처리 + String strIncidentBody = (String)resultReqIncident.get("txIncidentBody"); + String strIncidentBodyDec = CommonUtil.base64decode(strIncidentBody); + + resultReqIncident.put("txIncidentBody", strIncidentBodyDec); + + model.addAttribute("resultReqIncident" , resultReqIncident ); // Map + + // 서비스 정보 추출 + // RestApi Call Start --------------------------------- + returnMap = restApiCallUtil.RestApiCall(bodyMap, "/srm/getServiceCombo.do"); + // RestApi Call End --------------------------------- + List> resultList = (List>)returnMap.get("resultList"); + + model.addAttribute("serviceList", resultList); // 서비스 정보 + + // 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/updateViewReqIncident.do >>>>>>>>>>>>>>>"); + + return "uritms-tiles2/srm/SvcDeskReqUpdate"; + } + + + + + + + + + + + + + + /** + * 서비스데스크 인스던트 신청 등록 처리를 한다. + * @author URP 인프라본부 나혁제 + * 작성일 : 2025.12.15 + */ + @ResponseBody + @RequestMapping(value="/srm/addReqIncident.do") + public LinkedHashMap addReqIncident( final @ModelAttribute("incidentReqVo") IncidentReqVo incidentReqVo + , final MultipartHttpServletRequest multiRequest + , HttpServletRequest request + , HttpServletResponse response ) throws Exception + { + log.info(">>>>>>>>>>>>>>> /srm/addReqIncident.do <<<<<<<<<<<<<<<"); + + // api in/out map 정의 + Map bodyMap = new LinkedHashMap(); + Map returnMap = new LinkedHashMap(); + + // return 처리 + LinkedHashMap resBody = new LinkedHashMap(); // Response Map + + // 양식 암호화처리 + String strBody = incidentReqVo.getTxIncidentBody(); + String strBodyEnc = CommonUtil.base64encode(strBody); + + log.info("strBody [{}]", strBody); + log.info("strBodyEnc [{}]", strBodyEnc); + + incidentReqVo.setTxIncidentBody(strBodyEnc); + + // 첨부파일 Setting Start ********************** / + // 첨부파일 관련 첨부파일ID 생성 + List _result = null; + String _atchFileId = ""; + + final List files = multiRequest.getFiles("file_1"); + + if ( (!files.isEmpty()) + && (files.get(0).getSize()>0) ) + { + _result = fileUtil.parseFileInf(files, "INCID_", 0, "", ""); + _atchFileId = _result.get(0).getAtchFileId(); // 파일이 생성되고나면 생성된 첨부파일 ID를 리턴한다. + + incidentReqVo.setAtchFileId(_atchFileId); + } + + List> fileList = new ArrayList(); + + // 파일저장 정보 세팅 + if(_result != null) + { + for(FileVO fileVo : _result) + { + log.info("file fileVo : {}", fileVo.toString()); + + Map fileMap = ConvertUtils.convertToMap(fileVo); + + fileList.add(fileMap); + } + } + // 첨부파일 Setting End **********************/ + + // Body Setting Start --------------------------------- + bodyMap.put("incidentReqVo" , ConvertUtils.convertToMapAll(incidentReqVo)); + bodyMap.put("fileList" , fileList); + // Body Setting End --------------------------------- + + // RestApi Call Start --------------------------------- + returnMap = restApiCallUtil.RestApiCall(bodyMap, "/srm/addReqIncident.do"); + // RestApi Call End --------------------------------- + + resBody.put("resultCd" , returnMap.get("resultCd") ); + resBody.put("resultMsg" , returnMap.get("resultMsg") ); + + log.info("<<<<<<<<<<<<<<< /srm/addReqIncident.do >>>>>>>>>>>>>>>"); + + return resBody; + } + + /** + * 서비스데스크 인스던트 신청 수정 처리를 한다. + * @author URP 인프라본부 나혁제 + * 작성일 : 2025.12.17 + */ + @ResponseBody + @RequestMapping(value="/srm/updateReqIncident.do") + public LinkedHashMap updateReqIncident( final @ModelAttribute("incidentReqVo") IncidentReqVo incidentReqVo + , final MultipartHttpServletRequest multiRequest + , HttpServletRequest request + , HttpServletResponse response ) throws Exception + { + log.info(">>>>>>>>>>>>>>> /srm/updateReqIncident.do <<<<<<<<<<<<<<<"); + + // api in/out map 정의 + Map bodyMap = new LinkedHashMap(); + Map returnMap = new LinkedHashMap(); + + // return 처리 + LinkedHashMap resBody = new LinkedHashMap(); // Response Map + + // 양식 암호화처리 + String strBody = incidentReqVo.getTxIncidentBody(); + String strBodyEnc = CommonUtil.base64encode(strBody); + + log.info("strBody [{}]", strBody); + log.info("strBodyEnc [{}]", strBodyEnc); + + incidentReqVo.setTxIncidentBody(strBodyEnc); + + // 첨부파일 Setting Start ********************** / + // 첨부파일 관련 첨부파일ID 생성 + String _atchFileId = incidentReqVo.getAtchFileId(); + final List files = multiRequest.getFiles("file_1"); + + List> fileList = new ArrayList(); + + if ( (!files.isEmpty()) + && (files.get(0).getSize()>0) ) + { + List _result = null; + + if (_atchFileId==null || "".equals(_atchFileId) ) + { + _result = fileUtil.parseFileInf(files, "INCID_", 0, _atchFileId, ""); + _atchFileId = _result.get(0).getAtchFileId(); + + incidentReqVo.setAtchFileId(_atchFileId); + incidentReqVo.setAtchFileInUpGb("I"); // 새로만들기 + } + else + { + FileVO fvo = new FileVO(); + fvo.setAtchFileId(_atchFileId); + + // Body Setting Start --------------------------------- + bodyMap = ConvertUtils.convertToMap(fvo); + // Body Setting End --------------------------------- + + // RestApi Call Start --------------------------------- + returnMap = restApiCallUtil.RestApiCall(bodyMap, "/cmm/getMaxFileSN.do"); + // RestApi Call End --------------------------------- + + int _cnt = (int)returnMap.get("result"); + + _result = fileUtil.parseFileInf(files, "INCID_", _cnt, _atchFileId, ""); + incidentReqVo.setAtchFileInUpGb("U"); // 기존자료변경 + } + + // 파일저장 정보 세팅 + for(FileVO inMap : _result) + { + Map fileMap = ConvertUtils.convertToMap(inMap); + fileList.add(fileMap); + } + } + // 첨부파일 Setting End ********************** / + + // Body Setting Start --------------------------------- + bodyMap.put("incidentReqVo" , ConvertUtils.convertToMapAll(incidentReqVo)); + bodyMap.put("fileList" , fileList); + // Body Setting End --------------------------------- + + // RestApi Call Start --------------------------------- + returnMap = restApiCallUtil.RestApiCall(bodyMap, "/srm/updateReqIncident.do"); + // RestApi Call End --------------------------------- + + resBody.put("resultCd" , returnMap.get("resultCd") ); + resBody.put("resultMsg" , returnMap.get("resultMsg") ); + + log.info("<<<<<<<<<<<<<<< /rem/updateIncident.do >>>>>>>>>>>>>>>"); + + return resBody; + } + + /** + * 서비스데스크 인스던트 신청정보 삭제 처리를 한다. + * @author urp 인프라본부 나혁제 + * 작성일 : 2025.12.18 + */ + @ResponseBody + @RequestMapping(value="/srm/deleteReqIncident.do") + public LinkedHashMap deleteReqIncident( final @ModelAttribute("incidentReqVo") IncidentReqVo incidentReqVo + , HttpServletRequest request + , HttpServletResponse response ) throws Exception + { + log.info(">>>>>>>>>>>>>>> /srm/deleteReqIncident.do <<<<<<<<<<<<<<<"); + + // api in/out map 정의 + Map bodyMap = new LinkedHashMap(); + Map returnMap = new LinkedHashMap(); + + // return 처리 + LinkedHashMap resBody = new LinkedHashMap(); // Response Map + + // Body Setting Start --------------------------------- + bodyMap.put("incidentReqVo" , ConvertUtils.convertToMapAll(incidentReqVo)); + // Body Setting End --------------------------------- + + // RestApi Call Start --------------------------------- + returnMap = restApiCallUtil.RestApiCall(bodyMap, "/srm/deleteReqIncident.do"); + // RestApi Call End --------------------------------- + + resBody.put("resultCd" , returnMap.get("resultCd") ); + resBody.put("resultMsg" , returnMap.get("resultMsg") ); + + log.info("<<<<<<<<<<<<<<< /srm/deleteReqIncident.do >>>>>>>>>>>>>>>"); + + + return resBody; + } + + /** + * 인스던트 신청정보 반려 처리를 한다. + * @author URP 인프라본부 나혁제 + * 작성일 : 2025.12.18 + */ + @ResponseBody + @RequestMapping(value="/srm/rejectReqIncident.do") + public LinkedHashMap rejectReqIncident( HttpServletRequest request + , HttpServletResponse response ) throws Exception + { + log.info(">>>>>>>>>>>>>>> /srm/rejectReqReqIncident.do <<<<<<<<<<<<<<<"); + + // api in/out map 정의 + Map bodyMap = new LinkedHashMap(); + Map returnMap = new LinkedHashMap(); + + // return 처리 + LinkedHashMap resBody = new LinkedHashMap(); // Response Map + + TokenInfo tokenInfo = CommonUtil.getTokenInfo(); + + // Body Setting Start --------------------------------- + bodyMap.put("reqRptRejTxComment" , CommonUtil.getData(request, "reqRptRejTxComment") ); + bodyMap.put("vcReqIncidentNum" , CommonUtil.getData(request, "vcReqIncidentNum" ) ); + // Body Setting End --------------------------------- + + // RestApi Call Start --------------------------------- + returnMap = restApiCallUtil.RestApiCall(bodyMap, "/srm/rejectReqIncident.do"); + // RestApi Call End --------------------------------- + + resBody.put("resultCd" , returnMap.get("resultCd") ); + resBody.put("resultMsg" , returnMap.get("resultMsg") ); + + log.info("<<<<<<<<<<<<<<< /srm/rejectReqReqIncident.do >>>>>>>>>>>>>>>"); + + return resBody; + } + + + + + + + +} diff --git a/src/main/java/com/urpsys/itmsfront/srm/domain/IncidentReqVo.java b/src/main/java/com/urpsys/itmsfront/srm/domain/IncidentReqVo.java new file mode 100644 index 00000000..8c60cd17 --- /dev/null +++ b/src/main/java/com/urpsys/itmsfront/srm/domain/IncidentReqVo.java @@ -0,0 +1,136 @@ +package com.urpsys.itmsfront.srm.domain; + +/** + * 서비스데스크 인스던트 신청 처리 model 클래스를 정의한다. + * @author urp 인프라본부 나혁제 + * @since 2025.12.15 + * @version 1.0 + * @see + * + *
+ * << 개정이력(Modification Information) >>
+ *   
+ *   수정일         수정자           수정내용
+ *  -------      --------    ---------------------------
+ *   2025.12.15   나혁제        최초 생성
+ *
+ * 
+ */ + +public class IncidentReqVo +{ + private String vcReqIncidentNum ; + private String inServiceCode ; + private String vcIncidentTitle ; + private String txIncidentBody ; + private String inReqUser ; + private String vcReqUser ; + private String inChargeUser ; + private String vcChargeUser ; + private String dtReqDateTime ; + private String dtCompleteReqDateTime ; + private String atchFileId ; + private String procStsfdg ; + private String procOpin ; + private String inIncidentSeq ; + private String atchFileInUpGb ; + + public String getVcReqIncidentNum() { + return vcReqIncidentNum; + } + public void setVcReqIncidentNum(String vcReqIncidentNum) { + this.vcReqIncidentNum = vcReqIncidentNum; + } + public String getInServiceCode() { + return inServiceCode; + } + public void setInServiceCode(String inServiceCode) { + this.inServiceCode = inServiceCode; + } + 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 getInReqUser() { + return inReqUser; + } + public void setInReqUser(String inReqUser) { + this.inReqUser = inReqUser; + } + public String getVcReqUser() { + return vcReqUser; + } + public void setVcReqUser(String vcReqUser) { + this.vcReqUser = vcReqUser; + } + 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 getDtReqDateTime() { + return dtReqDateTime; + } + public void setDtReqDateTime(String dtReqDateTime) { + this.dtReqDateTime = dtReqDateTime; + } + public String getDtCompleteReqDateTime() { + return dtCompleteReqDateTime; + } + public void setDtCompleteReqDateTime(String dtCompleteReqDateTime) { + this.dtCompleteReqDateTime = dtCompleteReqDateTime; + } + public String getAtchFileId() { + return atchFileId; + } + public void setAtchFileId(String atchFileId) { + this.atchFileId = atchFileId; + } + public String getProcStsfdg() { + return procStsfdg; + } + public void setProcStsfdg(String procStsfdg) { + this.procStsfdg = procStsfdg; + } + public String getProcOpin() { + return procOpin; + } + public void setProcOpin(String procOpin) { + this.procOpin = procOpin; + } + public String getInIncidentSeq() { + return inIncidentSeq; + } + public void setInIncidentSeq(String inIncidentSeq) { + this.inIncidentSeq = inIncidentSeq; + } + public String getAtchFileInUpGb() { + return atchFileInUpGb; + } + public void setAtchFileInUpGb(String atchFileInUpGb) { + this.atchFileInUpGb = atchFileInUpGb; + } + + + + + + + + +} \ No newline at end of file diff --git a/src/main/java/com/urpsys/itmsfront/srm/domain/IncidentVo.java b/src/main/java/com/urpsys/itmsfront/srm/domain/IncidentVo.java index 36c21c2e..90df2afe 100644 --- a/src/main/java/com/urpsys/itmsfront/srm/domain/IncidentVo.java +++ b/src/main/java/com/urpsys/itmsfront/srm/domain/IncidentVo.java @@ -1,7 +1,5 @@ package com.urpsys.itmsfront.srm.domain; -import com.urpsys.basefront.domain.ComDefaultVO; - /** * 서비스데스크 인스던트 처리 model 클래스를 정의한다. * @author urp 인프라본부 나혁제 @@ -53,6 +51,9 @@ public class IncidentVo 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; @@ -246,6 +247,24 @@ public class IncidentVo 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; + } diff --git a/src/main/java/com/urpsys/itmsfront/srm/domain/SvcDeskReqListVo.java b/src/main/java/com/urpsys/itmsfront/srm/domain/SvcDeskReqListVo.java new file mode 100644 index 00000000..30b47bb1 --- /dev/null +++ b/src/main/java/com/urpsys/itmsfront/srm/domain/SvcDeskReqListVo.java @@ -0,0 +1,64 @@ +package com.urpsys.itmsfront.srm.domain; + +import com.urpsys.basefront.domain.ComDefaultVO; + +/** + * 서비스데스크 신청정보 조회조건 model 클래스를 정의한다. + * @author URP 인프라본부 나혁제 + * @since 2025.12.15 + * @version 1.0 + * @see + * + *
+ * << 개정이력(Modification Information) >>
+ *   
+ *   수정일         수정자           수정내용
+ *  -------      --------    ---------------------------
+ *   2025.12.15   나혁제        최초 생성
+ *
+ * 
+ */ + +public class SvcDeskReqListVo extends ComDefaultVO +{ + private String complete; + private String incidentReqNum; + private String reqUser; + private String incidentTitle; + private String vcReqIncidentNum; + + public String getComplete() { + return complete; + } + public void setComplete(String complete) { + this.complete = complete; + } + public String getReqUser() { + return reqUser; + } + public void setReqUser(String reqUser) { + this.reqUser = reqUser; + } + public String getIncidentTitle() { + return incidentTitle; + } + public void setIncidentTitle(String incidentTitle) { + this.incidentTitle = incidentTitle; + } + public String getIncidentReqNum() { + return incidentReqNum; + } + public void setIncidentReqNum(String incidentReqNum) { + this.incidentReqNum = incidentReqNum; + } + public String getVcReqIncidentNum() { + return vcReqIncidentNum; + } + public void setVcReqIncidentNum(String vcReqIncidentNum) { + this.vcReqIncidentNum = vcReqIncidentNum; + } + + + + +} \ No newline at end of file diff --git a/src/main/java/com/urpsys/itmsfront/sys/controller/PrsnlPortletManageController.java b/src/main/java/com/urpsys/itmsfront/sys/controller/PrsnlPortletManageController.java index 5477d198..aa32407e 100644 --- a/src/main/java/com/urpsys/itmsfront/sys/controller/PrsnlPortletManageController.java +++ b/src/main/java/com/urpsys/itmsfront/sys/controller/PrsnlPortletManageController.java @@ -36,7 +36,7 @@ import lombok.extern.slf4j.Slf4j; /** * 개인화메뉴관리 controller 클래스 - * @author 정보기술연구소 나혁제 + * @author URP 인프라본부 나혁제 * @since 2025.03.06 * @version 1.0 * @see @@ -46,7 +46,7 @@ import lombok.extern.slf4j.Slf4j; * * 수정일 수정자 수정내용 * ---------- -------- --------------------------- - * 2025.03.06 권오제 최초 생성 + * 2025.03.06 나혁제 최초 생성 * * * @@ -82,8 +82,8 @@ public class PrsnlPortletManageController /** * 개인화메뉴 목록을 조회한다. - * @author 정보기술연구소 권오제 - * 작성일 : 2022.12.16 + * @author URP 인프라본부 나혁제 + * 작성일 : 2025.03.06 */ @RequestMapping("/sys/selectPortletManageList.do") public String selectPortletManageList(@ModelAttribute("searchVO") PrsnlPortletManageVO prsnlPortletManageVO @@ -91,6 +91,7 @@ public class PrsnlPortletManageController { log.info(">>>>>>>>>>>>>>> /sys/selectPortletManageList.do <<<<<<<<<<<<<<<"); + MemberVO memberVo = (MemberVO)SecurityContextHolder.getContext().getAuthentication().getPrincipal(); // Body Setting Start ------------------------------- prsnlPortletManageVO.setPageUnit(propertyService.getInt("pageUnit")); @@ -123,6 +124,15 @@ public class PrsnlPortletManageController model.addAttribute("resultCnt" , totCnt); model.addAttribute("paginationInfo" , paginationInfo); + // 2025.12.08 나혁제 TEST1 만 삭제권한 + if(memberVo.getTokenInfo().getStrMEM_ID().equals("TEST1")) + { + model.addAttribute("delAuthYn" , "Y"); + } + else + { + model.addAttribute("delAuthYn" , "N"); + } log.info("<<<<<<<<<<<<<<< /sys/selectPortletManageList.do >>>>>>>>>>>>>>>"); @@ -131,8 +141,8 @@ public class PrsnlPortletManageController /** * 개인화메뉴를 등록한다. - * @author 정보기술연구소 권오제 - * 작성일 : 2022.12.19 + * @author URP 인프라본부 나혁제 + * 작성일 : 2025.03.06 */ @RequestMapping("/sys/insertPrsnlPortlet.do") public String insertPrsnlPortlet(final MultipartHttpServletRequest multiRequest @@ -229,8 +239,8 @@ public class PrsnlPortletManageController /** * 개인화메뉴 정보를 조회한다. - * @author 정보기술연구소 권오제 - * 작성일 : 2022.12.19 + * @author URP 인프라본부 나혁제 + * 작성일 : 2025.03.06 */ @RequestMapping("/sys/inqirePrsnlPortlet.do") public String inqirePrsnlPortlet(@ModelAttribute("searchVO") PrsnlPortletManageVO searchVO @@ -238,6 +248,7 @@ public class PrsnlPortletManageController { log.info(">>>>>>>>>>>>>>> /sys/inqirePrsnlPortlet.do <<<<<<<<<<<<<<<"); + MemberVO memberVo = (MemberVO)SecurityContextHolder.getContext().getAuthentication().getPrincipal(); // Body Setting Start --------------------------------- Map bodyMap = ConvertUtils.convertToMapAll(searchVO); @@ -257,6 +268,17 @@ public class PrsnlPortletManageController model.addAttribute("fileUploadExtensions", whiteListFileUploadExtensions); model.addAttribute("fileUploadMaxSize" , fileUploadMaxSize); + // 2025.12.08 나혁제 TEST1 만 삭제권한 + if(memberVo.getTokenInfo().getStrMEM_ID().equals("TEST1")) + { + model.addAttribute("delAuthYn" , "Y"); + } + else + { + model.addAttribute("delAuthYn" , "N"); + } + + log.info("<<<<<<<<<<<<<<< /sys/inqirePrsnlPortlet.do >>>>>>>>>>>>>>>"); return "uritms-tiles2/sys/PrsnlPortletManageDetail"; @@ -264,8 +286,8 @@ public class PrsnlPortletManageController /** * 개인화메뉴 정보를 수정한다. - * @author 정보기술연구소 권오제 - * 작성일 : 2022.12.19 + * @author URP 인프라본부 나혁제 + * 작성일 : 2025.03.06 */ @RequestMapping("/sys/updatePrsnlPortlet.do") public String updatePrsnlPortlet(final MultipartHttpServletRequest multiRequest @@ -338,8 +360,8 @@ public class PrsnlPortletManageController /** * 개인화메뉴 정보를 삭제한다. - * @author 정보기술연구소 권오제 - * 작성일 : 2022.12.19 + * @author URP 인프라본부 나혁제 + * 작성일 : 2025.03.06 */ @RequestMapping("/sys/deletePrsnlPortlet.do") public String deletePrsnlPortlet(@ModelAttribute("prsnlPortletManageVO") PrsnlPortletManageVO prsnlPortletManageVO @@ -364,8 +386,8 @@ public class PrsnlPortletManageController /** * 개인화메뉴 정보를 멀티 삭제한다. - * @author 정보기술연구소 권오제 - * 작성일 : 2022.12.19 + * @author URP 인프라본부 나혁제 + * 작성일 : 2025.03.06 */ @RequestMapping("/sys/deletePrsnlPortletMulti.do") public String deletePrsnlPortletMulti(HttpServletRequest request @@ -411,5 +433,61 @@ public class PrsnlPortletManageController return sLocationUrl; } + + /** + * 개인화메뉴 정보를 멀티 상태변경 처리한다. + * @author URP 인프라본부 나혁제 + * 작성일 : 2025.12.08 + */ + @RequestMapping("/sys/updateStatusPrsnlPortletMulti.do") + public String updateStatusPrsnlPortletMulti(HttpServletRequest request + , @ModelAttribute("prsnlPortletManageVO") PrsnlPortletManageVO prsnlPortletManageVO + , @RequestParam("checkedPrsnlIdForDel") String checkedPrsnlIdForDel + , @RequestParam("checkUseAts") String checkUseAts + , BindingResult bindingResult + , ModelMap model) throws Exception + { + log.info(">>>>>>>>>>>>>>> /sys/updateStatusPrsnlPortletMulti.do <<<<<<<<<<<<<<<"); + + String sLocationUrl = ""; + String resultMsg = ""; + + log.info("checkedPrsnlIdForDel => [{}]", checkedPrsnlIdForDel ); + log.info("checkUseAts => [{}]", checkUseAts ); + + String [] delPrsnlId = checkedPrsnlIdForDel.split(","); + + if ( (delPrsnlId == null ) + || (delPrsnlId.length == 0) ) + { + resultMsg = egovMessageSource.getMessage("fail.common.update"); + sLocationUrl = "forward:/sys/selectPortletManageList.do"; + } + else + { + // Body Setting Start --------------------------------- + Map bodyMap = new HashMap<>(); + bodyMap.put("checkedPrsnlIdForDel", checkedPrsnlIdForDel); + bodyMap.put("checkUseAts" , checkUseAts ); + // Body Setting End --------------------------------- + + Map returnMap = restApiCallUtil.RestApiCall(request, bodyMap, "/sys/updateStatusPrsnlPortletMulti.do"); + + resultMsg = egovMessageSource.getMessage("success.common.update"); + sLocationUrl = "forward:/sys/selectPortletManageList.do"; + } + + + log.info("resultMsg => [{}]", resultMsg); + model.addAttribute("resultMsg", resultMsg); + + log.info("<<<<<<<<<<<<<<< /sys/updateStatusPrsnlPortletMulti.do >>>>>>>>>>>>>>>"); + + return sLocationUrl; + } + + + + } \ No newline at end of file diff --git a/src/main/resources/application-hpnote.yml b/src/main/resources/application-hpnote.yml index 2c935d35..4eb21a43 100644 --- a/src/main/resources/application-hpnote.yml +++ b/src/main/resources/application-hpnote.yml @@ -19,9 +19,11 @@ livereload: enabled: true - multipart: - max-file-size: 100MB - max-request-size: 100MB + servlet: + multipart: + max-file-size: 100MB + max-request-size: 100MB + # custom 설정 custom: path: diff --git a/src/main/resources/application-infra_server.yml b/src/main/resources/application-infra_server.yml index 8e6f75e3..9fe357a3 100644 --- a/src/main/resources/application-infra_server.yml +++ b/src/main/resources/application-infra_server.yml @@ -19,9 +19,11 @@ livereload: enabled: true - multipart: - max-file-size: 100MB - max-request-size: 100MB + servlet: + multipart: + max-file-size: 100MB + max-request-size: 100MB + # custom 설정 custom: path: diff --git a/src/main/resources/application-keiti_prod.yml b/src/main/resources/application-keiti_prod.yml index cbcd8b8c..abedfd23 100644 --- a/src/main/resources/application-keiti_prod.yml +++ b/src/main/resources/application-keiti_prod.yml @@ -24,9 +24,10 @@ livereload: enabled: true - multipart: - max-file-size: 100MB - max-request-size: 100MB + servlet: + multipart: + max-file-size: 100MB + max-request-size: 100MB # custom 설정 custom: diff --git a/src/main/resources/application-kic_dev.yml b/src/main/resources/application-kic_dev.yml index 9ebb1f29..8d4b1e85 100644 --- a/src/main/resources/application-kic_dev.yml +++ b/src/main/resources/application-kic_dev.yml @@ -19,9 +19,10 @@ livereload: enabled: true - multipart: - max-file-size: 100MB - max-request-size: 100MB + servlet: + multipart: + max-file-size: 100MB + max-request-size: 100MB # custom 설정 custom: diff --git a/src/main/resources/application-kic_rel.yml b/src/main/resources/application-kic_rel.yml index 6d737f61..ef055128 100644 --- a/src/main/resources/application-kic_rel.yml +++ b/src/main/resources/application-kic_rel.yml @@ -19,9 +19,10 @@ livereload: enabled: true - multipart: - max-file-size: 100MB - max-request-size: 100MB + servlet: + multipart: + max-file-size: 100MB + max-request-size: 100MB # custom 설정 custom: diff --git a/src/main/resources/application-kintex_prod.yml b/src/main/resources/application-kintex_prod.yml index f5021019..955293d8 100644 --- a/src/main/resources/application-kintex_prod.yml +++ b/src/main/resources/application-kintex_prod.yml @@ -33,9 +33,10 @@ livereload: enabled: true - multipart: - max-file-size: 100MB - max-request-size: 100MB + servlet: + multipart: + max-file-size: 100MB + max-request-size: 100MB # custom 설정 custom: diff --git a/src/main/resources/application-local.yml b/src/main/resources/application-local.yml index ea51aebc..f698f442 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 : kic + client : local \ No newline at end of file diff --git a/src/main/resources/application-vmware.yml b/src/main/resources/application-vmware.yml index 49a225a1..55b57e65 100644 --- a/src/main/resources/application-vmware.yml +++ b/src/main/resources/application-vmware.yml @@ -19,9 +19,11 @@ livereload: enabled: true - multipart: - max-file-size: 100MB - max-request-size: 100MB + servlet: + multipart: + max-file-size: 100MB + max-request-size: 100MB + # custom 설정 custom: path: diff --git a/src/main/resources/validator/urp/ItsmValidator.xml b/src/main/resources/validator/urp/ItsmValidator.xml index 25b1c265..14876fbc 100644 --- a/src/main/resources/validator/urp/ItsmValidator.xml +++ b/src/main/resources/validator/urp/ItsmValidator.xml @@ -70,6 +70,20 @@ + +
+ + + + + + + + + +
+ +
diff --git a/src/main/webapp/WEB-INF/jsp/itms/pot/MyIncidentStat.jsp b/src/main/webapp/WEB-INF/jsp/itms/pot/MyIncidentStat.jsp index cf02bca8..ca50fac8 100644 --- a/src/main/webapp/WEB-INF/jsp/itms/pot/MyIncidentStat.jsp +++ b/src/main/webapp/WEB-INF/jsp/itms/pot/MyIncidentStat.jsp @@ -21,12 +21,7 @@ <%@ 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"%> - - - - - - + @@ -37,6 +32,7 @@ + diff --git a/src/main/webapp/WEB-INF/jsp/itms/pot/MyReportStat.jsp b/src/main/webapp/WEB-INF/jsp/itms/pot/MyReportStat.jsp index ff16ed9c..461caf1f 100644 --- a/src/main/webapp/WEB-INF/jsp/itms/pot/MyReportStat.jsp +++ b/src/main/webapp/WEB-INF/jsp/itms/pot/MyReportStat.jsp @@ -22,12 +22,9 @@ <%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%> <%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%> - - - - - + + @@ -37,6 +34,7 @@ + diff --git a/src/main/webapp/WEB-INF/jsp/itms/pot/MyReportStsfdgRate.jsp b/src/main/webapp/WEB-INF/jsp/itms/pot/MyReportStsfdgRate.jsp new file mode 100644 index 00000000..94fc3fe0 --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/itms/pot/MyReportStsfdgRate.jsp @@ -0,0 +1,190 @@ + +<% + /** + * @Class Name : MyResouceTotalStat.jsp + * @Description : SR 만족율 포틀릿 + * @Modification Information + * @ + * @ 수정일 수정자 수정내용 + * @ ------- -------- --------------------------- + * @ 2025.12.09 나혁제 최초 생성 + * + * @author urp 인프라본부 나혁제 + * @since 2025.12.09 + * @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"%> + + + + + + + + + + + + + + + + + + + + +
+

보고서 처리만족율더보기 +
+ + + + +
+

+ +
    +
    + +
    + +
    + + +
+
+ diff --git a/src/main/webapp/WEB-INF/jsp/itms/pot/MyResouceTotalStat.jsp b/src/main/webapp/WEB-INF/jsp/itms/pot/MyResouceTotalStat.jsp index 4389ae63..a67723cd 100644 --- a/src/main/webapp/WEB-INF/jsp/itms/pot/MyResouceTotalStat.jsp +++ b/src/main/webapp/WEB-INF/jsp/itms/pot/MyResouceTotalStat.jsp @@ -22,9 +22,18 @@ <%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%> <%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%> + + + + + + + + + diff --git a/src/main/webapp/WEB-INF/jsp/itms/pot/MySrProPromiseRate.jsp b/src/main/webapp/WEB-INF/jsp/itms/pot/MySrProPromiseRate.jsp new file mode 100644 index 00000000..0ccabbcf --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/itms/pot/MySrProPromiseRate.jsp @@ -0,0 +1,190 @@ + +<% + /** + * @Class Name : MyResouceTotalStat.jsp + * @Description : SR 처리 준수율 포틀릿 + * @Modification Information + * @ + * @ 수정일 수정자 수정내용 + * @ ------- -------- --------------------------- + * @ 2025.12.09 나혁제 최초 생성 + * + * @author urp 인프라본부 나혁제 + * @since 2025.12.09 + * @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"%> + + + + + + + + + + + + + + + + + + + + +
+

SR 처리준수율더보기 +
+ + + + +
+

+ +
    +
    + +
    + +
    + + +
+
+ diff --git a/src/main/webapp/WEB-INF/jsp/itms/pot/MySrStsfdgRate.jsp b/src/main/webapp/WEB-INF/jsp/itms/pot/MySrStsfdgRate.jsp new file mode 100644 index 00000000..10a518bf --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/itms/pot/MySrStsfdgRate.jsp @@ -0,0 +1,190 @@ + +<% + /** + * @Class Name : MyResouceTotalStat.jsp + * @Description : SR 만족율 포틀릿 + * @Modification Information + * @ + * @ 수정일 수정자 수정내용 + * @ ------- -------- --------------------------- + * @ 2025.12.09 나혁제 최초 생성 + * + * @author urp 인프라본부 나혁제 + * @since 2025.12.09 + * @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"%> + + + + + + + + + + + + + + + + + + + + +
+

SR 처리만족율더보기 +
+ + + + +
+

+ +
    +
    + +
    + +
    + + +
+
+ diff --git a/src/main/webapp/WEB-INF/jsp/itms/srm/PopReceiptReject.jsp b/src/main/webapp/WEB-INF/jsp/itms/srm/PopReceiptReject.jsp new file mode 100644 index 00000000..0be7e88e --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/itms/srm/PopReceiptReject.jsp @@ -0,0 +1,85 @@ + + +<%-- + /** + * @Class Name : PopReceiptReject.jsp + * @Description : 접수/반려 팝엄 화면 + * @Modification Information + * @ + * @ 수정일 수정자 수정내용 + * @ ---------- -------- --------------------------- + * @ 2025.12.17 나혁제 최초 생성 + * + * @author URP 인프라본부 나혁제 + * @since 2025.12.17 + * @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" %> + + + + + + + + + + + +
+

접수/반려

+
+ + +
+ + + "> + + + + + + + + + + + +
승인요청
+ 의견 + + +
+
+ +
+ + + +
+ +
diff --git a/src/main/webapp/WEB-INF/jsp/itms/srm/SvcDeskInsert.jsp b/src/main/webapp/WEB-INF/jsp/itms/srm/SvcDeskInsert.jsp index b2c90590..8ff07f50 100644 --- a/src/main/webapp/WEB-INF/jsp/itms/srm/SvcDeskInsert.jsp +++ b/src/main/webapp/WEB-INF/jsp/itms/srm/SvcDeskInsert.jsp @@ -114,6 +114,22 @@ ${uploadMax } { // 서비스정보 획득 selInServiceCode(); + + // 2025.12.17 나혁제 신청정보로 오는경우 신청정보 세팅 + if( $('#vcReqIncidentNum').val() != '') + { + var strForm = document.getElementById("serviceBody2").value; + drawEditor("serviceBody", strForm, false); + + // 조치예정자 세팅 + $('#inChargeUser').val('${reqInChargeUser}'); + $('#vcChargeUser').val('${reqVcChargeUser}'); + + // 제목 + $('#vcIncidentTitle').val('${reqVcIncidentTitle}'); + + } + }); //---------------------------------------- @@ -590,9 +606,9 @@ ${uploadMax }
- +

서비스접수

- +
@@ -650,7 +666,7 @@ ${uploadMax } @@ -681,7 +697,8 @@ ${uploadMax } - + + 진행사항 @@ -694,7 +711,32 @@ ${uploadMax }
- +
+ + + 진행사항 + + + + + +
+ +
+
+ + + + + 기존첨부파일 + + + + + + +
+
서비스 결재 라인 @@ -749,8 +791,8 @@ ${uploadMax } - + +
@@ -798,6 +840,12 @@ ${uploadMax } + + + + + + diff --git a/src/main/webapp/WEB-INF/jsp/itms/srm/SvcDeskReqDetail.jsp b/src/main/webapp/WEB-INF/jsp/itms/srm/SvcDeskReqDetail.jsp new file mode 100644 index 00000000..b40b9226 --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/itms/srm/SvcDeskReqDetail.jsp @@ -0,0 +1,443 @@ + + +<% +/** + * @Class Name : SvcDeskReqDetail.jsp + * @Description : 서비스데스크 인스턴스 신청 상세조회 화면 + * @Modification Information + * @ + * @ 수정일 수정자 수정내용 + * @ ------- -------- --------------------------- + * @ 2025.12.16 나혁제 최초 생성 + * + * @author URP 인프라본부 나혁제 + * @since 2025.12.16 + * @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" %> + + + 인스던트 신청 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +

서비스신청 상세조회

+ + +
+
+
+
    +
  • +
  • SR관리
  • +
  • 인스던트 신청 상세조회
  • +
+
+
+
+ +
+ + + + +
+ + + "> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
인스던트 등록
신청번호 신청자 신청일시
서비스 조치예정자 완료요청일시
제목 + + + + + +
+ + +

처리정보

+
+ + "> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
인스던트 등록
접수번호 접수일시 접수자 접수의견 +
진행상태 처리완료일시 처리자 처리완료의견 +
+
+
+ + + + +
+ + +
+ +
+ + +
+ + +
+ + + + + + + + + + + + + +
+
+ + +
+ + + + + + + + + + + + + + + + +
+ diff --git a/src/main/webapp/WEB-INF/jsp/itms/srm/SvcDeskReqInsert.jsp b/src/main/webapp/WEB-INF/jsp/itms/srm/SvcDeskReqInsert.jsp new file mode 100644 index 00000000..6736de2b --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/itms/srm/SvcDeskReqInsert.jsp @@ -0,0 +1,464 @@ + + +<% +/** + * @Class Name : SvcDeskReqInsert.jsp + * @Description : 서비스데스크 인스턴스 신청 등록화면 + * @Modification Information + * @ + * @ 수정일 수정자 수정내용 + * @ ------- -------- --------------------------- + * @ 2025.12.15 나혁제 최초 생성 + * + * @author URP 인프라본부 나혁제 + * @since 2025.12.15 + * @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" %> + + + 인스던트 신청 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +

서비스신청

+ + +
+
+
+ +
+
+
+ +
+ + + + +
+ + + "> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
인스던트 등록
신청번호 신청자 + + + + 조치예정자 검색 + + + + + 신청일시 + + +
서비스 + + 조치예정자 + + + + 조치예정자 검색 + + + + + 완료요청일시 + +
제목 + + + +
+ +
+
+ +
+ + + +
+ + +
+ +
+ + +
+ + +
+ +
+
+ + +
+ + + + + + + + + + + + + + + + + + + +
+ diff --git a/src/main/webapp/WEB-INF/jsp/itms/srm/SvcDeskReqList.jsp b/src/main/webapp/WEB-INF/jsp/itms/srm/SvcDeskReqList.jsp new file mode 100644 index 00000000..c97a8416 --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/itms/srm/SvcDeskReqList.jsp @@ -0,0 +1,243 @@ + + +<% + /** + * @Class Name : SvcDeskReqList.java + * @Description : 서비스데스크 신청 목록 화면 + * @Modification Information + * @ + * @ 수정일 수정자 수정내용 + * @ ------- -------- --------------------------- + * @ 2025.12.15 나혁제 최초 생성 + * + * @author URP 인프라본부 나혁제 + * @since 2025.12.15 + * @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" %> + +서비스데스크 신청정보 + + + + + + + + + + + + +
+ + + + +
+ + + + + + + + + + + + +
+ + " > +         + + " > +         + + " > +
+
+ +
+
+ + + +
+ + + "> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
서비스데스크 인스던트 관리
신청번호접수번호서비스조치(예정)담당자신청일시신청자진행상태완료(예정)일시제목
${incidentReqList.vcReqIncidentNum} +
+ +
+ + + + + + + + + +
+
+
+
+ + +
+ + + + + + + + + + + + + + +
diff --git a/src/main/webapp/WEB-INF/jsp/itms/srm/SvcDeskReqUpdate.jsp b/src/main/webapp/WEB-INF/jsp/itms/srm/SvcDeskReqUpdate.jsp new file mode 100644 index 00000000..67cb5559 --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/itms/srm/SvcDeskReqUpdate.jsp @@ -0,0 +1,481 @@ + + +<% +/** + * @Class Name : SvcDeskReqUpdate.jsp + * @Description : 서비스데스크 인스턴스 신청 변경 화면 + * @Modification Information + * @ + * @ 수정일 수정자 수정내용 + * @ ------- -------- --------------------------- + * @ 2025.12.16 나혁제 최초 생성 + * + * @author URP 인프라본부 나혁제 + * @since 2025.12.16 + * @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" %> + + + 인스던트 신청 수정 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +

서비스신청정보 변경

+ + +
+
+
+ +
+
+
+ +
+ + + + +
+ + + "> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
인스던트 등록
신청번호 신청자 + + + + 조치예정자 검색 + + + + + 신청일시 + + +
서비스 + + 조치예정자 + + + + 조치예정자 검색 + + + + + 완료요청일시 + +
제목 + + + +
+ +
+
+ + +
기본첨부파일 + + + + +
+ + + + +
+ + +
+ +
+ + +
+ + + + +
+ + +
+ + + + + + + + + + + + + + +
+ diff --git a/src/main/webapp/WEB-INF/jsp/itms/srm/SvcDeskUpdate.jsp b/src/main/webapp/WEB-INF/jsp/itms/srm/SvcDeskUpdate.jsp index 42f3c5ac..70b6375a 100644 --- a/src/main/webapp/WEB-INF/jsp/itms/srm/SvcDeskUpdate.jsp +++ b/src/main/webapp/WEB-INF/jsp/itms/srm/SvcDeskUpdate.jsp @@ -105,9 +105,6 @@ $(window).on("load", function() { var strForm = document.getElementById("serviceBody2").value; - - // drawEditor(strForm); - drawEditor("serviceBody", strForm, false); }); @@ -741,9 +738,9 @@ 기존첨부파일 - - - + + + diff --git a/src/main/webapp/WEB-INF/jsp/itms/sys/PrsnlPortletCreateManage2.jsp b/src/main/webapp/WEB-INF/jsp/itms/sys/PrsnlPortletCreateManage2.jsp index 0b980fb0..e43d1155 100644 --- a/src/main/webapp/WEB-INF/jsp/itms/sys/PrsnlPortletCreateManage2.jsp +++ b/src/main/webapp/WEB-INF/jsp/itms/sys/PrsnlPortletCreateManage2.jsp @@ -38,7 +38,21 @@ + + + + + + + + + + + + + + 사용자포틀릿관리2 @@ -273,17 +287,21 @@ vEmptyportl = $('.col-lg-4'); } + + alert(vEmptyportl); + var iChoPort = -1; var objChoPort ; for(var i=0; i 450) { - iChoPort = i+4; + iChoPort = i+10; } else { @@ -296,6 +314,8 @@ } } + alert(iChoPort); + $.ajax({ url :"" , type: "POST" @@ -491,139 +511,138 @@ - <%-- 2025.03.10 나혁제 신디자인 적용 -
- --%>
- -
+ +
+ +

사용자 포틀릿관리

+ + +
+
+
+ +
+
+
+ +
+ + ※포틀릿을 하나도 지정하지 않는 경우 업무게시판, 공지사항 포틀릿은 기본으로 보여집니다. +

+
+ +
+ +

${result2.prsnlKoreanNm}

+
+
+
-

사용자 포틀릿관리

- - -
-
-
- -
-
-
- -
- +
- ※포틀릿을 하나도 지정하지 않는 경우 업무게시판, 공지사항 포틀릿은 기본으로 보여집니다. -

-
- -
- -

${result2.prsnlKoreanNm}

-
-
-
- -
+ + <%-- 라인당 3개 슬롯 --%> + + 0 - - 0 + + - - + 1 +
- 1 -
- - - - -
-
- - - - - - - - - -
+ + + +
+
+ + + + + + + + +
- - - - - -
- - - - -
+
- ${iMaxSeq} - - 9 + +
+ + + + +
- + + + <%-- 라인당 2개 슬롯 --%> + ${iMaxSeq} + + 25 + + + + + 0 + + + - 0 + 1 +
- - + + - 1 -
- - - - -
-
- - - - - - -
+
+
+ + + + + +
-
- - - - - -
- - -
+
+ -
+ +
+ + + +
+
+
+ +
- -
-
-
-
- + +
+
+
+
+ <%-- 2025.03.10 나혁제 신디자인 적용 @@ -640,7 +659,7 @@
--%> -
+ \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/jsp/itms/sys/PrsnlPortletManageDetail.jsp b/src/main/webapp/WEB-INF/jsp/itms/sys/PrsnlPortletManageDetail.jsp index cff02113..18bd9597 100644 --- a/src/main/webapp/WEB-INF/jsp/itms/sys/PrsnlPortletManageDetail.jsp +++ b/src/main/webapp/WEB-INF/jsp/itms/sys/PrsnlPortletManageDetail.jsp @@ -348,6 +348,7 @@
+
+
diff --git a/src/main/webapp/WEB-INF/jsp/itms/sys/PrsnlPortletManageList.jsp b/src/main/webapp/WEB-INF/jsp/itms/sys/PrsnlPortletManageList.jsp index 7100b24a..6db26782 100644 --- a/src/main/webapp/WEB-INF/jsp/itms/sys/PrsnlPortletManageList.jsp +++ b/src/main/webapp/WEB-INF/jsp/itms/sys/PrsnlPortletManageList.jsp @@ -124,6 +124,59 @@ } } + /* ******************************************************** + * 2025.12.08 나혁제 + * 체크박스에 체크된 개인화메뉴 사용상태변경 처리 + ******************************************************** */ + function fn_update_prsnlportlet() + { + var checkField = document.frm.checkField; + var prsnlId = document.frm.prsnlId; + var useAt = document.frm.useAt; + var checkPrsnlIds = ""; + var checkUseAts = ""; + var checkedCount = 0; + + if(checkField) + { + if(checkField.length > 1) + { + for(var i=0; i < checkField.length; i++) + { + if(checkField[i].checked) + { + checkPrsnlIds += ((checkedCount==0? "" : ",") + prsnlId[i].value); + checkUseAts += ((checkedCount==0? "" : ",") + useAt[i].value); + checkedCount++; + } + } + } + else + { + if(checkField.checked) + { + checkPrsnlIds = prsnlId.value; + } + } + } + + if(checkedCount == 0) + { + alert("선택된 메뉴가 없습니다."); + return false; + } + + if(confirm("사용상태 변경을 하시겠습니까?")) + { + document.frm.checkedPrsnlIdForDel.value = checkPrsnlIds; + document.frm.checkUseAts.value = checkUseAts; + + document.frm.action = ""; + document.frm.submit(); + } + } + + /* ******************************************************** * 모두선택 처리 함수 ******************************************************** */ @@ -175,6 +228,7 @@ +
+ + + + + + @@ -300,8 +365,12 @@
-
diff --git a/src/main/webapp/WEB-INF/jsp/main/MainView.jsp b/src/main/webapp/WEB-INF/jsp/main/MainView.jsp index f7f32fa5..98b0e51e 100644 --- a/src/main/webapp/WEB-INF/jsp/main/MainView.jsp +++ b/src/main/webapp/WEB-INF/jsp/main/MainView.jsp @@ -208,7 +208,7 @@
- + 0 @@ -248,7 +248,7 @@ - + 0