From 6c05919c8fdaeca34a81bf0a84e5ae12dc99d1e0 Mon Sep 17 00:00:00 2001 From: jhjang <jhjang@maprex.co.kr> Date: 월, 07 2월 2022 17:58:13 +0900 Subject: [PATCH] - 임포트 로직 수정중 - 인터넷진흥원 설정파일 수정 --- src/main/java/kr/wisestone/owl/service/impl/IssueServiceImpl.java | 329 ++++++++++++++++++++++------------------------ src/main/resources/system_prod.properties | 1 src/main/java/kr/wisestone/owl/util/CommonUtil.java | 3 src/main/resources/system_test.properties | 65 +++++--- src/main/java/kr/wisestone/owl/util/DateUtil.java | 4 src/main/java/kr/wisestone/owl/constant/MsgConstants.java | 1 src/main/webapp/WEB-INF/i18n/messages_ko_KR.properties | 1 7 files changed, 205 insertions(+), 199 deletions(-) diff --git a/src/main/java/kr/wisestone/owl/constant/MsgConstants.java b/src/main/java/kr/wisestone/owl/constant/MsgConstants.java index 5db2622..ba87674 100644 --- a/src/main/java/kr/wisestone/owl/constant/MsgConstants.java +++ b/src/main/java/kr/wisestone/owl/constant/MsgConstants.java @@ -160,6 +160,7 @@ public static final String USER_RETURN_PASSWORD_NOT_PROVIDER_SOCIAL_JOIN_USER = "USER_RETURN_PASSWORD_NOT_PROVIDER_SOCIAL_JOIN_USER"; // 鍮꾨�踰덊샇 李얘린 湲곕뒫�쓣 �냼�뀥 怨꾩젙 媛��엯 �궗�슜�옄�뒗 �궗�슜�븷 �닔 �뾾�뒿�땲�떎. public static final String USER_NOT_USE_ACTIVE_STATUS = "USER_NOT_USE_ACTIVE_STATUS"; // �궗�슜�옄�뒗 �솢�꽦 �긽�깭媛� �븘�땲硫� 濡쒓렇�씤�븷 �닔 �뾾�뒿�땲�떎. + public static final String EXCEL_IMPORT_ERROR = "EXCEL_IMPORT_ERROR"; // �뿊�� �엫�룷�듃 �삤瑜섏엯�땲�떎. public static final String EXCEL_NOT_EXTENSION = "EXCEL_NOT_EXTENSION"; // �뿊�� �뙆�씪 �솗�옣�옄 (xlsx)留� �뾽濡쒕뱶媛� 媛��뒫�빀�땲�떎. public static final String EXCEL_DOWNLOAD_MAX_ROWS_OVER = "EXCEL_DOWNLOAD_MAX_ROWS_OVER"; // 寃��깋�맂 �뿊�� �뻾�씠 1,000嫄댁쓣 珥덇낵�븯�뿬 �떎�슫濡쒕뱶 �븷 �닔 �뾾�뒿�땲�떎. 寃��깋 議곌굔�쓣 �궗�슜�븯�뿬 1,000 嫄� �씠�븯濡� �떎�슫濡쒕뱶瑜� 吏꾪뻾�빐�빞 �빀�땲�떎. public static final String EXCEL_IMPORT_MAX_ROWS_OVER = "EXCEL_IMPORT_MAX_ROWS_OVER"; // �뿊�� �뾽濡쒕뱶濡� �씠�뒋 �벑濡앹� 理쒕� 1,000 嫄닿퉴吏�留� 媛��뒫�빀�땲�떎. diff --git a/src/main/java/kr/wisestone/owl/service/impl/IssueServiceImpl.java b/src/main/java/kr/wisestone/owl/service/impl/IssueServiceImpl.java index 8e87053..45418f0 100644 --- a/src/main/java/kr/wisestone/owl/service/impl/IssueServiceImpl.java +++ b/src/main/java/kr/wisestone/owl/service/impl/IssueServiceImpl.java @@ -46,6 +46,7 @@ import javax.servlet.http.HttpServletRequest; import java.io.IOException; +import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.*; @@ -867,15 +868,28 @@ } } - // �궇吏� �쑀�슚�꽦 泥댄겕 + /** + * �궇吏� �쑀�슚�꽦 泥댄겕 + * @param startDate �떆�옉 �씪�옄(臾몄옄) + * @param completeDate 醫낅즺 �씪�옄(臾몄옄) + */ private void checkStartCompleteDate(String startDate, String completeDate) { if (!StringUtils.isEmpty(startDate) && !StringUtils.isEmpty(completeDate)) { Date start = DateUtil.convertStrToDate(startDate, "yy-MM-dd"); Date end = DateUtil.convertStrToDate(completeDate, "yy-MM-dd"); - if (start.getTime() > end.getTime()) { - throw new OwlRuntimeException( - this.messageAccessor.getMessage(MsgConstants.DATE_PICKER_NOT_AVAILABLE)); - } + checkStartCompleteDate(start, end); + } + } + + /** + * �궇吏� �쑀�슚�꽦 泥댄겕 + * @param start �떆�옉 �씪�옄 + * @param end 醫낅즺 �씪�옄 + */ + private void checkStartCompleteDate(Date start, Date end) { + if (start.getTime() > end.getTime()) { + throw new OwlRuntimeException( + this.messageAccessor.getMessage(MsgConstants.DATE_PICKER_NOT_AVAILABLE)); } } @@ -3451,36 +3465,30 @@ /** * cell NULL 泥댄겕 �븿�닔 + * 臾몄옄�삎�떇 cell 泥댄겕 * @param cell Cell * @return boolean */ - private Boolean cellNullCheck (Cell cell, int rowIndex) { - boolean result = false; - - // 臾몄옄�삎�떇�씤吏� 泥댄겕 - if (cell != null && cell.getCellType() != Cell.CELL_TYPE_BLANK && cell.getCellType() != Cell.CELL_TYPE_STRING) { - throw new OwlRuntimeException( - this.messageAccessor.getMessage(MsgConstants.EXCEL_IMPORT_NOT_STRING_TYPE, rowIndex)); + private Boolean cellNullCheck (Cell cell) { + if (cell != null ) { + if (cell.getCellType() != Cell.CELL_TYPE_BLANK) { + if (cell.getCellType() == Cell.CELL_TYPE_STRING && cell.getStringCellValue() != null) { + return false; + } + } } - // 怨듬갚 �젣嫄� - if (cell != null && cell.getStringCellValue() != null) { - cell.setCellValue(cell.getStringCellValue().trim()); - } - - if (cell != null && cell.getCellType() != Cell.CELL_TYPE_BLANK && cell.getCellType() == cell.CELL_TYPE_STRING - && cell.getStringCellValue() != null && !cell.getStringCellValue().equals("")) { - result = true; - } - - return result; + return true; } + + + // �뿊�� �븘�뱶�뿉 �엳�뒗 �젙蹂대�� �씠�뒋 form �쑝濡� �삷湲대떎. private IssueForm setIssueFormToExcelField(Row row, int rowIndex, Map<String, Priority> priorityMaps, Map<String, Severity> severityMaps, Map<String, DepartmentVo> departmentMaps, Map<String, CustomField> customFieldMaps, Map<String, CompanyField> companyFieldMaps, Map<String, IspField> ispFieldMaps, Map<String, HostingField> hostingFieldMaps, - List<String> headers) { + List<String> headers) throws ParseException { IssueForm issueForm = new IssueForm(); issueForm.setRegisterId(this.webAppUtil.getLoginId()); Project project = null; @@ -3488,30 +3496,48 @@ // �젣紐�, �궡�슜, �봽濡쒖젥�듃 �궎, �씠�뒋 ���엯, �슦�꽑�닚�쐞, 以묒슂�룄, �떞�떦�옄, �떆�옉�씪, 醫낅즺�씪, �궗�슜�옄 �젙�쓽 �븘�뱶 for (int cellIndex = 0; cellIndex < headers.size(); cellIndex++) { Cell cell = row.getCell(cellIndex); + boolean isNull = cellNullCheck(cell); + + String cellStr = ""; + if (!isNull) { + cellStr = CommonUtil.convertExcelStringToCell(cell); + + // 怨듬갚 �젣嫄� + cell.setCellValue(cellStr.trim()); + } else { + cell.setCellValue(cellStr); + } + switch (cellIndex) { case 0: // �씠�뒋 �젣紐⑹쓣 IssueForm �뿉 ���옣�븳�떎. - this.setIssueFormTitle(cell, issueForm, rowIndex); + if (isNull) { + throw new OwlRuntimeException( + this.messageAccessor.getMessage(MsgConstants.EXCEL_IMPORT_ISSUE_TITLE_IS_NULL, rowIndex)); + } + this.setIssueFormTitle(cellStr, issueForm, rowIndex); break; case 1: // �궡�슜 - if (cellNullCheck(cell, rowIndex)) { - issueForm.setDescription(CommonUtil.convertExcelStringToCell(cell)); - } else { - // null �엯�젰 諛⑹� - issueForm.setDescription(""); - } - + issueForm.setDescription(cellStr); break; case 2: // �슦�꽑�닚�쐞瑜� IssueForm �뿉 ���옣�븳�떎. - this.setIssueFormPriority(cell, priorityMaps, issueForm, rowIndex); + if (isNull) { + throw new OwlRuntimeException( + this.messageAccessor.getMessage(MsgConstants.EXCEL_IMPORT_PRIORITY_IS_NULL, rowIndex)); + } + this.setIssueFormPriority(cellStr, priorityMaps, issueForm, rowIndex); break; case 3: // 以묒슂�룄瑜� IssueForm �뿉 ���옣�븳�떎. - this.setIssueFormSeverity(cell, severityMaps, issueForm, rowIndex); + if (isNull) { + throw new OwlRuntimeException( + this.messageAccessor.getMessage(MsgConstants.EXCEL_IMPORT_SEVERITY_IS_NULL, rowIndex)); + } + this.setIssueFormSeverity(cellStr, severityMaps, issueForm, rowIndex); break; /*case 6: // �떞�떦�옄瑜� IssueForm �뿉 ���옣�븳�떎. @@ -3519,47 +3545,37 @@ break;*/ case 4: // �떆�옉�씪�쓣 IssueForm �뿉 ���옣�븳�떎. - if (cell != null && cell.getCellType() != Cell.CELL_TYPE_BLANK) { - this.setIssueFormPeriod(cell, issueForm, true, rowIndex); - } + this.setIssueFormPeriod(cellStr, issueForm, true, rowIndex, isNull); break; case 5: // 醫낅즺�씪�쓣 IssueForm �뿉 ���옣�븳�떎. - if (cell != null && cell.getCellType() != Cell.CELL_TYPE_BLANK) { - this.setIssueFormPeriod(cell, issueForm, false, rowIndex); - } + this.setIssueFormPeriod(cellStr, issueForm, false, rowIndex, isNull); break; case 6: // �뾽泥대�� IssueForm �뿉 ���옣�븳�떎. - if (cellNullCheck(cell, rowIndex)) { - this.setIssueFormCompanyField(cell, companyFieldMaps, issueForm, rowIndex); - } + this.setIssueFormCompanyField(cellStr, companyFieldMaps, issueForm, rowIndex); break; case 7: // ISP瑜� IssueForm �뿉 ���옣�븳�떎. - if (cellNullCheck(cell, rowIndex)) { - this.setIssueFormIspField(cell, ispFieldMaps, issueForm, rowIndex); - } + this.setIssueFormIspField(cellStr, ispFieldMaps, issueForm, rowIndex); break; case 8: // �샇�뒪�똿�쓣 IssueForm �뿉 ���옣�븳�떎. - if (cellNullCheck(cell, rowIndex)) { - this.setIssueFormHostingField(cell, hostingFieldMaps, issueForm, rowIndex); - } + this.setIssueFormHostingField(cellStr, hostingFieldMaps, issueForm, rowIndex); break; default: // 9踰� 遺��꽣�뒗 �궗�슜�옄 �젙�쓽 �븘�뱶. �궗�슜�옄 �젙�쓽 �븘�뱶 �젙蹂대�� IssueForm �뿉 ���옣�븳�떎. - this.setIssueFormCustomFieldValue(cell, customFieldMaps, issueForm, headers.get(cellIndex), rowIndex); + this.setIssueFormCustomFieldValue(cellStr, customFieldMaps, issueForm, headers.get(cellIndex), rowIndex); } } return issueForm; } - private void setIssueFormHostingField(Cell cell, Map<String, HostingField> hostingFieldMaps, IssueForm issueForm, int rowIndex) { - if (cell != null) { + private void setIssueFormHostingField(String cell, Map<String, HostingField> hostingFieldMaps, IssueForm issueForm, int rowIndex) { + if (cell.length() > 0) { Map<String, Object> issueHostingFields = new HashMap<>(); - HostingField hostingFieldMap = hostingFieldMaps.get(CommonUtil.convertExcelStringToCell(cell)); + HostingField hostingFieldMap = hostingFieldMaps.get(cell); if (hostingFieldMap == null) { throw new OwlRuntimeException( this.messageAccessor.getMessage(MsgConstants.EXCEL_IMPORT_HOSTING_NOT_EXIST, rowIndex)); @@ -3569,10 +3585,10 @@ } } - private void setIssueFormIspField(Cell cell, Map<String, IspField> ispFieldMaps, IssueForm issueForm, int rowIndex) { - if (cell != null) { + private void setIssueFormIspField(String cell, Map<String, IspField> ispFieldMaps, IssueForm issueForm, int rowIndex) { + if (cell.length() > 0) { Map<String, Object> issueIspFields = new HashMap<>(); - IspField ispFieldMap = ispFieldMaps.get(CommonUtil.convertExcelStringToCell(cell)); + IspField ispFieldMap = ispFieldMaps.get(cell); if (ispFieldMap == null) { throw new OwlRuntimeException( this.messageAccessor.getMessage(MsgConstants.EXCEL_IMPORT_ISP_NOT_EXIST, rowIndex)); @@ -3582,10 +3598,10 @@ } } - private void setIssueFormCompanyField(Cell cell, Map<String, CompanyField> companyFieldMaps, IssueForm issueForm, int rowIndex) { - if (cell != null) { + private void setIssueFormCompanyField(String cell, Map<String, CompanyField> companyFieldMaps, IssueForm issueForm, int rowIndex) { + if (cell.length() > 0) { Map<String, Object> issueCompanyFields = new HashMap<>(); - CompanyField companyFieldMap = companyFieldMaps.get(CommonUtil.convertExcelStringToCell(cell)); + CompanyField companyFieldMap = companyFieldMaps.get(cell); if (companyFieldMap == null) { throw new OwlRuntimeException( this.messageAccessor.getMessage(MsgConstants.EXCEL_IMPORT_COMPANY_NOT_EXIST, rowIndex)); @@ -3596,14 +3612,7 @@ } // �씠�뒋 �젣紐⑹쓣 IssueForm �뿉 ���옣�븳�떎. - private void setIssueFormTitle(Cell cell, IssueForm issueForm, int rowIndex) { - if (!cellNullCheck(cell, rowIndex)) { - throw new OwlRuntimeException( - this.messageAccessor.getMessage(MsgConstants.EXCEL_IMPORT_ISSUE_TITLE_IS_NULL, rowIndex)); - } - - String title = CommonUtil.convertExcelStringToCell(cell); - + private void setIssueFormTitle(String title, IssueForm issueForm, int rowIndex) { // �젣紐� �쑀�슚�꽦 泥댄겕 this.verifyTitle(title); issueForm.setTitle(title); @@ -3644,13 +3653,8 @@ // �슦�꽑�닚�쐞瑜� IssueForm �뿉 ���옣�븳�떎. - private void setIssueFormPriority(Cell cell, Map<String, Priority> priorityMaps, IssueForm issueForm, int rowIndex) { - if (!cellNullCheck(cell, rowIndex)) { - throw new OwlRuntimeException( - this.messageAccessor.getMessage(MsgConstants.EXCEL_IMPORT_PRIORITY_IS_NULL, rowIndex)); - } - - Priority priority = priorityMaps.get(CommonUtil.convertExcelStringToCell(cell)); + private void setIssueFormPriority(String priorityStr, Map<String, Priority> priorityMaps, IssueForm issueForm, int rowIndex) { + Priority priority = priorityMaps.get(priorityStr); if (priority == null) { throw new OwlRuntimeException( @@ -3661,13 +3665,8 @@ } // 以묒슂�룄瑜� IssueForm �뿉 ���옣�븳�떎. - private void setIssueFormSeverity(Cell cell, Map<String, Severity> severityMaps, IssueForm issueForm, int rowIndex) { - if (!cellNullCheck(cell, rowIndex)) { - throw new OwlRuntimeException( - this.messageAccessor.getMessage(MsgConstants.EXCEL_IMPORT_SEVERITY_IS_NULL, rowIndex)); - } - - Severity severity = severityMaps.get(CommonUtil.convertExcelStringToCell(cell)); + private void setIssueFormSeverity(String strSeverity, Map<String, Severity> severityMaps, IssueForm issueForm, int rowIndex) { + Severity severity = severityMaps.get(strSeverity); if (severity == null) { throw new OwlRuntimeException( @@ -3693,33 +3692,19 @@ } } // �떆�옉�씪, 醫낅즺�씪�쓣 IssueForm �뿉 ���옣�븳�떎. - private void setIssueFormPeriod(Cell cell, IssueForm issueForm, Boolean checkStartDate, int rowIndex) { - if (cell != null && !cell.toString().equals("")) { + private void setIssueFormPeriod(String periodDate, IssueForm issueForm, Boolean checkStartDate, int rowIndex, boolean isNull) throws ParseException { + if (!isNull) { - // 媛믪씠 怨듬갚�씠硫� 以묒� - String cellValue = CommonUtil.convertExcelStringToCell(cell); - if (StringUtils.isEmpty(cellValue) || cell.toString().equals("null")) { - return; - } - - if (cell.toString().length() < 10 && cell.toString().contains("-")) { //�궇吏� �삎�떇 泥댄겕 - throw new OwlRuntimeException( - this.messageAccessor.getMessage(MsgConstants.EXCEL_IMPORT_PERIOD_NOT_DASH, rowIndex)); - } - - Date startDate; - - try { - startDate = cell.getDateCellValue(); - } catch (Exception e) { + Date startDate = DateUtil.convertStrToDateOnly(periodDate); + if (startDate == null) { throw new OwlRuntimeException( this.messageAccessor.getMessage(MsgConstants.EXCEL_IMPORT_PERIOD_NOT_VALIDITY_EMPTY, rowIndex)); } if (checkStartDate) { - issueForm.setStartDate(DateUtil.convertDateToStr(startDate, "yyyy-MM-dd")); + issueForm.setStartDate(periodDate); } else { - issueForm.setCompleteDate(DateUtil.convertDateToStr(startDate, "yyyy-MM-dd")); + issueForm.setCompleteDate(periodDate); // 醫낅즺�씪留� �엯�젰 �뻽�쓣 寃쎌슦 if (issueForm.getCompleteDate() != null && issueForm.getStartDate() == null) { @@ -3739,93 +3724,89 @@ } // �궗�슜�옄 �젙�쓽 �븘�뱶 �젙蹂대�� IssueForm �뿉 ���옣�븳�떎.- - private void setIssueFormCustomFieldValue(Cell cell, Map<String, CustomField> customFieldMaps, IssueForm issueForm, String customFieldName, int rowIndex) { - if (cell != null) { - String cellValue = CommonUtil.convertExcelStringToCell(cell); - Map<String, Object> issueCustomFieldMap = new HashMap<>(); - CustomField customField = customFieldMaps.get(customFieldName); + private void setIssueFormCustomFieldValue(String cellValue, Map<String, CustomField> customFieldMaps, IssueForm issueForm, String customFieldName, int rowIndex) { + Map<String, Object> issueCustomFieldMap = new HashMap<>(); + CustomField customField = customFieldMaps.get(customFieldName); - if (customField == null) { - throw new OwlRuntimeException( - this.messageAccessor.getMessage(MsgConstants.EXCEL_IMPORT_HEADER_CUSTOM_FIELD_NOT_EXIST, rowIndex)); - } - // �궗�슜�옄 �젙�쓽 �븘�뱶 媛믪씠 怨듬갚�씠硫� 以묒� - if (StringUtils.isEmpty(cellValue)) { - return; - } + if (customField == null) { + throw new OwlRuntimeException( + this.messageAccessor.getMessage(MsgConstants.EXCEL_IMPORT_HEADER_CUSTOM_FIELD_NOT_EXIST, rowIndex)); + } + // �궗�슜�옄 �젙�쓽 �븘�뱶 媛믪씠 怨듬갚�씠硫� 以묒� + if (StringUtils.isEmpty(cellValue)) { + return; + } - boolean validity = false; + boolean validity = false; - switch (customField.getCustomFieldType()) { - case INPUT: - case NUMBER: - case DATETIME: - case IP_ADDRESS: - case EMAIL: - case SITE: - case TEL: - if (customField.getCustomFieldType() != INPUT && cellValue.length() > 100) { //INPUT ���엯�� 100�옄 �젣�븳 �뾾�쓬 + switch (customField.getCustomFieldType()) { + case INPUT: + case NUMBER: + case DATETIME: + case IP_ADDRESS: + case EMAIL: + case SITE: + case TEL: + if (customField.getCustomFieldType() != INPUT && cellValue.length() > 100) { //INPUT ���엯�� 100�옄 �젣�븳 �뾾�쓬 + throw new OwlRuntimeException( + this.messageAccessor.getMessage(MsgConstants.CUSTOM_FIELD_TEXT_TYPE_MAX_LENGTH_OUT)); + } + + if (customField.getCustomFieldType() == DATETIME) { //DATETIME�씪 寃쎌슦 format 蹂�寃� + Date date = DateUtil.convertStrToDate(cellValue); + if (date == null) { throw new OwlRuntimeException( - this.messageAccessor.getMessage(MsgConstants.CUSTOM_FIELD_TEXT_TYPE_MAX_LENGTH_OUT)); + this.messageAccessor.getMessage(MsgConstants.EXCEL_IMPORT_DATETIME_NOT_DASH, rowIndex)); } + } - if (customField.getCustomFieldType() == DATETIME) { //DATETIME�씪 寃쎌슦 format 蹂�寃� - if (cell.toString().length() < 10 && cell.toString().contains("-")) { //�궇吏� �삎�떇 泥댄겕 - throw new OwlRuntimeException( - this.messageAccessor.getMessage(MsgConstants.EXCEL_IMPORT_DATETIME_NOT_DASH, rowIndex)); - } - Date date = cell.getDateCellValue(); - cellValue = new SimpleDateFormat("yyyy-MM-dd H:mm:ss").format(date); + issueCustomFieldMap.put("customFieldId", customField.getId()); + issueCustomFieldMap.put("useValue", cellValue); + issueForm.addIssueCustomFields(issueCustomFieldMap); + break; + case SINGLE_SELECT: + // 媛� �쑀�슚�꽦 泥댄겕 + for (CustomFieldValue customFieldValue : customField.getCustomFieldValues()) { + if (customFieldValue.getValue().equals(cellValue)) { + validity = true; + break; } + } - issueCustomFieldMap.put("customFieldId", customField.getId()); - issueCustomFieldMap.put("useValue", cellValue); - issueForm.addIssueCustomFields(issueCustomFieldMap); - break; - case SINGLE_SELECT: - // 媛� �쑀�슚�꽦 泥댄겕 + if (!validity) { + throw new OwlRuntimeException( + this.messageAccessor.getMessage(MsgConstants.EXCEL_CUSTOM_FIELD_VALUE_NOT_VALIDITY, rowIndex)); + } + + issueCustomFieldMap.put("customFieldId", customField.getId()); + issueCustomFieldMap.put("useValue", cellValue); + issueForm.addIssueCustomFields(issueCustomFieldMap); + + break; + case MULTI_SELECT: + // 媛� �쑀�슚�꽦 泥댄겕 + String[] useValues = cellValue.split("#"); + // �빐, �떖 + for (String useValue : useValues) { for (CustomFieldValue customFieldValue : customField.getCustomFieldValues()) { - if (customFieldValue.getValue().equals(cellValue)) { + + if (customFieldValue.getValue().equals(useValue)) { validity = true; - break; + Map<String, Object> multiValueMap = new HashMap<>(); + multiValueMap.put("customFieldId", customField.getId()); + multiValueMap.put("useValue", useValue); + issueForm.addIssueCustomFields(multiValueMap); } + } + } - if (!validity) { - throw new OwlRuntimeException( - this.messageAccessor.getMessage(MsgConstants.EXCEL_CUSTOM_FIELD_VALUE_NOT_VALIDITY, rowIndex)); - } + if (!validity) { + throw new OwlRuntimeException( + this.messageAccessor.getMessage(MsgConstants.EXCEL_CUSTOM_FIELD_VALUE_NOT_VALIDITY, rowIndex)); + } - issueCustomFieldMap.put("customFieldId", customField.getId()); - issueCustomFieldMap.put("useValue", cellValue); - issueForm.addIssueCustomFields(issueCustomFieldMap); - - break; - case MULTI_SELECT: - // 媛� �쑀�슚�꽦 泥댄겕 - String[] useValues = cellValue.split("#"); - // �빐, �떖 - for (String useValue : useValues) { - for (CustomFieldValue customFieldValue : customField.getCustomFieldValues()) { - - if (customFieldValue.getValue().equals(useValue)) { - validity = true; - Map<String, Object> multiValueMap = new HashMap<>(); - multiValueMap.put("customFieldId", customField.getId()); - multiValueMap.put("useValue", useValue); - issueForm.addIssueCustomFields(multiValueMap); - } - - } - } - - if (!validity) { - throw new OwlRuntimeException( - this.messageAccessor.getMessage(MsgConstants.EXCEL_CUSTOM_FIELD_VALUE_NOT_VALIDITY, rowIndex)); - } - - break; - } + break; } } diff --git a/src/main/java/kr/wisestone/owl/util/CommonUtil.java b/src/main/java/kr/wisestone/owl/util/CommonUtil.java index 079f3a4..af20eb8 100644 --- a/src/main/java/kr/wisestone/owl/util/CommonUtil.java +++ b/src/main/java/kr/wisestone/owl/util/CommonUtil.java @@ -40,6 +40,7 @@ import java.security.MessageDigest; import java.security.spec.KeySpec; import java.text.DecimalFormat; +import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.*; import java.util.regex.Matcher; @@ -962,7 +963,7 @@ double doubleValue = cell.getNumericCellValue(); int intValue; - if (doubleValue%1 == 0) { + if (doubleValue % 1 == 0) { intValue = (int)doubleValue; cellValue = intValue + ""; } diff --git a/src/main/java/kr/wisestone/owl/util/DateUtil.java b/src/main/java/kr/wisestone/owl/util/DateUtil.java index 0d67825..ab66168 100644 --- a/src/main/java/kr/wisestone/owl/util/DateUtil.java +++ b/src/main/java/kr/wisestone/owl/util/DateUtil.java @@ -24,6 +24,10 @@ return convertStrToDate(source, "yyyy-MM-dd HH:mm:ss"); } + public static Date convertStrToDateOnly(String source) { + return convertStrToDate(source, "yyyy-MM-dd"); + } + public static Date convertStrToDate(String source, String pattern) { return convertStrToDate(source, pattern, Locale.KOREA); } diff --git a/src/main/resources/system_prod.properties b/src/main/resources/system_prod.properties index 3b2d910..ef61c3d 100644 --- a/src/main/resources/system_prod.properties +++ b/src/main/resources/system_prod.properties @@ -40,6 +40,7 @@ # email \uC124\uC815 email.host=221.149.161.20 email.port=25 +email.sender=KISA email.userName=detect@krcert.or.kr email.password=kisc%2004 email.transport.protocol=smtp diff --git a/src/main/resources/system_test.properties b/src/main/resources/system_test.properties index 3013451..38a1b11 100644 --- a/src/main/resources/system_test.properties +++ b/src/main/resources/system_test.properties @@ -1,42 +1,54 @@ # mariaDB \uC124\uC815 -db.primary.url=jdbc:mariadb://IP\uC8FC\uC18C \uC785\uB825/dev_db?allowMultiQueries=true -db.replica1.url=jdbc:mariadb://IP\uC8FC\uC18C \uC785\uB825/dev_db?allowMultiQueries=true +db.primary.driverName=org.mariadb.jdbc.Driver +db.primary.url=jdbc:mariadb://127.0.0.1/prod_db?allowMultiQueries=true +db.replica1.url=jdbc:mariadb://127.0.0.1/prod_db?allowMultiQueries=true db.replica2.url= db.replica3.url= db.replica4.url= db.replica5.url= -db.primary.userName=ID -db.primary.password=\uBE44\uBC00\uBC88\uD638 +db.primary.userName=root +db.primary.password=maponrex # elasticSearch \uC124\uC815 elastic.search.hosts=http://52.78.198.178:9200 # kafka \uC124\uC815 -kafka.bootstrap.servers=ec2-52-78-150-61.ap-northeast-2.compute.amazonaws.com:9092,ec2-52-79-150-7.ap-northeast-2.compute.amazonaws.com:9092,ec2-52-79-193-191.ap-northeast-2.compute.amazonaws.com:9092 -kafka.consumer.group.id=test-common-group -kafka.common.topic=test-common-topic +# use kafka or not +# kafka by zenith at 20200625 +use.kafka=false + +# kafka.bootstrap.servers=ec2-52-78-150-61.ap-northeast-2.compute.amazonaws.com:9092,ec2-52-79-150-7.ap-northeast-2.compute.amazonaws.com:9092,ec2-52-79-193-191.ap-northeast-2.compute.amazonaws.com:9092 +kafka.bootstrap.servers=127.0.0.2:9092 +kafka.consumer.group.id=dev-common-group +kafka.common.topic=dev-common-topic # redis \uC124\uC815 -# test-session-01.9pesbb.ng.0001.apn2.cache.amazonaws.com -redis.host=192.168.0.64 +redis.host=127.0.0.1 redis.port=6379 -redis.common.topic=test-common-topic +redis.common.topic=dev-common-topic +spring.session.timeout=36000 + + +# License Key \uC124\uC815 +owl.license.key=1234 # mail attached file path mail.file.path=C:/downloads/ mail.account= mail.password= -# email send +# email \uC124\uC815 email.host=mail.g2works.kr email.port=587 +email.sender=OWL-ITS email.userName=supportowl@wisestone.kr email.password=Stone0620** email.transport.protocol=smtp email.smtp.auth=true email.smtp.starttle.enable=true email.debug=true +email.sendUrl=http://localhost:8080 # \uD68C\uACC4 \uB2F4\uB2F9\uC790 \uACB0\uC81C \uCDE8\uC18C \uC54C\uB9BC - \uD68C\uACC4 \uB2F4\uB2F9\uC790\uB294 \uAF2D \uC2DC\uC2A4\uD15C\uC5D0 \uAC00\uC785 \uB418\uC5B4 \uC788\uC5B4\uC57C \uD55C\uB2E4. payment.cancel.manager.email=jslee1@wisestone.kr @@ -48,28 +60,35 @@ total.statistics.email=jslee1@wisestone.kr # saas service max user & use period -saas.maxUser=10 -saas.period=30 +# packageteyp 1 : lite (~200 Users), 2 : medium (~500 users), 3 : Enterprice (~1000 users) (0 \uC740 demo version) +saas.packagetype=1 + +saas.maxUser=200 +saas.period=3650 # \uD658\uC728 -saas.usdkrw=1163 +saas.usdkrw=1183 # use aws or not # added by zenith at 20200623 use.aws=false -# aws upload path -attached.file.path=/test-upload/ -profile.file.path=/test-profile +use.scheduler=false + +# upload path +attached.file.path=/dev-upload/ +profile.file.path=/dev-profile + # aws bucket name aws.bucket.name=wisestone-test # aws bucket access key aws.access.key=AKIARX6BJQMZKUYEEJVD aws.access.password=eAQvouvSJJFl47h2dkMJji/6OtzsGBGF4h9Df3qH - # aws s3 url -aws.s3.url=https://s3.ap-northeast-2.amazonaws.com/ -# OAuth 2.0 \uC778\uC99D \uC815\uBCF4 +# aws.s3.url=https://s3.ap-northeast-2.amazonaws.com/ +aws.s3.url=http://localhost:8081/ + +# OAuth 2.0 \uC778\uC99D \uC815\uBCF4 \uC124\uC815 OAuth.google.clientId=545115864261-lumkhr0qhei643koiva5b130410s032e.apps.googleusercontent.com OAuth.google.clientSecret=olvwp9OipUzaAj86Hx5HKPE5 OAuth.google.redirectUri=http://localhost:8080/googleOAuth2CallBack @@ -77,14 +96,12 @@ OAuth.naver.clientId=Trl8vV30ctsUDlgGoWqZ OAuth.naver.clientSecret=suJXIbB8dz -OAuth.kakao.clientId=13d56a63b9b9b1003d779261ce1651e3 -OAuth.kakao.clientSecret=kumDB7dtnBumpjydGZPqScl7Vd1tezcq +OAuth.kakao.clientId=8db70e7979edc86b76c7b1d33312282d +OAuth.kakao.clientSecret=yIpsPh81H326UL7jdcXAu4OhfmKnmmpx OAuth.facebook.clientId=1967163700251105 OAuth.facebook.clientSecret=34c4c009bc85caf08a6e27ecfe65744d OAuth.facebook.redirectUri=https://www.owlsolution.io/facebookOAuth2CallBack OAuth.common.state=state_parameter_owl_its_value - - diff --git a/src/main/webapp/WEB-INF/i18n/messages_ko_KR.properties b/src/main/webapp/WEB-INF/i18n/messages_ko_KR.properties index a27bbd4..7313108 100644 --- a/src/main/webapp/WEB-INF/i18n/messages_ko_KR.properties +++ b/src/main/webapp/WEB-INF/i18n/messages_ko_KR.properties @@ -47,6 +47,7 @@ WORKSPACE_INCLUDE_DISABLED = \uD574\uB2F9 \uC5C5\uBB34 \uACF5\uAC04\uC5D0\uC11C \uBE44\uD65C\uC131 \uC0C1\uD0DC\uC774\uBBC0\uB85C \uC0DD\uC131, \uC218\uC815, \uC0AD\uC81C, \uC774\uBBF8\uC9C0/\uC5D1\uC140 \uB2E4\uC6B4\uB85C\uB4DC \uAE30\uB2A5\uC744 \uC0AC\uC6A9\uD560 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4. ATTACHED_FILE_NOT_EXIST = \uCCA8\uBD80 \uD30C\uC77C \uC815\uBCF4\uB97C \uCC3E\uC744 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4. +EXCEL_IMPORT_ERROR = \uC5D1\uC140 \uC784\uD3EC\uD2B8 \uC624\uB958\uC785\uB2C8\uB2E4. {0}\uC904 {1}\uCEEC\uB7FC START_ISSUE_STATUS_NOT_EXIST = \uC2DC\uC791\uD558\uB294 \uC774\uC288 \uC0C1\uD0DC\uAC00 \uC874\uC7AC\uD558\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4. END_ISSUE_STATUS_NOT_EXIST = \uC885\uB8CC\uD558\uB294 \uC774\uC288 \uC0C1\uD0DC\uAC00 \uC874\uC7AC\uD558\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4. -- Gitblit v1.8.0