From f8ff21cf140f60d1e1bd1c3be38efbdeba7a3553 Mon Sep 17 00:00:00 2001 From: wulin Date: Thu, 17 Dec 2020 14:42:57 +0800 Subject: [PATCH] =?UTF-8?q?=E4=B8=80=E9=94=AE=E5=82=AC=E5=8A=9E=E4=BD=BF?= =?UTF-8?q?=E7=94=A8=E7=BA=BF=E7=A8=8B=E5=8F=91=E9=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../job/business/DingtalkBusiness.java | 98 +++++++++++-------- 1 file changed, 58 insertions(+), 40 deletions(-) diff --git a/src/main/java/com/lz/modules/job/business/DingtalkBusiness.java b/src/main/java/com/lz/modules/job/business/DingtalkBusiness.java index 645de8d2..9ab59e3e 100644 --- a/src/main/java/com/lz/modules/job/business/DingtalkBusiness.java +++ b/src/main/java/com/lz/modules/job/business/DingtalkBusiness.java @@ -985,49 +985,67 @@ public class DingtalkBusiness { } public void urging(List flowRecords, Map mapStaffs, Map mapReords) { - logger.info("批量催办"); - ThirdAppConfig thirdAppConfig = thirdAppConfigService.getByAppId(appid); - String token = dingTalkUtil.getAccessTokenWitchEntity(thirdAppConfig); - if(token != null && token.length() > 0){ + ThreadSendUrgingMessage threadSendUrgingMessage = new ThreadSendUrgingMessage(flowRecords, mapReords, mapStaffs); + Thread thread = new Thread(threadSendUrgingMessage); + thread.start(); - for (FlowRecord flowRecord:flowRecords - ) { - ResultRecord record = mapReords.get(flowRecord.getRecordId()); - StaffEntity info = mapStaffs.get(flowRecord.getApprovalStaffId()); - if(record != null && info != null){ - String url = homeUrl; - if(url.contains("?")){ - url += "&halokit=" + System.currentTimeMillis(); - }else{ - url += "?halokit=" + System.currentTimeMillis(); - } - url += ("&detail=1&id=" + record.getId()); - url = URLEncoder.encode(url); - - url = "dingtalk://dingtalkclient/action/openapp?corpid=" + thirdAppConfig.getCorpId() + - "&container_type=work_platform&app_id=0_" + - appid + "&redirect_type=jump&redirect_url=" + url; - - logger.info("发送消息给{},url:{}", info, url); - String content = null; - if(!record.getStaffName().equals(info.getName())){ - content = WorkMsgTypeEnum.URGING.getContent().replace("@", record.getStaffName()); - }else{ - content = WorkMsgTypeEnum.URGING.getContent().replace("@", "您"); - } - - dingTalkUtil.sendSingleActionCardMSG(appid, info, WorkMsgTypeEnum.URGING.getTitle(), - content, WorkMsgTypeEnum.URGING.getBtnText(), url, token); - - }else{ - logger.info("无对应的record"); - } - } - }else{ - logger.info("token无效"); ; - } } + public class ThreadSendUrgingMessage implements Runnable{ + List flowRecords; + Map mapReords; + Map mapStaffs; + public ThreadSendUrgingMessage(List flowRecords, Map mapReords, Map mapStaffs){ + this.flowRecords = flowRecords; + this.mapReords = mapReords; + this.mapStaffs = mapStaffs; + } + + @Override + public void run() { + logger.info("批量催办"); + ThirdAppConfig thirdAppConfig = thirdAppConfigService.getByAppId(appid); + String token = dingTalkUtil.getAccessTokenWitchEntity(thirdAppConfig); + if(token != null && token.length() > 0){ + + for (FlowRecord flowRecord:flowRecords + ) { + ResultRecord record = mapReords.get(flowRecord.getRecordId()); + StaffEntity info = mapStaffs.get(flowRecord.getApprovalStaffId()); + if(record != null && info != null){ + String url = homeUrl; + if(url.contains("?")){ + url += "&halokit=" + System.currentTimeMillis(); + }else{ + url += "?halokit=" + System.currentTimeMillis(); + } + url += ("&detail=1&id=" + record.getId()); + url = URLEncoder.encode(url); + + url = "dingtalk://dingtalkclient/action/openapp?corpid=" + thirdAppConfig.getCorpId() + + "&container_type=work_platform&app_id=0_" + + appid + "&redirect_type=jump&redirect_url=" + url; + + logger.info("发送消息给{},url:{}", info, url); + String content = null; + if(!record.getStaffName().equals(info.getName())){ + content = WorkMsgTypeEnum.URGING.getContent().replace("@", record.getStaffName()); + }else{ + content = WorkMsgTypeEnum.URGING.getContent().replace("@", "您"); + } + + dingTalkUtil.sendSingleActionCardMSG(appid, info, WorkMsgTypeEnum.URGING.getTitle(), + content, WorkMsgTypeEnum.URGING.getBtnText(), url, token); + + }else{ + logger.info("无对应的record"); + } + } + }else{ + logger.info("token无效"); ; + } + } + } public class ThreadSendMessage implements Runnable{ List toStaffids;