2022-10-11 12:35 결재선 추가

This commit is contained in:
myname 2022-10-11 12:35:58 +09:00
parent aff997f614
commit 3bcfa6df55
8 changed files with 3087 additions and 10 deletions

View File

@ -590,15 +590,7 @@ public class AdjReqMgrOffLineController {
return "kccadr/adjReqMgrOff/popup/adjReqMgrOffHistoryPopList";
}
/**
* auth : 이준호
* 결재선 지정 팝업
* date : 2022.09.23
*/
@RequestMapping("/kccadr/adjReqMgOff/popup/adjReqMgrOffAppReqPop.do")
public String adjReqMgrOffAppReqPop(@ModelAttribute("adjReqMgrOffLineVO") AdjReqMgrOffLineVO adjReqMgrOffLineVO, ModelMap model) throws Exception {
return "kccadr/adjReqMgrOff/popup/adjReqMgrOffAppReqPop";
}
@RequestMapping("/kccadr/adjReqMgOff/adjReqMgrOffAppReqPopAjax.do")
public void adjReqMgrOffAppReqPopAjax(@ModelAttribute("menuManageVO") MenuManageJTreeVO menuManageVO, ModelMap model,

View File

@ -0,0 +1,70 @@
package kcc.kccadr.advcAprvl.web;
import java.util.Properties;
import javax.annotation.Resource;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import kcc.com.cmm.service.EgovCmmUseService;
import kcc.com.cmm.service.EgovFileMngService;
import kcc.com.cmm.service.EgovFileMngUtil;
import kcc.kccadr.adjReqMgrOff.service.AdjReqMgrOffLineService;
import kcc.kccadr.adjReqMgrOff.service.AdjReqMgrOffLineVO;
import kcc.let.utl.fcc.service.EgovCryptoUtil;
@Controller
public class AdvcAprvlController {
// 조정신청 서비스단
@Resource(name = "AdjReqMgrOffLineService")
private AdjReqMgrOffLineService adjReqMgrOffLineService;
// eGov 공통코드
@Resource(name = "EgovCmmUseService")
private EgovCmmUseService cmmUseService;
@Resource(name = "EgovFileMngService")
private EgovFileMngService fileService;
// global 프로퍼티
@Resource(name="globalSettings")
protected Properties propertiesService;
//첨부파일 경로, realPath 설정
@Resource(name="EgovFileMngUtil")
private EgovFileMngUtil fileUtil;
// 첨부파일 정보
@Resource(name="EgovFileMngService")
private EgovFileMngService fileMngService;
//암복호화 유틸
@Resource(name = "egovCryptoUtil")
EgovCryptoUtil egovCryptoUtil;
/**
* auth : 이준호
* 결재선 지정 팝업
* date : 2022.09.23
*/
@RequestMapping("/kccadr/advcAprvl/popup/advcAprvlReqPop.do")
public String adjReqMgrOffAppReqPop(@ModelAttribute("adjReqMgrOffLineVO") AdjReqMgrOffLineVO adjReqMgrOffLineVO, ModelMap model) throws Exception {
return "kccadr/advcAprvl/popup/advcAprvlReqPop";
}
/**
* auth : 이준호
* 결재선 대결 팝업
* date : 2022.09.23
*/
@RequestMapping("/kccadr/advcAprvl/popup/advcSbsttAprvlReqPop.do")
public String advcSbsttAprvlReqPop(@ModelAttribute("adjReqMgrOffLineVO") AdjReqMgrOffLineVO adjReqMgrOffLineVO, ModelMap model) throws Exception {
System.out.println("========================================");
return "kccadr/advcAprvl/popup/advcSbsttAprvlReqPop";
}
}

View File

@ -0,0 +1,696 @@
package kcc.kccadr.advcSttst.web;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.Properties;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.multipart.MultipartHttpServletRequest;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.support.RedirectAttributes;
import com.fasterxml.jackson.databind.ObjectMapper;
import egovframework.rte.fdl.security.userdetails.util.EgovUserDetailsHelper;
import egovframework.rte.ptl.mvc.tags.ui.pagination.PaginationInfo;
import kcc.com.cmm.LoginVO;
import kcc.com.cmm.service.EgovCmmUseService;
import kcc.com.cmm.service.EgovFileMngService;
import kcc.com.cmm.service.EgovFileMngUtil;
import kcc.com.cmm.service.FileVO;
import kcc.com.cmm.util.StringUtil;
import kcc.com.utl.fcc.service.EgovStringUtil;
import kcc.kccadr.adjReqMgrOff.service.AdjReqMgrOffLineService;
import kcc.kccadr.adjReqMgrOff.service.AdjReqMgrOffLineVO;
import kcc.let.sym.mnu.mpm.service.MenuManageJTreeVO;
import kcc.let.utl.fcc.service.EgovCryptoUtil;
@Controller
public class AdvcSttstController {
// 조정신청 서비스단
@Resource(name = "AdjReqMgrOffLineService")
private AdjReqMgrOffLineService adjReqMgrOffLineService;
// eGov 공통코드
@Resource(name = "EgovCmmUseService")
private EgovCmmUseService cmmUseService;
@Resource(name = "EgovFileMngService")
private EgovFileMngService fileService;
// global 프로퍼티
@Resource(name="globalSettings")
protected Properties propertiesService;
//첨부파일 경로, realPath 설정
@Resource(name="EgovFileMngUtil")
private EgovFileMngUtil fileUtil;
// 첨부파일 정보
@Resource(name="EgovFileMngService")
private EgovFileMngService fileMngService;
//암복호화 유틸
@Resource(name = "egovCryptoUtil")
EgovCryptoUtil egovCryptoUtil;
/**
* 오프라인 조정신청 정보 입력 화면
*/
@RequestMapping("/kccadr/advcSttst/adjReqMgrOffRegist.do")
public String adjReqMgrOffRegist(@ModelAttribute("searchVO") AdjReqMgrOffLineVO adjReqMgrOffLineVO, ModelMap model) throws Exception {
//로그인 권한정보 불러오기
LoginVO user = EgovUserDetailsHelper.isAuthenticated()? (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser():null;
model.addAttribute("user", user);
// 공통코드 조회
List<?> codeResult = cmmUseService.selectCmmCodeDetail("CC001");
model.addAttribute("CC001", codeResult);
int reqPerTotCnt = 0;
if(StringUtils.isNotBlank(adjReqMgrOffLineVO.getAdrSeq())) {
//오프라인 조정 신청 정보 불러오기.
AdjReqMgrOffLineVO resultAdjReqMgrOffLine = adjReqMgrOffLineService.selectAdjReqMgrOffLineInfo(adjReqMgrOffLineVO);
model.addAttribute("adrVO", resultAdjReqMgrOffLine);
}else {
//기본 셋팅 - 대리인 여부, 신청자 분류
adjReqMgrOffLineVO.setRpplTy("10");
adjReqMgrOffLineVO.setReqTy("01");
model.addAttribute("adrVO", adjReqMgrOffLineVO);
}
model.addAttribute("reqPerTotCnt", reqPerTotCnt);
return "kccadr/adjReqMgrOff/adjReqMgrOffRegist";
}
/**
* 오프라인 조정신청 정보 등록 처리 Ajax
*
*/
@RequestMapping(value = {"/kccadr/advcSttst/insertAdjReqMgrOffAjax.do"})
public ModelAndView insertAdjReqMgrOffAjax(final MultipartHttpServletRequest multiRequest
,@ModelAttribute("adrVO") AdjReqMgrOffLineVO adjReqMgrOffLineVO
, RedirectAttributes redirectAttributes
, HttpServletRequest request) throws Exception {
//로그인 권한정보 불러오기
LoginVO loginVO = EgovUserDetailsHelper.isAuthenticated()? (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser():null;
String userId = loginVO == null ? "" : EgovStringUtil.isNullToString(loginVO.getUniqId());
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("jsonView");
if(userId.equals("")) {
modelAndView.addObject("adjStatus", "loginFail");
return modelAndView;
}
/*파일등록 */
String atchFileId = ""; // 조정신청 첨부파일 아이디
String FratchFileId = ""; //대리인 첨부파일 아이디
final Map<String, MultipartFile> files = multiRequest.getFileMap();
Map<String, MultipartFile> fileFr = new LinkedHashMap<>();
Map<String, MultipartFile> fileOr = new LinkedHashMap<>();
if (!files.isEmpty()) {
Iterator<Map.Entry<String, MultipartFile>> it = files.entrySet().iterator();
int frIndex = 0;
int orIndex = 0;
while(it.hasNext()) {
Map.Entry<String, MultipartFile> entry = it.next();
MultipartFile mFile = entry.getValue();
if(entry.getKey().contains("fileFr")) { //대리인 첨부파일 리스트 추가
fileFr.put("fileFr" + frIndex, mFile);
frIndex++;
}
if(entry.getKey().contains("fileOr")) { //조정신청 첨부파일 리스트 추가
fileOr.put("fileOr" + orIndex, mFile);
orIndex++;
}
}
if(fileFr != null) { // 대리인 첨부파일
List<FileVO> result = fileUtil.parseFileInf(fileFr, "조정 신청_", 0, "", "", "");
FratchFileId = fileMngService.insertFileInfs(result);
adjReqMgrOffLineVO.getAdjReqMgrVoList().get(0).setAtchFileId(FratchFileId);
}
if(fileOr != null) { // 조정신청 첨부파일
List<FileVO> result = fileUtil.parseFileInf(fileOr, "조정 신청_", 0, "", "", "");
atchFileId = fileMngService.insertFileInfs(result);
adjReqMgrOffLineVO.setAtchFileId(atchFileId);
}
}
//사용자 유니크 아이디 받아오기
adjReqMgrOffLineVO.setFrstRegisterId(userId);
//조정신청, 대리인, 신청인 등록 처리
String resultAdrSeq = adjReqMgrOffLineService.insertAdjReqMgrRpplReq(adjReqMgrOffLineVO);
modelAndView.addObject("adjStatus", "success");
modelAndView.addObject("resultAdrSeq", resultAdrSeq);
return modelAndView;
}
/**
* 오프라인 조정신청 정보 수정 화면
* 현재(20210915) 목록 화면이 없어서 임시로 특정 조정신청 정보가 호출 되도록 처리하였음
* 차후에 adrSeq 번호를 파라미터로 받으면
*/
@RequestMapping("/kccadr/advcSttst/selectAdjReqMgrOffUpdtView.do")
public String selectAdjReqMgrUpdtView(@ModelAttribute("searchVO") AdjReqMgrOffLineVO adjReqMgrOffLineVO,
RedirectAttributes redirectAttributes,
ModelMap model) throws Exception {
//로그인 권한정보 불러오기
LoginVO user = EgovUserDetailsHelper.isAuthenticated()? (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser():null;
model.addAttribute("user", user);
String adrSeq = adjReqMgrOffLineVO.getAdrSeq();
if(adrSeq.equals("") || adrSeq == null) {
//조정신청 번호가 없으면 메인화면으로 리턴 시킴
model.addAttribute("message", "잘못된 접근입니다. 접속 URL을 확인해 주세요.");
redirectAttributes.addFlashAttribute("message", "잘못된 접근입니다. 접속 URL을 확인해 주세요.");
return "redirect:/cmm/main/mainPage.do";
//adjReqMgrOffLineVO.setAdrSeq("ADR_0000000000000322");//ADR_0000000000000280
}
//오프라인 조정 신청 정보 불러오기.
AdjReqMgrOffLineVO resultAdjReqMgrOffLine = adjReqMgrOffLineService.selectAdjReqMgrOffLineInfo(adjReqMgrOffLineVO);
FileVO fileVO = new FileVO();
if(resultAdjReqMgrOffLine.getAdjReqMgrVoList().get(0).getAtchFileId() != null){
//대리인 첨부파일 리스트 불러오기
String rpplAtchFileId = resultAdjReqMgrOffLine.getAdjReqMgrVoList().get(0).getAtchFileId();
fileVO.setAtchFileId(rpplAtchFileId);
resultAdjReqMgrOffLine.setRpplAtchFileId(rpplAtchFileId);
List<FileVO> rpplAtchFileList = fileService.selectFileInfs(fileVO);
model.addAttribute("rpplAtchFileList", rpplAtchFileList);
}
//조정신청 첨부파일 리스트 불러오기.
String rpplMgrAtchFileId = resultAdjReqMgrOffLine.getAtchFileId();
fileVO.setAtchFileId(rpplMgrAtchFileId);
resultAdjReqMgrOffLine.setRpplMgrAtchFileId(rpplMgrAtchFileId);
List<FileVO> rpplMgrAtchFileList = fileService.selectFileInfs(fileVO);
model.addAttribute("rpplMgrAtchFileList", rpplMgrAtchFileList);
// 공통코드 조회
List<?> codeResult = cmmUseService.selectCmmCodeDetail("CC001");
model.addAttribute("CC001", codeResult);
model.addAttribute("adrVO", resultAdjReqMgrOffLine);
model.addAttribute("reqPerTotCnt", resultAdjReqMgrOffLine.getReqPerTotCnt());
return "kccadr/adjReqMgrOff/adjReqMgrOffUpdtView";
}
/**
* 오프라인 조정신청 피신청인 정보 삭제 Ajax
*
*/
@RequestMapping(value = {"/kccadr/advcSttst/deleteAdjReqMgrOffPersonAjax.do"})
public ModelAndView deleteAdjReqMgrOffPersonAjax(final MultipartHttpServletRequest multiRequest
,@ModelAttribute("adrVO") AdjReqMgrOffLineVO adjReqMgrOffLineVO
, RedirectAttributes redirectAttributes
, HttpServletRequest request) throws Exception {
//로그인 권한정보 불러오기
LoginVO loginVO = EgovUserDetailsHelper.isAuthenticated()? (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser():null;
String userId = loginVO == null ? "" : EgovStringUtil.isNullToString(loginVO.getUniqId());
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("jsonView");
if(userId.equals("")) {
modelAndView.addObject("adjStatus", "loginFail");
return modelAndView;
}
//사용자 유니크 아이디 받아오기
adjReqMgrOffLineVO.setFrstRegisterId(userId);
//조정신청 피신청인 정보 삭제
int resultCnt = adjReqMgrOffLineService.deleteAdjReqMgrOffPerson(adjReqMgrOffLineVO);
if(resultCnt > 0) {
modelAndView.addObject("adjStatus", "success");
modelAndView.addObject("resultCnt", resultCnt);
}else {
modelAndView.addObject("adjStatus", "delFail");
}
return modelAndView;
}
/**
* 조정신청 Step03 신청취지/원인 정보 수정 Ajax
*
*/
@RequestMapping(value = {"/kccadr/advcSttst/updateAdjReqMgrOffAjax.do"})
public ModelAndView updateAdrMgrMasterAjax(final MultipartHttpServletRequest multiRequest
,@ModelAttribute("adrVO") AdjReqMgrOffLineVO adjReqMgrOffLineVO
, RedirectAttributes redirectAttributes
, HttpServletRequest request) throws Exception {
//로그인 권한정보 불러오기
LoginVO loginVO = EgovUserDetailsHelper.isAuthenticated()? (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser():null;
String userId = loginVO == null ? "" : EgovStringUtil.isNullToString(loginVO.getUniqId());
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("jsonView");
if(userId.equals("")) {
modelAndView.addObject("adjStatus", "loginFail");
return modelAndView;
}
//사용자 유니크 아이디 받아오기
adjReqMgrOffLineVO.setLastUpdusrId(userId);
/*파일등록 */
//String atchFileId = ""; // 조정신청 첨부파일 아이디
//String FratchFileId = ""; //대리인 첨부파일 아이디
String isThumbFile = "";
String rpplAtchFileId = adjReqMgrOffLineVO.getRpplAtchFileId(); //대리인 첨부파일 아이디
String rpplMgrAtchFileId = adjReqMgrOffLineVO.getRpplMgrAtchFileId(); //조정신청 첨부파일 아이디
final Map<String, MultipartFile> files = multiRequest.getFileMap();
Map<String, MultipartFile> fileFr = new LinkedHashMap<>();
Map<String, MultipartFile> fileOr = new LinkedHashMap<>();
if (!files.isEmpty()) {
Iterator<Map.Entry<String, MultipartFile>> it = files.entrySet().iterator();
int frIndex = 0;
int orIndex = 0;
while(it.hasNext()) {
Map.Entry<String, MultipartFile> entry = it.next();
MultipartFile mFile = entry.getValue();
if(entry.getKey().contains("fileFr")) { //대리인 첨부파일 리스트 추가
fileFr.put("fileFr" + frIndex, mFile);
frIndex++;
}
if(entry.getKey().contains("fileOr")) { //조정신청 첨부파일 리스트 추가
fileOr.put("fileOr" + orIndex, mFile);
orIndex++;
}
}
if(fileFr != null) { // 대리인 첨부파일
if ("".equals(rpplAtchFileId)) {
List<FileVO> result = fileUtil.parseFileInf(fileFr, "조정 신청_", 0, rpplAtchFileId, "", isThumbFile);
rpplAtchFileId = fileMngService.insertFileInfs(result);
adjReqMgrOffLineVO.getAdjReqMgrVoList().get(0).setAtchFileId(rpplAtchFileId); //대리인 정보에 첨부파일 아이디 넣어주기
} else {
FileVO fvo = new FileVO();
fvo.setAtchFileId(rpplAtchFileId);
adjReqMgrOffLineVO.getAdjReqMgrVoList().get(0).setAtchFileId(rpplAtchFileId); //대리인 정보에 첨부파일 아이디 넣어주기
int cnt = fileMngService.getMaxFileSN(fvo);
List<FileVO> result = fileUtil.parseFileInf(fileFr, "조정 신청_", cnt, rpplAtchFileId, "", isThumbFile);
fileMngService.updateFileInfs(result);
}
}
if(fileOr != null) { // 조정신청 첨부파일
if ("".equals(rpplMgrAtchFileId)) {
List<FileVO> result = fileUtil.parseFileInf(fileOr, "조정 신청_", 0, rpplMgrAtchFileId, "", isThumbFile);
rpplMgrAtchFileId = fileMngService.insertFileInfs(result);
adjReqMgrOffLineVO.setAtchFileId(rpplMgrAtchFileId);
} else {
FileVO fvo = new FileVO();
fvo.setAtchFileId(rpplMgrAtchFileId);
adjReqMgrOffLineVO.setAtchFileId(rpplMgrAtchFileId);
int cnt = fileMngService.getMaxFileSN(fvo);
List<FileVO> result = fileUtil.parseFileInf(fileOr, "조정 신청_", cnt, rpplMgrAtchFileId, "", isThumbFile);
fileMngService.updateFileInfs(result);
}
}
}
//조정신청 신청인 취지/원인 등록 처리
String resultSts = adjReqMgrOffLineService.updateAdjReqMgrRpplReq(adjReqMgrOffLineVO);
if(resultSts.equals("updateSucc")) {
modelAndView.addObject("adjStatus", "success");
}else {
modelAndView.addObject("adjStatus", "fail");
}
return modelAndView;
}
/**
* auth : bhkim
* 전자조정위원 사건 관리 현황 통계
* date : 2021.09.111
*/
@RequestMapping("/kccadr/advcSttst/memSttstList.do")
public String adjReqMgrOffList(@ModelAttribute("adjReqMgrOffLineVO") AdjReqMgrOffLineVO adjReqMgrOffLineVO, ModelMap model) throws Exception {
// 제출
// adr_mgr_master 테이블 stat_cd 제출 완료(ADR_REQ_COMP, 101010), lastupdtPnttm, lastupdtId 업데이트
// adr_mgr_master 테이블 stat_cd 변경으로 history 테이블에 이력 insert
//로그인 권한정보 불러오기
LoginVO loginVO = EgovUserDetailsHelper.isAuthenticated()? (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser():null;
String userId = loginVO == null ? "" : EgovStringUtil.isNullToString(loginVO.getUniqId());
if(adjReqMgrOffLineVO.getPageUnit() != 10) {
adjReqMgrOffLineVO.setPageUnit(adjReqMgrOffLineVO.getPageUnit());
}
if("".equals(adjReqMgrOffLineVO.getSearchSortCnd())){
adjReqMgrOffLineVO.setSearchSortCnd("RS.ADR_SEQ");
adjReqMgrOffLineVO.setSearchSortOrd("desc");
}
if(("3".equals(adjReqMgrOffLineVO.getSearchCondition()) || "4".equals(adjReqMgrOffLineVO.getSearchCondition())) && StringUtils.isNotBlank(adjReqMgrOffLineVO.getSearchKeyword())){
adjReqMgrOffLineVO.setSearchKeyword(egovCryptoUtil.encrypt(adjReqMgrOffLineVO.getSearchKeyword()));
}
/** paging */
PaginationInfo paginationInfo = new PaginationInfo();
paginationInfo.setCurrentPageNo(adjReqMgrOffLineVO.getPageIndex());
paginationInfo.setRecordCountPerPage(adjReqMgrOffLineVO.getPageUnit());
paginationInfo.setPageSize(adjReqMgrOffLineVO.getPageSize());
adjReqMgrOffLineVO.setFirstIndex(paginationInfo.getFirstRecordIndex());
adjReqMgrOffLineVO.setLastIndex(paginationInfo.getLastRecordIndex());
adjReqMgrOffLineVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage());
paginationInfo.setTotalRecordCount(adjReqMgrOffLineService.adjReqMgrOffListCount(adjReqMgrOffLineVO));
model.addAttribute("paginationInfo", paginationInfo);
List<AdjReqMgrOffLineVO> list = adjReqMgrOffLineService.adjReqMgrOffList(adjReqMgrOffLineVO);
// 복호화
decryptInfomation(list, null);
model.addAttribute("list", list);
if(("3".equals(adjReqMgrOffLineVO.getSearchCondition()) || "4".equals(adjReqMgrOffLineVO.getSearchCondition())) && StringUtils.isNotBlank(adjReqMgrOffLineVO.getSearchKeyword())){
adjReqMgrOffLineVO.setSearchKeyword(egovCryptoUtil.decrypt(adjReqMgrOffLineVO.getSearchKeyword()));
}
return "kccadr/advcSttst/memSttstList";
}
@RequestMapping("/kccadr/advcSttst/adjReqMgrOffDetail.do")
public String adjReqMgrOffDetail(@ModelAttribute("adjReqMgrOffLineVO") AdjReqMgrOffLineVO adjReqMgrOffLineVO, ModelMap model) throws Exception {
AdjReqMgrOffLineVO master = adjReqMgrOffLineService.selectAdjstReqMgrOffMasterInfo(adjReqMgrOffLineVO);
model.addAttribute("master", master);
List<AdjReqMgrOffLineVO> person = adjReqMgrOffLineService.selectAdjstReqMgrOffPersonList(adjReqMgrOffLineVO);
// 복호화
decryptInfomation(person, null);
model.addAttribute("person", person);
String bttnStatYn = adjReqMgrOffLineService.selectAdjstReqMgrOffStatCdYn(adjReqMgrOffLineVO);
model.addAttribute("bttnStatYn", bttnStatYn);
if(StringUtils.isNotBlank(master.getAtchFileId())){
FileVO fileVO = new FileVO();
fileVO.setAtchFileId(master.getAtchFileId());
List<FileVO> fileList = fileService.selectFileInfs(fileVO);
model.addAttribute("fileList", fileList);
}
for(int i=0; i < person.size(); i++) {
if(StringUtil.isNotEmpty(person.get(i).getAtchFileId())) {
if(StringUtils.isNotBlank(person.get(i).getAtchFileId())){
FileVO fileVO = new FileVO();
fileVO.setAtchFileId(master.getAtchFileId());
List<FileVO> depuFileList = fileService.selectFileInfs(fileVO);
model.addAttribute("depuFileList", depuFileList);
}
}
}
return "kccadr/adjReqMgrOff/adjReqMgrOffDetail";
}
@RequestMapping(value = {"/kccadr/advcSttst/adjReqMgrOffDelete.do"}, method = RequestMethod.POST)
public ModelAndView adjReqMgrOffDelete(HttpServletRequest request , @RequestBody AdjReqMgrOffLineVO adjReqMgrOffLineVO) throws Exception {
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("jsonView");
adjReqMgrOffLineService.deleteAdjstReqMgrOff(adjReqMgrOffLineVO);
modelAndView.addObject("rs", "success");
return modelAndView;
}
@RequestMapping(value = {"/kccadr/advcSttst/adjReqMgrOffSubmit.do"})
public ModelAndView adjReqMgrOffSubmit(@RequestBody AdjReqMgrOffLineVO adjReqMgrOffLineVO ,HttpServletRequest request) throws Exception {
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("jsonView");
// 제출
// adr_mgr_master 테이블 stat_cd 제출 완료(ADR_REQ_COMP, 101010), lastupdtPnttm, lastupdtId 업데이트
// adr_mgr_master 테이블 stat_cd 변경으로 history 테이블에 이력 insert
//로그인 권한정보 불러오기
LoginVO loginVO = EgovUserDetailsHelper.isAuthenticated()? (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser():null;
String userId = loginVO == null ? "" : EgovStringUtil.isNullToString(loginVO.getUniqId());
try {
adjReqMgrOffLineVO.setLastUpdusrId(userId);
//adr_mgr_master 테이블 update, 히스토리 이력, adr_mgr_detail 테이블 insert
int result = adjReqMgrOffLineService.updateAdjstReqMgrOff(adjReqMgrOffLineVO);
if(result > 1) {
modelAndView.addObject("result", "success");
}else {
modelAndView.addObject("result", "fail");
}
} catch (Exception e) {
System.out.println("Exception!!!!!");
modelAndView.addObject("msg", "제출에 실패하였습니다.");
}
return modelAndView;
}
/*
*
* 오프라인신청 이전신청 리스트 화면 불러오기
* 임시저장된 내용의 리스트를 불러온다.
*
* */
@RequestMapping("/kccadr/advcSttst/adjReqMgrOffHistoryPopAjax.do")
public String adjReqMgrOffHistoryPopAjax(@ModelAttribute("adjReqMgrOffLineVO") AdjReqMgrOffLineVO adjReqMgrOffLineVO, ModelMap model) throws Exception {
AdjReqMgrOffLineVO master = adjReqMgrOffLineService.selectAdjstReqMgrOffMasterInfo(adjReqMgrOffLineVO);
model.addAttribute("master", master);
if("".equals(adjReqMgrOffLineVO.getSearchSortCnd())){ //최초조회시 최신것 조회List
adjReqMgrOffLineVO.setSearchSortCnd("T1.FRST_REGIST_PNTTM");
adjReqMgrOffLineVO.setSearchSortOrd("desc");
}
/** paging */
PaginationInfo paginationInfo = new PaginationInfo();
paginationInfo.setCurrentPageNo(adjReqMgrOffLineVO.getPageIndex());
paginationInfo.setRecordCountPerPage(adjReqMgrOffLineVO.getPageUnit());
paginationInfo.setPageSize(adjReqMgrOffLineVO.getPageSize());
adjReqMgrOffLineVO.setFirstIndex(paginationInfo.getFirstRecordIndex());
adjReqMgrOffLineVO.setLastIndex(paginationInfo.getLastRecordIndex());
adjReqMgrOffLineVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage());
paginationInfo.setTotalRecordCount(adjReqMgrOffLineService.selectAdjReqMgrOffHistotyListCount(adjReqMgrOffLineVO));
model.addAttribute("paginationInfo", paginationInfo);
List<AdjReqMgrOffLineVO> list = adjReqMgrOffLineService.selectAdjReqMgrOffHistotyList(adjReqMgrOffLineVO);
decryptInfomation(list, null);
//검색어가 있는 경우 복호화 해준다.
if(StringUtils.isNotBlank(adjReqMgrOffLineVO.getSearchKeyword())) {
adjReqMgrOffLineVO.setSearchKeyword(egovCryptoUtil.decrypt(adjReqMgrOffLineVO.getSearchKeyword()));
}
model.addAttribute("list", list);
return "kccadr/adjReqMgrOff/popup/adjReqMgrOffHistoryPopList";
}
/**
* auth : 이준호
* 결재선 지정 팝업
* date : 2022.09.23
*/
@RequestMapping("/kccadr/advcSttst/popup/adjReqMgrOffAppReqPop.do")
public String adjReqMgrOffAppReqPop(@ModelAttribute("adjReqMgrOffLineVO") AdjReqMgrOffLineVO adjReqMgrOffLineVO, ModelMap model) throws Exception {
return "kccadr/adjReqMgrOff/popup/adjReqMgrOffAppReqPop";
}
@RequestMapping("/kccadr/advcSttst/adjReqMgrOffAppReqPopAjax.do")
public void adjReqMgrOffAppReqPopAjax(@ModelAttribute("menuManageVO") MenuManageJTreeVO menuManageVO, ModelMap model,
HttpServletResponse response , HttpServletRequest request) throws Exception {
ObjectMapper mapper = new ObjectMapper();
//response.setHeader("Content-Type", "text/html;charset=utf-8");
PrintWriter out = new PrintWriter(new OutputStreamWriter(response.getOutputStream(), "UTF-8"));
List<MenuManageJTreeVO> resultList = new ArrayList<MenuManageJTreeVO>();
MenuManageJTreeVO menuManageTopVO2 = new MenuManageJTreeVO();
menuManageTopVO2.setUpperMenuId("#");
menuManageTopVO2.setMenuNo("0");
menuManageTopVO2.setMenuNm("관련인");
resultList.add(0, menuManageTopVO2);
for(int i = 1 ; i < 6 ; i ++ ){
MenuManageJTreeVO menuManageTopVO = new MenuManageJTreeVO();
menuManageTopVO.setUpperMenuId("0");
menuManageTopVO.setMenuNo(String.valueOf(i));
menuManageTopVO.setMenuNm("홍길동" + String.valueOf(i));
menuManageTopVO.setMenuOrdr(i);
menuManageTopVO.setProgrmFileNm("dir");
menuManageTopVO.setUseYn("Y");
menuManageTopVO.setRelateImagePath("/");
menuManageTopVO.setRelateImageNm("/");
resultList.add(i, menuManageTopVO);
}
System.out.println("resultList :: "+resultList);
mapper.writeValue(out, resultList);
out.flush();
}
public void decryptInfomation(List<AdjReqMgrOffLineVO> list, AdjReqMgrOffLineVO info){
if(CollectionUtils.isNotEmpty(list)){
for(AdjReqMgrOffLineVO model : list){
model.setRpplNm(egovCryptoUtil.decrypt(model.getRpplNm()));
model.setRpplAddr(egovCryptoUtil.decrypt(model.getRpplAddr()));
model.setRpplAddrDtl(egovCryptoUtil.decrypt(model.getRpplAddrDtl()));
model.setRpplPost(egovCryptoUtil.decrypt(model.getRpplPost()));
model.setRpplEmail(egovCryptoUtil.decrypt(model.getRpplEmail()));
model.setRpplPhone(egovCryptoUtil.decrypt(model.getRpplPhone()));
model.setRpplRealAddr(egovCryptoUtil.decrypt(model.getRpplRealAddr()));
model.setRpplRealAddrDtl(egovCryptoUtil.decrypt(model.getRpplRealAddrDtl()));
model.setRpplRealPost(egovCryptoUtil.decrypt(model.getRpplRealPost()));
model.setDepuTyNm(egovCryptoUtil.decrypt(model.getDepuTyNm()));
model.setResPonDentNm(egovCryptoUtil.decrypt(model.getResPonDentNm()));
model.setAppliCantNm(egovCryptoUtil.decrypt(model.getAppliCantNm()));
//피신청인 정보가 여러개 일경우
if(StringUtils.isNotBlank(model.getResPonDentNms())){
String[] resNms = model.getResPonDentNms().split("\\|");
if(resNms.length > 1 ){
List<String> names = new ArrayList<>();
for(String name : resNms){
names.add(egovCryptoUtil.decrypt(name));
}
model.setResPonDentNm(String.join(",", names));
}else{
model.setResPonDentNm(egovCryptoUtil.decrypt(resNms[0]));
}
}
}
}
if(info != null){
info.setRpplNm(egovCryptoUtil.decrypt(info.getRpplNm()));
info.setRpplAddr(egovCryptoUtil.decrypt(info.getRpplAddr()));
info.setRpplAddrDtl(egovCryptoUtil.decrypt(info.getRpplAddrDtl()));
info.setRpplPost(egovCryptoUtil.decrypt(info.getRpplPost()));
info.setRpplRealAddr(egovCryptoUtil.decrypt(info.getRpplRealAddr()));
info.setRpplRealAddrDtl(egovCryptoUtil.decrypt(info.getRpplRealAddrDtl()));
info.setRpplRealPost(egovCryptoUtil.decrypt(info.getRpplRealPost()));
info.setRpplEmail(egovCryptoUtil.decrypt(info.getRpplEmail()));
info.setRpplPhone(egovCryptoUtil.decrypt(info.getRpplPhone()));
info.setDepuTyNm(egovCryptoUtil.decrypt(info.getDepuTyNm()));
info.setResPonDentNm(egovCryptoUtil.decrypt(info.getResPonDentNm()));
info.setAppliCantNm(egovCryptoUtil.decrypt(info.getAppliCantNm()));
}
}
}

View File

@ -292,7 +292,9 @@ $(document).ready(function(){
}
function fnc_aprvl_pop(param){
commonPopWindowopenForm("/kccadr/adjReqMgOff/popup/adjReqMgrOffAppReqPop.do", '1000', '700', "entInfoPop", $('#pop'));
//commonPopWindowopenForm("/kccadr/adjReqMgOff/popup/adjReqMgrOffAppReqPop.do", '1000', '700', "entInfoPop", $('#pop'));
commonPopWindowopenForm("/kccadr/advcAprvl/popup/advcAprvlReqPop.do", '1000', '700', "entInfoPop", $('#pop'));
}
/* 워크플로우 */
$(function(){

View File

@ -722,6 +722,16 @@
});
}
function fnc_sbstt_aprvl_pop(param){
//commonPopWindowopenForm("/kccadr/adjReqMgOff/popup/adjReqMgrOffAppReqPop.do", '1000', '700', "entInfoPop", $('#pop'));
var detailForm = document.detailForm;
commonPopWindowopenForm("/kccadr/advcAprvl/popup/advcSbsttAprvlReqPop.do", '1000', '700', "sbsttInfoPop", $('#detailForm'));
//var detailForm = document.detailForm;
//commonPopWindowopenForm("/kccadr/adjPgrMgr/apm/popup/adrDetailPop.do", "840", "800", "adrDetailPop", $('#detailForm'));
}
</script>
<style>
.tbType02 .btnType02, .tb_tit+.btn_area button{width: 95px; height: 35px; padding: 0; font-size: 17px; vertical-align: baseline;}
@ -1048,6 +1058,7 @@
<button type="button" class="btnType02" onclick="fncReject(); return false;">반려</button>
<button type="button" class="btnType06" onclick="fncConfirm(); return false;">결재</button>
</c:if>
<button type="button" class="btnType02" onclick="fnc_sbstt_aprvl_pop('a'); return false;">대결</button>
<button type="button" class="btnType03" onclick="fncGoList(); return false;">목록</button>
</div>
</div>

View File

@ -0,0 +1,922 @@
<!DOCTYPE html>
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<%@ taglib prefix="validator" uri="http://www.springmodules.org/tags/commons-validator" %>
<html lang="ko">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link href="<c:url value='/'/>css/jstree/themes/default/style.min.css" rel="stylesheet" type="text/css">
<style>
.jstree_orgChart {
overflow: auto;
border: 1px solid silver;
min-height: 100px;
width: 290px;
}
</style>
<script src="<c:url value='/js/jquery-1.12.4.min.js' />"></script>
<script src="<c:url value='/js/jstree.min.js' />"></script>
<script src="<c:url value='/js/EgovCmmUtl.js' />"></script>
<script type="text/javascript">
/*********************************
* jstree
*********************************
*/
var newNodeId = "";
function jstreeInit() {
$('#kccadr_sbmt').jstree({
"core" : {
"animation" : 0,
"multiple" : false,
"check_callback" : true,
"themes" : { "stripes" : true },
"data" : {
"url" : "<c:url value='/kccadr/adjReqMgOff/adjReqMgrOffAppReqPopAjax.do'/>",
"dataType" : "json",
"data" : function (node) {
console.log("node.id :: " + node.id);
console.log("authorCode :: " + $('#authorCode').val());
return {'id' : node.id, 'authorCode' : $('#authorCode').val() };
}
}
},
"types" : {
"#" : {
/* "max_children" : 4, */
"max_depth" : 5,
"valid_children" : ["root"]
},
"root" : {
"icon" : "glyphicon glyphicon-flash",
"valid_children" : ["default"]
},
"default" : {
"valid_children" : ["default","file"]
},
"file" : {
"icon" : "jstree-file",
"valid_children" : []
}
}/* ,
"plugins" : [
"contextmenu", "dnd", "search",
"types"
] */
})
.bind('loaded.jstree', function(e, data) {
$('#kccadr_sbmt').jstree('open_node' , $('#0') )
})
.on('select_node.jstree', function (e, data) {
if(!$('.organ_rightbox').is(":visible")){
$(".organ_rightbox").show();
}
/* 메뉴 선택 */
var menuNo = data.node.id;
var upperMenuId = data.node.parent;
//하위 메뉴가 있으면 메뉴코드 변경못하게
if(data.node.children.length > 0){
$('#menuNo').attr("readonly",true);
$('#existChildNode').val("Y");
}else{
$('#menuNo').attr("readonly",false);
$('#existChildNode').val("N");
}
/* 메뉴 선택 */
var menuNo = data.node.id;
//메뉴 추가시 자동 선택되게
if(newNodeId !=""){
menuNo = newNodeId ;
newNodeId = "";
$('#'+data.instance.get_node(menuNo).a_attr.id).trigger("click") //클릭 이벤트 발생
}
$("#menuTopNm").text(data.node.text);
$.ajax({
type:"POST",
url:"<c:url value='/sym/mnu/mcm/EgovMenuInfoAjax.do' />",
data:{ "menuNo" : menuNo , "authorCode" : $('#authorCode').val()},
dataType:'json',
//timeout:(1000*30),
success : function(returnData, status) {
if (status == "success") {
var menuManageVO = returnData.menuManageVO;
var menuUserTypeList = returnData.menuUserTypeList;
fn_select_menuNo(menuManageVO, menuUserTypeList);
} else { alert("ERROR"); }
},
error : function(request , status, error) {
},
complete : function () {
deleteLodingBar();
}
});
})
.on('rename_node.jstree', function (e, data) { //메뉴명 변경
var nodeId = data.node.id;
var oldText = data.old;
var newText = data.text;
if (nodeId > 0) {
/* 부서명 변경 */
if (oldText != newText) {
if (confirm("메뉴명을 변경하시겠습니까?" )) {
$.ajax({
type:"POST",
url:"<c:url value='/sym/mnu/mcm/EgovMenuInfoNmUpdateAjax.do' />",
data:{ "menuNo" : nodeId, "menuNm" : newText },
dataType:'json',
success : function(returnData, status) {
if (status == "success") {
alert("메뉴명이 변경되었습니다.");
} else { alert("ERROR"); }
},
error : function(request , status, error) {
alert("메뉴명이 변경이 실패되었습니다.");
},
complete : function () {
data.instance.refresh();
deleteLodingBar();
}
});
} else {
data.instance.refresh();
}
}
} else {/* 메뉴 추가 */
}
})
.on('delete_node.jstree', function (e, data) {
/* 메뉴 삭제 */
if(data.node.children.length != 0){
alert("하위 메뉴를 먼저 삭제 후 메뉴를 삭제해 주세요.");
data.instance.refresh();
}else{
if (confirm("[" + data.node.text + "]" + " 메뉴를 삭제하시겠습니까?")){
$.ajax({
type:"POST",
url:"<c:url value='/sym/mnu/mcm/EgovMenuInfoDeleteAjax.do' />",
data:{ "menuNo" : data.node.id , "authorCode" : $('#authorCode').val() },
dataType:'json',
//timeout:(1000*30),
success : function(returnData, status) {
if (status == "success") {
alert("메뉴 정보가 삭제되었습니다.");
fn_init_menuInfo();
} else { alert("ERROR"); }
},
error : function(request , status, error) {
alert("메뉴 정보 삭제가 실패되었습니다.");
//alert("code:"+request.status+"\n"+"message:"+request.responseText+"\n"+"error:"+error);
},
complete : function () {
data.instance.refresh();
deleteLodingBar();
}
});
} else {
data.instance.refresh();
}
}
})
.on('create_node.jstree', function(e, data) {
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='/sym/mnu/mcm/EgovMenuInfoInsertAjax.do' />",
data:{ "menuNm" : menuNm, "upperMenuId" : upperMenuId, "menuOrdr" : menuOrdr , "authorCode" : $('#authorCode').val() },
dataType:'json',
//timeout:(1000*30),
success : function(returnData, status) {
if (returnData.status == "success") {
alert("메뉴가 추가 되었습니다.");
//fn_select_menuNo(returnData.menuManageVO, returnData.menuManageVO.menuUserType);
newNodeId = returnData.menuManageVO.menuNo ;
}else if(returnData.status == "dupl"){
alert("중복된 아이디가 있습니다.\n 중복된 아이디변경/삭제후 다시 추가해 주세요\n"+ "("+returnData.menuManageResultVO.menuCours+")");
}else{
alert("메뉴 추가가 실패하였습니다.");
}
},
error : function(request , status, error) {
alert("메뉴 추가가 실패되었습니다.")
},
complete : function () {
data.instance.refresh();
deleteLodingBar();
}
});
}else{
data.instance.refresh();
}
})
.on('move_node.jstree', function (e, data) {
/* 메뉴 위치 변경 */
var instance = data.instance;
var menuNo = data.node.id;
var childrenNodes = instance.get_node(menuNo).children;
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 , "authorCode" : $('#authorCode').val()},
dataType:'json',
success : function(returnData, status) {
if (status == "success") {
alert("메뉴 위치가 변경되었습니다.");
} else { alert("ERROR"); }
},
error : function(request , status, error) {
alert("메뉴 위치 변경이 실패되었습니다.");
},
complete : function () {
data.instance.refresh();
deleteLodingBar();
}
});
} else {
data.instance.refresh();
}
}) ;
}
$( document ).ready(function() {
jstreeInit();
});
//직원 상세 초기화
function fn_add_emp() {
var partIdx =$("#selectPartIdx").val();
var upperIdxs = $("#selectPartParents").val();
// 직원 상세 초기화
document.empInfForm.reset();
$("#empFormTitle").text("메뉴 추가등록 상세");
$("input[name='paIdx']").val("");
fn_set_emp_part(partIdx, upperIdxs);
}
//메뉴 정보 세팅
function fn_select_menuNo(menuManageVO, menuUserTypeList){
var tmpHtml = "";
if(menuManageVO!=null){
$('#menuNo').val(menuManageVO.menuNo);
$('#tmp_Id').val(menuManageVO.menuNo);
$('#menuCours').text(menuManageVO.menuCours);
$('#menuOrdr').val(menuManageVO.menuOrdr);
$('#menuNm').val(menuManageVO.menuNm);
$('#menuDc').val(menuManageVO.menuDc);
$('#upperMenuIdText').text(menuManageVO.upperMenuId);
$('#upperMenuId').val(menuManageVO.upperMenuId);
$('#progrmFileNm').val(menuManageVO.progrmFileNm);
/* $('#progrmFileNmText').text(menuManageVO.progrmFileNm); */
$('#tmp_Name').val(menuManageVO.progrmFileNm);
$('#relateImageNm').val(menuManageVO.relateImageNm);
$('#relateImagePath').val(menuManageVO.relateImagePath);
$('#userType').val(menuManageVO.userType);
$('#url').val(menuManageVO.url);
$('#useYn').val(menuManageVO.useYn);
$('#satisYn').val(menuManageVO.satisYn);
$('.menu_detail_tit span').html(menuManageVO.menuNm+' - 메뉴 권한 목록');
if(""!=menuManageVO.emplyrId) $('#emplyrId').val(menuManageVO.emplyrId); //담당자 세팅
if(""!=menuManageVO.emplyrIdTxt) $('#emplyrIdTxt').val(menuManageVO.emplyrIdTxt); //담당자 세팅
if(menuManageVO.satisYn == null){
$('#satisYn').val('N')
}
$("#menuTopNm").text( menuManageVO.menuNm );
$("#progrmHtmlFileId").val( menuManageVO.progrmHtmlFileId );
$("#progrmBbsId").val(menuManageVO.progrmBbsId);
$('#progrmFileNm_tmp').val(menuManageVO.progrmFileNm);
var menuType = menuManageVO.menuType ;
if(menuType == "M"){
$("#satisTr").css("display", "none");
}else{
$("#satisTr").css("display", "");
}
if(menuManageVO.progrmFileNm == 'dir' || menuType == 'M'){
$("#menuType").val("M"); //메뉴로 세팅
$('#progrmFileNm').attr("readonly", true);
$('#progrmFileNm_tmp').val("");
$('#url_tmp').val("");
}else{
$("#menuType").val(menuType);
//$('#progrmFileNm').attr("readonly", false);
$('#url_tmp').val(menuManageVO.url);
}
//메뉴타입 설정
initShowUrl('Y');
$('#url').val(menuManageVO.url);
$(".main1_delete_btn").removeAttr("onclick");
$(".main1_delete_btn").attr("onclick", "fn_delete_menuInfo('"+menuManageVO.menuNo+"' , '"+menuManageVO.progrmFileNm+"' );return false;");
$(".main1_save_btn").removeAttr("onclick");
$(".main1_save_btn").attr("onclick", "fn_save_menuInfo('"+menuManageVO.menuNo+"');return false;");
$('.tr_item').remove();
if( ( "P" == $('#menuType').val() || "C" == $('#menuType').val()) && "ROLE_ANONYMOUS"==$('#authorCode').val() ){ //추가 게시판 조회(프로그램/사용자 화면만 조회)
$('#tr_add_bbs').show();
set_bbs();
}else{
$('#tr_add_bbs').hide();
}
$('#htmlComfirm').hide();
if(""!=menuManageVO.progrmHtmlFileId){
$('#htmlComfirm').show();
$('#a_contentLink').attr("onclick" , "htmlComfirm('"+menuManageVO.progrmHtmlFileId+"');")
}
}
}
//메뉴 정보 삭제
function fn_delete_menuInfo(menuNo , progrmFileNm ) {
if(menuNo == null || "undefined"== menuNo){
alert("삭제 하려는 메뉴를 먼저 선택해주세요.");
return ;
}
var instance = $('#kccadr_sbmt').jstree(true);
if(instance.get_node(menuNo).children.length != 0){
alert("하위 메뉴를 먼저 삭제 후 메뉴를 삭제해 주세요.");
return;
}
if (confirm("메뉴를 삭제 하시겠습니까?")){
$.ajax({
type:"POST",
"url" : "<c:url value='/sym/mnu/mcm/EgovMenuInfoDeleteAjax.do'/>",
data:{ "menuNo" : menuNo , "progrmFileNm" : progrmFileNm , "authorCode" : $('#authorCode').val() },
dataType:'json',
//timeout:(1000*30),
success : function(returnData, status) {
if (returnData.status == "success") {
// 직원 목록 갱신
var instance = $('#kccadr_sbmt').jstree(true);
//$("#" + instance.get_node(partIdx).a_attr.id).trigger("click");
alert("메뉴 정보가 삭제 되었습니다.");
$("#kccadr_sbmt").jstree("refresh");
fn_init_menuInfo();
} else if(returnData.status == "duplPk"){
alert("삭제하려는 메뉴를 참조하고 있는 메뉴가 있습니다.\n 참조하는 메뉴를 삭제후 다시 시도해 주세요\n"+ "("+returnData.menuManageResultVO.menuCours+")");
}
else {
alert("메뉴 삭제가 실패되었습니다.");
}
},
error : function(request , status, error) {
alert("메뉴 삭제가 실패되었습니다..");
},
complete : function (){
deleteLodingBar();
}
});
}
}
//메뉴정보 init(메뉴 초기화)
function fn_init_menuInfo() {
$("#menuTopNm").text("메뉴선택");
$("#menuForm input[type=text]").val("")
$('#menuCours').text("");
$('#upperMenuIdText').text("");
/* $('#progrmFileNmText').text(""); */
}
//메뉴 초기화
function jstreeRefresh() {
var searchForm = document.searchForm ;
searchForm.authorCode.value = $('#authorCode').val();
searchForm.submit();
}
//메뉴 정보 저장. 등록/수정
function fn_save_menuInfo(menuNo) {
if(menuNo == null || "undefined"== menuNo){
alert("저장 하려는 메뉴를 먼저 메뉴트리에서 생성해 주세요."); return ;
}
var menuForm = document.menuForm;
if(""==menuForm.menuNo.value){
alert("메뉴번호는 필수 값입니다"); return;
}
if(!$.isNumeric(menuForm.menuNo.value)){
alert("메뉴번호는 숫자만 가능합니다."); return;
}
if(!$.isNumeric(menuForm.menuOrdr.value)){
alert("메뉴순서는 숫자만 가능합니다."); return;
}
var menuType = $("#menuType option:selected").val();
if(menuType !="M"){
if($("#progrmFileNm").val() == ""){
alert("프로그램 파일명은 필수 값입니다");
return;
}
}
if(!confirm("저장하시겠습니까?")) return;
<%-- 원자력
//추가 게시판 저장후 메뉴 정보 저장
//if( $('#tr_bbs').length > 0 ){
if(!save_line()){
console.log();
return;
}
//}
--%>
var url = "";
url = "<c:url value='/sym/mnu/mcm/EgovMenuInfoUpdateAjax.do'/>";
var params = $(menuForm).serialize();
$.ajax({
type:"POST",
"url":url,
data:params,
dataType:'json',
success : function(returnData, status) {
if (returnData.status == "success") {
alert("메뉴 정보가 저장 되었습니다.");
var instance = $('#kccadr_sbmt').jstree(true);
$('#'+instance.get_node($('#tmp_Id').val()).a_attr.id).trigger("click");//이전 메뉴id선택되게
$('#tmp_Id').val($('#menuNo').val());
} else if(returnData.status == "upperDupl"){
alert("상위 메뉴 번호가 있습니다.");
}else if(returnData.status == "dupl"){
alert("이미 사용하고 있는 메뉴 번호가 있습니다.");
}else if(returnData.status == "duplProNm"){
alert("이미 사용하고 있는 프로그램파일명이 있습니다.");
}else{
alert("ERROR");
}
},
error : function(request , status, error) {
alert("메뉴 정보 저장이 실패되었습니다.");
},
complete : function () {
$("#kccadr_sbmt").jstree("refresh");
deleteLodingBar();
}
});
}
//메뉴 초기화
function initShowUrl(init){
var menuType = $("#menuType option:selected").val();
$("#url").val("");
$("#showUrl").hide();
$("#btnContent").hide();
$("#btnBBS").hide();
$('#htmlComfirm').hide();
$('#BBSNameSpan').text("");
if("M" == menuType){ //메뉴
$("#progrmFileNm").val("dir");
$("#url").val("");
$('#progrmFileNm').attr("readonly", true);
}else{
$("#progrmFileNm").val($("#progrmFileNm_tmp").val());
$("#url").val($("#url_tmp").val());
if("P" == menuType){ //프로그램
$('#progrmFileNm').attr("readonly", false);
$("#url").attr("readonly", false);
}else if("C" == menuType ){ //컨텐츠
$('#progrmFileNm').attr("readonly", false);
$("#url").attr("readonly", false);
}else if("B" == menuType){ //게시판
$('#progrmFileNm').attr("readonly", false);
$("#url").attr("readonly", false);
}else if("O" == menuType){ //게시판
$('#progrmFileNm').attr("readonly", false);
$("#url").attr("readonly", false);
}
if(init=='N'){
var instance = $('#kccadr_sbmt').jstree(true);
if($('#kccadr_sbmt').jstree('get_selected')[0] != null){
if(instance.get_node($('#kccadr_sbmt').jstree('get_selected')[0]).children.length != 0){
alert("하위 메뉴가 있을경우는 다른타입으로 변경할수 없습니다.");
return;
}
}
}
$("#showUrl").show();
if("C" == menuType){
$("#btnContent").show();
$("#url").attr("readonly", false);
}else if("B" == menuType){
$("#btnBBS").show();
$("#url").attr("readonly", false);
}
}
}
var docWidth = screen.availWidth;
var docHeight = screen.availHeight;
var scX = window.screenX||window.screenLeft||0;
var scY = window.screenY||window.screenTop||0;
/* ********************************************************
* 게시판목록조회 함수
******************************************************** */
function searchBBSId(obj) {
var popupX = scX + (docWidth - 185) / 2;
var popupY = scY + (docHeight - 195) / 2;
memuPopup = window.open('', 'memuPopup', "width=800, height=730, left="+popupX+", top="+popupY, "location = no","status= no","toolbars= no");
document.searchForm.method = "post";
if("menuAdd"==$(obj).attr('id')){ //추가게시판 버튼 클릭시
document.searchForm.seCd.value = $(obj).attr('id');
document.searchForm.searchNm.value = $(obj).attr('value');
}
document.searchForm.action = "/cop/bbs/EgovBBSIdListSearch.do";
document.searchForm.target = "memuPopup" ;
document.searchForm.submit();
document.searchForm.target = "_self" ;
document.searchForm.action= "/sym/mnu/mcm/EgovMenuCreatSelectJtree.do";
}
/* ********************************************************
* 화면컨텐츠ID 검색 팝업
******************************************************** */
var memuPopup ="";
function searchContentList() {
var popupX = scX + (docWidth - 185) / 2;
var popupY = scY + (docHeight - 195) / 2;
memuPopup = window.open('', 'memuPopup', "width=800, height=730, left="+popupX+", top="+popupY, "location = no","status= no","toolbars= no");
document.searchForm.method = "post";
document.searchForm.action = "/uss/ion/cnt/contentListPopup.do";
document.searchForm.target = "memuPopup" ;
document.searchForm.submit();
document.searchForm.target = "_self" ;
document.searchForm.action= "/sym/mnu/mcm/EgovMenuCreatSelectJtree.do";
}
/* ********************************************************
* 사용자 메뉴 담당자 조회 함수
******************************************************** */
function searchManageMenuList() {
var popupX = scX + (docWidth - 185) / 2;
var popupY = scY + (docHeight - 195) / 2;
memuPopup = window.open('', 'memuPopup', "width=800, height=730, left="+popupX+", top="+popupY, "location = no","status= no","toolbars= no");
document.searchForm.method = "post";
document.searchForm.action = "/uss/umt/user/EgovUserManageMenuAjax.do";
document.searchForm.target = "memuPopup" ;
document.searchForm.submit();
document.searchForm.target = "_self" ;
document.searchForm.action= "/sym/mnu/mcm/EgovMenuCreatSelectJtree.do";
}
function onkeyContentName(event){
var tempContentUrl = "/web/content.do?proFn=" ;
if($("#menuType option:selected").val()=="C"){
$("#url").val(tempContentUrl + $("#progrmFileNm").val()) ;
}
}
//행추가
function add_line(bbsInfo){
var eva_temp_tr = $('#temp_tr').clone();
$('#tbl_bbsId').append(eva_temp_tr);
eva_temp_tr.attr('id' , 'tr_bbs').attr('class' , 'tr_item');
{ //변수 변경
var tr_item_length = $('.tr_item').size()-1 ;
eva_temp_tr.find("#temp_bbsTxt").attr('name', eva_temp_tr.find("#temp_bbsTxt").attr('name').replace('[]' , '['+tr_item_length+']' )) ;
eva_temp_tr.find("#temp_bbsTxt").attr('id' , 'bbsTxt_'+tr_item_length) ;
eva_temp_tr.find("#temp_bbsIds").attr('name', eva_temp_tr.find("#temp_bbsIds").attr('name').replace('[]' , '['+tr_item_length+']' )) ;
eva_temp_tr.find("#temp_bbsIds").attr('id' , 'menuAdd_'+tr_item_length) ;
eva_temp_tr.find("#temp_bbsSorts").attr('name' , eva_temp_tr.find("#temp_bbsSorts").attr('name').replace('[]' , '['+tr_item_length+']' ) ) ;
eva_temp_tr.find("#temp_bbsSorts").attr('id' , 'bbsSorts_'+tr_item_length) ;
eva_temp_tr.find("#menuAdd").attr('value' , 'menuAdd_'+tr_item_length ) ;
}
if(null != bbsInfo){
$('#bbsTxt_'+tr_item_length).val(bbsInfo.bbsNm);
$('#bbsSorts_'+tr_item_length).val(bbsInfo.bbsSort);
$('#menuAdd_'+tr_item_length).val(bbsInfo.bbsId);
}
}
//삭제시 배열 초기화
var arrCd = [];
function set_count(){ //tr 세팅
$('.tr_item').each(function(index, item){
$(this).find('input[name^=bbsTxt]').attr('name', 'bbsTxt['+index+']' ).attr('id' , 'bbsTxt_'+index ) ;
$(this).find('input[name^=bbsSorts]').attr('name', 'bbsSorts['+index+']' );
$(this).find('input[name^=bbsIds]').attr('name', 'bbsIds['+index+']' ).attr('id' , 'menuAdd_'+index ) ;
$(this).find('#menuAdd').attr('value' , 'menuAdd_'+index) ;
});
}
var arrDel = []; //1차배열
function delete_line(obj){
$(obj).parent().parent().remove();
set_count();
}
function save_line() {
/* if(0== $('.tr_item').size()){
alert("선택된 게시판이 없습니다.");
return;
} */
//빈 게시판 방지
var blank_tr = false;
var blank_sort = false;
$('.tr_item').each(function() {
if(""==$(this).find('input[name^=bbsTxt]').val()){
blank_tr = true;
}
if(""==$(this).find('input[name^=bbsSort]').val()){
blank_sort = true;
}
});
if(blank_tr) {
alert("비어 있는 게시판이 있습니다.");
return false;
}
if(blank_sort) {
alert("게시판 순서를 넣어주세요.");
return false;
}
var save_line_return = false;
var frm = document.menuForm;
var data = new FormData(frm);
$.ajax({
type: "POST",
url: "/sym/mnu/mcm/MenuBbsInsertAjax.do",
data: data,
dataType:'json',
processData: false,
contentType: false,
async: false,
cache: false,
timeout: 600000,
success: function (returnData, status) {
if(status == 'success'){
if(returnData.status == 'fail'){
alert("게시판 등록 실패하였습니다.");
}else if(returnData.status == 'auth_fail'){
alert("세션이 종료되었습니다.");
}else if(returnData.status =='success'){
//alert("등록되었습니다.");
save_line_return = true;
}
}else{
alert("등록에 실패하였습니다.");
return false;
}
},
error: function (e) {
console.log("ERROR : ", e);
alert("등록에 실패하였습니다.");
}
});
return save_line_return;
}
function htmlComfirm(progrmHtmlFileId) {
$.ajax({
type: "POST",
url: "/sym/mnu/mcm/HtmlComfirmAjax.do",
data:{
"cntId": progrmHtmlFileId
},
dataType:'json',
timeout: 600000,
success: function (returnData, status) {
if(status == 'success'){
console.log("sdfsdf");
window.open("/uss/ion/cnt/cntManageInsert.do?cntId="+returnData.cntManageVO.cntId+"&cntDtId="+returnData.cntManageVO.cntDtId);
}else{
//alert("등록에 실패하였습니다.");
return false;
}
},
error: function (e) {
console.log("ERROR : ", e);
alert("등록에 실패하였습니다.");
}
});
}
function set_bbs(){
var frm = document.menuForm;
var data = new FormData(frm);
$.ajax({
type: "POST",
url: "/sym/mnu/mcm/MenuBbsSelectAjax.do",
data: data,
dataType:'json',
processData: false,
contentType: false,
cache: false,
timeout: 600000,
success: function (returnData, status) {
if(status == 'success'){
for(var i = 0 ; i < returnData.boardMasterList.length ; i++){
add_line(returnData.boardMasterList[i]);
}
}else{
alert("등록에 실패하였습니다.");
}
},
error: function (e) {
console.log("ERROR : ", e);
alert("등록에 실패하였습니다.");
}
});
}
function fncGoClose() {
self.close();
}
function btnReset(obj){
$(obj).closest('dd').find('span').html('');
}
function proxyPay(obj, pram){
var proxyPayList = '';
proxyPayList += '<div class="appreq_box pay_box">';
proxyPayList += '<div class="add_box"><button type="button" class="btnType08" onclick="addSbmtPerson(\''+pram+'\', \'confront\');">추가</button></div>';
proxyPayList += '<div class="list_box">';
proxyPayList += '<dl>';
proxyPayList += '<dt>대결자</dt>';
proxyPayList += '<dd>';
proxyPayList += '<span id=\'confront'+pram+'\'></span>';
proxyPayList += '<div class="button_box"><button type="button" class="btn_reset">초기화</button></div>';
proxyPayList += '</dd>';
proxyPayList += '</dl>';
proxyPayList += '</div>';
proxyPayList += '</div>';
if($(obj).hasClass('active')){
$(obj).removeClass('active').text('대결').prev('.btn_reset').show();
$(obj).closest('li').find('.pay_box').remove();
}else{
$(obj).addClass('active').text('대결취소').prev('.btn_reset').hide();
$(obj).closest('li').append(proxyPayList);
}
}
function addSbmtPerson(pram, type){
var selectedNm = $('#kccadr_sbmt').jstree('get_selected',true)[0].text;
if(type == 'sbmt'){
$('#sbmtPerson'+pram).text(selectedNm);
}else{
$('#confront'+pram).text(selectedNm);
}
}
</script>
<title>○○○ 결재 요청</title>
</head>
<body>
<form id="smbtForm" name="smbtForm" action="">
<input type="hidden" name="authorCode" id="authorCode" value="ROLE_ADMIN"/>
</form>
<div class="area_popup">
<div class="cont_popup">
<div class="menu_select">
<select name="authorCodeSelect" id="authorCodeSelect" class="select" title="검색조건선택">
<option value="부서별">부서별</option>
</select>
</div>
<div class="menu_wrap appreq_menu_wrap">
<div class="menu_area">
<div class="btn_wrap">
<button type="button" class="btnType02 all_open" onclick="$('#kccadr_sbmt').jstree('open_all' );">모두열기</button>
<button type="button" class="btnType03 all_close" onclick="$('#kccadr_sbmt').jstree('close_node' , $('#0') );">모두닫기</button>
</div>
<div class="menu_list" id="kccadr_sbmt" class="jstree_orgChart"></div>
</div>
<div class="menu_detail">
<ul class="appreq_list">
<li>
<div class="title">팀장</div>
<div class="appreq_box">
<div class="add_box">
<button type="button" class="btnType08" onclick="addSbmtPerson('1', 'sbmt');">추가</button>
</div>
<div class="list_box">
<dl>
<dt>결재자</dt>
<dd>
<span id="sbmtPerson1">결재자1</span>
<div class="button_box">
<button type="button" class="btn_reset" onclick="btnReset(this);">초기화</button>
<button type="button" class="btn_pay" onclick="proxyPay(this, '1');">대결</button>
</div>
</dd>
</dl>
</div>
</div>
</li>
<li>
<div class="title">부서장</div>
<div class="appreq_box">
<div class="add_box">
<button type="button" class="btnType08" onclick="addSbmtPerson('2', 'sbmt');">추가</button>
</div>
<div class="list_box">
<dl>
<dt>결재자</dt>
<dd>
<span id="sbmtPerson2">결재자2</span>
<div class="button_box">
<button type="button" class="btn_reset" onclick="btnReset(this);">초기화</button>
<button type="button" class="btn_pay" onclick="proxyPay(this, '2');">대결</button>
</div>
</dd>
</dl>
</div>
</div>
</li>
<li>
<div class="title">위원장</div>
<div class="appreq_box">
<div class="add_box">
<button type="button" class="btnType08" onclick="addSbmtPerson('3', 'sbmt');">추가</button>
</div>
<div class="list_box">
<dl>
<dt>결재자</dt>
<dd>
<span id="sbmtPerson3">결재자3</span>
<div class="button_box">
<button type="button" class="btn_reset" onclick="btnReset(this);">초기화</button>
<button type="button" class="btn_pay" onclick="proxyPay(this, '3');">대결</button>
</div>
</dd>
</dl>
</div>
</div>
</li>
</ul>
</div>
</div>
<div class="btn_wrap btn_layout04">
<button type="button" class="btnType01">기본결재선 지정</button>
<button type="button" class="btnType06">결재요청</button>
<button type="button" class="btnType03" onclick="fncGoClose();">닫기</button>
</div>
</div>
</div>
</body>
</html>

View File

@ -0,0 +1,922 @@
<!DOCTYPE html>
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<%@ taglib prefix="validator" uri="http://www.springmodules.org/tags/commons-validator" %>
<html lang="ko">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link href="<c:url value='/'/>css/jstree/themes/default/style.min.css" rel="stylesheet" type="text/css">
<style>
.jstree_orgChart {
overflow: auto;
border: 1px solid silver;
min-height: 100px;
width: 290px;
}
</style>
<script src="<c:url value='/js/jquery-1.12.4.min.js' />"></script>
<script src="<c:url value='/js/jstree.min.js' />"></script>
<script src="<c:url value='/js/EgovCmmUtl.js' />"></script>
<script type="text/javascript">
/*********************************
* jstree
*********************************
*/
var newNodeId = "";
function jstreeInit() {
$('#kccadr_sbmt').jstree({
"core" : {
"animation" : 0,
"multiple" : false,
"check_callback" : true,
"themes" : { "stripes" : true },
"data" : {
"url" : "<c:url value='/kccadr/adjReqMgOff/adjReqMgrOffAppReqPopAjax.do'/>",
"dataType" : "json",
"data" : function (node) {
console.log("node.id :: " + node.id);
console.log("authorCode :: " + $('#authorCode').val());
return {'id' : node.id, 'authorCode' : $('#authorCode').val() };
}
}
},
"types" : {
"#" : {
/* "max_children" : 4, */
"max_depth" : 5,
"valid_children" : ["root"]
},
"root" : {
"icon" : "glyphicon glyphicon-flash",
"valid_children" : ["default"]
},
"default" : {
"valid_children" : ["default","file"]
},
"file" : {
"icon" : "jstree-file",
"valid_children" : []
}
}/* ,
"plugins" : [
"contextmenu", "dnd", "search",
"types"
] */
})
.bind('loaded.jstree', function(e, data) {
$('#kccadr_sbmt').jstree('open_node' , $('#0') )
})
.on('select_node.jstree', function (e, data) {
if(!$('.organ_rightbox').is(":visible")){
$(".organ_rightbox").show();
}
/* 메뉴 선택 */
var menuNo = data.node.id;
var upperMenuId = data.node.parent;
//하위 메뉴가 있으면 메뉴코드 변경못하게
if(data.node.children.length > 0){
$('#menuNo').attr("readonly",true);
$('#existChildNode').val("Y");
}else{
$('#menuNo').attr("readonly",false);
$('#existChildNode').val("N");
}
/* 메뉴 선택 */
var menuNo = data.node.id;
//메뉴 추가시 자동 선택되게
if(newNodeId !=""){
menuNo = newNodeId ;
newNodeId = "";
$('#'+data.instance.get_node(menuNo).a_attr.id).trigger("click") //클릭 이벤트 발생
}
$("#menuTopNm").text(data.node.text);
$.ajax({
type:"POST",
url:"<c:url value='/sym/mnu/mcm/EgovMenuInfoAjax.do' />",
data:{ "menuNo" : menuNo , "authorCode" : $('#authorCode').val()},
dataType:'json',
//timeout:(1000*30),
success : function(returnData, status) {
if (status == "success") {
var menuManageVO = returnData.menuManageVO;
var menuUserTypeList = returnData.menuUserTypeList;
fn_select_menuNo(menuManageVO, menuUserTypeList);
} else { alert("ERROR"); }
},
error : function(request , status, error) {
},
complete : function () {
deleteLodingBar();
}
});
})
.on('rename_node.jstree', function (e, data) { //메뉴명 변경
var nodeId = data.node.id;
var oldText = data.old;
var newText = data.text;
if (nodeId > 0) {
/* 부서명 변경 */
if (oldText != newText) {
if (confirm("메뉴명을 변경하시겠습니까?" )) {
$.ajax({
type:"POST",
url:"<c:url value='/sym/mnu/mcm/EgovMenuInfoNmUpdateAjax.do' />",
data:{ "menuNo" : nodeId, "menuNm" : newText },
dataType:'json',
success : function(returnData, status) {
if (status == "success") {
alert("메뉴명이 변경되었습니다.");
} else { alert("ERROR"); }
},
error : function(request , status, error) {
alert("메뉴명이 변경이 실패되었습니다.");
},
complete : function () {
data.instance.refresh();
deleteLodingBar();
}
});
} else {
data.instance.refresh();
}
}
} else {/* 메뉴 추가 */
}
})
.on('delete_node.jstree', function (e, data) {
/* 메뉴 삭제 */
if(data.node.children.length != 0){
alert("하위 메뉴를 먼저 삭제 후 메뉴를 삭제해 주세요.");
data.instance.refresh();
}else{
if (confirm("[" + data.node.text + "]" + " 메뉴를 삭제하시겠습니까?")){
$.ajax({
type:"POST",
url:"<c:url value='/sym/mnu/mcm/EgovMenuInfoDeleteAjax.do' />",
data:{ "menuNo" : data.node.id , "authorCode" : $('#authorCode').val() },
dataType:'json',
//timeout:(1000*30),
success : function(returnData, status) {
if (status == "success") {
alert("메뉴 정보가 삭제되었습니다.");
fn_init_menuInfo();
} else { alert("ERROR"); }
},
error : function(request , status, error) {
alert("메뉴 정보 삭제가 실패되었습니다.");
//alert("code:"+request.status+"\n"+"message:"+request.responseText+"\n"+"error:"+error);
},
complete : function () {
data.instance.refresh();
deleteLodingBar();
}
});
} else {
data.instance.refresh();
}
}
})
.on('create_node.jstree', function(e, data) {
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='/sym/mnu/mcm/EgovMenuInfoInsertAjax.do' />",
data:{ "menuNm" : menuNm, "upperMenuId" : upperMenuId, "menuOrdr" : menuOrdr , "authorCode" : $('#authorCode').val() },
dataType:'json',
//timeout:(1000*30),
success : function(returnData, status) {
if (returnData.status == "success") {
alert("메뉴가 추가 되었습니다.");
//fn_select_menuNo(returnData.menuManageVO, returnData.menuManageVO.menuUserType);
newNodeId = returnData.menuManageVO.menuNo ;
}else if(returnData.status == "dupl"){
alert("중복된 아이디가 있습니다.\n 중복된 아이디변경/삭제후 다시 추가해 주세요\n"+ "("+returnData.menuManageResultVO.menuCours+")");
}else{
alert("메뉴 추가가 실패하였습니다.");
}
},
error : function(request , status, error) {
alert("메뉴 추가가 실패되었습니다.")
},
complete : function () {
data.instance.refresh();
deleteLodingBar();
}
});
}else{
data.instance.refresh();
}
})
.on('move_node.jstree', function (e, data) {
/* 메뉴 위치 변경 */
var instance = data.instance;
var menuNo = data.node.id;
var childrenNodes = instance.get_node(menuNo).children;
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 , "authorCode" : $('#authorCode').val()},
dataType:'json',
success : function(returnData, status) {
if (status == "success") {
alert("메뉴 위치가 변경되었습니다.");
} else { alert("ERROR"); }
},
error : function(request , status, error) {
alert("메뉴 위치 변경이 실패되었습니다.");
},
complete : function () {
data.instance.refresh();
deleteLodingBar();
}
});
} else {
data.instance.refresh();
}
}) ;
}
$( document ).ready(function() {
jstreeInit();
});
//직원 상세 초기화
function fn_add_emp() {
var partIdx =$("#selectPartIdx").val();
var upperIdxs = $("#selectPartParents").val();
// 직원 상세 초기화
document.empInfForm.reset();
$("#empFormTitle").text("메뉴 추가등록 상세");
$("input[name='paIdx']").val("");
fn_set_emp_part(partIdx, upperIdxs);
}
//메뉴 정보 세팅
function fn_select_menuNo(menuManageVO, menuUserTypeList){
var tmpHtml = "";
if(menuManageVO!=null){
$('#menuNo').val(menuManageVO.menuNo);
$('#tmp_Id').val(menuManageVO.menuNo);
$('#menuCours').text(menuManageVO.menuCours);
$('#menuOrdr').val(menuManageVO.menuOrdr);
$('#menuNm').val(menuManageVO.menuNm);
$('#menuDc').val(menuManageVO.menuDc);
$('#upperMenuIdText').text(menuManageVO.upperMenuId);
$('#upperMenuId').val(menuManageVO.upperMenuId);
$('#progrmFileNm').val(menuManageVO.progrmFileNm);
/* $('#progrmFileNmText').text(menuManageVO.progrmFileNm); */
$('#tmp_Name').val(menuManageVO.progrmFileNm);
$('#relateImageNm').val(menuManageVO.relateImageNm);
$('#relateImagePath').val(menuManageVO.relateImagePath);
$('#userType').val(menuManageVO.userType);
$('#url').val(menuManageVO.url);
$('#useYn').val(menuManageVO.useYn);
$('#satisYn').val(menuManageVO.satisYn);
$('.menu_detail_tit span').html(menuManageVO.menuNm+' - 메뉴 권한 목록');
if(""!=menuManageVO.emplyrId) $('#emplyrId').val(menuManageVO.emplyrId); //담당자 세팅
if(""!=menuManageVO.emplyrIdTxt) $('#emplyrIdTxt').val(menuManageVO.emplyrIdTxt); //담당자 세팅
if(menuManageVO.satisYn == null){
$('#satisYn').val('N')
}
$("#menuTopNm").text( menuManageVO.menuNm );
$("#progrmHtmlFileId").val( menuManageVO.progrmHtmlFileId );
$("#progrmBbsId").val(menuManageVO.progrmBbsId);
$('#progrmFileNm_tmp').val(menuManageVO.progrmFileNm);
var menuType = menuManageVO.menuType ;
if(menuType == "M"){
$("#satisTr").css("display", "none");
}else{
$("#satisTr").css("display", "");
}
if(menuManageVO.progrmFileNm == 'dir' || menuType == 'M'){
$("#menuType").val("M"); //메뉴로 세팅
$('#progrmFileNm').attr("readonly", true);
$('#progrmFileNm_tmp').val("");
$('#url_tmp').val("");
}else{
$("#menuType").val(menuType);
//$('#progrmFileNm').attr("readonly", false);
$('#url_tmp').val(menuManageVO.url);
}
//메뉴타입 설정
initShowUrl('Y');
$('#url').val(menuManageVO.url);
$(".main1_delete_btn").removeAttr("onclick");
$(".main1_delete_btn").attr("onclick", "fn_delete_menuInfo('"+menuManageVO.menuNo+"' , '"+menuManageVO.progrmFileNm+"' );return false;");
$(".main1_save_btn").removeAttr("onclick");
$(".main1_save_btn").attr("onclick", "fn_save_menuInfo('"+menuManageVO.menuNo+"');return false;");
$('.tr_item').remove();
if( ( "P" == $('#menuType').val() || "C" == $('#menuType').val()) && "ROLE_ANONYMOUS"==$('#authorCode').val() ){ //추가 게시판 조회(프로그램/사용자 화면만 조회)
$('#tr_add_bbs').show();
set_bbs();
}else{
$('#tr_add_bbs').hide();
}
$('#htmlComfirm').hide();
if(""!=menuManageVO.progrmHtmlFileId){
$('#htmlComfirm').show();
$('#a_contentLink').attr("onclick" , "htmlComfirm('"+menuManageVO.progrmHtmlFileId+"');")
}
}
}
//메뉴 정보 삭제
function fn_delete_menuInfo(menuNo , progrmFileNm ) {
if(menuNo == null || "undefined"== menuNo){
alert("삭제 하려는 메뉴를 먼저 선택해주세요.");
return ;
}
var instance = $('#kccadr_sbmt').jstree(true);
if(instance.get_node(menuNo).children.length != 0){
alert("하위 메뉴를 먼저 삭제 후 메뉴를 삭제해 주세요.");
return;
}
if (confirm("메뉴를 삭제 하시겠습니까?")){
$.ajax({
type:"POST",
"url" : "<c:url value='/sym/mnu/mcm/EgovMenuInfoDeleteAjax.do'/>",
data:{ "menuNo" : menuNo , "progrmFileNm" : progrmFileNm , "authorCode" : $('#authorCode').val() },
dataType:'json',
//timeout:(1000*30),
success : function(returnData, status) {
if (returnData.status == "success") {
// 직원 목록 갱신
var instance = $('#kccadr_sbmt').jstree(true);
//$("#" + instance.get_node(partIdx).a_attr.id).trigger("click");
alert("메뉴 정보가 삭제 되었습니다.");
$("#kccadr_sbmt").jstree("refresh");
fn_init_menuInfo();
} else if(returnData.status == "duplPk"){
alert("삭제하려는 메뉴를 참조하고 있는 메뉴가 있습니다.\n 참조하는 메뉴를 삭제후 다시 시도해 주세요\n"+ "("+returnData.menuManageResultVO.menuCours+")");
}
else {
alert("메뉴 삭제가 실패되었습니다.");
}
},
error : function(request , status, error) {
alert("메뉴 삭제가 실패되었습니다..");
},
complete : function (){
deleteLodingBar();
}
});
}
}
//메뉴정보 init(메뉴 초기화)
function fn_init_menuInfo() {
$("#menuTopNm").text("메뉴선택");
$("#menuForm input[type=text]").val("")
$('#menuCours').text("");
$('#upperMenuIdText').text("");
/* $('#progrmFileNmText').text(""); */
}
//메뉴 초기화
function jstreeRefresh() {
var searchForm = document.searchForm ;
searchForm.authorCode.value = $('#authorCode').val();
searchForm.submit();
}
//메뉴 정보 저장. 등록/수정
function fn_save_menuInfo(menuNo) {
if(menuNo == null || "undefined"== menuNo){
alert("저장 하려는 메뉴를 먼저 메뉴트리에서 생성해 주세요."); return ;
}
var menuForm = document.menuForm;
if(""==menuForm.menuNo.value){
alert("메뉴번호는 필수 값입니다"); return;
}
if(!$.isNumeric(menuForm.menuNo.value)){
alert("메뉴번호는 숫자만 가능합니다."); return;
}
if(!$.isNumeric(menuForm.menuOrdr.value)){
alert("메뉴순서는 숫자만 가능합니다."); return;
}
var menuType = $("#menuType option:selected").val();
if(menuType !="M"){
if($("#progrmFileNm").val() == ""){
alert("프로그램 파일명은 필수 값입니다");
return;
}
}
if(!confirm("저장하시겠습니까?")) return;
<%-- 원자력
//추가 게시판 저장후 메뉴 정보 저장
//if( $('#tr_bbs').length > 0 ){
if(!save_line()){
console.log();
return;
}
//}
--%>
var url = "";
url = "<c:url value='/sym/mnu/mcm/EgovMenuInfoUpdateAjax.do'/>";
var params = $(menuForm).serialize();
$.ajax({
type:"POST",
"url":url,
data:params,
dataType:'json',
success : function(returnData, status) {
if (returnData.status == "success") {
alert("메뉴 정보가 저장 되었습니다.");
var instance = $('#kccadr_sbmt').jstree(true);
$('#'+instance.get_node($('#tmp_Id').val()).a_attr.id).trigger("click");//이전 메뉴id선택되게
$('#tmp_Id').val($('#menuNo').val());
} else if(returnData.status == "upperDupl"){
alert("상위 메뉴 번호가 있습니다.");
}else if(returnData.status == "dupl"){
alert("이미 사용하고 있는 메뉴 번호가 있습니다.");
}else if(returnData.status == "duplProNm"){
alert("이미 사용하고 있는 프로그램파일명이 있습니다.");
}else{
alert("ERROR");
}
},
error : function(request , status, error) {
alert("메뉴 정보 저장이 실패되었습니다.");
},
complete : function () {
$("#kccadr_sbmt").jstree("refresh");
deleteLodingBar();
}
});
}
//메뉴 초기화
function initShowUrl(init){
var menuType = $("#menuType option:selected").val();
$("#url").val("");
$("#showUrl").hide();
$("#btnContent").hide();
$("#btnBBS").hide();
$('#htmlComfirm').hide();
$('#BBSNameSpan').text("");
if("M" == menuType){ //메뉴
$("#progrmFileNm").val("dir");
$("#url").val("");
$('#progrmFileNm').attr("readonly", true);
}else{
$("#progrmFileNm").val($("#progrmFileNm_tmp").val());
$("#url").val($("#url_tmp").val());
if("P" == menuType){ //프로그램
$('#progrmFileNm').attr("readonly", false);
$("#url").attr("readonly", false);
}else if("C" == menuType ){ //컨텐츠
$('#progrmFileNm').attr("readonly", false);
$("#url").attr("readonly", false);
}else if("B" == menuType){ //게시판
$('#progrmFileNm').attr("readonly", false);
$("#url").attr("readonly", false);
}else if("O" == menuType){ //게시판
$('#progrmFileNm').attr("readonly", false);
$("#url").attr("readonly", false);
}
if(init=='N'){
var instance = $('#kccadr_sbmt').jstree(true);
if($('#kccadr_sbmt').jstree('get_selected')[0] != null){
if(instance.get_node($('#kccadr_sbmt').jstree('get_selected')[0]).children.length != 0){
alert("하위 메뉴가 있을경우는 다른타입으로 변경할수 없습니다.");
return;
}
}
}
$("#showUrl").show();
if("C" == menuType){
$("#btnContent").show();
$("#url").attr("readonly", false);
}else if("B" == menuType){
$("#btnBBS").show();
$("#url").attr("readonly", false);
}
}
}
var docWidth = screen.availWidth;
var docHeight = screen.availHeight;
var scX = window.screenX||window.screenLeft||0;
var scY = window.screenY||window.screenTop||0;
/* ********************************************************
* 게시판목록조회 함수
******************************************************** */
function searchBBSId(obj) {
var popupX = scX + (docWidth - 185) / 2;
var popupY = scY + (docHeight - 195) / 2;
memuPopup = window.open('', 'memuPopup', "width=800, height=730, left="+popupX+", top="+popupY, "location = no","status= no","toolbars= no");
document.searchForm.method = "post";
if("menuAdd"==$(obj).attr('id')){ //추가게시판 버튼 클릭시
document.searchForm.seCd.value = $(obj).attr('id');
document.searchForm.searchNm.value = $(obj).attr('value');
}
document.searchForm.action = "/cop/bbs/EgovBBSIdListSearch.do";
document.searchForm.target = "memuPopup" ;
document.searchForm.submit();
document.searchForm.target = "_self" ;
document.searchForm.action= "/sym/mnu/mcm/EgovMenuCreatSelectJtree.do";
}
/* ********************************************************
* 화면컨텐츠ID 검색 팝업
******************************************************** */
var memuPopup ="";
function searchContentList() {
var popupX = scX + (docWidth - 185) / 2;
var popupY = scY + (docHeight - 195) / 2;
memuPopup = window.open('', 'memuPopup', "width=800, height=730, left="+popupX+", top="+popupY, "location = no","status= no","toolbars= no");
document.searchForm.method = "post";
document.searchForm.action = "/uss/ion/cnt/contentListPopup.do";
document.searchForm.target = "memuPopup" ;
document.searchForm.submit();
document.searchForm.target = "_self" ;
document.searchForm.action= "/sym/mnu/mcm/EgovMenuCreatSelectJtree.do";
}
/* ********************************************************
* 사용자 메뉴 담당자 조회 함수
******************************************************** */
function searchManageMenuList() {
var popupX = scX + (docWidth - 185) / 2;
var popupY = scY + (docHeight - 195) / 2;
memuPopup = window.open('', 'memuPopup', "width=800, height=730, left="+popupX+", top="+popupY, "location = no","status= no","toolbars= no");
document.searchForm.method = "post";
document.searchForm.action = "/uss/umt/user/EgovUserManageMenuAjax.do";
document.searchForm.target = "memuPopup" ;
document.searchForm.submit();
document.searchForm.target = "_self" ;
document.searchForm.action= "/sym/mnu/mcm/EgovMenuCreatSelectJtree.do";
}
function onkeyContentName(event){
var tempContentUrl = "/web/content.do?proFn=" ;
if($("#menuType option:selected").val()=="C"){
$("#url").val(tempContentUrl + $("#progrmFileNm").val()) ;
}
}
//행추가
function add_line(bbsInfo){
var eva_temp_tr = $('#temp_tr').clone();
$('#tbl_bbsId').append(eva_temp_tr);
eva_temp_tr.attr('id' , 'tr_bbs').attr('class' , 'tr_item');
{ //변수 변경
var tr_item_length = $('.tr_item').size()-1 ;
eva_temp_tr.find("#temp_bbsTxt").attr('name', eva_temp_tr.find("#temp_bbsTxt").attr('name').replace('[]' , '['+tr_item_length+']' )) ;
eva_temp_tr.find("#temp_bbsTxt").attr('id' , 'bbsTxt_'+tr_item_length) ;
eva_temp_tr.find("#temp_bbsIds").attr('name', eva_temp_tr.find("#temp_bbsIds").attr('name').replace('[]' , '['+tr_item_length+']' )) ;
eva_temp_tr.find("#temp_bbsIds").attr('id' , 'menuAdd_'+tr_item_length) ;
eva_temp_tr.find("#temp_bbsSorts").attr('name' , eva_temp_tr.find("#temp_bbsSorts").attr('name').replace('[]' , '['+tr_item_length+']' ) ) ;
eva_temp_tr.find("#temp_bbsSorts").attr('id' , 'bbsSorts_'+tr_item_length) ;
eva_temp_tr.find("#menuAdd").attr('value' , 'menuAdd_'+tr_item_length ) ;
}
if(null != bbsInfo){
$('#bbsTxt_'+tr_item_length).val(bbsInfo.bbsNm);
$('#bbsSorts_'+tr_item_length).val(bbsInfo.bbsSort);
$('#menuAdd_'+tr_item_length).val(bbsInfo.bbsId);
}
}
//삭제시 배열 초기화
var arrCd = [];
function set_count(){ //tr 세팅
$('.tr_item').each(function(index, item){
$(this).find('input[name^=bbsTxt]').attr('name', 'bbsTxt['+index+']' ).attr('id' , 'bbsTxt_'+index ) ;
$(this).find('input[name^=bbsSorts]').attr('name', 'bbsSorts['+index+']' );
$(this).find('input[name^=bbsIds]').attr('name', 'bbsIds['+index+']' ).attr('id' , 'menuAdd_'+index ) ;
$(this).find('#menuAdd').attr('value' , 'menuAdd_'+index) ;
});
}
var arrDel = []; //1차배열
function delete_line(obj){
$(obj).parent().parent().remove();
set_count();
}
function save_line() {
/* if(0== $('.tr_item').size()){
alert("선택된 게시판이 없습니다.");
return;
} */
//빈 게시판 방지
var blank_tr = false;
var blank_sort = false;
$('.tr_item').each(function() {
if(""==$(this).find('input[name^=bbsTxt]').val()){
blank_tr = true;
}
if(""==$(this).find('input[name^=bbsSort]').val()){
blank_sort = true;
}
});
if(blank_tr) {
alert("비어 있는 게시판이 있습니다.");
return false;
}
if(blank_sort) {
alert("게시판 순서를 넣어주세요.");
return false;
}
var save_line_return = false;
var frm = document.menuForm;
var data = new FormData(frm);
$.ajax({
type: "POST",
url: "/sym/mnu/mcm/MenuBbsInsertAjax.do",
data: data,
dataType:'json',
processData: false,
contentType: false,
async: false,
cache: false,
timeout: 600000,
success: function (returnData, status) {
if(status == 'success'){
if(returnData.status == 'fail'){
alert("게시판 등록 실패하였습니다.");
}else if(returnData.status == 'auth_fail'){
alert("세션이 종료되었습니다.");
}else if(returnData.status =='success'){
//alert("등록되었습니다.");
save_line_return = true;
}
}else{
alert("등록에 실패하였습니다.");
return false;
}
},
error: function (e) {
console.log("ERROR : ", e);
alert("등록에 실패하였습니다.");
}
});
return save_line_return;
}
function htmlComfirm(progrmHtmlFileId) {
$.ajax({
type: "POST",
url: "/sym/mnu/mcm/HtmlComfirmAjax.do",
data:{
"cntId": progrmHtmlFileId
},
dataType:'json',
timeout: 600000,
success: function (returnData, status) {
if(status == 'success'){
console.log("sdfsdf");
window.open("/uss/ion/cnt/cntManageInsert.do?cntId="+returnData.cntManageVO.cntId+"&cntDtId="+returnData.cntManageVO.cntDtId);
}else{
//alert("등록에 실패하였습니다.");
return false;
}
},
error: function (e) {
console.log("ERROR : ", e);
alert("등록에 실패하였습니다.");
}
});
}
function set_bbs(){
var frm = document.menuForm;
var data = new FormData(frm);
$.ajax({
type: "POST",
url: "/sym/mnu/mcm/MenuBbsSelectAjax.do",
data: data,
dataType:'json',
processData: false,
contentType: false,
cache: false,
timeout: 600000,
success: function (returnData, status) {
if(status == 'success'){
for(var i = 0 ; i < returnData.boardMasterList.length ; i++){
add_line(returnData.boardMasterList[i]);
}
}else{
alert("등록에 실패하였습니다.");
}
},
error: function (e) {
console.log("ERROR : ", e);
alert("등록에 실패하였습니다.");
}
});
}
function fncGoClose() {
self.close();
}
function btnReset(obj){
$(obj).closest('dd').find('span').html('');
}
function proxyPay(obj, pram){
var proxyPayList = '';
proxyPayList += '<div class="appreq_box pay_box">';
proxyPayList += '<div class="add_box"><button type="button" class="btnType08" onclick="addSbmtPerson(\''+pram+'\', \'confront\');">추가</button></div>';
proxyPayList += '<div class="list_box">';
proxyPayList += '<dl>';
proxyPayList += '<dt>대결자</dt>';
proxyPayList += '<dd>';
proxyPayList += '<span id=\'confront'+pram+'\'></span>';
proxyPayList += '<div class="button_box"><button type="button" class="btn_reset">초기화</button></div>';
proxyPayList += '</dd>';
proxyPayList += '</dl>';
proxyPayList += '</div>';
proxyPayList += '</div>';
if($(obj).hasClass('active')){
$(obj).removeClass('active').text('대결').prev('.btn_reset').show();
$(obj).closest('li').find('.pay_box').remove();
}else{
$(obj).addClass('active').text('대결취소').prev('.btn_reset').hide();
$(obj).closest('li').append(proxyPayList);
}
}
function addSbmtPerson(pram, type){
var selectedNm = $('#kccadr_sbmt').jstree('get_selected',true)[0].text;
if(type == 'sbmt'){
$('#sbmtPerson'+pram).text(selectedNm);
}else{
$('#confront'+pram).text(selectedNm);
}
}
</script>
<title>○○○ 결재 요청</title>
</head>
<body>
<form id="smbtForm" name="smbtForm" action="">
<input type="hidden" name="authorCode" id="authorCode" value="ROLE_ADMIN"/>
</form>
<div class="area_popup">
<div class="cont_popup">
<div class="menu_select">
<select name="authorCodeSelect" id="authorCodeSelect" class="select" title="검색조건선택">
<option value="부서별">부서별</option>
</select>
</div>
<div class="menu_wrap appreq_menu_wrap">
<div class="menu_area">
<div class="btn_wrap">
<button type="button" class="btnType02 all_open" onclick="$('#kccadr_sbmt').jstree('open_all' );">모두열기</button>
<button type="button" class="btnType03 all_close" onclick="$('#kccadr_sbmt').jstree('close_node' , $('#0') );">모두닫기</button>
</div>
<div class="menu_list" id="kccadr_sbmt" class="jstree_orgChart"></div>
</div>
<div class="menu_detail">
<ul class="appreq_list">
<li>
<div class="title">팀장</div>
<div class="appreq_box">
<div class="add_box">
<button type="button" class="btnType08" onclick="addSbmtPerson('1', 'sbmt');">추가</button>
</div>
<div class="list_box">
<dl>
<dt>결재자</dt>
<dd>
<span id="sbmtPerson1">결재자1</span>
<div class="button_box">
<button type="button" class="btn_reset" onclick="btnReset(this);">초기화</button>
<button type="button" class="btn_pay" onclick="proxyPay(this, '1');">대결</button>
</div>
</dd>
</dl>
</div>
</div>
</li>
<li>
<div class="title">부서장</div>
<div class="appreq_box">
<div class="add_box">
<button type="button" class="btnType08" onclick="addSbmtPerson('2', 'sbmt');">추가</button>
</div>
<div class="list_box">
<dl>
<dt>결재자</dt>
<dd>
<span id="sbmtPerson2">결재자2</span>
<div class="button_box">
<button type="button" class="btn_reset" onclick="btnReset(this);">초기화</button>
<button type="button" class="btn_pay" onclick="proxyPay(this, '2');">대결</button>
</div>
</dd>
</dl>
</div>
</div>
</li>
<li>
<div class="title">위원장</div>
<div class="appreq_box">
<div class="add_box">
<button type="button" class="btnType08" onclick="addSbmtPerson('3', 'sbmt');">추가</button>
</div>
<div class="list_box">
<dl>
<dt>결재자</dt>
<dd>
<span id="sbmtPerson3">결재자3</span>
<div class="button_box">
<button type="button" class="btn_reset" onclick="btnReset(this);">초기화</button>
<button type="button" class="btn_pay" onclick="proxyPay(this, '3');">대결</button>
</div>
</dd>
</dl>
</div>
</div>
</li>
</ul>
</div>
</div>
<div class="btn_wrap btn_layout04">
<button type="button" class="btnType01">기본결재선 지정</button>
<button type="button" class="btnType06">결재요청</button>
<button type="button" class="btnType03" onclick="fncGoClose();">닫기</button>
</div>
</div>
</div>
</body>
</html>

View File

@ -0,0 +1,462 @@
<!DOCTYPE html>
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
<%@ taglib prefix="validator" uri="http://www.springmodules.org/tags/commons-validator" %>
<%@ taglib prefix="kc" uri="/WEB-INF/tlds/kcc_tld.tld"%>
<%
/**
* @Class Name : memSttstList.jsp
* @Description : 조정위원 사건 관리 현황 통계
* @Modification Information
* @
* @ 수정일 수정자 수정내용
* @ ------- -------- ---------------------------
* @ 2021.08.09 김봉호 최초 생성
* @author 김봉호
* @since 2021.08.21
* @version 1.0
* @see
*
*/
%>
<html lang="ko">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<style>
</style>
<script type="text/javascript">
function fncGoList(){
linkPage(1);
}
function linkPage(pageNo){
var listForm = document.listForm ;
listForm.pageIndex.value = pageNo ;
listForm.searchCondition.value = $('#searchCondition').val();
listForm.searchKeyword.value = $('#searchKeyword').val();
listForm.action = "<c:url value='/kccadr/adjReqMgOff/adjReqMgrOffList.do'/>";
listForm.submit();
}
function fncCreate(){
var listForm = document.listForm ;
listForm.action = "<c:url value='/kccadr/adjReqMgrOff/adjReqMgrOffRegist.do'/>";
listForm.submit();
}
function fncGoDetail(adrSeq){
var listForm = document.listForm ;
listForm.adrSeq.value = adrSeq;
listForm.action = "<c:url value='/kccadr/adjReqMgOff/adjReqMgrOffDetail.do'/>";
listForm.submit();
}
function AppReq(){
var form = $('<form id="payform"></form>');
form.append($('<input/>', {type: 'hidden', name: 'mltApprSeq', value: 'test'}));
form.appendTo('body');
commonPopWindowopenForm("/kccadr/adjReqMgOff/popup/adjReqMgrOffAppReqPop.do" , "850", "700", "AppReqPopup", form);
form.remove();
}
</script>
<title>조정신청목록</title>
</head>
<body>
<form:form id="listForm" name="listForm" method="post" commandName="adjReqMgrOffLineVO" onsubmit="return false;">
<input type="hidden" name="pageIndex" value="<c:out value='${adjReqMgrOffLineVO.pageIndex}' default='1' />"/>
<input type="hidden" name="searchSortCnd" value="<c:out value="${adjReqMgrOffLineVO.searchSortCnd}" />" />
<input type="hidden" name="searchSortOrd" value="<c:out value="${adjReqMgrOffLineVO.searchSortOrd}" />" />
<input type="hidden" name="adrSeq" value=""/>
<div class="cont_wrap">
<div class="box">
<!-- cont_tit -->
<div class="cont_tit">
<h2>조정위원별 사건 관리 현황 통계(작업중)</h2>
<ul class="cont_nav">
<li class="home"><a href="/"><i></i></a></li>
<li>
<p>오프라인 조정관리</p>
</li>
<li><span class="cur_nav">조정위원별 사건 관리 현황 통계</span></li>
</ul>
</div>
<!-- //cont_tit -->
<div class="cont stat_cont">
<div class="list_top">
<div class="list_util">
<div class="detail_search">
<ul>
<li>
<p class="tit_text">기간</p>
<select name="year" id="year">
<option value="">연도</option>
<option value="2022">2022</option>
<option value="2021">2021</option>
</select>
<select name="month" id="month">
<option value="">전체</option>
<option value="1">1월</option>
<option value="2">2월</option>
</select>
<select name="day" id="day">
<option value="">전체</option>
<option value="1">1일</option>
<option value="2">2일</option>
</select>
<button type="button" class="btn_search">검색</button>
</li>
</ul>
</div>
</div>
</div>
<div class="tb_tit">
<p>조정위원</p>
<div class="btn_wrap">
<button type="button" class="btn_down_excel">엑셀 다운로드</button>
</div>
</div>
<div class="stat_list">
<ul>
<li>
<dl>
<dt>김길동</dt>
<dd class="tbType02">
<table>
<colgroup>
<col style="width:120px;" />
<col style="width:auto;" />
</colgroup>
<tbody>
<tr>
<th class="title" rowspan="2">사용상태별<br>(건수)</th>
<th>전체</th>
<th>성립</th>
<th>불성립</th>
<th>취하종결</th>
<th>직권조정</th>
<th>조정권고</th>
<th>반려</th>
</tr>
<tr>
<td class="all">27</td>
<td>2</td>
<td>1</td>
<td>20</td>
<td>4</td>
<td>0</td>
<td>0</td>
</tr>
<tr>
<th class="title" rowspan="4">분야별<br>(건수)</th>
<th>전체</th>
<th>어문저작물</th>
<th>음악저작물</th>
<th>연극저작물</th>
<th>미술저작물</th>
<th>건축저작물</th>
<th>사진저작물</th>
</tr>
<tr>
<td class="all">27</td>
<td>2</td>
<td>1</td>
<td>20</td>
<td>4</td>
<td>0</td>
<td>0</td>
</tr>
<tr>
<th>영상저작물</th>
<th>도형저작물</th>
<th>컴퓨터프로그램</th>
<th>편집저작물</th>
<th>데이터베이스</th>
<th>저작인격권</th>
<th>저작인접권</th>
</tr>
<tr>
<td>27</td>
<td>2</td>
<td>1</td>
<td>20</td>
<td>4</td>
<td>0</td>
<td>0</td>
</tr>
</tbody>
</table>
</dd>
</dl>
</li>
<li>
<dl>
<dt>김길동</dt>
<dd class="tbType02">
<table>
<colgroup>
<col style="width:120px;" />
<col style="width:auto;" />
</colgroup>
<tbody>
<tr>
<th class="title" rowspan="2">사용상태별<br>(건수)</th>
<th>전체</th>
<th>성립</th>
<th>불성립</th>
<th>취하종결</th>
<th>직권조정</th>
<th>조정권고</th>
<th>반려</th>
</tr>
<tr>
<td class="all">27</td>
<td>2</td>
<td>1</td>
<td>20</td>
<td>4</td>
<td>0</td>
<td>0</td>
</tr>
<tr>
<th class="title" rowspan="4">분야별<br>(건수)</th>
<th>전체</th>
<th>어문저작물</th>
<th>음악저작물</th>
<th>연극저작물</th>
<th>미술저작물</th>
<th>건축저작물</th>
<th>사진저작물</th>
</tr>
<tr>
<td class="all">27</td>
<td>2</td>
<td>1</td>
<td>20</td>
<td>4</td>
<td>0</td>
<td>0</td>
</tr>
<tr>
<th>영상저작물</th>
<th>도형저작물</th>
<th>컴퓨터프로그램</th>
<th>편집저작물</th>
<th>데이터베이스</th>
<th>저작인격권</th>
<th>저작인접권</th>
</tr>
<tr>
<td>27</td>
<td>2</td>
<td>1</td>
<td>20</td>
<td>4</td>
<td>0</td>
<td>0</td>
</tr>
</tbody>
</table>
</dd>
</dl>
</li>
<li>
<dl>
<dt>김길동</dt>
<dd class="tbType02">
<table>
<colgroup>
<col style="width:120px;" />
<col style="width:auto;" />
</colgroup>
<tbody>
<tr>
<th class="title" rowspan="2">사용상태별<br>(건수)</th>
<th>전체</th>
<th>성립</th>
<th>불성립</th>
<th>취하종결</th>
<th>직권조정</th>
<th>조정권고</th>
<th>반려</th>
</tr>
<tr>
<td class="all">27</td>
<td>2</td>
<td>1</td>
<td>20</td>
<td>4</td>
<td>0</td>
<td>0</td>
</tr>
<tr>
<th class="title" rowspan="4">분야별<br>(건수)</th>
<th>전체</th>
<th>어문저작물</th>
<th>음악저작물</th>
<th>연극저작물</th>
<th>미술저작물</th>
<th>건축저작물</th>
<th>사진저작물</th>
</tr>
<tr>
<td class="all">27</td>
<td>2</td>
<td>1</td>
<td>20</td>
<td>4</td>
<td>0</td>
<td>0</td>
</tr>
<tr>
<th>영상저작물</th>
<th>도형저작물</th>
<th>컴퓨터프로그램</th>
<th>편집저작물</th>
<th>데이터베이스</th>
<th>저작인격권</th>
<th>저작인접권</th>
</tr>
<tr>
<td>27</td>
<td>2</td>
<td>1</td>
<td>20</td>
<td>4</td>
<td>0</td>
<td>0</td>
</tr>
</tbody>
</table>
</dd>
</dl>
</li>
</ul>
</div>
</div>
<!--
<div class="cont">
<div class="list_top">
<div class="list_util">
<div class="detail_search">
<ul>
<li>
<p class="tit_text">구분</p>
<select name="searchCondition" id="searchCondition">
<%-- <option value="" ${adjReqMgrOffLineVO.searchCondition eq '' ? 'selected' : '' }>전체</option> --%>
<option value="1" ${adjReqMgrOffLineVO.searchCondition eq '1' ? 'selected' : '' }>조정번호</option>
<%-- <option value="2" ${adjReqMgrOffLineVO.searchCondition eq '2' ? 'selected' : '' }>접수기간</option> --%>
<option value="3" ${adjReqMgrOffLineVO.searchCondition eq '3' ? 'selected' : '' }>신청인명</option>
<option value="4" ${adjReqMgrOffLineVO.searchCondition eq '4' ? 'selected' : '' }>피신청인명</option>
<option value="5" ${adjReqMgrOffLineVO.searchCondition eq '5' ? 'selected' : '' }>신청내용</option>
<option value="6" ${adjReqMgrOffLineVO.searchCondition eq '6' ? 'selected' : '' }>조정상태</option>
</select>
<input type="text" id=searchKeyword name="searchKeyword" class="search_input" placeholder="검색어를 입력하세요" value="<c:out value='${adjReqMgrOffLineVO.searchKeyword}'/>">
&nbsp;&nbsp;&nbsp;&nbsp;
<p class="tit_text">접수기간</p>
<div id="sel_date" class="sel_date">
<input type="text" class="startDate inp" title="검색시작일" id="startDate01" name="searchStartDt" value="${adjReqMgrOffLineVO.searchStartDt}" data-datecontrol="true">
<div class="calendar_in" id="calendarName_startDate" style="z-index: 9;">
<button type="button" value="달력 팝업 열기" onclick="return calendarOpen('startDate01-lry','',this)" class="btn_cal"></button>
<div id="startDate01-lry" class="calendarPop" style="display: none;">
<iframe id="startDate01-ifrm" name="startDate01-ifrm" class="calendar-frame" src="/kccadrPb/adm/calendar.html" title=" 달력 팝업" frameborder="0" scrolling="no"></iframe>
</div>
</div> ~
<input type="text" class="endDate inp" title="검색시작일" id="endDate" name="searchEndDt" value="${adjReqMgrOffLineVO.searchEndDt}" data-datecontrol="true">
<div class="calendar_in" id="calendarName_endDate" style="z-index: 9;">
<button type="button" value="달력 팝업 열기" onclick="return calendarOpen('endDate-lry','',this)" class="btn_cal" ></button>
<div id="endDate-lry" class="calendarPop" style="display: none;">
<iframe id="endDate-ifrm" name="endDate-ifrm" class="calendar-frame" src="/kccadrPb/adm/calendar.html"title=" 달력 팝업" frameborder="0" scrolling="no"></iframe>
</div>
</div>
</div>
<button class="btn_search" onclick="fncGoList(); return false;">검색</button>
</li>
</ul>
</div>
</div>
</div>
<div class="list tbType01">
<table>
<colgroup>
<col style="width: 5%">
<col style="width: 20%">
<col style="width: 20%">
<col style="width: 20%">
<col style="width: 20%">
</colgroup>
<thead>
<tr>
<th>번호<button class="sort btn_sort" id="sort_adrSeq">▲</button></th>
<th>신청인<button type="button" class="sort sortBtn" id="sort_appliCantNm"></button></th>
<th>피신청인<button type="button" class="sort sortBtn" id="sort_resPonDentNm"></button></th>
<th>저작물종류<button type="button" class="sort sortBtn" id="sort_reqCn1"></button></th>
<th>조정상태<button type="button" class="sort sortBtn" id="sort_statCd"></button></th>
</tr>
</thead>
<tbody>
<c:forEach var="list" items="${list}" varStatus="status">
<tr>
<td>
<c:if test="${adjReqMgrOffLineVO.searchSortOrd eq 'desc' }">
<c:out value="${ ( paginationInfo.totalRecordCount - ((adjReqMgrOffLineVO.pageIndex -1)*adjReqMgrOffLineVO.pageUnit) ) - status.index }"/>
</c:if>
<c:if test="${adjReqMgrOffLineVO.searchSortOrd eq 'asc' }">
<c:out value="${(adjReqMgrOffLineVO.pageIndex - 1) * adjReqMgrOffLineVO.pageUnit + status.count}"/>
</c:if>
</td>
<td><a href="#none" onclick="fncGoDetail('${list.adrSeq}');">${list.appliCantNm} <c:if test="${not empty list.depuTyNm}">(${list.depuTyNm})</c:if></a></td>
<td><a href="#none" onclick="fncGoDetail('${list.adrSeq}');">${list.resPonDentNm}</a></td>
<td>
<a href="#none" onclick="fncGoDetail('${list.adrSeq}');">
<kc:code codeId="CC002" code="${list.ccTy}"/>
</a>
</td>
<td>
<p class="status_cmp"><kc:code codeId="CC013" code="${list.statCd}"/></p>
</td>
</tr>
</c:forEach>
<c:if test="${empty list}">
<tr><td colspan="5"><spring:message code="common.nodata.msg" /></td></tr>
</c:if>
</tbody>
</table>
</div>
<div class="btn_wrap btn_layout02">
<button type="button" class="btnType02" onclick="AppReq();">결재 요청 팝업 임시버튼</button>
<button class="btnType02" onclick="fncCreate(); return false;" >등록</button>
</div>
<div class="page">
<ui:pagination paginationInfo = "${paginationInfo}" type="image" jsFunction="linkPage" />
</div>
</div>
</div>
</div>
-->
<!-- //cont -->
<!-- //cont -->
</form:form>
</body>
</html>