From 398a4927e195755bd6a46be99337efd8dacc3dc2 Mon Sep 17 00:00:00 2001 From: 박지현 <jhpark@maprex.co.kr> Date: 월, 07 3월 2022 18:08:13 +0900 Subject: [PATCH] Merge branch 'master' of http://maprex.iptime.org:9001/r/owl-kisa --- src/main/java/kr/wisestone/owl/service/impl/IssueHistoryServiceImpl.java | 381 ++++++++++++++++++++++++++++++++++++++++++------------ 1 files changed, 297 insertions(+), 84 deletions(-) diff --git a/src/main/java/kr/wisestone/owl/service/impl/IssueHistoryServiceImpl.java b/src/main/java/kr/wisestone/owl/service/impl/IssueHistoryServiceImpl.java index fc67609..24a2655 100644 --- a/src/main/java/kr/wisestone/owl/service/impl/IssueHistoryServiceImpl.java +++ b/src/main/java/kr/wisestone/owl/service/impl/IssueHistoryServiceImpl.java @@ -4,6 +4,7 @@ import kr.wisestone.owl.constant.Constants; import kr.wisestone.owl.constant.ElasticSearchConstants; import kr.wisestone.owl.constant.MsgConstants; +import kr.wisestone.owl.data.CheckIssueData; import kr.wisestone.owl.domain.*; import kr.wisestone.owl.domain.enumType.CustomFieldType; import kr.wisestone.owl.domain.enumType.IssueHistoryType; @@ -15,7 +16,7 @@ import kr.wisestone.owl.vo.IssueHistoryVo; import kr.wisestone.owl.vo.IssueVo; import kr.wisestone.owl.web.condition.IssueHistoryCondition; -import kr.wisestone.owl.web.form.IssueForm; +import kr.wisestone.owl.web.form.*; import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -63,13 +64,22 @@ @Override @Transactional public void addIssueHistory(Issue issue, IssueHistoryType issueHistoryType, String issueChangeDescription) { + User user = this.webAppUtil.getLoginUserObject(); + addIssueHistory(issue, user, issueHistoryType, issueChangeDescription); + } + + // �씠�젰 �깮�꽦 + @Override + @Transactional + public void addIssueHistory(Issue issue, User user, IssueHistoryType issueHistoryType, String issueChangeDescription) { IssueHistory issueHistory = new IssueHistory(); issueHistory.setIssue(issue); issueHistory.setProject(issue.getProject()); issueHistory.setIssueHistoryType(issueHistoryType); StringBuilder description = new StringBuilder(); // �씠�젰 �젙蹂대�� 留뚮뱾�뼱 �궦�떎. - this.makeDescription(description, issueHistoryType, issueChangeDescription); + + this.makeDescription(user, description, issueHistoryType, issueChangeDescription); issueHistory.setDescription(description.toString()); this.issueHistoryRepository.saveAndFlush(issueHistory); @@ -81,6 +91,13 @@ // �씠�젰 �젙蹂대�� 留뚮뱾�뼱 �궦�떎. @Override public void makeDescription(StringBuilder description, IssueHistoryType issueHistoryType, String issueChangeDescription) { + User user = this.webAppUtil.getLoginUserObject(); + makeDescription(user, description, issueHistoryType, issueChangeDescription); + } + + // �씠�젰 �젙蹂대�� 留뚮뱾�뼱 �궦�떎. + @Override + public void makeDescription(User user, StringBuilder description, IssueHistoryType issueHistoryType, String issueChangeDescription) { description.append("<div class=\"activity-text\">"); // �깮�꽦, �닔�젙, �궘�젣�뿉 ���빐 湲곕줉�쓣 �궓湲대떎. @@ -90,9 +107,9 @@ description.append("<span class='activity-timestamp'>"); description.append(DateUtil.convertDateToStr(new Date())); description.append(" ("); - description.append(this.webAppUtil.getLoginUser().getName()); + description.append(user.getName()); description.append(" - "); - description.append(CommonUtil.decryptAES128(this.webAppUtil.getLoginUser().getAccount())); + description.append(CommonUtil.decryptAES128(user.getAccount())); description.append(")"); description.append("</span></h6>"); break; @@ -103,10 +120,10 @@ description.append(DateUtil.convertDateToStr(new Date())); description.append(" ("); - if (this.webAppUtil.getLoginUser() != null) { - description.append(this.webAppUtil.getLoginUser().getName()); + if (user != null) { + description.append(user.getName()); description.append(" - "); - description.append(CommonUtil.decryptAES128(this.webAppUtil.getLoginUser().getAccount())); + description.append(CommonUtil.decryptAES128(user.getAccount())); } else { description.append("OWL-ITS-SYSTEM"); @@ -124,11 +141,33 @@ description.append("<span class=\"activity-timestamp\">"); description.append(DateUtil.convertDateToStr(new Date())); description.append(" ("); - description.append(this.webAppUtil.getLoginUser().getName()); + description.append(user.getName()); description.append(" - "); - description.append(CommonUtil.decryptAES128(this.webAppUtil.getLoginUser().getAccount())); + description.append(CommonUtil.decryptAES128(user.getAccount())); description.append(")"); description.append("</span></h6>"); + break; + + case SEND: + description.append("<h6 class=\"creat\"><span class=\"dot\"></span><span translate=\"common.sendMailIssue\">�씠�뒋 硫붿씪 �쟾�넚</span>"); + description.append("<span class=\"activity-timestamp\">"); + description.append(DateUtil.convertDateToStr(new Date())); + description.append(" ("); + + if (user != null) { + description.append(user.getName()); + description.append(" - "); + description.append(CommonUtil.decryptAES128(user.getAccount())); + } + else { + description.append("OWL-ITS-SYSTEM"); + description.append(" - "); + description.append(this.systemEmail); + } + + description.append(")"); + description.append("</span></h6>"); + description.append(issueChangeDescription); break; } @@ -272,13 +311,25 @@ // �씠�뒋 �븘�씠�뵒�뿉 �빐�떦�븯�뒗 湲곕줉 �젙蹂대�� 媛��졇�삩�떎. @Override @Transactional(readOnly = true) - public List<IssueHistoryVo> findIssueHistory(Long issueId) { - return this.issueHistoryRepository.findByIssueId(issueId); + public List<IssueHistoryVo> findIssueHistory(Issue issue) { + List<IssueHistoryVo> issueHistoryVos = this.issueHistoryRepository.findByIssueId(issue.getId()); + if (issueHistoryVos != null && issueHistoryVos.size() > 0) { + for (IssueHistoryVo issueHistoryVo : issueHistoryVos) { + issueHistoryVo.setTitle(issue.getTitle()); + } + } + return issueHistoryVos; } // �씠�뒋 蹂�寃� �궡�뿭�쓣 異붿텧�븳�떎. @Override - public StringBuilder detectIssueChange(Issue issue, IssueForm issueForm, Project project, IssueStatus issueStatus, IssueType issueType, Priority priority, Severity severity, List<MultipartFile> files) { + public StringBuilder detectIssueChange(IssueForm issueForm, CheckIssueData data, List<MultipartFile> files) { + return this.detectIssueChange(data.getIssue(), issueForm, data.getProject(), data.getOldIssueStatus(), data.getNewIssueStatus(), data.getIssueType(), data.getPriority(), data.getSeverity(), files); + } + + // �씠�뒋 蹂�寃� �궡�뿭�쓣 異붿텧�븳�떎. + @Override + public StringBuilder detectIssueChange(Issue issue, IssueForm issueForm, Project project, IssueStatus oldIssueStatus, IssueStatus issueStatus, IssueType issueType, Priority priority, Severity severity, List<MultipartFile> files) { StringBuilder description = new StringBuilder(); // �씠�뒋 �봽濡쒖젥�듃 蹂�寃� �젙蹂대�� 湲곕줉�븳�떎. @@ -288,7 +339,7 @@ // �씠�뒋 �슦�꽑�닚�쐞 蹂�寃� �젙蹂대�� 湲곕줉�븳�떎. this.detectIssuePriority(issue, issueForm, description, priority); // �씠�뒋 �긽�깭 蹂�寃� �젙蹂대�� 湲곕줉�븳�떎. - this.detectIssueStatus(issue, issueForm, description, issueStatus); + this.detectIssueStatus(issue, issueForm, description, oldIssueStatus, issueStatus); // �씠�뒋 ���엯 蹂�寃� �젙蹂대�� 湲곕줉�븳�떎. this.detectIssueType(issue, issueForm, description, issueType); // �씠�뒋�뿉 泥⑤��맂 �뙆�씪�뿉 ���빐 蹂�寃� �젙蹂대�� 湲곕줉�븳�떎. @@ -297,8 +348,11 @@ this.detectIssuePeriod(issue, issueForm, description); // �떞�떦�옄 蹂�寃� �젙蹂대�� 湲곕줉�븳�떎. this.detectIssueManager(issue, issueForm, description); - // �떞�떦遺��꽌 蹂�寃� �젙蹂대�� 湲곕줉�븳�떎. - this.detectIssueDepartment(issue, issueForm, description); + + if (issueForm.getIsApi().equals(Issue.IS_API_NO)) { //api濡� 蹂�寃� �떆 �떞�떦遺��꽌 蹂�寃� 遺덇� + // �떞�떦遺��꽌 蹂�寃� �젙蹂대�� 湲곕줉�븳�떎. + this.detectIssueDepartment(issue, issueForm, description); + } // �궗�슜�옄 �젙�쓽 �븘�뱶 蹂�寃� �젙蹂대�� 湲곕줉�븳�떎. this.detectCustomField(issue, issueForm, description); @@ -369,11 +423,12 @@ // �씠�뒋 �긽�깭 蹂�寃� �젙蹂대�� 湲곕줉�븳�떎. @Override - public void detectIssueStatus(Issue issue, IssueForm issueForm, StringBuilder description, IssueStatus issueStatus) { - if (!issue.getIssueStatus().getId().equals(issueForm.getIssueStatusId())) { + @Transactional + public void detectIssueStatus(Issue issue, IssueForm issueForm, StringBuilder description, IssueStatus oldIssueStatus, IssueStatus issueStatus) { + if (!oldIssueStatus.getId().equals(issueForm.getIssueStatusId())) { String title = "<span translate=\"common.updateHasStatus\">�긽�깭媛� 蹂�寃쎈릺�뿀�뒿�땲�떎.</span>"; // �씠�젰 �젙蹂대�� html �깭洹몃줈 留뚮뱾�뼱 以��떎. - this.makeIssueHistoryHtml(description, title, issue.getIssueStatus().getName(), issueStatus.getName()); + this.makeIssueHistoryHtml(description, title, oldIssueStatus.getName(), issueStatus.getName()); // �씠�뒋 �쐞�뿕 愿�由ъ뿉 �긽�깭 蹂�寃� �젙蹂대�� �뾽�뜲�씠�듃�븳�떎. - �떞�떦�옄 蹂�寃� this.issueRiskService.modifyIssueRisk(issue, true, false, issueForm.getIssueStatusId()); @@ -397,7 +452,7 @@ public void recordRemoveWorkflowToIssueStatus(String oldIssueStatusName, String newIssueStatusName, StringBuilder description) { description.append("<ul class=\"activity-list\">"); - String title = "<span translate=\"common.upddetectReservationIssueStatusateWorkflowNotExist\">蹂�寃쎈맂 �썙�겕�뵆濡쒖슦�뿉�꽌 �긽�깭媛� 議댁옱�븯吏� �븡�븘 �씠�뒋�쓽 �긽�깭媛� 蹂�寃쎈릺�뿀�뒿�땲�떎.</span>"; + String title = "<span translate=\"common.updateWorkflowNotExist\">蹂�寃쎈맂 �썙�겕�뵆濡쒖슦�뿉�꽌 �긽�깭媛� 議댁옱�븯吏� �븡�븘 �씠�뒋�쓽 �긽�깭媛� 蹂�寃쎈릺�뿀�뒿�땲�떎.</span>"; // �씠�젰 �젙蹂대�� html �깭洹몃줈 留뚮뱾�뼱 以��떎. this.makeIssueHistoryHtml(description, title, oldIssueStatusName, newIssueStatusName); @@ -480,35 +535,132 @@ } } + // �씠�뒋 硫붿씪 �쟾�넚 �젙蹂대�� 湲곕줉�븳�떎. + @Override + public void detectSendIssueMail(IssueHistoryType type, IssueForm issueForm, StringBuilder description) { + this.detectSendIssueMail(type, issueForm.getSendEmails(), description); + } + + // �씠�뒋 硫붿씪 �쟾�넚 �젙蹂대�� 湲곕줉�븳�떎. + @Override + public void detectSendIssueMail(IssueHistoryType type, List<String> sendMails, StringBuilder description) { + if (type == IssueHistoryType.SEND) { + description.append("<span translate=\"issue.sendIssueMailHistory\">�씠�뒋 硫붿씪 �쟾�넚�쓣 �셿猷뚰뻽�뒿�땲�떎. </span>"); + if(sendMails != null && sendMails.size() > 0){ + for (String sendEmail : sendMails){ + description.append("<span class=\"text-primary bold\"> > " + CommonUtil.decryptAES128(sendEmail) + "</span>"); + } + } + } + } + // �뾽泥� �젙蹂� 蹂�寃� �젙蹂대�� 湲곕줉�븳�떎. @Override - public void detectIssueCompany(IssueHistoryType type, Map<String, Object> param, IssueCompany issueCompany, StringBuilder description) { - Long id = MapUtil.getLong(param, "id"); + @Transactional + public void detectIssueCompany(IssueHistoryType type, Map<String, Object> param, CompanyFieldForm companyFieldForm, IssueCompany issueCompany, StringBuilder description) { + Long companyFieldId = 0L; + Long id = 0L; + String name = ""; + String manager = ""; + String tel = ""; + String email = ""; + String memo = ""; + Long companyTypeId = 0L; + Long parentSectorId = 0L; + Long childSectorId = 0L; + Long regionId = 0L; + Long statusId = 0L; + String companyTypeName = ""; + String parentSectorName = ""; + String childSectorName = ""; + String regionName = ""; + String statusName = ""; - if (type == IssueHistoryType.ADD) { //異붽� �븷 寃쎌슦 + if (param != null) { + id = MapUtil.getLong(param, "companyId"); + name = MapUtil.getString(param, "name"); + manager = MapUtil.getString(param, "manager"); + tel = MapUtil.getString(param, "tel"); + email = MapUtil.getString(param, "email"); + memo = MapUtil.getString(param, "memo"); + companyTypeId = MapUtil.getLong(param, "companyTypeId"); + parentSectorId = MapUtil.getLong(param, "parentSectorId"); + childSectorId = MapUtil.getLong(param, "childSectorId"); + regionId = MapUtil.getLong(param, "regionId"); + statusId = MapUtil.getLong(param, "statusId"); + companyTypeName = MapUtil.getString(param, "companyTypeName"); + parentSectorName = MapUtil.getString(param, "parentSectorName"); + childSectorName = MapUtil.getString(param, "childSectorName"); + regionName = MapUtil.getString(param, "regionName"); + statusName = MapUtil.getString(param, "statusName"); + }else if(companyFieldForm != null) { + id = companyFieldForm.getId(); + name = companyFieldForm.getName(); + manager = companyFieldForm.getManager(); + tel = companyFieldForm.getTel(); + email = companyFieldForm.getEmail(); + memo = companyFieldForm.getMemo(); + companyTypeId = companyFieldForm.getCompanyTypeId(); + parentSectorId = companyFieldForm.getParentSectorId(); + childSectorId = companyFieldForm.getChildSectorId(); + regionId = companyFieldForm.getRegionId(); + statusId = companyFieldForm.getStatusId(); + companyTypeName = companyFieldForm.getCompanyTypeName(); + parentSectorName = companyFieldForm.getParentSectorName(); + childSectorName = companyFieldForm.getChildSectorName(); + regionName = companyFieldForm.getRegionName(); + statusName = companyFieldForm.getStatusName(); + } + if (issueCompany.getCompanyField() != null && issueCompany.getCompanyField().getId() != null) { + companyFieldId = issueCompany.getCompanyField().getId(); + } + + if (type == IssueHistoryType.ADD && issueCompany.getCompanyField() != null) { //異붽� �븷 寃쎌슦 description.append("<span translate=\"issue.issueCompanyAddHistory\">�뾽泥� �젙蹂닿� 異붽��릺�뿀�뒿�땲�떎. </span>"); description.append("<span class=\"text-primary bold\"> > " + issueCompany.getCompanyField().getName() + "</span>"); } else if (type == IssueHistoryType.MODIFY) { //�닔�젙 �븷 寃쎌슦 - if (id != null && !issueCompany.getId().equals(id)) { + if (id != null && !companyFieldId.equals(id)) { description.append("<span translate=\"issue.issueCompanyModifyHistory\">�뾽泥� �젙蹂닿� 蹂�寃쎈릺�뿀�뒿�땲�떎. </span>"); - description.append("<span class=\"text-primary bold\"> > " + issueCompany.getCompanyField().getName() + "</span>"); + description.append("<span class=\"text-primary bold\"> > " + name + "</span>"); + } else { + if (companyFieldId.equals(id) && manager != null && (issueCompany.getManager() == null || !issueCompany.getManager().equals(manager))) { + description.append("<span translate=\"issue.issueCompanyModifyManagerHistory\"> > �뾽泥� �젙蹂댁쓽 �떞�떦�옄媛� 蹂�寃쎈릺�뿀�뒿�땲�떎. </span>"); + description.append("<span class=\"text-primary bold\"> > " + manager + "</span>"); + } + if (companyFieldId.equals(id) && tel != null && (issueCompany.getTel() == null || !issueCompany.getTel().equals(tel))) { + description.append("<span translate=\"issue.issueCompanyModifyTelHistory\"> > �뾽泥� �젙蹂댁쓽 �쟾�솕踰덊샇媛� 蹂�寃쎈릺�뿀�뒿�땲�떎. </span>"); + description.append("<span class=\"text-primary bold\"> > " + tel + "</span>"); + } + if (companyFieldId.equals(id) && email != null && (issueCompany.getEmail() == null || !issueCompany.getEmail().equals(email))) { + description.append("<span translate=\"issue.issueCompanyModifyEmailHistory\"> > �뾽泥� �젙蹂댁쓽 �씠硫붿씪�씠 蹂�寃쎈릺�뿀�뒿�땲�떎. </span>"); + description.append("<span class=\"text-primary bold\"> > " + email + "</span>"); + } + if (companyFieldId.equals(id) && memo != null && (issueCompany.getMemo() == null || !issueCompany.getMemo().equals(memo))) { + description.append("<span translate=\"issue.issueCompanyModifyMemoHistory\"> > �뾽泥� �젙蹂댁쓽 鍮꾧퀬媛� 蹂�寃쎈릺�뿀�뒿�땲�떎. </span>"); + description.append("<span class=\"text-primary bold\"> > " + memo + "</span>"); + } + if (companyFieldId.equals(id) && companyTypeName != null && (issueCompany.getCompanyTypeId() == null || !issueCompany.getCompanyTypeId().equals(companyTypeId))) { + description.append("<span translate=\"issue.issueCompanyModifyCompanyTypeHistory\"> > �뾽泥� �젙蹂댁쓽 湲곗뾽援щ텇�씠 蹂�寃쎈릺�뿀�뒿�땲�떎. </span>"); + description.append("<span class=\"text-primary bold\"> > " + companyTypeName + "</span>"); + } + if (companyFieldId.equals(id) && parentSectorName != null && (issueCompany.getParentSectorId() == null || !issueCompany.getParentSectorId().equals(parentSectorId))) { + description.append("<span translate=\"issue.issueCompanyModifyParentSectorHistory\"> > �뾽泥� �젙蹂댁쓽 �뾽醫�(��遺꾨쪟)�씠 蹂�寃쎈릺�뿀�뒿�땲�떎. </span>"); + description.append("<span class=\"text-primary bold\"> > " + parentSectorName + "</span>"); + } + if (companyFieldId.equals(id) && childSectorName != null && (issueCompany.getChildSectorId() == null || !issueCompany.getChildSectorId().equals(childSectorId))) { + description.append("<span translate=\"issue.issueCompanyModifyChildSectorHistory\"> > �뾽泥� �젙蹂댁쓽 �뾽醫�(以묐텇瑜�)�씠 蹂�寃쎈릺�뿀�뒿�땲�떎. </span>"); + description.append("<span class=\"text-primary bold\"> > " + childSectorName + "</span>"); + } + if (companyFieldId.equals(id) && statusName != null && (issueCompany.getStatusId() == null || !issueCompany.getStatusId().equals(statusId))) { + description.append("<span translate=\"issue.issueCompanyModifyStatusHistory\"> > �뾽泥� �젙蹂댁쓽 �긽�깭媛� 蹂�寃쎈릺�뿀�뒿�땲�떎. </span>"); + description.append("<span class=\"text-primary bold\"> > " + statusName + "</span>"); + } + if (companyFieldId.equals(id) && regionName != null && (issueCompany.getRegionId() == null || !issueCompany.getRegionId().equals(regionId))) { + description.append("<span translate=\"issue.issueCompanyModifyRegionHistory\"> > �뾽泥� �젙蹂댁쓽 吏��뿭�씠 蹂�寃쎈릺�뿀�뒿�땲�떎. </span>"); + description.append("<span class=\"text-primary bold\"> > " + regionName + "</span>"); + } } - if (param.get("manager") != null && (issueCompany.getManager() == null || !issueCompany.getManager().equals(param.get("manager")))) { - description.append("<span translate=\"issue.issueCompanyModifyManagerHistory\"> > �뾽泥� �젙蹂댁쓽 �떞�떦�옄媛� 蹂�寃쎈릺�뿀�뒿�땲�떎. </span>"); - description.append("<span class=\"text-primary bold\"> > " + param.get("manager") + "</span>"); - } - if (param.get("tel") != null && (issueCompany.getTel() == null || !issueCompany.getTel().equals(param.get("tel")))) { - description.append("<span translate=\"issue.issueCompanyModifyTelHistory\"> > �뾽泥� �젙蹂댁쓽 �쟾�솕踰덊샇媛� 蹂�寃쎈릺�뿀�뒿�땲�떎. </span>"); - description.append("<span class=\"text-primary bold\"> > " + param.get("tel") + "</span>"); - } - if (param.get("email") != null && (issueCompany.getEmail() == null || !issueCompany.getEmail().equals(param.get("email")))) { - description.append("<span translate=\"issue.issueCompanyModifyEmailHistory\"> > �뾽泥� �젙蹂댁쓽 �씠硫붿씪�씠 蹂�寃쎈릺�뿀�뒿�땲�떎. </span>"); - description.append("<span class=\"text-primary bold\"> > " + param.get("email") + "</span>"); - } - if (param.get("memo") != null && (issueCompany.getMemo() == null || !issueCompany.getMemo().equals(param.get("memo")))) { - description.append("<span translate=\"issue.issueCompanyModifyMemoHistory\"> > �뾽泥� �젙蹂댁쓽 鍮꾧퀬媛� 蹂�寃쎈릺�뿀�뒿�땲�떎. </span>"); - description.append("<span class=\"text-primary bold\"> > " + param.get("memo") + "</span>"); - } + } else { description.append("<span translate=\"issue.issueCompanyRemoveHistory\">�뾽泥� �젙蹂닿� �궘�젣�릺�뿀�뒿�땲�떎. " + issueCompany.getCompanyField().getName() + "</span>"); description.append("<span class=\"text-primary bold\"> > " + issueCompany.getCompanyField().getName() + "</span>"); @@ -517,32 +669,58 @@ // ISP �젙蹂� 蹂�寃� �젙蹂대�� 湲곕줉�븳�떎. @Override - public void detectIssueIsp(IssueHistoryType type, Map<String, Object> param, IssueIsp issueIsp, StringBuilder description) { - Long id = MapUtil.getLong(param, "id"); + public void detectIssueIsp(IssueHistoryType type, Map<String, Object> param, IspFieldForm ispFieldForm, IssueIsp issueIsp, StringBuilder description) { + Long ispFieldId = 0L; + Long id = 0L; + String name = ""; + String manager = ""; + String tel = ""; + String email = ""; + String memo = ""; + if (param != null) { + id = MapUtil.getLong(param, "ispId"); + name = MapUtil.getString(param, "name"); + manager = MapUtil.getString(param, "manager"); + tel = MapUtil.getString(param, "tel"); + email = MapUtil.getString(param, "email"); + memo = MapUtil.getString(param, "memo"); + }else if(ispFieldForm != null) { + id = ispFieldForm.getId(); + name = ispFieldForm.getName(); + manager = ispFieldForm.getManager(); + tel = ispFieldForm.getTel(); + email = ispFieldForm.getEmail(); + memo = ispFieldForm.getMemo(); + } + + if (issueIsp.getIspField() != null && issueIsp.getIspField().getId() != null) { + ispFieldId = issueIsp.getIspField().getId(); + } if (type == IssueHistoryType.ADD) { description.append("<span translate=\"issue.issueIspAddHistory\">ISP �젙蹂닿� 異붽��릺�뿀�뒿�땲�떎. </span>"); description.append("<span class=\"text-primary bold\"> > " + issueIsp.getIspField().getName() + "</span>"); } else if (type == IssueHistoryType.MODIFY) { - if (id != null && !issueIsp.getId().equals(id)) { //�닔�젙 �븷 寃쎌슦 + if (id != null && !ispFieldId.equals(id)) { //�닔�젙 �븷 寃쎌슦 description.append("<span translate=\"issue.issueIspModifyHistory\">ISP �젙蹂닿� 蹂�寃쎈릺�뿀�뒿�땲�떎. </span>"); - description.append("<span class=\"text-primary bold\"> > " + issueIsp.getIspField().getName() + "</span>"); - } - if (param.get("manager") != null && (issueIsp.getManager() == null || !issueIsp.getManager().equals(param.get("manager")))) { - description.append("<span translate=\"issue.issueIspModifyManagerHistory\">ISP �젙蹂댁쓽 �떞�떦�옄媛� 蹂�寃쎈릺�뿀�뒿�땲�떎. </span>"); - description.append("<span class=\"text-primary bold\"> > " + param.get("manager") + "</span>"); - } - if (param.get("tel") != null && (issueIsp.getTel() == null || !issueIsp.getTel().equals(param.get("tel")))) { - description.append("<span translate=\"issue.issueIspModifyTelHistory\">ISP �젙蹂댁쓽 �쟾�솕踰덊샇媛� 蹂�寃쎈릺�뿀�뒿�땲�떎. </span>"); - description.append("<span class=\"text-primary bold\"> > " + param.get("tel") + "</span>"); - } - if (param.get("email") != null && (issueIsp.getEmail() == null || !issueIsp.getEmail().equals(param.get("email")))) { - description.append("<span translate=\"issue.issueIspModifyEmailHistory\">ISP �젙蹂댁쓽 �씠硫붿씪�씠 蹂�寃쎈릺�뿀�뒿�땲�떎. </span>"); - description.append("<span class=\"text-primary bold\"> > " + param.get("email") + "</span>"); - } - if (param.get("memo") != null && (issueIsp.getMemo() == null || !issueIsp.getMemo().equals(param.get("memo")))) { - description.append("<span translate=\"issue.issueIspModifyMemoHistory\">ISP �젙蹂댁쓽 鍮꾧퀬媛� 蹂�寃쎈릺�뿀�뒿�땲�떎. </span>"); - description.append("<span class=\"text-primary bold\"> > " + param.get("memo") + "</span>"); + description.append("<span class=\"text-primary bold\"> > " + name + "</span>"); + } else { + if (ispFieldId.equals(id) && manager != null && (issueIsp.getManager() == null || !issueIsp.getManager().equals(manager))) { + description.append("<span translate=\"issue.issueIspModifyManagerHistory\">ISP �젙蹂댁쓽 �떞�떦�옄媛� 蹂�寃쎈릺�뿀�뒿�땲�떎. </span>"); + description.append("<span class=\"text-primary bold\"> > " + manager + "</span>"); + } + if (ispFieldId.equals(id) && tel != null && (issueIsp.getTel() == null || !issueIsp.getTel().equals(tel))) { + description.append("<span translate=\"issue.issueIspModifyTelHistory\">ISP �젙蹂댁쓽 �쟾�솕踰덊샇媛� 蹂�寃쎈릺�뿀�뒿�땲�떎. </span>"); + description.append("<span class=\"text-primary bold\"> > " + tel + "</span>"); + } + if (ispFieldId.equals(id) && email != null && (issueIsp.getEmail() == null || !issueIsp.getEmail().equals(email))) { + description.append("<span translate=\"issue.issueIspModifyEmailHistory\">ISP �젙蹂댁쓽 �씠硫붿씪�씠 蹂�寃쎈릺�뿀�뒿�땲�떎. </span>"); + description.append("<span class=\"text-primary bold\"> > " + email + "</span>"); + } + if (ispFieldId.equals(id) && memo != null && (issueIsp.getMemo() == null || !issueIsp.getMemo().equals(memo))) { + description.append("<span translate=\"issue.issueIspModifyMemoHistory\">ISP �젙蹂댁쓽 鍮꾧퀬媛� 蹂�寃쎈릺�뿀�뒿�땲�떎. </span>"); + description.append("<span class=\"text-primary bold\"> > " + memo + "</span>"); + } } } else { description.append("<span translate=\"issue.issueIspRemoveHistory\">ISP �젙蹂닿� �궘�젣�릺�뿀�뒿�땲�떎. " + issueIsp.getIspField().getName() + "</span>"); @@ -552,32 +730,58 @@ // �샇�뒪�똿 �젙蹂� 蹂�寃� �젙蹂대�� 湲곕줉�븳�떎. @Override - public void detectIssueHosting(IssueHistoryType type, Map<String, Object> param, IssueHosting issueHosting, StringBuilder description) { - Long id = MapUtil.getLong(param, "id"); + public void detectIssueHosting(IssueHistoryType type, Map<String, Object> param, HostingFieldForm hostingFieldForm, IssueHosting issueHosting, StringBuilder description) { + Long hostingFieldId = 0L; + Long id = 0L; + String name = ""; + String manager = ""; + String tel = ""; + String email = ""; + String memo = ""; + if (param != null) { + id = MapUtil.getLong(param, "hostingId"); + name = MapUtil.getString(param, "name"); + manager = MapUtil.getString(param, "manager"); + tel = MapUtil.getString(param, "tel"); + email = MapUtil.getString(param, "email"); + memo = MapUtil.getString(param, "memo"); + }else if(hostingFieldForm != null) { + id = hostingFieldForm.getId(); + name = hostingFieldForm.getName(); + manager = hostingFieldForm.getManager(); + tel = hostingFieldForm.getTel(); + email = hostingFieldForm.getEmail(); + memo = hostingFieldForm.getMemo(); + } + + if (issueHosting.getHostingField() != null && issueHosting.getHostingField().getId() != null) { + hostingFieldId = issueHosting.getHostingField().getId(); + } if (type == IssueHistoryType.ADD) { description.append("<span translate=\"issue.issueHostingAddHistory\">�샇�뒪�똿 �젙蹂닿� 異붽��릺�뿀�뒿�땲�떎. </span>"); description.append("<span class=\"text-primary bold\"> > " + issueHosting.getHostingField().getName() + "</span>"); }else if(type == IssueHistoryType.MODIFY){ - if(id != null && !issueHosting.getId().equals(id)){ //�닔�젙 �븷 寃쎌슦 + if(id != null && !hostingFieldId.equals(id)){ //�닔�젙 �븷 寃쎌슦 description.append("<span translate=\"issue.issueHostingModifyHistory\">�샇�뒪�똿 �젙蹂닿� 蹂�寃쎈릺�뿀�뒿�땲�떎. </span>"); - description.append("<span class=\"text-primary bold\"> > " + issueHosting.getHostingField().getName() + "</span>"); - } - if(param.get("manager") != null && (issueHosting.getManager() == null || !issueHosting.getManager().equals(param.get("manager")))){ - description.append("<span translate=\"issue.issueHostingModifyManagerHistory\">�샇�뒪�똿 �젙蹂댁쓽 �떞�떦�옄媛� 蹂�寃쎈릺�뿀�뒿�땲�떎. </span>"); - description.append("<span class=\"text-primary bold\"> > " + param.get("manager") + "</span>"); - } - if(param.get("tel") != null && (issueHosting.getTel() == null || !issueHosting.getTel().equals(param.get("tel")))){ - description.append("<span translate=\"issue.issueHostingModifyTelHistory\">�샇�뒪�똿 �젙蹂댁쓽 �쟾�솕踰덊샇媛� 蹂�寃쎈릺�뿀�뒿�땲�떎. </span>"); - description.append("<span class=\"text-primary bold\"> > " + param.get("tel") + "</span>"); - } - if(param.get("email") != null && (issueHosting.getEmail() == null || !issueHosting.getEmail().equals(param.get("email")))){ - description.append("<span translate=\"issue.issueHostingModifyEmailHistory\">�샇�뒪�똿 �젙蹂댁쓽 �씠硫붿씪�씠 蹂�寃쎈릺�뿀�뒿�땲�떎. </span>"); - description.append("<span class=\"text-primary bold\"> > " + param.get("email") + "</span>"); - } - if(param.get("memo") != null && (issueHosting.getMemo() == null || !issueHosting.getMemo().equals(param.get("memo")))){ - description.append("<span translate=\"issue.issueHostingModifyMemoHistory\">�샇�뒪�똿 �젙蹂댁쓽 鍮꾧퀬媛� 蹂�寃쎈릺�뿀�뒿�땲�떎. </span>"); - description.append("<span class=\"text-primary bold\"> > " + param.get("memo") + "</span>"); + description.append("<span class=\"text-primary bold\"> > " + name + "</span>"); + } else { + if(hostingFieldId.equals(id) && manager != null && (issueHosting.getManager() == null || !issueHosting.getManager().equals(manager))){ + description.append("<span translate=\"issue.issueHostingModifyManagerHistory\">�샇�뒪�똿 �젙蹂댁쓽 �떞�떦�옄媛� 蹂�寃쎈릺�뿀�뒿�땲�떎. </span>"); + description.append("<span class=\"text-primary bold\"> > " + manager + "</span>"); + } + if(hostingFieldId.equals(id) && tel != null && (issueHosting.getTel() == null || !issueHosting.getTel().equals(tel))){ + description.append("<span translate=\"issue.issueHostingModifyTelHistory\">�샇�뒪�똿 �젙蹂댁쓽 �쟾�솕踰덊샇媛� 蹂�寃쎈릺�뿀�뒿�땲�떎. </span>"); + description.append("<span class=\"text-primary bold\"> > " + tel + "</span>"); + } + if(hostingFieldId.equals(id) && email != null && (issueHosting.getEmail() == null || !issueHosting.getEmail().equals(email))){ + description.append("<span translate=\"issue.issueHostingModifyEmailHistory\">�샇�뒪�똿 �젙蹂댁쓽 �씠硫붿씪�씠 蹂�寃쎈릺�뿀�뒿�땲�떎. </span>"); + description.append("<span class=\"text-primary bold\"> > " + email + "</span>"); + } + if(hostingFieldId.equals(id) && memo != null && (issueHosting.getMemo() == null || !issueHosting.getMemo().equals(memo))){ + description.append("<span translate=\"issue.issueHostingModifyMemoHistory\">�샇�뒪�똿 �젙蹂댁쓽 鍮꾧퀬媛� 蹂�寃쎈릺�뿀�뒿�땲�떎. </span>"); + description.append("<span class=\"text-primary bold\"> > " + memo + "</span>"); + } } } else { description.append("<span translate=\"issue.issueHostingRemoveHistory\">�샇�뒪�똿 �젙蹂닿� �궘�젣�릺�뿀�뒿�땲�떎. " + issueHosting.getHostingField().getName() + "</span>"); @@ -669,10 +873,7 @@ // �씠�뒋 �쐞�뿕 愿�由ъ뿉 �떞�떦遺��꽌 蹂�寃� �젙蹂대�� �뾽�뜲�씠�듃 �븳�떎. - �떞�떦遺��꽌 蹂�寃� this.issueRiskService.modifyIssueRisk(issue, false, true, null); saveIssueRisk = true; - } - - // �떞�떦遺��꽌 �닔�뒗 媛숈쑝�굹 �떞�떦遺��꽌媛� �떖�씪議뚯쓣 寃쎌슦 - if (issue.getIssueDepartments().size() > 0 && issueForm.getDepartmentIds().size() > 0) { + }else if (issue.getIssueDepartments().size() > 0 && issueForm.getDepartmentIds().size() > 0) {// �떞�떦遺��꽌 �닔�뒗 媛숈쑝�굹 �떞�떦遺��꽌媛� �떖�씪議뚯쓣 寃쎌슦 // �씠�쟾 �떞�떦�옄 �몴�떆 for (IssueDepartment issueDepartment : issue.getIssueDepartments()) { boolean change = true; @@ -762,6 +963,12 @@ switch (customField.getCustomFieldType()) { case INPUT : case SINGLE_SELECT : + case NUMBER : + case DATETIME : + case IP_ADDRESS : + case EMAIL : + case SITE : + case TEL : boolean existIssueCustomFieldValue = false; for (IssueCustomFieldValue savedIssueCustomFieldValue : issue.getIssueCustomFieldValues()) { @@ -923,6 +1130,12 @@ if (StringUtils.isEmpty(value)) { switch(customFieldType) { case INPUT: + case NUMBER: + case DATETIME: + case IP_ADDRESS: + case EMAIL: + case SITE: + case TEL: result = "<span translate=\"common.noValueEntered\">�엯�젰�븳 媛믪씠 �뾾�뒿�땲�떎.</span>"; break; case SINGLE_SELECT: -- Gitblit v1.8.0