From bdb1efdc604fce543e21152b4263a9362f64389f Mon Sep 17 00:00:00 2001 From: minhee <alsdldlfrl@gmail.com> Date: 목, 10 3월 2022 15:35:19 +0900 Subject: [PATCH] - api 이슈 추가 시 입력한 ip에 속해있는 업체정보를 가진 이슈의 하위로 입력되도록 수정 - issue_company 테이블에 ip 컬럼 추가 및 이슈 추가/수정 시 ip 대역대 항목 추가 --- src/main/java/kr/wisestone/owl/service/impl/IssueServiceImpl.java | 344 ++++++++++++++++++++++++++++++++++++++------------------ 1 files changed, 233 insertions(+), 111 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 0e8375e..11bdddd 100644 --- a/src/main/java/kr/wisestone/owl/service/impl/IssueServiceImpl.java +++ b/src/main/java/kr/wisestone/owl/service/impl/IssueServiceImpl.java @@ -310,7 +310,7 @@ } // 以묐났�맂 �긽�쐞 �씠�뒋寃��깋 - List<Issue> issues = this.findIssue(issueApiForm, customFieldApiOverlaps, user.getId()); + List<Issue> issues = this.findIssue(issueApiForm, issueForm, customFieldApiOverlaps, user.getId()); int size = issues.size(); if (size > 0) { Issue targetIssue = issues.get(0); @@ -327,7 +327,6 @@ // �궗�슜�옄 �젙�쓽 �븘�뱶 �꽕�젙 issueForm.setIssueCustomFields(issueApiForm.getCustomFieldValues()); // 媛숈� �룄硫붿씤 �뾽泥� 李얘린 - this.findCompanyField(issueForm); // api �엯�젰媛� �쟻�슜 ConvertUtil.copyProperties(issueApiForm, issueForm); @@ -339,10 +338,15 @@ } } + /** + * �룄硫붿씤�씠 �룞�씪�븳 �뾽泥� 李얘린 + * @param issueForm IssueForm + * @return IssueForm + */ private IssueForm findCompanyField(IssueForm issueForm) { if(issueForm.getIssueCustomFields() != null && issueForm.getIssueCustomFields().size() > 0) { CompanyFieldCondition condition = new CompanyFieldCondition(); - List<Map<String, Object>> companyFields = this.companyFieldService.find(condition); + List<Map<String, Object>> companyFields = Lists.newArrayList(); List<Map<String, Object>> issueCompanyFields = Lists.newArrayList(); List<Map<String, Object>> issueIspFields = Lists.newArrayList(); List<Map<String, Object>> issueHostingFields = Lists.newArrayList(); @@ -350,27 +354,36 @@ for (Map<String, Object> issueCustomField : issueForm.getIssueCustomFields()) { Long customFieldId = MapUtil.getLong(issueCustomField, "customFieldId"); CustomField customField = this.customFieldService.getCustomField(customFieldId); - if(customField != null && customField.getCustomFieldType().toString().equals("SITE") && customField.getName().equals("�룄硫붿씤")) { + if(customField != null && customField.getCustomFieldType().equals(SITE) && customField.getName().equals("�룄硫붿씤")) { String useValue = issueCustomField.get("useValue").toString(); + String[] urlArr = null; + List<String> urls = Lists.newArrayList(); + if (useValue.contains(",")) { + urlArr = useValue.split(","); + urls.addAll(Arrays.asList(urlArr)); + } else { + urls.add(useValue); + } + condition.setUrl(urls); + companyFields = this.companyFieldService.find(condition); + if(companyFields != null && companyFields.size() > 0) { for (Map<String, Object> companyField : companyFields) { CompanyFieldVo companyFieldVo = ConvertUtil.convertMapToClass(companyField, CompanyFieldVo.class); - if(companyFieldVo.getUrl() != null && useValue.equals(companyFieldVo.getUrl())) { - companyField.put("companyId", companyField.get("id")); - issueCompanyFields.add(companyField); - if(companyFieldVo.getIspId() != null && companyFieldVo.getIspId() != -1) { - Map<String, Object> ispField = this.ispFieldService.find(companyFieldVo.getIspId()); - if (ispField != null) { - ispField.put("ispId", ispField.get("id")); - issueIspFields.add(ispField); - } + companyField.put("companyId", companyField.get("id")); + issueCompanyFields.add(companyField); + if(companyFieldVo.getIspId() != null && companyFieldVo.getIspId() != -1) { + Map<String, Object> ispField = this.ispFieldService.find(companyFieldVo.getIspId()); + if (ispField != null) { + ispField.put("ispId", ispField.get("id")); + issueIspFields.add(ispField); } - if(companyFieldVo.getHostingId() != null && companyFieldVo.getHostingId() != -1) { - Map<String, Object> hostingField = this.hostingFieldService.find(companyFieldVo.getHostingId()); - if (hostingField != null) { - hostingField.put("hostingId", hostingField.get("id")); - issueHostingFields.add(hostingField); - } + } + if(companyFieldVo.getHostingId() != null && companyFieldVo.getHostingId() != -1) { + Map<String, Object> hostingField = this.hostingFieldService.find(companyFieldVo.getHostingId()); + if (hostingField != null) { + hostingField.put("hostingId", hostingField.get("id")); + issueHostingFields.add(hostingField); } } } @@ -383,6 +396,41 @@ } return issueForm; + } + + /** + * 議곌굔�뿉 留욌뒗 �뙆�듃�꼫 �젙蹂� 李얘린 + * @param condition CompanyFieldCondition + * @param issueCompanyFields List<Map<String, Object>> + * @param issueIspFields List<Map<String, Object>> + * @param issueHostingFields List<Map<String, Object>> + */ + private void findPartner(CompanyFieldCondition condition, List<Map<String, Object>> issueCompanyFields + , List<Map<String, Object>> issueIspFields, List<Map<String, Object>> issueHostingFields) { + + List<Map<String, Object>> companyFields = this.companyFieldService.find(condition); + + if(companyFields != null && companyFields.size() > 0) { + for (Map<String, Object> companyField : companyFields) { + CompanyFieldVo companyFieldVo = ConvertUtil.convertMapToClass(companyField, CompanyFieldVo.class); + companyField.put("companyId", companyField.get("id")); + issueCompanyFields.add(companyField); + if(companyFieldVo.getIspId() != null && companyFieldVo.getIspId() != -1) { + Map<String, Object> ispField = this.ispFieldService.find(companyFieldVo.getIspId()); + if (ispField != null) { + ispField.put("ispId", ispField.get("id")); + issueIspFields.add(ispField); + } + } + if(companyFieldVo.getHostingId() != null && companyFieldVo.getHostingId() != -1) { + Map<String, Object> hostingField = this.hostingFieldService.find(companyFieldVo.getHostingId()); + if (hostingField != null) { + hostingField.put("hostingId", hostingField.get("id")); + issueHostingFields.add(hostingField); + } + } + } + } } private User convertToUser(String token) { @@ -411,10 +459,12 @@ // 媛��긽 �긽�쐞 �씠�뒋 異붽� parentIssueForm.setUseIssueCustomFields(issueApiForm.getUseIssueCustomFieldIds()); // 媛숈� �룄硫붿씤 �뾽泥� 李얘린 - IssueForm partners = this.findCompanyField(parentIssueForm); - parentIssueForm.setIssueCompanyFields(partners.getIssueCompanyFields()); - parentIssueForm.setIssueIspFields(partners.getIssueIspFields()); - parentIssueForm.setIssueHostingFields(partners.getIssueHostingFields()); + if (parentIssueForm.getIssueCompanyFields() == null) { + IssueForm partners = this.findCompanyField(parentIssueForm); + parentIssueForm.setIssueCompanyFields(partners.getIssueCompanyFields()); + parentIssueForm.setIssueIspFields(partners.getIssueIspFields()); + parentIssueForm.setIssueHostingFields(partners.getIssueHostingFields()); + } Issue issue = addIssue(user, parentIssueForm, null); issues.add(issue); @@ -436,23 +486,62 @@ } // 以묐났�맂 �긽�쐞 �씠�뒋 寃��깋 - private List<Issue> findIssue(IssueApiForm issueApiform, List<CustomFieldApiOverlap> customFieldApiOverlaps, Long userId) { + private List<Issue> findIssue(IssueApiForm issueApiform, IssueForm issueForm, List<CustomFieldApiOverlap> customFieldApiOverlaps, Long userId) { List<IssueCustomFieldValueForm> issueCustomFieldValueForms = issueApiform.getIssueCustomFieldValues(); List<Issue> resultIssueVos = Lists.newArrayList(); String comma = ","; if (issueCustomFieldValueForms.size() > 0) { String concatUseValue = ""; + String customFieldType = ""; int useIdx = 0; + int cntIp = 0; + int cntSite = 0; IssueCustomFieldValueFormComparator comp = new IssueCustomFieldValueFormComparator(); Collections.sort(issueCustomFieldValueForms, comp); List<String> userValues = Lists.newArrayList(); + CompanyFieldCondition condition = new CompanyFieldCondition(); + List<Map<String, Object>> issueCompanyFields = Lists.newArrayList(); + List<Map<String, Object>> issueIspFields = Lists.newArrayList(); + List<Map<String, Object>> issueHostingFields = Lists.newArrayList(); + for (IssueCustomFieldValueForm issueCustomFieldValueForm : issueCustomFieldValueForms) { userValues.add(issueCustomFieldValueForm.getUseValue()); + for(CustomFieldApiOverlap customFieldApiOverlap : customFieldApiOverlaps) { if (customFieldApiOverlap.getCustomField().getId().equals(issueCustomFieldValueForm.getCustomFieldId())) { + + String useValue = issueCustomFieldValueForm.getUseValue(); + if (useValue.contains(" ")) { + useValue = useValue.replace(" ",""); + } + + if (customFieldApiOverlap.getCustomField().getCustomFieldType().equals(IP_ADDRESS)) { + long ip = ConvertUtil.ipToLong(useValue); + customFieldType = IP_ADDRESS.toString(); + if (cntIp == 0){ + condition.setIp(ip); + } + cntIp ++; + } + + if(customFieldApiOverlap.getCustomField().getCustomFieldType().equals(SITE)) { + String[] urlArr = null; + List<String> urls = Lists.newArrayList(); + if (useValue.contains(",")) { + urlArr = useValue.split(","); + urls.addAll(Arrays.asList(urlArr)); + } else { + urls.add(useValue); + } + if (cntSite == 0) { + condition.setUrl(urls); + } + cntSite ++; + } + if (useIdx > 0) { concatUseValue = concatUseValue.concat(comma); } @@ -462,12 +551,29 @@ } } + // 異붽� �븷 url or ip�뿉 �룷�븿�릺�뼱�엳�뒗 �뙆�듃�꼫 李얘린 + this.findPartner(condition, issueCompanyFields, issueIspFields, issueHostingFields); + + issueForm.setIssueCompanyFields(issueCompanyFields); + issueForm.setIssueIspFields(issueIspFields); + issueForm.setIssueHostingFields(issueHostingFields); + IssueCustomFieldValueCondition issueCustomFieldValueCondition = new IssueCustomFieldValueCondition(); issueCustomFieldValueCondition.setUseValue(concatUseValue); issueCustomFieldValueCondition.setUseValues(userValues); issueCustomFieldValueCondition.setIssueTypeId(issueApiform.getIssueTypeId()); + issueCustomFieldValueCondition.setCustomFieldType(customFieldType); // issueCustomFieldValueCondition.setIssueStatusType("CLOSE"); - List<Map<String, Object>> results = this.issueMapper.findByCustomFieldValue(issueCustomFieldValueCondition); + List<Map<String, Object>> results = Lists.newArrayList(); + if (customFieldType.equals(IP_ADDRESS.toString()) && issueForm.getIssueCompanyFields() != null && issueForm.getIssueCompanyFields().size() > 0) { + long ipValue = ConvertUtil.ipToLong(concatUseValue); + issueCustomFieldValueCondition.setUseValue(String.valueOf(ipValue)); + // �븯�쐞�씠�뒋議곌굔�쓽 ���엯�씠 IP�씪 寃쎌슦 媛숈� �뾽泥댁젙蹂댁씤 �씠�뒋 李얘린 + results = this.issueMapper.findByCustomFieldValueOfIp(issueCustomFieldValueCondition); + } else { + results = this.issueMapper.findByCustomFieldValue(issueCustomFieldValueCondition); + } + if (results != null && results.size() > 0) { for (Map<String, Object> result : results) { resultIssueVos.add(this.getIssue(MapUtil.getLong(result, "id"))); @@ -534,6 +640,16 @@ issue = this.issueRepository.saveAndFlush(issue); issue.setReverseIndex(issue.getId() * -1); // 荑쇰━ �냽�룄 媛쒖꽑�쓣 �쐞�빐 由щ쾭�뒪 �씤�뜳�뒪 �깮�꽦 + + if (issueForm.getParentIssueId() != null){ + Issue parentIssue = this.getIssue(issueForm.getParentIssueId()); + if (issueForm.getIsApi().equals(Issue.IS_API_YES) + || (issueForm.getInheritYn() != null && issueForm.getInheritYn())) { + // �븯�쐞�씠�뒋�뿉 �긽�쐞�씠�뒋�쓽 �뙆�듃�꼫 �젙蹂� �쟻�슜 + this.inheritPartners(issue, parentIssue); + } + } + // �떞�떦�옄 吏��젙 //this.issueUserService.modifyIssueUser(issue, project.getWorkspace(), issueForm.getUserIds()); // �떞�떦遺��꽌 吏��젙 @@ -581,15 +697,15 @@ // �븯�쐞�씠�뒋瑜� �깮�꽦�븳�떎. @Override @Transactional - public Issue addDownIssue(IssueForm issueForm, List<MultipartFile> multipartFiles) { + public Issue addDownIssue(Map<String, Object> resJsonData, IssueForm issueForm, List<MultipartFile> multipartFiles) { User user = this.webAppUtil.getLoginUserObject(); - return addDownIssue(user, issueForm, multipartFiles); + return addDownIssue(resJsonData, user, issueForm, multipartFiles); } // �븯�쐞�씠�뒋瑜� �깮�꽦�븳�떎. @Override @Transactional - public Issue addDownIssue(User user, IssueForm issueForm, List<MultipartFile> multipartFiles) { + public Issue addDownIssue(Map<String, Object> resJsonData, User user, IssueForm issueForm, List<MultipartFile> multipartFiles) { StringBuilder detectIssueChange = new StringBuilder(); // �궗�슜�븯怨� �엳�뒗 �뾽臾� 怨듦컙�씠 �솢�꽦 �긽�깭�씤吏� �솗�씤�븳�떎. �궗�슜 怨듦컙�뿉�꽌 濡쒓렇�씤�븳 �궗�슜�옄媛� 鍮꾪솢�꽦�씤吏� �솗�씤�븳�떎. @@ -653,6 +769,7 @@ this.issueHistoryService.addIssueHistory(issue, user, IssueHistoryType.ADD, null); // �씠�뒋 �쐞�뿕 愿�由� �깮�꽦 this.issueRiskService.addIssueRisk(issue, project.getWorkspace()); + // �쁺�냽�꽦 而⑦뀓�뒪�듃 鍮꾩슦湲� this.clear(); // �씠�뒋 �깮�꽦, �궘�젣�떆 �삁�빟 �씠硫붿씪�뿉 �벑濡앺빐�넃�뒗�떎. @@ -662,7 +779,22 @@ UserVo userVo = ConvertUtil.copyProperties(user, UserVo.class); log.info(ElasticSearchUtil.makeUserActiveHistoryMessage(userVo, ElasticSearchConstants.ISSUE_ADD)); + IssueVo issueVo = this.convertToIssueVo(issue); + resJsonData.put(Constants.RES_KEY_CONTENTS, issueVo); + return issue; + } + + /** + * Issue瑜� IssueVo濡� 蹂��솚(�븯�쐞�씠�뒋�쓽 �뙆�듃�꼫 �젙蹂� �긽�냽 �떆 �븘�슂) + * @param issue Issue + * @return IssueVo + */ + private IssueVo convertToIssueVo(Issue issue) { + IssueVo issueVo = ConvertUtil.copyProperties(issue, IssueVo.class); + issueVo.setInheritPartners(issue.getIssueType().getInheritPartners()); + issueVo.setUsePartner(issue.getIssueType().getUsePartner()); + return issueVo; } // �뿰愿��씠�뒋瑜� �깮�꽦�븳�떎. @@ -2576,21 +2708,24 @@ this.messageAccessor.getMessage(MsgConstants.ISSUE_REMOVE_NOT_SELECT)); } - List<Issue> removeIssues = Lists.newArrayList(); + Set<Long> removeIds = new HashSet<>(); for (Long issueId : issueForm.getRemoveIds()) { + removeIds.add(issueId); //�븯�쐞�씠�뒋 泥댄겕 List<Issue> downIssues = this.issueRepository.findByParentIssueId(issueId); if(downIssues != null && downIssues.size() > 0){ for(Issue downIssue : downIssues){ Long downIssueId = downIssue.getId(); - downIssue = this.issueRemoves(downIssueId, user); - removeIssues.add(downIssue); + removeIds.add(downIssueId); } } - Issue issue = this.issueRemoves(issueId, user); - removeIssues.add(issue); } + + for (Long removeId : removeIds) { + this.issueRemoves(removeId, user); + } + // �궗�슜�옄 �떆�뒪�뀥 湲곕뒫 �궗�슜 �젙蹂� �닔吏� log.info(ElasticSearchUtil.makeUserActiveHistoryMessage(this.webAppUtil.getLoginUser(), ElasticSearchConstants.ISSUE_REMOVE)); } @@ -3109,6 +3244,9 @@ Workbook workbook; + IssueType issueType = new IssueType(); + Workflow workflow = new Workflow(); + workbook = WorkbookFactory.create(multipartFile.getInputStream()); Sheet sheet = workbook.getSheetAt(0); int lastRowNum = sheet.getLastRowNum() + 1; @@ -3148,6 +3286,15 @@ companyFieldMaps, ispFieldMaps, hostingFieldMaps, headers); ConvertUtil.copyProperties(issueForm, newIssueForm); + Project project = this.projectService.getProject(newIssueForm.getProjectId()); + Long issueNumber = this.issueNumberGeneratorService.generateIssueNumber(project); + newIssueForm.setIssueNumber(issueNumber); + + issueType = this.issueTypeService.getIssueType(newIssueForm.getIssueTypeId()); + workflow = issueType.getWorkflow(); + IssueStatus issueStatus = this.issueStatusService.findByIssueStatusTypeIsReady(workflow); + + newIssueForm.setIssueStatusId(issueStatus.getId()); issueForms.add(newIssueForm); } } @@ -3157,58 +3304,28 @@ } // 1.176 - // �씠�뒋 �벑濡� -// this.issueMapper.insertBatch(issueForms); + this.issueMapper.insertBatch(issueForms); for (IssueForm saveIssueForm : issueForms) { Issue issue = new Issue(); ConvertUtil.copyProperties(saveIssueForm, issue); - IssueType issueType = this.issueTypeService.getIssueType(saveIssueForm.getIssueTypeId()); - Workflow workflow = issueType.getWorkflow(); - - Project project = this.projectService.getProject(saveIssueForm.getProjectId()); - Long issueNumber = this.issueNumberGeneratorService.generateIssueNumber(project); - - IssueStatus issueStatus = this.issueStatusService.findByIssueStatusTypeIsReady(workflow); - - issue.setPriority(this.priorityService.getPriority(saveIssueForm.getPriorityId())); - issue.setSeverity(this.severityService.getSeverity(saveIssueForm.getSeverityId())); - issue.setIssueStatus(issueStatus); - issue.setIssueType(issueType); - issue.setProject(project); - issue.setIssueNumber(issueNumber); - if (saveIssueForm.getParentIssueId() != null && saveIssueForm.getParentIssueId() > -1) { - issue.setParentIssue(this.getIssue(saveIssueForm.getParentIssueId())); - } - - issue = this.issueRepository.saveAndFlush(issue); - - if (issueForm.getInheritYn() != null && issueForm.getInheritYn() && issue.getParentIssue() != null) { + if (issueForm.getInheritYn() != null && issueForm.getInheritYn() && issueForm.getParentIssueId() != null) { + Issue parentIssue = this.getIssue(issueForm.getParentIssueId()); // �긽�쐞�씠�뒋�쓽 �뙆�듃�꼫 �젙蹂� �긽�냽 - this.inheritPartners(issue, issue.getParentIssue()); + this.inheritPartners(issue, parentIssue); } saveIssueForm.setId(issue.getId()); - IssueDepartment issueDepartment = new IssueDepartment(); - issueDepartment.setIssue(issue); - issueDepartment.setWorkspace(workspace); - + // �썙�겕�뵆濡쒖슦 ��湲� �긽�깭�쓽 遺��꽌 異붽� List<Long> departmentsIds = this.workflowDepartmentService.findFirstDepartmentIds(workflow); if (departmentsIds != null && departmentsIds.size() > 0) { - for (Long departmentId : departmentsIds) { - issueDepartment.setDepartment(this.departmentService.getDepartment(departmentId)); - } - issue.addIssueDepartment(issueDepartment); + this.issueDepartmentService.add(departmentsIds, workspace, issue); } - - saveIssueForm.setIssueStatusId(issueStatus.getId()); - this.setIssuePartners(saveIssueForm, issue); } - // 0.416 - 0.439 @@ -3247,24 +3364,21 @@ * @param issueForm IssueForm */ private void setIssuePartners(IssueForm issueForm, Issue issue) { - IssueCompany issueCompany = new IssueCompany(); - IssueIsp issueIsp = new IssueIsp(); - IssueHosting issueHosting = new IssueHosting(); //issueCompany �벑濡� if (issueForm.getIssueCompanyFields() != null && issueForm.getIssueCompanyFields().size() > 0) { for (Map<String, Object> issueCompanyMap : issueForm.getIssueCompanyFields()) { CompanyField companyField = ConvertUtil.convertMapToClass(issueCompanyMap, CompanyField.class); - issueCompany = ConvertUtil.convertMapToClass(issueCompanyMap, IssueCompany.class, "id"); + IssueCompany issueCompany = ConvertUtil.convertMapToClass(issueCompanyMap, IssueCompany.class, "id", "registerDate", "modifyDate"); issueCompany.setCompanyField(companyField); issueCompany.setIssue(issue); this.issueCompanyRepository.saveAndFlush(issueCompany); - // �궗�슜�옄媛� ISP瑜� 吏곸젒 �엯�젰�븯吏� �븡�븯�쓣 寃쎌슦 �뾽泥댁뿉 �벑濡앸릺�뼱�엳�뒗 ISP �꽕�젙 + // �궗�슜�옄媛� ISP瑜� 吏곸젒 �엯�젰�븯吏� �븡�븯�쓣 寃쎌슦 �뾽泥댁뿉 �벑濡앸릺�뼱�엳�뒗 ISP �꽕�젙 if (issueForm.getIssueIspFields() == null || issueForm.getIssueIspFields().size() < 1) { // �뾽泥댁쓽 ISP媛� �엳�뒗 寃쎌슦 issueISP �벑濡� if (companyField.getIspId() != null && companyField.getIspId() != -1) { IspField ispField = this.ispFieldService.getIsp(companyField.getIspId()); - issueIsp = ConvertUtil.copyProperties(ispField, IssueIsp.class, "id"); + IssueIsp issueIsp = ConvertUtil.copyProperties(ispField, IssueIsp.class, "id", "registerDate", "modifyDate"); issueIsp.setIspField(ispField); issueIsp.setIssue(issue); this.issueIspRepository.saveAndFlush(issueIsp); @@ -3275,7 +3389,7 @@ // �뾽泥댁쓽 �샇�뒪�똿�씠 �엳�뒗 寃쎌슦 issueHosting �벑濡� if (companyField.getHostingId() != null && companyField.getHostingId() != -1) { HostingField hostingField = this.hostingFieldService.getHosting(companyField.getHostingId()); - issueHosting = ConvertUtil.copyProperties(hostingField, IssueHosting.class, "id"); + IssueHosting issueHosting = ConvertUtil.copyProperties(hostingField, IssueHosting.class, "id", "registerDate", "modifyDate"); issueHosting.setHostingField(hostingField); issueHosting.setIssue(issue); this.issueHostingRepository.saveAndFlush(issueHosting); @@ -3286,7 +3400,7 @@ //issueIsp �벑濡� if (issueForm.getIssueIspFields() != null && issueForm.getIssueIspFields().size() > 0) { for (Map<String, Object> issueIspMap : issueForm.getIssueIspFields()) { - issueIsp = ConvertUtil.convertMapToClass(issueIspMap, IssueIsp.class, "id"); + IssueIsp issueIsp = ConvertUtil.convertMapToClass(issueIspMap, IssueIsp.class, "id", "registerDate", "modifyDate"); IspField ispField = ConvertUtil.convertMapToClass(issueIspMap, IspField.class); issueIsp.setIspField(ispField); issueIsp.setIssue(issue); @@ -3296,7 +3410,7 @@ //issueHosting �벑濡� if (issueForm.getIssueHostingFields() != null && issueForm.getIssueHostingFields().size() > 0) { for (Map<String, Object> issueHostingMap : issueForm.getIssueHostingFields()) { - issueHosting = ConvertUtil.convertMapToClass(issueHostingMap, IssueHosting.class, "id"); + IssueHosting issueHosting = ConvertUtil.convertMapToClass(issueHostingMap, IssueHosting.class, "id", "registerDate", "modifyDate"); HostingField hostingField = ConvertUtil.convertMapToClass(issueHostingMap, HostingField.class); issueHosting.setHostingField(hostingField); issueHosting.setIssue(issue); @@ -3404,39 +3518,7 @@ } // �뿊���뿉 �뾽泥대챸�쓣 �엯�젰�븯吏� �븡�븯�쓣 寃쎌슦 媛숈� �룄硫붿씤 �뾽泥� 李얘린 - if (issueForm.getIssueCompanyFields() == null || issueForm.getIssueCompanyFields().size() < 1) { - // 媛숈� �룄硫붿씤 �뾽泥� 李얘린 - 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); - CompanyField companyField = ConvertUtil.convertMapToClass(company, CompanyField.class); - issueCompany.setCompanyField(companyField); - 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); - IspField ispField = ConvertUtil.convertMapToClass(isp, IspField.class); - issueIsp.setIspField(ispField); - 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); - HostingField hostingField = ConvertUtil.convertMapToClass(hosting, HostingField.class); - issueHosting.setHostingField(hostingField); - issueHosting.setIssue(issue); - this.issueHostingRepository.saveAndFlush(issueHosting); - } - } - } + this.findPartnerByDomain(issueForm); } if (issueCustomFieldValueMaps.size() > 0) { @@ -3444,6 +3526,46 @@ } } + /** + * �뿊���뿉 �뾽泥대챸�쓣 �엯�젰�븯吏� �븡�븯�쓣 寃쎌슦 媛숈� �룄硫붿씤 �뾽泥� 李얘린 + * @param issueForm IssueForm + */ + private void findPartnerByDomain(IssueForm issueForm) { + if (issueForm.getIssueCompanyFields() == null || issueForm.getIssueCompanyFields().size() < 1) { + // 媛숈� �룄硫붿씤 �뾽泥� 李얘린 + 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); + CompanyField companyField = ConvertUtil.convertMapToClass(company, CompanyField.class); + issueCompany.setCompanyField(companyField); + 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); + IspField ispField = ConvertUtil.convertMapToClass(isp, IspField.class); + issueIsp.setIspField(ispField); + 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); + HostingField hostingField = ConvertUtil.convertMapToClass(hosting, HostingField.class); + issueHosting.setHostingField(hostingField); + issueHosting.setIssue(issue); + this.issueHostingRepository.saveAndFlush(issueHosting); + } + } + } + } + // �씠�뒋�쓽 二쇱슂 �냽�꽦�쓣 map �뿉 ���옣�븯�뿬 �뿊�� import �뿉�꽌 吏��젙�븳 ���긽(�씠�뒋 �냽�꽦)�쓣 鍮좊Ⅴ寃� 李얠쓣 �닔 �엳寃� �븳�떎. 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, -- Gitblit v1.8.0