diff --git a/src/main/java/com/urpsys/itmsfront/srm/controller/ReportOtherController.java b/src/main/java/com/urpsys/itmsfront/srm/controller/ReportOtherController.java new file mode 100644 index 00000000..f2356898 --- /dev/null +++ b/src/main/java/com/urpsys/itmsfront/srm/controller/ReportOtherController.java @@ -0,0 +1,1092 @@ +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.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; +import org.springframework.web.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.config.EgovMessageSource; +import com.urpsys.basefront.domain.FileVO; +import com.urpsys.basefront.domain.TokenInfo; +import com.urpsys.itmsfront.srm.domain.ReportOtherListVo; +import com.urpsys.itmsfront.srm.domain.ReportOtherVo; + +import lombok.extern.slf4j.Slf4j; + +/** + * 기타 보고서 관련 컨트롤러 클래스 + * @author urp 인프라본부 나혁제 + * @since 2025.10.15 + * @version 1.0 + * @see + * + *
+ * << 개정이력(Modification Information) >>
+ *
+ *  수정일         수정자       수정내용
+ *  ----------   --------   ---------------------------
+ *  2025.10.15   나혁제       최초 생성
+ *
+ * 
+ * + */ + +@Slf4j +@Controller +public class ReportOtherController +{ + /** 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.26 + */ + @RequestMapping("/srm/searchReportOther.do") + public String searchReportOther( @ModelAttribute("searchVO") ReportOtherListVo searchVO + , @RequestParam(value = "inTask", required = false) String inTask + , HttpServletRequest request + , HttpServletResponse response + , ModelMap model ) throws Exception + { + log.info(">>>>>>>>>>>>>>> /srm/searchReportOther.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()); + searchVO.setInTask(inTask); + + if(searchVO.getStatus ()==null || searchVO.getStatus() .equals("")) searchVO.setStatus("0,1,2,3"); + + // Body Setting Start --------------------------------- + bodyMap = ConvertUtils.convertToMapAll(searchVO); + // Body Setting End --------------------------------- + + // RestApi Call Start --------------------------------- + returnMap = restApiCallUtil.RestApiCall(bodyMap, "/srm/searchReportOther.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/searchReportOther.do >>>>>>>>>>>>>>>"); + + return "uritms-tiles2/srm/ReportOtherList"; + } + + /** + * 이슈보고서 상세조회 화면으로 이동한다. + * @author urp 인프라본부 나혁제 + * 작성일 : 2025.02.26 + */ + @RequestMapping(value = "/srm/getReportWithBodyOther.do") + public String getReportWithBodyOther( @ModelAttribute("ReportOtherListVo") ReportOtherListVo reportOtherListVo + , @ModelAttribute("searchVO") ReportOtherListVo searchVO + , HttpServletRequest request + , HttpServletResponse response + , ModelMap model) throws Exception + { + log.info(">>>>>>>>>>>>>>> /srm/getReportWithBodyOther.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); + // 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); + + // RestApi Call 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 + + + log.info("<<<<<<<<<<<<<<< /srm/getReportWithBodyOther.do >>>>>>>>>>>>>>>"); + + return "uritms-tiles2/srm/ReportOtherDetail"; + } + + /** + * 이슈보고서 인쇄 화면으로 이동한다. + * @author urp 인프라본부 나혁제 + * 작성일 : 2025.02.26 + */ + @RequestMapping(value = "/srm/getReportWithBodyOtherPrint.do") + public String getReportWithBodyOtherPrint( @ModelAttribute("ReportOtherListVo") ReportOtherListVo reportOtherListVo + , @ModelAttribute("searchVO") ReportOtherListVo searchVO + , HttpServletRequest request + , HttpServletResponse response + , ModelMap model) throws Exception + { + log.info(">>>>>>>>>>>>>>> /srm/getReportWithBodyOtherPrint.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); + // 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); + + // RestApi Call 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 + + + log.info("<<<<<<<<<<<<<<< /srm/getReportWithBodyOtherPrint.do >>>>>>>>>>>>>>>"); + + return "uritms-popup1/srm/ReportOtherPrintPop"; + } + + /** + * 기타 보고서 등록 화면으로 이동한다. + * @author urp 인프라본부 나혁제 + * 작성일 : 2025.10.15 + */ + @RequestMapping(value = "/srm/insertViewReportOther.do") + public String insertViewReportOther( @ModelAttribute("searchVO") ReportOtherListVo searchVO + , HttpServletRequest request + , HttpServletResponse response + , ModelMap model) throws Exception + { + log.info(">>>>>>>>>>>>>>> /srm/insertViewReportOther.do <<<<<<<<<<<<<<<"); + + // api in/out map 정의 + Map bodyMap = new LinkedHashMap(); + Map returnMap = new LinkedHashMap(); + + // 서비스 정보 추출 + bodyMap.put("inIncidentSeq", CommonUtil.getData(request, "inIncidentSeq")); + + // 보고서 유형 추출 + bodyMap.put("inTask", CommonUtil.getData(request, "inTask")); + + // 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"); + Map resultTaskMap = (Map)returnMap.get("resultTask"); + Map resultIncident = (Map)returnMap.get("resultIncident"); // 인스던트 정보 확인 + + model.addAttribute("resultService" , resultService ); // 서비스 정보 + model.addAttribute("resultTaskMap" , resultTaskMap ); // 작업정보 + model.addAttribute("resultIncident" , resultIncident ); // 인스던트 정보 + model.addAttribute("resultForm" , resultForm ); // 보고서 양식 정보 + + // 인스던트 정보가 없는경우 0 으로 세팅 + if(resultIncident.get("inIncidentSeq") == null) + { + model.addAttribute("inIncidentSeq", 0 ); + } + else + { + model.addAttribute("inIncidentSeq", resultIncident.get("inIncidentSeq")); + } + + 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()); // 접속자명 + + log.info("<<<<<<<<<<<<<<< /srm/insertViewReportOther.do >>>>>>>>>>>>>>>"); + + return "uritms-tiles2/srm/ReportOtherInsert"; + } + + /** + * 기타 보고서 수정 화면으로 이동한다. + * @author urp 인프라본부 나혁제 + * 작성일 : 2025.10.15 + */ + @RequestMapping(value = "/srm/updateViewReportOther.do") + public String updateViewReportOther( @ModelAttribute("ReportOtherListVo") ReportOtherListVo reportOtherListVo + , @ModelAttribute("searchVO") ReportOtherListVo searchVO + , HttpServletRequest request + , HttpServletResponse response + , ModelMap model) throws Exception + { + log.info(">>>>>>>>>>>>>>> /srm/updateViewReportOther.do <<<<<<<<<<<<<<<"); + + // api in/out map 정의 + Map bodyMap = new LinkedHashMap(); + Map returnMap = new LinkedHashMap(); + + int inReportSeq = CommonUtil.zeroConvert(reportOtherListVo.getInReportSeq()); + + // Body Setting Start --------------------------------- + // 보고서 ID + 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 ); // 보고서 양식 정보 + + TokenInfo tokenInfo = CommonUtil.getTokenInfo(); + + model.addAttribute("inRegUser", tokenInfo.getUniqId ()); // 접속자ID + model.addAttribute("vcRegUser", tokenInfo.getUserName()); // 접속자명 + + log.info("<<<<<<<<<<<<<<< /srm/updateViewReportOther.do >>>>>>>>>>>>>>>"); + + return "uritms-tiles2/srm/ReportOtherUpdate"; + } + + /** + * 이슈보고서 등록 처리를 한다. + * @author urp 인프라본부 나혁제 + * 작성일 : 2025.02.26 + */ + @ResponseBody + @RequestMapping(value="/srm/addReportOther.do") + public LinkedHashMap addReportOther( final @ModelAttribute("reportOtherVo") ReportOtherVo reportOtherVo + , final MultipartHttpServletRequest multiRequest + , HttpServletRequest request + , HttpServletResponse response ) throws Exception + { + log.info(">>>>>>>>>>>>>>> /srm/addReportOther.do <<<<<<<<<<<<<<<"); + + // api in/out map 정의 + Map bodyMap = new LinkedHashMap(); + Map returnMap = new LinkedHashMap(); + + // return 처리 + LinkedHashMap resBody = new LinkedHashMap(); // Response Map + + // 양식 암호화처리 + String strBody = reportOtherVo.getTxReportBody(); + String strBodyEnc = CommonUtil.base64encode(strBody); + + log.info("strBody [{}]", strBody); + log.info("strBodyEnc [{}]", strBodyEnc); + + reportOtherVo.setTxReportBody(strBodyEnc); + + // 자산 라인 Setting Start -----------// + String strAssetSeqs = CommonUtil.nvl(request.getParameter("assetSeqs" )); + String strCommentAsset = CommonUtil.nvl(request.getParameter("assetCommnets")); + + log.info("strAssetSeqs [{}]", strAssetSeqs); + log.info("strCommentAsset [{}]", strCommentAsset); + + String srAssetSeqs [] = strAssetSeqs .split(",", -1); + String srCommentAsset[] = strCommentAsset.split(",", -1); + + List> assetList = new ArrayList(); + + if(srAssetSeqs != null && srAssetSeqs.length > 0) + { + int iSeq=0; + for(int i=0; i mapAsset = new LinkedHashMap(); + + mapAsset.put("inAssetSeq" , srAssetSeqs [i] ); + mapAsset.put("txComment" , srCommentAsset[i] ); + + assetList.add(mapAsset); + } + } + // 자산 라인 Setting End -----------// + + // 결재 라인 Setting Start -----------// + String strApprovalsId = CommonUtil.nvl(request.getParameter("approvalsId" )); + String strApprovalsName = CommonUtil.nvl(request.getParameter("approvalsName")); + + log.info("strApprovalsId [{}]", strApprovalsId); + log.info("strApprovalsName [{}]", strApprovalsName); + + String srApprovalsId[] = strApprovalsId.split(","); + String srApprovalsName[] = strApprovalsName.split(","); + + List> approvalsList = new ArrayList(); + + if(srApprovalsId != null && srApprovalsId.length > 0) + { + int iSeq=0; + for(int i=0; i mapApp = new LinkedHashMap(); + + mapApp.put("idx" , iSeq++ ); + mapApp.put("inUserSeq" , srApprovalsId [i] ); + mapApp.put("vcUserName" , srApprovalsName[i] ); + + approvalsList.add(mapApp); + } + } + // 결재 라인 Setting End -----------// + + // 첨부파일 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를 리턴한다. + + reportOtherVo.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 ********************** / + + // 승인요청 정보 Setting Start ****************** / + Map reqApprovalMap = new LinkedHashMap(); + + reqApprovalMap.put("txComment" , CommonUtil.getData(request, "reqTxComment") ); + reqApprovalMap.put("reqApprovalYn" , CommonUtil.getData(request, "reqApprovalYn") ); + reqApprovalMap.put("inUserSeq" , reportOtherVo.getInRegUser() ); + // 승인요청 정보 Setting End ****************** / + + // Body Setting Start --------------------------------- + bodyMap.put("reportVo" , ConvertUtils.convertToMapAll(reportOtherVo)); + bodyMap.put("assetList" , assetList); + bodyMap.put("approvalsList" , approvalsList); + bodyMap.put("fileList" , fileList); + bodyMap.put("reqApprovalMap" , reqApprovalMap); + // Body Setting End --------------------------------- + + // RestApi Call Start --------------------------------- + returnMap = restApiCallUtil.RestApiCall(bodyMap, "/srm/addReportOther.do"); + // RestApi Call End --------------------------------- + + resBody.put("resultCd" , returnMap.get("resultCd") ); + resBody.put("resultMsg" , returnMap.get("resultMsg") ); + + try + { + String strReqApprovalYn = CommonUtil.getData(request, "reqApprovalYn"); + + int inReportSeq = Integer.parseInt((String)returnMap.get("inReportSeq")); + + // 접수처리 메일처리 + if(returnMap.get("resultCd").equals("0")) + { + commonService.sendReportMail(1, 2, inReportSeq); + } + + // 승인요청 메일처리 + if(strReqApprovalYn.equals("Y") && returnMap.get("resultCd").equals("0") ) + { + commonService.sendReportMail(3, 2, inReportSeq); + } + } + catch(Exception e) + { + e.printStackTrace(); + } + + log.info("<<<<<<<<<<<<<<< /srm/addReportOther.do >>>>>>>>>>>>>>>"); + + return resBody; + } + + /** + * 이슈보고서 수정 처리를 한다. + * @author urp 인프라본부 나혁제 + * 작성일 : 2025.02.26 + */ + @ResponseBody + @RequestMapping(value="/srm/updateReportOther.do") + public LinkedHashMap updateReportOther( final @ModelAttribute("reportOtherVo") ReportOtherVo reportOtherVo + , final MultipartHttpServletRequest multiRequest + , HttpServletRequest request + , HttpServletResponse response ) throws Exception + { + log.info(">>>>>>>>>>>>>>> /srm/updateReportOther.do <<<<<<<<<<<<<<<"); + + // api in/out map 정의 + Map bodyMap = new LinkedHashMap(); + Map returnMap = new LinkedHashMap(); + + // return 처리 + LinkedHashMap resBody = new LinkedHashMap(); // Response Map + + // 양식 암호화처리 + String strBody = reportOtherVo.getTxReportBody(); + String strBodyEnc = CommonUtil.base64encode(strBody); + + log.info("strBody [{}]", strBody); + log.info("strBodyEnc [{}]", strBodyEnc); + + reportOtherVo.setTxReportBody(strBodyEnc); + + // 자산 라인 Setting Start -----------// + String strAssetSeqs = CommonUtil.nvl(request.getParameter("assetSeqs" )); + String strCommentAsset = CommonUtil.nvl(request.getParameter("assetCommnets")); + + log.info("strAssetSeqs [{}]", strAssetSeqs); + log.info("strCommentAsset [{}]", strCommentAsset); + + String srAssetSeqs [] = strAssetSeqs .split(",", -1); + String srCommentAsset[] = strCommentAsset.split(",", -1); + + List> assetList = new ArrayList(); + + if(srAssetSeqs != null && srAssetSeqs.length > 0) + { + int iSeq=0; + for(int i=0; i mapAsset = new LinkedHashMap(); + + mapAsset.put("inAssetSeq" , srAssetSeqs [i] ); + mapAsset.put("txComment" , srCommentAsset[i] ); + + assetList.add(mapAsset); + } + } + // 자산 라인 Setting End -----------// + + // 결재 라인 Setting Start -----------// + String strApprovalsId = CommonUtil.nvl(request.getParameter("approvalsId" )); + String strApprovalsName = CommonUtil.nvl(request.getParameter("approvalsName")); + + log.info("strApprovalsId [{}]", strApprovalsId); + log.info("strApprovalsName [{}]", strApprovalsName); + + String srApprovalsId[] = strApprovalsId.split(","); + String srApprovalsName[] = strApprovalsName.split(","); + + List> approvalsList = new ArrayList(); + + if(srApprovalsId != null && srApprovalsId.length > 0) + { + int iSeq=0; + for(int i=0; i mapApp = new LinkedHashMap(); + + mapApp.put("idx" , iSeq++ ); + mapApp.put("inUserSeq" , srApprovalsId [i] ); + mapApp.put("vcUserName" , srApprovalsName[i] ); + + approvalsList.add(mapApp); + } + } + // 결재 라인 Setting End -----------// + + // 첨부파일 Setting Start ********************** / + // 첨부파일 관련 첨부파일ID 생성 + String _atchFileId = reportOtherVo.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(); + + reportOtherVo.setAtchFileId(_atchFileId); + reportOtherVo.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, ""); + reportOtherVo.setAtchFileInUpGb("U"); // 기존자료변경 + } + + // 파일저장 정보 세팅 + for(FileVO inMap : _result) + { + Map fileMap = ConvertUtils.convertToMap(inMap); + fileList.add(fileMap); + } + } + // 첨부파일 Setting End ********************** / + + // 승인요청 정보 Setting Start ****************** / + Map reqApprovalMap = new LinkedHashMap(); + + reqApprovalMap.put("txComment" , CommonUtil.getData(request, "reqTxComment" ) ); + reqApprovalMap.put("reqApprovalYn" , CommonUtil.getData(request, "reqApprovalYn") ); + reqApprovalMap.put("inReportSeq" , reportOtherVo.getInReportSeq() ); + reqApprovalMap.put("inUserSeq" , reportOtherVo.getInRegUser() ); + // 승인요청 정보 Setting End ****************** / + + // Body Setting Start --------------------------------- + bodyMap.put("reportVo" , ConvertUtils.convertToMapAll(reportOtherVo)); + bodyMap.put("assetList" , assetList); + bodyMap.put("approvalsList" , approvalsList); + bodyMap.put("fileList" , fileList); + bodyMap.put("reqApprovalMap" , reqApprovalMap); + // Body Setting End --------------------------------- + + // RestApi Call Start --------------------------------- + returnMap = restApiCallUtil.RestApiCall(bodyMap, "/srm/updateReportOther.do"); + // RestApi Call End --------------------------------- + + resBody.put("resultCd" , returnMap.get("resultCd") ); + resBody.put("resultMsg" , returnMap.get("resultMsg") ); + + try + { + // 메일/카톡 처리 + String strReqApprovalYn = CommonUtil.getData(request, "reqApprovalYn"); + + // 접수처리 메일처리 + if(returnMap.get("resultCd").equals("0")) + { + commonService.sendReportMail(2, 2, CommonUtil.zeroConvert(reportOtherVo.getInReportSeq()) ); + } + + // 승인요청 메일처리 + if(strReqApprovalYn.equals("Y") && returnMap.get("resultCd").equals("0") ) + { + commonService.sendReportMail(3, 2, CommonUtil.zeroConvert(reportOtherVo.getInReportSeq()) ); + } + } + catch(Exception e) + { + e.printStackTrace(); + } + + log.info("<<<<<<<<<<<<<<< /srm/updateReportOther.do >>>>>>>>>>>>>>>"); + + return resBody; + } + + /** + * 이슈보고서 삭제 처리를 한다. + * @author urp 인프라본부 나혁제 + * 작성일 : 2025.02.26 + */ + @ResponseBody + @RequestMapping(value="/srm/deleteReportOther.do") + public LinkedHashMap deleteReportOther( final @ModelAttribute("reportOtherVo") ReportOtherVo reportOtherVo + , HttpServletRequest request + , HttpServletResponse response ) throws Exception + { + log.info(">>>>>>>>>>>>>>> /srm/deleteReportOther.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("reportVo" , ConvertUtils.convertToMapAll(reportOtherVo)); + // Body Setting End --------------------------------- + + // RestApi Call Start --------------------------------- + returnMap = restApiCallUtil.RestApiCall(bodyMap, "/srm/deleteReportOther.do"); + // RestApi Call End --------------------------------- + + resBody.put("resultCd" , returnMap.get("resultCd") ); + resBody.put("resultMsg" , returnMap.get("resultMsg") ); + + log.info("<<<<<<<<<<<<<<< /srm/deleteReportOther.do >>>>>>>>>>>>>>>"); + + return resBody; + } + + /** + * 이슈보고서 승인요청 처리를 한다. + * @author urp 인프라본부 나혁제 + * 작성일 : 2025.02.26 + */ + @ResponseBody + @RequestMapping(value="/srm/procApprovalReportOther.do") + public LinkedHashMap procApprovalReportOther( HttpServletRequest request + , HttpServletResponse response ) throws Exception + { + log.info(">>>>>>>>>>>>>>> /srm/procApprovalReportOther.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("txComment" , CommonUtil.getData(request, "reqAppRejTxComment") ); + bodyMap.put("inReportSeq" , CommonUtil.getData(request, "inReportSeq" ) ); + bodyMap.put("inUserSeq" , tokenInfo.getUniqId() ); + // Body Setting End --------------------------------- + + // RestApi Call Start --------------------------------- + returnMap = restApiCallUtil.RestApiCall(bodyMap, "/srm/procApprovalReportOther.do"); + // RestApi Call End --------------------------------- + + resBody.put("resultCd" , returnMap.get("resultCd") ); + resBody.put("resultMsg" , returnMap.get("resultMsg") ); + + try + { + // 접수처리 메일처리 + if(returnMap.get("resultCd").equals("0")) + { + commonService.sendReportMail(3, 2, CommonUtil.zeroConvert(CommonUtil.getData(request, "inReportSeq"))); + } + } + catch(Exception e) + { + e.printStackTrace(); + } + + log.info("<<<<<<<<<<<<<<< /srm/procApprovalReportOther.do >>>>>>>>>>>>>>>"); + + return resBody; + } + + /** + * 이슈보고서 승인 처리를 한다. + * @author urp 인프라본부 나혁제 + * 작성일 : 2025.02.26 + */ + @ResponseBody + @RequestMapping(value="/srm/approvalReportOther.do") + public LinkedHashMap approvalReportOther( HttpServletRequest request + , HttpServletResponse response ) throws Exception + { + log.info(">>>>>>>>>>>>>>> /srm/approvalReportOther.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("txComment" , CommonUtil.getData(request, "reqAppRejTxComment") ); + bodyMap.put("inReportSeq" , CommonUtil.getData(request, "inReportSeq" ) ); + bodyMap.put("inUserSeq" , tokenInfo.getUniqId() ); + // Body Setting End --------------------------------- + + // RestApi Call Start --------------------------------- + returnMap = restApiCallUtil.RestApiCall(bodyMap, "/srm/procApprovalOther.do"); + // RestApi Call End --------------------------------- + + resBody.put("resultCd" , returnMap.get("resultCd") ); + resBody.put("resultMsg" , returnMap.get("resultMsg") ); + + try + { + String strInIcidentSeq = CommonUtil.getData(request, "inReportSeq"); + + log.info("inReportStatus : [{}] ", returnMap.get("resultInReportStatus")); + + // + if(returnMap.get("resultCd").equals("0")) + { + // 승인완료 + if(CommonUtil.zeroConvert( returnMap.get("resultInReportStatus")) == 3) + { + commonService.sendReportMail(4, 2, CommonUtil.zeroConvert(strInIcidentSeq) ); + } + // 다음승인 + else if( CommonUtil.zeroConvert( returnMap.get("resultInReportStatus")) == 1) + { + commonService.sendReportMail(3, 2, CommonUtil.zeroConvert(strInIcidentSeq) ); + } + } + } + catch(Exception e) + { + e.printStackTrace(); + } + + log.info("<<<<<<<<<<<<<<< /srm/approvalReportOther.do >>>>>>>>>>>>>>>"); + + return resBody; + } + + /** + * 이슈보고서 반려 처리를 한다. + * @author urp 인프라본부 나혁제 + * 작성일 : 2025.02.26 + */ + @ResponseBody + @RequestMapping(value="/srm/rejectReportOther.do") + public LinkedHashMap rejectReportOther( HttpServletRequest request + , HttpServletResponse response ) throws Exception + { + log.info(">>>>>>>>>>>>>>> /srm/rejectReportOther.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("txComment" , CommonUtil.getData(request, "reqAppRejTxComment") ); + bodyMap.put("inReportSeq" , CommonUtil.getData(request, "inReportSeq" ) ); + bodyMap.put("inUserSeq" , tokenInfo.getUniqId() ); + // Body Setting End --------------------------------- + + // RestApi Call Start --------------------------------- + returnMap = restApiCallUtil.RestApiCall(bodyMap, "/srm/rejectReportOther.do"); + // RestApi Call End --------------------------------- + + resBody.put("resultCd" , returnMap.get("resultCd") ); + resBody.put("resultMsg" , returnMap.get("resultMsg") ); + + // 메일/카톡 처리 + try + { + String strInReportSeq = CommonUtil.getData(request, "inReportSeq"); + + // + if(returnMap.get("resultCd").equals("0")) + { + commonService.sendReportMail(5, 2, CommonUtil.zeroConvert(strInReportSeq) ); + } + } + catch(Exception e) + { + e.printStackTrace(); + } + + + log.info("<<<<<<<<<<<<<<< /srm/rejectReportOther.do >>>>>>>>>>>>>>>"); + + return resBody; + } + + /** + * 서비스 정보 결재라인 조회 + * @author urp 인프라본부 나혁제 + * 작성일 : 2025.02.26 + */ + @ResponseBody + @RequestMapping(value = "/srm/getSvcApprovalListOther.do") + public LinkedHashMap getSvcApprovalListOther( @RequestBody LinkedHashMap requestMap + , HttpServletRequest request + , HttpServletResponse response ) throws Exception + { + log.info(">>>>>>>>>>>>>>> /srm/getSvcApprovalListOther.do <<<<<<<<<<<<<<<"); + + // api in/out map 정의 + Map bodyMap = new LinkedHashMap(); + Map returnMap = new LinkedHashMap(); + + // return 처리 + LinkedHashMap resBody = new LinkedHashMap(); // Response Map + + //** 서비스 상세조회 Start -------------------- // + // Body Setting Start --------------------------------- + bodyMap = requestMap; ; + // Body Setting End --------------------------------- + + // RestApi Call Start --------------------------------- + returnMap = restApiCallUtil.RestApiCall(bodyMap, "/srm/getSvcApprovalListOther.do"); + // RestApi Call End --------------------------------- + + // 결과값 추출 Start --------------------------------- + List> resultApprovals = (List>)returnMap.get("resultList"); + // RestApi Call End --------------------------------- + //** 서비스 상세조회 End -------------------- // + + resBody.put("resultApprovals" , resultApprovals ); + + log.info("<<<<<<<<<<<<<<< /srm/getSvcApprovalListOther.do >>>>>>>>>>>>>>>"); + + return resBody; + } + + /** + * 보고서 양식 조회 + * @author urp 인프라본부 나혁제 + * 작성일 : 2025.02.26 + */ + @ResponseBody + @RequestMapping(value = "/srm/getReportFormOther.do") + public LinkedHashMap getReportFormOther( @RequestBody LinkedHashMap requestMap + , HttpServletRequest request + , HttpServletResponse response ) throws Exception + { + log.info(">>>>>>>>>>>>>>> /srm/getReportFormOther.do <<<<<<<<<<<<<<<"); + + // api in/out map 정의 + Map bodyMap = new LinkedHashMap(); + Map returnMap = new LinkedHashMap(); + + // return 처리 + LinkedHashMap resBody = new LinkedHashMap(); // Response Map + + // Body Setting Start --------------------------------- + bodyMap = requestMap; + // Body Setting End --------------------------------- + + // RestApi Call Start --------------------------------- + returnMap = restApiCallUtil.RestApiCall(bodyMap, "/srm/getReportFormOther.do"); + // RestApi Call End --------------------------------- + + // 2025.05.21 나혁제 작업자 정보 추가 + // 결과값 추출 Start --------------------------------- + Map resultMap = (Map)returnMap.get("resultMap"); + // RestApi Call End --------------------------------- + + // 양식 복호화처리 + // String strTxDefaultFormDec = CommonUtil.base64decode(resultStr); + String strTxDefaultFormDec = CommonUtil.base64decode((String)resultMap.get("txReportForm")); + String strInTaskUser = (String)resultMap.get("inTaskUser"); + String strVcTaskUser = (String)resultMap.get("vcTaskUser"); + + resBody.put("strTxDefaultFormDec" , strTxDefaultFormDec ); + resBody.put("strInTaskUser" , strInTaskUser ); + resBody.put("strVcTaskUser" , strVcTaskUser ); + + /* + // RestApi Call Start --------------------------------- + returnMap = restApiCallUtil.RestApiCall(bodyMap, "/srm/getReportFormOther.do"); + // RestApi Call End --------------------------------- + + // 결과값 추출 Start --------------------------------- + String resultStr = (String)returnMap.get("resultStr"); + // RestApi Call End --------------------------------- + + // 양식 복호화처리 + String strTxDefaultFormDec = CommonUtil.base64decode(resultStr); + + resBody.put("strTxDefaultFormDec" , strTxDefaultFormDec ); + */ + + log.info("<<<<<<<<<<<<<<< /srm/getReportFormOther.do >>>>>>>>>>>>>>>"); + + return resBody; + } + + + + + + + + +} diff --git a/src/main/java/com/urpsys/itmsfront/srm/domain/ReportIssueListVo.java b/src/main/java/com/urpsys/itmsfront/srm/domain/ReportIssueListVo.java index a44b707c..71418278 100644 --- a/src/main/java/com/urpsys/itmsfront/srm/domain/ReportIssueListVo.java +++ b/src/main/java/com/urpsys/itmsfront/srm/domain/ReportIssueListVo.java @@ -3,7 +3,7 @@ package com.urpsys.itmsfront.srm.domain; import com.urpsys.basefront.domain.ComDefaultVO; /** - * 점검보고서 조회조건 model 클래스를 정의한다. + * 이슈 보고서 조회조건 model 클래스를 정의한다. * @author urp 인프라본부 나혁제 * @since 2025.02.26 * @version 1.0 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 9fd8e8d7..783800fc 100644 --- a/src/main/java/com/urpsys/itmsfront/srm/domain/ReportIssueVo.java +++ b/src/main/java/com/urpsys/itmsfront/srm/domain/ReportIssueVo.java @@ -2,7 +2,7 @@ package com.urpsys.itmsfront.srm.domain; /** - * 이슈보고서 등록 model 클래스를 정의한다. + * 이슈 보고서 등록 model 클래스를 정의한다. * @author urp 인프라본부 나혁제 * @since 2025.02.26 * @version 1.0 diff --git a/src/main/java/com/urpsys/itmsfront/srm/domain/ReportOtherListVo.java b/src/main/java/com/urpsys/itmsfront/srm/domain/ReportOtherListVo.java new file mode 100644 index 00000000..8985ad7d --- /dev/null +++ b/src/main/java/com/urpsys/itmsfront/srm/domain/ReportOtherListVo.java @@ -0,0 +1,81 @@ +package com.urpsys.itmsfront.srm.domain; + +import com.urpsys.basefront.domain.ComDefaultVO; + +/** + * 기타 보고서 조회조건 model 클래스를 정의한다. + * @author urp 인프라본부 나혁제 + * @since 2025.10.15 + * @version 1.0 + * @see + * + *
+ * << 개정이력(Modification Information) >>
+ *   
+ *   수정일         수정자           수정내용
+ *  -------      --------    ---------------------------
+ *   2025.10.15   나혁제        최초 생성
+ *
+ * 
+ */ + +public class ReportOtherListVo extends ComDefaultVO +{ + private String status ; + private String reportId ; + private String incidentNum ; + private String regUser ; + private String reportTitle ; + private String inReportSeq ; + private String inTask ; + + + public String getStatus() { + return status; + } + public void setStatus(String status) { + this.status = status; + } + public String getReportId() { + return reportId; + } + public void setReportId(String reportId) { + this.reportId = reportId; + } + public String getIncidentNum() { + return incidentNum; + } + public void setIncidentNum(String incidentNum) { + this.incidentNum = incidentNum; + } + public String getRegUser() { + return regUser; + } + public void setRegUser(String regUser) { + this.regUser = regUser; + } + public String getReportTitle() { + return reportTitle; + } + public void setReportTitle(String reportTitle) { + this.reportTitle = reportTitle; + } + public String getInReportSeq() { + return inReportSeq; + } + public void setInReportSeq(String inReportSeq) { + this.inReportSeq = inReportSeq; + } + public String getInTask() { + return inTask; + } + public void setInTask(String inTask) { + this.inTask = inTask; + } + + + + + + +} \ No newline at end of file diff --git a/src/main/java/com/urpsys/itmsfront/srm/domain/ReportOtherVo.java b/src/main/java/com/urpsys/itmsfront/srm/domain/ReportOtherVo.java new file mode 100644 index 00000000..dcdd86bc --- /dev/null +++ b/src/main/java/com/urpsys/itmsfront/srm/domain/ReportOtherVo.java @@ -0,0 +1,248 @@ +package com.urpsys.itmsfront.srm.domain; + +/** + * 기타 보고서 등록 model 클래스를 정의한다. + * @author urp 인프라본부 나혁제 + * @since 2025.10.15 + * @version 1.0 + * @see + * + *
+ * << 개정이력(Modification Information) >>
+ *   
+ *   수정일         수정자           수정내용
+ *  -------      --------    ---------------------------
+ *   2025.10.15   나혁제        최초 생성
+ *
+ * 
+ */ + +public class ReportOtherVo +{ + private String inReportSeq ; + private String inReportStatus ; + private String vcReportId ; + private String inIncidentSeq ; + private String vcIncidentNum ; + private String inServiceCode ; + private String vcServiceName ; + private String dtStartDatetime ; + private String dtFinishDatetime ; + private String inTaskUser ; + private String vcTaskUser ; + private String inRegUser ; + private String vcRegUser ; + private String dtLastUpdate ; + private String inTask ; + private String inDowntime ; + private String dtDownstartDatetime ; + private String dtDownfinishDatetime ; + private String vcReportTitle ; + private String vcReportStatus ; + private String txReportBody ; + private String vcTask ; + private String inReqApprovalUser ; + private String vcReqApprovalUser ; + private String dtReqApprovalDatetime ; + private String txReqApprovalComment ; + private String vcTaskCompany ; + private String inAssetCount ; + private String inPercallPrice ; + private String atchFileId ; + private String atchFileInUpGb ; + + public String getInReportSeq() { + return inReportSeq; + } + public void setInReportSeq(String inReportSeq) { + this.inReportSeq = inReportSeq; + } + public String getInReportStatus() { + return inReportStatus; + } + public void setInReportStatus(String inReportStatus) { + this.inReportStatus = inReportStatus; + } + public String getVcReportId() { + return vcReportId; + } + public void setVcReportId(String vcReportId) { + this.vcReportId = vcReportId; + } + public String getInIncidentSeq() { + return inIncidentSeq; + } + public void setInIncidentSeq(String inIncidentSeq) { + this.inIncidentSeq = inIncidentSeq; + } + public String getVcIncidentNum() { + return vcIncidentNum; + } + public void setVcIncidentNum(String vcIncidentNum) { + this.vcIncidentNum = vcIncidentNum; + } + public String getInServiceCode() { + return inServiceCode; + } + public void setInServiceCode(String inServiceCode) { + this.inServiceCode = inServiceCode; + } + public String getVcServiceName() { + return vcServiceName; + } + public void setVcServiceName(String vcServiceName) { + this.vcServiceName = vcServiceName; + } + public String getDtStartDatetime() { + return dtStartDatetime; + } + public void setDtStartDatetime(String dtStartDatetime) { + this.dtStartDatetime = dtStartDatetime; + } + public String getDtFinishDatetime() { + return dtFinishDatetime; + } + public void setDtFinishDatetime(String dtFinishDatetime) { + this.dtFinishDatetime = dtFinishDatetime; + } + public String getInTaskUser() { + return inTaskUser; + } + public void setInTaskUser(String inTaskUser) { + this.inTaskUser = inTaskUser; + } + public String getVcTaskUser() { + return vcTaskUser; + } + public void setVcTaskUser(String vcTaskUser) { + this.vcTaskUser = vcTaskUser; + } + public String getInRegUser() { + return inRegUser; + } + public void setInRegUser(String inRegUser) { + this.inRegUser = inRegUser; + } + public String getVcRegUser() { + return vcRegUser; + } + public void setVcRegUser(String vcRegUser) { + this.vcRegUser = vcRegUser; + } + public String getDtLastUpdate() { + return dtLastUpdate; + } + public void setDtLastUpdate(String dtLastUpdate) { + this.dtLastUpdate = dtLastUpdate; + } + public String getInTask() { + return inTask; + } + public void setInTask(String inTask) { + this.inTask = inTask; + } + public String getInDowntime() { + return inDowntime; + } + public void setInDowntime(String inDowntime) { + this.inDowntime = inDowntime; + } + public String getDtDownstartDatetime() { + return dtDownstartDatetime; + } + public void setDtDownstartDatetime(String dtDownstartDatetime) { + this.dtDownstartDatetime = dtDownstartDatetime; + } + public String getDtDownfinishDatetime() { + return dtDownfinishDatetime; + } + public void setDtDownfinishDatetime(String dtDownfinishDatetime) { + this.dtDownfinishDatetime = dtDownfinishDatetime; + } + public String getVcReportTitle() { + return vcReportTitle; + } + public void setVcReportTitle(String vcReportTitle) { + this.vcReportTitle = vcReportTitle; + } + public String getVcReportStatus() { + return vcReportStatus; + } + public void setVcReportStatus(String vcReportStatus) { + this.vcReportStatus = vcReportStatus; + } + public String getTxReportBody() { + return txReportBody; + } + public void setTxReportBody(String txReportBody) { + this.txReportBody = txReportBody; + } + public String getVcTask() { + return vcTask; + } + public void setVcTask(String vcTask) { + this.vcTask = vcTask; + } + public String getInReqApprovalUser() { + return inReqApprovalUser; + } + public void setInReqApprovalUser(String inReqApprovalUser) { + this.inReqApprovalUser = inReqApprovalUser; + } + public String getVcReqApprovalUser() { + return vcReqApprovalUser; + } + public void setVcReqApprovalUser(String vcReqApprovalUser) { + this.vcReqApprovalUser = vcReqApprovalUser; + } + public String getDtReqApprovalDatetime() { + return dtReqApprovalDatetime; + } + public void setDtReqApprovalDatetime(String dtReqApprovalDatetime) { + this.dtReqApprovalDatetime = dtReqApprovalDatetime; + } + public String getTxReqApprovalComment() { + return txReqApprovalComment; + } + public void setTxReqApprovalComment(String txReqApprovalComment) { + this.txReqApprovalComment = txReqApprovalComment; + } + public String getVcTaskCompany() { + return vcTaskCompany; + } + public void setVcTaskCompany(String vcTaskCompany) { + this.vcTaskCompany = vcTaskCompany; + } + public String getInAssetCount() { + return inAssetCount; + } + public void setInAssetCount(String inAssetCount) { + this.inAssetCount = inAssetCount; + } + public String getInPercallPrice() { + return inPercallPrice; + } + public void setInPercallPrice(String inPercallPrice) { + this.inPercallPrice = inPercallPrice; + } + public String getAtchFileId() { + return atchFileId; + } + public void setAtchFileId(String atchFileId) { + this.atchFileId = atchFileId; + } + public String getAtchFileInUpGb() { + return atchFileInUpGb; + } + public void setAtchFileInUpGb(String atchFileInUpGb) { + this.atchFileInUpGb = atchFileInUpGb; + } + + + + + + + + +} \ No newline at end of file diff --git a/src/main/resources/validator/urp/ItsmValidator.xml b/src/main/resources/validator/urp/ItsmValidator.xml index 349e7a7e..85ebd3c0 100644 --- a/src/main/resources/validator/urp/ItsmValidator.xml +++ b/src/main/resources/validator/urp/ItsmValidator.xml @@ -94,6 +94,15 @@ + +
+ + + + + +
+ diff --git a/src/main/webapp/WEB-INF/jsp/itms/rem/ResourceList.jsp b/src/main/webapp/WEB-INF/jsp/itms/rem/ResourceList.jsp index 1c1d4e2a..3e2321e4 100644 --- a/src/main/webapp/WEB-INF/jsp/itms/rem/ResourceList.jsp +++ b/src/main/webapp/WEB-INF/jsp/itms/rem/ResourceList.jsp @@ -204,6 +204,10 @@ var option = $(""); $('#inCate2').append(option); } + + // 2025.09.25 나혁제 소분류 초기화 + selAssetCate2List(); + }, error: function(errorThrown) { @@ -213,7 +217,7 @@ }); } , - // 자산중분류 조회 처리 + // 자산소분류 조회 처리 fn_get_assetCate3 : function (inData) { $.ajax({ diff --git a/src/main/webapp/WEB-INF/jsp/itms/rem/ResourceListPopup.jsp b/src/main/webapp/WEB-INF/jsp/itms/rem/ResourceListPopup.jsp index e58dc406..e17953a6 100644 --- a/src/main/webapp/WEB-INF/jsp/itms/rem/ResourceListPopup.jsp +++ b/src/main/webapp/WEB-INF/jsp/itms/rem/ResourceListPopup.jsp @@ -237,6 +237,9 @@ var option = $(""); $('#inCate2').append(option); } + + // 2025.09.25 나혁제 소분류 초기화 + selAssetCate2List(); }, error: function(errorThrown) { @@ -314,7 +317,7 @@ --> - + diff --git a/src/main/webapp/WEB-INF/jsp/itms/rem/ResourceMultiList.jsp b/src/main/webapp/WEB-INF/jsp/itms/rem/ResourceMultiList.jsp index 12ae1a69..4bb35263 100644 --- a/src/main/webapp/WEB-INF/jsp/itms/rem/ResourceMultiList.jsp +++ b/src/main/webapp/WEB-INF/jsp/itms/rem/ResourceMultiList.jsp @@ -506,8 +506,7 @@ // 도입가격 if(inPrice != '' && isNaN(inPrice) != false) { - alert(inPrice); - strErrCd = 'E'; + strErrCd = 'E'; strErrMsg = strErrMsg+'|'+'도입가격은 숫자만 입력해 주세요.'; } diff --git a/src/main/webapp/WEB-INF/jsp/itms/srm/ReportOtherDetail.jsp b/src/main/webapp/WEB-INF/jsp/itms/srm/ReportOtherDetail.jsp new file mode 100644 index 00000000..7e372bd0 --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/itms/srm/ReportOtherDetail.jsp @@ -0,0 +1,683 @@ + + +<% +/** + * @Class Name : ReportOtherDetail.jsp + * @Description : 기타보고서 상세조회 화면 + * @Modification Information + * @ + * @ 수정일 수정자 수정내용 + * @ ------- -------- --------------------------- + * @ 2025.10.16 나혁제 최초 생성 + * + * @author urp 인프라본부 나혁제 + * @since 2025.10.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" %> + + + 기타보고서 상세조회 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +

${resultReport.vcTask} 상세조회

+ + +
+
+
+ +
+
+
+ +
+ + + + +
+ + + "> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <%-- 2025.09.01 나혁제 불필요한 항목 사젝 --%> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
기타보고서 등록
보고서ID ${resultReport.vcReportId} 서비스 + ${resultReport.vcServiceName} + 작성자 + ${resultReport.vcRegUser} +
인스던트 접수번호 + ${incidentId} + 작업분류 + ${resultReport.vcTask} + 작업자 + ${resultReport.vcTaskUser} +
서비스다운 + ${resultReport.dtDownstartDatetime}~${resultReport.dtDownfinishDatetime} + 시작일시 + ${resultReport.dtStartDatetime} + 종료일시 + ${resultReport.dtFinishDatetime} +
제목 + ${resultReport.vcReportTitle} +
서비스 결재 라인 +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
결재라인
결재자상태Comment결재시간
${resultReport.vcReqApprovalUser }승인요청${resultReport.txReqApprovalComment }${resultReport.dtReqApprovalDatetime }
+
+ +
+ + + +
자산 + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
연결자산정보
소분류자산명비고
+
+ +
+ + + + +
+ + +
+ +
+ + +
+ + + +
+ + + + + + + + + + + + + + + + +
+
+ + +
+ + + + + + + + + + + + + + + + + + + +
+ diff --git a/src/main/webapp/WEB-INF/jsp/itms/srm/ReportOtherInsert.jsp b/src/main/webapp/WEB-INF/jsp/itms/srm/ReportOtherInsert.jsp new file mode 100644 index 00000000..92713955 --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/itms/srm/ReportOtherInsert.jsp @@ -0,0 +1,910 @@ + + +<% +/** + * @Class Name : ReportOtherInsert.jsp + * @Description : 기타보고서 등록화면 + * @Modification Information + * @ + * @ 수정일 수정자 수정내용 + * @ ------- -------- --------------------------- + * @ 2025.10.15 나혁제 최초 생성 + * + * @author urp 인프라본부 나혁제 + * @since 2025.10.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" %> + + + ${resultTaskMap.label} 등록 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +

${resultTaskMap.label} 등록

+ + +
+
+
+ +
+
+
+ +
+ + + + +
+ + + "> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <%-- 2025.09.01 나혁제 불필요한 항목 삭제 --%> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
기타보고서 등록
보고서ID 서비스 + + 작성자 + + + +
인스던트 접수번호 ${resultIncident.vcIncidentNum} 작업분류 + + + + 작업자 + + + + 작업자 검색 + + + + +
서비스다운 + + ~ + 시작일시 + + + 종료일시 + + +
제목 + + 보고서양식 + +
서비스 결재 라인 + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + <%-- + + + + + + + + + + + + + + + + + + + --%> + + +
결재라인
결재자상태Comment
+ + 결재자1결재자2결재자3
+ + 결재자1결재자2결재자3
+
+ +
+ +
+ +
+
+ + +
자산 + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + + + +
연결자산정보
소분류자산명비고
+
+ +
+ + + +
+ + +
+ +
+ + +
+ + +
+ + +
+
+ + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ diff --git a/src/main/webapp/WEB-INF/jsp/itms/srm/ReportOtherList.jsp b/src/main/webapp/WEB-INF/jsp/itms/srm/ReportOtherList.jsp new file mode 100644 index 00000000..12edc9c6 --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/itms/srm/ReportOtherList.jsp @@ -0,0 +1,258 @@ + + +<% + /** + * @Class Name : ReportOtherList.java + * @Description : 기타 보고서 목록 화면 + * @Modification Information + * @ + * @ 수정일 수정자 수정내용 + * @ ------- -------- --------------------------- + * @ 2025.10.15 나혁제 최초 생성 + * + * @author urp 인프라본부 나혁제 + * @since 2025.10.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" %> + + + +기타보고서 정보 + + + + + + + + + + + + +
+ + + + +
+ + + + + + + + + + + + + + + + + +
+ + + + +
+ + " > +         + + " > +         + + " > +         + + " > +
+
+ +
+
+ + + + + +
+ + + "> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
기타 보고서 관리
문서번호요청번호서비스승인상태제목작성자등록일시
${reportList.vcReportId} +
+ +
+ + + + + + + + + + +
+
+
+
+
+ + +
+ + + + + + + + + + + + + +
diff --git a/src/main/webapp/WEB-INF/jsp/itms/srm/ReportOtherPrintPop.jsp b/src/main/webapp/WEB-INF/jsp/itms/srm/ReportOtherPrintPop.jsp new file mode 100644 index 00000000..b72bea36 --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/itms/srm/ReportOtherPrintPop.jsp @@ -0,0 +1,392 @@ + + +<% +/** + * @Class Name : ReportOtherPrint.jsp + * @Description : 기타보고서 인쇄 화면 + * @Modification Information + * @ + * @ 수정일 수정자 수정내용 + * @ ------- -------- --------------------------- + * @ 2025.10.16 나혁제 최초 생성 + * + * @author urp 인프라본부 나혁제 + * @since 2025.10.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" %> + + + 기타보고서 인쇄 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + "> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <%-- 2025.09.01 나혁제 삭제항목 --%> + <%-- + + + --%> + + + + + + + + + + + + +
기타보고서 등록
보고서ID ${resultReport.vcReportId} 서비스 + ${resultReport.vcServiceName} + 작성자 + ${resultReport.vcRegUser} +
인스던트 접수번호 + ${incidentId} + 작업분류 + ${resultReport.vcTask} + 작업자 + ${resultReport.vcTaskUser} +
자산 + ${fn:length(resultAssets) } + 서비스다운 + ${resultReport.dtDownstartDatetime}~${resultReport.dtDownfinishDatetime} + 서비스다운 + ${resultReport.dtDownstartDatetime}~${resultReport.dtDownfinishDatetime} +
제목 + ${resultReport.vcReportTitle} +
+ + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
연결자산정보
업무명 ${assets.vcTaskNm}호스트명 ${assets.vcHost}
제품영 ${assets.vcModel} 제품번호 ${assets.vcAssetSerial}
제품버전 ${assets.vcVersion}IP 주소 ${assets.vcIp}
라이센스 만료일자 ${assets.dtLicenseEnd}EOS 일자 ${assets.dtEos}
+
+
+
+ + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
연결자산정보
소분류자산명비고
+
+
+ + + + + + + + +
+ + + + + + + + + + + + + + + + + +
연결자산정보
첨부파일
+ + + +
+
+ + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
결재라인
결재자상태Comment결재시간
${resultReport.vcReqApprovalUser }승인요청${resultReport.txReqApprovalComment }${resultReport.dtReqApprovalDatetime }
+
+ + +
+ + +
+ diff --git a/src/main/webapp/WEB-INF/jsp/itms/srm/ReportOtherUpdate.jsp b/src/main/webapp/WEB-INF/jsp/itms/srm/ReportOtherUpdate.jsp new file mode 100644 index 00000000..ff4b394c --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/itms/srm/ReportOtherUpdate.jsp @@ -0,0 +1,906 @@ + + +<% +/** + * @Class Name : ReportOtherUpdate.jsp + * @Description : 기타보고서 수정화면 + * @Modification Information + * @ + * @ 수정일 수정자 수정내용 + * @ ------- -------- --------------------------- + * @ 2025.10.15 나혁제 최초 생성 + * + * @author urp 인프라본부 나혁제 + * @since 2025.10.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" %> + + + 기타보고서 수정 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +

${resultReport.vcTask} 수정

+ + +
+
+
+ +
+
+
+ +
+ + + + +
+ + + "> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <%-- 2025.09.01 나혁제 불필요한 항목 사젝 --%> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
기타보고서 등록
보고서ID ${resultReport.vcReportId} 서비스 + + 작성자 + + + +
인스던트 접수번호 ${incidentId} 작업분류 + + + + 작업자 + + + + 작업자 검색 + + + + +
서비스다운 + + ~ + 시작일시 + + + 종료일시 + + +
제목 + + 보고서양식 + +
서비스 결재 라인 + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
결재라인
결재자상태Comment
+ +
+
+ +
+ +
+ +
+
+ + +
+ + + + +
자산 + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + <%-- 2025.05.12 나혁제 오류 수정 + + --%> + + + + + + + +
연결자산정보
소분류자산명비고
+ + + +
+
+ +
+ + + + +
+ + +
+ +
+ + +
+ + +
+ + + + + + +
+
+ + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ 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 1d963e32..a8c881c5 100644 --- a/src/main/webapp/WEB-INF/jsp/itms/srm/SvcDeskInsert.jsp +++ b/src/main/webapp/WEB-INF/jsp/itms/srm/SvcDeskInsert.jsp @@ -657,6 +657,7 @@ + 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 06e8c2f0..76b080ad 100644 --- a/src/main/webapp/WEB-INF/jsp/itms/srm/SvcDeskUpdate.jsp +++ b/src/main/webapp/WEB-INF/jsp/itms/srm/SvcDeskUpdate.jsp @@ -142,13 +142,10 @@ { var aReturnData = strReturnData.split(","); // split에 '-'를 넣었습니다. - alert(aReturnData); - var strExistUser = $("input[name='approvalUserId']").map(function () { return $(this).val(); }).get(); - alert(strExistUser); for(var i=0; i" /> + <%-- 2025.10.16 나혁제 추가인자 --%> +
diff --git a/src/main/webapp/WEB-INF/jsp/main/inc/IncLeftmenu.jsp b/src/main/webapp/WEB-INF/jsp/main/inc/IncLeftmenu.jsp index 4282b4b4..1d6ae577 100644 --- a/src/main/webapp/WEB-INF/jsp/main/inc/IncLeftmenu.jsp +++ b/src/main/webapp/WEB-INF/jsp/main/inc/IncLeftmenu.jsp @@ -116,7 +116,9 @@ // 2025.08.11 나혁제 left 메뉴는 Get 방식으로 document.menuMoveForm.method = "get"; // GET으로 전환 - document.menuMoveForm.bbsId.value = getParameterValueFromUrl(nValue[5], "bbsId"); // bbsId 추출 후 세팅 + document.menuMoveForm.bbsId .value = getParameterValueFromUrl(nValue[5], "bbsId" ); // bbsId 추출 후 세팅 + // 2025.10.16 나혁제 추가 + document.menuMoveForm.inTask.value = getParameterValueFromUrl(nValue[5], "inTask"); // inTask 추출 후 세팅 document.menuMoveForm.leftMenuNo.value=nValue[0]; // 좌측메뉴 세팅 document.menuMoveForm.action = ""+nValue[5].substring(1);