From bb9cc79a03a90cb2a6a03275f6ff6d8ea7d2fc5e Mon Sep 17 00:00:00 2001 From: 이민희 <mhlee@maprex.co.kr> Date: 목, 25 11월 2021 11:16:45 +0900 Subject: [PATCH] 이슈 유형 - 업체,isp,호스팅 정보 추가 --- src/main/java/kr/wisestone/owl/domain/IssueType.java | 36 +++++++++ src/main/java/kr/wisestone/owl/vo/IssueTypeVo.java | 27 ++++++ src/main/resources/migration/V1_11__Alter_Table.sql | 5 + src/main/java/kr/wisestone/owl/web/condition/IssueTypeCondition.java | 28 +++++++ src/main/java/kr/wisestone/owl/web/form/IssueTypeForm.java | 27 ++++++ src/main/java/kr/wisestone/owl/service/impl/IssueTypeServiceImpl.java | 82 ++++++++++++++++++++ 6 files changed, 205 insertions(+), 0 deletions(-) diff --git a/src/main/java/kr/wisestone/owl/domain/IssueType.java b/src/main/java/kr/wisestone/owl/domain/IssueType.java index 7c64998..c100ca0 100644 --- a/src/main/java/kr/wisestone/owl/domain/IssueType.java +++ b/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; + } } diff --git a/src/main/java/kr/wisestone/owl/service/impl/IssueTypeServiceImpl.java b/src/main/java/kr/wisestone/owl/service/impl/IssueTypeServiceImpl.java index 2b81ab9..ae2e65f 100644 --- a/src/main/java/kr/wisestone/owl/service/impl/IssueTypeServiceImpl.java +++ b/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; diff --git a/src/main/java/kr/wisestone/owl/vo/IssueTypeVo.java b/src/main/java/kr/wisestone/owl/vo/IssueTypeVo.java index d0581b6..e74ab58 100644 --- a/src/main/java/kr/wisestone/owl/vo/IssueTypeVo.java +++ b/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; + } } diff --git a/src/main/java/kr/wisestone/owl/web/condition/IssueTypeCondition.java b/src/main/java/kr/wisestone/owl/web/condition/IssueTypeCondition.java index bb42b03..3028850 100644 --- a/src/main/java/kr/wisestone/owl/web/condition/IssueTypeCondition.java +++ b/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; + } } diff --git a/src/main/java/kr/wisestone/owl/web/form/IssueTypeForm.java b/src/main/java/kr/wisestone/owl/web/form/IssueTypeForm.java index f180c0f..bbeb99a 100644 --- a/src/main/java/kr/wisestone/owl/web/form/IssueTypeForm.java +++ b/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; + } } diff --git a/src/main/resources/migration/V1_11__Alter_Table.sql b/src/main/resources/migration/V1_11__Alter_Table.sql index c455bc7..88acec5 100644 --- a/src/main/resources/migration/V1_11__Alter_Table.sql +++ b/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; -- Gitblit v1.8.0