From a993b44941dfd5de7df8a15a7f1c1fb314b00c22 Mon Sep 17 00:00:00 2001 From: wyu <kknd09321@nate.com> Date: 목, 18 11월 2021 15:18:33 +0900 Subject: [PATCH] 이슈 수정 진행[프론트] --- src/main/java/kr/wisestone/owl/service/impl/IssueServiceImpl.java | 121 +++++++++++++++++++++++++++++++++------- 1 files changed, 100 insertions(+), 21 deletions(-) diff --git a/src/main/java/kr/wisestone/owl/service/impl/IssueServiceImpl.java b/src/main/java/kr/wisestone/owl/service/impl/IssueServiceImpl.java index c6c5436..276433f 100644 --- a/src/main/java/kr/wisestone/owl/service/impl/IssueServiceImpl.java +++ b/src/main/java/kr/wisestone/owl/service/impl/IssueServiceImpl.java @@ -44,7 +44,6 @@ import javax.servlet.http.HttpServletRequest; import java.io.IOException; import java.util.*; -import java.util.concurrent.locks.Condition; @Service public class IssueServiceImpl extends AbstractServiceImpl<Issue, Long, JpaRepository<Issue, Long>> implements IssueService { @@ -89,6 +88,15 @@ @Autowired private IssueCustomFieldValueService issueCustomFieldValueService; + + @Autowired + private IssueCompanyService issueCompanyService; + + @Autowired + private IssueIspService issueIspService; + + @Autowired + private IssueHostingService issueHostingService; @Autowired private IssueUserService issueUserService; @@ -197,22 +205,6 @@ issue.setPriority(priority); issue.setSeverity(severity); - // �뾽泥� �븘�뱶 �쑀�슚�꽦 泥댄겕 - if(issueForm.getCompanyId() != null){ - CompanyField companyField = this.companyFieldService.getCompany(issueForm.getCompanyId()); - issue.setCompanyField(companyField); - } - // ISP �븘�뱶 �쑀�슚�꽦 泥댄겕 - if(issueForm.getIspId() != null) { - IspField ispField = this.ispFieldService.getIsp(issueForm.getIspId()); - issue.setIspFieldId(ispField); - } - // HOSTING �븘�뱶 �쑀�슚�꽦 泥댄겕 - if (issueForm.getHostingId() != null){ - HostingField hostingField = this.hostingFieldService.getHosting(issueForm.getHostingId()); - issue.setHostingFieldId(hostingField); - } - issue.setIssueNumber(this.issueNumberGeneratorService.generateIssueNumber(project)); // 媛� �봽濡쒖젥�듃�쓽 怨좎쑀 �씠�뒋 踰덊샇 �깮�꽦 this.issueRepository.saveAndFlush(issue); @@ -241,6 +233,12 @@ this.reservationIssueEmail(issue.getId(), EmailType.ISSUE_ADD); // �궗�슜�옄 �떆�뒪�뀥 湲곕뒫 �궗�슜 �젙蹂� �닔吏� log.info(ElasticSearchUtil.makeUserActiveHistoryMessage(this.webAppUtil.getLoginUser(), ElasticSearchConstants.ISSUE_ADD)); + // �뾽泥� �젙蹂� ���옣 + this.issueCompanyService.modifyIssueCompanyField(issue, issueForm.getIssueCompanyFields()); + // ISP �젙蹂� ���옣 + this.issueIspService.modifyIssueIspField(issue, issueForm.getIssueIspFields()); + // HOSTING �젙蹂� ���옣 + this.issueHostingService.modifyIssueHostingField(issue, issueForm.getIssueHostingFields()); return issue; } @@ -345,6 +343,9 @@ issueMap.put("customFields", customFields); issueMap.put("description", issue.getDescription()); + + //�뾽泥�,ISP,HOSTING 異붽� + StringBuilder attachedFileBuilder = new StringBuilder(); @@ -454,7 +455,7 @@ @Override @Transactional(readOnly = true) public List<IssueVo> findChartIssue(Map<String, Object> resJsonData, - IssueCondition issueCondition, Pageable pageable) { + IssueCondition issueCondition, Pageable pageable) { // 寃��깋 議곌굔�쓣 留뚮뱺�떎 if (!this.makeIssueSearchCondition(issueCondition,Lists.newArrayList("01", "02", "03"), pageable)) { @@ -564,9 +565,16 @@ // �궗�슜�옄 �젙�쓽 �븘�뱶 �젙蹂� 異붽� this.setIssueCustomFieldValue(issueVos, issueCondition); + // �뾽泥� �젙蹂� 異붽� + //this.setIssueCompanyField(issueVos, issueCondition); + // ISP �젙蹂� 異붽� + //this.setIssueIspField(issueVos, issueCondition); + // HOSTING �젙蹂� 異붽� + //this.setIssueHostingField(issueVos, issueCondition); + } - // 寃��깋 議곌굔�쓣 留뚮뱺�떎 + // 寃��깋 議곌굔�쓣 留뚮뱺�떎 private boolean makeIssueSearchCondition(IssueCondition condition, List<String> projectStatues, Pageable pageable) { if (pageable != null) { condition.setPage(pageable.getPageNumber() * pageable.getPageSize()); @@ -799,6 +807,7 @@ this.setAttachedFiles(issue, issueVo); // 泥⑤� �뙆�씪 �젙蹂� �뀑�똿 this.setIssueCustomFields(issue, issueVo); // �궗�슜�옄 �젙�쓽 �븘�뱶 媛� �젙蹂� �뀑�똿 this.setRelationIssue(issue, issueVo); //�뿰愿� �씪媛� �뀑�똿 + this.setDownIssues(issue, issueVo); break; @@ -812,6 +821,13 @@ log.info(ElasticSearchUtil.makeUserActiveHistoryMessage(this.webAppUtil.getLoginUser(), ElasticSearchConstants.ISSUE_DETAIL)); resJsonData.put(Constants.RES_KEY_CONTENTS, issueVo); + } + + // �븯�쐞 �씠�뒋 �젙蹂대�� �뀑�똿�븳�떎 + private void setDownIssues(Issue issue, IssueVo issueVo) { + List<Issue> downIssues = this.issueRepository.findByParentIssueId(issue.getId()); + List<IssueVo> issueVos = ConvertUtil.convertObjectsToClasses(downIssues, IssueVo.class); + issueVo.setIssueDownVos(issueVos); } // �씠�뒋 �긽�꽭 �젙蹂대�� �뀑�똿�븳�떎. @@ -833,6 +849,10 @@ this.setIssueComments(issue, issueVo); // �뙎湲� �젙蹂� �뀑�똿 this.setIssueHistory(issue, issueVo); // �씠�뒋 湲곕줉 �젙蹂� �뀑�똿 this.setRelationIssue(issue, issueVo); //�뿰愿� �씪媛� �뀑�똿 + this.setDownIssues(issue, issueVo); + this.setIssueCompanyField(issue, issueVo); //�뾽泥� �젙蹂� �꽭�똿 + this.setIssueIspField(issue, issueVo); //ISP �젙蹂� �꽭�똿 + this.setIssueHostingField(issue, issueVo); //HOSTING �젙蹂� �꽭�똿 } // �벑濡앹옄 �젙蹂� 異붽� @@ -1039,9 +1059,15 @@ if (!StringUtils.isEmpty(detectIssueChange.toString())) { this.issueHistoryService.addIssueHistory(issue, IssueHistoryType.MODIFY, detectIssueChange.toString()); } - // �궗�슜�옄 �떆�뒪�뀥 湲곕뒫 �궗�슜 �젙蹂� �닔吏� log.info(ElasticSearchUtil.makeUserActiveHistoryMessage(this.webAppUtil.getLoginUser(), ElasticSearchConstants.ISSUE_MODIFY)); + + // �뾽泥� �젙蹂� ���옣 + this.issueCompanyService.modifyIssueCompanyField(issue, issueForm.getIssueCompanyFields()); + // ISP �젙蹂� ���옣 + this.issueIspService.modifyIssueIspField(issue, issueForm.getIssueIspFields()); + // HOSTING �젙蹂� ���옣 + this.issueHostingService.modifyIssueHostingField(issue, issueForm.getIssueHostingFields()); return issue; } @@ -1519,7 +1545,7 @@ excelInfo.addAttrInfos(new ExportExcelAttrVo("title", this.messageAccessor.message("common.issueTitle"), 40, ExportExcelAttrVo.ALIGN_LEFT)); // �씠�뒋 �젣紐� excelInfo.addAttrInfos(new ExportExcelAttrVo("description", this.messageAccessor.message("common.content"), 60, ExportExcelAttrVo.ALIGN_LEFT)); // �궡�슜 excelInfo.addAttrInfos(new ExportExcelAttrVo("issueTypeName", this.messageAccessor.message("common.issueType"), 10, ExportExcelAttrVo.ALIGN_CENTER)); // �씠�뒋 ���엯 - excelInfo.addAttrInfos(new ExportExcelAttrVo("department", this.messageAccessor.message("common.department"), 20, ExportExcelAttrVo.ALIGN_CENTER)); // �떞�떦遺��꽌 + excelInfo.addAttrInfos(new ExportExcelAttrVo("departments", this.messageAccessor.message("common.department"), 20, ExportExcelAttrVo.ALIGN_CENTER)); // �떞�떦遺��꽌 excelInfo.addAttrInfos(new ExportExcelAttrVo("priorityName", this.messageAccessor.message("common.priority"), 6, ExportExcelAttrVo.ALIGN_CENTER)); // �슦�꽑�닚�쐞 excelInfo.addAttrInfos(new ExportExcelAttrVo("severityName", this.messageAccessor.message("common.importance"), 6, ExportExcelAttrVo.ALIGN_CENTER)); // 以묒슂�룄 excelInfo.addAttrInfos(new ExportExcelAttrVo("register", this.messageAccessor.message("common.register"), 20, ExportExcelAttrVo.ALIGN_CENTER)); // �벑濡앹옄 @@ -1597,6 +1623,39 @@ } } + // �뾽泥� �젙蹂� 異붽� + private void setIssueCompanyField(Issue issue, IssueVo issueVo) { + List<IssueCompanyVo> issueCompanyVos = Lists.newArrayList(); + + for(IssueCompany issueCompany : issue.getIssueCompanies()){ + IssueCompanyVo issueCompanyVo = ConvertUtil.copyProperties(issueCompany.getCompanyField(), IssueCompanyVo.class); + issueCompanyVos.add(issueCompanyVo); + } + issueVo.setIssueCompanyVos(issueCompanyVos); + } + + // Isp �젙蹂� 異붽� + private void setIssueIspField(Issue issue, IssueVo issueVo) { + List<IssueIspVo> issueIspVos = Lists.newArrayList(); + + for(IssueIsp issueIsp : issue.getIssueIspFields()){ + IssueIspVo issueIspVo = ConvertUtil.copyProperties(issueIsp.getIspField(), IssueIspVo.class); + issueIspVos.add(issueIspVo); + } + issueVo.setIssueIspVos(issueIspVos); + } + + // Hosting �젙蹂� 異붽� + private void setIssueHostingField(Issue issue, IssueVo issueVo) { + List<IssueHostingVo> issueHostingVos = Lists.newArrayList(); + + for(IssueHosting issueHosting : issue.getIssueHostingFields()){ + IssueHostingVo issueHostingVo = ConvertUtil.copyProperties(issueHosting.getHostingField(), IssueHostingVo.class); + issueHostingVos.add(issueHostingVo); + } + issueVo.setIssueHostingVos(issueHostingVos); + } + // �뿰愿��씪媛� �젙蹂� 異붽� private void setRelationIssue(IssueVo issueVo, Long issueId) { List<IssueVo> relationIssues = this.issueRelationService.findRelationIssue(issueId); @@ -1624,6 +1683,7 @@ result.put("description", description); result.put("issueTypeName", issueVo.getIssueTypeName()); result.put("assignees", CommonUtil.convertUserVosToString(issueVo.getUserVos())); + result.put("departments", CommonUtil.convertDepartmentVosToString(issueVo.getDepartmentVos())); result.put("priorityName", issueVo.getPriorityName()); result.put("severityName", issueVo.getSeverityName()); @@ -1649,6 +1709,8 @@ result.put("customField_" + issueCustomFieldValueVo.getCustomFieldVo().getId().toString(), useValue + ", " + issueCustomFieldValueVo.getUseValue()); } } + + //�뾽泥�, ISP, �샇�뒪�똿 異붽� results.add(result); } catch (Exception e) { @@ -1813,6 +1875,8 @@ // �씠�뒋 �궗�슜�옄 �젙�쓽 媛� �븘�뱶 踰뚰겕 �벑濡� this.bulkInsertIssueCustomFieldValue(issueForms, issueTypeCustomFieldMaps); // 3.628 - 3.445 + + // �뾽泥�,ISP,�샇�뒪�똿 異붽� /*serviceStart.stop(); log.debug("2李� ���옣 �떆媛� : " + serviceStart.getTime());*/ @@ -2512,4 +2576,19 @@ return tasks; } + + @Transactional + @Override + public void modifyParentIssue(IssueForm issueForm) { + Issue issue = this.issueRepository.getOne(issueForm.getId()); + Long parentIssueId = issueForm.getParentIssueId(); + if (parentIssueId != null) { + Issue parentIssue = this.issueRepository.getOne(parentIssueId); + issue.setParentIssue(parentIssue); + } else { + issue.setParentIssue(null); + } + + this.issueRepository.saveAndFlush(issue); + } } -- Gitblit v1.8.0