OWL ITS + 탐지시스템(인터넷 진흥원)
src/main/java/kr/wisestone/owl/web/form/IssueForm.java
@@ -1,20 +1,19 @@
package kr.wisestone.owl.web.form;
import com.google.common.collect.Lists;
import kr.wisestone.owl.domain.enumType.IssueModifyType;
import kr.wisestone.owl.util.ConvertUtil;
import kr.wisestone.owl.util.DateUtil;
import kr.wisestone.owl.util.MapUtil;
import org.springframework.util.StringUtils;
import kr.wisestone.owl.vo.CompanyFieldVo;
import java.util.Date;
import java.util.List;
import java.util.Map;
/**
 * Created by wisestone on 2018-01-03.
 */
public class IssueForm {
public class IssueForm implements Cloneable {
    private Long id;
    private Long projectId;
    private Long issueStatusId;
@@ -30,6 +29,7 @@
    private List<Long> userIds = Lists.newArrayList();
    private List<Long> departmentIds = Lists.newArrayList();    // 담당 부서
    private List<String> sendEmails = Lists.newArrayList(); //  이메일 발송 대상자
    private String template;
    private List<Long> attachedFileIds = Lists.newArrayList();
    private Long relationIssue;   // 연관 일감
    private List<Map<String, Object>> issueCustomFields = Lists.newArrayList();
@@ -40,9 +40,16 @@
    private List<Map<String, Object>> issueCompanyFields = Lists.newArrayList();
    private List<Map<String, Object>> issueIspFields = Lists.newArrayList();
    private List<Map<String, Object>> issueHostingFields = Lists.newArrayList();
    private List<Map<String, Object>> files = Lists.newArrayList(); // api용 첨부파일
    private Long parentIssueId; // 상위 이슈
    private String isApi;
    public IssueForm() {
    }
    @Override
    public IssueForm clone() throws CloneNotSupportedException {
        return (IssueForm) super.clone();
    }
    public static IssueForm make(Map<String, Object> params) {
@@ -70,6 +77,11 @@
        //  메일 발송자 정보
        if (MapUtil.getStrings(params, "sendEmails") != null) {
            form.setSendEmails(MapUtil.getStrings(params, "sendEmails"));
        }
        //  메일 템플릿 정보
        if (MapUtil.getString(params, "template") != null) {
            form.setTemplate(MapUtil.getString(params, "template"));
        }
        //  텍스트 에디터에 첨부된 파일을 이슈와 연결하는 정보
@@ -111,7 +123,28 @@
        if (MapUtil.getObject(params, "issueHostingFields") != null){
            form.setIssueHostingFields((List)MapUtil.getObject(params, "issueHostingFields"));
        }
        //  api 첨부파일
        if (MapUtil.getObject(params, "files") != null){
            form.setFiles((List)MapUtil.getObject(params, "files"));
        }
        return form;
    }
    // 중복값으로 사용하는 사용자정의필드만 다시 설정
    public void setUseIssueCustomFields(List<Long> useIssueCustomFields) {
        List<Map<String, Object>> results = Lists.newArrayList();
        for (Map<String, Object> customValue : this.getIssueCustomFields()) {
            for (Long customFieldId : useIssueCustomFields) {
//                Map<String, Object> customFieldVo = (Map<String, Object>)MapUtil.getObject(customValue, "customFieldVo");
                if (customFieldId.equals(MapUtil.getLong(customValue, "customFieldId"))) {
                    results.add(customValue);
                }
            }
        }
        this.setIssueCustomFields(results);
    }
    public Long getId() {
@@ -212,6 +245,12 @@
    public void setDepartmentIds(List<Long> departmentIds) {
        this.departmentIds = departmentIds;
    }
    public void addDepartmentId(Long departmentId) {
        if (this.departmentIds != null) {
            this.departmentIds.add(departmentId);
        }
    }
    public List<Long> getRemoveFiles() {
@@ -333,4 +372,28 @@
    public void setParentIssueId(Long parentIssueId) {
        this.parentIssueId = parentIssueId;
    }
    public String getIsApi() {
        return isApi;
    }
    public void setIsApi(String isApi) {
        this.isApi = isApi;
    }
    public List<Map<String, Object>> getFiles() {
        return files;
    }
    public void setFiles(List<Map<String, Object>> files) {
        this.files = files;
    }
    public String getTemplate() {
        return template;
    }
    public void setTemplate(String template) {
        this.template = template;
    }
}