| | |
| | | import kr.wisestone.owl.util.MapUtil; |
| | | import kr.wisestone.owl.web.condition.CompanyFieldCondition; |
| | | import kr.wisestone.owl.web.form.CompanyFieldForm; |
| | | import kr.wisestone.owl.web.form.IssueForm; |
| | | import org.apache.commons.lang3.StringUtils; |
| | | import org.apache.poi.ss.usermodel.*; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | |
| | | |
| | | import javax.servlet.http.HttpServletRequest; |
| | | import java.util.*; |
| | | import java.util.regex.Pattern; |
| | | |
| | | @Service |
| | | public class CompanyFieldServiceImpl extends AbstractServiceImpl<CompanyField, Long, JpaRepository<CompanyField, Long>> implements CompanyFieldService { |
| | |
| | | // 업체 추가 |
| | | @Override |
| | | public CompanyField addCompany(CompanyFieldForm companyFieldForm) { |
| | | // url 유효성 체크 |
| | | this.verifyUrl(companyFieldForm.getUrl(), null); |
| | | // 업체명 중복 체크 |
| | | this.verifyTitle(companyFieldForm.getName(), null); |
| | | |
| | | if (companyFieldForm.getIpStart() != null && companyFieldForm.getIpEnd() != null) { |
| | | // 아이피 유효성 체크 |
| | | this.verifyIp(companyFieldForm.getIpStart(), companyFieldForm.getIpEnd()); |
| | | } |
| | | |
| | | if (companyFieldForm.getUrl() != null) { |
| | | // url 유효성 체크 |
| | | this.verifyUrl(companyFieldForm.getUrl(), null); |
| | | } |
| | | |
| | | if (companyFieldForm.getTelList() != null && companyFieldForm.getTelList().size() > 0) { |
| | | String tels = companyFieldForm.getTelList().toString(); |
| | |
| | | return companyField; |
| | | } |
| | | |
| | | /** |
| | | * IP 유효성 체크 |
| | | * @param ip String |
| | | */ |
| | | private void verifyIp(String ip, String ip2) { |
| | | if (ip2 == null) { |
| | | if (!StringUtils.isEmpty(ip)) { |
| | | if (!Pattern.matches("^(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\" + |
| | | ".(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$", ip)) { |
| | | throw new OwlRuntimeException(this.messageAccessor.getMessage(MsgConstants.IP_NOT_INVALID)); |
| | | } |
| | | } |
| | | } else { |
| | | if (!StringUtils.isEmpty(ip)) { |
| | | long ipStart = ConvertUtil.ipToLong(ip); |
| | | long ipEnd = ConvertUtil.ipToLong(ip2); |
| | | if (ipEnd < ipStart) { |
| | | throw new OwlRuntimeException(this.messageAccessor.getMessage(MsgConstants.IP_START_NOT_LARGER_THAN_END)); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | // url 유효성 체크 |
| | | private void verifyUrl(String url, Long id) { |
| | | if (StringUtils.isEmpty(url)) { |
| | | /*if (StringUtils.isEmpty(url)) { |
| | | throw new OwlRuntimeException( |
| | | this.messageAccessor.getMessage(MsgConstants.COMPANYFIELD_NOT_URL)); |
| | | } |
| | | CompanyField companyField; |
| | | this.messageAccessor.getMessage(MsgConstants.COMPANY_NOT_URL)); |
| | | }*/ |
| | | if (!StringUtils.isEmpty(url)) { |
| | | List<CompanyField> companyFieldList = Lists.newArrayList(); |
| | | CompanyFieldCondition condition = new CompanyFieldCondition(); |
| | | String[] urlArr = null; |
| | | List<String> urls = Lists.newArrayList(); |
| | | |
| | | if(id == null){ |
| | | companyField = this.companyFieldRepository.findByUrl(url); |
| | | } else { |
| | | companyField = this.companyFieldRepository.findByUrlAndIdNot(url,id); |
| | | } |
| | | if (url.contains(" ")) { |
| | | url = url.replace(" ",""); |
| | | } |
| | | if (url.contains(",")) { |
| | | urlArr = url.split(","); |
| | | urls.addAll(Arrays.asList(urlArr)); |
| | | } else { |
| | | urls.add(url); |
| | | } |
| | | |
| | | if (companyField != null) { |
| | | throw new OwlRuntimeException( |
| | | this.messageAccessor.getMessage(MsgConstants.COMPANYFIELD_USED_URL)); |
| | | if (urls.size() > 0) { |
| | | condition.setUrl(urls); |
| | | |
| | | if(id == null){ |
| | | companyFieldList = this.companyFieldMapper.findByUrls(condition); |
| | | } else { |
| | | condition.setId(id); |
| | | companyFieldList = this.companyFieldMapper.findByUrlsAndIdNot(condition); |
| | | } |
| | | } |
| | | |
| | | if (companyFieldList != null && companyFieldList.size() > 0) { |
| | | throw new OwlRuntimeException( |
| | | this.messageAccessor.getMessage(MsgConstants.COMPANY_USED_URL)); |
| | | } |
| | | } |
| | | } |
| | | |
| | |
| | | |
| | | public List<Map<String, Object>> find(CompanyFieldCondition condition) { |
| | | return this.companyFieldMapper.find(condition); |
| | | } |
| | | |
| | | // 모든 업체정보를 조회한다. 이슈 엑셀 import 에서 사용 |
| | | @Override |
| | | @Transactional(readOnly = true) |
| | | public List<CompanyField> findAll() { |
| | | return this.companyFieldRepository.findAll(); |
| | | } |
| | | |
| | | /** |
| | |
| | | if (region != null) { |
| | | companyFieldVo.setRegionName(region.getUseValue()); |
| | | } |
| | | } |
| | | if (companyField.getStatusName() != null && !companyField.getStatusName().equals("")) { |
| | | companyFieldVo.setStatusName(companyField.getStatusName()); |
| | | } |
| | | return companyFieldVo; |
| | | } |
| | |
| | | // 업체 정로를 수정한다. |
| | | @Override |
| | | public void modifyCompany(CompanyFieldForm companyFieldForm) { |
| | | // url 유효성 체크 |
| | | this.verifyUrl(companyFieldForm.getUrl(), companyFieldForm.getId()); |
| | | // 업체명 유효성 체크 |
| | | this.verifyTitle(companyFieldForm.getName(), companyFieldForm.getId()); |
| | | |
| | | if (companyFieldForm.getUrl() != null) { |
| | | // url 유효성 체크 |
| | | this.verifyUrl(companyFieldForm.getUrl(), companyFieldForm.getId()); |
| | | } |
| | | |
| | | if (companyFieldForm.getTelList() != null && companyFieldForm.getTelList().size() > 0) { |
| | | String tels = companyFieldForm.getTelList().toString(); |
| | |
| | | companyFieldForm.setEmail(emails.trim()); |
| | | } |
| | | |
| | | CompanyFieldCategory companyFieldCategory = this.companyFieldCategoryService.find(companyFieldForm.getChildSectorId()); |
| | | if (!companyFieldCategory.getParentId().equals(companyFieldForm.getParentSectorId())) { |
| | | throw new OwlRuntimeException( |
| | | this.messageAccessor.getMessage(MsgConstants.PARENT_SECTOR_NOT_EQUAL)); |
| | | if (companyFieldForm.getChildSectorId() != null) { |
| | | CompanyFieldCategory companyFieldCategory = this.companyFieldCategoryService.find(companyFieldForm.getChildSectorId()); |
| | | if (companyFieldCategory != null && !companyFieldCategory.getParentId().equals(companyFieldForm.getParentSectorId())) { |
| | | throw new OwlRuntimeException( |
| | | this.messageAccessor.getMessage(MsgConstants.PARENT_SECTOR_NOT_EQUAL)); |
| | | } |
| | | } |
| | | |
| | | CompanyField companyField = ConvertUtil.copyProperties(companyFieldForm, CompanyField.class); |
| | |
| | | excelInfo.setFileName(this.messageAccessor.message("common.registerExcelCompanyField")); // 엑셀로 업체 등록하기 |
| | | excelInfo.addAttrInfos(new ExportExcelAttrVo("id", this.messageAccessor.message("companyField.companyName"), 20, ExportExcelAttrVo.ALIGN_CENTER)); // 업체명 |
| | | excelInfo.addAttrInfos(new ExportExcelAttrVo("id", this.messageAccessor.message("companyField.companyUrl"), 10, ExportExcelAttrVo.ALIGN_CENTER)); // url |
| | | excelInfo.addAttrInfos(new ExportExcelAttrVo("id", this.messageAccessor.message("companyField.companyIpStart"), 10, ExportExcelAttrVo.ALIGN_CENTER)); // ip 시작 주소 |
| | | excelInfo.addAttrInfos(new ExportExcelAttrVo("id", this.messageAccessor.message("companyField.companyIpEnd"), 10, ExportExcelAttrVo.ALIGN_CENTER)); // ip 종료 주소 |
| | | excelInfo.addAttrInfos(new ExportExcelAttrVo("id", this.messageAccessor.message("isp.ispName"), 20, ExportExcelAttrVo.ALIGN_CENTER)); // isp명 |
| | | excelInfo.addAttrInfos(new ExportExcelAttrVo("id", this.messageAccessor.message("Hosting.HostingName"), 20, ExportExcelAttrVo.ALIGN_CENTER)); // 호스팅명 |
| | | excelInfo.addAttrInfos(new ExportExcelAttrVo("id", this.messageAccessor.message("companyField.companyTel"), 10, ExportExcelAttrVo.ALIGN_CENTER)); // 연락처 |
| | |
| | | } |
| | | } |
| | | |
| | | // 엑셀 import 로 이슈를 등록한다. |
| | | // 엑셀 import 로 업체를 등록한다. |
| | | @Override |
| | | @Transactional |
| | | public void importExcel(MultipartFile multipartFile) throws Exception { |
| | |
| | | for (int rowIndex = 0; rowIndex < lastRowNum; rowIndex++) { |
| | | // 0번은 헤더는 무시한다. |
| | | Row row = sheet.getRow(rowIndex); |
| | | // 헤더 정보를 추출한다 - 사용자 정의 필드 정보를 가져오기 위해 |
| | | // 헤더 정보를 추출한다 |
| | | if (rowIndex == 1) { |
| | | for (int cellIndex = 0; cellIndex < row.getLastCellNum(); cellIndex++) { |
| | | Cell cell = row.getCell(cellIndex); |
| | |
| | | if (rowIndex > 1) { |
| | | // 업체로 등록하기 위해 CompanyFieldForm 에 데이터를 셋팅한다. |
| | | CompanyFieldForm newCompanyFieldForm = this.setCompanyFieldFormToExcelField(row, (rowIndex + 1), ispFieldMaps, hostingFieldMaps, companyTypeMaps, parentSectorMaps, childSectorMaps, regionMaps, statusMaps, headers); |
| | | // ip 유효성 체크 |
| | | this.verifyIp(newCompanyFieldForm.getIpStart(), newCompanyFieldForm.getIpEnd()); |
| | | |
| | | companyFieldForms.add(newCompanyFieldForm); |
| | | } |
| | |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * cell String으로 변환 함수 |
| | | * @param cell Cell |
| | | * @param isNull boolean |
| | | * @return String |
| | | */ |
| | | private String stringToCell (Cell cell, boolean isNull) { |
| | | String cellStr = ""; |
| | | if (!isNull) { |
| | | cellStr = CommonUtil.convertExcelStringToCell(cell); |
| | | // 공백 제거 |
| | | cell.setCellValue(cellStr.trim()); |
| | | } else { |
| | | cell.setCellValue(cellStr); |
| | | } |
| | | return cellStr; |
| | | } |
| | | |
| | | /** |
| | | * cell NULL 체크 함수 |
| | | * @param cell Cell |
| | | * @return boolean |
| | | */ |
| | | private Boolean cellNullCheck (Cell cell) { |
| | | int cellType = cell.getCellType(); |
| | | if (cellType < Cell.CELL_TYPE_BLANK) { |
| | | if (cellType == Cell.CELL_TYPE_STRING) { |
| | | if (cell.getStringCellValue() != null && !cell.getStringCellValue().equals("")) { |
| | | return false; |
| | | } |
| | | } else { |
| | | return false; |
| | | } |
| | | } |
| | | return true; |
| | | } |
| | | |
| | | /** |
| | | * 전화번호 CellType 체크 함수 |
| | | * @param cell Cell |
| | | * @param rowIndex int |
| | | */ |
| | | private void telTypeCheck (Cell cell, int rowIndex) { |
| | | if (cell != null && cell.getCellType() != cell.CELL_TYPE_STRING) { |
| | | throw new OwlRuntimeException( |
| | | this.messageAccessor.getMessage(MsgConstants.EXCEL_IMPORT_TEL_NOT_STRING_TYPE, rowIndex)); |
| | | } |
| | | } |
| | | |
| | | // 엑셀 필드에 있는 정보를 업체 form 으로 옮긴다. |
| | | private CompanyFieldForm setCompanyFieldFormToExcelField(Row row, int rowIndex, Map<String, IspField> ispFieldMaps, Map<String, HostingField> hostingFieldMaps, |
| | | Map<String, Map<String, Object>> companyTypeMaps, Map<String, Map<String, Object>> parentSectorMaps, |
| | |
| | | CompanyFieldForm companyFieldForm = new CompanyFieldForm(); |
| | | companyFieldForm.setRegisterId(this.webAppUtil.getLoginId()); |
| | | |
| | | // 제목, 내용, 프로젝트 키, 이슈 타입, 우선순위, 중요도, 담당자, 시작일, 종료일, 사용자 정의 필드 |
| | | for (int cellIndex = 0; cellIndex < headers.size(); cellIndex++) { |
| | | Cell cell = row.getCell(cellIndex); |
| | | |
| | | String cellStr = ""; |
| | | boolean isNull = true; |
| | | |
| | | if (cell != null) { |
| | | isNull = cellNullCheck(cell); |
| | | cellStr = stringToCell(cell, isNull); //cell을 String으로 변환 |
| | | } |
| | | |
| | | switch (cellIndex) { |
| | | case 0: |
| | | // 업체명 |
| | | this.setCompanyFormName(cell, companyFieldForm, rowIndex); |
| | | if (isNull) { |
| | | throw new OwlRuntimeException( |
| | | this.messageAccessor.getMessage(MsgConstants.EXCEL_IMPORT_COMPANY_NAME_IS_NULL, rowIndex)); |
| | | } |
| | | this.setCompanyFormName(cellStr, companyFieldForm); |
| | | break; |
| | | |
| | | case 1: |
| | | // url |
| | | this.setCompanyFormUrl(cell, companyFieldForm, rowIndex); |
| | | this.setCompanyFormUrl(cellStr, companyFieldForm, isNull); |
| | | break; |
| | | |
| | | case 2: |
| | | // isp명 |
| | | if (cell != null && cell.getCellType() != Cell.CELL_TYPE_BLANK) { |
| | | this.setCompanyFormIspName(cell, ispFieldMaps, companyFieldForm, rowIndex); |
| | | } |
| | | // ip시작주소 |
| | | this.setCompanyFormIpStart(cellStr, companyFieldForm, isNull); |
| | | break; |
| | | |
| | | case 3: |
| | | // 호스팅명 |
| | | if (cell != null && cell.getCellType() != Cell.CELL_TYPE_BLANK) { |
| | | this.setCompanyFormHostingName(cell, hostingFieldMaps, companyFieldForm, rowIndex); |
| | | } |
| | | // ip종료주소 |
| | | this.setCompanyFormIpEnd(cellStr, companyFieldForm, isNull); |
| | | break; |
| | | |
| | | case 4: |
| | | // 연락처 |
| | | if (cell != null && cell.getCellType() != Cell.CELL_TYPE_BLANK) { |
| | | this.setCompanyFormTel(cell, companyFieldForm, rowIndex); |
| | | } |
| | | // isp명 |
| | | this.setCompanyFormIspName(cellStr, ispFieldMaps, companyFieldForm, rowIndex, isNull); |
| | | break; |
| | | |
| | | case 5: |
| | | // 이메일 |
| | | if (cell != null && cell.getCellType() != Cell.CELL_TYPE_BLANK) { |
| | | this.setCompanyFormEmail(cell, companyFieldForm, rowIndex); |
| | | } |
| | | // 호스팅명 |
| | | this.setCompanyFormHostingName(cellStr, hostingFieldMaps, companyFieldForm, rowIndex, isNull); |
| | | break; |
| | | |
| | | case 6: |
| | | // 담당자 |
| | | if (cell != null && cell.getCellType() != Cell.CELL_TYPE_BLANK) { |
| | | this.setCompanyFormManager(cell, companyFieldForm, rowIndex); |
| | | } |
| | | // 연락처 |
| | | telTypeCheck(cell, rowIndex); |
| | | this.setCompanyFormTel(cellStr, companyFieldForm, isNull); |
| | | break; |
| | | |
| | | case 7: |
| | | // 기업구분 |
| | | if (cell != null && cell.getCellType() != Cell.CELL_TYPE_BLANK) { |
| | | this.setCompanyFormCompanyType(cell, companyTypeMaps, companyFieldForm, rowIndex); |
| | | } |
| | | // 이메일 |
| | | this.setCompanyFormEmail(cellStr, companyFieldForm, isNull); |
| | | break; |
| | | |
| | | case 8: |
| | | // 업종(대분류) |
| | | if (cell != null && cell.getCellType() != Cell.CELL_TYPE_BLANK) { |
| | | this.setCompanyFormParentSector(cell, parentSectorMaps, companyFieldForm, rowIndex); |
| | | } |
| | | // 담당자 |
| | | this.setCompanyFormManager(cellStr, companyFieldForm, isNull); |
| | | break; |
| | | |
| | | case 9: |
| | | // 업종(중분류) |
| | | if (cell != null && cell.getCellType() != Cell.CELL_TYPE_BLANK) { |
| | | this.setCompanyFormChildSector(cell, childSectorMaps, companyFieldForm, rowIndex); |
| | | } |
| | | // 기업구분 |
| | | this.setCompanyFormCompanyType(cellStr, companyTypeMaps, companyFieldForm, rowIndex, isNull); |
| | | break; |
| | | |
| | | case 10: |
| | | // 지역 |
| | | if (cell != null && cell.getCellType() != Cell.CELL_TYPE_BLANK) { |
| | | this.setCompanyFormRegion(cell, regionMaps, companyFieldForm, rowIndex); |
| | | } |
| | | // 업종(대분류) |
| | | this.setCompanyFormParentSector(cellStr, parentSectorMaps, companyFieldForm, rowIndex, isNull); |
| | | break; |
| | | |
| | | case 11: |
| | | // 상태 |
| | | if (cell != null && cell.getCellType() != Cell.CELL_TYPE_BLANK) { |
| | | this.setCompanyFormStatus(cell, statusMaps, companyFieldForm, rowIndex); |
| | | } |
| | | // 업종(중분류) |
| | | this.setCompanyFormChildSector(cellStr, childSectorMaps, companyFieldForm, rowIndex, isNull); |
| | | break; |
| | | |
| | | case 12: |
| | | // 비고 |
| | | if (cell != null && cell.getCellType() != Cell.CELL_TYPE_BLANK) { |
| | | this.setCompanyFormMemo(cell, companyFieldForm, rowIndex); |
| | | } |
| | | // 지역 |
| | | this.setCompanyFormRegion(cellStr, regionMaps, companyFieldForm, rowIndex, isNull); |
| | | break; |
| | | |
| | | case 13: |
| | | // 상태 |
| | | this.setCompanyFormStatus(cellStr, statusMaps, companyFieldForm, isNull); |
| | | break; |
| | | |
| | | case 14: |
| | | // 비고 |
| | | this.setCompanyFormMemo(cellStr, companyFieldForm, isNull); |
| | | } |
| | | } |
| | | |
| | | return companyFieldForm; |
| | | } |
| | | |
| | | private void setCompanyFormMemo(Cell cell, CompanyFieldForm companyFieldForm, int rowIndex) { |
| | | companyFieldForm.setMemo(CommonUtil.convertExcelStringToCell(cell)); |
| | | private void setCompanyFormIpEnd(String ipEnd, CompanyFieldForm companyFieldForm, boolean isNull) { |
| | | if (!isNull) { |
| | | if (ipEnd.contains(" ")) { |
| | | ipEnd = ipEnd.replace(" ", ""); |
| | | } |
| | | this.verifyIp(ipEnd, null); //ip 유효성 검사 |
| | | |
| | | companyFieldForm.setIpEnd(ipEnd); |
| | | } |
| | | } |
| | | |
| | | private void setCompanyFormStatus(Cell cell, Map<String, Map<String, Object>> statusMaps, CompanyFieldForm companyFieldForm, int rowIndex) { |
| | | if (cell != null) { |
| | | Map<String, Object> statusMap = statusMaps.get(CommonUtil.convertExcelStringToCell(cell)); |
| | | private void setCompanyFormIpStart(String ipStart, CompanyFieldForm companyFieldForm, boolean isNull) { |
| | | if (!isNull) { |
| | | if (ipStart.contains(" ")) { |
| | | ipStart = ipStart.replace(" ", ""); |
| | | } |
| | | this.verifyIp(ipStart, null); //ip 유효성 검사 |
| | | |
| | | companyFieldForm.setIpStart(ipStart); |
| | | } |
| | | } |
| | | |
| | | private void setCompanyFormMemo(String cellStr, CompanyFieldForm companyFieldForm, boolean isNull) { |
| | | if (!isNull) { |
| | | companyFieldForm.setMemo(cellStr); |
| | | } |
| | | } |
| | | |
| | | private void setCompanyFormStatus(String cellStr, Map<String, Map<String, Object>> statusMaps, CompanyFieldForm companyFieldForm, boolean isNull) { |
| | | if (!isNull) { |
| | | Map<String, Object> statusMap = statusMaps.get(cellStr); |
| | | if (MapUtil.getLong(statusMap, "id") != null) { |
| | | companyFieldForm.setStatusId(MapUtil.getLong(statusMap, "id")); |
| | | } else { |
| | | companyFieldForm.setStatusId(120L); |
| | | } |
| | | companyFieldForm.setStatusName(CommonUtil.convertExcelStringToCell(cell)); |
| | | companyFieldForm.setStatusName(cellStr); |
| | | } |
| | | } |
| | | |
| | | private void setCompanyFormRegion(Cell cell, Map<String, Map<String, Object>> regionMaps, CompanyFieldForm companyFieldForm, int rowIndex) { |
| | | if (cell != null) { |
| | | Map<String, Object> regionMap = regionMaps.get(CommonUtil.convertExcelStringToCell(cell)); |
| | | private void setCompanyFormRegion(String cellStr, Map<String, Map<String, Object>> regionMaps, CompanyFieldForm companyFieldForm, int rowIndex, boolean isNull) { |
| | | if (!isNull) { |
| | | Map<String, Object> regionMap = regionMaps.get(cellStr); |
| | | if (regionMap == null) { |
| | | throw new OwlRuntimeException( |
| | | this.messageAccessor.getMessage(MsgConstants.EXCEL_IMPORT_REGION_NOT_EXIST, rowIndex)); |
| | |
| | | } |
| | | } |
| | | |
| | | private void setCompanyFormChildSector(Cell cell, Map<String, Map<String, Object>> childSectorMaps, CompanyFieldForm companyFieldForm, int rowIndex) { |
| | | if (cell != null) { |
| | | Map<String, Object> childSectorMap = childSectorMaps.get(CommonUtil.convertExcelStringToCell(cell)); |
| | | private void setCompanyFormChildSector(String cellStr, Map<String, Map<String, Object>> childSectorMaps, CompanyFieldForm companyFieldForm, int rowIndex, boolean isNull) { |
| | | if (!isNull) { |
| | | Map<String, Object> childSectorMap = childSectorMaps.get(cellStr); |
| | | |
| | | // 대분류 없이 중분류만 입력했을경우 |
| | | if (companyFieldForm.getParentSectorId() == null) { |
| | | throw new OwlRuntimeException( |
| | | this.messageAccessor.getMessage(MsgConstants.EXCEL_IMPORT_PARENT_SECTOR_IS_NULL, rowIndex)); |
| | | } |
| | | |
| | | // 중분류가 대분류에 속해있지 않는 경우 |
| | | if (!companyFieldForm.getParentSectorId().equals(MapUtil.getLong(childSectorMap, "parentId"))) { |
| | | throw new OwlRuntimeException( |
| | | this.messageAccessor.getMessage(MsgConstants.EXCEL_IMPORT_PARENT_SECTOR_NOT_EQUAL, rowIndex)); |
| | | } |
| | | |
| | | companyFieldForm.setChildSectorId(MapUtil.getLong(childSectorMap, "id")); |
| | | } |
| | | } |
| | | |
| | | private void setCompanyFormParentSector(Cell cell, Map<String, Map<String, Object>> parentSectorMaps, CompanyFieldForm companyFieldForm, int rowIndex) { |
| | | if (cell != null) { |
| | | Map<String, Object> parentSectorMap = parentSectorMaps.get(CommonUtil.convertExcelStringToCell(cell)); |
| | | private void setCompanyFormParentSector(String cellStr, Map<String, Map<String, Object>> parentSectorMaps, CompanyFieldForm companyFieldForm, int rowIndex, boolean isNull) { |
| | | if (!isNull) { |
| | | Map<String, Object> parentSectorMap = parentSectorMaps.get(cellStr); |
| | | if (parentSectorMap == null) { |
| | | throw new OwlRuntimeException( |
| | | this.messageAccessor.getMessage(MsgConstants.EXCEL_IMPORT_PARENT_SECTOR_NOT_EXIST, rowIndex)); |
| | |
| | | } |
| | | } |
| | | |
| | | private void setCompanyFormCompanyType(Cell cell, Map<String, Map<String, Object>> companyTypeMaps, CompanyFieldForm companyFieldForm, int rowIndex) { |
| | | if (cell != null) { |
| | | Map<String, Object> companyTypeMap = companyTypeMaps.get(CommonUtil.convertExcelStringToCell(cell)); |
| | | private void setCompanyFormCompanyType(String cellStr, Map<String, Map<String, Object>> companyTypeMaps, CompanyFieldForm companyFieldForm, int rowIndex, boolean isNull) { |
| | | if (!isNull) { |
| | | Map<String, Object> companyTypeMap = companyTypeMaps.get(cellStr); |
| | | if (companyTypeMap == null) { |
| | | throw new OwlRuntimeException( |
| | | this.messageAccessor.getMessage(MsgConstants.EXCEL_IMPORT_COMPANY_TYPE_NOT_EXIST, rowIndex)); |
| | |
| | | } |
| | | } |
| | | |
| | | private void setCompanyFormManager(Cell cell, CompanyFieldForm companyFieldForm, int rowIndex) { |
| | | if (cell != null) { |
| | | companyFieldForm.setManager(CommonUtil.convertExcelStringToCell(cell)); |
| | | private void setCompanyFormManager(String manager, CompanyFieldForm companyFieldForm, boolean isNull) { |
| | | if (!isNull) { |
| | | companyFieldForm.setManager(manager); |
| | | } |
| | | } |
| | | |
| | | private void setCompanyFormEmail(Cell cell, CompanyFieldForm companyFieldForm, int rowIndex) { |
| | | if (cell != null) { |
| | | companyFieldForm.setEmail(CommonUtil.convertExcelStringToCell(cell)); |
| | | private void setCompanyFormEmail(String email, CompanyFieldForm companyFieldForm, boolean isNull) { |
| | | if (!isNull) { |
| | | // 이메일 유효성 검사 |
| | | email = this.verifyEmail(email); |
| | | companyFieldForm.setEmail(email); |
| | | } |
| | | } |
| | | |
| | | private void setCompanyFormTel(Cell cell, CompanyFieldForm companyFieldForm, int rowIndex) { |
| | | if (cell != null) { |
| | | companyFieldForm.setTel(CommonUtil.convertExcelStringToCell(cell)); |
| | | /** |
| | | * 이메일 유효성 검사 |
| | | * @param email String |
| | | * @return String |
| | | */ |
| | | private String verifyEmail(String email) { |
| | | if (!Pattern.matches("^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,4}$", email)) { |
| | | throw new OwlRuntimeException(this.messageAccessor.getMessage(MsgConstants.EMAIL_NOT_INVALID)); |
| | | } |
| | | |
| | | if (email.contains(" ")) { |
| | | email = email.replace(" ", ""); |
| | | } |
| | | |
| | | return email; |
| | | } |
| | | |
| | | private void setCompanyFormTel(String tel, CompanyFieldForm companyFieldForm, boolean isNull) { |
| | | if (!isNull) { |
| | | // 연락처 유효성 검사 |
| | | tel = this.verifyTel(tel); |
| | | companyFieldForm.setTel(tel); |
| | | } |
| | | } |
| | | |
| | | private void setCompanyFormHostingName(Cell cell, Map<String, HostingField> hostingFieldMaps, CompanyFieldForm companyFieldForm, int rowIndex) { |
| | | if (cell != null) { |
| | | /** |
| | | * 연락처 유효성 검사 |
| | | * @param tel String |
| | | * @return String |
| | | */ |
| | | private String verifyTel(String tel) { |
| | | if (!Pattern.matches("^[0-9-]{2,20}$", tel)) { |
| | | throw new OwlRuntimeException(this.messageAccessor.getMessage(MsgConstants.TEL_NOT_INVALID)); |
| | | } |
| | | |
| | | HostingField hostingField = hostingFieldMaps.get(CommonUtil.convertExcelStringToCell(cell)); |
| | | if (tel.contains("-")) { |
| | | tel = tel.replace("-", ""); |
| | | } |
| | | if (tel.contains(" ")) { |
| | | tel = tel.replace(" ", ""); |
| | | } |
| | | |
| | | return tel; |
| | | } |
| | | |
| | | private void setCompanyFormHostingName(String cellStr, Map<String, HostingField> hostingFieldMaps, CompanyFieldForm companyFieldForm, int rowIndex, boolean isNull) { |
| | | if (!isNull) { |
| | | HostingField hostingField = hostingFieldMaps.get(cellStr); |
| | | if (hostingField == null) { |
| | | throw new OwlRuntimeException( |
| | | this.messageAccessor.getMessage(MsgConstants.EXCEL_IMPORT_HOSTING_NOT_EXIST, rowIndex)); |
| | |
| | | } |
| | | } |
| | | |
| | | private void setCompanyFormIspName(Cell cell, Map<String, IspField> ispFieldMaps, CompanyFieldForm companyFieldForm, int rowIndex) { |
| | | if (cell != null) { |
| | | |
| | | IspField ispField = ispFieldMaps.get(CommonUtil.convertExcelStringToCell(cell)); |
| | | private void setCompanyFormIspName(String cellStr, Map<String, IspField> ispFieldMaps, CompanyFieldForm companyFieldForm, int rowIndex, boolean isNull) { |
| | | if (!isNull) { |
| | | IspField ispField = ispFieldMaps.get(cellStr); |
| | | if (ispField == null) { |
| | | throw new OwlRuntimeException( |
| | | this.messageAccessor.getMessage(MsgConstants.EXCEL_IMPORT_ISP_NOT_EXIST, rowIndex)); |
| | |
| | | } |
| | | } |
| | | |
| | | private void setCompanyFormName(Cell cell, CompanyFieldForm companyFieldForm, int rowIndex) { |
| | | if (cell == null) { |
| | | throw new OwlRuntimeException( |
| | | this.messageAccessor.getMessage(MsgConstants.EXCEL_IMPORT_COMPANY_NAME_IS_NULL, rowIndex)); |
| | | } |
| | | |
| | | String title = CommonUtil.convertExcelStringToCell(cell); |
| | | |
| | | private void setCompanyFormName(String title, CompanyFieldForm companyFieldForm) { |
| | | // 업체명 유효성 체크 |
| | | this.verifyTitle(title); |
| | | this.verifyTitle(title, null); |
| | | companyFieldForm.setName(title); |
| | | } |
| | | |
| | | private void setCompanyFormUrl(Cell cell, CompanyFieldForm companyFieldForm, int rowIndex) { |
| | | if (cell == null) { |
| | | throw new OwlRuntimeException( |
| | | this.messageAccessor.getMessage(MsgConstants.EXCEL_IMPORT_URL_IS_NULL, rowIndex)); |
| | | } |
| | | String url = CommonUtil.convertExcelStringToCell(cell); |
| | | this.verifyUrl(url, null); //url 유효성 검사 |
| | | private void setCompanyFormUrl(String url, CompanyFieldForm companyFieldForm, boolean isNull) { |
| | | if (!isNull) { |
| | | if (url.contains(" ")) { |
| | | url = url.replace(" ", ""); |
| | | } |
| | | this.verifyUrl(url, null); //url 유효성 검사 |
| | | |
| | | companyFieldForm.setUrl(url); |
| | | companyFieldForm.setUrl(url); |
| | | } |
| | | } |
| | | |
| | | // 업체명 유효성 체크 |
| | | private void verifyTitle(String title) { |
| | | if (StringUtils.isEmpty(title)) { |
| | | private void verifyTitle(String title, Long id) { |
| | | List<CompanyField> companyFields = new ArrayList<>(); |
| | | |
| | | // 업체명 중복 체크 |
| | | |
| | | if (id != null) { //수정 일 경우 |
| | | companyFields = this.companyFieldRepository.findByNameAndIdNot(title, id); |
| | | } else { // 추가 일 경우 |
| | | companyFields = this.companyFieldRepository.findByName(title); |
| | | } |
| | | if (companyFields != null && companyFields.size() > 0) { |
| | | throw new OwlRuntimeException( |
| | | this.messageAccessor.getMessage(MsgConstants.ISSUE_NO_TITLE)); |
| | | this.messageAccessor.getMessage(MsgConstants.COMPANY_NAME_ALREADY_IN_USE)); |
| | | } |
| | | |
| | | // 업체명 빈값 체크 |
| | | if (StringUtils.isEmpty(title)) { |
| | | throw new OwlRuntimeException( |
| | | this.messageAccessor.getMessage(MsgConstants.COMPANY_NO_TITLE)); |
| | | } |
| | | |
| | | // 업체명 길이 체크 |
| | | if (title.length() > 300) { |
| | | throw new OwlRuntimeException( |
| | | this.messageAccessor.getMessage(MsgConstants.ISSUE_TITLE_MAX_LENGTH_OUT)); |
| | | this.messageAccessor.getMessage(MsgConstants.COMPANY_NAME_MAX_LENGTH_OUT)); |
| | | } |
| | | } |
| | | |
| | |
| | | excelInfo.addAttrInfos(new ExportExcelAttrVo("tel", this.messageAccessor.message("companyField.companyTel"), 10, ExportExcelAttrVo.ALIGN_CENTER)); |
| | | excelInfo.addAttrInfos(new ExportExcelAttrVo("email", this.messageAccessor.message("companyField.companyEmail"), 10, ExportExcelAttrVo.ALIGN_CENTER)); |
| | | excelInfo.addAttrInfos(new ExportExcelAttrVo("url", this.messageAccessor.message("companyField.companyUrl"), 10, ExportExcelAttrVo.ALIGN_CENTER)); |
| | | excelInfo.addAttrInfos(new ExportExcelAttrVo("ipRange", this.messageAccessor.message("companyField.companyIp"), 10, ExportExcelAttrVo.ALIGN_CENTER)); |
| | | excelInfo.addAttrInfos(new ExportExcelAttrVo("companyTypeName", this.messageAccessor.message("companyField.companyTypeName"), 10, ExportExcelAttrVo.ALIGN_CENTER)); |
| | | excelInfo.addAttrInfos(new ExportExcelAttrVo("parentSectorName", this.messageAccessor.message("companyField.parentSectorName"), 10, ExportExcelAttrVo.ALIGN_CENTER)); |
| | | excelInfo.addAttrInfos(new ExportExcelAttrVo("childSectorName", this.messageAccessor.message("companyField.childSectorName"), 10, ExportExcelAttrVo.ALIGN_CENTER)); |
| | |
| | | public CompanyField getCompany(Long id) { |
| | | if (id == null) { |
| | | throw new OwlRuntimeException( |
| | | this.messageAccessor.getMessage(MsgConstants.COMPANYFIELD_NOT_EXIST)); |
| | | this.messageAccessor.getMessage(MsgConstants.COMPANY_NOT_EXIST)); |
| | | } |
| | | CompanyField companyField = this.findOne(id); |
| | | |
| | | if (companyField == null) { |
| | | throw new OwlRuntimeException( |
| | | this.messageAccessor.getMessage(MsgConstants.COMPANYFIELD_NOT_EXIST)); |
| | | this.messageAccessor.getMessage(MsgConstants.COMPANY_NOT_EXIST)); |
| | | } |
| | | return companyField; |
| | | } |