package com.pms.controller; import java.io.File; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpSession; import org.apache.ibatis.session.SqlSession; 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.oreilly.servlet.MultipartRequest; import com.pms.common.FileRenameClass; import com.pms.common.SqlMapConfig; 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.PartService; @Controller public class PartController { @Autowired AdminService adminService; @Autowired CommonService commonService; @Autowired PartService partService; /** * 파트 등록 팝업 * @param request * @param paramMap * @return */ @RequestMapping("/part/partFormPopup.do") public String openPartFormPopup(HttpServletRequest request, @RequestParam Map paramMap){ SqlSession sqlSession = SqlMapConfig.getInstance().getSqlSession(); ArrayList oemList = new ArrayList(); ArrayList productGroupList = new ArrayList(); ArrayList materialList = new ArrayList(); ArrayList materialTypeList = new ArrayList(); ArrayList optionSpecList = new ArrayList(); ArrayList msSPECList = new ArrayList(); ArrayList esSPECList = new ArrayList(); ArrayList applyPointList = new ArrayList(); Map code_map = new HashMap(); HashMap partInfoMap = new HashMap(); ArrayList connectedSPECList = new ArrayList(); HashMap connectChangeItemInfo = new HashMap(); HashMap PartProductItemListInfo = new HashMap(); try{ oemList = (ArrayList)commonService.getOEMList_combo(paramMap); productGroupList = (ArrayList)commonService.getProductGroupList_combo(paramMap); materialList = (ArrayList)commonService.getMaterialList_combo(paramMap); materialTypeList = (ArrayList)commonService.getMaterialTypeList_combo(paramMap); optionSpecList = (ArrayList)commonService.getOptionSpecList_combo(paramMap); applyPointList = (ArrayList)commonService.getApplyPointList_combo(paramMap); paramMap.put("search_categoryName", "ms"); msSPECList = (ArrayList)commonService.getSPECList_combo(paramMap); paramMap.put("search_categoryName", "es"); esSPECList = (ArrayList)commonService.getSPECList_combo(paramMap); String partObjid = CommonUtils.checkNull(paramMap.get("objid")); if("" != partObjid){ partInfoMap = (HashMap)partService.getPartDetailInfo(request, paramMap); //공통관리코드 code_map.put("mod_c",commonService.bizMakeOptionList("MOL10000", (String)partInfoMap.get("MOLD_CLASSIFICATION"),"common.getCodeselect")); code_map.put("com_m",commonService.bizMakeOptionList("MSCD10000", (String)partInfoMap.get("COMPANY_MOLD"),"common.getCodeselect")); code_map.put("com_sm",commonService.bizMakeOptionList("CSM10000", (String)partInfoMap.get("COMPANY_SUP_MATERIAL"),"common.getCodeselect")); code_map.put("com_em",commonService.bizMakeOptionList("CSU10000", (String)partInfoMap.get("COMPANY_ELEMENT"),"common.getCodeselect")); code_map.put("com_pp",commonService.bizMakeOptionList("CPP10000", (String)partInfoMap.get("COMPANY_PLATING_PAINTING"),"common.getCodeselect")); connectChangeItemInfo = (HashMap)partService.getConnectedChangeItemInfo(request, paramMap); PartProductItemListInfo = (HashMap)partService.getPartProductItemListInfo(request, paramMap); connectedSPECList = (ArrayList)partService.getConnectedSpecList(request, paramMap); }else{ partObjid = CommonUtils.createObjId(); partInfoMap.put("OBJID", partObjid); code_map.put("mod_c",commonService.bizMakeOptionList("MOL10000","","common.getCodeselect")); code_map.put("com_m",commonService.bizMakeOptionList("MSCD10000","","common.getCodeselect")); code_map.put("com_sm",commonService.bizMakeOptionList("CSM10000","","common.getCodeselect")); code_map.put("com_em",commonService.bizMakeOptionList("CSU10000","","common.getCodeselect")); code_map.put("com_pp",commonService.bizMakeOptionList("CPP10000","","common.getCodeselect")); } }catch(Exception e){ e.printStackTrace(); } request.setAttribute("oemList",oemList); request.setAttribute("productGroupList",productGroupList); request.setAttribute("materialList",materialList); request.setAttribute("materialTypeList",materialTypeList); request.setAttribute("optionSpecList",optionSpecList); request.setAttribute("applyPointList",applyPointList); request.setAttribute("msSPECList",msSPECList); request.setAttribute("esSPECList",esSPECList); request.setAttribute("partInfoMap",partInfoMap); request.setAttribute("connectChangeItemInfo",connectChangeItemInfo); request.setAttribute("PartProductItemListInfo",PartProductItemListInfo); request.setAttribute("connectedSPECList",connectedSPECList); request.setAttribute("SHAPE", Constants.FILE_DOC_TYPE_PART_SHAPE_CODE); request.setAttribute("ECD", Constants.FILE_DOC_TYPE_PART_ECD_CODE); request.setAttribute("MNG_ITEM", Constants.FILE_DOC_TYPE_PART_MNG_ITEM_CODE); request.setAttribute("PART_2D", Constants.FILE_DOC_TYPE_PART_2D_CODE); request.setAttribute("PART_2D_PDF", Constants.FILE_DOC_TYPE_PART_2D_PDF_CODE); request.setAttribute("PART_3D", Constants.FILE_DOC_TYPE_PART_3D_CODE); request.setAttribute("PART_CONVERT_2D", Constants.FILE_DOC_TYPE_PART_CONVERT_2D_CODE); request.setAttribute("PART_CONVERT_3D", Constants.FILE_DOC_TYPE_PART_CONVERT_3D_CODE); request.setAttribute("code_map",code_map); return "/part/partFormPopup"; } /** * PMS를 통해 PDM Part 상세 화면을 보여준다. * @param request * @param paramMap * @return */ @RequestMapping("/part/pmsPartDetailViewPopup.do") public String pmsPartDetailViewPopup(HttpServletRequest request, @RequestParam Map paramMap){ request.setAttribute("externalAccess",true); return openPartDetailViewPopup(request, paramMap); } /** * 파트 상세 팝업호출 * @param request * @param paramMap * @return */ @RequestMapping("/part/partDetailViewPopup.do") public String openPartDetailViewPopup(HttpServletRequest request, @RequestParam Map paramMap){ ArrayList connectedSPECList = new ArrayList(); ArrayList dPartConnectedSPECList = new ArrayList(); ArrayList applyPointList = new ArrayList(); HashMap partInfoMap = new HashMap(); HashMap drawingNoPartInfoMap = new HashMap(); HashMap connectChangeItemInfo = new HashMap(); HashMap dPartConnectChangeItemInfo = new HashMap(); HashMap PartProductItemListInfo = new HashMap(); Map code_map = new HashMap(); PersonBean person = (PersonBean)request.getSession().getAttribute(Constants.PERSON_BEAN); try{ applyPointList = (ArrayList)commonService.getApplyPointList_combo(paramMap); String partObjid = CommonUtils.checkNull(paramMap.get("objid")); String actionType = CommonUtils.checkNull(paramMap.get("actionType")); partInfoMap.put("userId", CommonUtils.checkNull(person.getUserId())); paramMap.put("userId", CommonUtils.checkNull(person.getUserId())); //pms에서 넘어올때 part의 object id를 통해 조회하는것이 아니라 part no를 통해 조회하기때문에 part의 no를 통해 part object id를 가져온다. System.out.println("paramMap :: "+paramMap); if("".equals(partObjid)){ String partNo = CommonUtils.checkNull(paramMap.get("partNo")); if(!"".equals(partNo)){ partObjid = partService.getPartInfoObjId(partNo); System.out.println("partObjid : "+partObjid); paramMap.put("objid", partObjid); } } if("" != partObjid){ partInfoMap = (HashMap)partService.getPartDetailInfo(request, paramMap); //공통관리코드 code_map.put("mod_c",commonService.bizMakeOptionList("MOL10000", (String)partInfoMap.get("MOLD_CLASSIFICATION"),"common.getCodeselect")); code_map.put("com_m",commonService.bizMakeOptionList("MSCD10000", (String)partInfoMap.get("COMPANY_MOLD"),"common.getCodeselect")); code_map.put("com_sm",commonService.bizMakeOptionList("CSM10000", (String)partInfoMap.get("COMPANY_SUP_MATERIAL"),"common.getCodeselect")); code_map.put("com_em",commonService.bizMakeOptionList("CSU10000", (String)partInfoMap.get("COMPANY_ELEMENT"),"common.getCodeselect")); code_map.put("com_pp",commonService.bizMakeOptionList("CPP10000", (String)partInfoMap.get("COMPANY_PLATING_PAINTING"),"common.getCodeselect")); connectChangeItemInfo = (HashMap)partService.getConnectedChangeItemInfo(request, paramMap); PartProductItemListInfo = (HashMap)partService.getPartProductItemListInfo(request, paramMap); connectedSPECList = (ArrayList)partService.getConnectedSpecList(request, paramMap); if(null != partInfoMap){ String drawingPartObjId = CommonUtils.checkNull(partInfoMap.get("DRAWING_NO_OBJID")); paramMap.put("objid", drawingPartObjId); System.out.println("drawingPartObjId : "+drawingPartObjId); if(!"".equals(drawingPartObjId)){ dPartConnectChangeItemInfo = (HashMap)partService.getConnectedChangeItemInfo(request, paramMap); dPartConnectedSPECList = (ArrayList)partService.getConnectedSpecList(request, paramMap); drawingNoPartInfoMap = (HashMap)partService.getPartDetailInfo(request, paramMap); } } paramMap.put("objid", partObjid); }else{ //공통관리코드 code_map.put("mod_c",commonService.bizMakeOptionList("MOL10000", "","common.getCodeselect")); code_map.put("com_m",commonService.bizMakeOptionList("MSCD10000", "","common.getCodeselect")); code_map.put("com_sm",commonService.bizMakeOptionList("CSM10000", "","common.getCodeselect")); code_map.put("com_em",commonService.bizMakeOptionList("CSU10000", "","common.getCodeselect")); code_map.put("com_pp",commonService.bizMakeOptionList("CPP10000", "","common.getCodeselect")); partObjid = CommonUtils.createObjId(); partInfoMap.put("OBJID", partObjid); } }catch(Exception e){ e.printStackTrace(); } request.setAttribute("code_map",code_map); request.setAttribute("userId",CommonUtils.checkNull(person.getUserId())); request.setAttribute("applyPointList",applyPointList); request.setAttribute("partInfoMap",partInfoMap); request.setAttribute("drawingNoPartInfoMap",drawingNoPartInfoMap); //연결된 변경항목 정보 request.setAttribute("connectChangeItemInfo",connectChangeItemInfo); request.setAttribute("dPartConnectChangeItemInfo",dPartConnectChangeItemInfo); request.setAttribute("PartProductItemListInfo",PartProductItemListInfo); //연결된 SPEC의 최신내용 목록 request.setAttribute("connectedSPECList",connectedSPECList); request.setAttribute("dPartConnectedSPECList",dPartConnectedSPECList); request.setAttribute("SHAPE", Constants.FILE_DOC_TYPE_PART_SHAPE_CODE); request.setAttribute("ECD", Constants.FILE_DOC_TYPE_PART_ECD_CODE); request.setAttribute("MNG_ITEM", Constants.FILE_DOC_TYPE_PART_MNG_ITEM_CODE); request.setAttribute("PART_2D", Constants.FILE_DOC_TYPE_PART_2D_CODE); request.setAttribute("PART_2D_PDF", Constants.FILE_DOC_TYPE_PART_2D_PDF_CODE); request.setAttribute("PART_3D", Constants.FILE_DOC_TYPE_PART_3D_CODE); request.setAttribute("PART_CONVERT_2D", Constants.FILE_DOC_TYPE_PART_CONVERT_2D_CODE); request.setAttribute("PART_CONVERT_3D", Constants.FILE_DOC_TYPE_PART_CONVERT_3D_CODE); return "/part/partDetailViewPopup"; } /** * 파트 상세 호출 시 관리항목이 있는 경우 모달 팝업 호출 * @param request * @param paramMap * @return */ @RequestMapping("/part/openMngItemReceptListPopUp.do") public String openMngItemReceptListPopUp(HttpServletRequest request, @RequestParam Map paramMap){ return "/part/partMngItemReceptListPopUp"; } /** * 파트 상세 호출 시 관리항목의 목록을 가져온다. * @param request * @param paramMap * @return */ @RequestMapping("/part/getMngItemReceptList.do") public String getMngItemReceptList(HttpServletRequest request, @RequestParam Map paramMap){ ArrayList resultList = new ArrayList(); try{ resultList = (ArrayList)partService.getPartMngItemReceptList(request, paramMap); }catch(Exception e){ e.printStackTrace(); } request.setAttribute("RESULT", CommonUtils.getJsonArray(resultList)); return "/ajax/ajaxResult"; } /** * 관리항목 확인 시 DB 입력 * @param request * @param paramMap * @return */ @RequestMapping("/part/checkPartMngFile.do") public String checkPartMngFile(HttpServletRequest request, @RequestParam Map paramMap){ HashMap resultMap = new HashMap(); try{ partService.mergeCheckPartMngFile(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"; } /** * 파트정보를 저장한다. * @param request * @param paramMap * @return */ @RequestMapping("/part/savePart.do") public String saveInfo(HttpServletRequest request, @RequestParam Map paramMap){ HashMap resultMap = new HashMap(); try{ paramMap.put("isStartDevPart", "1"); partService.mergePartInfo(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"; } /** * Revision 파트정보를 저장한다. * @param request * @param paramMap * @return */ @RequestMapping("/part/saveRevisionPart.do") public String saveRevisionInfo(HttpServletRequest request, @RequestParam Map paramMap){ HashMap resultMap = new HashMap(); try{ partService.mergeRevisionPartInfo(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"; } /** * 템플릿을 통한 저장 * @param request * @param paramMap * @return */ @RequestMapping("/part/saveExcelUploadPart.do") public String saveExcelUploadPart(HttpServletRequest request, @RequestParam Map paramMap){ HashMap resultMap = new HashMap(); try{ partService.mergeExcelUploadPart(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"; } /** * 파트정보의 상태를 변경한다.(다수) * @param request * @param paramMap * @return */ @RequestMapping("/part/changeMultiPartStatus.do") public String changeMultiPartStatus(HttpServletRequest request, @RequestParam Map paramMap){ HashMap resultMap = new HashMap(); try{ partService.changeMultiPartStatus(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"; } /** * 선택된 파트를 최종 확정으로 변경한다. * @param request * @param paramMap * @return */ @RequestMapping("/part/changePartStatus.do") public String changePartStatus(HttpServletRequest request, @RequestParam Map paramMap){ HashMap resultMap = new HashMap(); try{ partService.changePartStatus(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"; } /** * 파트정보를 삭제한다. * @param request * @param paramMap * @return */ @RequestMapping("/part/deletePart.do") public String deletePart(HttpServletRequest request, @RequestParam Map paramMap){ HashMap resultMap = new HashMap(); try{ partService.deletePart(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"; } /** * 파트정보의 IS_LAST를 변경하기 위한 파트 목록을 가져온다. * @param request * @param paramMap * @return */ @RequestMapping("/part/changePartIsLastPopUp.do") public String changePartIsLastPopUp(HttpServletRequest request, @RequestParam Map paramMap){ ArrayList partList = new ArrayList(); try{ //시작Part를 제외하도록 기본조건 추가 paramMap.put("isStartDevPart","1"); paramMap.put("status","complete"); partList = (ArrayList)partService.getIsLastPartList(request, paramMap); }catch(Exception e){ e.printStackTrace(); } request.setAttribute("partList", partList); return "/part/partIsLastPopUp"; } /** * 선택된 파트를 IS_LAST = 1로 변경한다. * @param request * @param paramMap * @return */ @RequestMapping("/part/changePartIsLast.do") public String changePartIsLast(HttpServletRequest request, @RequestParam Map paramMap){ HashMap resultMap = new HashMap(); try{ paramMap.put("status", "complete"); partService.changePartIsLast(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"; } /** * 임시 파트목록(상태:작성중) * @param request * @param paramMap * @return */ @RequestMapping("/part/tempPartList.do") public String getTempPartList(HttpServletRequest request, @RequestParam Map paramMap){ ArrayList resultList = new ArrayList(); ArrayList oemList = new ArrayList(); ArrayList productGroupList = new ArrayList(); ArrayList materialList = new ArrayList(); try{ paramMap.put("status","create"); paramMap.put("isLast","0"); paramMap.put("isStartDevPart", "1"); resultList = (ArrayList)partService.getPartList(request, paramMap); oemList = (ArrayList)commonService.getOEMList_combo(paramMap); productGroupList = (ArrayList)commonService.getProductGroupList_combo(paramMap); materialList = (ArrayList)commonService.getMaterialList_combo(paramMap); }catch(Exception e){ e.printStackTrace(); } PersonBean person = (PersonBean)request.getSession().getAttribute(Constants.PERSON_BEAN); request.setAttribute("userId", CommonUtils.checkNull(person.getUserId())); request.setAttribute("partList", resultList); request.setAttribute("oemList", oemList); request.setAttribute("productGroupList", productGroupList); request.setAttribute("materialList", materialList); String actionType = CommonUtils.checkNull(paramMap.get("actionType")); String page = "/part/tempPartList"; if("excel".equals(actionType)) page = "/part/tempPartListExcel"; return page; } /** * 파트목록(상태:확정) * @param request * @param paramMap * @return */ @RequestMapping("/part/partList.do") public String getPartList(HttpServletRequest request, @RequestParam Map paramMap){ ArrayList resultList = new ArrayList(); ArrayList oemList = new ArrayList(); ArrayList productGroupList = new ArrayList(); ArrayList materialList = new ArrayList(); try{ String menuObjId = CommonUtils.checkNull(request.getParameter("menuObjId")); boolean isFirst = false; if(!"".equals(menuObjId)){ isFirst = true; } if(!isFirst){ paramMap.put("status","complete"); paramMap.put("isStartDevPart", "1"); String isLast = CommonUtils.checkNull(paramMap.get("search_isLast")); if("current".equals(isLast) || "".equals(isLast)){ paramMap.put("isLast","1"); } resultList = (ArrayList)partService.getPartList(request, paramMap); } oemList = (ArrayList)commonService.getOEMList_combo(paramMap); productGroupList = (ArrayList)commonService.getProductGroupList_combo(paramMap); materialList = (ArrayList)commonService.getMaterialList_combo(paramMap); }catch(Exception e){ e.printStackTrace(); } request.setAttribute("partList", resultList); request.setAttribute("oemList", oemList); request.setAttribute("productGroupList", productGroupList); request.setAttribute("materialList", materialList); String actionType = CommonUtils.checkNull(paramMap.get("actionType")); String page = "/part/partList"; if("excel".equals(actionType)) page = "/part/partListExcel"; return page; } /** * 파트목록(상태:확정) * @param request * @param paramMap * @return */ @RequestMapping("/part/partListAjax.do") public String getPartListAjax(HttpServletRequest request, @RequestParam Map paramMap){ ArrayList resultList = new ArrayList(); try{ paramMap.put("isStartDevPart", "1"); String status = CommonUtils.checkNull(paramMap.get("status")); if("".equals(status)){ paramMap.put("status","complete"); } resultList = (ArrayList)partService.getPartList(request, paramMap); }catch(Exception e){ e.printStackTrace(); } request.setAttribute("RESULT", CommonUtils.getJsonArray(resultList)); return "/ajax/ajaxResult"; } /** * 해당 Part의 Revision 목록을 가져온다.(상태:확정) * @param request * @param paramMap * @return */ @RequestMapping("/part/partRevisionList.do") public String partRevisionList(HttpServletRequest request, @RequestParam Map paramMap){ ArrayList resultList = new ArrayList(); try{ paramMap.put("isStartDevPart", "1"); String status = CommonUtils.checkNull(paramMap.get("status")); if("".equals(status)){ paramMap.put("status","complete"); } resultList = (ArrayList)partService.getPartRevisionList(request, paramMap); }catch(Exception e){ e.printStackTrace(); } request.setAttribute("RESULT", CommonUtils.getJsonArray(resultList)); return "/ajax/ajaxResult"; } /** * 시작 Part의 form 팝업을 호출한다. * @param request * @param paramMap * @return */ @RequestMapping("/part/openStartDevPartFormPopUp.do") public String openStartDevPartFormPopUp(HttpServletRequest request, @RequestParam Map paramMap){ ArrayList oemList = new ArrayList(); ArrayList productGroupList = new ArrayList(); ArrayList materialList = new ArrayList(); ArrayList materialTypeList = new ArrayList(); ArrayList optionSpecList = new ArrayList(); ArrayList applyPointList = new ArrayList(); HashMap partInfoMap = new HashMap(); ArrayList connectedSPECList = new ArrayList(); HashMap connectChangeItemInfo = new HashMap(); try{ oemList = (ArrayList)commonService.getOEMList_combo(paramMap); productGroupList = (ArrayList)commonService.getProductGroupList_combo(paramMap); materialList = (ArrayList)commonService.getMaterialList_combo(paramMap); materialTypeList = (ArrayList)commonService.getMaterialTypeList_combo(paramMap); optionSpecList = (ArrayList)commonService.getOptionSpecList_combo(paramMap); applyPointList = (ArrayList)commonService.getApplyPointList_combo(paramMap); String partObjid = CommonUtils.checkNull(paramMap.get("objid")); if("" != partObjid){ partInfoMap = (HashMap)partService.getPartDetailInfo(request, paramMap); connectChangeItemInfo = (HashMap)partService.getConnectedChangeItemInfo(request, paramMap); }else{ partObjid = CommonUtils.createObjId(); partInfoMap.put("OBJID", partObjid); } }catch(Exception e){ e.printStackTrace(); } request.setAttribute("oemList",oemList); request.setAttribute("productGroupList",productGroupList); request.setAttribute("materialList",materialList); request.setAttribute("materialTypeList",materialTypeList); request.setAttribute("optionSpecList",optionSpecList); request.setAttribute("applyPointList",applyPointList); request.setAttribute("partInfoMap",partInfoMap); request.setAttribute("connectChangeItemInfo",connectChangeItemInfo); request.setAttribute("SHAPE_CODE", Constants.FILE_DOC_TYPE_PART_SHAPE_CODE); request.setAttribute("SHAPE_NAME", Constants.FILE_DOC_TYPE_PART_SHAPE_NAME); request.setAttribute("DATA_CODE", Constants.FILE_DOC_TYPE_PART_DATA_CODE); request.setAttribute("DATA_NAME", Constants.FILE_DOC_TYPE_PART_DATA_NAME); request.setAttribute("ATTACH_CODE", Constants.FILE_DOC_TYPE_PART_ATTACH_CODE); request.setAttribute("ATTACH_NAME", Constants.FILE_DOC_TYPE_PART_ATTACH_NAME); return "/part/startDevPartFormPopup"; } /** * 시작 Part의 정보를 저장한다. * @param request * @param paramMap * @return */ @RequestMapping("/part/saveStartDevPartInfo.do") public String saveStartDevPartInfo(HttpServletRequest request, @RequestParam Map paramMap){ HashMap resultMap = new HashMap(); try{ paramMap.put("isStartDevPart", "0"); partService.mergeStartDevPartInfo(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"; } /** * 시작 Part의 상세 팝업을 호출한다. * @param request * @param paramMap * @return */ @RequestMapping("/part/openStartDevPartDetailPopUp.do") public String openStartDevPartDetailPopUp(HttpServletRequest request, @RequestParam Map paramMap){ HashMap partInfoMap = new HashMap(); HashMap connectChangeItemInfo = new HashMap(); PersonBean person = (PersonBean)request.getSession().getAttribute(Constants.PERSON_BEAN); try{ String partObjid = CommonUtils.checkNull(paramMap.get("objid")); String actionType = CommonUtils.checkNull(paramMap.get("actionType")); partInfoMap.put("userId", CommonUtils.checkNull(person.getUserId())); paramMap.put("userId", CommonUtils.checkNull(person.getUserId())); //pms에서 넘어올때 part의 object id를 통해 조회하는것이 아니라 part no를 통해 조회하기때문에 part의 no를 통해 part object id를 가져온다. System.out.println("paramMap :: "+paramMap); if("".equals(partObjid)){ String partNo = CommonUtils.checkNull(paramMap.get("partNo")); if(!"".equals(partNo)){ partObjid = partService.getPartInfoObjId(partNo); System.out.println("partObjid : "+partObjid); paramMap.put("objid", partObjid); } } if("" != partObjid){ partInfoMap = (HashMap)partService.getPartDetailInfo(request, paramMap); connectChangeItemInfo = (HashMap)partService.getConnectedChangeItemInfo(request, paramMap); }else{ partObjid = CommonUtils.createObjId(); partInfoMap.put("OBJID", partObjid); } }catch(Exception e){ e.printStackTrace(); } request.setAttribute("userId",CommonUtils.checkNull(person.getUserId())); request.setAttribute("partInfoMap",partInfoMap); //연결된 변경항목 정보 request.setAttribute("connectChangeItemInfo",connectChangeItemInfo); request.setAttribute("SHAPE_CODE", Constants.FILE_DOC_TYPE_PART_SHAPE_CODE); request.setAttribute("SHAPE_NAME", Constants.FILE_DOC_TYPE_PART_SHAPE_NAME); request.setAttribute("DATA_CODE", Constants.FILE_DOC_TYPE_PART_DATA_CODE); request.setAttribute("DATA_NAME", Constants.FILE_DOC_TYPE_PART_DATA_NAME); request.setAttribute("ATTACH_CODE", Constants.FILE_DOC_TYPE_PART_ATTACH_CODE); request.setAttribute("ATTACH_NAME", Constants.FILE_DOC_TYPE_PART_ATTACH_NAME); return "/part/startDevPartDetailPopup"; } /** * 시작 Part의 목록을 가져온다. * @param request * @param paramMap * @return */ @RequestMapping("/part/getStartDevPartList.do") public String getStartDevPartList(HttpServletRequest request, @RequestParam Map paramMap){ ArrayList resultList = new ArrayList(); ArrayList oemList = new ArrayList(); ArrayList productGroupList = new ArrayList(); ArrayList materialList = new ArrayList(); try{ paramMap.put("isStartDevPart","0"); resultList = (ArrayList)partService.getPartList(request, paramMap); oemList = (ArrayList)commonService.getOEMList_combo(paramMap); productGroupList = (ArrayList)commonService.getProductGroupList_combo(paramMap); materialList = (ArrayList)commonService.getMaterialList_combo(paramMap); }catch(Exception e){ e.printStackTrace(); } request.setAttribute("partList", resultList); request.setAttribute("oemList", oemList); request.setAttribute("productGroupList", productGroupList); request.setAttribute("materialList", materialList); String actionType = CommonUtils.checkNull(paramMap.get("actionType")); String page = "/part/startDevPartList"; if("excel".equals(actionType)) page = "/part/startDevPartListExcel"; return page; } /** * EO에 연결되지 않은 파트목록(상태:확정) * @param request * @param paramMap * @return */ @RequestMapping("/part/getConnectablePartList.do") public String getConnectablePartList(HttpServletRequest request, @RequestParam Map paramMap){ ArrayList resultList = new ArrayList(); try{ paramMap.put("status","complete"); paramMap.put("search_isLast","1"); resultList = (ArrayList)partService.getConnectablePartList(request, paramMap); }catch(Exception e){ e.printStackTrace(); } request.setAttribute("RESULT", CommonUtils.getJsonArray(resultList)); return "/ajax/ajaxResult"; } /** * Excel을 이용한 Part 등록 팝업을 호출한다. * @param request * @param paramMap * @return */ @RequestMapping("/part/openPartExcelImportPopUp.do") public String openPartExcelImportPopUp(HttpServletRequest request, @RequestParam Map paramMap){ ArrayList productGroupList = new ArrayList(); ArrayList oemList = new ArrayList(); ArrayList materialList = new ArrayList(); ArrayList optionSpecList = new ArrayList(); ArrayList materialTypeList = new ArrayList(); ArrayList applyPointList = new ArrayList(); String objid = ""; try{ paramMap = new HashMap(); productGroupList = (ArrayList)commonService.getProductGroupList_combo(paramMap); oemList = (ArrayList)commonService.getOEMList_combo(paramMap); materialList = (ArrayList)commonService.getMaterialList_combo(paramMap); optionSpecList = (ArrayList)commonService.getOptionSpecList_combo(paramMap); materialTypeList = (ArrayList)commonService.getMaterialTypeList_combo(paramMap); applyPointList = (ArrayList)commonService.getApplyPointList_combo(paramMap); objid = CommonUtils.createObjId(); }catch(Exception e){ e.printStackTrace(); } request.setAttribute("productGroupList",productGroupList); request.setAttribute("oemList",oemList); request.setAttribute("materialList",materialList); request.setAttribute("optionSpecList",optionSpecList); request.setAttribute("materialTypeList",materialTypeList); request.setAttribute("applyPointList",applyPointList); request.setAttribute("OBJID",objid); System.out.println("openPartExcelImportPopUp(paramMap):"+paramMap); return "/part/partExcelImportPopUp"; } /** * 업로드된 Excel File을 통해서 데이터를 Parsing하여 목록으로 return. * @param request * @param paramMap * @return */ @RequestMapping("/part/parsingExcelFile.do") public String parsingExcelFile(HttpServletRequest request, @RequestParam Map paramMap){ ArrayList parsingPartList = new ArrayList(); try{ parsingPartList = (ArrayList)partService.parsingExcelFile(request, paramMap); }catch(Exception e){ e.printStackTrace(); } request.setAttribute("RESULT", CommonUtils.getJsonArray(parsingPartList)); return "/ajax/ajaxResult"; } /** * 등록 시 파트의 중복여부를 확인한다. * @param request * @param paramMap * @return */ @RequestMapping("/part/duplicatePartChk.do") public String duplicatePartChk(HttpServletRequest request, @RequestParam Map paramMap){ ArrayList parsingPartList = new ArrayList(); try{ parsingPartList = (ArrayList)partService.getDuplicatePartList(request, paramMap); }catch(Exception e){ e.printStackTrace(); } request.setAttribute("RESULT", CommonUtils.getJsonArray(parsingPartList)); return "/ajax/ajaxResult"; } /** * Revision 진행할 파트의 정보를 통해 Revision Object를 생성한다. * @param request * @param paramMap * @return */ @RequestMapping("/part/createRevisionPart.do") public String createRevisionPart(HttpServletRequest request, @RequestParam Map paramMap){ try{ partService.createRevisionPart(request, paramMap); }catch(Exception e){ e.printStackTrace(); } return openPartFormPopup(request, paramMap); } /** * 파일 업로드 처리(ajax) * @param request * @param paramMap * @return */ @RequestMapping("/part/excelImportFileProc.do") public String excelImportFileProc(HttpServletRequest request, HttpSession session, @RequestParam Map paramMap){ System.out.println("fileUploadProc().."); System.out.println("paramMap : "+paramMap); MultipartRequest multi = null; try{ //default 경로 String storagePath = Constants.PART_EXCEL_IMPORT_UPLOAD; int maxSize = 1500*1024*1024; File storage = new File(storagePath); if(!storage.exists()) storage.mkdirs(); // multi = new MultipartRequest(request, storagePath, maxSize, "UTF-8", new FileRenameClass()); // java.util.List fileList = FileRenameClass.getFileList(); FileRenameClass frc = new FileRenameClass(); multi = new MultipartRequest(request, storagePath, maxSize, "UTF-8", frc); java.util.List fileList = frc.getFileList(); //System.out.println(fileList); commonService.insertUploadFileInfo(session, fileList, multi); frc.clear(); System.out.println("upload complete"); }catch(Exception e){ e.printStackTrace(); } return "/ajax/ajaxResult"; } /** * 파일 업로드 처리(ajax) * @param request * @param paramMap * @return */ @RequestMapping("/part/partImportFileProc.do") public String partImportFileProc(HttpServletRequest request, HttpSession session, @RequestParam Map paramMap){ System.out.println("fileUploadProc().."); System.out.println("paramMap : "+paramMap); MultipartRequest multi = null; try{ //default 경로 String storagePath = Constants.FILE_STORAGE; int maxSize = 1500*1024*1024; File storage = new File(storagePath); if(!storage.exists()) storage.mkdirs(); // multi = new MultipartRequest(request, storagePath, maxSize, "UTF-8", new FileRenameClass()); // java.util.List fileList = FileRenameClass.getFileList(); FileRenameClass frc = new FileRenameClass(); multi = new MultipartRequest(request, storagePath, maxSize, "UTF-8", frc); java.util.List fileList = frc.getFileList(); //System.out.println(fileList); commonService.insertUploadFileInfo(session, fileList, multi); frc.clear(); System.out.println("upload complete"); }catch(Exception e){ e.printStackTrace(); } return "/ajax/ajaxResult"; } /** * Part 상세 화면의 Revsion 링크를 통해 해당 Part의 모든 Revision의 목록을 보여준다. * @param request * @param paramMap * @return */ @RequestMapping("/part/openRevisionPartPopUp.do") public String openRevisionPartPopUp(HttpServletRequest request, @RequestParam Map paramMap){ ArrayList oemList = new ArrayList(); ArrayList productGroupList = new ArrayList(); oemList = (ArrayList)commonService.getOEMList_combo(paramMap); productGroupList = (ArrayList)commonService.getProductGroupList_combo(paramMap); request.setAttribute("oemList", oemList); request.setAttribute("productGroupList", productGroupList); return "/part/partRevisionSearchPopUp"; } /**************************************************************************************************/ /** * 구조등록 목록 * @param request * @param paramMap * @return */ @RequestMapping("/part/searchStructureList.do") public String getStructureList(HttpServletRequest request, @RequestParam Map paramMap){ List list = partService.getBOMStandardStructureList(request, paramMap); request.setAttribute("LIST", list); //조회 조건에 사용되는 기준정보 목록 request.setAttribute("oemList", commonService.getOEMList_combo(paramMap)); request.setAttribute("productGroupList", commonService.getProductGroupList_combo(paramMap)); request.setAttribute("regionList", commonService.getRegionList_combo(paramMap)); return "/part/structureList"; } /** * BOM 상세정보 * @param request * @param paramMap * @return */ @RequestMapping("/part/setStructurePopupMainFS.do") public String setStructurePopupMainFS(HttpServletRequest request, @RequestParam Map paramMap){ PersonBean person = (PersonBean)request.getSession().getAttribute(Constants.PERSON_BEAN); paramMap.put("writer", person.getUserId()); Map info = partService.getBOMStructureStandardInfo(request,paramMap); request.setAttribute("info", info); return "/part/structurePopupHeaderFs"; } @RequestMapping("/part/structureHeaderPopup.do") public String structureHeaderPopup(HttpServletRequest request, @RequestParam Map paramMap){ return "/part/structurePopupTop"; } @RequestMapping("/part/structureBottomPopupFS.do") public String structureBottomPopupFS(HttpServletRequest request, @RequestParam Map paramMap){ return "/part/structurePopupFs"; } /** * 구조등록 좌측 프레임 * @param request * @param paramMap * @return */ @RequestMapping("/part/structurePopupLeft.do") public String structurePopupLeft(HttpServletRequest request, @RequestParam Map paramMap){ Map info = partService.getBOMStructureStandardInfo(request,paramMap); List bomTreeList = partService.getBOMPartTreeList(info); request.setAttribute("info", info); request.setAttribute("tree", bomTreeList); return "/part/structurePopupLeft"; } @RequestMapping("/part/structurePopupCenter.do") public String structurePopupCenter(HttpServletRequest request, @RequestParam Map paramMap){ return "/part/structurePopupCenter"; } /** * 구조등록 우측 프레임 * @param request * @param paramMap * @return */ @RequestMapping("/part/structurePopupRight.do") public String structurePopupRight(HttpServletRequest request, @RequestParam Map paramMap){ List oemList = commonService.getOEMList_combo(paramMap); List productGroupList = commonService.getProductGroupList_combo(paramMap); request.setAttribute("oemList", oemList); request.setAttribute("productGroupList", productGroupList); return "/part/structurePopupRight"; } /** * 구조등록 하단 프레임 * @param request * @param paramMap * @return */ @RequestMapping("/part/structureBtnAreaPopup.do") public String structureBtnAreaPopup(HttpServletRequest request, @RequestParam Map paramMap){ return "/part/structureBtnAreaPopup"; } /** * 파트조회(ajax) * @param request * @param paramMap * @return */ @RequestMapping("/part/getPartList_ajax.do") public String getPartList_ajax(HttpServletRequest request, @RequestParam Map paramMap){ paramMap.put("status", "complete"); System.out.println("getPArtList_ajax paramMap : "+paramMap); ArrayList list = partService.getPartList(request, paramMap); request.setAttribute("RESULT", CommonUtils.getJsonArray(list)); return "/ajax/ajaxResult"; } /** * 구조등록 (기본정보 선택 팝업) * @param request * @param paramMap * @return */ @RequestMapping("/part/setStructureStandardFormPopup.do") public String structureStandardFormPopup(HttpServletRequest request, @RequestParam Map paramMap){ return "/part/structureStandardFormPopup"; } @RequestMapping("/part/bomList.do") public String bomList(HttpServletRequest request, @RequestParam Map paramMap){ return "/part/bomList"; } /** * 우측의 Part를 선택후, 좌측에 선택한 Part에 연결한다. * @param request * @param paramMap * @return */ @RequestMapping("/part/relatePartInfo.do") public String relatePartInfo(HttpServletRequest request, @RequestParam Map paramMap, @RequestParam(value = "rightCheckedArr[]") List rightCheckedArr){ Map info = partService.getBOMStructureStandardInfo(request,paramMap); paramMap.put("regionObjId", CommonUtils.checkNull(info.get("REGION_OBJID"))); boolean result = partService.relatePartInfo(paramMap, rightCheckedArr); //if(result) partService.deleteDummyBOMData(paramMap); request.setAttribute("RESULT", CommonUtils.getJsonString("result", String.valueOf(result))); return "/ajax/ajaxResult"; } /** * 우측의 Part를 선택후, 하위정보를 포함해 삭제한다. * @param request * @param paramMap * @return */ @RequestMapping("/part/deletePartRelateInfo.do") public String deletePartRelateInfo(HttpServletRequest request, @RequestParam Map paramMap){ boolean result = partService.deletePartRelateInfo(paramMap); //if(result) partService.deleteDummyBOMData(paramMap); request.setAttribute("RESULT", CommonUtils.getJsonString("result", String.valueOf(result))); return "/ajax/ajaxResult"; } /** * 최상위레벨에 같은 Part No가 있는지 체크. * @param request * @param paramMap * @param rightCheckedArr * @return */ @RequestMapping("/part/checkSameTopPartNo.do") public String checkSameTopPartNo(HttpServletRequest request, @RequestParam Map paramMap, @RequestParam(value = "rightCheckedArr[]") List rightCheckedArr){ boolean result = partService.hasSameTopPartNo(paramMap, rightCheckedArr); request.setAttribute("RESULT", CommonUtils.getJsonString("result", String.valueOf(result))); return "/ajax/ajaxResult"; } /** * 구조등록 수량 변경 저장 * @param request * @param paramMap * @return */ @RequestMapping("/part/structureQtySave.do") public String structureQtySave(HttpServletRequest request, @RequestParam Map paramMap){ boolean result = partService.structureQtySave(paramMap); request.setAttribute("RESULT", CommonUtils.getJsonString("result", String.valueOf(result))); return "/ajax/ajaxResult"; } /** * 정전개 목록 * @param request * @param paramMap * @return */ @RequestMapping("/part/structureAscendingList.do") public String structureAscendingList(HttpServletRequest request, @RequestParam Map paramMap){ String actionType = CommonUtils.checkNull(paramMap.get("actionType")); String returnUrl = "/part/structureAscendingList"; if("excel".equals(actionType)){ returnUrl = "/part/structureAscendingListExcel"; } List carTypeList = commonService.getOEMList_combo(paramMap); List productList = commonService.getProductList_combo(paramMap); List resultList = partService.getStructureAscendingList(paramMap); request.setAttribute("LIST", resultList); request.setAttribute("OEM_LIST", carTypeList); request.setAttribute("PRODUCT_LIST", productList); return returnUrl; } /** * 역전개 목록 * @param request * @param paramMap * @return */ @RequestMapping("/part/structureDescendingList.do") public String structureDescendingList(HttpServletRequest request, @RequestParam Map paramMap){ String actionType = CommonUtils.checkNull(paramMap.get("actionType")); String returnUrl = "/part/structureDescendingList"; if("excel".equals(actionType)){ returnUrl = "/part/structureDescendingListExcel"; } List carTypeList = commonService.getOEMList_combo(paramMap); List productList = commonService.getProductList_combo(paramMap); /*List carTypeList = commonService.getCarTypeList_combo(paramMap);*/ List resultList = partService.getStructureDescendingList(paramMap); request.setAttribute("OEM_LIST", carTypeList); request.setAttribute("PRODUCT_LIST", productList); request.setAttribute("LIST", resultList); return returnUrl; } /** * 구조등록 엑셀 Import 화면 * @param request * @param paramMap * @return */ @RequestMapping("/part/structureExcelImportPopup.do") public String structureExcelImport(HttpServletRequest request, @RequestParam Map paramMap){ request.setAttribute("carTypeList", commonService.getCarTypeList_combo(paramMap)); request.setAttribute("productGroupList", commonService.getProductGroupList_combo(paramMap)); request.setAttribute("regionList", commonService.getRegionList_combo(paramMap)); //FILE UPLOAD를 위한 변수 설정. request.setAttribute("targetObjId", CommonUtils.createObjId()); request.setAttribute("FILE_DOC_TYPE_STRUCTURE_EXCEL_IMPORT_CODE", Constants.FILE_DOC_TYPE_STRUCTURE_EXCEL_IMPORT_CODE); request.setAttribute("FILE_DOC_TYPE_STRUCTURE_EXCEL_IMPORT_NAME", Constants.FILE_DOC_TYPE_STRUCTURE_EXCEL_IMPORT_NAME); return "/part/structureExcelImportPopup"; } /** * 구조등록 엑셀 parsing Process * @param request * @param paramMap * @return */ @RequestMapping("/part/structureExcelParsingProc.do") public String structureExcelParsingProc(HttpServletRequest request, @RequestParam Map paramMap){ List resultList = new ArrayList(); try{ ArrayList list = (ArrayList)partService.parsingStructureExcelFile(request, paramMap); //list를 통해 DB입력, 그 목록을 반환함(DB조회) resultList = partService.insertStructureTempExcelImportData(paramMap, list); }catch(Exception e){ e.printStackTrace(); } request.setAttribute("RESULT", CommonUtils.getJsonArray(resultList)); return "/ajax/ajaxResult"; } /** * targetObjId를 통하여 이미 등록된 파싱정보를 삭제한다. * @param request * @param paramMap * @return */ @RequestMapping("/part/initializeStructureTempXlsImportData.do") public String initializeStructureTempXlsImportData(HttpServletRequest request, @RequestParam Map paramMap){ boolean result = partService.initializeStructureTempExcelImportData(paramMap); if(result) request.setAttribute("RESULT", CommonUtils.getJsonString("result", "success")); else request.setAttribute("RESULT", CommonUtils.getJsonString("result", "failed")); return "/ajax/ajaxResult"; } /** * partNo를 받아 해당 part가 확정 part인지 확인 * @param request * @param paramMap * @return */ @RequestMapping("/part/isPartComplete.do") public String isPartComplete(HttpServletRequest request, @RequestParam Map paramMap){ boolean result = partService.isPartComplete(paramMap); request.setAttribute("RESULT", CommonUtils.getJsonString("result", String.valueOf(result))); return "/ajax/ajaxResult"; } /** * Excel File을 통해 Parsing 한 구조정보를 등록한다. * @param request * @param paramMap * @return */ @RequestMapping("/part/saveStructureExcelImportData.do") public String saveStructureExcelImportData(HttpServletRequest request, @RequestParam Map paramMap){ String result = partService.saveStructureExcelImportData(request, paramMap); request.setAttribute("RESULT", CommonUtils.getJsonString("msg", result)); return "/ajax/ajaxResult"; } /**************************************************************************************************/ }