From 78081a03749cf6cd3d0b494acc740d173b8d692a Mon Sep 17 00:00:00 2001 From: wulin Date: Thu, 10 Dec 2020 10:15:31 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E8=AF=84=E8=AE=BA=E9=80=9A?= =?UTF-8?q?=E7=9F=A5=E5=AE=9E=E7=8E=B0?= 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 | 58 +++++++++++++++++++ .../performance/dao/TaskCommentMapper.java | 4 ++ .../service/TaskCommentService.java | 4 ++ .../service/impl/TaskCommentServiceImpl.java | 10 ++++ .../mapper/performance/TaskCommentMapper.xml | 8 +++ 6 files changed, 85 insertions(+) diff --git a/src/main/java/com/lz/common/emun/WorkMsgTypeEnum.java b/src/main/java/com/lz/common/emun/WorkMsgTypeEnum.java index 0f94627a..44fdfc05 100644 --- a/src/main/java/com/lz/common/emun/WorkMsgTypeEnum.java +++ b/src/main/java/com/lz/common/emun/WorkMsgTypeEnum.java @@ -24,6 +24,7 @@ public enum WorkMsgTypeEnum { SKIP(10, "绩效跳过", "跳过", "# @的绩效\n ## 己经跳过"), TRANSFER(11, "绩效转交", "转交", "# @的绩效\n ## 己经转交"), CLEARN(12, "绩效转交", "转交", "# @的绩效\n ## 己经转交"), + TASK_COMMENT(13, "任务评论", "去查看", "# 任务评论\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 03c8ced1..2270ce66 100644 --- a/src/main/java/com/lz/modules/job/business/DingtalkBusiness.java +++ b/src/main/java/com/lz/modules/job/business/DingtalkBusiness.java @@ -29,9 +29,15 @@ import com.lz.modules.flow.service.FlowRecordService; import com.lz.modules.flow.service.FlowStartService; import com.lz.modules.job.model.responseBo.DepartmentInfosBo; import com.lz.modules.job.model.responseBo.DepartmentStaffBo; +import com.lz.modules.performance.entity.ResultTask; +import com.lz.modules.performance.entity.TaskComment; +import com.lz.modules.performance.service.ResultTaskService; +import com.lz.modules.performance.service.TaskCommentService; import com.lz.modules.sys.dao.SysUserTokenDao; import com.lz.modules.sys.entity.SysUserTokenEntity; +import com.lz.modules.sys.entity.app.ResultDetail; import com.lz.modules.sys.entity.app.ResultRecord; +import com.lz.modules.sys.service.app.ResultDetailService; import com.lz.modules.sys.service.app.ResultRecordService; import com.lz.modules.third.entity.ThirdAppConfig; import com.lz.modules.third.entity.ThirdMsgSendRecord; @@ -101,6 +107,15 @@ public class DingtalkBusiness { @Autowired private ThirdMsgSendRecordService thirdMsgSendRecordService; + @Autowired + private ResultDetailService resultDetailService; + + @Autowired + private ResultTaskService resultTaskService; + + @Autowired + private TaskCommentService taskCommentService; + @Resource StaffDao staffDao; @@ -646,7 +661,50 @@ public class DingtalkBusiness { } public String sendTaskNoticeMsg(Long detailId, Long taskId) { + ResultDetail resultDetail = resultDetailService.selectResultDetailById(detailId); + logger.info("评论通知指标id{}, 任务id{}", detailId, taskId); + if(resultDetail != null){ + TaskComment taskComment = null; + if(taskId == null){ + taskComment = taskCommentService.selectTaskCommentByDetailId(detailId); + }else{ + taskComment = taskCommentService.selectTaskCommentByTaskId(taskId); + } + StaffSimpleInfo fromStaffSimpleInfo = staffService.selectStaffSimpleInfo(taskComment.getStaffId()); + StaffSimpleInfo toStaffSimpleInfo = staffService.selectStaffSimpleInfo(resultDetail.getStaffId()); + ThirdAppConfig thirdAppConfig = thirdAppConfigService.getByAppId(appid); + String token = dingTalkUtil.getAccessTokenWitchEntity(thirdAppConfig); + if(token != null && token.length() > 0){ + + String url = homeUrl; + if(url.contains("?")){ + url += "&halokit=" + System.currentTimeMillis(); + }else{ + url += "?halokit=" + System.currentTimeMillis(); + } + url += ("&detail=1&id=" + resultDetail.getRecordId()); + url = URLEncoder.encode(url); + + + 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); + + return "OK"; + + }else{ + return "token无效"; + } + } return "OK"; } public String sendNoticeMsg(ResultRecord lzResultRecord, List staffs) { diff --git a/src/main/java/com/lz/modules/performance/dao/TaskCommentMapper.java b/src/main/java/com/lz/modules/performance/dao/TaskCommentMapper.java index 0d7850d4..794b55d5 100644 --- a/src/main/java/com/lz/modules/performance/dao/TaskCommentMapper.java +++ b/src/main/java/com/lz/modules/performance/dao/TaskCommentMapper.java @@ -38,4 +38,8 @@ public interface TaskCommentMapper extends BaseMapper { int deleteTaskCommensByTaskId(@Param("taskId") Long taskId); List selectByCondition(@Param("page") IPage page, @Param("taskModel") TaskModel taskModel); + + TaskComment selectTaskCommentByTaskId(Long taskId); + + TaskComment selectTaskCommentByDetailId(Long detailId); } \ No newline at end of file diff --git a/src/main/java/com/lz/modules/performance/service/TaskCommentService.java b/src/main/java/com/lz/modules/performance/service/TaskCommentService.java index aeb55671..a6e4a0dd 100644 --- a/src/main/java/com/lz/modules/performance/service/TaskCommentService.java +++ b/src/main/java/com/lz/modules/performance/service/TaskCommentService.java @@ -31,4 +31,8 @@ public interface TaskCommentService extends IService { int deleteTaskCommensByTaskId(Long taskId); + + TaskComment selectTaskCommentByDetailId(Long detailId); + + TaskComment selectTaskCommentByTaskId(Long taskId); } \ No newline at end of file diff --git a/src/main/java/com/lz/modules/performance/service/impl/TaskCommentServiceImpl.java b/src/main/java/com/lz/modules/performance/service/impl/TaskCommentServiceImpl.java index 1002a993..77f7986b 100644 --- a/src/main/java/com/lz/modules/performance/service/impl/TaskCommentServiceImpl.java +++ b/src/main/java/com/lz/modules/performance/service/impl/TaskCommentServiceImpl.java @@ -62,6 +62,16 @@ public class TaskCommentServiceImpl extends ServiceImpl + + + +