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;
@@ -28,7 +27,9 @@
    private Long issueNumber;
    private Long registerId;    //  등록자 아이디 - issue insert batch 에서 사용
    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();
@@ -36,8 +37,19 @@
    private List<Long> removeIds = Lists.newArrayList();
    private List<Long> ids = Lists.newArrayList();  //  이슈 다중 상태 변경에서 사용
    private String comment; //  이슈 상태 변경에서 변경 사유를 입력할 때 사용
    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) {
@@ -57,9 +69,19 @@
            form.setUserIds(MapUtil.getLongs(params, "userIds"));
        }
        //  담당부서 정보
        if (MapUtil.getLongs(params, "departmentIds") != null) {
            form.setDepartmentIds(MapUtil.getLongs(params, "departmentIds"));
        }
        //  메일 발송자 정보
        if (MapUtil.getStrings(params, "sendEmails") != null) {
            form.setSendEmails(MapUtil.getStrings(params, "sendEmails"));
        }
        //  메일 템플릿 정보
        if (MapUtil.getString(params, "template") != null) {
            form.setTemplate(MapUtil.getString(params, "template"));
        }
        //  텍스트 에디터에 첨부된 파일을 이슈와 연결하는 정보
@@ -87,7 +109,42 @@
            form.setIds(MapUtil.getLongs(params, "ids"));
        }
        //  업체 필드 정보
        if (MapUtil.getObject(params, "issueCompanyFields") != null){
            form.setIssueCompanyFields((List)MapUtil.getObject(params, "issueCompanyFields"));
        }
        //  ISP 필드 정보
        if (MapUtil.getObject(params, "issueIspFields") != null){
            form.setIssueIspFields((List)MapUtil.getObject(params, "issueIspFields"));
        }
        //  HOSTING 필드 정보
        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() {
@@ -182,6 +239,20 @@
        this.userIds = userIds;
    }
    public List<Long> getDepartmentIds() {
        return departmentIds;
    }
    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() {
        return removeFiles;
    }
@@ -257,4 +328,72 @@
    public void setComment(String comment) {
        this.comment = comment;
    }
    public List<Map<String, Object>> getIssueCompanyFields() {
        return issueCompanyFields;
    }
    public void setIssueCompanyFields(List<Map<String, Object>> issueCompanyFields) {
        this.issueCompanyFields = issueCompanyFields;
    }
    public void addissueCompanyField(Map<String, Object> issueCompanyFields) {
        this.issueCompanyFields.add(issueCompanyFields);
    }
    public List<Map<String, Object>> getIssueIspFields() {
        return issueIspFields;
    }
    public void setIssueIspFields(List<Map<String, Object>> issueIspFields) {
        this.issueIspFields = issueIspFields;
    }
    public void addIssueIspField(Map<String, Object> issueIspFields) {
        this.issueIspFields.add(issueIspFields);
    }
    public List<Map<String, Object>> getIssueHostingFields() {
        return issueHostingFields;
    }
    public void setIssueHostingFields(List<Map<String, Object>> issueHostingFields) {
        this.issueHostingFields = issueHostingFields;
    }
    public void addIssueHostingField(Map<String, Object> issueHostingFields) {
        this.issueHostingFields.add(issueHostingFields);
    }
    public Long getParentIssueId() {
        return parentIssueId;
    }
    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;
    }
}