diff --git a/src/main/java/kcc/kccadr/advcAprvl/web/AdvcAprvlController.java b/src/main/java/kcc/kccadr/advcAprvl/web/AdvcAprvlController.java index bdbe1e36..6abef588 100644 --- a/src/main/java/kcc/kccadr/advcAprvl/web/AdvcAprvlController.java +++ b/src/main/java/kcc/kccadr/advcAprvl/web/AdvcAprvlController.java @@ -1,19 +1,29 @@ package kcc.kccadr.advcAprvl.web; +import java.io.OutputStreamWriter; +import java.io.PrintWriter; +import java.util.List; import java.util.Properties; import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; 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 com.fasterxml.jackson.databind.ObjectMapper; + 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.sym.ccm.cde.service.CmmnDetailCodeVO; +import kcc.let.sym.ccm.cde.service.EgovCcmCmmnDetailCodeManageService; +import kcc.let.sym.mnu.mcm.service.EgovMenuCreateManageService; +import kcc.let.sym.mnu.mpm.service.MenuManageJTreeVO; import kcc.let.utl.fcc.service.EgovCryptoUtil; @Controller @@ -46,6 +56,13 @@ public class AdvcAprvlController { @Resource(name = "egovCryptoUtil") EgovCryptoUtil egovCryptoUtil; + /** EgovMenuManageService */ + @Resource(name = "meunCreateManageService") + private EgovMenuCreateManageService menuCreateManageService; + + //tree code 관리 + @Resource(name = "CmmnDetailCodeManageService") + private EgovCcmCmmnDetailCodeManageService cmmnDetailCodeManageService; /** * auth : 이준호 * 결재선 지정 팝업 @@ -56,6 +73,34 @@ public class AdvcAprvlController { return "kccadr/advcAprvl/popup/advcAprvlReqPop"; } + /** + * auth : 이준호 + * 결재선 지정 팝업 + * date : 2022.09.23 + */ + @RequestMapping(value = {"/kccadr/advcAprvl/advcAprvlReqPopJtreeAjax.do" + , "/kccadr/advcAprvl/advcAprvlReqPopJtreeAjax.do" } + ) + public void advcAprvlReqPopJtreeAjax(@ModelAttribute("menuManageVO") MenuManageJTreeVO menuManageVO, + @ModelAttribute("searchVO") CmmnDetailCodeVO searchVO, + ModelMap model, HttpServletResponse response) 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")); + + //CmmnDetailCodeVO searchVO = new CmmnDetailCodeVO(); + List resultList = cmmnDetailCodeManageService.selectCmmnDetailCodeListAll(searchVO) ; + + CmmnDetailCodeVO topCmmnDetailCodeVO = new CmmnDetailCodeVO(); + topCmmnDetailCodeVO.setParent("#"); + topCmmnDetailCodeVO.setId("0"); + topCmmnDetailCodeVO.setText("한국저작권위원회 분쟁조정본부"); + + resultList.add(0, topCmmnDetailCodeVO); + mapper.writeValue(out, resultList); + out.flush(); + } + /** * auth : 이준호 * 결재선 대결 팝업 diff --git a/src/main/java/kcc/let/sym/ccm/cca/web/EgovCcmCmmnCodeManageController.java b/src/main/java/kcc/let/sym/ccm/cca/web/EgovCcmCmmnCodeManageController.java index e896a82a..400aa84f 100644 --- a/src/main/java/kcc/let/sym/ccm/cca/web/EgovCcmCmmnCodeManageController.java +++ b/src/main/java/kcc/let/sym/ccm/cca/web/EgovCcmCmmnCodeManageController.java @@ -549,6 +549,8 @@ public class EgovCcmCmmnCodeManageController { LoginVO user = (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser(); try{ + System.out.println("cmmnDetailCodeVO.getNodeDepth()"); + System.out.println(cmmnDetailCodeVO.getNodeDepth()); String newCode = menuManageVO.getMenuNo() ; if(cmmnDetailCodeVO.getNodeDepth().equals("2")) { //LETTCCMMNCLCODE 테이블(분류코드) CmmnClCode cmmnClCodeVO = new CmmnClCode(); diff --git a/src/main/java/kcc/let/sym/ccm/cde/service/EgovCcmCmmnDetailCodeManageService.java b/src/main/java/kcc/let/sym/ccm/cde/service/EgovCcmCmmnDetailCodeManageService.java index e7a08cd9..1f648b16 100644 --- a/src/main/java/kcc/let/sym/ccm/cde/service/EgovCcmCmmnDetailCodeManageService.java +++ b/src/main/java/kcc/let/sym/ccm/cde/service/EgovCcmCmmnDetailCodeManageService.java @@ -67,11 +67,15 @@ public interface EgovCcmCmmnDetailCodeManageService { * @throws Exception */ void updateCmmnDetailCode(CmmnDetailCode cmmnDetailCode) throws Exception; + + void updateCmmnDetailNmCode(CmmnDetailCode cmmnDetailCode) throws Exception; List selectCmmnCodeAllList(CmmnDetailCode cmmnDetailCode) throws Exception; List selectCmmnDetailCodeListAll(CmmnDetailCodeVO searchVO) throws Exception; + List selectCmmnDetailCodeListWithCode(CmmnDetailCodeVO searchVO) throws Exception; + void updateCmmnDetailCodePk(CmmnDetailCodeVO cmmnDetailCodeVO) throws Exception; } diff --git a/src/main/java/kcc/let/sym/ccm/cde/service/impl/CmmnDetailCodeManageDAO.java b/src/main/java/kcc/let/sym/ccm/cde/service/impl/CmmnDetailCodeManageDAO.java index 9decfd42..76c34adb 100644 --- a/src/main/java/kcc/let/sym/ccm/cde/service/impl/CmmnDetailCodeManageDAO.java +++ b/src/main/java/kcc/let/sym/ccm/cde/service/impl/CmmnDetailCodeManageDAO.java @@ -85,6 +85,10 @@ public class CmmnDetailCodeManageDAO extends EgovAbstractDAO { public void updateCmmnDetailCode(CmmnDetailCode cmmnDetailCode) throws Exception { update("CmmnDetailCodeManageDAO.updateCmmnDetailCode", cmmnDetailCode); } + + public void updateCmmnDetailNmCode(CmmnDetailCode cmmnDetailCode) throws Exception { + update("CmmnDetailCodeManageDAO.updateCmmnDetailNmCode", cmmnDetailCode); + } @SuppressWarnings("unchecked") @@ -97,6 +101,11 @@ public class CmmnDetailCodeManageDAO extends EgovAbstractDAO { return (List) list("CmmnDetailCodeManageDAO.selectCmmnDetailCodeListAll", searchVO); } + @SuppressWarnings("unchecked") + public List selectCmmnDetailCodeListWithCode(CmmnDetailCodeVO searchVO) throws Exception{ + return (List) list("CmmnDetailCodeManageDAO.selectCmmnDetailCodeListWithCode", searchVO); + } + public void updateCmmnDetailCodePk(CmmnDetailCodeVO cmmnDetailCodeVO) throws Exception{ update("CmmnDetailCodeManageDAO.updateCmmnDetailCodePk", cmmnDetailCodeVO); } diff --git a/src/main/java/kcc/let/sym/ccm/cde/service/impl/EgovCcmCmmnDetailCodeManageServiceImpl.java b/src/main/java/kcc/let/sym/ccm/cde/service/impl/EgovCcmCmmnDetailCodeManageServiceImpl.java index 09466213..348850b4 100644 --- a/src/main/java/kcc/let/sym/ccm/cde/service/impl/EgovCcmCmmnDetailCodeManageServiceImpl.java +++ b/src/main/java/kcc/let/sym/ccm/cde/service/impl/EgovCcmCmmnDetailCodeManageServiceImpl.java @@ -86,6 +86,11 @@ public class EgovCcmCmmnDetailCodeManageServiceImpl extends EgovAbstractServiceI cmmnDetailCodeManageDAO.updateCmmnDetailCode(cmmnDetailCode); } + @Override + public void updateCmmnDetailNmCode(CmmnDetailCode cmmnDetailCode) throws Exception { + cmmnDetailCodeManageDAO.updateCmmnDetailNmCode(cmmnDetailCode); + } + @Override public List selectCmmnCodeAllList(CmmnDetailCode cmmnDetailCode) throws Exception { return cmmnDetailCodeManageDAO.selectCmmnCodeAllList(cmmnDetailCode); @@ -96,6 +101,11 @@ public class EgovCcmCmmnDetailCodeManageServiceImpl extends EgovAbstractServiceI return cmmnDetailCodeManageDAO.selectCmmnDetailCodeListAll(searchVO); } + @Override + public List selectCmmnDetailCodeListWithCode(CmmnDetailCodeVO searchVO) throws Exception { + return cmmnDetailCodeManageDAO.selectCmmnDetailCodeListWithCode(searchVO); + } + @Override public void updateCmmnDetailCodePk(CmmnDetailCodeVO cmmnDetailCodeVO) throws Exception { cmmnDetailCodeManageDAO.updateCmmnDetailCodePk(cmmnDetailCodeVO); diff --git a/src/main/java/kcc/let/uss/rnt/web/EgovCustomRankManageController.java b/src/main/java/kcc/let/uss/rnt/web/EgovCustomRankManageController.java index dc4c3693..e26e2b2f 100644 --- a/src/main/java/kcc/let/uss/rnt/web/EgovCustomRankManageController.java +++ b/src/main/java/kcc/let/uss/rnt/web/EgovCustomRankManageController.java @@ -1,25 +1,37 @@ package kcc.let.uss.rnt.web; +import java.io.OutputStreamWriter; +import java.io.PrintWriter; +import java.util.List; + import javax.annotation.Resource; -import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; -import org.springframework.http.ResponseEntity; +import org.apache.commons.lang3.RandomStringUtils; import org.springframework.stereotype.Controller; +import org.springframework.transaction.annotation.Transactional; 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.bind.annotation.RequestParam; +import org.springframework.web.servlet.ModelAndView; +import com.fasterxml.jackson.databind.ObjectMapper; + +import egovframework.rte.fdl.security.userdetails.util.EgovUserDetailsHelper; import kcc.com.cmm.ComDefaultVO; -import kcc.kccadr.adjPgrMgr.exmp.cmm.ExmpManageVO; -import kcc.kccadr.cmm.RestResponse; +import kcc.com.cmm.LoginVO; +import kcc.com.cmm.service.CmmnDetailCode; +import kcc.let.sym.ccm.cca.service.CmmnCode; +import kcc.let.sym.ccm.cca.service.EgovCcmCmmnCodeManageService; +import kcc.let.sym.ccm.ccc.service.CmmnClCode; +import kcc.let.sym.ccm.ccc.service.EgovCcmCmmnClCodeManageService; +import kcc.let.sym.ccm.cde.service.CmmnDetailCodeVO; +import kcc.let.sym.ccm.cde.service.EgovCcmCmmnDetailCodeManageService; import kcc.let.sym.mnu.mcm.service.MenuCreatVO; +import kcc.let.sym.mnu.mpm.service.MenuManageJTreeVO; import kcc.let.sym.mnu.mpm.service.MenuManageVO; import kcc.let.uss.rnt.service.EgovCustomRankManageService; -import kcc.let.uss.rnt.service.EgovCustomRankManageVO; /** * 직급 관리하는 컨트롤러 @@ -43,6 +55,17 @@ public class EgovCustomRankManageController { @Resource(name = "EgovCustomRankManageService") private EgovCustomRankManageService egovCustomRankManageService; + //tree code 관리 + @Resource(name = "CmmnDetailCodeManageService") + private EgovCcmCmmnDetailCodeManageService cmmnDetailCodeManageService; + + //tree code 추가 + @Resource(name = "CmmnCodeManageService") + private EgovCcmCmmnCodeManageService cmmnCodeManageService; + + @Resource(name = "CmmnClCodeManageService") + private EgovCcmCmmnClCodeManageService cmmnClCodeManageService; + @RequestMapping(value = "/uss/rnt/EgovRankManageTree.do") public String selectRankManage(@ModelAttribute("menuCreatVO") MenuCreatVO menuCreatVO, @ModelAttribute("searchVO") ComDefaultVO searchVO, ModelMap model, MenuManageVO menuManageVO , HttpSession session ) throws Exception { @@ -73,11 +96,419 @@ public class EgovCustomRankManageController { } - @RequestMapping(value = {"/uss/rnt/EgovRankDataLoad.do"}, method = RequestMethod.POST) + //@RequestMapping(value = {"/uss/rnt/EgovRankDataLoad.do"}, method = RequestMethod.POST) + /* public ResponseEntity egovRankDataLoad(HttpServletRequest request , @RequestBody EgovCustomRankManageVO rankManageVO) throws Exception { System.out.println(" :::: egovRankDataLoad ::::"); return ResponseEntity.ok().body(egovCustomRankManageService.egovRankDataLoad(rankManageVO.getCodeId())); } - + */ + + //기본 코드 트리 가져오기 - 직급 + @RequestMapping(value = {"/uss/rnt/EgovRankDataLoadJtreeAjax.do" + , "/uss/rnt/EgovRankDataLoadJtreeAjax1.do" } + ) + public void EgovRankDataLoadJtreeAjax(@ModelAttribute("menuManageVO") MenuManageJTreeVO menuManageVO, + @ModelAttribute("searchVO") CmmnDetailCodeVO searchVO, + ModelMap model, HttpServletResponse response) 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")); + System.out.println("aaaaaaaaaaa"); + + //CmmnDetailCodeVO searchVO = new CmmnDetailCodeVO(); + searchVO.setId("CC401"); + List resultList = cmmnDetailCodeManageService.selectCmmnDetailCodeListWithCode(searchVO) ; + + CmmnDetailCodeVO topCmmnDetailCodeVO = new CmmnDetailCodeVO(); + topCmmnDetailCodeVO.setParent("#"); + topCmmnDetailCodeVO.setId("CC401"); + topCmmnDetailCodeVO.setText("직급관리"); + + resultList.add(0, topCmmnDetailCodeVO); + mapper.writeValue(out, resultList); + out.flush(); + } + + //기본 코드 트리 가져오기 - 직급 + @RequestMapping(value = {"/uss/rnt/EgovPstnDataLoadJtreeAjax.do" + , "/uss/rnt/EgovRankDataLoadJtreeAjax1.do" } + ) + public void EgovPstnDataLoadJtreeAjax(@ModelAttribute("menuManageVO") MenuManageJTreeVO menuManageVO, + @ModelAttribute("searchVO") CmmnDetailCodeVO searchVO, + ModelMap model, HttpServletResponse response) 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")); + + System.out.println("aaaaaaaaaaabbbbbbb"); + + //CmmnDetailCodeVO searchVO = new CmmnDetailCodeVO(); + searchVO.setId("CC402"); + List resultList = cmmnDetailCodeManageService.selectCmmnDetailCodeListWithCode(searchVO) ; + + CmmnDetailCodeVO topCmmnDetailCodeVO = new CmmnDetailCodeVO(); + topCmmnDetailCodeVO.setParent("#"); + topCmmnDetailCodeVO.setId("CC402"); + topCmmnDetailCodeVO.setText("부서관리"); + + resultList.add(0, topCmmnDetailCodeVO); + mapper.writeValue(out, resultList); + out.flush(); + } + + /** + * 직급 코드 정보를 등록한다. + * + * @param partInfVO + * @param model + * @return + * @throws Exception + */ + @Transactional(rollbackFor = Exception.class) + @RequestMapping("/uss/rnt/EgovRankDataInsertJtreeAjax.do") + public ModelAndView insertCcmCmmnInfoInsertAjax(@ModelAttribute("menuManageVO") MenuManageJTreeVO menuManageVO, + @ModelAttribute("cmmnDetailCodeVO") CmmnDetailCodeVO cmmnDetailCodeVO, + ModelMap model) throws Exception { + ModelAndView modelAndView = new ModelAndView(); + modelAndView.setViewName("jsonView"); + + LoginVO user = (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser(); + MenuManageVO resultVO = new MenuManageVO(); + try { + + String newCode = RandomStringUtils.random(3, new char[]{'1','2','3','4','5','6','7','8','9','A','B','C','D','E','F','G','H','I','J'}) ; + + System.out.println("cmmnDetailCodeVO.getNodeDepth()"); + System.out.println(cmmnDetailCodeVO.getNodeDepth()); + + if(cmmnDetailCodeVO.getNodeDepth().equals("200")) { //LETTCCMMNCLCODE 테이블(분류코드) + CmmnClCode cmmnClCode = new CmmnClCode(); //최초 들어올때 임의의 menuManageVO 생성 + cmmnClCode.setClCode(newCode); + cmmnClCode.setClCodeNm("분류코드"); + cmmnClCode.setClCodeDc("분류코드설명"); + cmmnClCode.setUseAt("Y"); + cmmnClCode.setFrstRegisterId(user.getId()); + + cmmnDetailCodeVO.setCodeId(newCode); //에러시에 setCodeNm 을 보여주기 위해 미리 set 함 + cmmnDetailCodeVO.setCodeNm("분류코드"); + cmmnDetailCodeVO.setCodeDc("분류코드설명"); + cmmnDetailCodeVO.setUseAt("Y"); + cmmnDetailCodeVO.setParent("0"); + + model.addAttribute("menuManageVO", cmmnDetailCodeVO); + + //분류코드와 공통코드에 같은 아이디 jstree에 무한루프로 먼저 검색 + int duplCnt = cmmnCodeManageService.isExistCode(cmmnDetailCodeVO) ; + if(duplCnt > 0 ) { + modelAndView.addObject("status", "dupl"); + model.addAttribute("menuManageVO", cmmnDetailCodeVO); + return modelAndView; + } + cmmnClCodeManageService.insertCmmnClCode(cmmnClCode); + }else if(cmmnDetailCodeVO.getNodeDepth().equals("3")){ //LETTCCMMNCODE 테이블(공통코드)) + CmmnCode cmmnCode = new CmmnCode(); + cmmnCode.setCodeId(newCode); + cmmnCode.setCodeIdNm("공통코드"); + cmmnCode.setCodeIdDc("공통코드설명"); + cmmnCode.setClCode(menuManageVO.getUpperMenuId()); + cmmnCode.setUseAt("Y"); + cmmnCode.setFrstRegisterId(user.getId()); + + cmmnDetailCodeVO.setParent(menuManageVO.getUpperMenuId()); //에러시에 setCodeNm 을 보여주기 위해 미리 set 함 + cmmnDetailCodeVO.setCodeId(newCode); + cmmnDetailCodeVO.setCodeNm("공통코드"); + cmmnDetailCodeVO.setCodeDc("공통코드설명"); + cmmnDetailCodeVO.setUseAt("Y"); + model.addAttribute("menuManageVO", cmmnDetailCodeVO); + + int duplCnt = cmmnCodeManageService.isExistCode(cmmnDetailCodeVO) ; + if(duplCnt > 0 ) { + modelAndView.addObject("status", "dupl"); + model.addAttribute("menuManageVO", cmmnDetailCodeVO); + return modelAndView; + } + cmmnCodeManageService.insertCmmnCode(cmmnCode); + }else if(cmmnDetailCodeVO.getNodeDepth().equals("2") + || cmmnDetailCodeVO.getNodeDepth().equals("4") + ){ //LETTCCMMNDETAILCODE 테이블(상세코드)) + cmmnDetailCodeVO.setCodeId(menuManageVO.getUpperMenuId()); + cmmnDetailCodeVO.setCode(newCode); + cmmnDetailCodeVO.setCodeNm("상세코드"); + cmmnDetailCodeVO.setCodeDc("상세코드설명"); + cmmnDetailCodeVO.setUseAt("Y"); + cmmnDetailCodeVO.setFrstRegisterId(user.getId()); + cmmnDetailCodeManageService.insertCmmnDetailCode(cmmnDetailCodeVO); + newCode = menuManageVO.getUpperMenuId()+"__"+ newCode ; + } + modelAndView.addObject("newMenuNo", newCode); + modelAndView.addObject("status", "success"); + }catch (Exception e) { + modelAndView.addObject("status", "dupl"); + model.addAttribute("menuManageVO", cmmnDetailCodeVO); + } + return modelAndView; + } + + /** + * 코드 이름 변경한다. + * + * @param partInfVO + * @param model + * @return + * @throws Exception + */ + @RequestMapping("/uss/rnt/EgovRankDataUpdateNmJtreeAjax.do") + public ModelAndView updateMenuInfoNmUpdateAjax(@ModelAttribute("menuManageVO") MenuManageJTreeVO menuManageVO, + @ModelAttribute("cmmnDetailCodeVO") CmmnDetailCodeVO cmmnDetailCodeVO, + ModelMap model) throws Exception { + ModelAndView modelAndView = new ModelAndView(); + modelAndView.setViewName("jsonView"); + LoginVO user = (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser(); + try{ + System.out.println("cmmnDetailCodeVO.getNodeDepth()"); + System.out.println(cmmnDetailCodeVO.getNodeDepth()); + if(cmmnDetailCodeVO.getNodeDepth().equals("200")) { //LETTCCMMNCLCODE 테이블(분류코드) + CmmnClCode cmmnClCodeVO = new CmmnClCode(); + cmmnClCodeVO.setClCode(menuManageVO.getMenuNo()); + cmmnClCodeVO.setClCodeNm(menuManageVO.getMenuNm()); + cmmnClCodeVO.setLastUpdusrId(user.getId()); + cmmnClCodeManageService.updateCmmnClCodeNm(cmmnClCodeVO); + }else if(cmmnDetailCodeVO.getNodeDepth().equals("3")){ //LETTCCMMNCODE 테이블(공통코드)) + CmmnCode cmmnCodeVO = new CmmnCode(); + cmmnCodeVO.setCodeId(menuManageVO.getMenuNo()); + cmmnCodeVO.setCodeIdNm(menuManageVO.getMenuNm()); + cmmnCodeVO.setLastUpdusrId(user.getId()); + cmmnCodeManageService.updateCmmnCodeNm(cmmnCodeVO); + }else if(cmmnDetailCodeVO.getNodeDepth().equals("4") + ||cmmnDetailCodeVO.getNodeDepth().equals("2")){ //LETTCCMMNDETAILCODE 테이블(상세코드)) + cmmnDetailCodeVO.setCodeId(menuManageVO.getUpperMenuId()); + cmmnDetailCodeVO.setCode(menuManageVO.getMenuNo().split("__")[1]); + cmmnDetailCodeVO.setCodeNm(menuManageVO.getMenuNm()); + cmmnDetailCodeVO.setLastUpdusrId(user.getId()); + cmmnDetailCodeManageService.updateCmmnDetailNmCode(cmmnDetailCodeVO); + } + modelAndView.addObject("status", "success"); + }catch (Exception e) { + modelAndView.addObject("status", "fail"); + } + return modelAndView; + } + + /** + * 공통 코드 정보를 조회한다. + * + * @param partInfVO + * @param model + * @return + * @throws Exception + */ + @RequestMapping("/uss/rnt/EgovRankDataCodeInfoJtreeAjax.do") + public ModelAndView EgovRankDataCodeInfoJtreeAjax(@ModelAttribute("menuManageVO") MenuManageJTreeVO menuManageVO, + @ModelAttribute("cmmnDetailCodeVO") CmmnDetailCodeVO cmmnDetailCodeVO, + @ModelAttribute("searchVO") ComDefaultVO searchVO , ModelMap model) throws Exception { + ModelAndView modelAndView = new ModelAndView(); + modelAndView.setViewName("jsonView"); + + cmmnDetailCodeVO.setCodeId(menuManageVO.getMenuNo()); + + /*if(cmmnDetailCodeVO.getMenuCodeChange().equals("Y")) { + modelAndView.addObject("status", "success"); + return modelAndView; + }*/ + + if(cmmnDetailCodeVO.getNodeDepth().equals("200")) { //LETTCCMMNCLCODE 테이블(분류코드) + CmmnClCode cmmnClCode = new CmmnClCode(); + cmmnClCode.setClCode(menuManageVO.getMenuNo()); + + CmmnClCode cmmnClCodeVO = cmmnClCodeManageService.selectCmmnClCodeDetail(cmmnClCode); + cmmnDetailCodeVO.setCodeId(cmmnClCodeVO.getClCode()); + cmmnDetailCodeVO.setCodeNm(cmmnClCodeVO.getClCodeNm()); + cmmnDetailCodeVO.setCodeDc(cmmnClCodeVO.getClCodeDc()); + cmmnDetailCodeVO.setUseAt(cmmnClCodeVO.getUseAt()); + cmmnDetailCodeVO.setParent("0"); + + model.addAttribute("menuManageVO", cmmnDetailCodeVO); + }else if(cmmnDetailCodeVO.getNodeDepth().equals("3")){ //LETTCCMMNCODE 테이블(공통코드) + CmmnCode cmmnCode = new CmmnCode(); + cmmnCode.setCodeId(menuManageVO.getMenuNo()); + + CmmnCode cmmnCodeVO =cmmnCodeManageService.selectCmmnCodeDetail(cmmnCode); + cmmnDetailCodeVO.setCodeId(cmmnCodeVO.getCodeId()); + cmmnDetailCodeVO.setCodeNm(cmmnCodeVO.getCodeIdNm()); + cmmnDetailCodeVO.setCodeDc(cmmnCodeVO.getCodeIdDc()); + cmmnDetailCodeVO.setUseAt(cmmnCodeVO.getUseAt()); + cmmnDetailCodeVO.setParent(cmmnCodeVO.getClCode()); + model.addAttribute("menuManageVO", cmmnDetailCodeVO); + }else if(cmmnDetailCodeVO.getNodeDepth().equals("2") + || cmmnDetailCodeVO.getNodeDepth().equals("4") + ){ //LETTCCMMNDETAILCODE 테이블(상세코드) + cmmnDetailCodeVO.setCodeId(menuManageVO.getUpperMenuId()); + cmmnDetailCodeVO.setCode(menuManageVO.getMenuNo().split("__")[1]); + CmmnDetailCode cmmnDetailCode = new CmmnDetailCode(); + cmmnDetailCode = cmmnDetailCodeManageService.selectCmmnDetailCodeDetail(cmmnDetailCodeVO); + + cmmnDetailCodeVO.setCodeId(cmmnDetailCode.getCode()); + cmmnDetailCodeVO.setCodeNm(cmmnDetailCode.getCodeNm()); + cmmnDetailCodeVO.setCodeDc(cmmnDetailCode.getCodeDc()); + cmmnDetailCodeVO.setUseAt(cmmnDetailCode.getUseAt()); + cmmnDetailCodeVO.setParent(cmmnDetailCode.getCodeId()); + cmmnDetailCodeVO.setSortNo(cmmnDetailCode.getSortNo()); + model.addAttribute("menuManageVO", cmmnDetailCodeVO); + } + modelAndView.addObject("status", "success"); + return modelAndView; + } + + /** + * 매뉴 정보를 삭제한다.(트리구조에서) + * + * @param partInfVO + * @param model + * @return + * @throws Exception + */ + @Transactional(rollbackFor = Exception.class) + @RequestMapping(value = "/uss/rnt/EgovRankDataDeketeJtreeAjax.do") + public ModelAndView EgovRankDataDeketeJtreeAjax(@ModelAttribute("menuManageVO") MenuManageJTreeVO menuManageVO, + @ModelAttribute("cmmnDetailCodeVO") CmmnDetailCodeVO cmmnDetailCodeVO,ModelMap model) throws Exception { + ModelAndView modelAndView = new ModelAndView(); + modelAndView.setViewName("jsonView"); + cmmnDetailCodeVO.setCodeId(menuManageVO.getMenuNo()); + + + try { + //cmmnDetailCodeVO.setCode(menuManageVO.getMenuNo().split("__")[1]); + cmmnDetailCodeVO.setCode(menuManageVO.getMenuNo()); + cmmnDetailCodeVO.setCodeId("CC401"); + + cmmnDetailCodeManageService.deleteCmmnDetailCode(cmmnDetailCodeVO); + modelAndView.addObject("status", "success"); + }catch(Exception e) { + modelAndView.addObject("status", "fail"); + } + + /* + if(cmmnDetailCodeVO.getNodeDepth().equals("200")) { //lettccmmnclcode 테이블 + try { + CmmnCodeVO searchCodeVO = new CmmnCodeVO(); //참조키 리스트 조회(공통코드) + searchCodeVO.setClCode(menuManageVO.getMenuNo()); + int extCnt = cmmnCodeManageService.selectExistCmmncodeCnt(searchCodeVO) ; + if(extCnt > 0) { + modelAndView.addObject("status", "duplPk"); + return modelAndView; + } + CmmnClCode cmmnClCode = new CmmnClCode(); //분류코드 + cmmnClCode.setClCode(menuManageVO.getMenuNo()); + cmmnClCodeManageService.deleteCmmnClCode(cmmnClCode); + modelAndView.addObject("status", "success"); + }catch(Exception e) { + modelAndView.addObject("status", "fail"); + } + }if(cmmnDetailCodeVO.getNodeDepth().equals("3")) { //공통코드 + try { + CmmnCode cmmnCode = new CmmnCode(); + cmmnCode.setCodeId(menuManageVO.getMenuNo()); + cmmnCodeManageService.deleteCmmnCode(cmmnCode); + modelAndView.addObject("status", "success"); + }catch(Exception e) { + modelAndView.addObject("status", "fail"); + } + }else if(cmmnDetailCodeVO.getNodeDepth().equals("4") + ||cmmnDetailCodeVO.getNodeDepth().equals("2")){ //LETTCCMMNDETAILCODE 테이블(상세코드)) + try { + //cmmnDetailCodeVO.setCode(menuManageVO.getMenuNo().split("__")[1]); + cmmnDetailCodeVO.setCode(menuManageVO.getMenuNo()); + cmmnDetailCodeVO.setCodeId(menuManageVO.getUpperMenuId()); + + cmmnDetailCodeManageService.deleteCmmnDetailCode(cmmnDetailCodeVO); + modelAndView.addObject("status", "success"); + }catch(Exception e) { + modelAndView.addObject("status", "fail"); + } + } + */ + return modelAndView; + } + + /** + * 코드 정보를 수정한다. + * + * @param partInfVO + * @param model + * @return + * @throws Exception + */ + @SuppressWarnings("unused") + @Transactional(rollbackFor = Exception.class) + @RequestMapping("/uss/rnt/EgovRankDataUpdateJtreeAjax.do") + public ModelAndView EgovRankDataUpdateJtreeAjax( + @ModelAttribute("menuManageVO") MenuManageJTreeVO menuManageVO, + @ModelAttribute("cmmnDetailCodeVO") CmmnDetailCodeVO cmmnDetailCodeVO, + @ModelAttribute("searchVO") ComDefaultVO searchVO, + ModelMap model) throws Exception { + ModelAndView modelAndView = new ModelAndView(); + modelAndView.setViewName("jsonView"); + + LoginVO user = (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser(); + try{ + System.out.println("cmmnDetailCodeVO.getNodeDepth()"); + System.out.println(cmmnDetailCodeVO.getNodeDepth()); + String newCode = menuManageVO.getMenuNo() ; + System.out.println(newCode); + + cmmnDetailCodeVO.setCodeId(menuManageVO.getUpperMenuId()); + cmmnDetailCodeVO.setCode(menuManageVO.getMenuNo()); + cmmnDetailCodeVO.setTempCodeId(menuManageVO.getTmp_Id()); + cmmnDetailCodeVO.setCodeNm(menuManageVO.getMenuNm()); + cmmnDetailCodeVO.setCodeDc(menuManageVO.getMenuDc()); + cmmnDetailCodeVO.setUseAt(menuManageVO.getUseYn()); + cmmnDetailCodeVO.setLastUpdusrId(user.getId()); + //cmmnDetailCodeManageService.updateCmmnDetailCode(cmmnDetailCodeVO); + cmmnDetailCodeManageService.updateCmmnDetailCodePk(cmmnDetailCodeVO); + newCode = menuManageVO.getUpperMenuId()+"__"+menuManageVO.getMenuNo(); + + /* + if(cmmnDetailCodeVO.getNodeDepth().equals("200")) { //LETTCCMMNCLCODE 테이블(분류코드) + CmmnClCode cmmnClCodeVO = new CmmnClCode(); + cmmnClCodeVO.setClCode(menuManageVO.getMenuNo()); + cmmnClCodeVO.setTempClCode(menuManageVO.getTmp_Id()); + cmmnClCodeVO.setClCodeNm(menuManageVO.getMenuNm()); + cmmnClCodeVO.setClCodeDc(menuManageVO.getMenuDc()); + cmmnClCodeVO.setLastUpdusrId(user.getId()); + cmmnClCodeVO.setUseAt(menuManageVO.getUseYn()); + cmmnClCodeManageService.updateCmmnClCodePk(cmmnClCodeVO); + }else if(cmmnDetailCodeVO.getNodeDepth().equals("3")){ //LETTCCMMNCODE 테이블(공통코드)) + CmmnCode cmmnCodeVO = new CmmnCode(); + cmmnCodeVO.setCodeId(menuManageVO.getMenuNo()); + cmmnCodeVO.setTempCodeId(menuManageVO.getTmp_Id()); + cmmnCodeVO.setCodeIdNm(menuManageVO.getMenuNm()); + cmmnCodeVO.setCodeIdDc(menuManageVO.getMenuDc()); + cmmnCodeVO.setUseAt(menuManageVO.getUseYn()); + cmmnCodeVO.setLastUpdusrId(user.getId()); + cmmnCodeManageService.updateCmmnCodePk(cmmnCodeVO); + }else if(cmmnDetailCodeVO.getNodeDepth().equals("4") + || cmmnDetailCodeVO.getNodeDepth().equals("2") + ){ //LETTCCMMNDETAILCODE 테이블(상세코드)) + cmmnDetailCodeVO.setCodeId(menuManageVO.getUpperMenuId()); + cmmnDetailCodeVO.setCode(menuManageVO.getMenuNo()); + cmmnDetailCodeVO.setTempCodeId(menuManageVO.getTmp_Id()); + cmmnDetailCodeVO.setCodeNm(menuManageVO.getMenuNm()); + cmmnDetailCodeVO.setCodeDc(menuManageVO.getMenuDc()); + cmmnDetailCodeVO.setUseAt(menuManageVO.getUseYn()); + cmmnDetailCodeVO.setLastUpdusrId(user.getId()); + //cmmnDetailCodeManageService.updateCmmnDetailCode(cmmnDetailCodeVO); + cmmnDetailCodeManageService.updateCmmnDetailCodePk(cmmnDetailCodeVO); + newCode = menuManageVO.getUpperMenuId()+"__"+menuManageVO.getMenuNo(); + } + */ + modelAndView.addObject("status", "success"); + modelAndView.addObject("newMenuNo", newCode); + modelAndView.addObject("nodeDepth", cmmnDetailCodeVO.getNodeDepth()); + }catch (Exception e) { + modelAndView.addObject("status", "fail"); + } + return modelAndView; + } } \ No newline at end of file diff --git a/src/main/resources/egovframework/sqlmap/let/sym/ccm/cde/EgovCmmnDetailCodeManage_SQL_Mysql.xml b/src/main/resources/egovframework/sqlmap/let/sym/ccm/cde/EgovCmmnDetailCodeManage_SQL_Mysql.xml index 7f22146c..bfcebb0a 100644 --- a/src/main/resources/egovframework/sqlmap/let/sym/ccm/cde/EgovCmmnDetailCodeManage_SQL_Mysql.xml +++ b/src/main/resources/egovframework/sqlmap/let/sym/ccm/cde/EgovCmmnDetailCodeManage_SQL_Mysql.xml @@ -125,6 +125,17 @@ ]]> + + + + diff --git a/src/main/webapp/WEB-INF/jsp/cmm/uss/rnt/EgovRankManageTree.jsp b/src/main/webapp/WEB-INF/jsp/cmm/uss/rnt/EgovRankManageTree.jsp index 52d80874..7882e8ec 100644 --- a/src/main/webapp/WEB-INF/jsp/cmm/uss/rnt/EgovRankManageTree.jsp +++ b/src/main/webapp/WEB-INF/jsp/cmm/uss/rnt/EgovRankManageTree.jsp @@ -37,13 +37,488 @@ * jstree ********************************* */ - - $(document).ready(function() { - loadProcess(); - + //loadProcess(); + jstreeInit(); }); + var newNodeId = ""; + var modiNodeId = ""; + + function jstreeInit() { + //alert("init_"); + $('#kopost_organization').jstree({ + "core" : { + "animation" : 0, + "multiple" : false, + "check_callback" : true, + "themes" : { "stripes" : true }, + "data" : { + //"url" : "", + "url" : "", + + "dataType" : "json", + "data" : function (node) { + console.log('node : ', node); + return {'id' : node.id } + } + } + }, + "types" : { + "#" : { + /* "max_children" : 4, */ + "max_depth" : 4, + "valid_children" : ["root"] + }, + "root" : { + //"icon" : "/static/3.3.5/assets/images/tree_icon.png", + "icon" : "glyphicon glyphicon-flash", + "valid_children" : ["default"] + }, + "default" : { + "valid_children" : ["default","file"] + }, + "file" : { + //"icon" : "glyphicon glyphicon-file", + "icon" : "jstree-file", + "valid_children" : [] + } + }, + "plugins" : [ + "contextmenu", "search", + "types" + //, "unique" + //, "wholerow" + // "dnd" move기능 삭제 + // "checkbox" 체크박스 삭제 + ] + }) + .bind('loaded.jstree', function(e, data) { + //alert("loaded_"); + //console.log("jstree loaded"); + //$(this).jstree(true).open_all(); + $('#kopost_organization').jstree('open_node' , $('#0') ) + }) + .on('select_node.jstree', function (e, data) { //우클릭시 + //alert("select_node"); + if(!$('.organ_rightbox').is(":visible")){ + $(".organ_rightbox").show(); + } + + //alert("select_node1"); + + //alert(data.node.parents.length); + + if (data.node.parents.length<2){ + $("table.tbType02").hide(); + $("div.btn_layout01").hide(); + + }else if (data.node.parents.length==2){ + $("table.tbType02").show(); + $("div.btn_layout01").show(); + } + + /* 코드 선택 */ + var menuNo = data.node.id; + var upperMenuId = data.node.parent; + //하위 코드가 있으면 코드 변경못하게 + $('#nodeDepth').val(data.node.parents.length); + $('#upperMenuId').val(upperMenuId); + + //alert("select_node2"); + + if(data.node.children.length > 0){ + $('#menuNo').attr("readonly",true); + + }else{ + $('#menuNo').attr("readonly",false); + } + + //alert("select_node3"); + + //코드 추가시 자동 선택되게 + if(newNodeId !=""){ + menuNo = newNodeId ; + newNodeId = ""; + $('#'+data.instance.get_node(menuNo).a_attr.id).trigger("click"); //클릭 이벤트 발생 + } + + //alert("select_node4"); + + $("#menuTopNm").text(data.node.text); + + //alert("select_node5"); + + $.ajax({ + type:"POST", + url:"", + data:{ "menuNo" : menuNo, "upperMenuId" : upperMenuId, "nodeDepth" : data.node.parents.length}, + dataType:'json', + async: false, + //timeout:(1000*30), + success : function(returnData, status) { + if (status == "success") { + var cmmnClCodeVO = returnData.menuManageVO; + //상세 정보 채우기 + fn_setting_menuNo(cmmnClCodeVO); + + } else { + alert("코드 조회가 실패되었습니다."); + return; + + } + }, + error : function(request , status, error) { +// alert("부서 정보 조회가 실패되었습니다."); + //alert("code:"+request.status+"\n"+"message:"+request.responseText+"\n"+"error:"+error); + }, + complete : function () { + deleteLodingBar(); + } + }); + }) + .on('rename_node.jstree', function (e, data) { //코드명 변경 + //alert("rename"); + var nodeId = data.node.id; + var oldText = data.old; + var newText = data.text; + var upperMenuId = data.node.parent; + + if (data.node.parents.length == 1) { + alert("최상위 공통코드 명은 변경할수 없습니다."); + data.instance.refresh(); + }else if (data.node.parents.length > 0) { + /* 부서명 변경 */ + if (oldText != newText) { + //if (confirm("[" + oldText + "]" + "부서를 " + "[" + newText + "]" + "로 변경하시겠습니까?" )) { + if (confirm("코드명을 변경하시겠습니까?" )) { + $.ajax({ + type:"POST", + url:"", + data:{ "menuNo" : nodeId, "upperMenuId" : upperMenuId, "menuNm" : newText , "nodeDepth" : data.node.parents.length }, + dataType:'json', + success : function(returnData, status) { + if (status == "success") { + alert("코드명이 변경되었습니다."); + } else { alert("코드명 변경이 실패되었습니다."); return;} + }, + error : function(request , status, error) { + alert("코드명 변경이 실패되었습니다."); + }, + complete : function () { + data.instance.refresh(); + } + }); + } else { + data.instance.refresh(); + } + } + } else {/* 코드 추가 */ + + } + }) + .on('delete_node.jstree', function (e, data) { + + //alert("delete"); + + var upperMenuId = data.node.parent; + + modiNodeId = upperMenuId; + + fn_delete_menuInfo(data); + + /* 코드 삭제 */ + /* + var upperMenuId = data.node.parent; + if(data.node.parents.length == 1){ + alert("최상위 공통코드는 삭제할수 없습니다."); + data.instance.refresh(); + }else{ + if(data.node.children.length != 0){ + alert("하위 코드를 먼저 삭제 후 코드를 삭제해 주세요."); + data.instance.refresh(); + }else{ + if (confirm("[" + data.node.text + "]" + " 코드를 삭제하시겠습니까?")){ + $.ajax({ + type:"POST", + url:"", + data:{ "menuNo" : data.node.id , "upperMenuId" : upperMenuId, "nodeDepth" : data.node.parents.length }, + dataType:'json', + //timeout:(1000*30), + success : function(returnData, status) { + if (status == "success") { + alert("코드 정보가 삭제되었습니다."); + fn_init_menuInfo(); + } else { alert("코드 정보 삭제가 실패되었습니다."); return;} + }, + error : function(request , status, error) { + alert("코드 정보 삭제가 실패되었습니다."); + //alert("code:"+request.status+"\n"+"message:"+request.responseText+"\n"+"error:"+error); + }, + complete : function () { + data.instance.refresh(); + } + }); + } else { + data.instance.refresh(); + } + } + } + */ + }) + .on('create_node.jstree', function(e, data) { + //alert(data.node.parents.length); + + if (data.node.parents.length >= 3) { + alert("더 이상 하위 코드를 생성할수 없습니다."); + data.instance.refresh(); + }else{ + if (confirm("코드를 추가하시겠습니까?")){ + var instance = data.instance; + var menuNm = data.text; + var upperMenuId = data.node.parent; + var menuOrdr = 1; + var childrenNodes = instance.get_node(upperMenuId).children; + + // 하위 코드 있을 시 마지막 부서 sort_ord + 1 + if (childrenNodes.length > 1) { + //var lastChildrenNode = instance.get_node(childrenNodes[childrenNodes.length - 2]); + //sortOrd = lastChildrenNode.li_attr.sortOrd + 1; + menuOrdr = childrenNodes.length ; + } + + $.ajax({ + type:"POST", + url:"", + data:{ "menuNm" : menuNm, "upperMenuId" : upperMenuId, "nodeDepth" :data.node.parents.length }, + dataType:'json', + //timeout:(1000*30), + success : function(returnData, status) { + if(returnData.status == "success") { + alert("코드가 추가 되었습니다."); + //fn_select_menuNo(returnData.menuManageVO, returnData.menuManageVO.menuUserType); + newNodeId = returnData.newMenuNo ; //코드추가후 노드선택 + modiNodeId = returnData.newMenuNo ; //코드추가후 노드선택 + //alert(returnData.newMenuNo); + }else if(returnData.status == "dupl"){ + alert("중복된 아이디가 있습니다.\n 중복된 아이디변경/삭제후 다시 추가해 주세요\n"+ "("+returnData.menuManageVO.codeNm+")"); + return; + }else{ + alert("코드 추가가 실패하였습니다."); + return; + } + }, + error : function(request , status, error) { + alert("코드 추가가 실패되었습니다.") + }, + complete : function () { + data.instance.refresh(); + } + }); + }else{ + data.instance.refresh(); + } + } + }) + .on('move_node.jstree', function (e, data) { + alert("move_node.jstree"); + + /* 코드 위치 변경 */ + var instance = data.instance; + var menuNo = data.node.id; + var childrenNodes = instance.get_node(menuNo).children; + + // 하위 코드 있을 시 이동 금지 + /* if (childrenNodes.length > 1) { + alert("하위 코드가 있으면 코드 이동을 할 수 없습니다."); + data.instance.refresh(); + return; + } */ + + if (confirm("코드 위치를 변경하시겠습니까?" )){ + //var partIdx = data.node.id; + var upperMenuId = data.parent; + var menuOrdr = data.position + 1; + var sortOver = "A" ; + $.ajax({ + type:"POST", + url:"", + data:{ "menuNo" : menuNo, "upperMenuId" : upperMenuId, "menuOrdr" : menuOrdr}, + dataType:'json', + //timeout:(1000*30), + success : function(returnData, status) { + if (status == "success") { + alert("코드 위치가 변경되었습니다."); + } else { alert("코드 위치 변경이 실패되었습니다."); return;} + }, + error : function(request , status, error) { + alert("코드 위치 변경이 실패되었습니다."); + //alert("code:"+request.status+"\n"+"message:"+request.responseText+"\n"+"error:"+error); + }, + complete : function () { + data.instance.refresh(); + } + }); + } else { + data.instance.refresh(); + } + }) + .on("refresh.jstree", function (e,data) { + //alert("refresh.jstree"); + //alert(modiNodeId); + + if(modiNodeId !=""){ + $('#'+data.instance.get_node(modiNodeId).a_attr.id).trigger("click"); + } + }); + } + + //코드 정보 세팅 + function fn_setting_menuNo(cmmnClCodeVO){ + //upperIdxs = upperIdxs.join("|"); + var tmpHtml = ""; + //alert("select_node6"); + if(cmmnClCodeVO!=null){ + $('#menuNo').val(cmmnClCodeVO.code); + $('#tmp_Id').val(cmmnClCodeVO.codeId); + $('#menuNm').val(cmmnClCodeVO.codeNm); + $('#menuDc').val(cmmnClCodeVO.codeDc); + $('#upperMenuIdText').text(cmmnClCodeVO.parent); + $('#upperMenuId').val(cmmnClCodeVO.parent); + $('#useYn').val(cmmnClCodeVO.useAt); + $('#sort').val(cmmnClCodeVO.sortNo); + $(".main1_delete_btn").removeAttr("onclick"); + $(".main1_delete_btn").attr("onclick", "fn_delete_menuInfo('"+cmmnClCodeVO.codeId+"');return false;"); + $(".main1_save_btn").removeAttr("onclick"); + $(".main1_save_btn").attr("onclick", "fn_save_menuInfo('"+cmmnClCodeVO.codeId+"');return false;"); + //selectupdate + //$('#useYn').niceSelect('update'); + } + //alert("select_node7"); + } + + //코드 정보 삭제 + function fn_delete_menuInfo() { + //alert($('#menuNo').val()); + + var p_menuNo = $('#menuNo').val(); + + + if(p_menuNo == null || "undefined"== p_menuNo){ + alert("삭제 하려는 코드를 먼저 선택해주세요."); + return ; + } + + var menuForm = document.menuForm; + if(""==menuForm.menuNo.value){ + alert("코드는 필수 값입니다"); return false; + } + + var instance = $('#kopost_organization').jstree(true); + + + modiNodeId = $('#upperMenuId').val(); + + if (confirm("코드를 삭제 하시겠습니까?")){ + $.ajax({ + type:"POST", + "url" : "", + data:{ "menuNo" : p_menuNo, "upperMenuId" : $('#upperMenuId').val() }, + dataType:'json', + //timeout:(1000*30), + success : function(returnData, status) { + if (returnData.status == "success") { + //코드 목록 갱신 + var instance = $('#kopost_organization').jstree(true); + alert("코드 정보가 삭제 되었습니다."); + $("#kopost_organization").jstree("refresh"); + jstreeInit(); + } else if(returnData.status == "duplPk"){ + alert("삭제하려는 코드를 참조하고 있는 코드가 있습니다.\n 참조하는 코드를 삭제후 다시 시도해 주세요\n"+ "("+returnData.menuManageResultVO.menuCours+")"); + return; + } + else { + alert("코드 삭제가 실패되었습니다."); + return; + } + }, + error : function(request , status, error) { + alert("코드 삭제가 실패되었습니다.."); + }, + complete : function () { + $("#kopost_organization").jstree("refresh"); + } + }); + } + } + + //코드 정보 저장. 등록/수정 + function fn_save_menuInfo(menuNo) { + + var special_pattern = /[`~!@#$%^&*|\\\'\";:\/?.]/gi; + if(special_pattern.test(document.menuForm.menuNo.value) == true){ + alert("코드 코드는 특수문자를 쓸수 없습니다.") ; + return; + } + + var p_menuNo = $('#menuNo').val(); + + if(p_menuNo == null || "undefined"== p_menuNo){ + alert("저장 하려는 코드를 먼저 코드트리에서 생성해 주세요."); return ; + } + + var menuForm = document.menuForm; + if(""==menuForm.menuNo.value){ + alert("코드는 필수 값입니다"); return false; + } + + if(""==menuForm.menuDc.value){ + alert("코드 설명은 필수 값입니다"); return false; + } + + var url = ""; + url = ""; + var params = $(menuForm).serialize(); + $.ajax({ + type:"POST", + "url":url, + data:params, + dataType:'json', + async: false, + success : function(returnData, status) { + if (returnData.status == "success") { + alert("코드 정보가 저장되었습니다."); + //modiNodeId = $('#menuNo').val(); + modiNodeId = returnData.newMenuNo; + + } else if(returnData.status == "upperDupl"){ + alert("상위 코드 번호가 있습니다."); + return; + }else if(returnData.status == "dupl"){ + alert("이미 사용하고 있는 코드 번호가 있습니다."); + return; + }else if(returnData.status == "duplProNm"){ + alert("이미 사용하고 있는 프로그램파일명이 있습니다."); + return; + }else{ + alert("코드 정보 저장이 실패되었습니다."); return; + } + }, + error : function(request , status, error) { + alert("코드 정보 저장이 실패되었습니다."); + }, + complete : function () { + $("#kopost_organization").jstree("refresh"); + } + }); + + } + + + + + + // 초기 데이터 만드는 function function fn_makeList(data){ console.log(' makeList data : ', data); @@ -270,10 +745,10 @@