OWL ITS + 탐지시스템(인터넷 진흥원)
이민희
2021-11-19 74dafd36a2256700e645e697194dea3dc2f2f150
이슈 상세페이지
5개 파일 변경됨
69 ■■■■■ 파일 변경됨
src/main/java/kr/wisestone/owl/service/impl/IssueServiceImpl.java 16 ●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/java/kr/wisestone/owl/vo/IssueVo.java 17 ●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/resources/mybatis/query-template/issue-template.xml 2 ●●● 패치 | 보기 | raw | blame | 히스토리
src/main/webapp/scripts/app/issue/issueList.controller.js 6 ●●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/webapp/views/issue/issueDetail.html 28 ●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/java/kr/wisestone/owl/service/impl/IssueServiceImpl.java
@@ -433,13 +433,13 @@
        List<Map<String, Object>> results = this.issueMapper.find(issueCondition);
        //  튜닝 전 - 0.8, 0.9, 0.9, 0.9, 0.9
        StopWatch serviceStart = new StopWatch();
        serviceStart.start();
        /*StopWatch serviceStart = new StopWatch();
        serviceStart.start();*/
        Long totalCount = this.issueMapper.count(issueCondition);
        //  튜닝 전 - 1.1, 1.1, 1.3, 1.2
        serviceStart.stop();
        log.debug("serviceENd1 : " + serviceStart.getTime());
        /*serviceStart.stop();
        log.debug("serviceENd1 : " + serviceStart.getTime());*/
        int totalPage = (int) Math.ceil((totalCount - 1) / pageable.getPageSize()) + 1;
        //  이슈 아이디 초기화
@@ -858,6 +858,14 @@
        this.setIssueCompanyField(issue, issueVo);  //업체 정보 세팅
        this.setIssueIspField(issue, issueVo);  //ISP 정보 세팅
        this.setIssueHostingField(issue, issueVo);  //HOSTING 정보 세팅
        this.setParentIssue(issue,issueVo);
    }
    //  상위일감 정보 추가
    private void setParentIssue(Issue issue, IssueVo issueVo) {
        if(issue.getParentIssue() != null){
            issueVo.setParentIssueVo(ConvertUtil.copyProperties(issue.getParentIssue(), IssueVo.class));
        }
    }
    //  등록자 정보 추가
src/main/java/kr/wisestone/owl/vo/IssueVo.java
@@ -51,7 +51,8 @@
    private Long issueCommentCount;
    private String modifyByName;    //  변경자 정보 - 이슈 변경 정보 상세 확인에서 사용
    private WorkflowStatusVo workflowStatusVo;
    private Long parentIssueId;     // 상위 일감
    //private Long parentIssueId;     // 상위 일감
    private IssueVo parentIssueVo;
    private List<IssueCompanyVo> issueCompanyVos;
    private List<IssueIspVo> issueIspVos;
    private List<IssueHostingVo> issueHostingVos;
@@ -410,14 +411,6 @@
        this.departmentVos = departmentVos;
    }
    public Long getParentIssueId() {
        return parentIssueId;
    }
    public void setParentIssueId(Long parentIssueId) {
        this.parentIssueId = parentIssueId;
    }
    public List<IssueVo> getIssueDownVos() {
        return issueDownVos;
    }
@@ -426,5 +419,11 @@
        this.issueDownVos = issueDownVos;
    }
    public IssueVo getParentIssueVo() {
        return parentIssueVo;
    }
    public void setParentIssueVo(IssueVo parentIssueVo) {
        this.parentIssueVo = parentIssueVo;
    }
}
src/main/resources/mybatis/query-template/issue-template.xml
@@ -10,7 +10,7 @@
        issue.reverse_index as reverseIndex,
        issue.title as title,
        issue.description as description,
        issue.parent_issue_id AS pareniIssueId,
        issue.parent_issue_id as parentIssueId,
        issue.start_date as startDate,
        issue.complete_date as completeDate,
        issue.issue_number as issueNumber,
src/main/webapp/scripts/app/issue/issueList.controller.js
@@ -75,7 +75,8 @@
                    users : [], //  담당자
                    registers : [], //  등록자
                    customFields : [],  //  사용자 정의 필드
                    issueTableConfigs : []  //  이슈 테이블 설정
                    issueTableConfigs : [],  //  이슈 테이블 설정
                    parentIssueId : ""
                };
                //  테이블 이벤트
@@ -102,7 +103,8 @@
                            search : $scope.vm.search,
                            projects : $scope.vm.projects,
                            users : $scope.vm.users,
                            registers : $scope.vm.registers
                            registers : $scope.vm.registers,
                            parentIssueId : $scope.vm.parentIssueId
                        })
                    };
src/main/webapp/views/issue/issueDetail.html
@@ -86,23 +86,14 @@
<!--    상세 화면   -->
<div class="support-ticket-content-w" ng-controller="issueDetailController">
    <div class="support-ticket-content">
        <span class="badge" ng-style="{'background-color' : vm.viewer.severityVo.color, 'border-color' : vm.viewer.severityVo.color, 'color' : '#FFFFFF' }">
            <span ng-if="vm.viewer.parentIssueId != '' || vm.viewer.parentIssueId != 'null' ">상위 일감:{{vm.viewer.parentIssueID}}</span>
            <i class="os-icon-airplay">OWL Trial</i>
        <span ng-if="vm.viewer.parentIssueVo != null" class="badge" ng-style="{'background-color' : vm.viewer.issueStatusVo.color, 'border-color' : vm.viewer.issueStatusVo.color, 'color' : '#FFFFFF' }">
            <span>상위 이슈:{{vm.viewer.parentIssueVo.title}}</span>
        </span>
        <label class="issue-detail-label offset-1"><span translate="issue.issueType">이슈 유형</span> </label>
        <span class="status-pill smaller"
              ng-style="{'background-color': vm.viewer.issueTypeVo.color }"></span><span>{{vm.viewer.issueTypeVo.name}}</span>
        <span class="offset-1"> {{vm.viewer.registerDate}}</span>
        <label class="issue-detail-label offset-1"><span translate="common.register">등록자</span></label>
        <span class="select3-selection__choice">
                <span class="avatar-w"><img ng-src="{{vm.viewer.registerVo.profile}}"></span>
                <span>{{vm.viewer.registerVo.byName}}</span>
            </span>
        <div class="">
            <span class="h3-div">{{vm.viewer.title}}</span>
        </div>
        <div class="support-ticket-content-header issue-detail-word-break">
        <div class="support-ticket-content-header issue-detail-word-break" style="height: 5vh">
            <span class="ticket-header">
                <div class="tasks-header-w">
                    <span class="tags">
@@ -121,7 +112,15 @@
                <span class="issue-close" ng-click="fn.listView()"><i class="os-icon os-icon-close" data-toggle="tooltip" data-placement="left" title="상세 화면 닫기"></i></span>
            </a>
        </div>
        <label class="issue-detail-label"><span translate="issue.issueType">이슈 유형</span> </label>
        <span class="status-pill smaller"
              ng-style="{'background-color': vm.viewer.issueTypeVo.color }"></span><span>{{vm.viewer.issueTypeVo.name}}</span>
        <span class="offset-1"> {{vm.viewer.registerDate}}</span>
        <label class="issue-detail-label offset-1"><span translate="common.register">등록자</span></label>
        <span class="select3-selection__choice">
            <span class="avatar-w"><img ng-src="{{vm.viewer.registerVo.profile}}"></span>
            <span>{{vm.viewer.registerVo.byName}}</span>
        </span>
        <div class="ticket-thread">
            <div class="todo-content">
                <h6 class="todo-content-subheader" translate="issue.issueInfo">이슈 정보</h6>
@@ -185,6 +184,7 @@
                        </div>
                    </div>
                </div>
                <hr>
                <div class="row">
                    <div class="col-md-4">
                        <div class="form-group">