package com.pms.service; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.concurrent.TimeUnit; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpSession; import org.apache.ibatis.session.SqlSession; import org.apache.poi.xssf.usermodel.XSSFCell; import org.apache.poi.xssf.usermodel.XSSFRow; import org.apache.poi.xssf.usermodel.XSSFSheet; import org.apache.poi.xssf.usermodel.XSSFWorkbook; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.pms.common.SqlMapConfig; import com.pms.common.bean.PersonBean; import com.pms.common.service.BaseService; import com.pms.common.utils.CommonUtils; import com.pms.common.utils.Constants; @Service public class PartService extends BaseService{ @Autowired CommonService commonService; public Map setPartCommonCD(Map paramMap){ paramMap.put("PRODUCT_GROUP_CODE", Constants.PRODUCT_GROUP_CODE); paramMap.put("MATERIAL_CODE", Constants.MATERIAL_CODE); paramMap.put("SPEC_NO_CODE", Constants.SPEC_NO_CODE); paramMap.put("DESIGN_APPLY_POINT_CODE", Constants.DESIGN_APPLY_POINT_CODE); return paramMap; } /** * BOM 구조 기본정보 조회 * @param paramMap * @return */ public Map getBOMStructureStandardInfo(HttpServletRequest request,Map paramMap){ Map resultMap = new HashMap(); SqlSession sqlSession = null; try{ String objId = CommonUtils.checkNull(paramMap.get("objId")); setPartCommonCD(paramMap); paramMap.put("bomObjId", objId); String bomObjId = CommonUtils.checkNull(paramMap.get("bomObjId")); HttpSession session = request.getSession(); sqlSession = SqlMapConfig.getInstance().getSqlSession(); PersonBean person = (PersonBean)session.getAttribute(Constants.PERSON_BEAN); //접속자 String userId = person.getUserId(); paramMap.put("writer", userId); if("".equals(bomObjId)){ bomObjId = createBomStructureStandardInfo(paramMap); } resultMap = (HashMap)sqlSession.selectOne("partMng.getBOMStructureStandardInfoByObjId", bomObjId); }catch(Exception e){ e.printStackTrace(); }finally{ sqlSession.close(); } return CommonUtils.toUpperCaseMapKey(resultMap); } /** * BOM 구조 기본정보를 등록 후, 생성한 Object id를 반환한다. * @param paramMap * @return */ public String createBomStructureStandardInfo(Map paramMap){ String result = ""; SqlSession sqlSession = null; try{ sqlSession = SqlMapConfig.getInstance().getSqlSession(); if(!"".equals(CommonUtils.checkNull(paramMap.get("bomObjId")))){ result = CommonUtils.checkNull(paramMap.get("bomObjId")); }else{ result = CommonUtils.createObjId(); } Map sqlParamMap = new HashMap(); sqlParamMap.put("bomObjId", result); sqlParamMap.put("oemObjId", CommonUtils.checkNull(paramMap.get("search_oemObjId"))); sqlParamMap.put("carObjId", CommonUtils.checkNull(paramMap.get("search_carObjId"))); sqlParamMap.put("productObjId", CommonUtils.checkNull(paramMap.get("search_productObjId"))); sqlParamMap.put("regionObjId", CommonUtils.checkNull(paramMap.get("search_regionObjId"))); sqlParamMap.put("writer", CommonUtils.checkNull(paramMap.get("writer"))); sqlSession.insert("partMng.createBOMReportStructureStandardInfo", sqlParamMap); }catch(Exception e){ e.printStackTrace(); }finally{ sqlSession.close(); } return result; } /** * Part의 상세정보를 가져온다. * @param paramMap * @return */ public HashMap getPartDetailInfo(HttpServletRequest request,Map paramMap){ HashMap resultMap = new HashMap(); SqlSession sqlSession = null; try{ sqlSession = SqlMapConfig.getInstance().getSqlSession(); resultMap = sqlSession.selectOne("part.getPartInfoDetail", paramMap); }catch(Exception e){ e.printStackTrace(); }finally{ sqlSession.close(); } return resultMap; } /** * Part의 관리항목 목록을 가져온다 * @param paramMap * @return */ public ArrayList getPartMngItemReceptList(HttpServletRequest request,Map paramMap){ ArrayList resultList = new ArrayList(); SqlSession sqlSession = null; try{ sqlSession = SqlMapConfig.getInstance().getSqlSession(); HttpSession session = request.getSession(); PersonBean person = (PersonBean)session.getAttribute(Constants.PERSON_BEAN); paramMap.put("userId", CommonUtils.checkNull(person.getUserId())); resultList = (ArrayList)sqlSession.selectList("part.getPartMngItemList", paramMap); }catch(Exception e){ e.printStackTrace(); }finally{ sqlSession.close(); } return resultList; } /** * Part의 관리항목 확인 시 DB에 내용 입력 * @param paramMap * @return */ public void mergeCheckPartMngFile(HttpServletRequest request,Map paramMap){ ArrayList resultList = new ArrayList(); SqlSession sqlSession = null; try{ sqlSession = SqlMapConfig.getInstance().getSqlSession(false); HttpSession session = request.getSession(); PersonBean person = (PersonBean)session.getAttribute(Constants.PERSON_BEAN); paramMap.put("userId", CommonUtils.checkNull(person.getUserId())); paramMap.put("newObjId", CommonUtils.createObjId()); sqlSession.update("part.mergePartMngItemCheck", paramMap); sqlSession.commit(); }catch(Exception e){ sqlSession.rollback(); e.printStackTrace(); }finally{ sqlSession.close(); } } /** * Part에 연결된 SPEC 정보를 가져온다. * @param paramMap * @return */ public ArrayList getConnectedSpecList(HttpServletRequest request,Map paramMap){ ArrayList resultList = new ArrayList(); ArrayList relSPECList = new ArrayList(); ArrayList connectedSPECList = new ArrayList(); SqlSession sqlSession = null; try{ sqlSession = SqlMapConfig.getInstance().getSqlSession(); relSPECList = (ArrayList)sqlSession.selectList("part.getPartRelSpecList", paramMap); if(0 < relSPECList.size()){ for(int i=0;i 1){ paramMap.put("multiSearch", "Y"); paramMap.put("partNoArr", partNoArr); } String[] drawingNoArr = CommonUtils.checkNull(paramMap.get("search_drawingNo")).split(" "); if(drawingNoArr.length > 1){ paramMap.put("multiSearchDrawingNo", "Y"); paramMap.put("drawingNoArr", drawingNoArr); } String[] thicknessArr = CommonUtils.checkNull(paramMap.get("search_thickness")).split(" "); if(thicknessArr.length > 1){ paramMap.put("multiSearchThickness", "Y"); paramMap.put("thicknessArr", thicknessArr); } System.out.println("========================="); System.out.println("paramMap : "+paramMap); System.out.println("========================="); resultList = (ArrayList)sqlSession.selectList("part.getPartList",paramMap); }catch(Exception e){ throw e; }finally{ sqlSession.close(); } return resultList; } /** * 파트의 Revision 목록을 가져온다. * @param request * @param paramMap * @return */ public ArrayList getPartRevisionList(HttpServletRequest request,Map paramMap){ ArrayList resultList = new ArrayList(); SqlSession sqlSession = SqlMapConfig.getInstance().getSqlSession(); try{ String[] partNoArr = CommonUtils.checkNull(paramMap.get("search_partNo")).split(" "); if(partNoArr.length > 1){ paramMap.put("multiSearch", "Y"); paramMap.put("partNoArr", partNoArr); } String[] drawingNoArr = CommonUtils.checkNull(paramMap.get("search_drawingNo")).split(" "); if(drawingNoArr.length > 1){ paramMap.put("multiSearchDrawingNo", "Y"); paramMap.put("drawingNoArr", drawingNoArr); } String[] thicknessArr = CommonUtils.checkNull(paramMap.get("search_thickness")).split(" "); if(thicknessArr.length > 1){ paramMap.put("multiSearchThickness", "Y"); paramMap.put("thicknessArr", thicknessArr); } System.out.println("========================="); System.out.println("paramMap : "+paramMap); System.out.println("========================="); resultList = (ArrayList)sqlSession.selectList("part.getPartRevisionList",paramMap); }catch(Exception e){ throw e; }finally{ sqlSession.close(); } return resultList; } /** * 파트중복여부를 가져온다. * @param request * @param paramMap * @return */ public ArrayList getDuplicatePartList(HttpServletRequest request,Map paramMap){ ArrayList resultList = new ArrayList(); SqlSession sqlSession = SqlMapConfig.getInstance().getSqlSession(); try{ resultList = (ArrayList)sqlSession.selectList("part.getDuplicatePartList",paramMap); }catch(Exception e){ throw e; }finally{ sqlSession.close(); } return resultList; } /** * RH P/No, 도면 정보를 가져온다. * @param request * @param paramMap * @return */ public ArrayList getReferencePartList(HttpServletRequest request,Map paramMap){ ArrayList resultList = new ArrayList(); SqlSession sqlSession = SqlMapConfig.getInstance().getSqlSession(); try{ resultList = (ArrayList)sqlSession.selectList("part.getImportTargetPartInfoDetail",paramMap); }catch(Exception e){ throw e; }finally{ sqlSession.close(); } return resultList; } /** * 연결가능한 파트목록을 가져온다. * @param request * @param paramMap * @return */ public ArrayList getConnectablePartList(HttpServletRequest request,Map paramMap){ ArrayList resultList = new ArrayList(); SqlSession sqlSession = SqlMapConfig.getInstance().getSqlSession(); try{ resultList = (ArrayList)sqlSession.selectList("part.getConnectablePartList",paramMap); }catch(Exception e){ throw e; }finally{ sqlSession.close(); } return resultList; } /** * IS_LAST 지정할 파트 목록을 가져온다. * @param request * @param paramMap * @return */ public ArrayList getIsLastPartList(HttpServletRequest request,Map paramMap){ ArrayList resultList = new ArrayList(); SqlSession sqlSession = SqlMapConfig.getInstance().getSqlSession(); try{ resultList = (ArrayList)sqlSession.selectList("part.getChangePartIsLast",paramMap); }catch(Exception e){ throw e; }finally{ sqlSession.close(); } return resultList; } /** * 업로드된 Excel File을 통해 데이터를 Parsing 한다. * @param request * @param paramMap * @return */ public ArrayList parsingExcelFile(HttpServletRequest request,Map paramMap)throws Exception{ ArrayList resultList = new ArrayList(); ArrayList fileList = commonService.getFileList(paramMap); if(null != fileList && 1 == fileList.size()){ HashMap fileMap = (HashMap)fileList.get(0); String path = CommonUtils.checkNull(fileMap.get("FILE_PATH")); String fileName = CommonUtils.checkNull(fileMap.get("SAVED_FILE_NAME")); FileInputStream fis = new FileInputStream(path+"\\"+fileName); XSSFWorkbook workBook = new XSSFWorkbook(fis); XSSFSheet sheet = workBook.getSheetAt(0); int rows = sheet.getPhysicalNumberOfRows(); for(int rowIndex= 2 ; rowIndex < rows ; rowIndex++){ XSSFRow row = sheet.getRow(rowIndex); if(null != row){ HashMap partMap = new HashMap(); for(int columnIndex = 0 ; columnIndex < 28 ; columnIndex++){ XSSFCell cell = row.getCell(columnIndex); //데이버 유형별 get date String cellValue = ""; if(null == cell){ cellValue = ""; }else{ switch(cell.getCellType()){ case XSSFCell.CELL_TYPE_FORMULA: cellValue = cell.getCellFormula(); System.out.println(columnIndex+":"+"XSSFCell.CELL_TYPE_FORMULA:"+cellValue); break; case XSSFCell.CELL_TYPE_NUMERIC: if(15 == columnIndex){ cellValue = cell.getNumericCellValue()+""; cellValue = String.format("%.2f", Double.parseDouble(cellValue)); System.out.println("cellValue1:"+cellValue); }else{ cellValue = cell.getNumericCellValue()+""; System.out.println("cellValue2:"+cellValue); } System.out.println(columnIndex+":"+"XSSFCell.CELL_TYPE_NUMERIC:"+cellValue); break; case XSSFCell.CELL_TYPE_STRING: cellValue = cell.getStringCellValue()+""; System.out.println(columnIndex+":"+"XSSFCell.CELL_TYPE_STRING:"+cellValue); break; case XSSFCell.CELL_TYPE_BLANK: cellValue = cell.getBooleanCellValue()+""; System.out.println(columnIndex+":"+"XSSFCell.CELL_TYPE_BLANK:"+cellValue); break; case XSSFCell.CELL_TYPE_ERROR: cellValue = cell.getErrorCellValue()+""; System.out.println(columnIndex+":"+"XSSFCell.CELL_TYPE_ERROR:"+cellValue); break; } } if("false".equals(cellValue)){ cellValue = ""; } //품번 if(0 == columnIndex){ int duplicateCnt = 0; if(null != cellValue){ paramMap.put("search_partNo", cellValue); paramMap.put("targetObjId", ""); ArrayList duplicateList = new ArrayList(); duplicateList = (ArrayList)getDuplicatePartList(request, paramMap); if(0 < duplicateList.size()){ for(int i=0;i> resultList = new ArrayList(); SqlSession sqlSession = SqlMapConfig.getInstance().getSqlSession(); try{ System.out.println("standardBOMInfo : "+standardBOMInfo); Map sqlParamMap = new HashMap(); sqlParamMap.put("bomReportObjId", CommonUtils.checkNull(standardBOMInfo.get("OBJID"))); resultList = (ArrayList)sqlSession.selectList("part.getBOMTreeList", sqlParamMap); }catch(Exception e){ throw e; }finally{ sqlSession.close(); } return CommonUtils.toUpperCaseMapKey(resultList); } /** * BOM구조 연결. * @param paramMap * @param partList * @return */ public boolean relatePartInfo(Map paramMap, List partList){ boolean result = false; SqlSession sqlSession = SqlMapConfig.getInstance().getSqlSession(); try{ Map sqlParamMap = new HashMap(); sqlParamMap.put("bomReportObjId", CommonUtils.checkNull(paramMap.get("objId"))); sqlParamMap.put("parentPartNo", CommonUtils.checkNull(paramMap.get("leftPartNo"))); sqlParamMap.put("parentObjId", CommonUtils.checkNull(paramMap.get("leftPartObjId"))); sqlParamMap.put("qty", 1); sqlParamMap.put("regionObjId", CommonUtils.checkNull(paramMap.get("regionObjId"))); for(String partNo : partList){ sqlParamMap.put("partNo", partNo); sqlParamMap.put("partObjId", CommonUtils.createObjId()); sqlSession.insert("part.relatePartInfo", sqlParamMap); } result = true; }catch(Exception e){ e.printStackTrace(); }finally{ sqlSession.close(); } return result; } /** * BOM 구조 개별삭제(하위정보 포함) * @param paramMap * @return */ public boolean deletePartRelateInfo(Map paramMap){ boolean result = false; SqlSession sqlSession = SqlMapConfig.getInstance().getSqlSession(); try{ System.out.println("deletePartRelateInfo.paramMap >> "+paramMap); sqlSession.delete("part.deletePartRelateInfo", paramMap); result = true; }catch(Exception e){ e.printStackTrace(); }finally{ sqlSession.close(); } return result; } /** * BOM Dummy Data 삭제 * @param paramMap */ public void deleteDummyBOMData(Map paramMap){ System.out.println("deleteDummyBOMData().."); SqlSession sqlSession = SqlMapConfig.getInstance().getSqlSession(); try{ System.out.println("paramMap >> "+paramMap); sqlSession.delete("part.deleteDummyAfterDeletePartRelatedInfo", paramMap); }catch(Exception e){ e.printStackTrace(); }finally{ sqlSession.close(); } } /** * 구조등록메뉴의 목록 조회 * @param paramMap * @return */ public List getBOMStandardStructureList(HttpServletRequest request, Map paramMap){ List resultList = new ArrayList(); SqlSession sqlSession = SqlMapConfig.getInstance().getSqlSession(); try{ String countPerPage = CommonUtils.checkNull(request.getParameter("countPerPage"), Constants.ADMIN_COUNT_PER_PAGE+""); paramMap.put("COUNT_PER_PAGE", Integer.parseInt(countPerPage)); Map pageMap = (HashMap)sqlSession.selectOne("part.getBOMStandardStructureListCnt", paramMap); pageMap = (HashMap)CommonUtils.setPagingInfo(request, pageMap); paramMap.put("PAGE_END", CommonUtils.checkNull(pageMap.get("PAGE_END"))); paramMap.put("PAGE_START", CommonUtils.checkNull(pageMap.get("PAGE_START"))); resultList = sqlSession.selectList("part.getBOMStandardStructureList", paramMap); }catch(Exception e){ e.printStackTrace(); }finally{ sqlSession.close(); } return resultList; } /** * 최상위 레벨에 같은 Part No가 있는지 체크. * @param paramMap * @param rightCheckedArr * @return */ public boolean hasSameTopPartNo(Map paramMap, List rightCheckedArr){ boolean result = false; SqlSession sqlSession = SqlMapConfig.getInstance().getSqlSession(); try{ paramMap.put("rightCheckedArr", rightCheckedArr); System.out.println("paramMap : "+paramMap); Map map = sqlSession.selectOne("part.getSameTopPartNoCnt", paramMap); if(map != null && !map.isEmpty()){ int cnt = Integer.parseInt(CommonUtils.checkNull(map.get("CNT"), "0")); System.out.println("cnt : "+cnt); if(cnt > 0) result = true; } }catch(Exception e){ e.printStackTrace(); }finally{ sqlSession.close(); } return result; } /** * 구조정보의 qty 변경. * @param paramMap * @return */ public boolean structureQtySave(Map paramMap){ boolean result = false; SqlSession sqlSession = SqlMapConfig.getInstance().getSqlSession(); try{ int cnt = sqlSession.update("part.structureQtySave", paramMap); if(cnt > 0) result = true; }catch(Exception e){ e.printStackTrace(); }finally{ sqlSession.close(); } return result; } /** * 업로드된 Excel File을 통해 데이터를 Parsing 한다. * @param request * @param paramMap * @return */ public ArrayList parsingStructureExcelFile(HttpServletRequest request,Map paramMap)throws Exception{ ArrayList resultList = new ArrayList(); ArrayList fileList = commonService.getFileList(paramMap); if(null != fileList && 1 == fileList.size()){ HashMap fileMap = (HashMap)fileList.get(0); String path = CommonUtils.checkNull(fileMap.get("FILE_PATH")); String fileName = CommonUtils.checkNull(fileMap.get("SAVED_FILE_NAME")); FileInputStream fis = new FileInputStream(path+"\\"+fileName); XSSFWorkbook workBook = new XSSFWorkbook(fis); XSSFSheet sheet = workBook.getSheetAt(0); int rows = sheet.getPhysicalNumberOfRows(); for(int rowIndex= 2 ; rowIndex < rows ; rowIndex++){ XSSFRow row = sheet.getRow(rowIndex); if(null != row){ HashMap partMap = new HashMap(); for(int columnIndex = 0 ; columnIndex < 3 ; columnIndex++){ XSSFCell cell = row.getCell(columnIndex); //데이버 유형별 get date String cellValue = ""; if(null == cell){ cellValue = ""; }else{ switch(cell.getCellType()){ case XSSFCell.CELL_TYPE_FORMULA: cellValue = cell.getCellFormula(); System.out.println(columnIndex+":"+"XSSFCell.CELL_TYPE_FORMULA:"+cellValue); break; case XSSFCell.CELL_TYPE_NUMERIC: cellValue = (int)cell.getNumericCellValue()+""; System.out.println(columnIndex+":"+"XSSFCell.CELL_TYPE_NUMERIC:"+cellValue); break; case XSSFCell.CELL_TYPE_STRING: cellValue = cell.getStringCellValue()+""; System.out.println(columnIndex+":"+"XSSFCell.CELL_TYPE_STRING:"+cellValue); break; case XSSFCell.CELL_TYPE_BLANK: cellValue = ""; System.out.println(columnIndex+":"+"XSSFCell.CELL_TYPE_BLANK:"+cellValue); break; case XSSFCell.CELL_TYPE_ERROR: cellValue = cell.getErrorCellValue()+""; System.out.println(columnIndex+":"+"XSSFCell.CELL_TYPE_ERROR:"+cellValue); break; } } //Parent Part No if(0 == columnIndex){ partMap.put("no", rowIndex-1); partMap.put("parentPartNo", cellValue); } //Part No if(1 == columnIndex){ partMap.put("partNo", cellValue); } //Quantity if(2 == columnIndex){ partMap.put("qty", cellValue); } } String parentPartNo = CommonUtils.checkNull(partMap.get("parentPartNo")); String partNo = CommonUtils.checkNull(partMap.get("partNo")); String qty = CommonUtils.checkNull(partMap.get("qty")); if("".equals(parentPartNo) && "false".equals(partNo) && "false".equals(qty)) break; partMap.put("objId", CommonUtils.createObjId()); resultList.add(partMap); } } } return resultList; } /** * Excel Parsing된 list를 받아, 해당 Data를 DB에 입력한다. * @param paramMap * @return DB에 등록된 targetObjId의 Part목록 */ public List insertStructureTempExcelImportData(Map paramMap, ArrayList dataList){ List resultList = new ArrayList(); SqlSession sqlSession = SqlMapConfig.getInstance().getSqlSession(); try{ for(Map map : dataList){ String no = CommonUtils.checkNull(map.get("no")); String parentObjId = CommonUtils.checkNull(map.get("parentObjId")); String parentPartNo = CommonUtils.checkNull(map.get("parentPartNo")); String objId = CommonUtils.checkNull(map.get("objId")); String partNo = CommonUtils.checkNull(map.get("partNo")); String qty = CommonUtils.checkNull(map.get("qty")); String msg = CommonUtils.checkNull(map.get("msg")); Map sqlParamMap = new HashMap(); sqlParamMap.put("targetObjId", CommonUtils.checkNull(paramMap.get("targetObjId"))); sqlParamMap.put("no", no); sqlParamMap.put("parentObjId", parentObjId); sqlParamMap.put("parentPartNo", parentPartNo); sqlParamMap.put("objId", objId); sqlParamMap.put("partNo", partNo); sqlParamMap.put("qty", CommonUtils.checkNull(qty, "1")); sqlParamMap.put("msg", msg); sqlSession.insert("part.insertStructureTempExcelImportData", sqlParamMap); // //0.1초 지연 // TimeUnit.MILLISECONDS.sleep(100); //// Thread.sleep(100); } resultList = sqlSession.selectList("part.selectStructureTempExcelImportData", paramMap); }catch(Exception e){ e.printStackTrace(); }finally{ sqlSession.close(); } return resultList; } /** * 구조등록 Excel Import Data 임시 Row Data 삭제 * @param paramMap * @return */ public boolean initializeStructureTempExcelImportData(Map paramMap){ boolean result= false; SqlSession sqlSession = SqlMapConfig.getInstance().getSqlSession(); try{ int cnt = sqlSession.delete("part.initializeStructureTempExcelImportData", paramMap); if(cnt > 0) result = true; }catch(Exception e){ e.printStackTrace(); }finally{ sqlSession.close(); } return result; } /** * 해당 part가 확정인지 확인. * @param paramMap * @return */ public boolean isPartComplete(Map paramMap){ boolean result = false; SqlSession sqlSession = SqlMapConfig.getInstance().getSqlSession(); try{ Map map = sqlSession.selectOne("part.isPartComplete", paramMap); if(map != null && !map.isEmpty()){ int cnt = Integer.parseInt(CommonUtils.checkNull(map.get("CNT"))); if(cnt > 0) result = true; } }catch(Exception e){ e.printStackTrace(); }finally{ sqlSession.close(); } return result; } /** * 구조정보 엑셀 업로드 저장 * @param paramMap * @return */ public String saveStructureExcelImportData(HttpServletRequest request, Map paramMap){ String result = ""; SqlSession sqlSession = SqlMapConfig.getInstance().getSqlSession(); System.out.println("saveStructureExcelImportData()"); System.out.println("paramMap >> "+paramMap); try{ HttpSession session = request.getSession(); PersonBean person = (PersonBean)session.getAttribute(Constants.PERSON_BEAN); paramMap.put("writer", CommonUtils.checkNull(person.getUserId())); String targetObjId = CommonUtils.checkNull(paramMap.get("targetObjId")); String carTypeObjId = CommonUtils.checkNull(paramMap.get("search_carObjId")); String productGroupObjId = CommonUtils.checkNull(paramMap.get("search_productGroupObjId")); String productObjId = CommonUtils.checkNull(paramMap.get("search_productObjId")); String regionObjId = CommonUtils.checkNull(paramMap.get("search_regionObjId")); //1. 차종, 제품, 사양별 등록된 정보가 있는지 확인해서 없다면 새로 입력하고, 등록된 정보가 있다면 해당 정보를 비운 후, 저장한다. String bomObjId = CommonUtils.checkNull(sqlSession.selectOne("part.getBOMStructureStandardObjId", paramMap)); System.out.println("bomObjId1 : "+bomObjId); if("".equals(bomObjId)){ paramMap.put("bomObjId", targetObjId); bomObjId = createBomStructureStandardInfo(paramMap); System.out.println("bomObjId2 : "+bomObjId); }else{ paramMap.put("bomObjId", bomObjId); } //2. targetObjId를 통해 이미 등록된 PART_BOM_QTY 테이블 초기화 sqlSession.delete("part.deleteStructureInfo", paramMap); //3. targetObjId를 통해 PART_BOM_QTY 테이블 insert int cnt = sqlSession.insert("part.saveStructureExcelImportData", paramMap); if(cnt > 0) result = "저장되었습니다."; }catch(Exception e){ result = "저장에 실패하였습니다."; e.printStackTrace(); }finally{ sqlSession.close(); } return result; } /** * 정전개 조회 * @param paramMap * @return */ public List getStructureAscendingList(Map paramMap){ List resultList = new ArrayList(); SqlSession sqlSession = SqlMapConfig.getInstance().getSqlSession(); try{ if(paramMap != null && !paramMap.isEmpty()) resultList = sqlSession.selectList("part.selectStructureAscendingList", paramMap); }catch(Exception e){ e.printStackTrace(); }finally{ sqlSession.close(); } return resultList; } /** * 역전개 조회 * @param paramMap * @return */ public List getStructureDescendingList(Map paramMap){ List resultList = new ArrayList(); SqlSession sqlSession = SqlMapConfig.getInstance().getSqlSession(); try{ if(paramMap != null && !paramMap.isEmpty()){ String partNo = CommonUtils.checkNull(paramMap.get("search_partNo")); String partName = CommonUtils.checkNull(paramMap.get("search_partName")); if(!"".equals(partNo) || !"".equals(partName)){ paramMap.put("isStartDevPart", "1"); resultList = sqlSession.selectList("part.selectStructureDescendingList", paramMap); } } }catch(Exception e){ e.printStackTrace(); }finally{ sqlSession.close(); } return resultList; } /** * partNo를 통해 is_last = 1, upper(status) = 'COMPLETE' 상태인 Part의 Object ID를 반환한다. * @param partNo * @return */ public String getPartInfoObjId(String partNo){ String result = ""; SqlSession sqlSession = null; try{ sqlSession = SqlMapConfig.getInstance().getSqlSession(); result = sqlSession.selectOne("part.getPartInfoObjIdByPartNo", partNo); }catch(Exception e){ e.printStackTrace(); }finally{ sqlSession.close(); } return result; } /**************************************************************************/ }