package itn.let.mjo.kisa.web;
import java.util.List;
import java.util.Map;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
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.multipart.MultipartFile;
import org.springframework.web.multipart.MultipartHttpServletRequest;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.support.RedirectAttributes;
import egovframework.rte.fdl.security.userdetails.util.EgovUserDetailsHelper;
import egovframework.rte.ptl.mvc.tags.ui.pagination.PaginationInfo;
import itn.com.cmm.ComDefaultCodeVO;
import itn.com.cmm.EgovMessageSource;
import itn.com.cmm.LoginVO;
import itn.com.cmm.service.EgovCmmUseService;
import itn.com.cmm.service.EgovFileMngService;
import itn.com.cmm.service.EgovFileMngUtil;
import itn.com.cmm.service.FileVO;
import itn.let.mjo.kisa.service.KisaService;
import itn.let.mjo.kisa.service.KisaVO;
/**
* 주소록 관한 controller 클래스를 정의한다.
* @author ITN
* @since 2021.04.08
* @version 1.0
* @see
*
*
* << 개정이력(Modification Information) >>
*
* 수정일 수정자 수정내용
* ------- -------- ---------------------------
* 2021.04.08 ITN 최초 생성
*
*
*/
@Controller
public class KisaController {
@Resource(name = "KisaService")
private KisaService kisaService;
/** EgovMessageSource */
@Resource(name="egovMessageSource")
EgovMessageSource egovMessageSource;
@Resource(name="EgovFileMngUtil")
private EgovFileMngUtil fileUtil;
@Resource(name="EgovFileMngService")
private EgovFileMngService fileMngService;
@Resource(name = "EgovFileMngService")
private EgovFileMngService fileService;
@Resource(name = "EgovCmmUseService")
private EgovCmmUseService cmmUseService;
private static final Logger LOGGER = LoggerFactory.getLogger(KisaController.class);
/**
* kisa 목록 페이지
* @param kisaVO
* @param model
* @return "/kisa/kisa/KisaList"
* @throws Exception
*/
@RequestMapping(value="/kisa/kisa/KisaList.do")
public String kisaList(@ModelAttribute("kisaVO") KisaVO kisaVO,
HttpServletRequest request ,
ModelMap model) throws Exception{
if(kisaVO.getPageUnit() != 10) {
kisaVO.setPageUnit(kisaVO.getPageUnit());
}
/** pageing */
PaginationInfo paginationInfo = new PaginationInfo();
paginationInfo.setCurrentPageNo(kisaVO.getPageIndex());
paginationInfo.setRecordCountPerPage(kisaVO.getPageUnit());
paginationInfo.setPageSize(kisaVO.getPageSize());
kisaVO.setFirstIndex(paginationInfo.getFirstRecordIndex());
kisaVO.setLastIndex(paginationInfo.getLastRecordIndex());
kisaVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage());
if("".equals(kisaVO.getSearchSortCnd())){ //최초조회시 최신것 조회List
kisaVO.setSearchSortCnd("kisaId");
kisaVO.setSearchSortOrd("desc");
}
List kisaList = kisaService.selectKisaList(kisaVO);
int totCnt = 0;
if(kisaList.size() > 0) {
totCnt = kisaList.get(0).getTotcnt();
}
model.addAttribute("kisaList", kisaList);
paginationInfo.setTotalRecordCount(totCnt);
model.addAttribute("paginationInfo", paginationInfo);
return "/kisa/kisa/KisaList";
}
/**
* 게시물에 대한 상세 정보를 조회한다.
*
* @param KisaVO
* @param model
* @return
* @throws Exception
*/
@RequestMapping("/kisa/kisa/selectKisaArticle.do")
public String selectBoardArticle(@ModelAttribute("searchVO") KisaVO kisaVO, ModelMap model , RedirectAttributes redirectAttributes) throws Exception {
LoginVO user = (LoginVO) EgovUserDetailsHelper.getAuthenticatedUser();
// 삭제 및 노 데이터 조회 시
if (kisaVO == null) {
redirectAttributes.addFlashAttribute("message", egovMessageSource.getMessage("info.nodata.msg"));
redirectAttributes.addAttribute("pageIndex", kisaVO.getPageIndex());
return "redirect:/kisa/kisa/KisaList.do";
}
kisaVO = kisaService.selectKisaDetail(kisaVO);
if(kisaVO.getPageUnit() != 10) {
kisaVO.setPageUnit(kisaVO.getPageUnit());
}
List kisaPastListVO = kisaService.selectKisaIdPastList(kisaVO);
KisaVO kisapastVO = kisaVO;
/** pageing */
PaginationInfo paginationInfo = new PaginationInfo();
paginationInfo.setCurrentPageNo(kisapastVO.getPageIndex());
paginationInfo.setRecordCountPerPage(kisapastVO.getPageUnit());
paginationInfo.setPageSize(kisapastVO.getPageSize());
kisapastVO.setFirstIndex(paginationInfo.getFirstRecordIndex());
kisapastVO.setLastIndex(paginationInfo.getLastRecordIndex());
kisapastVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage());
if("".equals(kisapastVO.getSearchSortCnd())){ //최초조회시 최신것 조회List
kisapastVO.setSearchSortCnd("kisaId");
kisapastVO.setSearchSortOrd("desc");
}
int totCnt = 0;
if(kisaPastListVO.size() > 0) {
totCnt = kisaPastListVO.get(0).getTotcnt();
}
paginationInfo.setTotalRecordCount(totCnt);
model.addAttribute("paginationInfo", paginationInfo);
if(kisaVO.getAtchFileId() !=null) {
FileVO fileVO = new FileVO();
fileVO.setAtchFileId(kisaVO.getAtchFileId());
List fileList = fileService.selectFileInfs(fileVO);
model.addAttribute("fileList", fileList);
}
// 소명자료 List
if(kisaVO.getAtchFileId2() !=null) {
FileVO fileVO = new FileVO();
fileVO.setAtchFileId(kisaVO.getAtchFileId2());
List fileList2 = fileService.selectFileInfs(fileVO);
model.addAttribute("fileList2", fileList2);
}
ComDefaultCodeVO comDefaultCodeVO = new ComDefaultCodeVO();
//평가참여횟수 코드 조회
comDefaultCodeVO.setCodeId("ITN034");
List> codeResult = cmmUseService.selectCmmCodeDetail(comDefaultCodeVO);
model.addAttribute("codeResult", codeResult);
if(!"".equals(kisaVO.getKisaWarnMessage()) && kisaVO.getKisaWarnMessage() != null) {
String[] chk = kisaVO.getKisaWarnMessage().split(",");
model.addAttribute("chk", chk);
}
model.addAttribute("kisaVO", kisaVO);
model.addAttribute("kisapastVO", kisapastVO);
model.addAttribute("kisaPastListVO", kisaPastListVO);
return "/kisa/kisa/KisaDetail";
}
/**
* kisa 등록 페이지
* @param kisaVO
* @param model
* @return "/kisa/kisa/KisaRegist"
* @throws Exception
*/
@RequestMapping(value="/kisa/kisa/kisaRegist.do")
public String kisaRegist(@RequestParam Map, ?> commandMap, @ModelAttribute("kisaVO") KisaVO kisaVO,
HttpServletRequest request, HttpServletResponse response,
RedirectAttributes redirectAttributes , Model model , HttpSession session) throws Exception{
ComDefaultCodeVO comDefaultCodeVO = new ComDefaultCodeVO();
//평가참여횟수 코드 조회
comDefaultCodeVO.setCodeId("ITN034");
List> codeResult = cmmUseService.selectCmmCodeDetail(comDefaultCodeVO);
model.addAttribute("codeResult", codeResult);
return "/kisa/kisa/KisaRegist";
}
/**
* KISA 등록 Ajax
* @param kisaVO
* @param model
* @return modelAndView
* @throws Exception
*/
@RequestMapping(value = {"/kisa/kisa/insertKisaAjax.do"})
public ModelAndView insertKisaAjax(final MultipartHttpServletRequest multiRequest
, KisaVO kisaVO
, RedirectAttributes redirectAttributes
, HttpServletRequest request) throws Exception {
LoginVO user = (LoginVO) EgovUserDetailsHelper.getAuthenticatedUser();
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("jsonView");
String atchFileId = "";
final Map files = multiRequest.getFileMap();
if (!files.isEmpty()) {
List result = fileUtil.parseFileInf(files, "KISA_", 0, "", "", "");
atchFileId = fileMngService.insertFileInfs(result);
kisaVO.setAtchFileId(atchFileId);
}
kisaVO.setFrstRegisterId(user.getId());
kisaService.insertKisa(kisaVO);
modelAndView.addObject("result", "success");
return modelAndView;
}
/**
* KISA 수정 Ajax
* @param kisaVO
* @param model
* @return modelAndView
* @throws Exception
*/
@RequestMapping(value = {"/kisa/kisa/updateKisaAjax.do"})
public ModelAndView updateKisaAjax(final MultipartHttpServletRequest multiRequest
, KisaVO kisaVO
, RedirectAttributes redirectAttributes
, HttpServletRequest request) throws Exception {
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("jsonView");
String atchFileId = "";
final Map files = multiRequest.getFileMap();
if (!files.isEmpty()) {
if ("".equals(atchFileId)) {
List result = fileUtil.parseFileInf(files, "KISA_", 0, atchFileId, "", "");
atchFileId = fileMngService.insertFileInfs(result);
kisaVO.setAtchFileId(atchFileId);
} else {
FileVO fvo = new FileVO();
fvo.setAtchFileId(atchFileId);
int cnt = fileMngService.getMaxFileSN(fvo);
List result = fileUtil.parseFileInf(files, "KISA_", cnt, atchFileId, "", "");
fileMngService.updateFileInfs(result);
}
}
kisaService.updateKisa(kisaVO);
modelAndView.addObject("result", "success");
return modelAndView;
}
/**
* KISA 리스트 팝업 유무 Ajax
* @param kisaVO
* @param model
* @return modelAndView
* @throws Exception
*/
@RequestMapping(value = {"/kisa/kisa/updateKisaWarnMessageAjax.do"})
public ModelAndView updateKisaWarnMessageAjax(@ModelAttribute("kisaVO") KisaVO kisaVO
, RedirectAttributes redirectAttributes
, HttpServletRequest request) throws Exception {
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("jsonView");
kisaService.updateKisaPopupYn(kisaVO);
modelAndView.addObject("result", "success");
return modelAndView;
}
}