From 4519926075b2db1222e0fae91f55607e0c2d3a44 Mon Sep 17 00:00:00 2001 From: 이민희 <mhlee@maprex.co.kr> Date: 금, 07 1월 2022 14:10:01 +0900 Subject: [PATCH] - 이슈 엑셀 임포트시에 isp 검색한 데이터 가져오도록 수정 및 기간 미입력 시에도 추가 되도록 수정 --- src/main/java/kr/wisestone/owl/service/impl/IssueServiceImpl.java | 119 +++++++++++++++++++++++++++++++++++++++-------------------- 1 files changed, 79 insertions(+), 40 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 7be00d2..935974a 100644 --- a/src/main/java/kr/wisestone/owl/service/impl/IssueServiceImpl.java +++ b/src/main/java/kr/wisestone/owl/service/impl/IssueServiceImpl.java @@ -16,10 +16,7 @@ import kr.wisestone.owl.mapper.IssueMapper; import kr.wisestone.owl.mapper.IssueRelationMapper; import kr.wisestone.owl.mapper.ProjectMapper; -import kr.wisestone.owl.repository.IssueRelationRepository; -import kr.wisestone.owl.repository.IssueRepository; -import kr.wisestone.owl.repository.UserDepartmentRepository; -import kr.wisestone.owl.repository.WorkflowDepartmentRepository; +import kr.wisestone.owl.repository.*; import kr.wisestone.owl.service.*; import kr.wisestone.owl.util.*; import kr.wisestone.owl.util.DateUtil; @@ -181,6 +178,15 @@ private IssueMapper issueMapper; @Autowired + private IssueCompanyRepository issueCompanyRepository; + + @Autowired + private IssueIspRepository issueIspRepository; + + @Autowired + private IssueHostingRepository issueHostingRepository; + + @Autowired private ExcelConditionCheck excelConditionCheck; @Autowired @@ -328,9 +334,8 @@ List<Map<String, Object>> issueHostingFields = Lists.newArrayList(); for (Map<String, Object> issueCustomField : issueForm.getIssueCustomFields()) { - int customFieldId = (Integer) issueCustomField.get("customFieldId"); - Long customId = (long) customFieldId; - CustomField customField = this.customFieldService.getCustomField(customId); + Long customFieldId = MapUtil.getLong(issueCustomField, "customFieldId"); + CustomField customField = this.customFieldService.getCustomField(customFieldId); if(customField != null && customField.getCustomFieldType().toString().equals("SITE") && customField.getName().equals("�룄硫붿씤")) { String useValue = issueCustomField.get("useValue").toString(); if(companyFields != null && companyFields.size() > 0) { @@ -1472,17 +1477,22 @@ // �씠�뒋 �긽�꽭 �젙蹂대�� 議고쉶�븳�떎. @Override @Transactional(readOnly = true) - public void detailIssue(Map<String, Object> resJsonData, IssueCondition issueCondition, Pageable relPageable, Pageable downPageable) { + public void detailIssue(Map<String, Object> resJsonData, IssueCondition issueCondition) { IssueVo issueVo = new IssueVo(); + Pageable relPageable = issueCondition.getRelPageable(); + Pageable downPageable = issueCondition.getDownPageable(); if (issueCondition.getId() != null) { Issue issue = this.getIssue(issueCondition.getId()); issueVo = ConvertUtil.copyProperties(issue, IssueVo.class); User user = this.webAppUtil.getLoginUserObject(); - issueVo.setRelPage(relPageable.getPageNumber() * relPageable.getPageSize()); - issueVo.setRelPageSize(relPageable.getPageSize()); + issueVo.setRelPageNumber(relPageable.getPageNumber()); + issueVo.setRelPageSize(relPageable.getPageSize()); + issueVo.setRelPage(relPageable.getPageNumber() * relPageable.getPageSize()); + + issueVo.setDownPageNumber(downPageable.getPageNumber()); issueVo.setDownPage(downPageable.getPageNumber() * downPageable.getPageSize()); issueVo.setDownPageSize(downPageable.getPageSize()); @@ -1510,19 +1520,10 @@ break; } } - Long relTotalCount = issueVo.getRelTotalCount(); - int relTotalPage = issueVo.getRelTotalPage(); - - Long downTotalCount = issueVo.getDownTotalCount(); - int downTotalPage = issueVo.getDownTotalPage(); // �궗�슜�옄 �떆�뒪�뀥 湲곕뒫 �궗�슜 �젙蹂� �닔吏� log.info(ElasticSearchUtil.makeUserActiveHistoryMessage(this.webAppUtil.getLoginUser(), ElasticSearchConstants.ISSUE_DETAIL)); resJsonData.put(Constants.RES_KEY_CONTENTS, issueVo); - resJsonData.put(Constants.REQ_KEY_RELATION_ISSUE_PAGE_VO, new ResPage(relPageable.getPageNumber(), relPageable.getPageSize(), - relTotalPage, relTotalCount)); - resJsonData.put(Constants.REQ_KEY_DOWN_ISSUE_PAGE_VO, new ResPage(downPageable.getPageNumber(), downPageable.getPageSize(), - downTotalPage, downTotalCount)); } // �뀒�씠釉� �꽕�젙 �뀑�똿 @@ -1547,13 +1548,18 @@ // �븯�쐞 �씠�뒋 �젙蹂대�� �뀑�똿�븳�떎 private void setDownIssues(Issue issue, IssueVo issueVo) { - //List<Issue> downIssues = this.issueRepository.findByParentIssueId(issue.getId()); - int startPage = (int) Math.floor(issueVo.getDownPage()/issueVo.getDownPageSize()); - Pageable pageable = PageRequest.of(startPage, issueVo.getDownPageSize()); - Page<Issue> downIssues = this.issueRepository.findByParentIssueId(issue.getId(), pageable); - issueVo.setDownTotalPage(downIssues.getTotalPages()); - issueVo.setDownTotalCount(downIssues.getTotalElements()); + Page<Issue> downIssues = null; + + List<Issue> downIssueList = this.issueRepository.findByParentIssueId(issue.getId()); + if(downIssueList != null && downIssueList.size() > 0) { + int startPage = (int) Math.floor(issueVo.getDownPage()/issueVo.getDownPageSize()); + Pageable pageable = PageRequest.of(startPage, issueVo.getDownPageSize()); + downIssues = this.issueRepository.findByParentIssueId(issue.getId(), pageable); + } if(downIssues != null){ + issueVo.setDownTotalPage(downIssues.getTotalPages()); + issueVo.setDownTotalCount(downIssues.getTotalElements()); + List<IssueVo> resultList = new ArrayList<>(); for(Issue downIssue : downIssues){ IssueVo downIssueVo = ConvertUtil.copyProperties(downIssue, IssueVo.class); @@ -1654,14 +1660,14 @@ // �뿰愿� �씠�뒋 �젙蹂대�� �뀑�똿�븳�떎 private void setRelationIssue(Issue issue, IssueVo issueVo) { //Set<IssueRelation> issueRelations = issue.getIssueRelations(); + List<Map<String, Object>> results = this.issueRelationMapper.findByIssueId(issueVo); Long totalCount = this.issueRelationMapper.count(issueVo); - int totalPage = (int) Math.ceil((totalCount - 1) / issueVo.getRelPageSize()) + 1; - issueVo.setRelTotalPage(totalPage); - issueVo.setRelTotalCount(totalCount); - if (issue != null && issueVo != null && results.size() > 0) { + int totalPage = (int) Math.ceil((totalCount - 1) / issueVo.getRelPageSize()) + 1; + issueVo.setRelTotalPage(totalPage); + issueVo.setRelTotalCount(totalCount); for (Map<String, Object> result : results) { IssueRelationVo issueRelationVo = ConvertUtil.convertMapToClass(result, IssueRelationVo.class); Issue relationIssue = this.findOne(issueRelationVo.getId()); @@ -2970,7 +2976,7 @@ Workspace workspace = this.workspaceService.getWorkspace(this.userService.getUser(this.webAppUtil.getLoginId()).getLastWorkspaceId()); // �씠�뒋瑜� �꽔�쑝�젮�뒗 �뾽臾� 怨듦컙 // �씠�뒋�쓽 二쇱슂 �냽�꽦�쓣 map �뿉 ���옣�븯�뿬 �뿊�� import �뿉�꽌 吏��젙�븳 ���긽(�씠�뒋 �냽�꽦)�쓣 鍮좊Ⅴ寃� 李얠쓣 �닔 �엳寃� �븳�떎. - this.IssueAttributeMapToList(priorityMaps, severityMaps, departmentMaps, customFieldMaps, issueTypeCustomFieldMaps); + this.IssueAttributeMapToList(issueForm, priorityMaps, severityMaps, departmentMaps, customFieldMaps, issueTypeCustomFieldMaps); // 0.237 - 0.230 List<IssueForm> issueForms = Lists.newArrayList(); @@ -3051,7 +3057,9 @@ issue.setIssueType(issueType); issue.setProject(project); issue.setIssueNumber(issueNumber); - issue.setParentIssue(this.getIssue(saveIssueForm.getParentIssueId())); + if (saveIssueForm.getParentIssueId() != null && saveIssueForm.getParentIssueId() > -1) { + issue.setParentIssue(this.getIssue(saveIssueForm.getParentIssueId())); + } issue = this.issueRepository.saveAndFlush(issue); @@ -3062,10 +3070,12 @@ issueDepartment.setWorkspace(workspace); List<Long> departmentsIds = this.workflowDepartmentService.findFirstDepartmentIds(workflow); - for (Long departmentId : departmentsIds) { - issueDepartment.setDepartment(this.departmentService.getDepartment(departmentId)); + if (departmentsIds != null && departmentsIds.size() > 0) { + for (Long departmentId : departmentsIds) { + issueDepartment.setDepartment(this.departmentService.getDepartment(departmentId)); + } + issue.addIssueDepartment(issueDepartment); } - issue.addIssueDepartment(issueDepartment); saveIssueForm.setIssueStatusId(issueStatus.getId()); } @@ -3088,8 +3098,6 @@ // �씠�뒋 �궗�슜�옄 �젙�쓽 媛� �븘�뱶 踰뚰겕 �벑濡� this.bulkInsertIssueCustomFieldValue(issueForms, issueTypeCustomFieldMaps); // 3.628 - 3.445 - - // �뾽泥�,ISP,�샇�뒪�똿 異붽� /*serviceStart.stop(); log.debug("2李� ���옣 �떆媛� : " + serviceStart.getTime());*/ @@ -3202,6 +3210,29 @@ issueCustomField.put("registerId", this.webAppUtil.getLoginId()); issueCustomFieldValueMaps.add(issueCustomField); } + IssueForm partners = this.findCompanyField(issueForm); // 媛숈� �룄硫붿씤 �뾽泥� 李얘린 + Issue issue = this.findOne(issueForm.getId()); + if (partners.getIssueCompanyFields() != null && partners.getIssueCompanyFields().size() > 0) { + for (Map<String, Object> company : partners.getIssueCompanyFields()) { + IssueCompany issueCompany = ConvertUtil.convertMapToClass(company, IssueCompany.class); + issueCompany.setIssue(issue); + this.issueCompanyRepository.saveAndFlush(issueCompany); + } + } + if (partners.getIssueIspFields() != null && partners.getIssueIspFields().size() > 0) { + for (Map<String, Object> isp : partners.getIssueIspFields()) { + IssueIsp issueIsp = ConvertUtil.convertMapToClass(isp, IssueIsp.class); + issueIsp.setIssue(issue); + this.issueIspRepository.saveAndFlush(issueIsp); + } + } + if (partners.getIssueHostingFields() != null && partners.getIssueHostingFields().size() > 0) { + for (Map<String, Object> hosting : partners.getIssueHostingFields()) { + IssueHosting issueHosting = ConvertUtil.convertMapToClass(hosting, IssueHosting.class); + issueHosting.setIssue(issue); + this.issueHostingRepository.saveAndFlush(issueHosting); + } + } } if (issueCustomFieldValueMaps.size() > 0) { @@ -3210,8 +3241,16 @@ } // �씠�뒋�쓽 二쇱슂 �냽�꽦�쓣 map �뿉 ���옣�븯�뿬 �뿊�� import �뿉�꽌 吏��젙�븳 ���긽(�씠�뒋 �냽�꽦)�쓣 鍮좊Ⅴ寃� 李얠쓣 �닔 �엳寃� �븳�떎. - private void IssueAttributeMapToList(Map<String, Priority> priorityMaps, Map<String, Severity> severityMaps, + private void IssueAttributeMapToList(IssueForm issueForm, Map<String, Priority> priorityMaps, Map<String, Severity> severityMaps, Map<String, DepartmentVo> departmentMaps, Map<String, CustomField> customFieldMaps,Map<String, Long> issueTypeCustomFieldMaps) { + + Project project = this.projectService.getProject(issueForm.getProjectId()); + + for (IssueTypeCustomField issueTypeCustomField : project.getIssueTypeCustomFields()) { + // 鍮좊Ⅴ寃� 李얘린 �쐞�빐 �씠�뒋 ���엯 �븘�씠�뵒 + �궗�슜�옄 �젙�쓽 �븘�뱶 �븘�씠�뵒瑜� �궎濡� �븳�떎. + String makeKey = issueTypeCustomField.getIssueType().getId().toString() + issueTypeCustomField.getCustomField().getId().toString(); + issueTypeCustomFieldMaps.put(makeKey, issueTypeCustomField.getId()); + } // �슦�꽑�닚�쐞瑜� 諛붾줈 李얠쓣 �닔 �엳寃� 以�鍮� List<Priority> priorities = this.priorityService.findByWorkspaceId(); @@ -3274,13 +3313,13 @@ break;*/ case 4: // �떆�옉�씪�쓣 IssueForm �뿉 ���옣�븳�떎. - if (cell != null) { + if (cell != null && cell.getCellType() != Cell.CELL_TYPE_BLANK) { this.setIssueFormPeriod(cell, issueForm, true, rowIndex); } break; case 5: // 醫낅즺�씪�쓣 IssueForm �뿉 ���옣�븳�떎. - if (cell != null) { + if (cell != null && cell.getCellType() != Cell.CELL_TYPE_BLANK) { this.setIssueFormPeriod(cell, issueForm, false, rowIndex); } break; @@ -3396,7 +3435,7 @@ // 媛믪씠 怨듬갚�씠硫� 以묒� String cellValue = CommonUtil.convertExcelStringToCell(cell); - if (StringUtils.isEmpty(cellValue)) { + if (StringUtils.isEmpty(cellValue) || !cell.toString().equals("null")) { return; } -- Gitblit v1.8.0