OWL ITS + 탐지시스템(인터넷 진흥원)
- 상위 이슈 검색시 하위 이슈는 검색 제외 및 프로젝트 설정 해야 상위이슈 선택 가능하도록 수정
8개 파일 변경됨
81 ■■■■■ 파일 변경됨
src/main/java/kr/wisestone/owl/web/condition/IssueCondition.java 13 ●●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/resources/mybatis/query-template/issue-template.xml 4 ●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/webapp/i18n/ko/global.json 1 ●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/webapp/scripts/app/issue/issueImportExcel.controller.js 4 ●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/webapp/scripts/components/issue/issue.service.js 6 ●●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/webapp/scripts/components/utils/autoComplete.controller.js 49 ●●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/webapp/views/issue/issueDetail.html 2 ●●● 패치 | 보기 | raw | blame | 히스토리
src/main/webapp/views/issue/issueExcelImport.html 2 ●●● 패치 | 보기 | raw | blame | 히스토리
src/main/java/kr/wisestone/owl/web/condition/IssueCondition.java
@@ -59,6 +59,7 @@
    private Pageable downPageable;
    private Boolean allIssue; // 전체이슈 보여주기
    private Long issueTypeId;
    private Boolean parentYN;   //상위이슈만 조회 유무
    public IssueCondition(){}
@@ -219,6 +220,10 @@
            condition.setTree(MapUtil.getBoolean(conditions, "isTree"));
        } else {
            condition.setTree(false);
        }
        if (MapUtil.getBoolean(conditions, "parentYN") != null && MapUtil.getBoolean(conditions, "parentYN")) {
            condition.setParentYN(true);
        }
        return condition;
@@ -595,4 +600,12 @@
    public void setIssueTypeId(Long issueTypeId) {
        this.issueTypeId = issueTypeId;
    }
    public Boolean getParentYN() {
        return parentYN;
    }
    public void setParentYN(Boolean parentYN) {
        this.parentYN = parentYN;
    }
}
src/main/resources/mybatis/query-template/issue-template.xml
@@ -142,6 +142,10 @@
            AND issue_status.issue_status_type != 'CLOSE'
        </if>
        <if test="parentYN != null and parentYN == true">
            AND issue.parent_issue_id IS NULL
        </if>
        <choose>
            <when test="projectIds.size != 0">
                AND project.id IN
src/main/webapp/i18n/ko/global.json
@@ -879,6 +879,7 @@
        "failedToProjectListLookUp": "프로젝트 목록 조회 실패",
        "failedToWorkflowListLookUp": "워크플로우 목록 조회 실패",
        "failedToIssueListLookUp": "이슈 목록 조회 실패",
        "selectToProjectListLookUp": "프로젝트를 먼저 선택 해 주세요.",
        "failedToCompanyCategoryListLookUp": "업체 카테고리 목록 조회 실패",
        "title": "제목",
        "number": "번호",
src/main/webapp/scripts/app/issue/issueImportExcel.controller.js
@@ -31,6 +31,10 @@
                    },
                    projectName : "",
                    autoCompletePage : {
                        issue : {
                            page : 0,
                            totalPage : 0
                        },
                        project : {
                            page : 0,
                            totalPage : 0
src/main/webapp/scripts/components/issue/issue.service.js
@@ -33,6 +33,12 @@
                    return response;
                });
            },
            findParentIssue : function (conditions) {
                return $http.post("issue/findParentIssue", conditions).then(function (response) {
                    $log.debug("상위이슈 목록 데이터 : ", response);
                    return response;
                });
            },
            findPartners : function (conditions) {
                return $http.post("issue/findPartner", conditions).then(function (response) {
                    $log.debug("사용하는 파트너 목록 데이터 : ", response);
src/main/webapp/scripts/components/utils/autoComplete.controller.js
@@ -33,6 +33,7 @@
                $scope.fn.getUserList = getUserList;    //  사용자 목록 정보를 조회한다.
                $scope.fn.getProjectList = getProjectList;  //  프로젝트 목록 정보를 조회한다.
                $scope.fn.getIssueList = getIssueList;  //  일감 목록 정보를 조회한다.
                $scope.fn.getParentIssueList = getParentIssueList;   // 상위 이슈 목록 정보를 조회한다.
                $scope.fn.getRelIssueList = getRelIssueList;   // 연관 이슈 목록 정보를 조회한다.
                $scope.fn.getDownIssueList = getDownIssueList;  //  하위 이슈 목록 정보를 조회한다.
                $scope.fn.getWorkflowList = getWorkflowList;    //  워크플로우 목록 정보를 조회한다.
@@ -175,7 +176,7 @@
                    return deferred.promise;
                }
                function getRelIssueList(query, issueTypeId, excludeList, page, callBack) {
                function getParentIssueList(query, issueTypeId, excludeList, page, callBack) {
                    var conditions = {
                        name : query,
                        excludeIds : (function () {
@@ -210,6 +211,52 @@
                    return deferred.promise;
                }
                function getRelIssueList(parentYN, project, query, issueTypeId, excludeList, page, callBack) {
                    var conditions = {
                        name : query,
                        excludeIds : (function () {
                            var excludeIds = [];
                            angular.forEach(excludeList, function (exclude) {
                                excludeIds.push(exclude.id);
                            });
                            return excludeIds;
                        })(),
                        parentYN : parentYN,
                        projectIds : (function () {
                            var projectIds = [];
                            if (project != null) {
                                if (project.length < 1) {
                                    SweetAlert.swal($filter("translate")("common.failedToIssueListLookUp"), $filter("translate")("common.selectToProjectListLookUp"), "error"); // "프로젝트를 먼저 선택 해 주세요."
                                }
                                projectIds.push(project[0].id);
                            }
                            return projectIds;
                        })()
                    };
                    var deferred = $q.defer();
                    if ($rootScope.isDefined(page) && page > 0) {
                        $rootScope.spinner = true;
                    }
                    Issue.find($resourceProvider.getContent(
                        conditions, $resourceProvider.getPageContent($rootScope.isDefined(page) ? page : 0, $rootScope.isDefined(page) ? 10 : 25))).then(function (result) {
                        if (result.data.message.status === "success") {
                            if ($rootScope.isDefined(callBack)) {
                                callBack(result);
                            }
                            deferred.resolve(result.data.data);
                        }
                        else {
                            SweetAlert.swal($filter("translate")("common.failedToIssueListLookUp"), result.data.message.message, "error"); // "워크플로우 목록 조회 실패"
                        }
                        $rootScope.spinner = false;
                    });
                    return deferred.promise;
                }
                function getDownIssueList(query, issueTypeId, parentIssueId, excludeList, page, callBack) {
                    var conditions = {
                        name : query,
src/main/webapp/views/issue/issueDetail.html
@@ -616,7 +616,7 @@
                            <js-autocomplete-single data-input-name="issue"
                                                    selected-model="vm.form.issues"
                                                    search="vm.issueName"
                                                    source="fn.getRelIssueList(vm.issueName, vm.issueTypeId, vm.form.issues, vm.autoCompletePage.issue.page, fn.getIssueListCallBack)"
                                                    source="fn.getRelIssueList(false, null, vm.issueName, vm.issueTypeId, vm.form.issues, vm.autoCompletePage.issue.page, fn.getIssueListCallBack)"
                                                    page="vm.autoCompletePage.issue.page"
                                                    total-page="vm.autoCompletePage.issue.totalPage"
                                                    input-disabled="false"
src/main/webapp/views/issue/issueExcelImport.html
@@ -31,7 +31,7 @@
                    <js-autocomplete-single data-input-name="issue"
                                            selected-model="vm.form.issues"
                                            search="vm.issueName"
                                            source="fn.getRelIssueList(vm.issueName, vm.issueTypeId, vm.form.issues, vm.autoCompletePage.issue.page, fn.getIssueListCallBack)"
                                            source="fn.getRelIssueList(true, vm.form.projects, vm.issueName, vm.issueTypeId, vm.form.issues, vm.autoCompletePage.issue.page, fn.getIssueListCallBack)"
                                            page="vm.autoCompletePage.issue.page"
                                            total-page="vm.autoCompletePage.issue.totalPage"
                                            input-disabled="false"