File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
package itn.let.org.web;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
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.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.servlet.ModelAndView;
import com.fasterxml.jackson.databind.ObjectMapper;
import egovframework.rte.fdl.idgnr.EgovIdGnrService;
import egovframework.rte.fdl.security.userdetails.util.EgovUserDetailsHelper;
import itn.com.cmm.LoginVO;
import itn.let.org.service.LocVO;
import itn.let.org.service.OrgCharVO;
import itn.let.org.service.OrgChartManageService;
import itn.let.sec.ram.service.AuthorManageVO;
import itn.let.sec.ram.service.EgovAuthorManageService;
import itn.let.sec.rgm.service.EgovAuthorGroupService;
import itn.let.sym.ccm.cde.service.CmmnDetailCodeVO;
import itn.let.sym.mnu.mpm.service.MenuManageJTreeVO;
import itn.let.uss.umt.service.EgovUserManageService;
import itn.let.uss.umt.service.UserManageVO;
@Controller
public class OrgChartManageController {
/** userManageService */
@Resource(name = "userManageService")
private EgovUserManageService userManageService;
@Resource(name = "orgChartManageService")
private OrgChartManageService orgChartManageService;
@Resource(name = "egovLocInfoIdGnrService")
private EgovIdGnrService idgenLocInfoId;
@Resource(name = "egovAuthorManageService")
private EgovAuthorManageService egovAuthorManageService;
@Resource(name = "egovAuthorGroupService")
private EgovAuthorGroupService egovAuthorGroupService;
private String topLocNo = "1000000" ; //전역 최상위 매뉴번호
// 조직도 화면
@RequestMapping("/uss/orgChart/OrgChartManage.do")
public String selectOrgChartInfo(LocVO locVO, ModelMap model, HttpServletResponse response) throws Exception {
//권한조회
AuthorManageVO authorManageVO = new AuthorManageVO();
authorManageVO.setFirstIndex(0);
authorManageVO.setLastIndex(10);
authorManageVO.setRecordCountPerPage(10);
authorManageVO.setAuthorManageList(egovAuthorManageService.selectAuthorList(authorManageVO));
model.addAttribute("authorList", authorManageVO.getAuthorManageList());
//selectbox 미리 만들기
locVO.setTopLocNo(topLocNo); //최상위 매뉴번호
List<LocVO> orgHiddenList = orgChartManageService.selectOrgChartListAjax(locVO);
model.addAttribute("orgHiddenList", orgHiddenList);
return "/uss/orgchart/OrgChartManage";
}
/*부서 최초 트리 리스트 */
@RequestMapping(value="/uss/orgChart/orgChartInitAjax.do")
public void orgChartInitAjax(
@ModelAttribute("menuManageVO") MenuManageJTreeVO menuManageVO
, LocVO locVO
, ModelMap model, HttpServletResponse response) throws Exception {
ObjectMapper mapper = new ObjectMapper();
response.setContentType("application/json");
PrintWriter out = new PrintWriter(new OutputStreamWriter(response.getOutputStream(), "UTF-8"));
locVO.setTopLocNo(topLocNo); //최상위 매뉴번호
List<LocVO> resultList = orgChartManageService.selectOrgChartListAjax(locVO);
LocVO rootNode = new LocVO();
rootNode.setParent("#");
rootNode.setId(topLocNo);
rootNode.setText("전체");
resultList.add(0, rootNode);
mapper.writeValue(out, resultList);
out.flush();
}
@RequestMapping(value= {"/uss/orgChart/getOrgChartInitAjax_01.do" , "/uss/orgChart/getOrgChartInit01Ajax.do"})
public ModelAndView getOrgChartInitAjax_01(
@ModelAttribute("menuManageVO") MenuManageJTreeVO menuManageVO
, @ModelAttribute("searchVO") CmmnDetailCodeVO searchVO
, ModelMap model, HttpServletResponse response) throws Exception{
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("jsonView");
OrgCharVO orgCharVO = new OrgCharVO();
orgCharVO.setLocDepth(2);
List<OrgCharVO> resultList = orgChartManageService.selectOrgChartDepthListAjax(orgCharVO);
modelAndView.addObject("resultList", resultList);
return modelAndView;
}
/*검색 select 02 리스트 */
@RequestMapping(value= {"/uss/orgChart/getOrgChartInitAjax_02.do" , "/uss/orgChart/getOrgChartInit02Ajax.do"})
public ModelAndView getOrgChartInitAjax_02(@ModelAttribute("menuManageVO") MenuManageJTreeVO menuManageVO,
@ModelAttribute("searchVO") CmmnDetailCodeVO searchVO,
ModelMap model, HttpServletResponse response) throws Exception{
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("jsonView");
OrgCharVO orgCharVO = new OrgCharVO();
orgCharVO.setLocDepth(3); //뎁스3인것만
if(!searchVO.getSearchCondition_01().equals("")) {
orgCharVO.setUpperLocNo(Integer.parseInt(searchVO.getSearchCondition_01()));
}
List<OrgCharVO> resultList = orgChartManageService.selectOrgChartDepthListAjax(orgCharVO);
modelAndView.addObject("resultList", resultList);
return modelAndView;
}
/*검색 select 03 리스트 */
@RequestMapping(value= {"/uss/orgChart/getOrgChartInitAjax_03.do" , "/uss/orgChart/getOrgChartInit03Ajax.do"})
public ModelAndView getOrgChartInitAjax_03(@ModelAttribute("menuManageVO") MenuManageJTreeVO menuManageVO,
@ModelAttribute("searchVO") CmmnDetailCodeVO searchVO,
ModelMap model, HttpServletResponse response) throws Exception{
ModelAndView modelAndView = new ModelAndView(); //부서별만 조회 가능
modelAndView.setViewName("jsonView");
OrgCharVO orgCharVO = new OrgCharVO();
orgCharVO.setLocDepth(4); //뎁스3인것만
if(!searchVO.getSearchCondition_02().equals("")) {
orgCharVO.setUpperLocNo(Integer.parseInt(searchVO.getSearchCondition_02()));
}
List<OrgCharVO> resultList = orgChartManageService.selectOrgChartDepthListAjax(orgCharVO);
modelAndView.addObject("resultList", resultList);
return modelAndView;
}
// 부서별 직원 정보 보기
@RequestMapping("/cop/selectUserListAjax.do")
public ModelAndView selectStaffListAjax(
@ModelAttribute("userManageVO") UserManageVO userManageVO
, @ModelAttribute("orgCharVO") OrgCharVO orgCharVO, ModelMap model) throws Exception {
ModelAndView modelAndView = new ModelAndView();
if ((userManageVO.getPartIdx() != null) && (userManageVO.getPartIdx().equals("DEPT"))) {
LoginVO loginVO = (LoginVO) EgovUserDetailsHelper.getAuthenticatedUser();
userManageVO.setPartIdx(loginVO.getOrgnztNo());
}
modelAndView.setViewName("jsonView");
List<UserManageVO> userList = orgChartManageService.selectUserListAjax(userManageVO);
model.addAttribute("userList", userList);
LocVO locVO = new LocVO();
locVO.setLocNo(userManageVO.getPartIdx());
locVO = orgChartManageService.selectLocCnVO(locVO);
modelAndView.addObject("locVO", locVO);
modelAndView.addObject("status", "success");
return modelAndView;
}
// 직원 정보 조회하기
@RequestMapping("/cop/selectUserInfoAjax.do")
public ModelAndView selectUserInfoAjax(
@ModelAttribute("userManageVO") UserManageVO userManageVO
, ModelMap model) throws Exception {
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("jsonView");
try{
UserManageVO userInfo = orgChartManageService.selectUserInfoAjax(userManageVO);
//UserManageVO userInfo = orgChartManageService.selectUserLocInfoAjax(userManageVO);
modelAndView.addObject("userInfo", userInfo);
modelAndView.addObject("result", "success");
}catch(Exception e){
modelAndView.addObject("result", "fail");
}
return modelAndView;
}
// 부서별 직원 수정하기
@RequestMapping("/uss/orgChart/updateUserInfoAjax.do")
public ModelAndView updateUserInfoAjax(
@ModelAttribute("userManageVO") UserManageVO userManageVO
, ModelMap model) throws Exception {
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("jsonView");
try{
//업무사용자 수정시 히스토리 정보를 등록한다.
//userManageService.insertUserHistory(userManageVO);
//userManageService.updateUser(userManageVO);
if(null== userManageVO.getLocInfoId() || "".equals(userManageVO.getLocInfoId())){
String locInfoId = idgenLocInfoId.getNextStringId();
userManageVO.setLocInfoId(locInfoId);
userManageVO.setUserNm(userManageVO.getEmplyrNm());
userManageService.insertLocInfo(userManageVO);
modelAndView.addObject("I", "flag");
}else {
userManageService.updateLocInfo(userManageVO);
modelAndView.addObject("U", "flag");
}
modelAndView.addObject("result", "success");
}catch(Exception e){
modelAndView.addObject("result", "fail");
}
return modelAndView;
}
//부서별 직원 등록하기
@RequestMapping("/cop/insertUserInfoAjax.do")
public ModelAndView insertUserInfoAjax(
@ModelAttribute("userManageVO") UserManageVO userManageVO
, ModelMap model) throws Exception {
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("jsonView");
try{
userManageService.insertUser(userManageVO);
modelAndView.addObject("result", "success");
}catch(Exception e){
modelAndView.addObject("result", "fail");
}
return modelAndView;
}
// 부서별 직원 삭제하기
@RequestMapping("/cop/deleteUserInfoAjax.do")
public ModelAndView deleteStaffInfoAjax(
@ModelAttribute("userManageVO") UserManageVO userManageVO
, @RequestParam("del") String[] del, ModelMap model) throws Exception {
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("jsonView");
for(String id:del) {
try{
orgChartManageService.deleteUserInfoAjax(id);
modelAndView.addObject("result", "success");
}catch(Exception e){
modelAndView.addObject("result", "fail");
}
}
return modelAndView;
}
// 조직도 화면
@RequestMapping("/uss/orgChart/OrgChartPopup.do")
public String orgChartPopup(@ModelAttribute("locVO") LocVO locVO,
ModelMap model,
HttpServletResponse response) throws Exception {
return "/uss/orgChart/OrgChartPopup";
}
/**
* 조직도 정보를 등록
*
* @param partInfVO
* @param model
* @return
* @throws Exception
*/
@SuppressWarnings({ "rawtypes", "unchecked" })
@RequestMapping("/uss/orgChart/orgChartInsertAjax.do")
public ModelAndView orgChartInsertAjax(@ModelAttribute("menuManageVO") MenuManageJTreeVO menuManageVO,
@ModelAttribute("cmmnDetailCodeVO") CmmnDetailCodeVO cmmnDetailCodeVO,
ModelMap model, LocVO locVO ,
@RequestParam("nodeIds") String[] nodeIds) throws Exception {
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("jsonView");
LoginVO user = (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser();
try {
String compareStr = "";
for(int i=1 ; i < 100 ; i++) {
if(i<10) {
compareStr = "0"+i;
}
if(!Arrays.asList(nodeIds).contains(compareStr)) {
break;
}
}
locVO.setLocNm("NEW DATA"); //임시
locVO.setLocNo("9999999"); //임시
String equiLevel = (locVO.getUpperMenuId()+"").replaceFirst("0" , "%");
//List<LocVO> equiLocList = assetManageService.selectEquiLevelLocList(equiLevel);
List<LocVO> equiLocList = orgChartManageService.selectEquiLevelLocList(equiLevel);
ArrayList existLocNo = new ArrayList() ;
for(LocVO tempLocVO : equiLocList) {
existLocNo.add(tempLocVO.getLocNo()) ;
}
int insertMenNo ;
if(equiLocList.size() != 0){
for(int i = 1 ; i < 100 ; i++){ //0~100까지 임의의 매뉴번호 생성후 이전 매뉴가 없는것을 조회
insertMenNo = Integer.parseInt((locVO.getUpperMenuId()+"").replaceFirst("0" , i+"")) ;
if(!existLocNo.contains(insertMenNo+"")){ //매뉴번호가 없으면
locVO.setLocNo(insertMenNo+"");
break ;
}
}
}else{
insertMenNo = Integer.parseInt((locVO.getUpperMenuId()+"").replaceFirst("0" , "1"));
locVO.setLocNo(insertMenNo+"");
}
locVO.setUpperLocNo(locVO.getUpperMenuId()+"");
locVO.setUseYn("Y");
locVO.setFrstRegisterId(user.getId());
locVO.setLocOrdr(nodeIds.length+1);
locVO.setLocDepth(Integer.parseInt(locVO.getNodeDepth()));
orgChartManageService.insertOrgChart(locVO);
modelAndView.addObject("newMenuNo", locVO.getLocNo());
modelAndView.addObject("status", "success");
}catch (Exception e) {
modelAndView.addObject("status", "fail");
model.addAttribute("menuManageVO", cmmnDetailCodeVO);
}
return modelAndView;
}
/**
* 조직도 정보 이름 변경
*
* @param partInfVO
* @param model
* @return
* @throws Exception
*/
@RequestMapping("/uss/orgChart/orgChartNmUpdateAjax.do")
public ModelAndView updateassetSubNmUpdateAjax(
@ModelAttribute("menuManageVO") MenuManageJTreeVO menuManageVO,
@ModelAttribute("searchVO") CmmnDetailCodeVO searchVO,
ModelMap model) throws Exception {
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("jsonView");
try{
LocVO locVO = new LocVO();
locVO.setLocNm(menuManageVO.getMenuNm());
locVO.setLocNo(menuManageVO.getMenuNo());
//assetManageService.updateAssetLocNm(locVO);
orgChartManageService.updateOrgChartNm(locVO);
modelAndView.addObject("status", "success");
}catch (Exception e) {
modelAndView.addObject("status", "fail");
}
return modelAndView;
}
/**
* 부서 정보를 삭제한다.(트리구조에서)
*
* @param partInfVO
* @param model
* @return
* @throws Exception
*/
@Transactional(rollbackFor = Exception.class)
@RequestMapping(value = "/uss/orgChart/orgChartDeleteAjax.do")
public ModelAndView orgChartDeleteAjax(@ModelAttribute("menuManageVO") MenuManageJTreeVO menuManageVO,
@ModelAttribute("cmmnDetailCodeVO") CmmnDetailCodeVO cmmnDetailCodeVO,
LocVO locVO ,
ModelMap model) throws Exception {
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("jsonView");
try {
locVO.setLocNo(menuManageVO.getMenuNo());
orgChartManageService.deleteOrgChart(locVO);
modelAndView.addObject("status", "success");
}catch(Exception e) {
modelAndView.addObject("status", "fail");
}
return modelAndView;
}
/**
* 부서 이동 한다.(트리구조에서)
*/
@Transactional(rollbackFor = Exception.class)
@RequestMapping("/uss/itsm/asset/AssetMoveAjax.do")
public ModelAndView asetMoveAjax(
@ModelAttribute("menuManageVO") MenuManageJTreeVO menuManageVO,
@ModelAttribute("cmmnDetailCodeVO") CmmnDetailCodeVO cmmnDetailCodeVO,
LocVO locVO ,
ModelMap model) throws Exception {
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("jsonView");
LoginVO user = (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser();
try{
locVO.setLocNo(menuManageVO.getMenuNo());
locVO.setUpperLocNo(menuManageVO.getUpperMenuId());
locVO.setLocOrdr(locVO.getSort());
orgChartManageService.updateLocDate(locVO);
orgChartManageService.resortLoc(locVO);
modelAndView.addObject("status", "success");
}catch (Exception e) {
modelAndView.addObject("status", "fail");
}
return modelAndView;
}
// 조직도 화면 (사용자)
@RequestMapping("/web/cop/org/selectOrgList.do")
public String selectOrgList(LocVO locVO, ModelMap model, HttpServletResponse response) throws Exception {
//selectbox 미리 만들기
locVO.setTopLocNo(topLocNo); //최상위 매뉴번호
List<LocVO> orgList = orgChartManageService.selectOrgChartListAjax(locVO);
List<LocVO> headOrgList = new ArrayList<>();
{
headOrgList.add(orgList.get(0)) ;
headOrgList.add(orgList.get(1)) ;
headOrgList.add(orgList.get(2)) ;
}
model.addAttribute("headOrgList", headOrgList);
{
orgList.remove(0);
orgList.remove(0);
orgList.remove(0);
}
model.addAttribute("orgSubList", orgList);
return "/web/cop/org/selectOrgList";
}
// 조직도 상세 (사용자)
@RequestMapping("/web/cop/org/selectOrgDetail.do")
public String selectOrgDetail(LocVO locVO, ModelMap model, UserManageVO userManageVO, HttpServletResponse response) throws Exception {
List<UserManageVO> userList = orgChartManageService.selectUserListAjax(userManageVO);
locVO.setLocNo(userManageVO.getPartIdx());
LocVO resultLocVO = orgChartManageService.selectLocCnVO(locVO);
model.addAttribute("userList", userList);
model.addAttribute("locVO", resultLocVO);
List<LocVO> locPathList = orgChartManageService.selectLocPath(locVO);
model.addAttribute("locPathList", locPathList);
/*OrgCharVO orgCharVO = new OrgCharVO();
orgCharVO.setLocDepth(2);
List<OrgCharVO> resultList = orgChartManageService.selectOrgChartDepthListAjax(orgCharVO);*/
return "/web/cop/org/selectOrgDetail";
}
// 부서 업무 저장하기
@RequestMapping("/uss/orgChart/updateLocCnSaveAjax.do")
public ModelAndView updateLocCnSaveAjax(
@ModelAttribute("userManageVO") UserManageVO userManageVO, LocVO locVO
, ModelMap model) throws Exception {
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("jsonView");
try{
//업무사용자 수정시 히스토리 정보를 등록한다.
/*userManageService.insertUserHistory(userManageVO);
userManageService.updateUser(userManageVO);*/
//orgChartManageService.selectOrgChartListAjax(locVO);
orgChartManageService.updateLocCnSaveAjax(locVO);
modelAndView.addObject("result", "success");
}catch(Exception e){
modelAndView.addObject("result", "fail");
}
return modelAndView;
}
// 직원 삭제하기
@RequestMapping("/cop/deleteUserInfoLocAjax.do")
public ModelAndView deleteUserInfoLocAjax(
@ModelAttribute("userManageVO") UserManageVO userManageVO,
ModelMap model) throws Exception {
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("jsonView");
try{
orgChartManageService.deleteUserInfoLocAjax(userManageVO.getEmplyrId());
modelAndView.addObject("result", "success");
}catch(Exception e){
modelAndView.addObject("result", "fail");
}
return modelAndView;
}
}