OWL ITS + 탐지시스템(인터넷 진흥원)
- 이슈 excel import 오류 수정 및 유효성 검사 추가
- 이슈 excel import시 프로젝트에 속한 이슈유형 리스트만 보여주도록 수정
6개 파일 변경됨
39 ■■■■ 파일 변경됨
src/main/java/kr/wisestone/owl/service/impl/IssueServiceImpl.java 24 ●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/webapp/scripts/app/common/common.controller.js 1 ●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/webapp/scripts/app/issue/issueAdd.controller.js 2 ●●● 패치 | 보기 | raw | blame | 히스토리
src/main/webapp/scripts/app/issue/issueImportExcel.controller.js 10 ●●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/webapp/scripts/app/issue/issueManager.controller.js 1 ●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/webapp/views/issue/issueExcelImport.html 1 ●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/java/kr/wisestone/owl/service/impl/IssueServiceImpl.java
@@ -46,8 +46,10 @@
import javax.servlet.http.HttpServletRequest;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.*;
import static kr.wisestone.owl.domain.enumType.CustomFieldType.DATETIME;
import static kr.wisestone.owl.domain.enumType.CustomFieldType.INPUT;
@Service
@@ -3338,6 +3340,15 @@
        }
    }
    /**
     * cell NULL 체크 함수
     * @param cell Cell
     * @return boolean
     */
    private Boolean cellNullCheck (Cell cell) {
        return cell != null && cell.getStringCellValue() != null && cell.getCellType() != Cell.CELL_TYPE_BLANK;
    }
    //  엑셀 필드에 있는 정보를 이슈 form 으로 옮긴다.
    private IssueForm setIssueFormToExcelField(Row row, int rowIndex, Map<String, Priority> priorityMaps,
                                               Map<String, Severity> severityMaps, Map<String, DepartmentVo> departmentMaps,
@@ -3356,7 +3367,7 @@
                    break;
                case 1:    //  내용
                    if (cell != null) {
                    if (cellNullCheck(cell)) {
                        issueForm.setDescription(CommonUtil.convertExcelStringToCell(cell));
                    } else {
                        //  null 입력 방지
@@ -3380,13 +3391,13 @@
                    break;*/
                case 4:
                    //  시작일을 IssueForm 에 저장한다.
                    if (cell != null && cell.getCellType() != Cell.CELL_TYPE_BLANK) {
                    if (cellNullCheck(cell)) {
                        this.setIssueFormPeriod(cell, issueForm, true, rowIndex);
                    }
                    break;
                case 5:
                    //  종료일을 IssueForm 에 저장한다.
                    if (cell != null && cell.getCellType() != Cell.CELL_TYPE_BLANK) {
                    if (cellNullCheck(cell)) {
                        this.setIssueFormPeriod(cell, issueForm, false, rowIndex);
                    }
                    break;
@@ -3557,11 +3568,16 @@
                case EMAIL:
                case SITE:
                case TEL:
                    if (customField.getCustomFieldType() != INPUT && cellValue.length() > 100) {
                    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 = 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);
src/main/webapp/scripts/app/common/common.controller.js
@@ -111,6 +111,7 @@
                    $rootScope.issueTypeMenu = null;
                    $rootScope.allIssueList = false;
                    if (issueTypeId == null) {
                        $rootScope.allIssueList = true;
                        moveMenu("issues.list");
                    }else {
                        for (var issueType of $rootScope.workIssueTypes) {
src/main/webapp/scripts/app/issue/issueAdd.controller.js
@@ -853,6 +853,7 @@
                                $scope.vm.form.projects.push(result.data.data);
                                $scope.vm.projectName = result.data.data.name;
                                $scope.fn.getIssueTypeOfProject();
                                $scope.fn.getIssueTypeCustomFields();
                            }
                        }
                        else {
@@ -898,7 +899,6 @@
                        if (result.data.message.status === "success") {
                            $scope.vm.issueTypes = result.data.data;
                            //$scope.fn.getIssueTypeCustomFields();
                        }
                        else {
                            SweetAlert.swal($filter("translate")("issue.failedToIssueTypeListLookup"), result.data.message.message, "error"); // 이슈 타입 목록 조회 실패
src/main/webapp/scripts/app/issue/issueImportExcel.controller.js
@@ -46,9 +46,17 @@
                    $scope.vm.autoCompletePage.issue.totalPage = result.data.page.totalPage;
                }
                $scope.$on("projectListEvent", function (event, result) {
                    $scope.vm.form.projects = result;
                    $scope.fn.getIssueTypes();
                });
                //  이슈 유형 목록
                function getIssueTypes() {
                    IssueType.find($resourceProvider.getContent({},
                    if (!$rootScope.isDefined($scope.vm.form.projects[0])) {
                        return;
                    }
                    IssueType.find($resourceProvider.getContent({projectId : $scope.vm.form.projects[0].id},
                        $resourceProvider.getPageContent(0, 1000))).then(function (result) {
                        if (result.data.message.status === "success") {
src/main/webapp/scripts/app/issue/issueManager.controller.js
@@ -57,6 +57,7 @@
                $scope.$on("getAllIssuePageList", function (event, args) {
                    $scope.vm.pageTitle = $filter("translate")("common.allIssueList");
                    $rootScope.allIssueList = true;
                });
                function start() {
src/main/webapp/views/issue/issueExcelImport.html
@@ -22,6 +22,7 @@
                                                page="vm.autoCompletePage.project.page"
                                                total-page="vm.autoCompletePage.project.totalPage"
                                                input-disabled="false"
                                                broad-cast="projectListEvent"
                                                extra-settings="{ displayProp : 'name' , idProp : 'id', imageable : false, imagePathProp : '',
                                                type : '', maxlength : 200, autoResize : true, stopRemoveBodyEvent : true }"></js-autocomplete-single>
                    </div>