From a94aacd36460d76297878c304f4837813191232c Mon Sep 17 00:00:00 2001
From: rk <94314517@qq.com>
Date: 星期一, 29 九月 2025 18:04:47 +0800
Subject: [PATCH] 钉钉授权 与 通知开发
---
server/visits/dmvisit_service/src/main/java/com/doumee/core/dingTalk/DingTalk.java | 454 ++++++++++++++++++++++++++++++++++++++++++++++++++++++--
1 files changed, 436 insertions(+), 18 deletions(-)
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/core/dingTalk/DingTalk.java b/server/visits/dmvisit_service/src/main/java/com/doumee/core/dingTalk/DingTalk.java
index e23b927..0f41075 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/core/dingTalk/DingTalk.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/core/dingTalk/DingTalk.java
@@ -4,7 +4,9 @@
import com.aliyun.dingtalkoauth2_1_0.Client;
import com.aliyun.dingtalkoauth2_1_0.models.GetAccessTokenRequest;
import com.aliyun.dingtalkoauth2_1_0.models.GetAccessTokenResponse;
+import com.aliyun.dingtalktodo_1_0.models.*;
import com.aliyun.tea.TeaException;
+import com.aliyun.teautil.models.RuntimeOptions;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.dingtalk.api.DefaultDingTalkClient;
import com.dingtalk.api.DingTalkClient;
@@ -14,16 +16,22 @@
import com.doumee.core.constants.ResponseStatus;
import com.doumee.core.exception.BusinessException;
import com.doumee.core.utils.Constants;
+import com.doumee.core.utils.DateUtil;
import com.doumee.dao.business.dao.CompanyMapper;
+import com.doumee.dao.business.model.CarUseBook;
import com.doumee.dao.business.model.Company;
+import com.doumee.dao.business.model.HiddenDanger;
+import com.doumee.dao.business.model.Visits;
import com.doumee.dao.system.model.SystemDictData;
import com.doumee.service.business.CompanyService;
import com.github.xiaoymin.knife4j.core.util.CollectionUtils;
import com.taobao.api.ApiException;
import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
+import java.text.DateFormat;
import java.util.*;
import java.util.stream.Collectors;
@@ -44,7 +52,7 @@
private CompanyMapper companyMapper;
/**
- * 浣跨敤 Token 鍒濆鍖栬处鍙稢lient
+ * 浣跨敤 Token 鍒濆鍖栬处鍙稢lient 鏁版嵁鍚屾绫�
* @return Client com.aliyun.dingtalkoauth2_1_0.
* @throws Exception
*/
@@ -55,6 +63,17 @@
return new Client(config);
}
+ /**
+ * 寰呭姙閫氱煡绫� 閾炬帴姹�
+ * @return
+ * @throws Exception
+ */
+ public static com.aliyun.dingtalktodo_1_0.Client createV1Client() throws Exception {
+ com.aliyun.teaopenapi.models.Config config = new com.aliyun.teaopenapi.models.Config();
+ config.protocol = "https";
+ config.regionId = "central";
+ return new com.aliyun.dingtalktodo_1_0.Client(config);
+ }
public void updTokenInfo() throws Exception {
String appKey = systemDictDataBiz.queryByCode(Constants.DD_TALK,Constants.APP_KEY).getCode();
@@ -105,6 +124,19 @@
}
+ public OapiV2UserGetuserinfoResponse.UserGetByCodeResponse getDDUserByCode(String code) throws ApiException {
+ DingTalkClient client = new DefaultDingTalkClient("https://oapi.dingtalk.com/topapi/v2/user/getuserinfo");
+ OapiV2UserGetuserinfoRequest req = new OapiV2UserGetuserinfoRequest();
+ req.setCode(code);
+ OapiV2UserGetuserinfoResponse rsp = client.execute(req, getToken());
+ if(rsp.getErrcode().equals(Constants.DD_ERR_CODE)){
+ return rsp.getResult();
+ }else{
+ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),rsp.getMessage());
+ }
+ }
+
+
/**
* 鍏ㄩ噺鍚屾 閮ㄩ棬淇℃伅
* 鎺ュ彛鏂囨。鍦板潃 https://open.dingtalk.com/document/orgapp/obtain-the-department-list-v2
@@ -132,7 +164,6 @@
getResponseList.add(deptGetResponse);
}
}
-
return getResponseList;
}
@@ -162,8 +193,6 @@
}
return thisLevelList;
}
-
-
/**
* 鍒涘缓缁勭粐閮ㄩ棬 鏆備笉浣跨敤
@@ -248,6 +277,12 @@
}
+ /**
+ * 鑾峰彇閽夐拤閮ㄩ棬璇︽儏
+ * @param deptId
+ * @return
+ * @throws ApiException
+ */
public OapiV2DepartmentGetResponse.DeptGetResponse syncDepartmentInfo(Long deptId) throws ApiException {
DingTalkClient client = new DefaultDingTalkClient("https://oapi.dingtalk.com/topapi/v2/department/get");
OapiV2DepartmentGetRequest req = new OapiV2DepartmentGetRequest();
@@ -292,11 +327,11 @@
return null;
}
Set<String> setUserIdList = new HashSet<>(allUserIdList);
- return syncUserInfo(setUserIdList);
+ return syncUserInfoList(setUserIdList);
}
- public List<OapiV2UserGetResponse.UserGetResponse> syncUserInfo(Set<String> setUserIdList) throws ApiException {
+ public List<OapiV2UserGetResponse.UserGetResponse> syncUserInfoList(Set<String> setUserIdList) throws ApiException {
List<OapiV2UserGetResponse.UserGetResponse> userList = new ArrayList<>();
DefaultDingTalkClient client = new DefaultDingTalkClient("https://oapi.dingtalk.com/topapi/v2/user/get");
OapiV2UserGetRequest req = new OapiV2UserGetRequest();
@@ -315,37 +350,420 @@
}
+ public OapiV2UserGetResponse.UserGetResponse syncUserInfo(String userId)throws ApiException {
+ DefaultDingTalkClient client = new DefaultDingTalkClient("https://oapi.dingtalk.com/topapi/v2/user/get");
+ OapiV2UserGetRequest req = new OapiV2UserGetRequest();
+ req.setUserid(userId);
+ req.setLanguage("zh_CN");
+ OapiV2UserGetResponse rsp = client.execute(req, getToken());
+ if(rsp.getErrcode().equals(Constants.DD_ERR_CODE)){
+ OapiV2UserGetResponse.UserGetResponse userGetResponse = rsp.getResult();
+ return userGetResponse;
+ }else{
+ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),rsp.getMessage());
+ }
+ }
+ /**
+ * 鍙戦�� 宸ヤ綔閫氱煡
+ * @param agentId
+ * @param userIds
+ * @param msg
+ * api 鍦板潃 https://open.dingtalk.com/document/orgapp/asynchronous-sending-of-enterprise-session-messages
+ * @throws ApiException
+ */
+ public void workInfoOANotice(Long agentId,String userIds,OapiMessageCorpconversationAsyncsendV2Request.Msg msg)throws ApiException {
+ DingTalkClient client = new DefaultDingTalkClient("https://oapi.dingtalk.com/topapi/message/corpconversation/asyncsend_v2");
+ OapiMessageCorpconversationAsyncsendV2Request request = new OapiMessageCorpconversationAsyncsendV2Request();
+ request.setAgentId(agentId);
+ request.setUseridList(userIds);
+ request.setToAllUser(false);
- public static void main(String[] args) throws Exception {
- String appKey = "dingkfglaktqmfd2dmo2";//systemDictDataBiz.queryByCode("","").getCode();
- String appSecret = "0e22TT2s794Yj49Exgvq8nU2ulpXmxlw9ThBh5s-vDv5Cfspv-f8HPmta4cg2evk";//systemDictDataBiz.queryByCode("","").getCode();
- Client client = DingTalk.createClient();
- GetAccessTokenRequest getAccessTokenRequest = new GetAccessTokenRequest()
- .setAppKey(appKey)
- .setAppSecret(appSecret);
+ request.setMsg(msg);
+ OapiMessageCorpconversationAsyncsendV2Response rsp = client.execute(request, "60c2df248ca93d4eafb4a04a2330d3d3");//getToken());
+ if(rsp.getErrcode().equals(Constants.DD_ERR_CODE)){
+
+ }else{
+ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),rsp.getMessage());
+ }
+ }
+
+
+ /**
+ * 璁垮鐢宠/鎶ュ OA 宸ヤ綔閫氱煡 鍐呭
+ * @param visits
+ * @param title
+ * @return
+ */
+ public OapiMessageCorpconversationAsyncsendV2Request.Msg getVisitNoticeMsg(Visits visits,String title){
+ OapiMessageCorpconversationAsyncsendV2Request.Msg msg = new OapiMessageCorpconversationAsyncsendV2Request.Msg();
+ msg.setMsgtype("oa");
+ OapiMessageCorpconversationAsyncsendV2Request.OA oa = new OapiMessageCorpconversationAsyncsendV2Request.OA();
+ oa.setMessageUrl("");
+ OapiMessageCorpconversationAsyncsendV2Request.Head head = new OapiMessageCorpconversationAsyncsendV2Request.Head();
+ head.setText(title);
+ head.setBgcolor("#279BAA");
+ oa.setHead(head);
+
+ OapiMessageCorpconversationAsyncsendV2Request.Body body = new OapiMessageCorpconversationAsyncsendV2Request.Body();
+ body.setTitle(!Constants.equalsInteger(visits.getType(),Constants.TWO)?visits.getName()+"鐨勮瀹㈢敵璇�":"鐨勮瀹㈡姤澶�");
+ List<OapiMessageCorpconversationAsyncsendV2Request.Form> formList = new ArrayList<>();
+
+ OapiMessageCorpconversationAsyncsendV2Request.Form visitUser = new OapiMessageCorpconversationAsyncsendV2Request.Form();
+ visitUser.setKey("鏉ヨ浜猴細");
+ visitUser.setValue(visits.getName());
+ formList.add(visitUser);
+
+ OapiMessageCorpconversationAsyncsendV2Request.Form inDate = new OapiMessageCorpconversationAsyncsendV2Request.Form();
+ inDate.setKey("鍏ュ洯鏃堕棿锛�");
+ inDate.setValue(DateUtil.formatDate(visits.getStarttime(),"MM-dd HH:mm"));
+ formList.add(inDate);
+
+ OapiMessageCorpconversationAsyncsendV2Request.Form outDate = new OapiMessageCorpconversationAsyncsendV2Request.Form();
+ outDate.setKey("绂诲洯鏃堕棿锛�");
+ outDate.setValue(DateUtil.formatDate(visits.getEndtime(),"MM-dd HH:mm"));
+ formList.add(outDate);
+
+ OapiMessageCorpconversationAsyncsendV2Request.Form inReason = new OapiMessageCorpconversationAsyncsendV2Request.Form();
+ inReason.setKey("鏉ヨ浜嬬敱锛�");
+ inReason.setValue(visits.getReason());
+ formList.add(inReason);
+
+ if(StringUtils.isNotBlank(visits.getCarNos())){
+ OapiMessageCorpconversationAsyncsendV2Request.Form carNos = new OapiMessageCorpconversationAsyncsendV2Request.Form();
+ carNos.setKey("闅忚杞﹁締锛�");
+ carNos.setValue(visits.getCarNos());
+ formList.add(visitUser);
+ }
+
+ body.setForm(formList);
+ oa.setBody(body);
+ msg.setOa(oa);
+ return msg;
+ }
+
+
+ /**
+ * 鐢ㄨ溅淇℃伅 閽夐拤閫氱煡鏁版嵁缁勫悎
+ * @param carUseBook
+ * @param title
+ * @return
+ */
+ public OapiMessageCorpconversationAsyncsendV2Request.Msg getCarUseNoticeMsg(CarUseBook carUseBook,String title){
+ OapiMessageCorpconversationAsyncsendV2Request.Msg msg = new OapiMessageCorpconversationAsyncsendV2Request.Msg();
+ msg.setMsgtype("oa");
+ OapiMessageCorpconversationAsyncsendV2Request.OA oa = new OapiMessageCorpconversationAsyncsendV2Request.OA();
+ oa.setMessageUrl("");
+ OapiMessageCorpconversationAsyncsendV2Request.Head head = new OapiMessageCorpconversationAsyncsendV2Request.Head();
+ head.setText(title);
+ head.setBgcolor("#279BAA");
+ oa.setHead(head);
+
+ OapiMessageCorpconversationAsyncsendV2Request.Body body = new OapiMessageCorpconversationAsyncsendV2Request.Body();
+ body.setTitle("鍏姟鐢ㄨ溅");
+ List<OapiMessageCorpconversationAsyncsendV2Request.Form> formList = new ArrayList<>();
+
+
+ OapiMessageCorpconversationAsyncsendV2Request.Form startDate = new OapiMessageCorpconversationAsyncsendV2Request.Form();
+ startDate.setKey("寮�濮嬫椂闂达細");
+ startDate.setValue(DateUtil.formatDate(carUseBook.getStartTime(),"MM-dd HH:mm"));
+ formList.add(startDate);
+
+ OapiMessageCorpconversationAsyncsendV2Request.Form endDate = new OapiMessageCorpconversationAsyncsendV2Request.Form();
+ endDate.setKey("缁撴潫鏃堕棿锛�");
+ endDate.setValue(DateUtil.formatDate(carUseBook.getEndTime(),"MM-dd HH:mm"));
+ formList.add(endDate);
+
+ OapiMessageCorpconversationAsyncsendV2Request.Form userNum = new OapiMessageCorpconversationAsyncsendV2Request.Form();
+ userNum.setKey("涔樿溅浜烘暟锛�");
+ userNum.setValue(StringUtils.isBlank(carUseBook.getMemberNames())?"0浜�": (carUseBook.getMemberNames().split(",").length+"浜�"));
+ formList.add(userNum);
+
+ OapiMessageCorpconversationAsyncsendV2Request.Form inReason = new OapiMessageCorpconversationAsyncsendV2Request.Form();
+ inReason.setKey("鐢ㄨ溅鍦扮偣锛�");
+ inReason.setValue(Constants.equalsInteger(carUseBook.getType(),Constants.ZERO)?"甯傚唴":"甯傚");
+ formList.add(inReason);
+
+ body.setForm(formList);
+ oa.setBody(body);
+ msg.setOa(oa);
+ return msg;
+ }
+
+ /**
+ * 澶╂皵 markdown
+ * @param title
+ * @param text
+ * @return
+ */
+ public OapiMessageCorpconversationAsyncsendV2Request.Msg getWeatherNoticeMsg(String title,String text){
+ OapiMessageCorpconversationAsyncsendV2Request.Msg msg = new OapiMessageCorpconversationAsyncsendV2Request.Msg();
+ msg.setMsgtype("markdown");
+ OapiMessageCorpconversationAsyncsendV2Request.Markdown markdown = new OapiMessageCorpconversationAsyncsendV2Request.Markdown();
+ markdown.setTitle(title);
+ markdown.setText(text);
+ msg.setMarkdown(markdown);
+ return msg;
+ }
+
+
+ /**
+ * 瀹夐槻/娑堥槻 markdown
+ * @param hiddenDanger
+ * @return
+ */
+ public OapiMessageCorpconversationAsyncsendV2Request.Msg getHiddenDangerNoticeMsg(HiddenDanger hiddenDanger){
+ OapiMessageCorpconversationAsyncsendV2Request.Msg msg = new OapiMessageCorpconversationAsyncsendV2Request.Msg();
+ msg.setMsgtype("markdown");
+ OapiMessageCorpconversationAsyncsendV2Request.Markdown markdown = new OapiMessageCorpconversationAsyncsendV2Request.Markdown();
+ markdown.setTitle("鍥尯瀛樺湪瀹夐槻/娑堥槻闅愭偅");
+ markdown.setText(hiddenDanger.getAreaName()+"鍦�"+DateUtil.formatDate(hiddenDanger.getSubmitTime(),"YYYY-MM-dd HH:mm")+"鍙戠敓"+hiddenDanger.getCategoryName()+",璇峰強鏃跺墠寰�瀹夐槻涓績/娑堥槻涓績杩涜澶勭悊");
+ msg.setMarkdown(markdown);
+ return msg;
+ }
+
+
+ /**
+ * 閽夐拤寰呭姙浜嬩欢
+ * api鍦板潃 https://open.dingtalk.com/document/orgapp/add-dingtalk-to-do-task
+ * unionId 閫氱煡鎵�灞炵敤鎴�
+ * title 鏍囬
+ * unionIdList 寰呭姙閫氱煡浜哄憳闆嗗悎
+ * @throws Exception
+ */
+ public String toDoNotice(String title,List<String> unionIdList,List<CreateTodoTaskRequest.CreateTodoTaskRequestContentFieldList> fieldList) throws Exception {
+ com.aliyun.dingtalktodo_1_0.Client client = DingTalk.createV1Client();
+ CreateTodoTaskHeaders createTodoTaskHeaders = new CreateTodoTaskHeaders();
+ createTodoTaskHeaders.xAcsDingtalkAccessToken = "43cf8213909f34ef81e7447905b822fb";//getToken();
+ //寰呭姙鎴鍓嶇殑鎻愰啋
+ CreateTodoTaskRequest.CreateTodoTaskRequestRemindNotifyConfigs remindNotifyConfigs = new CreateTodoTaskRequest.CreateTodoTaskRequestRemindNotifyConfigs()
+ .setDingNotify("1")
+ .setSendTodoApn("true");
+ //寰呭姙閫氱煡閰嶇疆
+ CreateTodoTaskRequest.CreateTodoTaskRequestNotifyConfigs notifyConfigs = new CreateTodoTaskRequest.CreateTodoTaskRequestNotifyConfigs()
+ .setDingNotify("1")
+ .setSendTodoApn("true")
+ .setSendAssistantChat("true");
+ //鎸夐挳浜嬩欢
+ CreateTodoTaskRequest.CreateTodoTaskRequestActionListParam actionList0Param = new CreateTodoTaskRequest.CreateTodoTaskRequestActionListParam()
+ .setBody("");
+ CreateTodoTaskRequest.CreateTodoTaskRequestActionList actionList0 = new CreateTodoTaskRequest.CreateTodoTaskRequestActionList()
+ .setTitle("鍘诲鐞�")
+ .setActionType(2)
+ .setParam(actionList0Param)
+ .setUrl("https://www.baidu.com") //TODO 璇︽儏鍦板潃
+ .setActionKey("ak-1-1");
+ //璇︽儏椤祏rl璺宠浆鍦板潃
+ CreateTodoTaskRequest.CreateTodoTaskRequestDetailUrl detailUrl = new CreateTodoTaskRequest.CreateTodoTaskRequestDetailUrl()
+ .setAppUrl("https://www.baidu.com")
+ .setPcUrl("https://www.baidu.com");
+ CreateTodoTaskRequest createTodoTaskRequest = new CreateTodoTaskRequest()
+ .setSubject(title)
+ .setCreatorId(unionIdList.get(Constants.ZERO))
+ .setDescription(title)
+ .setExecutorIds(unionIdList)
+ .setDetailUrl(detailUrl)
+ .setContentFieldList(fieldList)
+ .setIsOnlyShowExecutor(true)
+ .setPriority(20)
+ .setNotifyConfigs(notifyConfigs)
+ .setActionList(java.util.Arrays.asList(actionList0))
+ .setTodoType("TODO")
+ .setRemindNotifyConfigs(remindNotifyConfigs);
try {
- GetAccessTokenResponse getAccessTokenResponse = client.getAccessToken(getAccessTokenRequest);
+ CreateTodoTaskResponse response = client.createTodoTaskWithOptions(unionIdList.get(Constants.ZERO), createTodoTaskRequest, createTodoTaskHeaders, new com.aliyun.teautil.models.RuntimeOptions());
+ log.error("寰呭姙閫氱煡鍙戦�佹垚鍔燂紝鍙戦�佸唴瀹癸細{}"+JSONObject.toJSONString(response));
+ return response.getBody().getId();
+ } catch (TeaException err) {
+ if (!com.aliyun.teautil.Common.empty(err.code) && !com.aliyun.teautil.Common.empty(err.message)) {
+ log.error("寰呭姙閫氱煡鍙戦�佸け璐ワ紝澶辫触鍘熷洜锛歿}"+err.message);
+ }
+ } 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.message);
+ }
+ }
+ return null;
+ }
- //鏇存柊Token淇℃伅
- System.out.println(JSONObject.toJSONString(getAccessTokenResponse));
+ /**
+ * 澶勭悊鍏ㄩ儴浜虹殑寰呭姙淇℃伅
+ * @param unionId
+ * @param taskId
+ * api鍦板潃 https://open.dingtalk.com/document/orgapp/updates-dingtalk-to-do-tasks
+ * @throws Exception
+ */
+ public void updToDoNoticeInfoStatus(String unionId,String taskId) throws Exception {
+ com.aliyun.dingtalktodo_1_0.Client client = DingTalk.createV1Client();
+ UpdateTodoTaskHeaders updateTodoTaskHeaders = new UpdateTodoTaskHeaders();
+ updateTodoTaskHeaders.xAcsDingtalkAccessToken = "43cf8213909f34ef81e7447905b822fb";//getToken();
+ UpdateTodoTaskRequest updateTodoTaskRequest = new UpdateTodoTaskRequest()
+ .setOperatorId(unionId)
+ .setDone(true);
+ try {
+ UpdateTodoTaskResponse response = client.updateTodoTaskWithOptions(unionId, taskId, updateTodoTaskRequest, updateTodoTaskHeaders, new RuntimeOptions());
+ log.error("寰呭姙閫氱煡鍙戦�佹垚鍔燂紝鍙戦�佸唴瀹癸細{}"+JSONObject.toJSONString(response));
} catch (TeaException err) {
if (!com.aliyun.teautil.Common.empty(err.code) && !com.aliyun.teautil.Common.empty(err.message)) {
// err 涓惈鏈� code 鍜� message 灞炴�э紝鍙府鍔╁紑鍙戝畾浣嶉棶棰�
- log.error("鏇存柊閽夐拤Token澶辫触锛歿}" + err.message);
+ log.error("寰呭姙閫氱煡鍙戦�佸け璐ワ紝澶辫触鍘熷洜锛歿}"+err.message);
}
} 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("鏇存柊閽夐拤Token澶辫触锛歿}" + err.message);
+ log.error("寰呭姙閫氱煡鍙戦�佸け璐ワ紝澶辫触鍘熷洜锛歿}"+err.message);
}
}
}
+ /**
+ * 澶勭悊瀵瑰簲浜哄憳鐨勫緟鍔炰俊鎭�
+ * @param unionId 鍒涘缓浜簎nionId
+ * @param taskId 閽夐拤浠诲姟涓婚敭
+ * @param dealUnionId
+ * api 鍦板潃 https://open.dingtalk.com/document/orgapp/update-dingtalk-to-do-status
+ * @throws Exception
+ */
+ public void updUserToDoNoticeInfoStatus(String unionId,String taskId,String dealUnionId) throws Exception {
+ com.aliyun.dingtalktodo_1_0.Client client = DingTalk.createV1Client();
+ UpdateTodoTaskExecutorStatusHeaders updateTodoTaskExecutorStatusHeaders = new UpdateTodoTaskExecutorStatusHeaders();
+ updateTodoTaskExecutorStatusHeaders.xAcsDingtalkAccessToken = "43cf8213909f34ef81e7447905b822fb";//getToken();
+ UpdateTodoTaskExecutorStatusRequest.UpdateTodoTaskExecutorStatusRequestExecutorStatusList executorStatusList0 = new UpdateTodoTaskExecutorStatusRequest.UpdateTodoTaskExecutorStatusRequestExecutorStatusList()
+ .setId(dealUnionId)
+ .setIsDone(true);
+ UpdateTodoTaskExecutorStatusRequest updateTodoTaskExecutorStatusRequest = new UpdateTodoTaskExecutorStatusRequest()
+ .setExecutorStatusList(java.util.Arrays.asList(
+ executorStatusList0
+ ));
+ try {
+ UpdateTodoTaskExecutorStatusResponse response = client.updateTodoTaskExecutorStatusWithOptions(unionId, taskId, updateTodoTaskExecutorStatusRequest, updateTodoTaskExecutorStatusHeaders, new RuntimeOptions());
+ log.error("寰呭姙閫氱煡鍙戦�佹垚鍔燂紝鍙戦�佸唴瀹癸細{}"+JSONObject.toJSONString(response));
+ } catch (TeaException err) {
+ if (!com.aliyun.teautil.Common.empty(err.code) && !com.aliyun.teautil.Common.empty(err.message)) {
+ // err 涓惈鏈� code 鍜� message 灞炴�э紝鍙府鍔╁紑鍙戝畾浣嶉棶棰�
+ log.error("寰呭姙閫氱煡鍙戦�佸け璐ワ紝澶辫触鍘熷洜锛歿}"+err.message);
+ }
+ } 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.message);
+ }
+ }
+
+ }
+
+
+ public List<CreateTodoTaskRequest.CreateTodoTaskRequestContentFieldList> getToDoVisitFiledInfo(Visits visits){
+ List<CreateTodoTaskRequest.CreateTodoTaskRequestContentFieldList> list = new ArrayList<>();
+ CreateTodoTaskRequest.CreateTodoTaskRequestContentFieldList contentFieldList0 = new CreateTodoTaskRequest.CreateTodoTaskRequestContentFieldList()
+ .setFieldKey("鏉ヨ浜�")
+ .setFieldValue(visits.getName());
+ list.add(contentFieldList0);
+ CreateTodoTaskRequest.CreateTodoTaskRequestContentFieldList contentFieldList1 = new CreateTodoTaskRequest.CreateTodoTaskRequestContentFieldList()
+ .setFieldKey("鍏ュ洯鏃堕棿")
+ .setFieldValue(DateUtil.getFomartDate(visits.getStarttime(),"MM-dd HH:mm"));
+ list.add(contentFieldList1);
+ CreateTodoTaskRequest.CreateTodoTaskRequestContentFieldList contentFieldList2 = new CreateTodoTaskRequest.CreateTodoTaskRequestContentFieldList()
+ .setFieldKey("绂诲洯鏃堕棿")
+ .setFieldValue(DateUtil.getFomartDate(visits.getEndtime(),"MM-dd HH:mm"));
+ list.add(contentFieldList2);
+ CreateTodoTaskRequest.CreateTodoTaskRequestContentFieldList contentFieldList3 = new CreateTodoTaskRequest.CreateTodoTaskRequestContentFieldList()
+ .setFieldKey("鏉ヨ浜嬬敱")
+ .setFieldValue(visits.getReason());
+ list.add(contentFieldList3);
+ if(StringUtils.isNotBlank(visits.getCarNos())){
+ CreateTodoTaskRequest.CreateTodoTaskRequestContentFieldList contentFieldList4 = new CreateTodoTaskRequest.CreateTodoTaskRequestContentFieldList()
+ .setFieldKey("闅忚杞﹁締")
+ .setFieldValue(visits.getCarNos());
+ list.add(contentFieldList4);
+ }
+ return list;
+ }
+
+
+
+ public List<CreateTodoTaskRequest.CreateTodoTaskRequestContentFieldList> getToDoCarUseBookFiledInfo(CarUseBook carUseBook){
+ List<CreateTodoTaskRequest.CreateTodoTaskRequestContentFieldList> list = new ArrayList<>();
+ CreateTodoTaskRequest.CreateTodoTaskRequestContentFieldList contentFieldList1 = new CreateTodoTaskRequest.CreateTodoTaskRequestContentFieldList()
+ .setFieldKey("寮�濮嬫椂闂�")
+ .setFieldValue(DateUtil.getFomartDate(carUseBook.getStartTime(),"MM-dd HH:mm"));
+ list.add(contentFieldList1);
+ CreateTodoTaskRequest.CreateTodoTaskRequestContentFieldList contentFieldList2 = new CreateTodoTaskRequest.CreateTodoTaskRequestContentFieldList()
+ .setFieldKey("缁撴潫鏃堕棿")
+ .setFieldValue(DateUtil.getFomartDate(carUseBook.getEndTime(),"MM-dd HH:mm"));
+ list.add(contentFieldList2);
+ CreateTodoTaskRequest.CreateTodoTaskRequestContentFieldList contentFieldList3 = new CreateTodoTaskRequest.CreateTodoTaskRequestContentFieldList()
+ .setFieldKey("涔樿溅浜烘暟")
+ .setFieldValue(StringUtils.isBlank(carUseBook.getMemberNames())?"0浜�": (carUseBook.getMemberNames().split(",").length+"浜�"));
+ list.add(contentFieldList3);
+ CreateTodoTaskRequest.CreateTodoTaskRequestContentFieldList contentFieldList4 = new CreateTodoTaskRequest.CreateTodoTaskRequestContentFieldList()
+ .setFieldKey("鐢ㄨ溅鍦扮偣")
+ .setFieldValue(Constants.equalsInteger(carUseBook.getType(),Constants.ZERO)?"甯傚唴":"甯傚");
+ list.add(contentFieldList4);
+ return list;
+ }
+
+
+ public static void main(String[] args) throws Exception {
+ DingTalk dingTalk = new DingTalk();
+// Visits visits = new Visits();
+// visits.setName("灏忚眴涓�");
+// visits.setStarttime(new Date());
+// visits.setEndtime(new Date());
+// visits.setReason("鍙傝");
+// visits.setCarNos("鐨朅00001");
+// dingTalk.toDoNotice("visit_01","灏忚眴涓佺殑璁垮鐢宠",java.util.Arrays.asList("iPsP86axviPHiSP4nm5YgQNCQiEiE") ,dingTalk.getToDoVisitFiledInfo(visits));
+
+ CarUseBook carUseBook = new CarUseBook();
+ carUseBook.setStartTime(new Date());
+ carUseBook.setEndTime(new Date());
+ carUseBook.setMemberNames("寮犱笁,鏉庡洓,鐜嬩簲");
+ carUseBook.setType(Constants.ZERO);
+
+
+ dingTalk.workInfoOANotice(4015267031L,"1568490244651036",dingTalk.getCarUseNoticeMsg(carUseBook,"鐢ㄨ溅鐢宠"));
+
+
+// dingTalk.toDoNotice("灏忚眴涓佹彁浜ょ殑鍏姟杞︾敤杞�",java.util.Arrays.asList("iPsP86axviPHiSP4nm5YgQNCQiEiE","XiPYJKRAv9eCoO4UPM20HQQiEiE","eWbHiSp3uRtrMtiiOX5LXamgiEiE") ,dingTalk.getToDoCarUseBookFiledInfo(carUseBook));
+//
+
+// dingTalk.updUserToDoNoticeInfoStatus("iPsP86axviPHiSP4nm5YgQNCQiEiE",
+// "taska2d004da1f8e84847c895d14e8695102",
+// "XiPYJKRAv9eCoO4UPM20HQQiEiE");
+ ;
+// String appKey = "dingkfglaktqmfd2dmo2";//systemDictDataBiz.queryByCode("","").getCode();
+// String appSecret = "0e22TT2s794Yj49Exgvq8nU2ulpXmxlw9ThBh5s-vDv5Cfspv-f8HPmta4cg2evk";//systemDictDataBiz.queryByCode("","").getCode();
+// Client client = DingTalk.createClient();
+// GetAccessTokenRequest getAccessTokenRequest = new GetAccessTokenRequest()
+// .setAppKey(appKey)
+// .setAppSecret(appSecret);
+// try {
+// GetAccessTokenResponse getAccessTokenResponse = client.getAccessToken(getAccessTokenRequest);
+//
+// //鏇存柊Token淇℃伅
+// System.out.println(JSONObject.toJSONString(getAccessTokenResponse));
+//
+// } catch (TeaException err) {
+// if (!com.aliyun.teautil.Common.empty(err.code) && !com.aliyun.teautil.Common.empty(err.message)) {
+// // err 涓惈鏈� code 鍜� message 灞炴�э紝鍙府鍔╁紑鍙戝畾浣嶉棶棰�
+// log.error("鏇存柊閽夐拤Token澶辫触锛歿}" + err.message);
+// }
+//
+// } 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("鏇存柊閽夐拤Token澶辫触锛歿}" + err.message);
+// }
+// }
+ }
}
--
Gitblit v1.9.3