企业中有自己的业务系统,审批都在业务系统中审批,如何结合移动办公的开放平台实现统一审批至关重要。
场景很简单,自己的系统中可以审批,钉钉上也可以审批,使用H5来适配,统一待办任务
private Client createClient() throws Exception {
Config config = new Config();
config.protocol = "https";
config.regionId = "central";
return new com.aliyun.dingtalktodo_1_0.Client(config);
}
@Override
public CreateTodoTaskResponse createTask(String unionId, CreateTodoTaskRequest params) {
OapiGettokenResponse accessToken = this.getAccessToken();
CreateTodoTaskHeaders createTodoTaskHeaders = new CreateTodoTaskHeaders();
createTodoTaskHeaders.xAcsDingtalkAccessToken = accessToken.getAccessToken();
try {
com.aliyun.dingtalktodo_1_0.Client client = this.createClient();
CreateTodoTaskResponse res = client.createTodoTaskWithOptions(unionId, params, createTodoTaskHeaders, new RuntimeOptions());
return res;
} catch (TeaException err) {
if (!com.aliyun.teautil.Common.empty(err.code) && !com.aliyun.teautil.Common.empty(err.message)) {
// err 中含有 code 和 message 属性,可帮助开发定位问题
log.error("创建任务出错", err);
}
} catch (Exception _err) {
TeaException err = new TeaException(_err.getMessage(), _err);
if (!com.aliyun.teautil.Common.empty(err.code) && !com.aliyun.teautil.Common.empty(err.message)) {
// err 中含有 code 和 message 属性,可帮助开发定位问题
log.error("创建任务出错", err);
}
}
return null;
}
public void updateTask(String unionId, String taskId, UpdateTodoTaskRequest params) {
OapiGettokenResponse accessToken = this.getAccessToken();
UpdateTodoTaskHeaders updateTodoTaskHeaders = new UpdateTodoTaskHeaders();
updateTodoTaskHeaders.xAcsDingtalkAccessToken = accessToken.getAccessToken();
try {
com.aliyun.dingtalktodo_1_0.Client client = this.createClient();
client.updateTodoTaskWithOptions(unionId, taskId, params, updateTodoTaskHeaders, new RuntimeOptions());
} catch (TeaException err) {
if (!com.aliyun.teautil.Common.empty(err.code) && !com.aliyun.teautil.Common.empty(err.message)) {
// err 中含有 code 和 message 属性,可帮助开发定位问题
log.error("修改任务出错", err);
}
} catch (Exception _err) {
TeaException err = new TeaException(_err.getMessage(), _err);
if (!com.aliyun.teautil.Common.empty(err.code) && !com.aliyun.teautil.Common.empty(err.message)) {
// err 中含有 code 和 message 属性,可帮助开发定位问题
log.error("修改任务出错", err);
}
}
}
public void deleteTask(String unionId, String taskId) {
DeleteTodoTaskHeaders deleteTodoTaskHeaders = new DeleteTodoTaskHeaders();
try {
OapiGettokenResponse accessToken = this.getAccessToken();
com.aliyun.dingtalktodo_1_0.Client client = this.createClient();
deleteTodoTaskHeaders.xAcsDingtalkAccessToken = accessToken.getAccessToken();
DeleteTodoTaskRequest deleteTodoTaskRequest = new DeleteTodoTaskRequest()
.setOperatorId(unionId);
client.deleteTodoTaskWithOptions(unionId, taskId, deleteTodoTaskRequest, deleteTodoTaskHeaders, new RuntimeOptions());
} catch (TeaException err) {
if (!com.aliyun.teautil.Common.empty(err.code) && !com.aliyun.teautil.Common.empty(err.message)) {
// err 中含有 code 和 message 属性,可帮助开发定位问题
log.error("删除任务出错", err);
}
} catch (Exception _err) {
TeaException err = new TeaException(_err.getMessage(), _err);
if (!com.aliyun.teautil.Common.empty(err.code) && !com.aliyun.teautil.Common.empty(err.message)) {
// err 中含有 code 和 message 属性,可帮助开发定位问题
log.error("删除任务出错", err);
}
}
}