2022-10-12 12:38 관리자 직급관리 개발

This commit is contained in:
myname 2022-10-12 12:38:54 +09:00
parent 80ce983b9f
commit 4f0f50e099
9 changed files with 1378 additions and 29 deletions

View File

@ -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<CmmnDetailCodeVO> 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 : 이준호
* 결재선 대결 팝업

View File

@ -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();

View File

@ -68,10 +68,14 @@ public interface EgovCcmCmmnDetailCodeManageService {
*/
void updateCmmnDetailCode(CmmnDetailCode cmmnDetailCode) throws Exception;
void updateCmmnDetailNmCode(CmmnDetailCode cmmnDetailCode) throws Exception;
List<CmmnDetailCode> selectCmmnCodeAllList(CmmnDetailCode cmmnDetailCode) throws Exception;
List<CmmnDetailCodeVO> selectCmmnDetailCodeListAll(CmmnDetailCodeVO searchVO) throws Exception;
List<CmmnDetailCodeVO> selectCmmnDetailCodeListWithCode(CmmnDetailCodeVO searchVO) throws Exception;
void updateCmmnDetailCodePk(CmmnDetailCodeVO cmmnDetailCodeVO) throws Exception;
}

View File

@ -86,6 +86,10 @@ public class CmmnDetailCodeManageDAO extends EgovAbstractDAO {
update("CmmnDetailCodeManageDAO.updateCmmnDetailCode", cmmnDetailCode);
}
public void updateCmmnDetailNmCode(CmmnDetailCode cmmnDetailCode) throws Exception {
update("CmmnDetailCodeManageDAO.updateCmmnDetailNmCode", cmmnDetailCode);
}
@SuppressWarnings("unchecked")
public List<CmmnDetailCode> selectCmmnCodeAllList(CmmnDetailCode cmmnDetailCode) throws Exception {
@ -97,6 +101,11 @@ public class CmmnDetailCodeManageDAO extends EgovAbstractDAO {
return (List<CmmnDetailCodeVO>) list("CmmnDetailCodeManageDAO.selectCmmnDetailCodeListAll", searchVO);
}
@SuppressWarnings("unchecked")
public List<CmmnDetailCodeVO> selectCmmnDetailCodeListWithCode(CmmnDetailCodeVO searchVO) throws Exception{
return (List<CmmnDetailCodeVO>) list("CmmnDetailCodeManageDAO.selectCmmnDetailCodeListWithCode", searchVO);
}
public void updateCmmnDetailCodePk(CmmnDetailCodeVO cmmnDetailCodeVO) throws Exception{
update("CmmnDetailCodeManageDAO.updateCmmnDetailCodePk", cmmnDetailCodeVO);
}

View File

@ -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<CmmnDetailCode> 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<CmmnDetailCodeVO> selectCmmnDetailCodeListWithCode(CmmnDetailCodeVO searchVO) throws Exception {
return cmmnDetailCodeManageDAO.selectCmmnDetailCodeListWithCode(searchVO);
}
@Override
public void updateCmmnDetailCodePk(CmmnDetailCodeVO cmmnDetailCodeVO) throws Exception {
cmmnDetailCodeManageDAO.updateCmmnDetailCodePk(cmmnDetailCodeVO);

View File

@ -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<RestResponse> 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<CmmnDetailCodeVO> 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<CmmnDetailCodeVO> 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;
}
}

View File

@ -125,6 +125,17 @@
]]>
</update>
<update id="CmmnDetailCodeManageDAO.updateCmmnDetailNmCode">
<![CDATA[
UPDATE LETTCCMMNDETAILCODE
SET CODE_NM = #codeNm#
, LAST_UPDT_PNTTM = NOW()
, LAST_UPDUSR_ID = #lastUpdusrId#
WHERE CODE_ID = #codeId#
AND CODE = #code#
]]>
</update>
<!-- <delete id="CmmnDetailCodeManageDAO.deleteCmmnDetailCode">
<![CDATA[
UPDATE LETTCCMMNDETAILCODE
@ -174,6 +185,22 @@
]]>
</select>
<select id="CmmnDetailCodeManageDAO.selectCmmnDetailCodeListWithCode" parameterClass="CmmnDetailCodeVO" resultClass="CmmnDetailCodeVO">
<![CDATA[
SELECT * FROM (
/*
SELECT CL_CODE_NM AS text , CL_CODE AS id , '0' AS parent , USE_AT AS useAt , '' as sort FROM LETTCCMMNCLCODE
UNION
SELECT CODE_ID_NM AS text , CODE_ID AS id , '0' AS parent, USE_AT AS useAt, '' as sort FROM LETTCCMMNCODE WHERE CODE_ID=id
UNION
*/
SELECT CODE_NM AS text , CONCAT(CODE_ID,'__',CODE) AS id , CODE_ID AS parent , USE_AT AS useAt, SORT as sort FROM LETTCCMMNDETAILCODE WHERE CODE_ID=#id#
) A
ORDER BY A.parent , A.sort+0
]]>
</select>
<update id="CmmnDetailCodeManageDAO.updateCmmnDetailCodePk" parameterClass="CmmnDetailCode">
UPDATE LETTCCMMNDETAILCODE
SET CODE_NM = #codeNm#

View File

@ -38,9 +38,347 @@
*********************************
*/
$(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" : "<c:url value='/sym/ccm/ccc/EgovCcmCmmnCodeTreeInitAjax.do'/>",
"url" : "<c:url value='/uss/rnt/EgovPstnDataLoadJtreeAjax.do'/>",
"dataType" : "json",
"data" : function (node) {
console.log('node : ', node);
return {'id' : node.id }
}
}
},
"types" : {
"#" : {
/* "max_children" : 4, */
"max_depth" : 40,
"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");
/* 코드 선택 */
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:"<c:url value='/uss/rnt/EgovRankDataCodeInfoJtreeAjax.do' />",
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:"<c:url value='/sym/ccm/ccc/EgovCcmCmmnInfoNmUpdateAjax.do' />",
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;
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:"<c:url value='/sym/ccm/ccc/EgovCcmCmmnInfoDeleteAjax.do' />",
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 >= 40) {
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:"<c:url value='/uss/rnt/EgovRankDataInsertJtreeAjax.do' />",
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 ; //코드추가후 노드선택
}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:"<c:url value='/sym/mnu/mcm/EgovMenuInfoMoveAjax.do' />",
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");
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
function fn_makeList(data){
var resultList = data['dataList'];
@ -276,10 +614,10 @@
<div class="menu_wrap">
<div class="menu_area">
<div class="btn_wrap">
<button type="button" class="btnType02 all_open" onclick="$('#rank_organization').jstree('open_all' );">모두열기</button>
<button type="button" class="btnType03 all_close" onclick="$('#rank_organization').jstree('close_all');">모두닫기</button>
<button type="button" class="btnType02 all_open" onclick="$('#kopost_organization').jstree('open_all' );">모두열기</button>
<button type="button" class="btnType03 all_close" onclick="$('#kopost_organization').jstree('close_all');">모두닫기</button>
</div>
<div class="menu_list" id="rank_organization" class="jstree_orgChart">
<div class="menu_list" id="kopost_organization" class="jstree_orgChart">
<!-- <ul> -->
<!-- <li>직급 -->
<!-- <ul> -->

View File

@ -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" : "<c:url value='/sym/ccm/ccc/EgovCcmCmmnCodeTreeInitAjax.do'/>",
"url" : "<c:url value='/uss/rnt/EgovRankDataLoadJtreeAjax.do'/>",
"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:"<c:url value='/uss/rnt/EgovRankDataCodeInfoJtreeAjax.do' />",
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:"<c:url value='/uss/rnt/EgovRankDataUpdateNmJtreeAjax.do' />",
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:"<c:url value='/sym/ccm/ccc/EgovCcmCmmnInfoDeleteAjax.do' />",
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:"<c:url value='/uss/rnt/EgovRankDataInsertJtreeAjax.do' />",
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:"<c:url value='/sym/mnu/mcm/EgovMenuInfoMoveAjax.do' />",
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" : "<c:url value='/uss/rnt/EgovRankDataDeketeJtreeAjax.do'/>",
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 = "<c:url value='/uss/rnt/EgovRankDataUpdateJtreeAjax.do'/>";
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 @@
<div class="menu_wrap">
<div class="menu_area">
<div class="btn_wrap">
<button type="button" class="btnType02 all_open" onclick="$('#rank_organization').jstree('open_all' );">모두열기</button>
<button type="button" class="btnType03 all_close" onclick="$('#rank_organization').jstree('close_all');">모두닫기</button>
<button type="button" class="btnType02 all_open" onclick="$('#kopost_organization').jstree('open_all' );">모두열기</button>
<button type="button" class="btnType03 all_close" onclick="$('#kopost_organization').jstree('close_all');">모두닫기</button>
</div>
<div class="menu_list" id="rank_organization" class="jstree_orgChart">
<div class="menu_list" id="kopost_organization" class="jstree_orgChart">
<!-- <ul> -->
<!-- <li>직급 -->
@ -298,7 +773,7 @@
<th><span>직급코드</span></th>
<td>
<div id="select_part">
<input type="text" name="menuNo" id="rankNo" />
<input type="text" name="menuNo" id="menuNo" />
<input type="hidden" id="tmp_Id" name="tmp_Id"/><!-- 이전메뉴 No -->
</div>
</td>
@ -310,18 +785,26 @@
<input type="hidden" id="tmp_Name" name="tmp_Name"/><!-- 이전메뉴 이름 -->
</td>
</tr>
<tr>
<th><span>상위 코드</span></th>
<td>
<span id="upperMenuIdText"></span>
<input type="hidden" id="upperMenuId" name="upperMenuId"/><!-- 이전메뉴 No -->
</td>
</tr>
<tr>
<th><span>직급설명</span></th>
<td>
<input type="text" name="menuNm" id="menuNm" />
<input type="hidden" id="tmp_Name" name="tmp_Name"/><!-- 이전메뉴 이름 -->
<input type="text" name="menuDc" id="menuDc" />
</td>
</tr>
<tr>
<th><span>코드순서</span></th>
<td>
<input type="text" name="menuNm" id="menuNm" />
<input type="hidden" id="tmp_Name" name="tmp_Name"/><!-- 이전메뉴 이름 -->
<input type="text" name="sort" id="sort" />
</td>
</tr>
<tr>
@ -358,8 +841,8 @@
</div>
<div class="area_right">
<button type="button" class="btnType04" id="deleteBtn" onClick="fn_delete(); return false;">삭제</button>
<button type="button" class="btnType06" id="saveBtn" onClick="fn_save(); return false;">저장</button>
<button type="button" class="btnType04 main1_delete_btn" id="deleteBtn" onClick="fn_delete_menuInfo(); return false;">삭제</button>
<button type="button" class="btnType06 main1_save_btn" id="saveBtn" onClick="fn_save_menuInfo(); return false;">저장</button>
</div>
</div>
<!-- //btn_wrap -->