功能描述
一句话简述就是,后台自动发起员工猪小明的审批申请,领导就可以在企业微信中收到猪小明的审批申请进行审批,可以配置领导审批后企业微信回调我们的服务,我们也可以在后台查询审批流程的详细状态,大体流程就是这样,当然企业微信还提供了其他可能用到的功能,如查询用户信息,用户假期信息等。
可以先大体看下企业微信官方提供的API:企业微信开发API,如下图,比较简单。
代码地址:https://gitee.com/bjzwb/qw_flow
在企业微信管理后台创建审批模板。
创建一个自定义的模板使用。
设置模板内容,企微提供了文本、多行文本、单选、多选、附件等控件,添加后每个小控件都有一个ID,后续根据这个ID给他赋值。
模板ID在地址栏,这里需要注意下。
通过模板ID查询模板详情。
/**
* 通过模板ID获取审批模板详情
*
* @param templateId id
*/
public String getTemplateDetail(String templateId) {
String url = "https://qyapi.weixin.qq.com/cgi-bin/oa/gettemplatedetail?access_token=ACCESS_TOKEN"
.replace("ACCESS_TOKEN", getToken());
Map<String, String> reqParam = new HashMap<>();
reqParam.put("template_id", templateId);
ResponseEntity<String> responseEntity = restTemplate.postForEntity(url, reqParam, String.class);
System.out.println("调用结果:" + responseEntity);
if (responseEntity.getStatusCode() == HttpStatus.OK) {
return responseEntity.getBody();
}
return "失败";
}
提交审批申请。
//CommitApprovalApplyParam是自定义的一个VO类,即提交申请的内容对象。
public String commitApprovalApply(CommitApprovalApplyParam param) {
String url = "https://qyapi.weixin.qq.com/cgi-bin/oa/applyevent?access_token=ACCESS_TOKEN"
.replace("ACCESS_TOKEN", getToken());
ResponseEntity<JSONObject> responseEntity = restTemplate.postForEntity(url, param, JSONObject.class);
System.out.println("调用结果:" + responseEntity);
if (responseEntity.getStatusCode() == HttpStatus.OK) {
JSONObject body = responseEntity.getBody();
if (body.getInteger("errcode") == 0) {
return body.getString("sp_no");
}
throw new RuntimeException("提交审批流程失败:" + body.getString