package com.pms.controller; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Calendar; import java.util.Date; import java.util.GregorianCalendar; import java.util.HashMap; import java.util.Locale; import java.util.Map; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpSession; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import com.pms.common.bean.PersonBean; import com.pms.common.utils.CommonUtils; import com.pms.common.utils.Constants; import com.pms.service.AdminService; import com.pms.service.CommonService; import com.pms.service.EOService; @Controller public class EOController { @Autowired EOService eoService; @Autowired CommonService commonService; @Autowired AdminService adminService; /** * EO 등록 팝업 * @param request * @param paramMap * @return */ @RequestMapping("/eo/eoFormPopup.do") public String tempEOFormPopup(HttpServletRequest request, @RequestParam Map paramMap){ HashMap eoMap = new HashMap(); ArrayList partList = new ArrayList(); ArrayList oemList = new ArrayList(); ArrayList eoApprovalList = new ArrayList(); try{ eoMap = eoService.getEOInfo(request, paramMap); String objid = CommonUtils.checkNull(paramMap.get("objId")); if("".equals(objid)){ eoMap = new HashMap(); eoMap.put("OBJID", CommonUtils.createObjId()); } eoApprovalList = eoService.getEOApprovalList(request, paramMap); oemList = (ArrayList)commonService.getOEMList_combo(paramMap); }catch(Exception e){ e.printStackTrace(); } request.setAttribute("eoInfo", eoMap); request.setAttribute("eoApprovalList", eoApprovalList); request.setAttribute("partList", partList); request.setAttribute("oemList",oemList); return "/eo/eoFormPopup"; } /** * EO 갑지에 등록된 PDF 파일을 통해 해당 PDF문서의 데이터를 * 추출한다. * @param request * @param paramMap * @return */ @RequestMapping("/eo/getPDFParsingData.do") public String getPDFParsingData(HttpServletRequest request, @RequestParam Map paramMap){ HashMap pdfEOMap = new HashMap(); try{ pdfEOMap = eoService.pdfDataPatser(request, paramMap); String carCode = CommonUtils.checkNull(pdfEOMap.get("carCode")); if(!"".equals(carCode)){ ArrayList carTypeList = new ArrayList(); paramMap.put("search_carCode", carCode); carTypeList = (ArrayList)commonService.getCarTypeList_combo(paramMap); if(null != carTypeList && 1 == carTypeList.size()){ HashMap carTypeMap = (HashMap)carTypeList.get(0); pdfEOMap.put("oemObjId", carTypeMap.get("OEM_OBJID")); pdfEOMap.put("carObjId", carTypeMap.get("OBJID")); } } }catch(Exception e){ e.printStackTrace(); } request.setAttribute("RESULT", CommonUtils.getJsonMap(pdfEOMap)); return "/ajax/ajaxResult"; } /** * EO 저장 * @param request * @param paramMap * @return */ @RequestMapping("/eo/saveEO.do") public String saveEO(HttpServletRequest request, @RequestParam Map paramMap){ HashMap resultMap = new HashMap(); try{ eoService.mergeEO(request, paramMap); resultMap.put("message", "저장되었습니다."); }catch(Exception e){ resultMap.put("message", "오류가 발생하였습니다."); e.printStackTrace(); } request.setAttribute("RESULT", CommonUtils.getJsonMap(resultMap)); return "/ajax/ajaxResult"; } /** * 신규 EO 생성 * @param request * @param paramMap * @return */ @RequestMapping("/eo/createEOData.do") public String createEOData(HttpServletRequest request, @RequestParam Map paramMap){ HashMap resultMap = new HashMap(); try{ paramMap.put("objId",CommonUtils.createObjId()); paramMap.put("eoNo", "NEW EO :"+CommonUtils.getDateTime(new Date(), "yyyy-MM-dd")); paramMap.put("status","create"); HttpSession session = request.getSession(); PersonBean person = (PersonBean)session.getAttribute(Constants.PERSON_BEAN); String writer = CommonUtils.checkNull(person.getUserId()); paramMap.put("writer", writer); eoService.mergeEO(request, paramMap); resultMap.put("message", "등록되었습니다."); }catch(Exception e){ resultMap.put("message", "오류가 발생하였습니다."); e.printStackTrace(); } request.setAttribute("RESULT", CommonUtils.getJsonMap(resultMap)); return "/ajax/ajaxResult"; } /** * EO 상세정보 팝업 * @param request * @param paramMap * @return */ @RequestMapping("/eo/eoDetailViewPopup.do") public String eoDetailViewPopup(HttpServletRequest request, @RequestParam Map paramMap){ System.out.println("eoDetailViewPopup(paramMap):"+paramMap); HashMap eoMap = new HashMap(); ArrayList partList = new ArrayList(); ArrayList releaseMemberList = new ArrayList(); ArrayList eoApprovalList = new ArrayList(); String isAppLineUser = CommonUtils.checkNull(paramMap.get("isApprovalLine")); try{ eoMap = eoService.getEOInfo(request, paramMap); partList = eoService.getConnectPartList(request, paramMap); eoApprovalList = eoService.getEOApprovalList(request, paramMap); paramMap.put("search_carObjid", "");//CommonUtils.checkNull(eoMap.get("CAR_OBJID"))); releaseMemberList = adminService.getCarDistributeMngList(request, paramMap); }catch(Exception e){ e.printStackTrace(); } HttpSession session = request.getSession(); PersonBean person = (PersonBean)session.getAttribute(Constants.PERSON_BEAN); String userId = CommonUtils.checkNull(person.getUserId()); String writer = "";//CommonUtils.checkNull(eoMap.get("WRITER_ORG")); String isWriter = ""; String isAdmin = ""; if(writer.equals(userId)){ isWriter = "true"; } if("plm_admin".equals(userId)){ isAdmin = "true"; } request.setAttribute("userId", CommonUtils.checkNull(person.getUserId())); request.setAttribute("isAppLineUser", isAppLineUser); request.setAttribute("isWriter", isWriter); request.setAttribute("isAdmin", isAdmin); request.setAttribute("eoInfo", eoMap); request.setAttribute("partList", partList); request.setAttribute("eoApprovalList", eoApprovalList); request.setAttribute("releaseMemberList", releaseMemberList); return "/eo/eoDetailViewPopup"; } /** * EO 등록 목록(결재 전) * @param request * @param paramMap * @return */ @RequestMapping("/eo/tempEoList.do") public String tempEoList(HttpServletRequest request, @RequestParam Map paramMap){ ArrayList eoList = new ArrayList(); paramMap.put("search_status", "create"); try{ eoList = (ArrayList)eoService.getEOListPaging(request, paramMap); }catch(Exception e){ e.printStackTrace(); } request.setAttribute("eoList", eoList); return "/eo/tempEoList"; } /** * 신규 EO 목록(결재완료) * @param request * @param paramMap * @return */ @RequestMapping("/eo/newEoList.do") public String newEoList(HttpServletRequest request, @RequestParam Map paramMap){ ArrayList eoList = new ArrayList(); ArrayList oemList = new ArrayList(); try{ oemList = (ArrayList)commonService.getOEMList_combo(paramMap); SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd"); Calendar cal = new GregorianCalendar(Locale.KOREA); cal.setTime(new Date()); //현재 일자로부터 10일 전 EO까지 cal.add(Calendar.DAY_OF_YEAR, -10); paramMap.put("search_completeDate_start", CommonUtils.checkNull(formatter.format(cal.getTime()))); cal.setTime(new Date()); cal.add(Calendar.DAY_OF_YEAR, +1); paramMap.put("search_completeDate_end", CommonUtils.checkNull(formatter.format(cal.getTime()))); paramMap.put("search_status", "release"); paramMap.put("listType", "new"); eoList = (ArrayList)eoService.getEOListPaging(request, paramMap); }catch(Exception e){ e.printStackTrace(); } request.setAttribute("listType", "new"); request.setAttribute("eoList", eoList); request.setAttribute("oemList", oemList); return "/eo/eoList"; } /** * EO 목록( 결재완료 EO 전제) * @param request * @param paramMap * @return */ @RequestMapping("/eo/eoList.do") public String eoList(HttpServletRequest request, @RequestParam Map paramMap){ ArrayList eoList = new ArrayList(); ArrayList oemList = new ArrayList(); try{ oemList = (ArrayList)commonService.getOEMList_combo(paramMap); if(!paramMap.isEmpty()){ paramMap.put("search_status", "release"); eoList = (ArrayList)eoService.getEOListPaging(request, paramMap); } }catch(Exception e){ e.printStackTrace(); } request.setAttribute("eoList", eoList); request.setAttribute("oemList", oemList); return "/eo/eoList"; } /** * EO 팝업 -> part 조회 팝업 * @param request * @param paramMap * @return */ @RequestMapping("/eo/partSearchPopup.do") public String partSearchPopup(HttpServletRequest request, @RequestParam Map paramMap){ ArrayList productGroupList = new ArrayList(); ArrayList carList = new ArrayList(); try{ productGroupList = (ArrayList)commonService.getProductGroupList_combo(paramMap); carList = (ArrayList)commonService.getCarTypeList_combo(paramMap); }catch(Exception e){ e.printStackTrace(); } request.setAttribute("carList",carList); request.setAttribute("productGroupList",productGroupList); return "/eo/EoListPopupPartSearch"; } /** * EO와 Part를 연결 * @param request * @param paramMap * @return */ @RequestMapping("/eo/connectPart.do") public String connectPart(HttpServletRequest request, @RequestParam Map paramMap){ HashMap resultMap = new HashMap(); try{ eoService.connectPart(request, paramMap); CommonUtils.setReqAttrResultMsg(request, "연결하였습니다.", null, null, resultMap); }catch(Exception e){ CommonUtils.setReqAttrResultMsg(request, "오류가 발생하였습니다.", null, e, resultMap); e.printStackTrace(); } request.setAttribute("RESULT", CommonUtils.getJsonMap(resultMap)); return "/ajax/ajaxResult"; } /** * EO와 Part 연결을 삭제 * @param request * @param paramMap * @return */ @RequestMapping("/eo/disConnectPart.do") public String disConnectPart(HttpServletRequest request, @RequestParam Map paramMap){ HashMap resultMap = new HashMap(); try{ eoService.disConnectPart(request, paramMap); CommonUtils.setReqAttrResultMsg(request, "삭제하였습니다.", null, null, resultMap); }catch(Exception e){ CommonUtils.setReqAttrResultMsg(request, "오류가 발생하였습니다.", null, e, resultMap); e.printStackTrace(); } request.setAttribute("RESULT", CommonUtils.getJsonMap(resultMap)); return "/ajax/ajaxResult"; } @RequestMapping("/eo/deleteEO.do") public String deleteEO(HttpServletRequest request, @RequestParam Map paramMap){ HashMap resultMap = new HashMap(); try{ eoService.deleteEO(request, paramMap); CommonUtils.setReqAttrResultMsg(request, "삭제하였습니다.", null, null, resultMap); }catch(Exception e){ CommonUtils.setReqAttrResultMsg(request, "오류가 발생하였습니다.", null, e, resultMap); e.printStackTrace(); } request.setAttribute("RESULT", CommonUtils.getJsonMap(resultMap)); return "/ajax/ajaxResult"; } /** * EO와 연결된 Part 정보를 가져온다. * @param request * @param paramMap * @return */ @RequestMapping("/eo/getConnectPartList.do") public String getConnectPartList(HttpServletRequest request, @RequestParam Map paramMap){ ArrayList resultList = new ArrayList(); try{ resultList = eoService.getConnectPartList(request, paramMap); }catch(Exception e){ e.printStackTrace(); } request.setAttribute("RESULT", CommonUtils.getJsonArray(resultList)); return "/ajax/ajaxResult"; } /** * 해당 EO에 연결된 파트의 첨부파일을 ZIP 파일로 추출하여 다운로드 한다. * @param request * @param paramMap * @return */ @RequestMapping("/eo/packgeingPartFile.do") public String packgeingPartFile(HttpServletRequest request, @RequestParam Map paramMap){ HashMap fileMap = new HashMap(); try{ fileMap = eoService.packgeingPartFile(request, paramMap); }catch(Exception e){ e.printStackTrace(); } request.setAttribute("FILE_MAP", fileMap); return "/common/download"; } /** * EO 등록에서 결재상신 전 해당 EO의 유효성을 검사한다. * @param request * @param paramMap * @return */ @RequestMapping("/eo/checkEOValidate.do") public String checkEOValidate(HttpServletRequest request, @RequestParam Map paramMap){ HashMap resultMap = new HashMap(); try{ resultMap = (HashMap)eoService.checkEOValidate(request, paramMap); }catch(Exception e){ e.printStackTrace(); } request.setAttribute("RESULT", CommonUtils.getJsonMap(resultMap)); return "/ajax/ajaxResult"; } }