Project

General

Profile

Actions

요구사항 #439

closed

요구사항 #175: [ ARMS-REQ ] ARMS 의 요구사항 상태 값 과 ALM 의 이슈의 상태값 Mapping 기능

요구사항 #438: JiraIssueStatusEntities 관련 문제 발생

프로젝트별 - 이슈유형별 - 이슈상태 변경처리

Added by Redmine Admin 3 months ago.

Status:
완료
Priority:
Medium
Assignee:
Start date:
09/18/2024
Due date:
% Done:

0%

Estimated time:

Description

현재 JiraProjectEntity에 연결된 Set<JiraIssueStatusEntity> 형태

JiraIssueStatusEntity에서 Multi IssueType Id 형태로 프로젝트별 상태(Set<JiraIssueStatusEntity>)를 조회 후 issueType Id가 포함되어있는 상태만 조회해서 가져오는 형태로 처리

 

이 경우

1 - 10001 2 - 10001 , 10002 3 - 10001. 10002, 10003 4 - 10002 5 - 10003 6 - 10001

좌측이 상태, 우측이 이슈유형일 때

10001의 이슈 유형의 이슈 상태는 1,2,3,6 이고 모두 new 상태 카테고리라고 가정 가장 우선순위가 높은 상태 1이 프리셋으로 설정되었다고 가정

10002의 이슈 유형의 이슈 상태는 2,3,4 일 때 모두 new 상태 카테고리라고 가정 가장우선순위가 높은 상태 2가 프리셋으로 설정되었다고 가정

이 때 10001을 다시 조회하면 1,2가 모두 카테고리 프리셋으로 지정된걸로 보이게 되어 1대1 매핑이 아닌 1:N매핑으로 처리

 
따라서

JiraProjectEntity - Set<JiraIssueTypeEntity> - Set<JiraIssueStatusEntity> 형태로 변경되어야한다고 판단

 

JiraProjectEntity에는 Set<JiraIssueStatusEntity> 제거

//    private Set<JiraIssueStatusEntity> jiraIssueStatusEntities;

//    @LazyCollection(LazyCollectionOption.FALSE)
//    @JsonManagedReference
//    @OneToMany(cascade = CascadeType.ALL)
//    @JoinTable(
//            name = "GLOBAL_TREE_MAP",
//            joinColumns = @JoinColumn(name = "jiraproject_link"),
//            inverseJoinColumns = @JoinColumn(name = "jiraissuestatus_link")
//    )
//    @WhereJoinTable( clause =   "filerepository_link IS NULL and " +
//                                "pdservice_link IS NULL and " +
//                                "pdserviceversion_link IS NULL and " +
//                                "jiraserver_link IS NULL and " +
//                                "jiraissuepriority_link IS NULL and " +
//                                "jiraissueresolution_link IS NULL and " +
//                                "jiraissuetype_link IS NULL")
//    public Set<JiraIssueStatusEntity> getJiraIssueStatusEntities() { return jiraIssueStatusEntities; }
//
//    public void setJiraIssueStatusEntities(Set<JiraIssueStatusEntity> jiraIssueStatusEntities) {
//        this.jiraIssueStatusEntities = jiraIssueStatusEntities;
//    }

 

JiraIssueTypeEntity에 Set<JiraIssueStatusEntity> 추가

     private Set<JiraIssueStatusEntity> jiraIssueStatusEntities;

    @LazyCollection(LazyCollectionOption.FALSE)
    @JsonManagedReference
    @OneToMany(cascade = CascadeType.ALL)
    @JoinTable(
            name = "GLOBAL_TREE_MAP",
            joinColumns = @JoinColumn(name = "jiraissuetype_link"),
            inverseJoinColumns = @JoinColumn(name = "jiraissuestatus_link")
    )
    @WhereJoinTable( clause =   "filerepository_link IS NULL and " +
            "pdservice_link IS NULL and " +
            "pdserviceversion_link IS NULL and " +
            "jiraserver_link IS NULL and " +
            "jiraproject_link IS NULL and " +
            "jiraissuepriority_link IS NULL and " +
            "jiraissueresolution_link IS NULL")
    public Set<JiraIssueStatusEntity> getJiraIssueStatusEntities() { return jiraIssueStatusEntities; }

    public void setJiraIssueStatusEntities(Set<JiraIssueStatusEntity> jiraIssueStatusEntities) {
        this.jiraIssueStatusEntities = jiraIssueStatusEntities;
    }

 

영향 코드 확인

  1. 클라우드 상태 엔티티 갱신 로직
  1. 이슈 상태 조회 로직 - 2개
  1. 매핑된 ALM 이슈 상태로 변경 로직
  1. 룰셋 만드는 로직

 

No data to display

Actions

Also available in: Atom PDF