OWL ITS + 탐지시스템(인터넷 진흥원)
이민희
2021-12-28 cd56d401c5233f24790a5be8ba4075a97ab80fe3
상위 프로젝트는 추가 못하도록 수정
9개 파일 변경됨
113 ■■■■■ 파일 변경됨
src/main/java/kr/wisestone/owl/service/impl/ProjectServiceImpl.java 4 ●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/java/kr/wisestone/owl/service/impl/WidgetServiceImpl.java 8 ●●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/resources/mybatis/query-template/widget-template.xml 18 ●●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/webapp/scripts/app/issue/issueDetail.controller.js 53 ●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/webapp/scripts/app/project/projectAdd.controller.js 2 ●●● 패치 | 보기 | raw | blame | 히스토리
src/main/webapp/scripts/app/project/projectModify.controller.js 2 ●●● 패치 | 보기 | raw | blame | 히스토리
src/main/webapp/views/issue/issueDetail.html 11 ●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/webapp/views/project/projectAdd.html 8 ●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/webapp/views/project/projectModify.html 7 ●●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/java/kr/wisestone/owl/service/impl/ProjectServiceImpl.java
@@ -121,8 +121,8 @@
        project.setProjectKey("BTS");
        project.setStatus(Project.PROJECT_OPEN);
        project.setDescription(this.messageAccessor.message("common.intoTheSystemIssueManagementProject")); // 시스템에서 기본으로 제공되는 이슈 관리 프로젝트입니다.
        project.setStartDate(DateUtil.convertDateToYYYYMMDD(new Date()));
        project.setEndDate(DateUtil.convertDateToYYYYMMDD(DateUtil.addDays(new Date(), 3650)));
        //project.setStartDate(DateUtil.convertDateToYYYYMMDD(new Date()));
        //project.setEndDate(DateUtil.convertDateToYYYYMMDD(DateUtil.addDays(new Date(), 3650)));
        //  기본으로 생성되는 프로젝트의 유형은 BTS
        project.setProjectType(ProjectType.BTS_PROJECT);
        project.setWorkspace(workspace);
src/main/java/kr/wisestone/owl/service/impl/WidgetServiceImpl.java
@@ -283,8 +283,10 @@
                SetMyDepartmentId(widgetCondition);
                remainIssue = this.widgetMapper.countRemainIssueByDepartment(widgetCondition);   //  잔여 이슈
                delayIssue = this.widgetMapper.countTodayDelayIssueByDepartment(widgetCondition); //  지연된 이슈
                assigneeIssue = this.widgetMapper.countAssigneeIssueByDepartment(widgetCondition);   //  할당된 이슈
                registerIssue = this.widgetMapper.countTodayRegisterIssueByDepartment(widgetCondition);    //  등록한 이슈
                //assigneeIssue = this.widgetMapper.countAssigneeIssueByDepartment(widgetCondition);   //  할당된 이슈
                assigneeIssue = this.widgetMapper.countAssigneeIssue(widgetCondition);   //  할당된 이슈
                //registerIssue = this.widgetMapper.countTodayRegisterIssueByDepartment(widgetCondition);    //  등록한 이슈
                registerIssue = this.widgetMapper.countTodayRegisterIssue(widgetCondition);    //  등록한 이슈
                //noAssigneeIssue = this.widgetMapper.countNoAssigneeIssueByDepartment(widgetCondition);   //  일반 유저는 미할당 이슈 0개로 보이게
                completeIssue = this.widgetMapper.countCompleteIssueByDepartment(widgetCondition); // 완료된 이슈
            }
@@ -448,7 +450,7 @@
        if (widgetCondition.getProjectIds().size() > 0) {
            SetMeAndDownProjectIds(widgetCondition.getProjectIds(), widgetCondition);
            this.SetMyDepartmentId(widgetCondition);
            delayIssues = this.widgetMapper.findDelayIssue(widgetCondition);
            totalCount = this.widgetMapper.countDelayIssue(widgetCondition);
        }
src/main/resources/mybatis/query-template/widget-template.xml
@@ -953,12 +953,21 @@
        <if test="page != null and !page.equals('')">
            INNER JOIN issue_status iss ON iss.id = i.issue_status_id
            INNER JOIN project p ON p.id = i.project_id
            LEFT OUTER join issue_department isd on isd.issue_id = i.id
        </if>
        WHERE 1=1
        <choose>
            <when test="projectIds != null and projectIds.size != 0">
                AND i.project_id IN
                <foreach collection="projectIds" item="item" index="index" separator="," open="(" close=")">
                    #{item}
                </foreach>
            </when>
        </choose>
        <choose>
            <when test="myDepartmentIds != null and myDepartmentIds.size != 0">
                AND isd.department_id IN
                <foreach collection="myDepartmentIds" item="item" index="index" separator="," open="(" close=")">
                    #{item}
                </foreach>
            </when>
@@ -977,6 +986,7 @@
        SELECT
        COUNT(DISTINCT i.id) FROM issue i
        INNER JOIN project p ON p.id = i.project_id
        LEFT OUTER join issue_department isd on isd.issue_id = i.id
        <if test="page != null and !page.equals('')">
            INNER JOIN issue_status iss ON iss.id = i.issue_status_id
        </if>
@@ -989,6 +999,14 @@
                </foreach>
            </when>
        </choose>
        <choose>
            <when test="myDepartmentIds != null and myDepartmentIds.size != 0">
                AND isd.department_id IN
                <foreach collection="myDepartmentIds" item="item" index="index" separator="," open="(" close=")">
                    #{item}
                </foreach>
            </when>
        </choose>
        AND i.complete_date IS NOT NULL
        AND i.complete_date <![CDATA[ < ]]> #{completeDate}
        <if test="page != null and !page.equals('')">
src/main/webapp/scripts/app/issue/issueDetail.controller.js
@@ -444,15 +444,16 @@
                        .setHWidth("width-60-p bold")
                        .setHSort(false)
                        .setDRenderer("ISSUE_RELATION_MOVE"))
                    $scope.vm.relTableConfigs.push($tableProvider.config()
                        .setHName("issue.relationIssueDelete")
                        .setDType("renderer")
                        .setDAlign("text-center")
                        .setHWidth("width-40-p bold")
                        .setDRenderer("ISSUE_RELATION_DELETE")
                        .setHSort(false)
                        .setDAlign("text-center"))
                    if($scope.vm.viewer.modifyPermissionCheck) {
                        $scope.vm.relTableConfigs.push($tableProvider.config()
                            .setHName("issue.relationIssueDelete")
                            .setDType("renderer")
                            .setDAlign("text-center")
                            .setHWidth("width-40-p bold")
                            .setDRenderer("ISSUE_RELATION_DELETE")
                            .setHSort(false)
                            .setDAlign("text-center"))
                    }
                    angular.forEach($scope.vm.relTableConfigs, function (Rel_issueTableConfig) {
                        //  표시 대상인 컬럼만 화면에 그려준다.
                        if (Rel_issueTableConfig.display) {
@@ -533,14 +534,15 @@
                            }
                        });
                        $scope.vm.relTableConfigs.push($tableProvider.config()
                            .setHName("issue.relationIssueDelete")
                            .setDType("renderer")
                            .setHWidth("width-40-p bold")
                            .setDRenderer("ISSUE_RELATION_DELETE")
                            .setHSort(false)
                            .setDAlign("text-center"))
                        if($scope.vm.viewer.modifyPermissionCheck) {
                            $scope.vm.relTableConfigs.push($tableProvider.config()
                                .setHName("issue.relationIssueDelete")
                                .setDType("renderer")
                                .setHWidth("width-40-p bold")
                                .setDRenderer("ISSUE_RELATION_DELETE")
                                .setHSort(false)
                                .setDAlign("text-center"))
                        }
                    } else {
                        makeRelTableConfigs();
                    }
@@ -575,14 +577,15 @@
                                $scope.fn.setDownTableColumn(Down_issueTableConfig);
                            }
                        });
                        $scope.vm.downTableConfigs.push($tableProvider.config()
                            .setHName("issue.relationIssueDelete")
                            .setDType("renderer")
                            .setHWidth("width-40-p bold")
                            .setDRenderer("ISSUE_DOWN_DELETE")
                            .setHSort(false)
                            .setDAlign("text-center"))
                        if($scope.vm.viewer.modifyPermissionCheck) {
                            $scope.vm.downTableConfigs.push($tableProvider.config()
                                .setHName("issue.relationIssueDelete")
                                .setDType("renderer")
                                .setHWidth("width-40-p bold")
                                .setDRenderer("ISSUE_DOWN_DELETE")
                                .setHSort(false)
                                .setDAlign("text-center"))
                        }
                    } else {
                        makeDownTableConfigs();
                    }
src/main/webapp/scripts/app/project/projectAdd.controller.js
@@ -84,7 +84,7 @@
                        name : $rootScope.preventXss($scope.vm.form.name),
                        projectKey : $scope.vm.form.projectKey,
                        projectType : $scope.vm.form.projectType,
                        parentProjectId : $scope.vm.projectName != null && $scope.vm.projectName.length > 0 ? $scope.vm.form.projects[0].id : null,
                        //parentProjectId : $scope.vm.projectName != null && $scope.vm.projectName.length > 0 ? $scope.vm.form.projects[0].id : null,
                        status : $scope.vm.form.status,
                        startDate : "",
                        endDate : "",
src/main/webapp/scripts/app/project/projectModify.controller.js
@@ -112,7 +112,7 @@
                    var content = {
                        id : $scope.vm.form.id,
                        parentProjectId : $scope.vm.projectName.length > 0 && $scope.vm.projectName == $scope.vm.form.parentProjects[0].name ? $scope.vm.form.parentProjects[0].id : null,
                        //parentProjectId : $scope.vm.projectName.length > 0 && $scope.vm.projectName == $scope.vm.form.parentProjects[0].name ? $scope.vm.form.parentProjects[0].id : null,
                        name : $rootScope.preventXss($scope.vm.form.name),
                        status : $scope.vm.form.status,
                        startDate : "",
src/main/webapp/views/issue/issueDetail.html
@@ -498,7 +498,7 @@
                    <js-table data="vm.viewer.issueRelationVos" table-configs="vm.relTableConfigs"
                              event="relTableEvent" detail-view="true" hide-header="false" use-sort="true"></js-table>
                    <div class="row">
                    <div class="row" ng-if="vm.viewer.modifyPermissionCheck">
                        <div class="col-sm-4">
                            <select id="relationIssueType"
                                    name="relationIssueType"
@@ -524,16 +524,13 @@
                        </div>
                        <div class="col-auto vertical-middle" style="display: flex">
                            <button type="button" class="btn btn-primary"
                                    ng-if="vm.viewer.modifyPermissionCheck"
                                    ng-click="fn.addRelationIssue()"
                                    translate="issue.addRelationIssue">연관 이슈 추가</button>
                            <button type="button" class="btn btn-sm btn-primary btn-roundRel  offset-1"
                                    ng-if="vm.viewer.modifyPermissionCheck"
                                    ng-click="fn.addRelationIssueForm(vm.viewer.id)">
                                <i class="os-icon os-icon-plus"><span></span></i>
                            </button>
                        </div>
                    </div>
                </div>
@@ -557,8 +554,7 @@
                    <js-table data="vm.viewer.issueDownVos" table-configs="vm.downTableConfigs"
                              event="downTableEvent" detail-view="true" hide-header="false" use-sort="true"></js-table>
                    <div class="row">
                    <div class="row" ng-if="vm.viewer.modifyPermissionCheck">
                        <div class="col-sm-6">
                            <js-autocomplete-single data-input-name="issue"
                                                    selected-model="vm.form.issuesDown"
@@ -573,16 +569,13 @@
                        </div>
                        <div class="col-auto vertical-middle" style="display: flex">
                            <button type="button" class="btn btn-primary"
                                    ng-if="vm.viewer.modifyPermissionCheck"
                                    ng-click="fn.addDownIssue()"
                                    translate="issue.addDownIssue">추가</button>
                            <button type="button" class="btn btn-sm btn-primary btn-roundRel  offset-1"
                                    ng-if="vm.viewer.modifyPermissionCheck"
                                    ng-click="fn.addDownIssueForm(vm.viewer.id)">
                                <i class="os-icon os-icon-plus"><span></span></i>
                            </button>
                        </div>
                    </div>
                </div>
src/main/webapp/views/project/projectAdd.html
@@ -64,8 +64,9 @@
                </small>
            </div>
            <div class="row">
                <div class="col-lg-6">
            <!--<div class="row">-->
            <div>
                <div class="form-group">
                    <div class="form-group">
                        <label><span translate="common.period">기간</span></label>
                        <input tabindex="-1"
@@ -142,9 +143,8 @@
                                       translation-texts="{ count : 'common.userNum', empty : 'common.emptyProjectDepartment' }"
                                       extra-settings="{ displayProp : 'byName' , idProp : 'id', imageable : false, maxlength : 100, autoResize : true }"></js-autocomplete-multi>
                <div class="select3-selection__choicediv mt-10">
                    <span class="select3-selection__choice" ng-repeat="user in vm.form.users">
                    <span class="select3-selection__choice" ng-repeat="department in vm.form.departments">
                       <span>{{department.byName}}</span> <!--사용자가 속해 있는 부서 이름 출력-->
                        <span class="select3-selection__choice__remove" ng-click="fn.removeDepartment($index)">×</span>
                    </span>
src/main/webapp/views/project/projectModify.html
@@ -30,10 +30,11 @@
                <small translate="project.limitNameToSpecialCharacters">프로젝트 명은 특수 문자를 입력할 수 없습니다.</small>
            </div>
            <div class="row">
                <div class="col-lg-6">
            <!--<div class="row">-->
            <div>
                <div class="form-group">
                    <div class="form-group">
                        <label for="projectModifyForm2"><span translate="common.period">기간</span></label>
                        <label><span translate="common.period">기간</span></label>
                        <input tabindex="-1"
                               type="text"
                               class="form-control input-readonly"