src/main/java/kr/wisestone/owl/service/impl/IssueServiceImpl.java | ●●●●● 패치 | 보기 | raw | blame | 히스토리 | |
src/main/java/kr/wisestone/owl/vo/IssueVo.java | ●●●●● 패치 | 보기 | raw | blame | 히스토리 | |
src/main/resources/mybatis/query-template/issue-template.xml | ●●●●● 패치 | 보기 | raw | blame | 히스토리 | |
src/main/webapp/scripts/app/issue/issueList.controller.js | ●●●●● 패치 | 보기 | raw | blame | 히스토리 | |
src/main/webapp/views/issue/issueDetail.html | ●●●●● 패치 | 보기 | 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">