From 675007d23bbe382bed29c38ce90222512fcf94ad Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=A7=9C=E7=8E=89=E7=90=A6?= <7507756+jiang_yuqi@user.noreply.gitee.com> Date: Tue, 9 Apr 2024 21:46:07 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8F=90=E4=BA=A4diamond?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/resources/application-druid.yml | 2 +- .../src/main/resources/application-prod.yml | 6 +- .../src/main/resources/application-test.yml | 5 +- .../ruoyi/common/enums/MessageTypeEnum.java | 6 +- .../common/enums/TemplateMessageEnum.java | 6 +- .../listener/GlobalEventListener.java | 6 + .../com/ruoyi/quartz/mapper/TaskMapper.java | 20 ++ .../ruoyi/quartz/service/ITaskService.java | 22 +- .../quartz/service/impl/ITaskServiceImpl.java | 35 +++ .../quartz/task/FlowTaskExpiredTask.java | 199 +++++++++++++++++- .../resources/mapper/quartz/TaskMapper.xml | 36 +++- ruoyi-ui/src/api/wxsetting/wxAuth.js | 8 + ruoyi-ui/src/components/FileUpload/index.vue | 97 ++++++--- ruoyi-ui/src/components/ImageUpload/index.vue | 17 +- ruoyi-ui/src/views/wxsetting/wxAuth/index.vue | 16 +- .../domain/vo/SmzSspProblemmodifyExport.java | 3 +- .../controller/WxAuthController.java | 50 +---- .../impl/WeChatMessageServiceImpl.java | 107 +++++----- .../SurProjectAttendanceUserMapper.xml | 74 +++---- 19 files changed, 512 insertions(+), 203 deletions(-) diff --git a/ruoyi-admin/src/main/resources/application-druid.yml b/ruoyi-admin/src/main/resources/application-druid.yml index b1cdf204..a27a43d0 100644 --- a/ruoyi-admin/src/main/resources/application-druid.yml +++ b/ruoyi-admin/src/main/resources/application-druid.yml @@ -15,7 +15,7 @@ ruoyi: # 验证码类型 math 数字计算 char 字符验证 captchaType: math # 服务回调地址 - projectUrl: http://127.0.0.1:8091/jhapi/ + projectUrl: https://szgc.jhncidg.com # 开发环境配置 server: # 服务器的HTTP端口,默认为8080 diff --git a/ruoyi-admin/src/main/resources/application-prod.yml b/ruoyi-admin/src/main/resources/application-prod.yml index 91e5a21a..c885ce56 100644 --- a/ruoyi-admin/src/main/resources/application-prod.yml +++ b/ruoyi-admin/src/main/resources/application-prod.yml @@ -15,7 +15,7 @@ ruoyi: # 验证码类型 math 数字计算 char 字符验证 captchaType: math # 服务回调地址 - projectUrl: http://127.0.0.1:8091/jhapi/ + projectUrl: https://szgc.jhncidg.com # 开发环境配置 server: # 服务器的HTTP端口,默认为8080 @@ -36,8 +36,8 @@ server: #微信公众号配置 wechat: - mpAppId: wx90a9158b6acc5584 - mpAppSecret: ec23a5d78f12afa569c64794570d753c + mpAppId: wxe6fd9ad863ac09bf + mpAppSecret: ed08e7f6f42a40fc9fa0ebbc1bc6a1db wxAppId: wx9997d071b4996f23 wxAppSecret: 5bcc9ca17b31133d93a025871fc5021d diff --git a/ruoyi-admin/src/main/resources/application-test.yml b/ruoyi-admin/src/main/resources/application-test.yml index 42d5b5e6..0955bda3 100644 --- a/ruoyi-admin/src/main/resources/application-test.yml +++ b/ruoyi-admin/src/main/resources/application-test.yml @@ -15,7 +15,7 @@ ruoyi: # 验证码类型 math 数字计算 char 字符验证 captchaType: math # 服务回调地址 - projectUrl: http://127.0.0.1:8091/jhapi/ + projectUrl: https://szgc.jhncidg.com # 开发环境配置 server: # 服务器的HTTP端口,默认为8080 @@ -38,7 +38,8 @@ server: wechat: mpAppId: wxe6fd9ad863ac09bf mpAppSecret: ed08e7f6f42a40fc9fa0ebbc1bc6a1db - + wxAppId: wx9997d071b4996f23 + wxAppSecret: 5bcc9ca17b31133d93a025871fc5021d # 数据源配置 spring: datasource: diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/enums/MessageTypeEnum.java b/ruoyi-common/src/main/java/com/ruoyi/common/enums/MessageTypeEnum.java index 51591bf0..5da4832e 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/enums/MessageTypeEnum.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/enums/MessageTypeEnum.java @@ -12,9 +12,11 @@ public enum MessageTypeEnum { CSCLSP("30", "实测实量审批"), JPYSSP("40", "举牌验收审批"), CLFYSP("50", "材料封样审批"), - QYFSSP("60", "取样复试审批"); - //工作流审批由ProcDefKey组成 + QYFSSP("60", "取样复试审批"), + GCSPCSBL("70", "办理工程审批超时提醒"), + GCSPCSCS("80", "抄送工程审批超时提醒"); + //工作流审批由ProcDefKey组成 private final String code; private final String name; diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/enums/TemplateMessageEnum.java b/ruoyi-common/src/main/java/com/ruoyi/common/enums/TemplateMessageEnum.java index 213f0d93..5f4d7450 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/enums/TemplateMessageEnum.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/enums/TemplateMessageEnum.java @@ -7,9 +7,11 @@ package com.ruoyi.common.enums; */ public enum TemplateMessageEnum { - TROUBLE_SUBMIT("f3saBGJCnUAjXHw1KooxEUuRGv-a_8MG9dXfQvkRTBE", "隐患整改通知"), + TROUBLE_SUBMIT("f3saBGJCnUAjXHw1KooxEQOOiKEHlQxLIK-sPDgoL_E", "隐患整改通知"), TROUBLE_HANDLE("6mGOWPXS3l5a5fzXd9GIV9_IkEfZmeJ_6G2P_SQkWnU", "隐患处理完成通知"), - APPLY_DEFAULT("KY7oAHgqFxUSaE3ByxFJfv_0U3LnSWfgUCwV-CZyEdo", "系统流程审批提醒"); + APPLY_DEFAULT("KY7oAHgqFxUSaE3ByxFJfv_0U3LnSWfgUCwV-CZyEdo", "系统流程审批提醒"), + APPLY_EXPIRED_MY("MUAXGjyaNE-maYn6XSNycRfZfPtdVTxubqlT8lHcYqw", "办理流程审批超时提醒"), + APPLY_EXPIRED_COPY("MUAXGjyaNE-maYn6XSNyceRFN9h8nfIjKvyZTOLnKDE", "抄送流程审批超时提醒"); private final String id; private final String name; diff --git a/ruoyi-flowable/src/main/java/com/ruoyi/flowable/listener/GlobalEventListener.java b/ruoyi-flowable/src/main/java/com/ruoyi/flowable/listener/GlobalEventListener.java index bc067e40..41cf1a6e 100644 --- a/ruoyi-flowable/src/main/java/com/ruoyi/flowable/listener/GlobalEventListener.java +++ b/ruoyi-flowable/src/main/java/com/ruoyi/flowable/listener/GlobalEventListener.java @@ -1,5 +1,6 @@ package com.ruoyi.flowable.listener; +import com.ruoyi.common.config.WechatAccountConfig; import com.ruoyi.common.constant.CacheConstants; import com.ruoyi.common.core.domain.entity.SysDept; import com.ruoyi.common.core.domain.entity.SysUser; @@ -125,6 +126,7 @@ public class GlobalEventListener extends AbstractFlowableEngineEventListener { //模板数据 WxMpTemplateMessage templateMessage = WxMpTemplateMessage.builder() .toUser(this.getMsgId(taskUser.getPhonenumber())) + .miniProgram(new WxMpTemplateMessage.MiniProgram(WechatAccountConfig.getWxAppId(), "/pages/project_flowable/await/index?category="+taskEntity.getCategory()+"&barProId="+processInstance.getBusinessKey())) .templateId(TemplateMessageEnum.APPLY_DEFAULT.getId()).build(); templateMessage.addWxMpTemplateData(new WxMpTemplateData("thing14", this.getMsgProName(Convert.toLong(processInstance.getBusinessKey())))); templateMessage.addWxMpTemplateData(new WxMpTemplateData("thing1", processInstance.getProcessDefinitionName())); @@ -139,6 +141,10 @@ public class GlobalEventListener extends AbstractFlowableEngineEventListener { } } + /** + * 任务完成时监听器[暂未使用...统一使用任务创建] + * @param event + */ @Override protected void taskCompleted(FlowableEngineEntityEvent event) { log.info("任务节点审批通过...{}",event.getProcessInstanceId()); diff --git a/ruoyi-quartz/src/main/java/com/ruoyi/quartz/mapper/TaskMapper.java b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/mapper/TaskMapper.java index ee838b9b..d1ed5e05 100644 --- a/ruoyi-quartz/src/main/java/com/ruoyi/quartz/mapper/TaskMapper.java +++ b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/mapper/TaskMapper.java @@ -18,6 +18,26 @@ public interface TaskMapper { */ public List> findDaysAwaitFlowTask(); + /** + * 查询超时3天未办理的举牌验收 + */ + public List> findDaysAwaitJpysList(); + + /** + * 查询超时3天未办理的实测实量 + */ + public List> findDaysAwaitScslList(); + + /** + * 查询超时3天未办理的取样复试 + */ + public List> findDaysAwaitQyfsList(); + + /** + * 查询超时3天未办理的材料封样 + */ + public List> findDaysAwaitClfyList(); + /** * 根据条件查询流程用户 * @param businessKey 流程归属表单 diff --git a/ruoyi-quartz/src/main/java/com/ruoyi/quartz/service/ITaskService.java b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/service/ITaskService.java index f5df4b0e..8e41af95 100644 --- a/ruoyi-quartz/src/main/java/com/ruoyi/quartz/service/ITaskService.java +++ b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/service/ITaskService.java @@ -13,10 +13,30 @@ import java.util.Map; public interface ITaskService { /** - * 查询超时3天未办理的任务 + * 查询超时3天未办理的流程任务 */ public List> findDaysAwaitFlowTask(); + /** + * 查询超时3天未办理的举牌验收 + */ + public List> findDaysAwaitJpysList(); + + /** + * 查询超时3天未办理的实测实量 + */ + public List> findDaysAwaitScslList(); + + /** + * 查询超时3天未办理的取样复试 + */ + public List> findDaysAwaitQyfsList(); + + /** + * 查询超时3天未办理的材料封样 + */ + public List> findDaysAwaitClfyList(); + /** * 根据条件查询流程用户 * @param businessKey 流程归属表单 diff --git a/ruoyi-quartz/src/main/java/com/ruoyi/quartz/service/impl/ITaskServiceImpl.java b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/service/impl/ITaskServiceImpl.java index 884949d0..b8dd9b9d 100644 --- a/ruoyi-quartz/src/main/java/com/ruoyi/quartz/service/impl/ITaskServiceImpl.java +++ b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/service/impl/ITaskServiceImpl.java @@ -24,10 +24,43 @@ public class ITaskServiceImpl implements ITaskService { /** * 查询超时3天未办理的任务 */ + @Override public List> findDaysAwaitFlowTask(){ return taskMapper.findDaysAwaitFlowTask(); } + /** + * 查询超时3天未办理的举牌验收 + */ + @Override + public List> findDaysAwaitJpysList() { + return taskMapper.findDaysAwaitJpysList(); + } + + /** + * 查询超时3天未办理的实测实量 + */ + @Override + public List> findDaysAwaitScslList(){ + return taskMapper.findDaysAwaitScslList(); + } + + /** + * 查询超时3天未办理的取样复试 + */ + @Override + public List> findDaysAwaitQyfsList(){ + return taskMapper.findDaysAwaitQyfsList(); + } + + /** + * 查询超时3天未办理的材料封样 + */ + @Override + public List> findDaysAwaitClfyList(){ + return taskMapper.findDaysAwaitClfyList(); + } + /** * 根据条件查询流程用户 * @param businessKey 流程归属表单 @@ -50,6 +83,7 @@ public class ITaskServiceImpl implements ITaskService { * @param userName 用户登录名 * @return 用户绑定小程序openId集合 */ + @Override public List> findSysUserOpenidsByUser(String userName) { return taskMapper.findSysUserOpenidsByUser(userName); } @@ -60,6 +94,7 @@ public class ITaskServiceImpl implements ITaskService { * @param proId 项目信息 * @return 用户绑定小程序openId集合 */ + @Override public List> findMsgProMagUsers(Long proId) { return taskMapper.findMsgProMagUsers(proId); } diff --git a/ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/FlowTaskExpiredTask.java b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/FlowTaskExpiredTask.java index 09b4b8ad..9a3b56d2 100644 --- a/ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/FlowTaskExpiredTask.java +++ b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/FlowTaskExpiredTask.java @@ -1,9 +1,11 @@ package com.ruoyi.quartz.task; +import com.ruoyi.common.config.WechatAccountConfig; import com.ruoyi.common.constant.CacheConstants; import com.ruoyi.common.core.domain.entity.SysUser; import com.ruoyi.common.core.redis.RedisCache; import com.ruoyi.common.core.text.Convert; +import com.ruoyi.common.enums.MessageTypeEnum; import com.ruoyi.common.enums.TemplateMessageEnum; import com.ruoyi.common.utils.DateUtils; import com.ruoyi.common.utils.StringUtils; @@ -53,8 +55,9 @@ public class FlowTaskExpiredTask { if (lock) {*/ try { log.info("劫持锁...{}...开始执行::工程审批超时提醒定时任务...{}"); - List> list = taskService.findDaysAwaitFlowTask(); - for(Map dataMap:list){ + List list = new ArrayList<>(); + List> flowList = taskService.findDaysAwaitFlowTask(); + for(Map dataMap:flowList){ List candidateUsers = new ArrayList<>(); List candidateGroups = new ArrayList<>(); if(StringUtils.isNotNull(dataMap.get("ASSIGNEE_"))){ @@ -68,21 +71,21 @@ public class FlowTaskExpiredTask { } String businessKey = Convert.toStr(dataMap.get("businessKey")); String businessKeyName = Convert.toStr(dataMap.get("businessKeyName")); + String total = Convert.toStr(dataMap.get("total")); List sysUserList = taskService.findFlowTaskUsers(businessKey,candidateUsers,candidateGroups); if(StringUtils.isNotEmpty(sysUserList)){ for(SysUser taskUser:sysUserList){ //模板数据 WxMpTemplateMessage templateMessage = WxMpTemplateMessage.builder() .toUser(this.getMsgId(taskUser.getPhonenumber())) - .templateId(TemplateMessageEnum.APPLY_DEFAULT.getId()).build(); -// templateMessage.addWxMpTemplateData(new WxMpTemplateData("thing14", businessKeyName)); -// templateMessage.addWxMpTemplateData(new WxMpTemplateData("thing1", processInstance.getProcessDefinitionName())); -// templateMessage.addWxMpTemplateData(new WxMpTemplateData("thing2", Objects.equals(taskEntity.getName(),"提交申请")?"申请审批驳回":"待"+taskEntity.getName())); -// templateMessage.addWxMpTemplateData(new WxMpTemplateData("time4", DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD_HH_MM_SS,processInstance.getStartTime()))); -// templateMessage.addWxMpTemplateData(new WxMpTemplateData("thing10", sysUser.getNickName()+"["+this.getMsgDepName(sysUser.getDeptId())+"]")); -// list.add(templateMessage); + .miniProgram(new WxMpTemplateMessage.MiniProgram(WechatAccountConfig.getWxAppId(), "/pages/project_flowable/await/index?category=1&barProId="+businessKey)) + .templateId(TemplateMessageEnum.APPLY_EXPIRED_MY.getId()).build(); + templateMessage.addWxMpTemplateData(new WxMpTemplateData("thing7", businessKeyName)); + templateMessage.addWxMpTemplateData(new WxMpTemplateData("character_string8", total)); + templateMessage.addWxMpTemplateData(new WxMpTemplateData("const9", "项目工程审批")); + list.add(templateMessage); } - //this.send(list,processInstance.getProcessDefinitionKey()); + this.send(list,"EXPIRED_"+ MessageTypeEnum.GCSPCSBL.getCode()); } } } catch (Exception e) { @@ -98,6 +101,182 @@ public class FlowTaskExpiredTask { }*/ } + /** + * 从Flowable中查询超时数据进行消息提醒 + * 分布式锁::quartz.task.flowTaskExpiredTask.notifyExpiredData + * 由程序定时调用 JiangYuQi + * @param + * @return + */ + public void notifyJpysExpiredData() { + /**String key = "quartz.task.flowTaskExpiredTask.notifyExpiredData"; + boolean lock = redisLock.tryLock(key, Constants.REDIS_LOCK, TimeUnit.SECONDS); + if (lock) {*/ + try { + log.info("劫持锁...{}...开始执行::工程审批超时提醒定时任务...{}"); + List list = new ArrayList<>(); + List> flowList = taskService.findDaysAwaitJpysList(); + for(Map dataMap:flowList){ + String projectId = Convert.toStr(dataMap.get("projectId")); + String projectName = Convert.toStr(dataMap.get("projectName")); + String superviseUser = Convert.toStr(dataMap.get("superviseUser")); + String total = Convert.toStr(dataMap.get("total")); + //模板数据 + WxMpTemplateMessage templateMessage = WxMpTemplateMessage.builder() + .toUser(this.getMsgId(superviseUser)) + .miniProgram(new WxMpTemplateMessage.MiniProgram(WechatAccountConfig.getWxAppId(), "/pageage/project_checking/list/index?barProId="+projectId)) + .templateId(TemplateMessageEnum.APPLY_EXPIRED_MY.getId()).build(); + templateMessage.addWxMpTemplateData(new WxMpTemplateData("thing7", projectName)); + templateMessage.addWxMpTemplateData(new WxMpTemplateData("character_string8", total)); + templateMessage.addWxMpTemplateData(new WxMpTemplateData("const9", "举牌验收审批")); + list.add(templateMessage); + } + this.send(list,"EXPIRED_"+ MessageTypeEnum.JPYSSP.getCode()); + } catch (Exception e) { + log.info("任务执行异常...{}...::::结束执行...{}", e.getMessage()); + throw e; + } + /**finally { + log.info("释放锁...{}", key); + redisLock.unlock(key); + } + }else{ + log.info("尝试劫持锁失败...{}", key); + }*/ + } + + /** + * 从Flowable中查询超时数据进行消息提醒 + * 分布式锁::quartz.task.flowTaskExpiredTask.notifyExpiredData + * 由程序定时调用 JiangYuQi + * @param + * @return + */ + public void notifyScslExpiredData() { + /**String key = "quartz.task.flowTaskExpiredTask.notifyExpiredData"; + boolean lock = redisLock.tryLock(key, Constants.REDIS_LOCK, TimeUnit.SECONDS); + if (lock) {*/ + try { + log.info("劫持锁...{}...开始执行::工程审批超时提醒定时任务...{}"); + List list = new ArrayList<>(); + List> flowList = taskService.findDaysAwaitScslList(); + for(Map dataMap:flowList){ + String projectId = Convert.toStr(dataMap.get("projectId")); + String projectName = Convert.toStr(dataMap.get("projectName")); + String superviseUser = Convert.toStr(dataMap.get("superviseUser")); + String total = Convert.toStr(dataMap.get("total")); + //模板数据 + WxMpTemplateMessage templateMessage = WxMpTemplateMessage.builder() + .toUser(this.getMsgId(superviseUser)) + .miniProgram(new WxMpTemplateMessage.MiniProgram(WechatAccountConfig.getWxAppId(), "/pageage/project_checking/list/index?barProId="+projectId)) + .templateId(TemplateMessageEnum.APPLY_EXPIRED_MY.getId()).build(); + templateMessage.addWxMpTemplateData(new WxMpTemplateData("thing7", projectName)); + templateMessage.addWxMpTemplateData(new WxMpTemplateData("character_string8", total)); + templateMessage.addWxMpTemplateData(new WxMpTemplateData("const9", "实测实量审批")); + list.add(templateMessage); + } + this.send(list,"EXPIRED_"+ MessageTypeEnum.CSCLSP.getCode()); + } catch (Exception e) { + log.info("任务执行异常...{}...::::结束执行...{}", e.getMessage()); + throw e; + } + /**finally { + log.info("释放锁...{}", key); + redisLock.unlock(key); + } + }else{ + log.info("尝试劫持锁失败...{}", key); + }*/ + } + + /** + * 从Flowable中查询超时数据进行消息提醒 + * 分布式锁::quartz.task.flowTaskExpiredTask.notifyExpiredData + * 由程序定时调用 JiangYuQi + * @param + * @return + */ + public void notifyQyfsExpiredData() { + /**String key = "quartz.task.flowTaskExpiredTask.notifyExpiredData"; + boolean lock = redisLock.tryLock(key, Constants.REDIS_LOCK, TimeUnit.SECONDS); + if (lock) {*/ + try { + log.info("劫持锁...{}...开始执行::工程审批超时提醒定时任务...{}"); + List list = new ArrayList<>(); + List> flowList = taskService.findDaysAwaitQyfsList(); + for(Map dataMap:flowList){ + String projectId = Convert.toStr(dataMap.get("projectId")); + String projectName = Convert.toStr(dataMap.get("projectName")); + String witnessUser = Convert.toStr(dataMap.get("witnessUser")); + String total = Convert.toStr(dataMap.get("total")); + //模板数据 + WxMpTemplateMessage templateMessage = WxMpTemplateMessage.builder() + .toUser(this.getMsgId(witnessUser)) + .miniProgram(new WxMpTemplateMessage.MiniProgram(WechatAccountConfig.getWxAppId(), "/pageage/project_checking/list/index?barProId="+projectId)) + .templateId(TemplateMessageEnum.APPLY_EXPIRED_MY.getId()).build(); + templateMessage.addWxMpTemplateData(new WxMpTemplateData("thing7", projectName)); + templateMessage.addWxMpTemplateData(new WxMpTemplateData("character_string8", total)); + templateMessage.addWxMpTemplateData(new WxMpTemplateData("const9", "材料取样复试审批")); + list.add(templateMessage); + } + this.send(list,"EXPIRED_"+ MessageTypeEnum.QYFSSP.getCode()); + } catch (Exception e) { + log.info("任务执行异常...{}...::::结束执行...{}", e.getMessage()); + throw e; + } + /**finally { + log.info("释放锁...{}", key); + redisLock.unlock(key); + } + }else{ + log.info("尝试劫持锁失败...{}", key); + }*/ + } + + /** + * 从Flowable中查询超时数据进行消息提醒 + * 分布式锁::quartz.task.flowTaskExpiredTask.notifyExpiredData + * 由程序定时调用 JiangYuQi + * @param + * @return + */ + public void notifyClfyExpiredData() { + /**String key = "quartz.task.flowTaskExpiredTask.notifyExpiredData"; + boolean lock = redisLock.tryLock(key, Constants.REDIS_LOCK, TimeUnit.SECONDS); + if (lock) {*/ + try { + log.info("劫持锁...{}...开始执行::工程审批超时提醒定时任务...{}"); + List list = new ArrayList<>(); + List> flowList = taskService.findDaysAwaitClfyList(); + for(Map dataMap:flowList){ + String projectId = Convert.toStr(dataMap.get("projectId")); + String projectName = Convert.toStr(dataMap.get("projectName")); + String witnessUser = Convert.toStr(dataMap.get("witnessUser")); + String total = Convert.toStr(dataMap.get("total")); + //模板数据 + WxMpTemplateMessage templateMessage = WxMpTemplateMessage.builder() + .toUser(this.getMsgId(witnessUser)) + .miniProgram(new WxMpTemplateMessage.MiniProgram(WechatAccountConfig.getWxAppId(), "/pageage/project_checking/list/index?barProId="+projectId)) + .templateId(TemplateMessageEnum.APPLY_EXPIRED_MY.getId()).build(); + templateMessage.addWxMpTemplateData(new WxMpTemplateData("thing7", projectName)); + templateMessage.addWxMpTemplateData(new WxMpTemplateData("character_string8", total)); + templateMessage.addWxMpTemplateData(new WxMpTemplateData("const9", "材料封样审批")); + list.add(templateMessage); + } + this.send(list,"EXPIRED_"+ MessageTypeEnum.CLFYSP.getCode()); + } catch (Exception e) { + log.info("任务执行异常...{}...::::结束执行...{}", e.getMessage()); + throw e; + } + /**finally { + log.info("释放锁...{}", key); + redisLock.unlock(key); + } + }else{ + log.info("尝试劫持锁失败...{}", key); + }*/ + } + /** * 查询微信用户列表 * @param userName diff --git a/ruoyi-quartz/src/main/resources/mapper/quartz/TaskMapper.xml b/ruoyi-quartz/src/main/resources/mapper/quartz/TaskMapper.xml index 1c3196ae..35da5e1a 100644 --- a/ruoyi-quartz/src/main/resources/mapper/quartz/TaskMapper.xml +++ b/ruoyi-quartz/src/main/resources/mapper/quartz/TaskMapper.xml @@ -4,9 +4,41 @@ "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> - + + + + + + + + + + + + +