From b9685b82f1c9d5c0b8e0d31bca5436e644e5ab7e Mon Sep 17 00:00:00 2001 From: wyu <kknd09321@nate.com> Date: 수, 01 12월 2021 16:45:03 +0900 Subject: [PATCH] Merge branch 'master' of http://192.168.0.25:9001/r/owl-kisa --- src/main/java/kr/wisestone/owl/service/impl/IssueServiceImpl.java | 13 +++ src/main/java/kr/wisestone/owl/service/impl/WidgetServiceImpl.java | 10 +++ src/main/java/kr/wisestone/owl/service/impl/SystemEmailServiceImpl.java | 18 ++++++ src/main/java/kr/wisestone/owl/web/form/IssueForm.java | 14 ++++ src/main/webapp/scripts/app/widget/widgetDashBoard.controller.js | 38 ++++++++++++ src/main/java/kr/wisestone/owl/web/controller/IssueController.java | 4 src/main/resources/mybatis/query-template/widget-template.xml | 61 ++++++++++--------- src/main/java/kr/wisestone/owl/constant/MsgConstants.java | 1 src/main/java/kr/wisestone/owl/domain/enumType/EmailType.java | 3 + src/main/webapp/WEB-INF/i18n/messages_ko_KR.properties | 1 src/main/webapp/WEB-INF/i18n/code_ko_KR.properties | 1 src/main/java/kr/wisestone/owl/constant/MailConstants.java | 5 + 12 files changed, 134 insertions(+), 35 deletions(-) diff --git a/src/main/java/kr/wisestone/owl/constant/MailConstants.java b/src/main/java/kr/wisestone/owl/constant/MailConstants.java index 1a68deb..fac7864 100644 --- a/src/main/java/kr/wisestone/owl/constant/MailConstants.java +++ b/src/main/java/kr/wisestone/owl/constant/MailConstants.java @@ -30,7 +30,10 @@ ISSUE_ADD("issue.add.title", "issueAddEmail"), // �씠�뒋 �깮�꽦 ISSUE_REMOVE("issue.remove.title", "issueRemoveEmail"), // �씠�뒋 �궘�젣 - ISSUE_SEND("issue.send.title", "issueSendEmail"); // �씠�뒋 �씠硫붿씪 �쟾�떖 + ISSUE_SEND("issue.send.title", "issueSendEmail"), // �씠�뒋 �씠硫붿씪 �쟾�떖 + ISSUE_SEND_1("issue.send1.title", "issueSend1Email"), // �씠�뒋 �씠硫붿씪 �쟾�떖 + ISSUE_SEND_2("issue.send2.title", "issueSend2Email"), // �씠�뒋 �씠硫붿씪 �쟾�떖 + ISSUE_SEND_3("issue.send3.title", "issueSend3Email"); // �씠�뒋 �씠硫붿씪 �쟾�떖 // ISSUE_MODIFY("issue.modify.title", "issueModifyEmail"); // �씠�뒋 �닔�젙 diff --git a/src/main/java/kr/wisestone/owl/constant/MsgConstants.java b/src/main/java/kr/wisestone/owl/constant/MsgConstants.java index 8b86bd5..4aff444 100644 --- a/src/main/java/kr/wisestone/owl/constant/MsgConstants.java +++ b/src/main/java/kr/wisestone/owl/constant/MsgConstants.java @@ -114,6 +114,7 @@ public static final String ISSUE_REMOVE_NOT_SELECT = "ISSUE_REMOVE_NOT_SELECT"; // �궘�젣�븷 �씠�뒋媛� �꽑�깮�릺吏� �븡�븯�뒿�땲�떎. public static final String ISSUE_NO_TITLE = "ISSUE_NO_TITLE"; // �씠�뒋 �젣紐⑹씠 �엯�젰�릺吏� �븡�븯�뒿�땲�떎. public static final String ISSUE_NOT_SEND_USER = "ISSUE_NOT_SEND_USER"; // �씠�뒋 諛쒖넚 ���긽�옄瑜� �꽑�깮�븯吏� �븡�븯�뒿�땲�떎. + public static final String ISSUE_NOT_SELECT_TEMPLATE = "ISSUE_NOT_SELECT_TEMPLATE"; // �씠�뒋 諛쒖넚 �뀥�뵆由우쓣 �꽑�깮�븯吏� �븡�븯�뒿�땲�떎. public static final String ISSUE_COMMENT_REMOVE_NOT_SELECT = "ISSUE_COMMENT_REMOVE_NOT_SELECT"; // �궘�젣�븷 �뙎湲��쓣 �꽑�깮�븯吏� �븡�븯�뒿�땲�떎. public static final String ISSUE_COMMENT_NOT_EXIST = "ISSUE_COMMENT_NOT_EXIST"; // �뙎湲��씠 議댁옱�븯吏� �븡�뒿�땲�떎. diff --git a/src/main/java/kr/wisestone/owl/domain/enumType/EmailType.java b/src/main/java/kr/wisestone/owl/domain/enumType/EmailType.java index 75d8b6b..b1bb116 100644 --- a/src/main/java/kr/wisestone/owl/domain/enumType/EmailType.java +++ b/src/main/java/kr/wisestone/owl/domain/enumType/EmailType.java @@ -32,6 +32,9 @@ ISSUE_MODIFY, // �씠�뒋 �닔�젙 ISSUE_REMOVE, // �씠�뒋 �궘�젣 ISSUE_SEND, // �씠�뒋 �젙蹂� �씠硫붿씪濡� �쟾�떖 + ISSUE_SEND_1, + ISSUE_SEND_2, + ISSUE_SEND_3, PROJECT_ADD, // �봽濡쒖젥�듃 �깮�꽦 PROJECT_MODIFY, // �봽濡쒖젥�듃 �닔�젙 PROJECT_REMOVE, // �봽濡쒖젥�듃 �궘�젣 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 0cf87fe..49a32b4 100644 --- a/src/main/java/kr/wisestone/owl/service/impl/IssueServiceImpl.java +++ b/src/main/java/kr/wisestone/owl/service/impl/IssueServiceImpl.java @@ -2591,6 +2591,9 @@ if (issueForm.getSendEmails().size() < 1) { throw new OwlRuntimeException( this.messageAccessor.getMessage(MsgConstants.ISSUE_NOT_SEND_USER)); + }else if (issueForm.getTemplate() != null){ + throw new OwlRuntimeException( + this.messageAccessor.getMessage(MsgConstants.ISSUE_NOT_SELECT_TEMPLATE)); } Issue issue = this.getIssue(issueForm.getId()); @@ -2612,8 +2615,15 @@ // �궗�슜�옄 �떆�뒪�뀥 湲곕뒫 �궗�슜 �젙蹂� �닔吏� log.info(ElasticSearchUtil.makeUserActiveHistoryMessage(this.webAppUtil.getLoginUser(), ElasticSearchConstants.ISSUE_ANOTHER_USER_SEND_EMAIL)); + //this.systemEmailService.directEmail(issueForm.getSendEmails().toArray(new String[issueForm.getSendEmails().size()]), EmailType.ISSUE_SEND, issueMap, null); - this.systemEmailService.directEmail(issueForm.getSendEmails().toArray(new String[issueForm.getSendEmails().size()]), EmailType.ISSUE_SEND, issueMap, null); + if(issueForm.getTemplate().equals("SEND1")){ + this.systemEmailService.directEmail(issueForm.getSendEmails().toArray(new String[issueForm.getSendEmails().size()]), EmailType.ISSUE_SEND_1, issueMap, null); + }else if(issueForm.getTemplate().equals("SEND2")){ + this.systemEmailService.directEmail(issueForm.getSendEmails().toArray(new String[issueForm.getSendEmails().size()]), EmailType.ISSUE_SEND_2, issueMap, null); + }else if(issueForm.getTemplate().equals("SEND3")){ + this.systemEmailService.directEmail(issueForm.getSendEmails().toArray(new String[issueForm.getSendEmails().size()]), EmailType.ISSUE_SEND_3, issueMap, null); + } } // �삁�빟 諛쒖깮 �씠�뒋瑜� �떎�뻾�븳�떎 @@ -2791,7 +2801,6 @@ StringBuilder sb = new StringBuilder(); if (newParentIssueId != null) { // 異붽� �븷 寃쎌슦 - // todo �씠�쟾 �븯�쐞 �씪媛� �엳�뒪�넗由ш린濡� �븘�슂 parentIssue = this.getIssue(newParentIssueId); //�긽�쐞�씠�뒋(myIssue) issue.setParentIssue(parentIssue); //myIssue瑜� �븯�쐞�씠�뒋�쓽 �긽�쐞�씠�뒋濡� set this.issueHistoryService.detectDownIssues(IssueHistoryType.ADD, issue, sb); //issue = �븯�쐞�씠�뒋 diff --git a/src/main/java/kr/wisestone/owl/service/impl/SystemEmailServiceImpl.java b/src/main/java/kr/wisestone/owl/service/impl/SystemEmailServiceImpl.java index 60a400c..a51aff3 100644 --- a/src/main/java/kr/wisestone/owl/service/impl/SystemEmailServiceImpl.java +++ b/src/main/java/kr/wisestone/owl/service/impl/SystemEmailServiceImpl.java @@ -179,6 +179,24 @@ content = this.springTemplateEngine.process(mailConstants.getMailTemplate(), context); break; + case ISSUE_SEND_1: // �씠�뒋 �씠硫붿씪濡� ���긽�옄�뿉寃� 諛쒖넚 + mailConstants = MailConstants.ISSUE_SEND_1; + context = StringTemplateUtil.makeContext(params, locale); + content = this.springTemplateEngine.process(mailConstants.getMailTemplate(), context); + break; + + case ISSUE_SEND_2: // �씠�뒋 �씠硫붿씪濡� ���긽�옄�뿉寃� 諛쒖넚 + mailConstants = MailConstants.ISSUE_SEND_2; + context = StringTemplateUtil.makeContext(params, locale); + content = this.springTemplateEngine.process(mailConstants.getMailTemplate(), context); + break; + + case ISSUE_SEND_3: // �씠�뒋 �씠硫붿씪濡� ���긽�옄�뿉寃� 諛쒖넚 + mailConstants = MailConstants.ISSUE_SEND_3; + context = StringTemplateUtil.makeContext(params, locale); + content = this.springTemplateEngine.process(mailConstants.getMailTemplate(), context); + break; + case USER_JOIN_STATISTICS: // �씪�씪 �궗�슜�옄 媛��엯 �젙蹂� 諛쒖넚 mailConstants = MailConstants.USER_JOIN_STATISTICS; context = StringTemplateUtil.makeContext(params, locale); diff --git a/src/main/java/kr/wisestone/owl/service/impl/WidgetServiceImpl.java b/src/main/java/kr/wisestone/owl/service/impl/WidgetServiceImpl.java index 4a8a84d..df9aac1 100644 --- a/src/main/java/kr/wisestone/owl/service/impl/WidgetServiceImpl.java +++ b/src/main/java/kr/wisestone/owl/service/impl/WidgetServiceImpl.java @@ -486,6 +486,7 @@ List<Map<String, Object>> projectMemberIssues = this.widgetMapper.findProjectMemberIssue(widgetCondition); for (Map<String, Object> projectMemberIssue : projectMemberIssues) { + //String departmentName = MapUtil.getString(projectMemberIssue, "departmentName"); Long completeCount = MapUtil.getLong(projectMemberIssue, "completeCount"); Long remainCount = MapUtil.getLong(projectMemberIssue, "remainCount"); //projectMemberIssue.put("account", CommonUtil.decryptAES128(MapUtil.getString(projectMemberIssue, "account"))); @@ -1037,6 +1038,7 @@ excelInfo.setDatas(assigneeIssues); excelInfo.addAttrInfos(new ExportExcelAttrVo("issueKey", this.messageAccessor.message("common.issueKey"), 6, ExportExcelAttrVo.ALIGN_CENTER)); // �씠�뒋 踰덊샇 excelInfo.addAttrInfos(new ExportExcelAttrVo("registerDate", this.messageAccessor.message("common.registerDate"), 8, ExportExcelAttrVo.ALIGN_CENTER)); // �벑濡앹씪 + excelInfo.addAttrInfos(new ExportExcelAttrVo("projectName", this.messageAccessor.message("common.project"), 15, ExportExcelAttrVo.ALIGN_LEFT)); // �봽濡쒖젥�듃 excelInfo.addAttrInfos(new ExportExcelAttrVo("title", this.messageAccessor.message("common.issueTitle"), 40, ExportExcelAttrVo.ALIGN_LEFT)); // �씠�뒋 excelInfo.addAttrInfos(new ExportExcelAttrVo("issueStatusName", this.messageAccessor.message("common.status"), 6, ExportExcelAttrVo.ALIGN_CENTER)); // �긽�깭 excelInfo.addAttrInfos(new ExportExcelAttrVo("completeDate", this.messageAccessor.message("common.endDate"), 15, ExportExcelAttrVo.ALIGN_CENTER)); // 醫낅즺�씪 @@ -1104,6 +1106,7 @@ excelInfo.setDatas(riskIssues); excelInfo.addAttrInfos(new ExportExcelAttrVo("issueKey", this.messageAccessor.message("common.issueKey"), 6, ExportExcelAttrVo.ALIGN_CENTER)); // �씠�뒋 踰덊샇 excelInfo.addAttrInfos(new ExportExcelAttrVo("riskType", this.messageAccessor.message("common.division"), 15, ExportExcelAttrVo.ALIGN_CENTER)); // 援щ텇 + excelInfo.addAttrInfos(new ExportExcelAttrVo("projectName", this.messageAccessor.message("common.project"), 15, ExportExcelAttrVo.ALIGN_LEFT)); // �봽濡쒖젥�듃 excelInfo.addAttrInfos(new ExportExcelAttrVo("title", this.messageAccessor.message("common.issueTitle"), 40, ExportExcelAttrVo.ALIGN_LEFT)); // �씠�뒋 excelInfo.addAttrInfos(new ExportExcelAttrVo("issueStatusName", this.messageAccessor.message("common.status"), 6, ExportExcelAttrVo.ALIGN_CENTER)); // �긽�깭 excelInfo.addAttrInfos(new ExportExcelAttrVo("issueUsers", this.messageAccessor.message("common.assignee"), 20, ExportExcelAttrVo.ALIGN_CENTER)); // �떞�떦�옄 @@ -1137,6 +1140,7 @@ excelInfo.setDatas(registerIssues); excelInfo.addAttrInfos(new ExportExcelAttrVo("issueKey", this.messageAccessor.message("common.issueKey"), 6, ExportExcelAttrVo.ALIGN_CENTER)); // �씠�뒋 踰덊샇 excelInfo.addAttrInfos(new ExportExcelAttrVo("issueStatusName", this.messageAccessor.message("common.status"), 6, ExportExcelAttrVo.ALIGN_CENTER)); // �긽�깭 + excelInfo.addAttrInfos(new ExportExcelAttrVo("projectName", this.messageAccessor.message("common.project"), 15, ExportExcelAttrVo.ALIGN_LEFT)); // �봽濡쒖젥�듃 excelInfo.addAttrInfos(new ExportExcelAttrVo("title", this.messageAccessor.message("common.issueTitle"), 40, ExportExcelAttrVo.ALIGN_LEFT)); // �씠�뒋 excelInfo.addAttrInfos(new ExportExcelAttrVo("period", this.messageAccessor.message("common.period"), 15, ExportExcelAttrVo.ALIGN_CENTER)); // 湲곌컙 return excelInfo; @@ -1182,6 +1186,7 @@ excelInfo.setDatas(delayIssues); excelInfo.addAttrInfos(new ExportExcelAttrVo("issueKey", this.messageAccessor.message("common.issueKey"), 6, ExportExcelAttrVo.ALIGN_CENTER)); // �씠�뒋 踰덊샇 excelInfo.addAttrInfos(new ExportExcelAttrVo("delayDay", this.messageAccessor.message("common.delayDate"), 10, ExportExcelAttrVo.ALIGN_CENTER)); // 吏��뿰�씪 + excelInfo.addAttrInfos(new ExportExcelAttrVo("projectName", this.messageAccessor.message("common.project"), 15, ExportExcelAttrVo.ALIGN_LEFT)); // �봽濡쒖젥�듃 excelInfo.addAttrInfos(new ExportExcelAttrVo("title", this.messageAccessor.message("common.issueTitle"), 40, ExportExcelAttrVo.ALIGN_LEFT)); // �씠�뒋 excelInfo.addAttrInfos(new ExportExcelAttrVo("issueStatusName", this.messageAccessor.message("common.status"), 6, ExportExcelAttrVo.ALIGN_CENTER)); // �긽�깭 excelInfo.addAttrInfos(new ExportExcelAttrVo("period", this.messageAccessor.message("common.period"), 20, ExportExcelAttrVo.ALIGN_CENTER)); // 湲곌컙 @@ -1223,7 +1228,9 @@ excelInfo.setFileName(this.messageAccessor.message("common.progressByMember")); // 硫ㅻ쾭蹂� 吏꾪뻾瑜� excelInfo.setDatas(members); - excelInfo.addAttrInfos(new ExportExcelAttrVo("byName", this.messageAccessor.message("common.teamMember"), 15, ExportExcelAttrVo.ALIGN_LEFT)); // ���썝 + //excelInfo.addAttrInfos(new ExportExcelAttrVo("byName", this.messageAccessor.message("common.teamMember"), 15, ExportExcelAttrVo.ALIGN_LEFT)); // ���썝 + excelInfo.addAttrInfos(new ExportExcelAttrVo("projectName", this.messageAccessor.message("common.project"), 15, ExportExcelAttrVo.ALIGN_LEFT)); // �봽濡쒖젥�듃 + excelInfo.addAttrInfos(new ExportExcelAttrVo("departmentName", this.messageAccessor.message("common.teamDepartment"), 15, ExportExcelAttrVo.ALIGN_LEFT)); // �떞�떦遺��꽌 excelInfo.addAttrInfos(new ExportExcelAttrVo("projectProgressPercent", this.messageAccessor.message("common.progressPercent"), 6, ExportExcelAttrVo.ALIGN_LEFT)); // 吏꾪뻾瑜� excelInfo.addAttrInfos(new ExportExcelAttrVo("issueCount", this.messageAccessor.message("common.assignedIssue"), 10, ExportExcelAttrVo.ALIGN_CENTER)); // �떞�떦 �씠�뒋 excelInfo.addAttrInfos(new ExportExcelAttrVo("delayCount", this.messageAccessor.message("common.delaying"), 6, ExportExcelAttrVo.ALIGN_CENTER)); // 吏��뿰以� @@ -1300,6 +1307,7 @@ excelInfo.setDatas(severityIssue); excelInfo.addAttrInfos(new ExportExcelAttrVo("issueKey", this.messageAccessor.message("common.issueKey"), 8, ExportExcelAttrVo.ALIGN_CENTER)); //�씠�뒋 踰덊샇 excelInfo.addAttrInfos(new ExportExcelAttrVo("severityName", this.messageAccessor.message("common.importance"), 6, ExportExcelAttrVo.ALIGN_CENTER)); // 以묒슂�룄 + excelInfo.addAttrInfos(new ExportExcelAttrVo("projectName", this.messageAccessor.message("common.project"), 15, ExportExcelAttrVo.ALIGN_LEFT)); // �봽濡쒖젥�듃 excelInfo.addAttrInfos(new ExportExcelAttrVo("title", this.messageAccessor.message("common.issueTitle"), 40, ExportExcelAttrVo.ALIGN_CENTER)); // �씠�뒋�젣紐� excelInfo.addAttrInfos(new ExportExcelAttrVo("issueStatusName", this.messageAccessor.message("common.status"), 6, ExportExcelAttrVo.ALIGN_CENTER)); //�씠�뒋 �긽�깭 excelInfo.addAttrInfos(new ExportExcelAttrVo("period", this.messageAccessor.message("common.period"), 15, ExportExcelAttrVo.ALIGN_CENTER)); // 湲곌컙 diff --git a/src/main/java/kr/wisestone/owl/web/controller/IssueController.java b/src/main/java/kr/wisestone/owl/web/controller/IssueController.java index 0cbcbda..2e224eb 100644 --- a/src/main/java/kr/wisestone/owl/web/controller/IssueController.java +++ b/src/main/java/kr/wisestone/owl/web/controller/IssueController.java @@ -165,7 +165,7 @@ } // 硫붿씪 諛쒖넚 ���긽�옄 紐⑸줉 議고쉶 - @RequestMapping(value = "/issue/findMailTargetAll", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE) + /*@RequestMapping(value = "/issue/findMailTargetAll", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE) public @ResponseBody Map<String, Object> findMailTargetAll(@RequestBody Map<String, Map<String, Object>> params) { @@ -175,7 +175,7 @@ // this.issueService.findMailTargetAll(resJsonData, IssueCondition.make(params.get(Constants.REQ_KEY_CONTENT)), pageable); return this.setSuccessMessage(resJsonData); - } + }*/ /*// �뾽泥� �떞�떦�옄 硫붿씪 紐⑸줉 議고쉶 diff --git a/src/main/java/kr/wisestone/owl/web/form/IssueForm.java b/src/main/java/kr/wisestone/owl/web/form/IssueForm.java index bf58d29..87aade8 100644 --- a/src/main/java/kr/wisestone/owl/web/form/IssueForm.java +++ b/src/main/java/kr/wisestone/owl/web/form/IssueForm.java @@ -30,6 +30,7 @@ private List<Long> userIds = Lists.newArrayList(); private List<Long> departmentIds = Lists.newArrayList(); // �떞�떦 遺��꽌 private List<String> sendEmails = Lists.newArrayList(); // �씠硫붿씪 諛쒖넚 ���긽�옄 + private String template; private List<Long> attachedFileIds = Lists.newArrayList(); private Long relationIssue; // �뿰愿� �씪媛� private List<Map<String, Object>> issueCustomFields = Lists.newArrayList(); @@ -72,6 +73,11 @@ // 硫붿씪 諛쒖넚�옄 �젙蹂� if (MapUtil.getStrings(params, "sendEmails") != null) { form.setSendEmails(MapUtil.getStrings(params, "sendEmails")); + } + + // 硫붿씪 �뀥�뵆由� �젙蹂� + if (MapUtil.getString(params, "template") != null) { + form.setTemplate(MapUtil.getString(params, "template")); } // �뀓�뒪�듃 �뿉�뵒�꽣�뿉 泥⑤��맂 �뙆�씪�쓣 �씠�뒋�� �뿰寃고븯�뒗 �젙蹂� @@ -356,4 +362,12 @@ public void setFiles(List<Map<String, Object>> files) { this.files = files; } + + public String getTemplate() { + return template; + } + + public void setTemplate(String template) { + this.template = template; + } } diff --git a/src/main/resources/mybatis/query-template/widget-template.xml b/src/main/resources/mybatis/query-template/widget-template.xml index 37ab4d1..b482c87 100644 --- a/src/main/resources/mybatis/query-template/widget-template.xml +++ b/src/main/resources/mybatis/query-template/widget-template.xml @@ -15,7 +15,7 @@ WHERE EXISTS(SELECT 1 FROM issue_status iss WHERE iss.issue_status_type != 'CLOSE' AND i.issue_status_id = iss.id) <choose> - <when test="meAndDownProjectIds.size != 0"> + <when test="meAndDownProjectIds != null and meAndDownProjectIds.size != 0"> AND i.project_id IN <foreach collection="meAndDownProjectIds" item="item" index="index" separator="," open="(" close=")"> #{item} @@ -31,7 +31,7 @@ COUNT(i.id) FROM issue i where exists(select 1 from issue_status iss where iss.id = i.issue_status_id and iss.issue_status_type != 'CLOSE') <choose> - <when test="meAndDownProjectIds.size != 0"> + <when test="meAndDownProjectIds != null and meAndDownProjectIds.size != 0"> AND i.project_id IN <foreach collection="meAndDownProjectIds" item="item" index="index" separator="," open="(" close=")"> #{item} @@ -86,7 +86,7 @@ </choose> ) AND EXISTS(SELECT 1 FROM issue_status iss WHERE iss.id = i.issue_status_id and iss.issue_status_type != 'CLOSE') <choose> - <when test="meAndDownProjectIds.size != 0"> + <when test="meAndDownProjectIds != null and meAndDownProjectIds.size != 0"> AND i.project_id IN <foreach collection="meAndDownProjectIds" item="item" index="index" separator="," open="(" close=")"> #{item} @@ -102,7 +102,7 @@ count(i.id) as todayCount from issue i where i.register_id = #{loginUserId} <choose> - <when test="meAndDownProjectIds.size != 0"> + <when test="meAndDownProjectIds != null and meAndDownProjectIds.size != 0"> AND i.project_id IN <foreach collection="meAndDownProjectIds" item="item" index="index" separator="," open="(" close=")"> #{item} @@ -140,7 +140,7 @@ WHERE EXISTS(select 1 from issue_status iss where iss.id = i.issue_status_id and iss.issue_status_type != 'CLOSE') <choose> - <when test="meAndDownProjectIds.size != 0"> + <when test="meAndDownProjectIds != null and meAndDownProjectIds.size != 0"> AND i.project_id IN <foreach collection="meAndDownProjectIds" item="item" index="index" separator="," open="(" close=")"> #{item} @@ -158,7 +158,7 @@ inner join issue_status iss on iss.id = i.issue_status_id where iss.issue_status_type = 'CLOSE' <choose> - <when test="meAndDownProjectIds.size != 0"> + <when test="meAndDownProjectIds != null and meAndDownProjectIds.size != 0"> AND i.project_id IN <foreach collection="meAndDownProjectIds" item="item" index="index" separator="," open="(" close=")"> #{item} @@ -180,7 +180,7 @@ where iss.issue_status_type = 'CLOSE' and i.modify_date between #{searchStartDate} and #{searchEndDate} <choose> - <when test="meAndDownProjectIds.size != 0"> + <when test="meAndDownProjectIds != null and meAndDownProjectIds.size != 0"> AND i.project_id IN <foreach collection="meAndDownProjectIds" item="item" index="index" separator="," open="(" close=")"> #{item} @@ -197,7 +197,7 @@ inner join issue_status iss on iss.id = i.issue_status_id where 1=1 <choose> - <when test="meAndDownProjectIds.size != 0"> + <when test="meAndDownProjectIds != null and meAndDownProjectIds.size != 0"> AND i.project_id IN <foreach collection="meAndDownProjectIds" item="item" index="index" separator="," open="(" close=")"> #{item} @@ -277,7 +277,7 @@ left outer join issue_status iss on iss.id = i.issue_status_id WHERE 1=1 <choose> - <when test="meAndDownProjectIds.size != 0"> + <when test="meAndDownProjectIds != null and meAndDownProjectIds.size != 0"> AND p.id IN <foreach collection="meAndDownProjectIds" item="item" index="index" separator="," open="(" close=")"> #{item} @@ -389,7 +389,7 @@ and id.register_date BETWEEN (CURDATE()) AND (CURDATE() + INTERVAL 1 DAY)) <choose> - <when test="meAndDownProjectIds.size != 0"> + <when test="meAndDownProjectIds != null and meAndDownProjectIds.size != 0"> AND i.project_id IN <foreach collection="meAndDownProjectIds" item="item" index="index" separator="," open="(" close=")"> #{item} @@ -429,7 +429,7 @@ inner join issue_status iss on iss.id = i.issue_status_id WHERE 1=1 <choose> - <when test="meAndDownProjectIds.size != 0"> + <when test="meAndDownProjectIds != null and meAndDownProjectIds.size != 0"> AND i.project_id IN <foreach collection="meAndDownProjectIds" item="item" index="index" separator="," open="(" close=")"> #{item} @@ -502,7 +502,7 @@ inner join project p on p.id = i.project_id WHERE 1=1 <choose> - <when test="meAndDownProjectIds.size != 0"> + <when test="meAndDownProjectIds != null and meAndDownProjectIds.size != 0"> AND p.id IN <foreach collection="meAndDownProjectIds" item="item" index="index" separator="," open="(" close=")"> #{item} @@ -562,7 +562,7 @@ inner join issue_status iss on iss.id = i.issue_status_id where iss.issue_status_type != 'CLOSE' <choose> - <when test="meAndDownProjectIds.size != 0"> + <when test="meAndDownProjectIds != null and meAndDownProjectIds.size != 0"> AND i.project_id IN <foreach collection="meAndDownProjectIds" item="item" index="index" separator="," open="(" close=")"> #{item} @@ -607,14 +607,15 @@ (case when ir.change_issue_status_count > 3 then true else false end) as changeIssueStatusType, CONCAT(p.project_key, '-', i.issue_number) AS issueKey, i.issue_number as issueNumber, - p.project_key as projectKey + p.project_key as projectKey, + p.name as projectName from issue i inner join issue_risk ir on ir.issue_id = i.id inner join issue_status iss on iss.id = i.issue_status_id inner join project p on p.id = i.project_id where iss.issue_status_type != 'CLOSE' <choose> - <when test="meAndDownProjectIds.size != 0"> + <when test="meAndDownProjectIds != null and meAndDownProjectIds.size != 0"> AND p.id IN <foreach collection="meAndDownProjectIds" item="item" index="index" separator="," open="(" close=")"> #{item} @@ -637,7 +638,7 @@ inner join issue_status iss on iss.id = i.issue_status_id where iss.issue_status_type != 'CLOSE' <choose> - <when test="meAndDownProjectIds.size != 0"> + <when test="meAndDownProjectIds != null and meAndDownProjectIds.size != 0"> AND i.project_id IN <foreach collection="meAndDownProjectIds" item="item" index="index" separator="," open="(" close=")"> #{item} @@ -675,7 +676,7 @@ WHERE 1=1 AND i.register_id = #{loginUserId} <choose> - <when test="meAndDownProjectIds.size != 0"> + <when test="meAndDownProjectIds != null and meAndDownProjectIds.size != 0"> AND i.project_id IN <foreach collection="meAndDownProjectIds" item="item" index="index" separator="," open="(" close=")"> #{item} @@ -706,7 +707,7 @@ AND EXISTS (SELECT 1 FROM issue_status iss WHERE iss.id = i.issue_status_id AND iss.issue_status_type != 'CLOSE') </if> <choose> - <when test="meAndDownProjectIds.size != 0"> + <when test="meAndDownProjectIds != null and meAndDownProjectIds.size != 0"> AND i.project_id IN <foreach collection="meAndDownProjectIds" item="item" index="index" separator="," open="(" close=")"> #{item} @@ -744,7 +745,7 @@ </if> WHERE 1=1 <choose> - <when test="meAndDownProjectIds.size != 0"> + <when test="meAndDownProjectIds != null and meAndDownProjectIds.size != 0"> AND i.project_id IN <foreach collection="meAndDownProjectIds" item="item" index="index" separator="," open="(" close=")"> #{item} @@ -770,7 +771,7 @@ </if> WHERE 1=1 <choose> - <when test="meAndDownProjectIds.size != 0"> + <when test="meAndDownProjectIds != null and meAndDownProjectIds.size != 0"> AND i.project_id IN <foreach collection="meAndDownProjectIds" item="item" index="index" separator="," open="(" close=")"> #{item} @@ -807,7 +808,7 @@ inner join issue_status iss on iss.id = i.issue_status_id where 1=1 <choose> - <when test="meAndDownProjectIds.size != 0"> + <when test="meAndDownProjectIds != null and meAndDownProjectIds.size != 0"> AND i.project_id IN <foreach collection="meAndDownProjectIds" item="item" index="index" separator="," open="(" close=")"> #{item} @@ -851,6 +852,7 @@ parameterType="kr.wisestone.owl.web.condition.WidgetCondition"> select d.department_name as departmentName, + p.name as projectName, (select count(*) from issue i inner join issue_department id on id.issue_id = i.id inner join issue_status iss on iss.id = i.issue_status_id @@ -870,7 +872,7 @@ inner join project p on p.id = pr.project_id WHERE <choose> - <when test="meAndDownProjectIds.size != 0"> + <when test="meAndDownProjectIds != null and meAndDownProjectIds.size != 0"> p.id IN <foreach collection="meAndDownProjectIds" item="item" index="index" separator="," open="(" close=")"> #{item} @@ -894,7 +896,7 @@ 'CLOSE') AND i.register_id = #{loginUserId} <choose> - <when test="meAndDownProjectIds.size != 0"> + <when test="meAndDownProjectIds != null and meAndDownProjectIds.size != 0"> AND i.project_id IN <foreach collection="meAndDownProjectIds" item="item" index="index" separator="," open="(" close=")"> #{item} @@ -912,7 +914,7 @@ 'CLOSE') AND i.register_id = #{loginUserId} <choose> - <when test="meAndDownProjectIds.size != 0"> + <when test="meAndDownProjectIds != null and meAndDownProjectIds.size != 0"> AND i.project_id IN <foreach collection="meAndDownProjectIds" item="item" index="index" separator="," open="(" close=")"> #{item} @@ -959,7 +961,7 @@ </choose> and iss.issue_status_type = 'CLOSE' <choose> - <when test="meAndDownProjectIds.size != 0"> + <when test="meAndDownProjectIds != null and meAndDownProjectIds.size != 0"> AND i.project_id IN <foreach collection="meAndDownProjectIds" item="item" index="index" separator="," open="(" close=")"> #{item} @@ -1006,7 +1008,7 @@ </otherwise> </choose> <choose> - <when test="meAndDownProjectIds.size != 0"> + <when test="meAndDownProjectIds != null and meAndDownProjectIds.size != 0"> AND i.project_id IN <foreach collection="meAndDownProjectIds" item="item" index="index" separator="," open="(" close=")"> #{item} @@ -1046,7 +1048,7 @@ WHERE w.id = #{workspaceId} AND iss.issue_status_type != 'CLOSE' <choose> - <when test="meAndDownProjectIds.size != 0"> + <when test="meAndDownProjectIds != null and meAndDownProjectIds.size != 0"> AND i.project_id IN <foreach collection="meAndDownProjectIds" item="item" index="index" separator="," open="(" close=")"> #{item} @@ -1066,6 +1068,7 @@ replace(i.complete_date, "-", ".") AS completeDate, i.issue_number AS issueNumber, p.project_key AS projectKey, + p.name AS projectName, iss.name AS issueStatusName, CONCAT(p.project_key, '-', i.issue_number) AS issueKey FROM issue i @@ -1077,7 +1080,7 @@ AND s.id = #{severityId} AND iss.issue_status_type != 'CLOSE' <choose> - <when test="meAndDownProjectIds.size != 0"> + <when test="meAndDownProjectIds != null and meAndDownProjectIds.size != 0"> AND i.project_id IN <foreach collection="meAndDownProjectIds" item="item" index="index" separator="," open="(" close=")"> #{item} @@ -1102,7 +1105,7 @@ AND s.id = #{severityId} AND iss.issue_status_type != 'CLOSE' <choose> - <when test="meAndDownProjectIds.size != 0"> + <when test="meAndDownProjectIds != null and meAndDownProjectIds.size != 0"> AND i.project_id IN <foreach collection="meAndDownProjectIds" item="item" index="index" separator="," open="(" close=")"> #{item} diff --git a/src/main/webapp/WEB-INF/i18n/code_ko_KR.properties b/src/main/webapp/WEB-INF/i18n/code_ko_KR.properties index 70ef9b3..d0355db 100644 --- a/src/main/webapp/WEB-INF/i18n/code_ko_KR.properties +++ b/src/main/webapp/WEB-INF/i18n/code_ko_KR.properties @@ -29,6 +29,7 @@ common.registerDate=\uB4F1\uB85D\uC77C common.admin=\uAD00\uB9AC\uC790 common.teamMember=\uD300\uC6D0 +common.teamDepartment=\uB2F4\uB2F9\uBD80\uC11C common.registration=\uB4F1\uB85D common.assigned=\uB2F4\uB2F9 common.progressPercent=\uC9C4\uD589\uB960 diff --git a/src/main/webapp/WEB-INF/i18n/messages_ko_KR.properties b/src/main/webapp/WEB-INF/i18n/messages_ko_KR.properties index f13e192..f56fd09 100644 --- a/src/main/webapp/WEB-INF/i18n/messages_ko_KR.properties +++ b/src/main/webapp/WEB-INF/i18n/messages_ko_KR.properties @@ -116,6 +116,7 @@ ISSUE_REMOVE_NOT_SELECT = \uC0AD\uC81C\uD560 \uC774\uC288\uAC00 \uC120\uD0DD\uB418\uC9C0 \uC54A\uC558\uC2B5\uB2C8\uB2E4. ISSUE_NO_TITLE = \uC774\uC288 \uC81C\uBAA9\uC774 \uC785\uB825\uB418\uC9C0 \uC54A\uC558\uC2B5\uB2C8\uB2E4. ISSUE_NOT_SEND_USER = \uC774\uC288 \uBC1C\uC1A1 \uB300\uC0C1\uC790\uB97C \uC120\uD0DD\uD558\uC9C0 \uC54A\uC558\uC2B5\uB2C8\uB2E4. +ISSUE_NOT_SELECT_TEMPLATE = \uC774\uC288 \uBC1C\uC1A1 \uD15C\uD50C\uB9BF\uC744 \uC120\uD0DD\uD558\uC9C0 \uC54A\uC558\uC2B5\uB2C8\uB2E4. ISSUE_COMMENT_REMOVE_NOT_SELECT = \uC0AD\uC81C\uD560 \uB313\uAE00\uC744 \uC120\uD0DD\uD558\uC9C0 \uC54A\uC558\uC2B5\uB2C8\uB2E4. ISSUE_COMMENT_NOT_EXIST = \uB313\uAE00\uC774 \uC874\uC7AC\uD558\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4. diff --git a/src/main/webapp/scripts/app/widget/widgetDashBoard.controller.js b/src/main/webapp/scripts/app/widget/widgetDashBoard.controller.js index 0bab9d8..d4702ad 100644 --- a/src/main/webapp/scripts/app/widget/widgetDashBoard.controller.js +++ b/src/main/webapp/scripts/app/widget/widgetDashBoard.controller.js @@ -51,6 +51,44 @@ $scope.vm.riskIssueWidget = result.data.riskIssueWidget; // �굹�쓽 �씠�뒋 �쁽�솴 �젙蹂대�� ���옣�븳�떎. $scope.vm.myIssueWidget = result.data.myIssueWidget; + + const members = result.data.memberProgressWidget.members; + var filterMembers = members.filter(function(item, idx){ + return members.findIndex(function(item2, idx2){ + return item.departmentName === item2.departmentName + }) == idx; + }); + + var departmentNames = []; + angular.forEach(filterMembers, function (member) { + departmentNames.push(member.departmentName); + }); + var completeCounts = []; + var delayCounts = []; + var remainCounts = []; + + for(var j=0; j<departmentNames.length; j++){ //諛곗뿴 珥덇린媛� �꽑�뼵 + completeCounts[j] = 0; + delayCounts[j] = 0; + remainCounts[j] = 0; + } + + for(var i=0; i<members.length; i++){ + for(var j=0; j<departmentNames.length; j++){ + if(members[i].departmentName === departmentNames[j]){ + completeCounts[j] += members[i].completeCount; + delayCounts[j] += members[i].delayCount; + remainCounts[j] += members[i].remainCount; + } + } + } + for(var i=0; i<filterMembers.length; i++){ + filterMembers[i].completeCount = completeCounts[i] + filterMembers[i].delayCount = delayCounts[i] + filterMembers[i].remainCount = remainCounts[i] + } + result.data.memberProgressWidget.members = filterMembers; + // 硫ㅻ쾭蹂� 吏꾪뻾瑜좎쓣 ���옣�븳�떎. $scope.vm.memberProgressWidget = result.data.memberProgressWidget; // �쟾泥� �씠�뒋 泥섎━ �쁽�솴 �젙蹂대�� ���옣�븳�떎. -- Gitblit v1.8.0