OWL ITS + 탐지시스템(인터넷 진흥원)
src/main/java/kr/wisestone/owl/web/condition/IssueCondition.java
@@ -1,12 +1,12 @@
package kr.wisestone.owl.web.condition;
import com.google.common.collect.Lists;
import kr.wisestone.owl.util.CommonUtil;
import kr.wisestone.owl.util.ConvertUtil;
import kr.wisestone.owl.util.DateUtil;
import kr.wisestone.owl.util.MapUtil;
import kr.wisestone.owl.util.*;
import kr.wisestone.owl.vo.PageVo;
import org.springframework.data.domain.Pageable;
import org.springframework.util.StringUtils;
import java.util.Arrays;
import java.util.Date;
import java.util.List;
import java.util.Map;
@@ -28,12 +28,15 @@
    private String endStartDate;
    private String beginCompleteDate;
    private String endCompleteDate;
    private String beginDateRange;
    private String endDateRange;
    private Integer page;
    private Integer pageSize;
    private Long loginUserId;
    private Long workspaceId;
    private String projectType;
    private String deep;
    private String isApi;
    private Long parentIssueId;     // 상위 일감
    private String useValue;
    private List<Long> projectIds = Lists.newArrayList();
@@ -52,9 +55,21 @@
    private List<Long> statusIds = Lists.newArrayList();
    private List<Long> excludeIds = Lists.newArrayList();
    private List<Long> myDepartmentIds; // 내가 속해있는 부서 ID
    private Boolean hideIssue;
    private Boolean hideDownIssue;
    private Boolean hideCompleteIssue;
    private Boolean isTree; // 트리구조 모드 일때
    private Pageable relPageable;
    private Pageable downPageable;
    private Boolean allIssue; // 완료된 이슈까지 보여줄지 여부
    private Long issueTypeId;
    private Boolean parentYN;   //상위이슈만 조회 여부
    public IssueCondition(){}
    public IssueCondition(Long issueId, Long parentIssueId){
        this.id = issueId;
        this.parentIssueId = parentIssueId;
    }
    //  대시보드 위기관리 위젯에서 사용
    public IssueCondition(List<String> issueIds){
        this.issueIds = issueIds;
@@ -62,6 +77,20 @@
    public static IssueCondition make(Map<String, Object> conditions) {
        IssueCondition condition = ConvertUtil.convertMapToClass(conditions, IssueCondition.class);
        Map<String, Object> pageContents = (Map<String, Object>) conditions.get("pageContent");
        if (pageContents != null) {
            PageVo downPageVo = new PageVo();
            downPageVo.setPage(MapUtil.getInteger(pageContents, "downPage"));
            downPageVo.setPageSize(MapUtil.getInteger(pageContents, "downPageSize"));
            PageVo relPageVo = new PageVo();
            relPageVo.setPage(MapUtil.getInteger(pageContents, "relPage"));
            relPageVo.setPageSize(MapUtil.getInteger(pageContents, "relPageSize"));
            PageUtil pageUtil = new PageUtil();
            condition.setRelPageable(pageUtil.convertPageable(relPageVo));
            condition.setDownPageable(pageUtil.convertPageable(downPageVo));
        }
        if (!StringUtils.isEmpty(condition.getCombinationIssueNumber())) {
            if (condition.getCombinationIssueNumber().contains("-")) {
@@ -134,6 +163,18 @@
            condition.setEndCompleteDate(DateUtil.convertDateToStr(endCompleteDate, "yyyy-MM-dd"));
        }
        if (StringUtils.hasText(MapUtil.getString(conditions, "dateRange"))) {
            String dateRange = MapUtil.getString(conditions, "dateRange");
            if (!StringUtils.isEmpty(dateRange)) {
                List<String> date = Arrays.asList(dateRange.split("~"));
                Date beginDateRange = DateUtil.convertStrToDate(date.get(0).trim(), "yy-MM-dd");
                condition.setBeginDateRange(DateUtil.convertDateToStr(beginDateRange, "yyyy-MM-dd"));
                Date endDateRange = DateUtil.convertStrToDate(date.get(1).trim(), "yy-MM-dd");
                condition.setEndDateRange(DateUtil.convertDateToStr(endDateRange, "yyyy-MM-dd"));
            }
        }
        if (MapUtil.getLongs(conditions, "projectIds") != null) {
            condition.setProjectIds(MapUtil.getLongs(conditions, "projectIds"));
        }
@@ -144,6 +185,10 @@
        if (MapUtil.getLongs(conditions, "issueTypeIds") != null) {
            condition.setIssueTypeIds(MapUtil.getLongs(conditions, "issueTypeIds"));
        }
        if (MapUtil.getLong(conditions, "issueTypeId") != null) {
            condition.setIssueTypeId(MapUtil.getLong(conditions, "issueTypeId"));
        }
        if (MapUtil.getLongs(conditions, "priorityIds") != null) {
@@ -174,8 +219,41 @@
            condition.setId(MapUtil.getLong(conditions, "issueId"));
        }
        if (MapUtil.getBoolean(conditions, "hideIssue")) {
            condition.setHideIssue(MapUtil.getBoolean(conditions, "hideIssue"));
        if (MapUtil.getInteger(conditions, "hideDownIssue") != null) {
            int hideDownIssue = MapUtil.getInteger(conditions, "hideDownIssue");
            if(MapUtil.getBoolean(conditions, "isTree") != null && !MapUtil.getBoolean(conditions, "isTree")){
                switch (hideDownIssue){
                    case 0 : // 이슈 모두 보여주기
                        condition.setHideDownIssue(false);
                        condition.setParentYN(true);
                        break;
                    case 1 : // 상위이슈만 보여주기
                        condition.setHideDownIssue(true);
                        condition.setParentYN(true);
                        break;
                    case 2 : // 하위이슈만 보여주기
                        condition.setHideDownIssue(false);
                        condition.setParentYN(false);
                        break;
                }
            }else if(MapUtil.getBoolean(conditions, "isTree")) {
                condition.setHideDownIssue(false);
            }
        }
        if (MapUtil.getBoolean(conditions, "hideCompleteIssue") != null) {
            condition.setHideCompleteIssue(MapUtil.getBoolean(conditions, "hideCompleteIssue"));
        }
        if (MapUtil.getBoolean(conditions, "isTree") != null) {
            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;
@@ -269,6 +347,22 @@
        this.endCompleteDate = endCompleteDate;
    }
    public String getBeginDateRange() {
        return beginDateRange;
    }
    public void setBeginDateRange(String beginDateRange) {
        this.beginDateRange = beginDateRange;
    }
    public String getEndDateRange() {
        return endDateRange;
    }
    public void setEndDateRange(String endDateRange) {
        this.endDateRange = endDateRange;
    }
    public Integer getPage() {
        return page;
    }
@@ -299,6 +393,14 @@
    public void setDeep(String deep) {
        this.deep = deep;
    }
    public String getIsApi() {
        return isApi;
    }
    public void setIsApi(String isApi) {
        this.isApi = isApi;
    }
    public List<Long> getProjectIds() {
@@ -489,11 +591,67 @@
        this.myDepartmentIds = myDepartmentIds;
    }
    public Boolean getHideIssue() {
        return hideIssue;
    public Boolean getHideDownIssue() {
        return hideDownIssue;
    }
    public void setHideIssue(Boolean hideIssue) {
        this.hideIssue = hideIssue;
    public void setHideDownIssue(Boolean hideDownIssue) {
        this.hideDownIssue = hideDownIssue;
    }
    public Boolean getHideCompleteIssue() {
        return hideCompleteIssue;
    }
    public void setHideCompleteIssue(Boolean hideCompleteIssue) {
        this.hideCompleteIssue = hideCompleteIssue;
    }
    public Boolean getTree() {
        return isTree;
    }
    public void setTree(Boolean tree) {
        isTree = tree;
    }
    public Pageable getRelPageable() {
        return relPageable;
    }
    public void setRelPageable(Pageable relPageable) {
        this.relPageable = relPageable;
    }
    public Pageable getDownPageable() {
        return downPageable;
    }
    public void setDownPageable(Pageable downPageable) {
        this.downPageable = downPageable;
    }
    public Boolean getAllIssue() {
        return allIssue;
    }
    public void setAllIssue(Boolean allIssue) {
        this.allIssue = allIssue;
    }
    public Long getIssueTypeId() {
        return issueTypeId;
    }
    public void setIssueTypeId(Long issueTypeId) {
        this.issueTypeId = issueTypeId;
    }
    public Boolean getParentYN() {
        return parentYN;
    }
    public void setParentYN(Boolean parentYN) {
        this.parentYN = parentYN;
    }
}