From ac232cd34b57790a54038b88b9526cfbe007706d Mon Sep 17 00:00:00 2001 From: chenweiwei Date: Tue, 18 Jun 2024 15:07:12 +0800 Subject: [PATCH] 钉钉通知模板修改 --- zr-cloud/zr-auth/src/main/resources/bootstrap.yml | 4 ++-- zr-cloud/zr-gateway/src/main/resources/bootstrap.yml | 4 ++-- zr-cloud/zr-modules/zr-codegen/src/main/resources/bootstrap.yml | 4 ++-- zr-cloud/zr-modules/zr-insight/src/main/resources/bootstrap.yml | 4 ++-- zr-cloud/zr-modules/zr-schsf/src/main/java/com/chinagas/modules/schsf/domain/notice/McConstructionTemplate.java | 13 +++++-------- zr-cloud/zr-modules/zr-schsf/src/main/java/com/chinagas/modules/schsf/domain/notice/McIgnitionTemplate.java | 15 ++++++--------- zr-cloud/zr-modules/zr-schsf/src/main/java/com/chinagas/modules/schsf/domain/notice/McVisitTemplate.java | 15 ++++++--------- zr-cloud/zr-modules/zr-schsf/src/main/java/com/chinagas/modules/schsf/service/impl/DingtalkServiceImpl.java | 74 ++++++++++++++++++++++++++++++++++++++++++++++++-------------------------- zr-cloud/zr-modules/zr-schsf/src/main/java/com/chinagas/modules/schsf/service/impl/McConstructionServiceImpl.java | 62 ++++++++++++++++++++++++++++++++++++++++---------------------- zr-cloud/zr-modules/zr-schsf/src/main/java/com/chinagas/modules/schsf/service/impl/McIgnitionServiceImpl.java | 39 ++++++++++++++++++++++++++++----------- zr-cloud/zr-modules/zr-schsf/src/main/java/com/chinagas/modules/schsf/service/impl/McVisitServiceImpl.java | 34 +++++++++++++++++++++++++--------- zr-cloud/zr-modules/zr-schsf/src/main/resources/bootstrap.yml | 4 ++-- zr-cloud/zr-modules/zr-system/src/main/resources/bootstrap.yml | 4 ++-- 13 files changed, 170 insertions(+), 106 deletions(-) diff --git a/zr-cloud/zr-auth/src/main/resources/bootstrap.yml b/zr-cloud/zr-auth/src/main/resources/bootstrap.yml index f517cf6..277f9f6 100644 --- a/zr-cloud/zr-auth/src/main/resources/bootstrap.yml +++ b/zr-cloud/zr-auth/src/main/resources/bootstrap.yml @@ -90,11 +90,11 @@ spring: - application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension} group: zr-insight username: nacos - password: nacos + password: 0618@Rst namespace: develop-namespace server-addr: 172.17.56.37:8848 discovery: group: zr-insight username: nacos - password: nacos + password: 0618@Rst namespace: develop-namespace diff --git a/zr-cloud/zr-gateway/src/main/resources/bootstrap.yml b/zr-cloud/zr-gateway/src/main/resources/bootstrap.yml index a988713..8e3f05b 100644 --- a/zr-cloud/zr-gateway/src/main/resources/bootstrap.yml +++ b/zr-cloud/zr-gateway/src/main/resources/bootstrap.yml @@ -90,11 +90,11 @@ spring: - application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension} group: zr-insight username: nacos - password: nacos + password: 0618@Rst namespace: develop-namespace server-addr: 172.17.56.37:8848 discovery: group: zr-insight username: nacos - password: nacos + password: 0618@Rst namespace: develop-namespace diff --git a/zr-cloud/zr-modules/zr-codegen/src/main/resources/bootstrap.yml b/zr-cloud/zr-modules/zr-codegen/src/main/resources/bootstrap.yml index f978489..e7c4f90 100644 --- a/zr-cloud/zr-modules/zr-codegen/src/main/resources/bootstrap.yml +++ b/zr-cloud/zr-modules/zr-codegen/src/main/resources/bootstrap.yml @@ -102,11 +102,11 @@ spring: - application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension} group: zr-insight username: nacos - password: nacos + password: 0618@Rst namespace: develop-namespace server-addr: 172.17.56.37:8848 discovery: group: zr-insight username: nacos - password: nacos + password: 0618@Rst namespace: develop-namespace diff --git a/zr-cloud/zr-modules/zr-insight/src/main/resources/bootstrap.yml b/zr-cloud/zr-modules/zr-insight/src/main/resources/bootstrap.yml index 04e48a5..ac92989 100644 --- a/zr-cloud/zr-modules/zr-insight/src/main/resources/bootstrap.yml +++ b/zr-cloud/zr-modules/zr-insight/src/main/resources/bootstrap.yml @@ -112,11 +112,11 @@ spring: # group: application group: zr-insight username: nacos - password: nacos + password: 0618@Rst namespace: develop-namespace server-addr: 172.17.56.37:8848 discovery: group: zr-insight username: nacos - password: nacos + password: 0618@Rst namespace: develop-namespace diff --git a/zr-cloud/zr-modules/zr-schsf/src/main/java/com/chinagas/modules/schsf/domain/notice/McConstructionTemplate.java b/zr-cloud/zr-modules/zr-schsf/src/main/java/com/chinagas/modules/schsf/domain/notice/McConstructionTemplate.java index 32f3ec0..cd6d7a0 100644 --- a/zr-cloud/zr-modules/zr-schsf/src/main/java/com/chinagas/modules/schsf/domain/notice/McConstructionTemplate.java +++ b/zr-cloud/zr-modules/zr-schsf/src/main/java/com/chinagas/modules/schsf/domain/notice/McConstructionTemplate.java @@ -11,14 +11,11 @@ public class McConstructionTemplate { this.mcConstruction = mcConstruction; } public String getNoticemarkdown() { - return "###### 市场化收费-施工通知 \n " + - "村/小区:" + mcConstruction.getVlgOrCmty() + " \n " + - "当前状态:" + mcConstruction.getStatusName() + " \n " + - "维护操作:点击链接进入维护页面:[https://schsf.chinagasholdings.com](https://schsf.chinagasholdings.com) \n " + - "---" + - " \n " + - "通知日期: " + LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy/MM/dd HH:mm")) + " \n " + - "温馨提醒: 请按时完成维护,保障业务顺畅。 \n "; + return "##### 市场化收费-施工通知 \n " + + "###### 村/小区: **" + mcConstruction.getVlgOrCmty() + "** \n " + + "###### 当前状态: **" + mcConstruction.getStatusName() + "** \n " + + "###### 维护操作: **点击链接进入维护页面:[https://schsf.chinagasholdings.com](https://schsf.chinagasholdings.com)** \n " + + "###### 通知时间: **" + LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy/MM/dd HH:mm")) + "** \n"; } } diff --git a/zr-cloud/zr-modules/zr-schsf/src/main/java/com/chinagas/modules/schsf/domain/notice/McIgnitionTemplate.java b/zr-cloud/zr-modules/zr-schsf/src/main/java/com/chinagas/modules/schsf/domain/notice/McIgnitionTemplate.java index 89898c8..121534a 100644 --- a/zr-cloud/zr-modules/zr-schsf/src/main/java/com/chinagas/modules/schsf/domain/notice/McIgnitionTemplate.java +++ b/zr-cloud/zr-modules/zr-schsf/src/main/java/com/chinagas/modules/schsf/domain/notice/McIgnitionTemplate.java @@ -13,15 +13,12 @@ public class McIgnitionTemplate { } public String getNoticemarkdown() { - return "###### 市场化收费-点火通知 \n " + - "用户信息:" + mcIgnition.getUserName()+"(" +mcIgnition.getUserPhone()+ ") \n " + - "村/小区:" + mcIgnition.getVlgOrCmty() + " \n " + - "当前状态:" + mcIgnition.getStatusName() + "(客服) \n " + - "维护操作:点击链接进入维护页面:[https://schsf.chinagasholdings.com](https://schsf.chinagasholdings.com) \n " + - "---" + - " \n " + - "通知日期: " + LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy/MM/dd HH:mm")) + " \n " + - "温馨提醒: 请按时完成维护,保障业务顺畅。 \n "; + return "##### 市场化收费-点火通知 \n " + + "###### 用户信息: **" + mcIgnition.getUserName()+"(" +mcIgnition.getUserPhone()+ ")** \n " + + "###### 村/小区: **" + mcIgnition.getVlgOrCmty() + "** \n " + + "###### 当前状态: **" + mcIgnition.getStatusName() + "(客服)** \n " + + "###### 维护操作: **点击链接进入维护页面:[https://schsf.chinagasholdings.com](https://schsf.chinagasholdings.com)** \n " + + "###### 通知时间: **" + LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy/MM/dd HH:mm")) + "** \n"; } } diff --git a/zr-cloud/zr-modules/zr-schsf/src/main/java/com/chinagas/modules/schsf/domain/notice/McVisitTemplate.java b/zr-cloud/zr-modules/zr-schsf/src/main/java/com/chinagas/modules/schsf/domain/notice/McVisitTemplate.java index 06b0bf9..1b71c0a 100644 --- a/zr-cloud/zr-modules/zr-schsf/src/main/java/com/chinagas/modules/schsf/domain/notice/McVisitTemplate.java +++ b/zr-cloud/zr-modules/zr-schsf/src/main/java/com/chinagas/modules/schsf/domain/notice/McVisitTemplate.java @@ -24,15 +24,12 @@ public class McVisitTemplate { } } } - return "###### 市场化收费通知 \n " + - "工单单号: " + mcVisit.getTicketNumber() + " \n " + - "工单类型:" + ticketTypeName + " \n " + - "当前状态:" + mcVisit.getStatusName() + "(" + mcVisit.getStatusNodeName() + ") \n " + - "维护操作:点击链接进入维护页面:[https://schsf.chinagasholdings.com](https://schsf.chinagasholdings.com) \n " + - "---" + - " \n " + - "通知日期: " + LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy/MM/dd HH:mm")) + " \n " + - "温馨提醒: 请按时完成维护,保障业务顺畅。 \n "; + return "##### 市场化收费-拜访单 \n " + + "###### 工单单号: **" + mcVisit.getTicketNumber() + "** \n " + + "###### 工单类型: **" + ticketTypeName + "** \n " + + "###### 当前状态: **" + mcVisit.getStatusName() + "(" + mcVisit.getStatusNodeName() + ")** \n " + + "###### 维护操作: **点击链接进入维护页面:[https://schsf.chinagasholdings.com](https://schsf.chinagasholdings.com)** \n " + + "###### 通知时间: **" + LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy/MM/dd HH:mm")) + "** \n"; } } diff --git a/zr-cloud/zr-modules/zr-schsf/src/main/java/com/chinagas/modules/schsf/service/impl/DingtalkServiceImpl.java b/zr-cloud/zr-modules/zr-schsf/src/main/java/com/chinagas/modules/schsf/service/impl/DingtalkServiceImpl.java index 75676e0..2e4e79a 100644 --- a/zr-cloud/zr-modules/zr-schsf/src/main/java/com/chinagas/modules/schsf/service/impl/DingtalkServiceImpl.java +++ b/zr-cloud/zr-modules/zr-schsf/src/main/java/com/chinagas/modules/schsf/service/impl/DingtalkServiceImpl.java @@ -4,7 +4,6 @@ import com.alibaba.fastjson.JSONObject; import com.chinagas.common.core.exceptions.ServiceException; import com.chinagas.common.core.utils.StringUtils; import com.chinagas.modules.schsf.constant.DingtalkConstant; -import com.chinagas.modules.schsf.exception.OApiException; import com.chinagas.modules.schsf.service.DingtalkService; import com.dingtalk.api.DefaultDingTalkClient; import com.dingtalk.api.DingTalkClient; @@ -16,18 +15,20 @@ import com.dingtalk.open.client.api.model.corp.JsapiTicket; import com.dingtalk.open.client.api.service.corp.CorpConnectionService; import com.dingtalk.open.client.api.service.corp.JsapiService; import com.taobao.api.ApiException; +import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import java.security.MessageDigest; -import java.util.Formatter; +import java.util.ArrayList; import java.util.List; +@Slf4j @Service public class DingtalkServiceImpl implements DingtalkService { @Autowired private DingtalkConstant dingtalkConstant; + final int MAX_USERID_LIST_SIZE = 100; @Override public String getAccessToken() { @@ -69,30 +70,51 @@ public class DingtalkServiceImpl implements DingtalkService { @Override public void sendMarketFeeNotification(List userIds, String title, String markdown) { - DingTalkClient client = new DefaultDingTalkClient("https://oapi.dingtalk.com/topapi/message/corpconversation/asyncsend_v2"); - OapiMessageCorpconversationAsyncsendV2Request request = new OapiMessageCorpconversationAsyncsendV2Request(); - request.setAgentId(Long.valueOf(dingtalkConstant.getAgentId())); - request.setUseridList(String.join(",", userIds)); - request.setToAllUser(false); - OapiMessageCorpconversationAsyncsendV2Request.Msg msg = new OapiMessageCorpconversationAsyncsendV2Request.Msg(); - msg.setActionCard(new OapiMessageCorpconversationAsyncsendV2Request.ActionCard()); - msg.getActionCard().setTitle(title); - msg.getActionCard().setMarkdown(markdown); - if (StringUtils.isNotEmpty(dingtalkConstant.getAppUrl())) { - msg.getActionCard().setSingleTitle("点击查看"); - msg.getActionCard().setSingleUrl("dingtalk://dingtalkclient/action/openapp?" + - "corpid=" +dingtalkConstant.getCorpId()+ - "&container_type=work_platform" + - "&app_id=0_" +dingtalkConstant.getAgentId()+ - "&redirect_type=jump" + - "&redirect_url=" + dingtalkConstant.getAppUrl()); - msg.setMsgtype("action_card"); + log.info("钉钉通知,通知标题:{}", title); + log.info("钉钉通知,通知内容:{}", markdown); + log.info("钉钉通知,通知用户id:{},通知用户数量:{}", userIds, userIds.size()); + // 分割用户ID列表为多个不超过100的子列表 + List userIdSubList = new ArrayList<>(); + List> splitUserIds = new ArrayList<>(); + for (String userId : userIds) { + userIdSubList.add(userId); + if (userIdSubList.size() == MAX_USERID_LIST_SIZE) { + splitUserIds.add(new ArrayList<>(userIdSubList)); + userIdSubList.clear(); // 准备下一个子列表 + } } - request.setMsg(msg); - try { - OapiMessageCorpconversationAsyncsendV2Response rsp = client.execute(request, getAccessToken()); - } catch (ApiException e) { - throw new RuntimeException(e); + // 如果最后的子列表非空,也要加进去 + if (!userIdSubList.isEmpty()) { + splitUserIds.add(userIdSubList); + } + log.info("钉钉通知,将用户分组数:{}", splitUserIds.size()); + for (List uids : splitUserIds) { + DingTalkClient client = new DefaultDingTalkClient("https://oapi.dingtalk.com/topapi/message/corpconversation/asyncsend_v2"); + OapiMessageCorpconversationAsyncsendV2Request request = new OapiMessageCorpconversationAsyncsendV2Request(); + request.setAgentId(Long.valueOf(dingtalkConstant.getAgentId())); + request.setUseridList(String.join(",", uids)); + request.setToAllUser(false); + OapiMessageCorpconversationAsyncsendV2Request.Msg msg = new OapiMessageCorpconversationAsyncsendV2Request.Msg(); + msg.setActionCard(new OapiMessageCorpconversationAsyncsendV2Request.ActionCard()); + msg.getActionCard().setTitle(title); + msg.getActionCard().setMarkdown(markdown); + if (StringUtils.isNotEmpty(dingtalkConstant.getAppUrl())) { + msg.getActionCard().setSingleTitle("点击查看"); + msg.getActionCard().setSingleUrl("dingtalk://dingtalkclient/action/openapp?" + + "corpid=" + dingtalkConstant.getCorpId() + + "&container_type=work_platform" + + "&app_id=0_" + dingtalkConstant.getAgentId() + + "&redirect_type=jump" + + "&redirect_url=" + dingtalkConstant.getAppUrl()); + msg.setMsgtype("action_card"); + } + request.setMsg(msg); + try { + OapiMessageCorpconversationAsyncsendV2Response rsp = client.execute(request, getAccessToken()); + log.info("钉钉通知,通知结果:{}", rsp); + } catch (ApiException e) { + throw new RuntimeException(e); + } } } diff --git a/zr-cloud/zr-modules/zr-schsf/src/main/java/com/chinagas/modules/schsf/service/impl/McConstructionServiceImpl.java b/zr-cloud/zr-modules/zr-schsf/src/main/java/com/chinagas/modules/schsf/service/impl/McConstructionServiceImpl.java index 33524e8..28e2695 100644 --- a/zr-cloud/zr-modules/zr-schsf/src/main/java/com/chinagas/modules/schsf/service/impl/McConstructionServiceImpl.java +++ b/zr-cloud/zr-modules/zr-schsf/src/main/java/com/chinagas/modules/schsf/service/impl/McConstructionServiceImpl.java @@ -19,6 +19,7 @@ import com.chinagas.modules.schsf.mapper.McConstructionMapper; import com.chinagas.modules.schsf.service.DingtalkService; import com.chinagas.modules.schsf.service.IMcConstructionService; import com.chinagas.modules.schsf.service.IMcOperationLogService; +import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -34,6 +35,7 @@ import java.util.stream.Collectors; * @author cw * @date 2024-05-30 */ +@Slf4j @Transactional @Service public class McConstructionServiceImpl implements IMcConstructionService { @@ -132,10 +134,10 @@ public class McConstructionServiceImpl implements IMcConstructionService { mcConstruction.setCompanyCode(mcBasicCmty.getCompanyCode()); mcConstruction.setCompanyName(mcBasicCmty.getCompanyName()); - mcConstruction.setProvince(mcBasicCmty.getProvince()==null?"":mcBasicCmty.getProvince()); - mcConstruction.setCity(mcBasicCmty.getCity()==null?"":mcBasicCmty.getCity()); - mcConstruction.setDistrict(mcBasicCmty.getDistrict()==null?"":mcBasicCmty.getDistrict()); - mcConstruction.setStreet(mcBasicCmty.getStreet()==null?"":mcBasicCmty.getStreet()); + mcConstruction.setProvince(mcBasicCmty.getProvince() == null ? "" : mcBasicCmty.getProvince()); + mcConstruction.setCity(mcBasicCmty.getCity() == null ? "" : mcBasicCmty.getCity()); + mcConstruction.setDistrict(mcBasicCmty.getDistrict() == null ? "" : mcBasicCmty.getDistrict()); + mcConstruction.setStreet(mcBasicCmty.getStreet() == null ? "" : mcBasicCmty.getStreet()); mcConstruction.setVlgOrCmty(mcBasicCmty.getVlgOrCmty()); List mcConstructions = mcConstructionMapper.selectMcConstructionByData(mcConstruction); @@ -166,15 +168,15 @@ public class McConstructionServiceImpl implements IMcConstructionService { if (StringUtils.isEmpty(projectTypeName)) { return null; } - if (projectTypeName.contains("已通气项目零散开发")){ + if (projectTypeName.contains("已通气项目零散开发")) { return "0"; - } else if (projectTypeName.contains("扫雷行动项目") && projectTypeName.contains("市政中压已覆盖")){ + } else if (projectTypeName.contains("扫雷行动项目") && projectTypeName.contains("市政中压已覆盖")) { return "1"; - } else if (projectTypeName.contains("扫雷行动项目") && projectTypeName.contains("市政中压未覆盖")){ + } else if (projectTypeName.contains("扫雷行动项目") && projectTypeName.contains("市政中压未覆盖")) { return "2"; - } else if (projectTypeName.contains("新增空白项目") && projectTypeName.contains("市政中压已覆盖")){ + } else if (projectTypeName.contains("新增空白项目") && projectTypeName.contains("市政中压已覆盖")) { return "3"; - } else if (projectTypeName.contains("新增空白项目") && projectTypeName.contains("市政中压未覆盖")){ + } else if (projectTypeName.contains("新增空白项目") && projectTypeName.contains("市政中压未覆盖")) { return "4"; } return "0"; @@ -216,7 +218,7 @@ public class McConstructionServiceImpl implements IMcConstructionService { iMcOperationLogService.insertMcOperationLog("mc_construction", mcConstruction_param.getId(), "schsf:mcConstruction:engineering", "工程维护", "1", null, JSON.toJSONString(mcConstruction_old), JSON.toJSONString(mcConstruction_new)); - if (i>0){ + if (i > 0) { this.sendNotification(mcConstruction_param.getId()); } return i; @@ -262,6 +264,7 @@ public class McConstructionServiceImpl implements IMcConstructionService { /** * 发送施工维护通知 + * * @param mcVisit */ @Override @@ -284,15 +287,30 @@ public class McConstructionServiceImpl implements IMcConstructionService { } private void sendNotification(Long id) { - McConstruction construction = mcConstructionMapper.selectMcConstructionById(id); - if (BeanUtil.isEmpty(construction)) { - throw new ServiceException("未查询到记录"); - } - List nodeUsersDtos = this.selectMcConstructionNodeUserList(construction.getId()); - if (nodeUsersDtos != null && nodeUsersDtos.size()>0) { - List userIds = nodeUsersDtos.stream().filter(mcVisitNodeUsersDto -> StringUtils.isNotEmpty(mcVisitNodeUsersDto.getDingTalkUserId())).map(NodeUsersDto::getDingTalkUserId).collect(Collectors.toList()); - dingtalkService.sendMarketFeeNotification(userIds, "市场化收费-施工维护", new McConstructionTemplate(construction).getNoticemarkdown()); - } + Thread thread = new Thread(() -> { + log.info("钉钉通知,施工维护通知:参数id{}", id); + try { + McConstruction construction = mcConstructionMapper.selectMcConstructionById(id); + if (BeanUtil.isEmpty(construction)) { + throw new ServiceException("未查询到记录"); + } + log.info("钉钉通知,施工维护通知:施工参数对象{}", construction); + List nodeUsersDtos = this.selectMcConstructionNodeUserList(construction.getId()); + if (nodeUsersDtos != null && nodeUsersDtos.size() > 0) { + List userIds = nodeUsersDtos.stream().filter(mcVisitNodeUsersDto -> StringUtils.isNotEmpty(mcVisitNodeUsersDto.getDingTalkUserId())).map(NodeUsersDto::getDingTalkUserId).collect(Collectors.toList()); + dingtalkService.sendMarketFeeNotification(userIds, "市场化收费-施工维护", new McConstructionTemplate(construction).getNoticemarkdown()); + } + return; + } catch (Exception e) { + // 异常处理 + e.printStackTrace(); + log.error("钉钉通知,施工维护通知:通知失败{}", e.getMessage()); + } + }); + // 当主线程结束时,这个线程也自动结束 + thread.setDaemon(true); + thread.start(); + log.info("钉钉通知,施工维护通知结束"); } @Override @@ -302,10 +320,10 @@ public class McConstructionServiceImpl implements IMcConstructionService { throw new ServiceException("未查询到记录"); } if (mcConstruction.getStatusCode().equals(ConstructionStatusEnums.MAINTENANCE_SG.getCode())) { - //待工程维护 schsf:mcConstruction:engineering + //待工程维护 schsf:mcConstruction:engineering return mcConstructionMapper.selectMcConstructionNodeUserList(String.valueOf(id), "schsf:mcConstruction:engineering"); - }else if (mcConstruction.getStatusCode().equals(ConstructionStatusEnums.MAINTENANCE_YY.getCode())){ - //待运营维护 schsf:mcConstruction:operations + } else if (mcConstruction.getStatusCode().equals(ConstructionStatusEnums.MAINTENANCE_YY.getCode())) { + //待运营维护 schsf:mcConstruction:operations return mcConstructionMapper.selectMcConstructionNodeUserList(String.valueOf(id), "schsf:mcConstruction:operations"); } return Collections.emptyList(); diff --git a/zr-cloud/zr-modules/zr-schsf/src/main/java/com/chinagas/modules/schsf/service/impl/McIgnitionServiceImpl.java b/zr-cloud/zr-modules/zr-schsf/src/main/java/com/chinagas/modules/schsf/service/impl/McIgnitionServiceImpl.java index c3d15b8..388f0c5 100644 --- a/zr-cloud/zr-modules/zr-schsf/src/main/java/com/chinagas/modules/schsf/service/impl/McIgnitionServiceImpl.java +++ b/zr-cloud/zr-modules/zr-schsf/src/main/java/com/chinagas/modules/schsf/service/impl/McIgnitionServiceImpl.java @@ -267,16 +267,33 @@ public class McIgnitionServiceImpl implements IMcIgnitionService { * @param id */ private void sendMcIgnitionNotification(Long id) { - McIgnition mcIgnition = mcIgnitionMapper.selectMcIgnitionById(id); - log.info("点火维护-钉钉通知,点火信息对象:{}", mcIgnition); - if (BeanUtil.isEmpty(mcIgnition)) { - throw new ServiceException("未查询到记录"); - } - //发送通知 - List mcVisitNodeUsersDtos = this.selectMcIgnitionNodeUserList(id); - if (mcVisitNodeUsersDtos != null) { - List userIds = mcVisitNodeUsersDtos.stream().filter(mcVisitNodeUsersDto -> StringUtils.isNotEmpty(mcVisitNodeUsersDto.getDingTalkUserId())).map(NodeUsersDto::getDingTalkUserId).collect(Collectors.toList()); - dingtalkService.sendMarketFeeNotification(userIds, "市场化收费-点火维护", new McIgnitionTemplate(mcIgnition).getNoticemarkdown()); - } + + Thread thread = new Thread(() -> { + log.info("点火维护-钉钉通知,点火信息:参数id{}", id); + try { + + McIgnition mcIgnition = mcIgnitionMapper.selectMcIgnitionById(id); + log.info("点火维护-钉钉通知,点火信息对象:{}", mcIgnition); + if (BeanUtil.isEmpty(mcIgnition)) { + throw new ServiceException("未查询到记录"); + } + //发送通知 + List mcVisitNodeUsersDtos = this.selectMcIgnitionNodeUserList(id); + if (mcVisitNodeUsersDtos != null) { + List userIds = mcVisitNodeUsersDtos.stream().filter(mcVisitNodeUsersDto -> StringUtils.isNotEmpty(mcVisitNodeUsersDto.getDingTalkUserId())).map(NodeUsersDto::getDingTalkUserId).collect(Collectors.toList()); + dingtalkService.sendMarketFeeNotification(userIds, "市场化收费-点火维护", new McIgnitionTemplate(mcIgnition).getNoticemarkdown()); + } + + } catch (Exception e) { + // 异常处理 + e.printStackTrace(); + log.error("点火维护-钉钉通知,点火通知:通知失败{}", e.getMessage()); + } + }); + // 当主线程结束时,这个线程也自动结束 + thread.setDaemon(true); + thread.start(); + log.info("点火维护-钉钉通知,点火通知结束"); + } } diff --git a/zr-cloud/zr-modules/zr-schsf/src/main/java/com/chinagas/modules/schsf/service/impl/McVisitServiceImpl.java b/zr-cloud/zr-modules/zr-schsf/src/main/java/com/chinagas/modules/schsf/service/impl/McVisitServiceImpl.java index cec194c..4d844a9 100644 --- a/zr-cloud/zr-modules/zr-schsf/src/main/java/com/chinagas/modules/schsf/service/impl/McVisitServiceImpl.java +++ b/zr-cloud/zr-modules/zr-schsf/src/main/java/com/chinagas/modules/schsf/service/impl/McVisitServiceImpl.java @@ -632,15 +632,31 @@ public class McVisitServiceImpl implements IMcVisitService { * @param id */ private void sendMcVisitNotification(Long id) { - McVisit mcVisit = mcVisitMapper.selectMcVisitById(id); - log.info("拜访工单-钉钉通知,拜访单对象信息:{}", mcVisit); - if (BeanUtil.isEmpty(mcVisit)) {throw new ServiceException("未查询到记录");} - //发送通知 - List mcVisitNodeUsersDtos = this.selectStatusNodeUserList(id); - if (mcVisitNodeUsersDtos != null) { - List userIds = mcVisitNodeUsersDtos.stream().filter(mcVisitNodeUsersDto -> StringUtils.isNotEmpty(mcVisitNodeUsersDto.getDingTalkUserId())).map(NodeUsersDto::getDingTalkUserId).collect(Collectors.toList()); - dingtalkService.sendMarketFeeNotification(userIds, "市场化收费", new McVisitTemplate(mcVisit).getNoticemarkdown()); - } + Thread thread = new Thread(() -> { + log.info("钉钉通知,拜访通知:参数id{}", id); + try { + McVisit mcVisit = mcVisitMapper.selectMcVisitById(id); + log.info("钉钉通知,拜访通知,拜访单对象信息:{}", mcVisit); + if (BeanUtil.isEmpty(mcVisit)) { + throw new ServiceException("未查询到记录"); + } + //发送通知 + List mcVisitNodeUsersDtos = this.selectStatusNodeUserList(id); + if (mcVisitNodeUsersDtos != null) { + List userIds = mcVisitNodeUsersDtos.stream().filter(mcVisitNodeUsersDto -> StringUtils.isNotEmpty(mcVisitNodeUsersDto.getDingTalkUserId())).map(NodeUsersDto::getDingTalkUserId).collect(Collectors.toList()); + dingtalkService.sendMarketFeeNotification(userIds, "市场化收费", new McVisitTemplate(mcVisit).getNoticemarkdown()); + } + + } catch (Exception e) { + // 异常处理 + e.printStackTrace(); + log.error("钉钉通知,拜访通知:通知失败{}", e.getMessage()); + } + }); + // 当主线程结束时,这个线程也自动结束 + thread.setDaemon(true); + thread.start(); + log.info("钉钉通知,拜访通知结束"); } } diff --git a/zr-cloud/zr-modules/zr-schsf/src/main/resources/bootstrap.yml b/zr-cloud/zr-modules/zr-schsf/src/main/resources/bootstrap.yml index c062164..7176f63 100644 --- a/zr-cloud/zr-modules/zr-schsf/src/main/resources/bootstrap.yml +++ b/zr-cloud/zr-modules/zr-schsf/src/main/resources/bootstrap.yml @@ -98,11 +98,11 @@ spring: group: application group: zr-insight username: nacos - password: nacos + password: 0618@Rst namespace: develop-namespace server-addr: 172.17.56.37:8848 discovery: group: zr-insight username: nacos - password: nacos + password: 0618@Rst namespace: develop-namespace diff --git a/zr-cloud/zr-modules/zr-system/src/main/resources/bootstrap.yml b/zr-cloud/zr-modules/zr-system/src/main/resources/bootstrap.yml index 747eaf8..700a739 100644 --- a/zr-cloud/zr-modules/zr-system/src/main/resources/bootstrap.yml +++ b/zr-cloud/zr-modules/zr-system/src/main/resources/bootstrap.yml @@ -96,11 +96,11 @@ spring: group: application group: zr-insight username: nacos - password: nacos + password: 0618@Rst namespace: develop-namespace server-addr: 172.17.56.37:8848 discovery: group: zr-insight username: nacos - password: nacos + password: 0618@Rst namespace: develop-namespace -- libgit2 0.21.2