From 568e38a95cb6fb20fe16b53d17f610aefc6f744f Mon Sep 17 00:00:00 2001
From: rk <94314517@qq.com>
Date: 星期四, 09 十月 2025 18:29:29 +0800
Subject: [PATCH] 钉钉通知 与钥匙柜开发

---
 server/visits/dmvisit_service/src/main/java/com/doumee/core/dingTalk/DingTalk.java |  180 +++++++++++++++++++++++++++++++----------------------------
 1 files changed, 94 insertions(+), 86 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 0f41075..2291752 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
@@ -373,20 +373,25 @@
      * 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 void workInfoOANotice(Long agentId,String userIds,OapiMessageCorpconversationAsyncsendV2Request.Msg msg){
+        try{
+            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);
 
-        request.setMsg(msg);
-        OapiMessageCorpconversationAsyncsendV2Response rsp = client.execute(request, "60c2df248ca93d4eafb4a04a2330d3d3");//getToken());
-        if(rsp.getErrcode().equals(Constants.DD_ERR_CODE)){
+            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());
+            }else{
+                throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),rsp.getMessage());
+            }
+        }catch (ApiException apiException){
+
         }
+
     }
 
 
@@ -532,79 +537,83 @@
      * 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 {
-            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);
+    public String toDoNotice(String title,List<String> unionIdList,List<CreateTodoTaskRequest.CreateTodoTaskRequestContentFieldList> fieldList,String url) {
+        try{
+            com.aliyun.dingtalktodo_1_0.Client client = DingTalk.createV1Client();
+            CreateTodoTaskHeaders createTodoTaskHeaders = new CreateTodoTaskHeaders();
+            createTodoTaskHeaders.xAcsDingtalkAccessToken = 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 {
+                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);
+                }
             }
-        } 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;
+        }catch (Exception e){
+            throw  new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"閽夐拤寰呭姙浠诲姟閫氱煡鍙戦�佸け璐�");
         }
-        return null;
     }
 
 
     /**
-     * 澶勭悊鍏ㄩ儴浜虹殑寰呭姙淇℃伅
+     * 澶勭悊鍏ㄩ儴浜虹殑寰呭姙淇℃伅 锛堟祦绋嬪鎵瑰畬鎴愩�佹湰绾у鎵瑰畬鎴� 浣跨敤锛�
      * @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);
+    public void updToDoNoticeInfoStatus(String unionId,String taskId){
         try {
+            com.aliyun.dingtalktodo_1_0.Client client = DingTalk.createV1Client();
+            UpdateTodoTaskHeaders updateTodoTaskHeaders = new UpdateTodoTaskHeaders();
+            updateTodoTaskHeaders.xAcsDingtalkAccessToken = getToken();
+            UpdateTodoTaskRequest updateTodoTaskRequest = new UpdateTodoTaskRequest()
+                    .setOperatorId(unionId)
+                    .setDone(true);
             UpdateTodoTaskResponse response = client.updateTodoTaskWithOptions(unionId, taskId, updateTodoTaskRequest, updateTodoTaskHeaders, new RuntimeOptions());
             log.error("寰呭姙閫氱煡鍙戦�佹垚鍔燂紝鍙戦�佸唴瀹癸細{}"+JSONObject.toJSONString(response));
         } catch (TeaException err) {
@@ -612,7 +621,6 @@
                 // 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)) {
@@ -630,18 +638,18 @@
      * 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
-                ));
+    public void updUserToDoNoticeInfoStatus(String unionId,String taskId,String dealUnionId){
         try {
+            com.aliyun.dingtalktodo_1_0.Client client = DingTalk.createV1Client();
+            UpdateTodoTaskExecutorStatusHeaders updateTodoTaskExecutorStatusHeaders = new UpdateTodoTaskExecutorStatusHeaders();
+            updateTodoTaskExecutorStatusHeaders.xAcsDingtalkAccessToken = getToken();
+            UpdateTodoTaskExecutorStatusRequest.UpdateTodoTaskExecutorStatusRequestExecutorStatusList executorStatusList0 = new UpdateTodoTaskExecutorStatusRequest.UpdateTodoTaskExecutorStatusRequestExecutorStatusList()
+                    .setId(dealUnionId)
+                    .setIsDone(true);
+            UpdateTodoTaskExecutorStatusRequest updateTodoTaskExecutorStatusRequest = new UpdateTodoTaskExecutorStatusRequest()
+                    .setExecutorStatusList(java.util.Arrays.asList(
+                            executorStatusList0
+                    ));
             UpdateTodoTaskExecutorStatusResponse response = client.updateTodoTaskExecutorStatusWithOptions(unionId, taskId, updateTodoTaskExecutorStatusRequest, updateTodoTaskExecutorStatusHeaders, new RuntimeOptions());
             log.error("寰呭姙閫氱煡鍙戦�佹垚鍔燂紝鍙戦�佸唴瀹癸細{}"+JSONObject.toJSONString(response));
         } catch (TeaException err) {
@@ -729,10 +737,10 @@
         carUseBook.setType(Constants.ZERO);
 
 
-        dingTalk.workInfoOANotice(4015267031L,"1568490244651036",dingTalk.getCarUseNoticeMsg(carUseBook,"鐢ㄨ溅鐢宠"));
+//        dingTalk.workInfoOANotice(4015267031L,"1568490244651036",dingTalk.getCarUseNoticeMsg(carUseBook,"鐢ㄨ溅鐢宠"));
 
 
-//        dingTalk.toDoNotice("灏忚眴涓佹彁浜ょ殑鍏姟杞︾敤杞�",java.util.Arrays.asList("iPsP86axviPHiSP4nm5YgQNCQiEiE","XiPYJKRAv9eCoO4UPM20HQQiEiE","eWbHiSp3uRtrMtiiOX5LXamgiEiE") ,dingTalk.getToDoCarUseBookFiledInfo(carUseBook));
+        dingTalk.toDoNotice("灏忚眴涓佹彁浜ょ殑鍏姟杞︾敤杞�",java.util.Arrays.asList("iPsP86axviPHiSP4nm5YgQNCQiEiE","XiPYJKRAv9eCoO4UPM20HQQiEiE","eWbHiSp3uRtrMtiiOX5LXamgiEiE") ,dingTalk.getToDoCarUseBookFiledInfo(carUseBook),"");
 //
 
 //        dingTalk.updUserToDoNoticeInfoStatus("iPsP86axviPHiSP4nm5YgQNCQiEiE",

--
Gitblit v1.9.3