OWL ITS + 탐지시스템(인터넷 진흥원)
이민희
2021-11-25 bb9cc79a03a90cb2a6a03275f6ff6d8ea7d2fc5e
이슈 유형 - 업체,isp,호스팅 정보 추가
6개 파일 변경됨
205 ■■■■■ 파일 변경됨
src/main/java/kr/wisestone/owl/domain/IssueType.java 36 ●●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/java/kr/wisestone/owl/service/impl/IssueTypeServiceImpl.java 82 ●●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/java/kr/wisestone/owl/vo/IssueTypeVo.java 27 ●●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/java/kr/wisestone/owl/web/condition/IssueTypeCondition.java 28 ●●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/java/kr/wisestone/owl/web/form/IssueTypeForm.java 27 ●●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/resources/migration/V1_11__Alter_Table.sql 5 ●●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/java/kr/wisestone/owl/domain/IssueType.java
@@ -31,6 +31,18 @@
    @JoinColumn(name = "project_id")
    private Project project;
    @ManyToOne(fetch = FetchType.LAZY)
    @JoinColumn(name = "company_id")
    private CompanyField companyField;
    @ManyToOne(fetch = FetchType.LAZY)
    @JoinColumn(name = "isp_id")
    private IspField ispField;
    @ManyToOne(fetch = FetchType.LAZY)
    @JoinColumn(name = "hosting_id")
    private HostingField hostingField;
    @OneToMany(mappedBy = "issueType", cascade = { CascadeType.ALL }, orphanRemoval = true)
    private Set<IssueTypeCustomField> issueTypeCustomFields = new HashSet<>();
@@ -108,4 +120,28 @@
    public void setProject(Project project) {
        this.project = project;
    }
    public CompanyField getCompanyField() {
        return companyField;
    }
    public void setCompanyField(CompanyField companyField) {
        this.companyField = companyField;
    }
    public IspField getIspField() {
        return ispField;
    }
    public void setIspField(IspField ispField) {
        this.ispField = ispField;
    }
    public HostingField getHostingField() {
        return hostingField;
    }
    public void setHostingField(HostingField hostingField) {
        this.hostingField = hostingField;
    }
}
src/main/java/kr/wisestone/owl/service/impl/IssueTypeServiceImpl.java
@@ -49,6 +49,15 @@
    private WorkspaceService workspaceService;
    @Autowired
    private CompanyFieldService companyFieldService;
    @Autowired
    private IspFieldService ispFieldService;
    @Autowired
    private HostingFieldService hostingFieldService;
    @Autowired
    private IssueTypeMapper issueTypeMapper;
    @Autowired
@@ -114,6 +123,19 @@
        Project project = this.projectService.getProject(issueTypeForm.getProjectId());
        issueType.setProject(project);
        if(issueTypeForm.getCompanyId() != null){
            CompanyField companyField = this.companyFieldService.getCompany(issueTypeForm.getCompanyId());
            issueType.setCompanyField(companyField);
        }
        if(issueTypeForm.getIspId() != null){
            IspField ispField = this.ispFieldService.getIsp(issueTypeForm.getIspId());
            issueType.setIspField(ispField);
        }
        if(issueTypeForm.getHostingId() != null){
            HostingField hostingField = this.hostingFieldService.getHosting(issueTypeForm.getHostingId());
            issueType.setHostingField(hostingField);
        }
        return this.issueTypeRepository.saveAndFlush(issueType);
    }
@@ -172,6 +194,9 @@
        }
        this.setUseIssueTypeByProject(issueTypeVos);
        this.setUseIssueTypeByCompanyField(issueTypeVos);
        this.setUseIssueTypeByIspField(issueTypeVos);
        this.setUseIssueTypeByHostingField(issueTypeVos);
        resJsonData.put(Constants.REQ_KEY_PAGE_VO, new ResPage(pageable.getPageNumber(), pageable.getPageSize(),
                totalPage, totalCount));
@@ -201,6 +226,37 @@
        }
    }
    //  이슈 유형에 연결된 업체 정보를 셋팅한다.
    private void setUseIssueTypeByCompanyField(List<IssueTypeVo> issueTypeVos) {
        for (IssueTypeVo issueTypeVo : issueTypeVos){
            IssueType issueType = this.getIssueType(issueTypeVo.getId());
            CompanyField companyField = issueType.getCompanyField();
            if(companyField != null){
                issueTypeVo.setCompanyFieldVo(ConvertUtil.copyProperties(issueType.getCompanyField(), CompanyFieldVo.class));
            }
        }
    }
    //  이슈 유형에 연결된 ISP 정보를 셋팅한다.
    private void setUseIssueTypeByIspField(List<IssueTypeVo> issueTypeVos) {
        for (IssueTypeVo issueTypeVo : issueTypeVos){
            IssueType issueType = this.getIssueType(issueTypeVo.getId());
            IspField ispField = issueType.getIspField();
            if(ispField != null){
                issueTypeVo.setIspFieldVo(ConvertUtil.copyProperties(issueType.getIspField(), IspFieldVo.class));
            }
        }
    }
    //  이슈 유형에 연결된 호스팅 정보를 셋팅한다.
    private void setUseIssueTypeByHostingField(List<IssueTypeVo> issueTypeVos) {
        for (IssueTypeVo issueTypeVo : issueTypeVos){
            IssueType issueType = this.getIssueType(issueTypeVo.getId());
            HostingField hostingField = issueType.getHostingField();
            if(hostingField != null){
                issueTypeVo.setHostingFieldVo(ConvertUtil.copyProperties(issueType.getHostingField(), HostingFieldVo.class));
            }
        }
    }
    //  이슈 유형 상세 정보를 조회한다.
    @Override
    @Transactional(readOnly = true)
@@ -220,6 +276,19 @@
            Project project = issueType.getProject();
            if (project != null) {
                issueTypeVo.setProjectVo(ConvertUtil.copyProperties(issueType.getProject(), ProjectVo.class));
            }
            CompanyField companyField = issueType.getCompanyField();
            if(companyField != null){
                issueTypeVo.setCompanyFieldVo(ConvertUtil.copyProperties(issueType.getCompanyField(), CompanyFieldVo.class));
            }
            IspField ispField = issueType.getIspField();
            if (ispField != null){
                issueTypeVo.setIspFieldVo(ConvertUtil.copyProperties(issueType.getIspField(), IspFieldVo.class));
            }
            HostingField hostingField = issueType.getHostingField();
            if (hostingField != null){
                issueTypeVo.setHostingFieldVo(ConvertUtil.copyProperties(issueType.getHostingField(), HostingFieldVo.class));
            }
        }
@@ -249,6 +318,19 @@
        Project project = this.projectService.getProject(issueTypeForm.getProjectId());
        issueType.setProject(project);
        if(issueTypeForm.getCompanyId() != null){
            CompanyField companyField = this.companyFieldService.getCompany(issueTypeForm.getCompanyId());
            issueType.setCompanyField(companyField);
        }
        if(issueTypeForm.getIspId() != null) {
            IspField ispField = this.ispFieldService.getIsp(issueTypeForm.getIspId());
            issueType.setIspField(ispField);
        }
        if(issueTypeForm.getHostingId() != null) {
            HostingField hostingField = this.hostingFieldService.getHosting(issueTypeForm.getHostingId());
            issueType.setHostingField(hostingField);
        }
        this.issueTypeRepository.saveAndFlush(issueType);
        return issueType;
src/main/java/kr/wisestone/owl/vo/IssueTypeVo.java
@@ -12,6 +12,9 @@
    private String color;
    private WorkflowVo workflowVo;
    private ProjectVo projectVo;
    private CompanyFieldVo companyFieldVo;
    private IspFieldVo ispFieldVo;
    private HostingFieldVo hostingFieldVo;
    private Boolean modifyPermissionCheck = Boolean.TRUE;   //  이슈 유형은 모든 사람들이 수정, 삭제할 수 있어서 기본 값이 True
    public IssueTypeVo(){}
@@ -71,4 +74,28 @@
    public void setProjectVo(ProjectVo projectVo) {
        this.projectVo = projectVo;
    }
    public CompanyFieldVo getCompanyFieldVo() {
        return companyFieldVo;
    }
    public void setCompanyFieldVo(CompanyFieldVo companyFieldVo) {
        this.companyFieldVo = companyFieldVo;
    }
    public IspFieldVo getIspFieldVo() {
        return ispFieldVo;
    }
    public void setIspFieldVo(IspFieldVo ispFieldVo) {
        this.ispFieldVo = ispFieldVo;
    }
    public HostingFieldVo getHostingFieldVo() {
        return hostingFieldVo;
    }
    public void setHostingFieldVo(HostingFieldVo hostingFieldVo) {
        this.hostingFieldVo = hostingFieldVo;
    }
}
src/main/java/kr/wisestone/owl/web/condition/IssueTypeCondition.java
@@ -18,6 +18,10 @@
    private String deep;    //  상세 조회에서 가져올 데이터의 종류를 결정한다.
    private boolean UseProject = false;     // 프로젝트에서 사용중인 이슈타입을 가져올때 사용
    private Long companyId;
    private Long ispId;
    private Long hostingId;
    public IssueTypeCondition(){}
    public static IssueTypeCondition make(Map<String, Object> params) {
@@ -91,4 +95,28 @@
    public void setUseProject(boolean useProject) {
        UseProject = useProject;
    }
    public Long getCompanyId() {
        return companyId;
    }
    public void setCompanyId(Long companyId) {
        this.companyId = companyId;
    }
    public Long getIspId() {
        return ispId;
    }
    public void setIspId(Long ispId) {
        this.ispId = ispId;
    }
    public Long getHostingId() {
        return hostingId;
    }
    public void setHostingId(Long hostingId) {
        this.hostingId = hostingId;
    }
}
src/main/java/kr/wisestone/owl/web/form/IssueTypeForm.java
@@ -17,6 +17,9 @@
    private String color;
    private Long workflowId;
    private Long projectId;
    private Long companyId;
    private Long ispId;
    private Long hostingId;
    private List<Long> removeIds = Lists.newArrayList();
    public IssueTypeForm(){}
@@ -90,4 +93,28 @@
    public void setProjectId(Long projectId) {
        this.projectId = projectId;
    }
    public Long getCompanyId() {
        return companyId;
    }
    public void setCompanyId(Long companyId) {
        this.companyId = companyId;
    }
    public Long getIspId() {
        return ispId;
    }
    public void setIspId(Long ispId) {
        this.ispId = ispId;
    }
    public Long getHostingId() {
        return hostingId;
    }
    public void setHostingId(Long hostingId) {
        this.hostingId = hostingId;
    }
}
src/main/resources/migration/V1_11__Alter_Table.sql
@@ -190,3 +190,8 @@
-- issue_risk 테이블 부서변경 카운트 컬럼 추가
ALTER TABLE `issue_risk` ADD COLUMN `change_department_count` BIGINT(20) NOT NULL DEFAULT '0';
-- issue_type 테이블 업체,ISP,호스팅 ID 컬럼 추가
ALTER TABLE `issue_type` ADD COLUMN  `company_id` BIGINT(20) NULL;
ALTER TABLE `issue_type` ADD COLUMN  `isp_id` BIGINT(20) NULL;
ALTER TABLE `issue_type` ADD COLUMN  `hosting_id` BIGINT(20) NULL;