From 05a4a56083d97636e462e0a368f6846fe0653149 Mon Sep 17 00:00:00 2001 From: wulin Date: Mon, 14 Dec 2020 11:30:43 +0800 Subject: [PATCH 1/4] =?UTF-8?q?=E8=AF=84=E8=AE=BA=E6=8E=A8=E9=80=81?= =?UTF-8?q?=E6=B6=88=E6=81=AF=E5=A2=9E=E5=8A=A0=E5=AF=B9@=E7=9A=84?= =?UTF-8?q?=E4=BA=BA=E7=9A=84=E6=8E=A8=E9=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/lz/common/emun/WorkMsgTypeEnum.java | 1 + .../job/business/DingtalkBusiness.java | 69 +++++++++++++------ src/test/java/com/lz/mysql/MysqlMain.java | 1 + 3 files changed, 51 insertions(+), 20 deletions(-) diff --git a/src/main/java/com/lz/common/emun/WorkMsgTypeEnum.java b/src/main/java/com/lz/common/emun/WorkMsgTypeEnum.java index fb0a0920..2061cafd 100644 --- a/src/main/java/com/lz/common/emun/WorkMsgTypeEnum.java +++ b/src/main/java/com/lz/common/emun/WorkMsgTypeEnum.java @@ -26,6 +26,7 @@ public enum WorkMsgTypeEnum { CLEARN(12, "绩效转交", "转交", "# @的绩效\n ## 己经转交"), TASK_COMMENT(13, "任务评论", "去查看", "# 任务评论\n ## @1评论了你的@2的任务"), TASK_UPDATE(14, "任务更新", "去更新", "# 任务更新\n ## 记得每天来更新任务哦"), + TASK_REPLY_COMMENT(15, "任务评论", "去查看", "# 任务评论\n ## @1在@2的任务中@的了你"), // 您的2020年10月绩效考核已经开始,请尽快制定绩效目标 // 吴林的2020年12月绩效考核的目标需要您确认,点击前往确认 ; diff --git a/src/main/java/com/lz/modules/job/business/DingtalkBusiness.java b/src/main/java/com/lz/modules/job/business/DingtalkBusiness.java index a3894c7f..e5739886 100644 --- a/src/main/java/com/lz/modules/job/business/DingtalkBusiness.java +++ b/src/main/java/com/lz/modules/job/business/DingtalkBusiness.java @@ -693,7 +693,7 @@ public class DingtalkBusiness { public String sendTaskNoticeMsg(Long detailId, Long taskId) { ResultDetail resultDetail = resultDetailService.selectResultDetailById(detailId); - logger.info("评论通知指标id{}, 任务id{}", detailId, taskId); + logger.info("评论通知指标id{}, 任务id{}, 指标信息{}", detailId, taskId, resultDetail); if(resultDetail != null){ TaskProcessRecord taskProcessRecord = null; if(taskId == null){ @@ -701,17 +701,13 @@ public class DingtalkBusiness { }else{ taskProcessRecord = taskProcessRecordService.selectCommentTaskProcessRecordByTaskId(taskId); } - StaffSimpleInfo fromStaffSimpleInfo = staffService.selectStaffSimpleInfo(taskProcessRecord.getStaffId()); - StaffSimpleInfo toStaffSimpleInfo = staffService.selectStaffSimpleInfo(resultDetail.getStaffId()); - - ThirdAppConfig thirdAppConfig = thirdAppConfigService.getByAppId(appid); - String token = dingTalkUtil.getAccessTokenWitchEntity(thirdAppConfig); - if(token != null && token.length() > 0){ - + if(taskProcessRecord != null) { + ThirdAppConfig thirdAppConfig = thirdAppConfigService.getByAppId(appid); + String token = dingTalkUtil.getAccessTokenWitchEntity(thirdAppConfig); String url = homeUrl; - if(url.contains("?")){ + if (url.contains("?")) { url += "&halokit=" + System.currentTimeMillis(); - }else{ + } else { url += "?halokit=" + System.currentTimeMillis(); } url += ("&detail=1&id=" + resultDetail.getRecordId()); @@ -721,20 +717,53 @@ public class DingtalkBusiness { url = "dingtalk://dingtalkclient/action/openapp?corpid=" + thirdAppConfig.getCorpId() + "&container_type=work_platform&app_id=0_" + appid + "&redirect_type=jump&redirect_url=" + url; - StaffEntity info = new StaffEntity(); - info.setId(toStaffSimpleInfo.getId()); - info.setEmployeeId(toStaffSimpleInfo.getEmployeeId()); - String content = WorkMsgTypeEnum.TASK_COMMENT.getContent().replace("@1", fromStaffSimpleInfo.getName()); - content = content.replace("@2", "“" + resultDetail.getTarget() + "”"); - logger.info("通知内容{},url{}", content, url); - dingTalkUtil.sendSingleActionCardMSG(appid, info, WorkMsgTypeEnum.TASK_COMMENT.getTitle(), - content, WorkMsgTypeEnum.TASK_COMMENT.getBtnText(), url, token); + if (token != null && token.length() > 0) { - return "OK"; + StaffSimpleInfo fromStaffSimpleInfo = staffService.selectStaffSimpleInfo(taskProcessRecord.getStaffId()); + if (taskProcessRecord.getStaffId().longValue() != resultDetail.getId().longValue()) { + //自己评论自己的不允许给自己发消息 + StaffSimpleInfo toStaffSimpleInfo = staffService.selectStaffSimpleInfo(resultDetail.getStaffId()); + StaffEntity info = new StaffEntity(); + info.setId(toStaffSimpleInfo.getId()); + info.setEmployeeId(toStaffSimpleInfo.getEmployeeId()); + String content = WorkMsgTypeEnum.TASK_COMMENT.getContent().replace("@1", fromStaffSimpleInfo.getName()); + content = content.replace("@2", "“" + resultDetail.getTarget() + "”"); + logger.info("通知内容{},url{}", content, url); + dingTalkUtil.sendSingleActionCardMSG(appid, info, WorkMsgTypeEnum.TASK_COMMENT.getTitle(), + content, WorkMsgTypeEnum.TASK_COMMENT.getBtnText(), url, token); + + + + } + if(taskProcessRecord.getAtStaffIds().length() > 0){ + //@的人员 + List ids = Arrays.stream(taskProcessRecord.getAtStaffIds().split(",")) + .map(new Function() { + @Override + public Long apply(String s) { + return Long.parseLong(s); + } + }).collect(Collectors.toList()); + List staffEntities = staffService.selectByIds(ids); + String content = WorkMsgTypeEnum.TASK_REPLY_COMMENT.getContent().replace("@1", fromStaffSimpleInfo.getName()); + content = content.replace("@2", "“" + resultDetail.getTarget() + "”"); + logger.info("通知内容{},url{}", content, url); + for (StaffEntity info:staffEntities + ) { + dingTalkUtil.sendSingleActionCardMSG(appid, info, WorkMsgTypeEnum.TASK_REPLY_COMMENT.getTitle(), + content, WorkMsgTypeEnum.TASK_REPLY_COMMENT.getBtnText(), url, token); + } + + } + return "OK"; + }else { + return "token无效"; + } }else{ - return "token无效"; + logger.info("任务不存在"); } + } return "OK"; } diff --git a/src/test/java/com/lz/mysql/MysqlMain.java b/src/test/java/com/lz/mysql/MysqlMain.java index ff99a668..5d7c5b5a 100644 --- a/src/test/java/com/lz/mysql/MysqlMain.java +++ b/src/test/java/com/lz/mysql/MysqlMain.java @@ -69,6 +69,7 @@ public class MysqlMain { + String path = ResourceUtils.getURL("classpath:").getPath(); System.out.println(path); String dir = null; From 2341e6b38a2bde9459bfde15b5c4c5c149a31f7d Mon Sep 17 00:00:00 2001 From: wulin Date: Mon, 14 Dec 2020 11:47:14 +0800 Subject: [PATCH 2/4] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/com/lz/modules/job/business/DingtalkBusiness.java | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/main/java/com/lz/modules/job/business/DingtalkBusiness.java b/src/main/java/com/lz/modules/job/business/DingtalkBusiness.java index e5739886..59c591b8 100644 --- a/src/main/java/com/lz/modules/job/business/DingtalkBusiness.java +++ b/src/main/java/com/lz/modules/job/business/DingtalkBusiness.java @@ -733,8 +733,6 @@ public class DingtalkBusiness { dingTalkUtil.sendSingleActionCardMSG(appid, info, WorkMsgTypeEnum.TASK_COMMENT.getTitle(), content, WorkMsgTypeEnum.TASK_COMMENT.getBtnText(), url, token); - - } if(taskProcessRecord.getAtStaffIds().length() > 0){ //@的人员 From b6b774ed290fbea237736331d35c867bc719d05c Mon Sep 17 00:00:00 2001 From: wulin Date: Mon, 14 Dec 2020 13:49:17 +0800 Subject: [PATCH 3/4] =?UTF-8?q?=E9=80=9A=E7=9F=A5=E4=BA=BA=E5=91=98?= =?UTF-8?q?=E4=B8=AA=E6=95=B0=E5=A2=9E=E5=8A=A0=E6=97=A5=E5=BF=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/com/lz/modules/job/business/DingtalkBusiness.java | 1 + 1 file changed, 1 insertion(+) diff --git a/src/main/java/com/lz/modules/job/business/DingtalkBusiness.java b/src/main/java/com/lz/modules/job/business/DingtalkBusiness.java index 59c591b8..17e5e355 100644 --- a/src/main/java/com/lz/modules/job/business/DingtalkBusiness.java +++ b/src/main/java/com/lz/modules/job/business/DingtalkBusiness.java @@ -744,6 +744,7 @@ public class DingtalkBusiness { } }).collect(Collectors.toList()); List staffEntities = staffService.selectByIds(ids); + logger.info("评论推送人员个数{}", staffEntities.size()); String content = WorkMsgTypeEnum.TASK_REPLY_COMMENT.getContent().replace("@1", fromStaffSimpleInfo.getName()); content = content.replace("@2", "“" + resultDetail.getTarget() + "”"); logger.info("通知内容{},url{}", content, url); From 521be552583cc2d121e79ad6ecb0743613b94952 Mon Sep 17 00:00:00 2001 From: wulin Date: Mon, 14 Dec 2020 13:53:14 +0800 Subject: [PATCH 4/4] =?UTF-8?q?=E6=8E=A8=E9=80=81=E8=AF=84=E8=AE=BA?= =?UTF-8?q?=E9=80=9A=E7=9F=A5=E5=A2=9E=E5=8A=A0=E6=89=B9=E9=87=8F=E6=8E=A8?= =?UTF-8?q?=E9=80=81=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../job/business/DingtalkBusiness.java | 23 +++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/lz/modules/job/business/DingtalkBusiness.java b/src/main/java/com/lz/modules/job/business/DingtalkBusiness.java index 17e5e355..e931eeca 100644 --- a/src/main/java/com/lz/modules/job/business/DingtalkBusiness.java +++ b/src/main/java/com/lz/modules/job/business/DingtalkBusiness.java @@ -748,11 +748,30 @@ public class DingtalkBusiness { String content = WorkMsgTypeEnum.TASK_REPLY_COMMENT.getContent().replace("@1", fromStaffSimpleInfo.getName()); content = content.replace("@2", "“" + resultDetail.getTarget() + "”"); logger.info("通知内容{},url{}", content, url); - for (StaffEntity info:staffEntities + String userIds = ""; + int m = 0; + for (int i = 0; i < staffEntities.size(); i++) { + StaffEntity staff = staffEntities.get(i); + userIds += (staff.getEmployeeId() + ","); + if(m >= 99 || i == staffEntities.size() - 1){ + //发送消息 + StaffEntity info = new StaffEntity(); + info.setId(0L); + info.setEmployeeId(userIds); + logger.info("推送的人员信息{}", info); + dingTalkUtil.sendSingleActionCardMSG(appid, info, WorkMsgTypeEnum.TASK_REPLY_COMMENT.getTitle(), + WorkMsgTypeEnum.TASK_REPLY_COMMENT.getContent(), WorkMsgTypeEnum.TASK_REPLY_COMMENT.getBtnText(), url, token); + m = 0; + userIds = ""; + continue; + } + m++; + } + /*for (StaffEntity info:staffEntities ) { dingTalkUtil.sendSingleActionCardMSG(appid, info, WorkMsgTypeEnum.TASK_REPLY_COMMENT.getTitle(), content, WorkMsgTypeEnum.TASK_REPLY_COMMENT.getBtnText(), url, token); - } + }*/ } return "OK";