当前位置:首页 > 实用技巧 >

钉钉任务派发教程(钉钉怎样发布任务)

来源:原点资讯(www.yd166.com)时间:2024-02-13 22:18:52作者:YD166手机阅读>>

前言

最近部门要求大家下班前挪动jira中敏捷迭代的任务,但是团队中总有些同事忘记,然后第二天早上被通报批评,领导后面直接发话这些同事有可能成为年底的淘汰对象。我在想能否通过程序每天定时获取jira中的过期任务,然后通知到敏捷团队钉钉群中呢,这样团队成员就不会忘记了。

钉钉任务派发教程,钉钉怎样发布任务(1)

Jira任务获取功能

jira是一个应用广发的项目管理工具,我们公司也使用这个工具去管理需求、任务、bug等。那么通过程序如何获取jira中的任务、bug信息呢?

  1. 引入jira-client依赖

我这边使用了一个开源的依赖包jira-client, maven坐标如下:

xml复制代码 <dependency> <groupId>net.rcarz</groupId> <artifactId>jira-client</artifactId> <version>0.5</version> <scope>compile</scope> </dependency>

github地址:https://github.com/bobcarroll/jira-client

  1. 创建JiraClient的Bean

钉钉任务派发教程,钉钉怎样发布任务(2)

java复制代码@Configuration @EnableConfigurationProperties({JiraAuthProperties.class, DingTalkProperties.class}) public class JiraConfig { @Autowired private JiraAuthProperties jiraAuthProperties; /** * jira client的bean * @return */ @Bean public JiraClient createJiraClient() { BasicCredentials creds = new BasicCredentials(jiraAuthProperties.getUsername(), jiraAuthProperties.getPassword()); JiraClient jiraClient = new JiraClient(jiraAuthProperties.getUrl(), creds); return jiraClient; } }

  • BasicCredentials对象中传入jira账号和密码
  • 根据jira的地址和认证信息创建JiraClient
  1. 获取团队成员过期的任务和bug

java复制代码/** * 获取所有过期的任务 * * @param endDate 截止时间 * @return * @throws JiraException */ public List<Issue> getAllExpireTasks(Date endDate) throws JiraException { List<String> allUserNames = EmployeeManager.getAllUserNames(); String endDateStr = DateUtil.format(endDate, DATE_FORMATE); String userTasksJql = getUserExpireTasksJql(allUserNames, endDateStr); Issue.SearchResult searchResult = jiraClient.searchIssues(userTasksJql, 100000); return searchResult.issues; } /** * 获取用户过期的查询语句 * * @param users * @param dueDateStr * @return */ public static String getUserExpireTasksJql(List<String> users, String dueDateStr) { String jqlTmpl = "resolution = Unresolved and due <= {} AND assignee in ({}) ORDER BY priority DESC"; return StrUtil.format(jqlTmpl, dueDateStr, CollUtil.join(users, ",")); }

  • getUserExpireTasksJql() 方法中拼接过期任务的jira查询语句
  • 传入对应的查询语句,调用jiraClient.searchIssues()从jira服务端中查询对应的jira任务和bug等
钉钉通知功能

我们现在已经从jira服务中获取到了哪些用户的任务过期了,那么该如何推送到钉钉群中呢?其实钉钉就开放了这样的能力,详细可以参考:https://open.dingtalk.com/document/robots/custom-robot-access。

  1. 钉钉群中添加机器人

钉钉群设置中添加机器人,如下图所示,保存。

钉钉任务派发教程,钉钉怎样发布任务(3)

  1. 编写推送代码
  • 钉钉配置处理

钉钉任务派发教程,钉钉怎样发布任务(4)

less复制代码@ConfigurationProperties(prefix = "dingtalk.auth") @Data public class DingTalkProperties { private String url; private String secretKey; }

  • 根据webhook和加签生成钉钉最终的推送地址

java复制代码private String genDingTalkUrl() { try { Long timestamp = System.currentTimeMillis(); String stringToSign = timestamp "\n" dingTalkProperties.getSecretKey(); Mac mac = null; mac = mac.getInstance("HmacSHA256"); mac.init(new SecretKeySpec(dingTalkProperties.getSecretKey().getbytes("UTF-8"), "HmacSHA256")); byte[] signData = mac.doFinal(stringToSign.getBytes("UTF-8")); String sign = URLEncoder.encode(new String(Base64.encodeBase64(signData)), "UTF-8"); String urlTmpl = dingTalkProperties.getUrl() "×tamp={}&sign={}"; return StrUtil.format(urlTmpl, timestamp, sign); } catch (Exception e) { log.error("getDingTalkUrl error", e); } return null; }

  • markdown的格式推送内容

java复制代码/** * 发送markdown内容 * @param title 标题 * @param content 内容 * @param mobiles 手机号,需要@的人 */ public void sendMarkDown(String title, String content, List<String> mobiles) { String url = genDingTalkUrl(); DingTalkClient client = new DefaultDingTalkClient(url); OapiRobotSendRequest req = new OapiRobotSendRequest(); req.setMsgtype("markdown"); OapiRobotSendRequest.Markdown markdown = new OapiRobotSendRequest.Markdown(); markdown.setTitle(title); markdown.setText(content); req.setMarkdown(markdown); OapiRobotSendRequest.At at = new OapiRobotSendRequest.At(); at.setAtMobiles(mobiles); req.setAt(at); try { OapiRobotSendResponse rsp = client.execute(req, ""); if(!rsp.isSuccess()) { log.error("rsp error, errorCode: [{}], errorMsg: [{}]", rsp.getErrcode(), rsp.getErrmsg()); }; } catch (ApiException e) { log.error("sendText error", e); } } 结果展示

现在我们已经完成了最核心的获取钉钉任务以及推送的功能,最后通过springboot的调度,每天临近下班,6点的时候每隔5分钟提醒大家要去处理jira中的过期任务。

钉钉任务派发教程,钉钉怎样发布任务(5)

钉钉任务派发教程,钉钉怎样发布任务(6)

总结

本文和大家简单分享了一种通过钉钉推送jira中过期任务的方法,其实我们还可以用它做更多的事情,比如统计缺陷数量,统计大家的周报等等。

,

栏目热文

钉钉今天的任务怎么做(钉钉设置每日任务)

钉钉今天的任务怎么做(钉钉设置每日任务)

高校大学生使用个人版钉钉可以更好地管理自己的学习和生活。以下是一些常见的使用方法:日程管理:在个人版钉钉中,可以设置自己...

2024-02-13 22:17:56查看全文 >>

钉钉未完成任务怎么找(钉钉怎样查看没有完成的任务)

钉钉未完成任务怎么找(钉钉怎样查看没有完成的任务)

【协同在线】之钉钉项目【如何了解钉钉项目整体进度】特点:知晓进展1.电脑端路径:【待办】-【项目】-【项目统计】。2点击...

2024-02-13 22:28:36查看全文 >>

宝马七系方向盘下装饰板怎么拆(宝马7系方向盘拆卸技巧视频教程)

宝马七系方向盘下装饰板怎么拆(宝马7系方向盘拆卸技巧视频教程)

6月23日全新宝马5系Li在国内正式宣布上市,售价在44.99至66.39万元之间。不少车友都对这款车抱以极大的兴趣!各...

2024-02-13 21:48:34查看全文 >>

宝马7系副排座椅拆卸图解(宝马7系后排座椅拆卸图解大全)

宝马7系副排座椅拆卸图解(宝马7系后排座椅拆卸图解大全)

  【车讯网 报道】这期我们请来的是一台BMW X1,尽管售价超过了30万元,但这仍然是国产宝马车系中相对便宜的一款车型...

2024-02-13 22:00:21查看全文 >>

宝马老款七系拆装方向盘(宝马七系方向盘拆装教程)

宝马老款七系拆装方向盘(宝马七系方向盘拆装教程)

你认为,在汽车内饰中,碳纤维代表什么?运动风?科技感?更高的逼格?我认为全都是!!-------------------...

2024-02-13 21:48:36查看全文 >>

钉钉怎么开通任务(钉钉如何开通)

钉钉怎么开通任务(钉钉如何开通)

钉钉部署培训-如何设置日任务、周任务和月度任务自动下发给员工任务,这个词语可以理解为一件事或者多件事,自动发任务当然不可...

2024-02-13 22:00:18查看全文 >>

怎么在钉钉上创建任务(钉钉怎么可以派发任务)

怎么在钉钉上创建任务(钉钉怎么可以派发任务)

【协同在线】之钉钉待办【快速创建任务】特点:分配任务1.手机端路径:消息主页面-顶部-【待办】-新建电脑端路径:消息主页...

2024-02-13 22:14:10查看全文 >>

钉钉里的任务怎么完成(钉钉任务在哪里查看)

钉钉里的任务怎么完成(钉钉任务在哪里查看)

【协同在线】之钉钉项目【开启任务完成通知】特点:项目结束一.电脑端路径:【待办】-【项目】-对应的项目-【设置】。1.点...

2024-02-13 21:56:35查看全文 >>

钉钉添加前置任务(钉钉怎么设置每日任务)

钉钉添加前置任务(钉钉怎么设置每日任务)

来源:环球网【环球网科技综合报道】1月14日,钉钉正式发布6.0版本,并公开新的进化方向。阿里云智能总裁张建锋在发布会上...

2024-02-13 22:23:51查看全文 >>

钉钉上怎么发布任务(钉钉任务完成了怎么操作)

钉钉上怎么发布任务(钉钉任务完成了怎么操作)

一、如何通知填写调研?1.我们可以在创建调研任务时,点击【发布】按钮,可以一键通知进行填写哦(钉钉工作通知)2.电脑端:...

2024-02-13 22:21:01查看全文 >>

文档排行