From 3bcfa6df551b12143a212f53e559071d43451d9b Mon Sep 17 00:00:00 2001 From: myname Date: Tue, 11 Oct 2022 12:35:58 +0900 Subject: [PATCH] =?UTF-8?q?2022-10-11=2012:35=20=EA=B2=B0=EC=9E=AC?= =?UTF-8?q?=EC=84=A0=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../web/AdjReqMgrOffLineController.java | 10 +- .../advcAprvl/web/AdvcAprvlController.java | 70 ++ .../advcSttst/web/AdvcSttstController.java | 696 +++++++++++++ .../jsp/kccadr/adjPgrMgr/apm/apmTab0.jsp | 4 +- .../iam/internalApprovManageDetail.jsp | 11 + .../advcAprvl/popup/advcAprvlReqPop.jsp | 922 ++++++++++++++++++ .../advcAprvl/popup/advcSbsttAprvlReqPop.jsp | 922 ++++++++++++++++++ .../jsp/kccadr/advcSttst/memSttstList.jsp | 462 +++++++++ 8 files changed, 3087 insertions(+), 10 deletions(-) create mode 100644 src/main/java/kcc/kccadr/advcAprvl/web/AdvcAprvlController.java create mode 100644 src/main/java/kcc/kccadr/advcSttst/web/AdvcSttstController.java create mode 100644 src/main/webapp/WEB-INF/jsp/kccadr/advcAprvl/popup/advcAprvlReqPop.jsp create mode 100644 src/main/webapp/WEB-INF/jsp/kccadr/advcAprvl/popup/advcSbsttAprvlReqPop.jsp create mode 100644 src/main/webapp/WEB-INF/jsp/kccadr/advcSttst/memSttstList.jsp diff --git a/src/main/java/kcc/kccadr/adjReqMgrOff/web/AdjReqMgrOffLineController.java b/src/main/java/kcc/kccadr/adjReqMgrOff/web/AdjReqMgrOffLineController.java index 68d2a300..6cf4225c 100644 --- a/src/main/java/kcc/kccadr/adjReqMgrOff/web/AdjReqMgrOffLineController.java +++ b/src/main/java/kcc/kccadr/adjReqMgrOff/web/AdjReqMgrOffLineController.java @@ -590,15 +590,7 @@ public class AdjReqMgrOffLineController { return "kccadr/adjReqMgrOff/popup/adjReqMgrOffHistoryPopList"; } - /** - * auth : 이준호 - * 결재선 지정 팝업 - * date : 2022.09.23 - */ - @RequestMapping("/kccadr/adjReqMgOff/popup/adjReqMgrOffAppReqPop.do") - public String adjReqMgrOffAppReqPop(@ModelAttribute("adjReqMgrOffLineVO") AdjReqMgrOffLineVO adjReqMgrOffLineVO, ModelMap model) throws Exception { - return "kccadr/adjReqMgrOff/popup/adjReqMgrOffAppReqPop"; - } + @RequestMapping("/kccadr/adjReqMgOff/adjReqMgrOffAppReqPopAjax.do") public void adjReqMgrOffAppReqPopAjax(@ModelAttribute("menuManageVO") MenuManageJTreeVO menuManageVO, ModelMap model, diff --git a/src/main/java/kcc/kccadr/advcAprvl/web/AdvcAprvlController.java b/src/main/java/kcc/kccadr/advcAprvl/web/AdvcAprvlController.java new file mode 100644 index 00000000..bdbe1e36 --- /dev/null +++ b/src/main/java/kcc/kccadr/advcAprvl/web/AdvcAprvlController.java @@ -0,0 +1,70 @@ +package kcc.kccadr.advcAprvl.web; + +import java.util.Properties; + +import javax.annotation.Resource; + +import org.springframework.stereotype.Controller; +import org.springframework.ui.ModelMap; +import org.springframework.web.bind.annotation.ModelAttribute; +import org.springframework.web.bind.annotation.RequestMapping; + +import kcc.com.cmm.service.EgovCmmUseService; +import kcc.com.cmm.service.EgovFileMngService; +import kcc.com.cmm.service.EgovFileMngUtil; +import kcc.kccadr.adjReqMgrOff.service.AdjReqMgrOffLineService; +import kcc.kccadr.adjReqMgrOff.service.AdjReqMgrOffLineVO; +import kcc.let.utl.fcc.service.EgovCryptoUtil; + +@Controller +public class AdvcAprvlController { + + // 조정신청 서비스단 + @Resource(name = "AdjReqMgrOffLineService") + private AdjReqMgrOffLineService adjReqMgrOffLineService; + + // eGov 공통코드 + @Resource(name = "EgovCmmUseService") + private EgovCmmUseService cmmUseService; + + @Resource(name = "EgovFileMngService") + private EgovFileMngService fileService; + + // global 프로퍼티 + @Resource(name="globalSettings") + protected Properties propertiesService; + + //첨부파일 경로, realPath 설정 + @Resource(name="EgovFileMngUtil") + private EgovFileMngUtil fileUtil; + + // 첨부파일 정보 + @Resource(name="EgovFileMngService") + private EgovFileMngService fileMngService; + + //암복호화 유틸 + @Resource(name = "egovCryptoUtil") + EgovCryptoUtil egovCryptoUtil; + + /** + * auth : 이준호 + * 결재선 지정 팝업 + * date : 2022.09.23 + */ + @RequestMapping("/kccadr/advcAprvl/popup/advcAprvlReqPop.do") + public String adjReqMgrOffAppReqPop(@ModelAttribute("adjReqMgrOffLineVO") AdjReqMgrOffLineVO adjReqMgrOffLineVO, ModelMap model) throws Exception { + return "kccadr/advcAprvl/popup/advcAprvlReqPop"; + } + + /** + * auth : 이준호 + * 결재선 대결 팝업 + * date : 2022.09.23 + */ + @RequestMapping("/kccadr/advcAprvl/popup/advcSbsttAprvlReqPop.do") + public String advcSbsttAprvlReqPop(@ModelAttribute("adjReqMgrOffLineVO") AdjReqMgrOffLineVO adjReqMgrOffLineVO, ModelMap model) throws Exception { + System.out.println("========================================"); + return "kccadr/advcAprvl/popup/advcSbsttAprvlReqPop"; + } + +} diff --git a/src/main/java/kcc/kccadr/advcSttst/web/AdvcSttstController.java b/src/main/java/kcc/kccadr/advcSttst/web/AdvcSttstController.java new file mode 100644 index 00000000..e3097663 --- /dev/null +++ b/src/main/java/kcc/kccadr/advcSttst/web/AdvcSttstController.java @@ -0,0 +1,696 @@ +package kcc.kccadr.advcSttst.web; + +import java.io.OutputStreamWriter; +import java.io.PrintWriter; +import java.util.ArrayList; +import java.util.Iterator; +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; +import java.util.Properties; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.apache.commons.collections.CollectionUtils; +import org.apache.commons.lang3.StringUtils; +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.RequestMethod; +import org.springframework.web.multipart.MultipartFile; +import org.springframework.web.multipart.MultipartHttpServletRequest; +import org.springframework.web.servlet.ModelAndView; +import org.springframework.web.servlet.mvc.support.RedirectAttributes; + +import com.fasterxml.jackson.databind.ObjectMapper; + +import egovframework.rte.fdl.security.userdetails.util.EgovUserDetailsHelper; +import egovframework.rte.ptl.mvc.tags.ui.pagination.PaginationInfo; +import kcc.com.cmm.LoginVO; +import kcc.com.cmm.service.EgovCmmUseService; +import kcc.com.cmm.service.EgovFileMngService; +import kcc.com.cmm.service.EgovFileMngUtil; +import kcc.com.cmm.service.FileVO; +import kcc.com.cmm.util.StringUtil; +import kcc.com.utl.fcc.service.EgovStringUtil; +import kcc.kccadr.adjReqMgrOff.service.AdjReqMgrOffLineService; +import kcc.kccadr.adjReqMgrOff.service.AdjReqMgrOffLineVO; +import kcc.let.sym.mnu.mpm.service.MenuManageJTreeVO; +import kcc.let.utl.fcc.service.EgovCryptoUtil; + +@Controller +public class AdvcSttstController { + + // 조정신청 서비스단 + @Resource(name = "AdjReqMgrOffLineService") + private AdjReqMgrOffLineService adjReqMgrOffLineService; + + // eGov 공통코드 + @Resource(name = "EgovCmmUseService") + private EgovCmmUseService cmmUseService; + + @Resource(name = "EgovFileMngService") + private EgovFileMngService fileService; + + // global 프로퍼티 + @Resource(name="globalSettings") + protected Properties propertiesService; + + //첨부파일 경로, realPath 설정 + @Resource(name="EgovFileMngUtil") + private EgovFileMngUtil fileUtil; + + // 첨부파일 정보 + @Resource(name="EgovFileMngService") + private EgovFileMngService fileMngService; + + //암복호화 유틸 + @Resource(name = "egovCryptoUtil") + EgovCryptoUtil egovCryptoUtil; + + /** + * 오프라인 조정신청 정보 입력 화면 + */ + @RequestMapping("/kccadr/advcSttst/adjReqMgrOffRegist.do") + public String adjReqMgrOffRegist(@ModelAttribute("searchVO") AdjReqMgrOffLineVO adjReqMgrOffLineVO, ModelMap model) throws Exception { + + //로그인 권한정보 불러오기 + LoginVO user = EgovUserDetailsHelper.isAuthenticated()? (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser():null; + model.addAttribute("user", user); + + // 공통코드 조회 + List codeResult = cmmUseService.selectCmmCodeDetail("CC001"); + model.addAttribute("CC001", codeResult); + + int reqPerTotCnt = 0; + + if(StringUtils.isNotBlank(adjReqMgrOffLineVO.getAdrSeq())) { + + //오프라인 조정 신청 정보 불러오기. + AdjReqMgrOffLineVO resultAdjReqMgrOffLine = adjReqMgrOffLineService.selectAdjReqMgrOffLineInfo(adjReqMgrOffLineVO); + + model.addAttribute("adrVO", resultAdjReqMgrOffLine); + + }else { + + //기본 값 셋팅 - 대리인 여부, 신청자 분류 + adjReqMgrOffLineVO.setRpplTy("10"); + adjReqMgrOffLineVO.setReqTy("01"); + model.addAttribute("adrVO", adjReqMgrOffLineVO); + + } + + + model.addAttribute("reqPerTotCnt", reqPerTotCnt); + + return "kccadr/adjReqMgrOff/adjReqMgrOffRegist"; + } + + /** + * 오프라인 조정신청 정보 등록 처리 Ajax + * + */ + @RequestMapping(value = {"/kccadr/advcSttst/insertAdjReqMgrOffAjax.do"}) + public ModelAndView insertAdjReqMgrOffAjax(final MultipartHttpServletRequest multiRequest + ,@ModelAttribute("adrVO") AdjReqMgrOffLineVO adjReqMgrOffLineVO + , RedirectAttributes redirectAttributes + , HttpServletRequest request) throws Exception { + + //로그인 권한정보 불러오기 + LoginVO loginVO = EgovUserDetailsHelper.isAuthenticated()? (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser():null; + String userId = loginVO == null ? "" : EgovStringUtil.isNullToString(loginVO.getUniqId()); + + ModelAndView modelAndView = new ModelAndView(); + modelAndView.setViewName("jsonView"); + + if(userId.equals("")) { + + modelAndView.addObject("adjStatus", "loginFail"); + return modelAndView; + + } + + /*파일등록 */ + String atchFileId = ""; // 조정신청 첨부파일 아이디 + String FratchFileId = ""; //대리인 첨부파일 아이디 + final Map files = multiRequest.getFileMap(); + Map fileFr = new LinkedHashMap<>(); + Map fileOr = new LinkedHashMap<>(); + + if (!files.isEmpty()) { + + Iterator> it = files.entrySet().iterator(); + int frIndex = 0; + int orIndex = 0; + while(it.hasNext()) { + + Map.Entry entry = it.next(); + MultipartFile mFile = entry.getValue(); + + if(entry.getKey().contains("fileFr")) { //대리인 첨부파일 리스트 추가 + + fileFr.put("fileFr" + frIndex, mFile); + frIndex++; + + } + + if(entry.getKey().contains("fileOr")) { //조정신청 첨부파일 리스트 추가 + + fileOr.put("fileOr" + orIndex, mFile); + orIndex++; + + } + + } + + if(fileFr != null) { // 대리인 첨부파일 + + List result = fileUtil.parseFileInf(fileFr, "조정 신청_", 0, "", "", ""); + FratchFileId = fileMngService.insertFileInfs(result); + adjReqMgrOffLineVO.getAdjReqMgrVoList().get(0).setAtchFileId(FratchFileId); + + } + + if(fileOr != null) { // 조정신청 첨부파일 + + List result = fileUtil.parseFileInf(fileOr, "조정 신청_", 0, "", "", ""); + atchFileId = fileMngService.insertFileInfs(result); + adjReqMgrOffLineVO.setAtchFileId(atchFileId); + + } + + } + + //사용자 유니크 아이디 받아오기 + adjReqMgrOffLineVO.setFrstRegisterId(userId); + + //조정신청, 대리인, 신청인 등록 처리 + String resultAdrSeq = adjReqMgrOffLineService.insertAdjReqMgrRpplReq(adjReqMgrOffLineVO); + + modelAndView.addObject("adjStatus", "success"); + modelAndView.addObject("resultAdrSeq", resultAdrSeq); + return modelAndView; + + } + + /** + * 오프라인 조정신청 정보 수정 화면 + * 현재(20210915) 목록 화면이 없어서 임시로 특정 조정신청 정보가 호출 되도록 처리하였음 + * 차후에 adrSeq 번호를 파라미터로 받으면 됨 + */ + @RequestMapping("/kccadr/advcSttst/selectAdjReqMgrOffUpdtView.do") + public String selectAdjReqMgrUpdtView(@ModelAttribute("searchVO") AdjReqMgrOffLineVO adjReqMgrOffLineVO, + RedirectAttributes redirectAttributes, + ModelMap model) throws Exception { + + //로그인 권한정보 불러오기 + LoginVO user = EgovUserDetailsHelper.isAuthenticated()? (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser():null; + model.addAttribute("user", user); + + String adrSeq = adjReqMgrOffLineVO.getAdrSeq(); + + if(adrSeq.equals("") || adrSeq == null) { + + //조정신청 번호가 없으면 메인화면으로 리턴 시킴 + model.addAttribute("message", "잘못된 접근입니다. 접속 URL을 확인해 주세요."); + redirectAttributes.addFlashAttribute("message", "잘못된 접근입니다. 접속 URL을 확인해 주세요."); + return "redirect:/cmm/main/mainPage.do"; + //adjReqMgrOffLineVO.setAdrSeq("ADR_0000000000000322");//ADR_0000000000000280 + } + + //오프라인 조정 신청 정보 불러오기. + AdjReqMgrOffLineVO resultAdjReqMgrOffLine = adjReqMgrOffLineService.selectAdjReqMgrOffLineInfo(adjReqMgrOffLineVO); + + + FileVO fileVO = new FileVO(); + + if(resultAdjReqMgrOffLine.getAdjReqMgrVoList().get(0).getAtchFileId() != null){ + + //대리인 첨부파일 리스트 불러오기 + String rpplAtchFileId = resultAdjReqMgrOffLine.getAdjReqMgrVoList().get(0).getAtchFileId(); + fileVO.setAtchFileId(rpplAtchFileId); + resultAdjReqMgrOffLine.setRpplAtchFileId(rpplAtchFileId); + List rpplAtchFileList = fileService.selectFileInfs(fileVO); + model.addAttribute("rpplAtchFileList", rpplAtchFileList); + + } + + + + //조정신청 첨부파일 리스트 불러오기. + String rpplMgrAtchFileId = resultAdjReqMgrOffLine.getAtchFileId(); + fileVO.setAtchFileId(rpplMgrAtchFileId); + resultAdjReqMgrOffLine.setRpplMgrAtchFileId(rpplMgrAtchFileId); + List rpplMgrAtchFileList = fileService.selectFileInfs(fileVO); + model.addAttribute("rpplMgrAtchFileList", rpplMgrAtchFileList); + + // 공통코드 조회 + List codeResult = cmmUseService.selectCmmCodeDetail("CC001"); + model.addAttribute("CC001", codeResult); + + model.addAttribute("adrVO", resultAdjReqMgrOffLine); + model.addAttribute("reqPerTotCnt", resultAdjReqMgrOffLine.getReqPerTotCnt()); + + return "kccadr/adjReqMgrOff/adjReqMgrOffUpdtView"; + } + + /** + * 오프라인 조정신청 피신청인 정보 삭제 Ajax + * + */ + @RequestMapping(value = {"/kccadr/advcSttst/deleteAdjReqMgrOffPersonAjax.do"}) + public ModelAndView deleteAdjReqMgrOffPersonAjax(final MultipartHttpServletRequest multiRequest + ,@ModelAttribute("adrVO") AdjReqMgrOffLineVO adjReqMgrOffLineVO + , RedirectAttributes redirectAttributes + , HttpServletRequest request) throws Exception { + + //로그인 권한정보 불러오기 + LoginVO loginVO = EgovUserDetailsHelper.isAuthenticated()? (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser():null; + String userId = loginVO == null ? "" : EgovStringUtil.isNullToString(loginVO.getUniqId()); + + ModelAndView modelAndView = new ModelAndView(); + modelAndView.setViewName("jsonView"); + + if(userId.equals("")) { + + modelAndView.addObject("adjStatus", "loginFail"); + return modelAndView; + + } + + //사용자 유니크 아이디 받아오기 + adjReqMgrOffLineVO.setFrstRegisterId(userId); + + //조정신청 피신청인 정보 삭제 + int resultCnt = adjReqMgrOffLineService.deleteAdjReqMgrOffPerson(adjReqMgrOffLineVO); + + if(resultCnt > 0) { + + modelAndView.addObject("adjStatus", "success"); + modelAndView.addObject("resultCnt", resultCnt); + + }else { + + modelAndView.addObject("adjStatus", "delFail"); + + } + + return modelAndView; + } + + /** + * 조정신청 Step03 신청취지/원인 정보 수정 Ajax + * + */ + @RequestMapping(value = {"/kccadr/advcSttst/updateAdjReqMgrOffAjax.do"}) + public ModelAndView updateAdrMgrMasterAjax(final MultipartHttpServletRequest multiRequest + ,@ModelAttribute("adrVO") AdjReqMgrOffLineVO adjReqMgrOffLineVO + , RedirectAttributes redirectAttributes + , HttpServletRequest request) throws Exception { + + //로그인 권한정보 불러오기 + LoginVO loginVO = EgovUserDetailsHelper.isAuthenticated()? (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser():null; + String userId = loginVO == null ? "" : EgovStringUtil.isNullToString(loginVO.getUniqId()); + + ModelAndView modelAndView = new ModelAndView(); + modelAndView.setViewName("jsonView"); + + if(userId.equals("")) { + + modelAndView.addObject("adjStatus", "loginFail"); + return modelAndView; + + } + + //사용자 유니크 아이디 받아오기 + adjReqMgrOffLineVO.setLastUpdusrId(userId); + + /*파일등록 */ + //String atchFileId = ""; // 조정신청 첨부파일 아이디 + //String FratchFileId = ""; //대리인 첨부파일 아이디 + String isThumbFile = ""; + String rpplAtchFileId = adjReqMgrOffLineVO.getRpplAtchFileId(); //대리인 첨부파일 아이디 + String rpplMgrAtchFileId = adjReqMgrOffLineVO.getRpplMgrAtchFileId(); //조정신청 첨부파일 아이디 + + final Map files = multiRequest.getFileMap(); + Map fileFr = new LinkedHashMap<>(); + Map fileOr = new LinkedHashMap<>(); + + if (!files.isEmpty()) { + + Iterator> it = files.entrySet().iterator(); + int frIndex = 0; + int orIndex = 0; + while(it.hasNext()) { + + Map.Entry entry = it.next(); + MultipartFile mFile = entry.getValue(); + + if(entry.getKey().contains("fileFr")) { //대리인 첨부파일 리스트 추가 + + fileFr.put("fileFr" + frIndex, mFile); + frIndex++; + + } + + if(entry.getKey().contains("fileOr")) { //조정신청 첨부파일 리스트 추가 + + fileOr.put("fileOr" + orIndex, mFile); + orIndex++; + + } + + } + + if(fileFr != null) { // 대리인 첨부파일 + + if ("".equals(rpplAtchFileId)) { + List result = fileUtil.parseFileInf(fileFr, "조정 신청_", 0, rpplAtchFileId, "", isThumbFile); + + rpplAtchFileId = fileMngService.insertFileInfs(result); + adjReqMgrOffLineVO.getAdjReqMgrVoList().get(0).setAtchFileId(rpplAtchFileId); //대리인 정보에 첨부파일 아이디 넣어주기 + + } else { + FileVO fvo = new FileVO(); + fvo.setAtchFileId(rpplAtchFileId); + adjReqMgrOffLineVO.getAdjReqMgrVoList().get(0).setAtchFileId(rpplAtchFileId); //대리인 정보에 첨부파일 아이디 넣어주기 + int cnt = fileMngService.getMaxFileSN(fvo); + List result = fileUtil.parseFileInf(fileFr, "조정 신청_", cnt, rpplAtchFileId, "", isThumbFile); + + fileMngService.updateFileInfs(result); + } + + } + + if(fileOr != null) { // 조정신청 첨부파일 + + if ("".equals(rpplMgrAtchFileId)) { + List result = fileUtil.parseFileInf(fileOr, "조정 신청_", 0, rpplMgrAtchFileId, "", isThumbFile); + + rpplMgrAtchFileId = fileMngService.insertFileInfs(result); + adjReqMgrOffLineVO.setAtchFileId(rpplMgrAtchFileId); + } else { + FileVO fvo = new FileVO(); + fvo.setAtchFileId(rpplMgrAtchFileId); + adjReqMgrOffLineVO.setAtchFileId(rpplMgrAtchFileId); + int cnt = fileMngService.getMaxFileSN(fvo); + List result = fileUtil.parseFileInf(fileOr, "조정 신청_", cnt, rpplMgrAtchFileId, "", isThumbFile); + + fileMngService.updateFileInfs(result); + } + + } + + } + + //조정신청 신청인 취지/원인 등록 처리 + String resultSts = adjReqMgrOffLineService.updateAdjReqMgrRpplReq(adjReqMgrOffLineVO); + + if(resultSts.equals("updateSucc")) { + + modelAndView.addObject("adjStatus", "success"); + + }else { + + modelAndView.addObject("adjStatus", "fail"); + + } + + return modelAndView; + } + + /** + * auth : bhkim + * 전자조정위원 사건 관리 현황 통계 + * date : 2021.09.111 + */ + @RequestMapping("/kccadr/advcSttst/memSttstList.do") + public String adjReqMgrOffList(@ModelAttribute("adjReqMgrOffLineVO") AdjReqMgrOffLineVO adjReqMgrOffLineVO, ModelMap model) throws Exception { + + // 제출 시 + // adr_mgr_master 테이블 stat_cd 제출 완료(ADR_REQ_COMP, 101010)로, lastupdtPnttm, lastupdtId 업데이트 + // adr_mgr_master 테이블 stat_cd 변경으로 history 테이블에 이력 insert + //로그인 권한정보 불러오기 + LoginVO loginVO = EgovUserDetailsHelper.isAuthenticated()? (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser():null; + String userId = loginVO == null ? "" : EgovStringUtil.isNullToString(loginVO.getUniqId()); + + if(adjReqMgrOffLineVO.getPageUnit() != 10) { + adjReqMgrOffLineVO.setPageUnit(adjReqMgrOffLineVO.getPageUnit()); + } + + if("".equals(adjReqMgrOffLineVO.getSearchSortCnd())){ + adjReqMgrOffLineVO.setSearchSortCnd("RS.ADR_SEQ"); + adjReqMgrOffLineVO.setSearchSortOrd("desc"); + } + if(("3".equals(adjReqMgrOffLineVO.getSearchCondition()) || "4".equals(adjReqMgrOffLineVO.getSearchCondition())) && StringUtils.isNotBlank(adjReqMgrOffLineVO.getSearchKeyword())){ + adjReqMgrOffLineVO.setSearchKeyword(egovCryptoUtil.encrypt(adjReqMgrOffLineVO.getSearchKeyword())); + } + + /** paging */ + PaginationInfo paginationInfo = new PaginationInfo(); + paginationInfo.setCurrentPageNo(adjReqMgrOffLineVO.getPageIndex()); + paginationInfo.setRecordCountPerPage(adjReqMgrOffLineVO.getPageUnit()); + paginationInfo.setPageSize(adjReqMgrOffLineVO.getPageSize()); + + adjReqMgrOffLineVO.setFirstIndex(paginationInfo.getFirstRecordIndex()); + adjReqMgrOffLineVO.setLastIndex(paginationInfo.getLastRecordIndex()); + adjReqMgrOffLineVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage()); + paginationInfo.setTotalRecordCount(adjReqMgrOffLineService.adjReqMgrOffListCount(adjReqMgrOffLineVO)); + model.addAttribute("paginationInfo", paginationInfo); + List list = adjReqMgrOffLineService.adjReqMgrOffList(adjReqMgrOffLineVO); + // 복호화 + decryptInfomation(list, null); + model.addAttribute("list", list); + + + if(("3".equals(adjReqMgrOffLineVO.getSearchCondition()) || "4".equals(adjReqMgrOffLineVO.getSearchCondition())) && StringUtils.isNotBlank(adjReqMgrOffLineVO.getSearchKeyword())){ + adjReqMgrOffLineVO.setSearchKeyword(egovCryptoUtil.decrypt(adjReqMgrOffLineVO.getSearchKeyword())); + } + + return "kccadr/advcSttst/memSttstList"; + } + + + @RequestMapping("/kccadr/advcSttst/adjReqMgrOffDetail.do") + public String adjReqMgrOffDetail(@ModelAttribute("adjReqMgrOffLineVO") AdjReqMgrOffLineVO adjReqMgrOffLineVO, ModelMap model) throws Exception { + AdjReqMgrOffLineVO master = adjReqMgrOffLineService.selectAdjstReqMgrOffMasterInfo(adjReqMgrOffLineVO); + model.addAttribute("master", master); + + List person = adjReqMgrOffLineService.selectAdjstReqMgrOffPersonList(adjReqMgrOffLineVO); + // 복호화 + decryptInfomation(person, null); + model.addAttribute("person", person); + + String bttnStatYn = adjReqMgrOffLineService.selectAdjstReqMgrOffStatCdYn(adjReqMgrOffLineVO); + + model.addAttribute("bttnStatYn", bttnStatYn); + + if(StringUtils.isNotBlank(master.getAtchFileId())){ + FileVO fileVO = new FileVO(); + fileVO.setAtchFileId(master.getAtchFileId()); + List fileList = fileService.selectFileInfs(fileVO); + model.addAttribute("fileList", fileList); + } + + + for(int i=0; i < person.size(); i++) { + + if(StringUtil.isNotEmpty(person.get(i).getAtchFileId())) { + + if(StringUtils.isNotBlank(person.get(i).getAtchFileId())){ + FileVO fileVO = new FileVO(); + fileVO.setAtchFileId(master.getAtchFileId()); + List depuFileList = fileService.selectFileInfs(fileVO); + model.addAttribute("depuFileList", depuFileList); + } + + } + + } + return "kccadr/adjReqMgrOff/adjReqMgrOffDetail"; + } + + @RequestMapping(value = {"/kccadr/advcSttst/adjReqMgrOffDelete.do"}, method = RequestMethod.POST) + public ModelAndView adjReqMgrOffDelete(HttpServletRequest request , @RequestBody AdjReqMgrOffLineVO adjReqMgrOffLineVO) throws Exception { + ModelAndView modelAndView = new ModelAndView(); + modelAndView.setViewName("jsonView"); + adjReqMgrOffLineService.deleteAdjstReqMgrOff(adjReqMgrOffLineVO); + modelAndView.addObject("rs", "success"); + return modelAndView; + } + + @RequestMapping(value = {"/kccadr/advcSttst/adjReqMgrOffSubmit.do"}) + public ModelAndView adjReqMgrOffSubmit(@RequestBody AdjReqMgrOffLineVO adjReqMgrOffLineVO ,HttpServletRequest request) throws Exception { + ModelAndView modelAndView = new ModelAndView(); + modelAndView.setViewName("jsonView"); + + // 제출 시 + // adr_mgr_master 테이블 stat_cd 제출 완료(ADR_REQ_COMP, 101010)로, lastupdtPnttm, lastupdtId 업데이트 + // adr_mgr_master 테이블 stat_cd 변경으로 history 테이블에 이력 insert + //로그인 권한정보 불러오기 + LoginVO loginVO = EgovUserDetailsHelper.isAuthenticated()? (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser():null; + String userId = loginVO == null ? "" : EgovStringUtil.isNullToString(loginVO.getUniqId()); + + + try { + + adjReqMgrOffLineVO.setLastUpdusrId(userId); + + //adr_mgr_master 테이블 update, 히스토리 이력, adr_mgr_detail 테이블 insert + int result = adjReqMgrOffLineService.updateAdjstReqMgrOff(adjReqMgrOffLineVO); + if(result > 1) { + modelAndView.addObject("result", "success"); + }else { + modelAndView.addObject("result", "fail"); + } + } catch (Exception e) { + System.out.println("Exception!!!!!"); + modelAndView.addObject("msg", "제출에 실패하였습니다."); + } + + return modelAndView; + } + + /* + * + * 오프라인신청 이전신청 리스트 화면 불러오기 + * 임시저장된 내용의 리스트를 불러온다. + * + * */ + @RequestMapping("/kccadr/advcSttst/adjReqMgrOffHistoryPopAjax.do") + public String adjReqMgrOffHistoryPopAjax(@ModelAttribute("adjReqMgrOffLineVO") AdjReqMgrOffLineVO adjReqMgrOffLineVO, ModelMap model) throws Exception { + AdjReqMgrOffLineVO master = adjReqMgrOffLineService.selectAdjstReqMgrOffMasterInfo(adjReqMgrOffLineVO); + model.addAttribute("master", master); + + if("".equals(adjReqMgrOffLineVO.getSearchSortCnd())){ //최초조회시 최신것 조회List + adjReqMgrOffLineVO.setSearchSortCnd("T1.FRST_REGIST_PNTTM"); + adjReqMgrOffLineVO.setSearchSortOrd("desc"); + } + + /** paging */ + PaginationInfo paginationInfo = new PaginationInfo(); + paginationInfo.setCurrentPageNo(adjReqMgrOffLineVO.getPageIndex()); + paginationInfo.setRecordCountPerPage(adjReqMgrOffLineVO.getPageUnit()); + paginationInfo.setPageSize(adjReqMgrOffLineVO.getPageSize()); + + adjReqMgrOffLineVO.setFirstIndex(paginationInfo.getFirstRecordIndex()); + adjReqMgrOffLineVO.setLastIndex(paginationInfo.getLastRecordIndex()); + adjReqMgrOffLineVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage()); + + paginationInfo.setTotalRecordCount(adjReqMgrOffLineService.selectAdjReqMgrOffHistotyListCount(adjReqMgrOffLineVO)); + model.addAttribute("paginationInfo", paginationInfo); + List list = adjReqMgrOffLineService.selectAdjReqMgrOffHistotyList(adjReqMgrOffLineVO); + decryptInfomation(list, null); + + //검색어가 있는 경우 복호화 해준다. + if(StringUtils.isNotBlank(adjReqMgrOffLineVO.getSearchKeyword())) { + + adjReqMgrOffLineVO.setSearchKeyword(egovCryptoUtil.decrypt(adjReqMgrOffLineVO.getSearchKeyword())); + + } + + model.addAttribute("list", list); + return "kccadr/adjReqMgrOff/popup/adjReqMgrOffHistoryPopList"; + } + + /** + * auth : 이준호 + * 결재선 지정 팝업 + * date : 2022.09.23 + */ + @RequestMapping("/kccadr/advcSttst/popup/adjReqMgrOffAppReqPop.do") + public String adjReqMgrOffAppReqPop(@ModelAttribute("adjReqMgrOffLineVO") AdjReqMgrOffLineVO adjReqMgrOffLineVO, ModelMap model) throws Exception { + return "kccadr/adjReqMgrOff/popup/adjReqMgrOffAppReqPop"; + } + + @RequestMapping("/kccadr/advcSttst/adjReqMgrOffAppReqPopAjax.do") + public void adjReqMgrOffAppReqPopAjax(@ModelAttribute("menuManageVO") MenuManageJTreeVO menuManageVO, ModelMap model, + HttpServletResponse response , HttpServletRequest request) throws Exception { + ObjectMapper mapper = new ObjectMapper(); + //response.setHeader("Content-Type", "text/html;charset=utf-8"); + PrintWriter out = new PrintWriter(new OutputStreamWriter(response.getOutputStream(), "UTF-8")); + + + List resultList = new ArrayList(); + + MenuManageJTreeVO menuManageTopVO2 = new MenuManageJTreeVO(); + menuManageTopVO2.setUpperMenuId("#"); + menuManageTopVO2.setMenuNo("0"); + menuManageTopVO2.setMenuNm("관련인"); + resultList.add(0, menuManageTopVO2); + + for(int i = 1 ; i < 6 ; i ++ ){ + MenuManageJTreeVO menuManageTopVO = new MenuManageJTreeVO(); + + menuManageTopVO.setUpperMenuId("0"); + menuManageTopVO.setMenuNo(String.valueOf(i)); + menuManageTopVO.setMenuNm("홍길동" + String.valueOf(i)); + menuManageTopVO.setMenuOrdr(i); + menuManageTopVO.setProgrmFileNm("dir"); + menuManageTopVO.setUseYn("Y"); + menuManageTopVO.setRelateImagePath("/"); + menuManageTopVO.setRelateImageNm("/"); + resultList.add(i, menuManageTopVO); + } + + System.out.println("resultList :: "+resultList); + mapper.writeValue(out, resultList); + out.flush(); + } + + + public void decryptInfomation(List list, AdjReqMgrOffLineVO info){ + if(CollectionUtils.isNotEmpty(list)){ + for(AdjReqMgrOffLineVO model : list){ + model.setRpplNm(egovCryptoUtil.decrypt(model.getRpplNm())); + model.setRpplAddr(egovCryptoUtil.decrypt(model.getRpplAddr())); + model.setRpplAddrDtl(egovCryptoUtil.decrypt(model.getRpplAddrDtl())); + model.setRpplPost(egovCryptoUtil.decrypt(model.getRpplPost())); + model.setRpplEmail(egovCryptoUtil.decrypt(model.getRpplEmail())); + model.setRpplPhone(egovCryptoUtil.decrypt(model.getRpplPhone())); + + model.setRpplRealAddr(egovCryptoUtil.decrypt(model.getRpplRealAddr())); + model.setRpplRealAddrDtl(egovCryptoUtil.decrypt(model.getRpplRealAddrDtl())); + model.setRpplRealPost(egovCryptoUtil.decrypt(model.getRpplRealPost())); + + model.setDepuTyNm(egovCryptoUtil.decrypt(model.getDepuTyNm())); + model.setResPonDentNm(egovCryptoUtil.decrypt(model.getResPonDentNm())); + model.setAppliCantNm(egovCryptoUtil.decrypt(model.getAppliCantNm())); + + //피신청인 정보가 여러개 일경우 + if(StringUtils.isNotBlank(model.getResPonDentNms())){ + String[] resNms = model.getResPonDentNms().split("\\|"); + if(resNms.length > 1 ){ + List names = new ArrayList<>(); + for(String name : resNms){ + names.add(egovCryptoUtil.decrypt(name)); + } + model.setResPonDentNm(String.join(",", names)); + }else{ + model.setResPonDentNm(egovCryptoUtil.decrypt(resNms[0])); + } + } + + } + } + + if(info != null){ + info.setRpplNm(egovCryptoUtil.decrypt(info.getRpplNm())); + info.setRpplAddr(egovCryptoUtil.decrypt(info.getRpplAddr())); + info.setRpplAddrDtl(egovCryptoUtil.decrypt(info.getRpplAddrDtl())); + info.setRpplPost(egovCryptoUtil.decrypt(info.getRpplPost())); + info.setRpplRealAddr(egovCryptoUtil.decrypt(info.getRpplRealAddr())); + info.setRpplRealAddrDtl(egovCryptoUtil.decrypt(info.getRpplRealAddrDtl())); + info.setRpplRealPost(egovCryptoUtil.decrypt(info.getRpplRealPost())); + info.setRpplEmail(egovCryptoUtil.decrypt(info.getRpplEmail())); + info.setRpplPhone(egovCryptoUtil.decrypt(info.getRpplPhone())); + info.setDepuTyNm(egovCryptoUtil.decrypt(info.getDepuTyNm())); + info.setResPonDentNm(egovCryptoUtil.decrypt(info.getResPonDentNm())); + info.setAppliCantNm(egovCryptoUtil.decrypt(info.getAppliCantNm())); + } + } +} diff --git a/src/main/webapp/WEB-INF/jsp/kccadr/adjPgrMgr/apm/apmTab0.jsp b/src/main/webapp/WEB-INF/jsp/kccadr/adjPgrMgr/apm/apmTab0.jsp index f1a4126d..4fe251b3 100644 --- a/src/main/webapp/WEB-INF/jsp/kccadr/adjPgrMgr/apm/apmTab0.jsp +++ b/src/main/webapp/WEB-INF/jsp/kccadr/adjPgrMgr/apm/apmTab0.jsp @@ -292,7 +292,9 @@ $(document).ready(function(){ } function fnc_aprvl_pop(param){ - commonPopWindowopenForm("/kccadr/adjReqMgOff/popup/adjReqMgrOffAppReqPop.do", '1000', '700', "entInfoPop", $('#pop')); + //commonPopWindowopenForm("/kccadr/adjReqMgOff/popup/adjReqMgrOffAppReqPop.do", '1000', '700', "entInfoPop", $('#pop')); + commonPopWindowopenForm("/kccadr/advcAprvl/popup/advcAprvlReqPop.do", '1000', '700', "entInfoPop", $('#pop')); + } /* 워크플로우 */ $(function(){ diff --git a/src/main/webapp/WEB-INF/jsp/kccadr/adjPgrMgr/iam/internalApprovManageDetail.jsp b/src/main/webapp/WEB-INF/jsp/kccadr/adjPgrMgr/iam/internalApprovManageDetail.jsp index 6b11f6d5..6043af1a 100644 --- a/src/main/webapp/WEB-INF/jsp/kccadr/adjPgrMgr/iam/internalApprovManageDetail.jsp +++ b/src/main/webapp/WEB-INF/jsp/kccadr/adjPgrMgr/iam/internalApprovManageDetail.jsp @@ -722,6 +722,16 @@ }); } + + function fnc_sbstt_aprvl_pop(param){ + //commonPopWindowopenForm("/kccadr/adjReqMgOff/popup/adjReqMgrOffAppReqPop.do", '1000', '700', "entInfoPop", $('#pop')); + var detailForm = document.detailForm; + commonPopWindowopenForm("/kccadr/advcAprvl/popup/advcSbsttAprvlReqPop.do", '1000', '700', "sbsttInfoPop", $('#detailForm')); + + //var detailForm = document.detailForm; + //commonPopWindowopenForm("/kccadr/adjPgrMgr/apm/popup/adrDetailPop.do", "840", "800", "adrDetailPop", $('#detailForm')); + + } + + + + +○○○ 결재 요청 + + + +
+ +
+
+
+ + + +
+ + + +
+
+
+ + diff --git a/src/main/webapp/WEB-INF/jsp/kccadr/advcAprvl/popup/advcSbsttAprvlReqPop.jsp b/src/main/webapp/WEB-INF/jsp/kccadr/advcAprvl/popup/advcSbsttAprvlReqPop.jsp new file mode 100644 index 00000000..088880e1 --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/kccadr/advcAprvl/popup/advcSbsttAprvlReqPop.jsp @@ -0,0 +1,922 @@ + +<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> +<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%> +<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %> +<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%> +<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %> +<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %> +<%@ taglib prefix="validator" uri="http://www.springmodules.org/tags/commons-validator" %> + + + + + + + + + +○○○ 결재 요청 + + + +
+ +
+
+
+ + + +
+ + + +
+
+
+ + diff --git a/src/main/webapp/WEB-INF/jsp/kccadr/advcSttst/memSttstList.jsp b/src/main/webapp/WEB-INF/jsp/kccadr/advcSttst/memSttstList.jsp new file mode 100644 index 00000000..d7c70b74 --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/kccadr/advcSttst/memSttstList.jsp @@ -0,0 +1,462 @@ + +<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> +<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%> +<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %> +<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%> +<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %> +<%@ taglib prefix="validator" uri="http://www.springmodules.org/tags/commons-validator" %> +<%@ taglib prefix="kc" uri="/WEB-INF/tlds/kcc_tld.tld"%> +<% + /** + * @Class Name : memSttstList.jsp + * @Description : 조정위원 사건 관리 현황 통계 + * @Modification Information + * @ + * @ 수정일 수정자 수정내용 + * @ ------- -------- --------------------------- + * @ 2021.08.09 김봉호 최초 생성 + * @author 김봉호 + * @since 2021.08.21 + * @version 1.0 + * @see + * + */ +%> + + + + + + 조정신청목록 + + + + + " /> + " /> + + + +
+
+ + +
+

조정위원별 사건 관리 현황 통계(작업중)

+
    +
  • +
  • +

    오프라인 조정관리

    +
  • +
  • 조정위원별 사건 관리 현황 통계
  • +
+
+ + +
+
+
+ +
+
+
+

조정위원

+
+ +
+
+
+
    +
  • +
    +
    김길동
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    사용상태별
    (건수)
    전체성립불성립취하종결직권조정조정권고반려
    272120400
    분야별
    (건수)
    전체어문저작물음악저작물연극저작물미술저작물건축저작물사진저작물
    272120400
    영상저작물도형저작물컴퓨터프로그램편집저작물데이터베이스저작인격권저작인접권
    272120400
    +
    +
    +
  • +
  • +
    +
    김길동
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    사용상태별
    (건수)
    전체성립불성립취하종결직권조정조정권고반려
    272120400
    분야별
    (건수)
    전체어문저작물음악저작물연극저작물미술저작물건축저작물사진저작물
    272120400
    영상저작물도형저작물컴퓨터프로그램편집저작물데이터베이스저작인격권저작인접권
    272120400
    +
    +
    +
  • +
  • +
    +
    김길동
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    사용상태별
    (건수)
    전체성립불성립취하종결직권조정조정권고반려
    272120400
    분야별
    (건수)
    전체어문저작물음악저작물연극저작물미술저작물건축저작물사진저작물
    272120400
    영상저작물도형저작물컴퓨터프로그램편집저작물데이터베이스저작인격권저작인접권
    272120400
    +
    +
    +
  • +
+
+
+ + + + + + + + +