src/main/java/kr/wisestone/owl/domain/IssueType.java | ●●●●● 패치 | 보기 | raw | blame | 히스토리 | |
src/main/java/kr/wisestone/owl/service/impl/IssueTypeServiceImpl.java | ●●●●● 패치 | 보기 | raw | blame | 히스토리 | |
src/main/java/kr/wisestone/owl/vo/IssueTypeVo.java | ●●●●● 패치 | 보기 | raw | blame | 히스토리 | |
src/main/java/kr/wisestone/owl/web/condition/IssueTypeCondition.java | ●●●●● 패치 | 보기 | raw | blame | 히스토리 | |
src/main/java/kr/wisestone/owl/web/form/IssueTypeForm.java | ●●●●● 패치 | 보기 | raw | blame | 히스토리 | |
src/main/resources/migration/V1_11__Alter_Table.sql | ●●●●● 패치 | 보기 | 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;