package incheon.res.rdm.oe.linked.web;

import incheon.com.cmm.ComDefaultVO;
import incheon.com.security.vo.LoginVO;
import incheon.res.rdm.oe.doc.service.RdmOeDocService;
import incheon.res.rdm.oe.doc.vo.RdmOeDocVO;
import incheon.res.rdm.oe.gfc.service.RdmOeGfcService;
import incheon.res.rdm.oe.gfc.vo.RdmOeGfcVO;
import incheon.res.rdm.oe.levy.service.RdmOeLevyService;
import incheon.res.rdm.oe.levy.vo.RdmOeLevyVO;
import incheon.res.rdm.oe.linked.service.RdmOeLinkedService;
import incheon.res.rdm.oe.linked.vo.RdmOeLinkedVO;
import incheon.res.rdm.oe.seol.service.RdmOeSeolService;
import incheon.res.rdm.oe.seol.vo.RdmOeSeolVO;
import org.egovframe.rte.ptl.mvc.tags.ui.pagination.PaginationInfo;
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 org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.SessionAttributes;

import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import java.util.List;


@Controller
@SessionAttributes(types = ComDefaultVO.class)
@RequestMapping("${api.rps-path}")
public class RdmOeLinkedController {

	@Resource
    private RdmOeLinkedService rdmOeLinkedService;
	@Resource
    private RdmOeDocService rdmOeDocService;
	@Resource
    private RdmOeGfcService rdmOeGfcService;
	@Resource
    private RdmOeLevyService rdmOeLevyService;
	@Resource
    private RdmOeSeolService rdmOeSeolService;

	/**
	 * @MethodDESC : 연계현황 목록
	 */
	@RequestMapping(value = "/RdmOeLinkedL010.do")

	public String selectLinkedList(@ModelAttribute("loginUser") LoginVO loginVO,
								   @RequestParam(defaultValue = "1") int pageIndex, HttpServletRequest request, @ModelAttribute RdmOeLinkedVO vo, ModelMap model)
	  throws Exception{

		vo.setBzentyInstMngNo(loginVO.getRoadMngInstCd().substring(0,3));

		/*페이징*/
		vo.setPageIndex(pageIndex);

		PaginationInfo paginationInfo = new PaginationInfo();
		paginationInfo.setCurrentPageNo(pageIndex);
		paginationInfo.setRecordCountPerPage(vo.getRecordCountPerPage());
		paginationInfo.setPageSize(vo.getPageSize());

		vo.setFirstIndex(paginationInfo.getFirstRecordIndex());
		vo.setLastIndex(paginationInfo.getLastRecordIndex());
		vo.setRecordCountPerPage(paginationInfo.getRecordCountPerPage());

        List resultList = rdmOeLinkedService.selectLinkedList(vo);

        model.addAttribute("resultList", resultList);

        int totCnt = rdmOeLinkedService.countLinked(vo);
        paginationInfo.setTotalRecordCount(totCnt);

        model.addAttribute("paginationInfo", paginationInfo);
        model.addAttribute("searchVo", vo);

		return "res/rdm/oe/linked/RdmOeLinkedL010";
	}


	/**
	 * @MethodDESC : 연계현황 상세정보
	 */
	@RequestMapping("/RdmOeLinkedR010.do")
    public String	selectLinked(@ModelAttribute("rdmOeLinkedVO") RdmOeLinkedVO vo,
            ModelMap model) throws Exception {

		String rdiIdn = vo.getRoadDggMngNo();
		String taxIdn = vo.getRdiTaxNum();

		//새올민원행정시스템 연계 접수정보
		RdmOeSeolVO seolVO = new RdmOeSeolVO();
		seolVO.setRoadDggMngNo(rdiIdn);
		seolVO = rdmOeSeolService.selectSeol(seolVO);

		//세외수입정보시스템 연계정보
		RdmOeLevyVO levyVO = new RdmOeLevyVO();
		levyVO.setRoadDggMngNo(rdiIdn);
		levyVO.setRdiTaxNum(taxIdn);
		levyVO = rdmOeLevyService.selectLevy(levyVO);

		//G4c전자지불 연계정보
		RdmOeGfcVO gfcVO = new RdmOeGfcVO();
		gfcVO.setRoadDggMngNoSe(rdiIdn);
		List gfcLis = rdmOeGfcService.selectG4cListLinked(gfcVO);

		//전자결재 연계정보
		RdmOeDocVO docVO = new RdmOeDocVO();
		docVO.setRoadDggMngNo(rdiIdn);
		List docList = rdmOeDocService.selectDocListLinked(docVO);

		model.addAttribute("seolVO", seolVO);
		model.addAttribute("levyVO", levyVO);
		model.addAttribute("gfcList", gfcLis);
		model.addAttribute("docList", docList);
		model.addAttribute("searchVo", vo);

        return	"res/rdm/oe/linked/RdmOeLinkedR010";
    }



}