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;