From 257db6a8372efee0576015fe6a9d8b2c86a39d38 Mon Sep 17 00:00:00 2001 From: "1378012178@qq.com" <1378012178@qq.com> Date: Tue, 14 Oct 2025 11:16:06 +0800 Subject: [PATCH] =?UTF-8?q?1=E3=80=81=E8=B0=83=E6=95=B4=E5=BE=AE=E4=BF=A1?= =?UTF-8?q?=E9=80=9A=E7=9F=A5=202=E3=80=81=E8=A7=A3=E5=86=B3=E5=8A=A0?= =?UTF-8?q?=E7=9B=9F=E6=9C=BA=E6=9E=84=E4=BF=A1=E6=81=AF=E4=B8=8D=E6=98=BE?= =?UTF-8?q?=E7=A4=BA=E6=9C=BA=E6=9E=84=E5=9C=B0=E5=9D=80=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/nu/modules/wxnotice/IWxNoticeApi.java | 19 ++- .../orgapplyinfo/entity/OrgAllInfo.java | 4 + .../service/impl/WxNoticeServiceImpl.java | 73 +++++++++--- .../listener/EmployeesMQListener.java | 94 ++++++++------- .../nu/modules/wechat/notice/WxNoticeApi.java | 6 +- .../java/com/nu/entity/NuWxNoticeEntity.java | 38 ++++++ .../java/com/nu/entity/WxNoticeEntity.java | 37 +++--- .../listener/ElderTaggMQListener.java | 109 +++++++++++------- .../src/main/resources/application-dev.yml | 4 +- 9 files changed, 252 insertions(+), 132 deletions(-) create mode 100644 nursing-unit-common/src/main/java/com/nu/entity/NuWxNoticeEntity.java diff --git a/nursing-unit-admin/nu-admin-api/nu-admin-local-api/src/main/java/com/nu/modules/wxnotice/IWxNoticeApi.java b/nursing-unit-admin/nu-admin-api/nu-admin-local-api/src/main/java/com/nu/modules/wxnotice/IWxNoticeApi.java index bfa8ca9..b48505a 100644 --- a/nursing-unit-admin/nu-admin-api/nu-admin-local-api/src/main/java/com/nu/modules/wxnotice/IWxNoticeApi.java +++ b/nursing-unit-admin/nu-admin-api/nu-admin-local-api/src/main/java/com/nu/modules/wxnotice/IWxNoticeApi.java @@ -1,18 +1,29 @@ package com.nu.modules.wxnotice; +import com.nu.entity.NuWxNoticeEntity; import com.nu.entity.WxNoticeEntity; import java.util.List; public interface IWxNoticeApi { - void addNotice(WxNoticeEntity dto); + void addNotice(NuWxNoticeEntity dto); - List query(int pageNo, int pageSize, String openId, String clientType); + List query(int pageNo, int pageSize, String openId, String clientType); int unreadCount(String openId, String clientType); - void upRead(WxNoticeEntity dto); + void upRead(NuWxNoticeEntity dto); - void sendWechartMinMessage(WxNoticeEntity wxNoticeEntity); + /** + * 用户邀约通知模板 + * + */ + void sendWechartMessage_YAOYUE(WxNoticeEntity wxNotice, NuWxNoticeEntity nuWxNotice); + + /** + * 审核通知模板 + * + */ + void sendWechartMessage_SHENHE(WxNoticeEntity wxNotice, NuWxNoticeEntity nuWxNotice); } diff --git a/nursing-unit-admin/nu-admin-biz/src/main/java/com/nu/modules/orgapplyinfo/entity/OrgAllInfo.java b/nursing-unit-admin/nu-admin-biz/src/main/java/com/nu/modules/orgapplyinfo/entity/OrgAllInfo.java index 6e98f76..9c5459c 100644 --- a/nursing-unit-admin/nu-admin-biz/src/main/java/com/nu/modules/orgapplyinfo/entity/OrgAllInfo.java +++ b/nursing-unit-admin/nu-admin-biz/src/main/java/com/nu/modules/orgapplyinfo/entity/OrgAllInfo.java @@ -1,6 +1,7 @@ package com.nu.modules.orgapplyinfo.entity; import lombok.Data; +import org.jeecg.common.aspect.annotation.Dict; import java.io.Serializable; import java.math.BigDecimal; @@ -162,10 +163,13 @@ public class OrgAllInfo implements Serializable { /**机构建筑面积*/ private Double orgBuildingArea; /**机构省份 sys_category.id*/ + @Dict(dictTable = "sys_category",dicCode = "id",dicText = "name") private String orgProvince; /**机构城市 sys_category.id*/ + @Dict(dictTable = "sys_category",dicCode = "id",dicText = "name") private String orgCity; /**机构区域 sys_category.id*/ + @Dict(dictTable = "sys_category",dicCode = "id",dicText = "name") private String orgDistrict; /**合同附件*/ private String contract; diff --git a/nursing-unit-admin/nu-admin-biz/src/main/java/com/nu/modules/wxnotice/service/impl/WxNoticeServiceImpl.java b/nursing-unit-admin/nu-admin-biz/src/main/java/com/nu/modules/wxnotice/service/impl/WxNoticeServiceImpl.java index ce4d55c..d2d471d 100644 --- a/nursing-unit-admin/nu-admin-biz/src/main/java/com/nu/modules/wxnotice/service/impl/WxNoticeServiceImpl.java +++ b/nursing-unit-admin/nu-admin-biz/src/main/java/com/nu/modules/wxnotice/service/impl/WxNoticeServiceImpl.java @@ -4,9 +4,9 @@ import cn.hutool.core.bean.BeanUtil; import cn.hutool.json.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; -import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.nu.entity.NuWxNoticeEntity; import com.nu.entity.WxNoticeEntity; import com.nu.modules.weixin.utils.TemplateMessageSender; import com.nu.modules.weixin.utils.WechatMiniProgramUtils; @@ -15,7 +15,6 @@ import com.nu.modules.wxnotice.entity.WxNotice; import com.nu.modules.wxnotice.mapper.WxNoticeMapper; import com.nu.modules.wxnotice.service.IWxNoticeService; import org.apache.commons.lang.StringUtils; -import org.jeecg.common.api.vo.Result; import org.jeecg.common.constant.CommonConstant; import org.jeecg.common.system.api.ISysBaseAPI; import org.jeecg.common.util.DateUtils; @@ -42,15 +41,16 @@ public class WxNoticeServiceImpl extends ServiceImpl i @Autowired private ISysBaseAPI sysBaseAPI; + @Override - public void addNotice(WxNoticeEntity dto) { + public void addNotice(NuWxNoticeEntity dto) { WxNotice wxNotice = new WxNotice(); BeanUtils.copyProperties(dto, wxNotice); baseMapper.insert(wxNotice); } @Override - public List query(int pageNo, int pageSize, String openId, String clientType) { + public List query(int pageNo, int pageSize, String openId, String clientType) { if (StringUtils.isBlank(openId)) { return List.of(); } @@ -61,7 +61,7 @@ public class WxNoticeServiceImpl extends ServiceImpl i qw.orderByDesc("iz_read");//未读在前 qw.orderByDesc("create_time");//按照时间倒序 List wxNotices = baseMapper.selectList(page, qw); - List result = BeanUtil.copyToList(wxNotices, WxNoticeEntity.class); + List result = BeanUtil.copyToList(wxNotices, NuWxNoticeEntity.class); return result; } @@ -77,7 +77,7 @@ public class WxNoticeServiceImpl extends ServiceImpl i } @Override - public void upRead(WxNoticeEntity dto) { + public void upRead(NuWxNoticeEntity dto) { UpdateWrapper uw = new UpdateWrapper<>(); uw.in("id", dto.getId().split(",")); WxNotice wxNotice = new WxNotice(); @@ -85,40 +85,79 @@ public class WxNoticeServiceImpl extends ServiceImpl i baseMapper.update(wxNotice, uw); } + /** + * 用户邀约通知 + */ @Override - public void sendWechartMinMessage(WxNoticeEntity wxNoticeEntity) { + public void sendWechartMessage_YAOYUE(WxNoticeEntity wxNotice, NuWxNoticeEntity wxNoticeEntity) { try { // 1. 获取access token String accessToken = WechatMiniProgramUtils.getAccessToken(); // 2. 准备模板消息数据 -// String templateId = "CJ6NDNV4mTTyOdYhbksyA_YjDORVemJRmzEVAUZMBis"; String templateId = "yvvhlRft1CAdtU-dWlCW8U63VnTwRU8w3gR0BUdqcWw"; - String page = "pages/yuangongindex/index"; // 点击消息跳转的页面 + String page = wxNotice.getPageRoute(); // 点击消息跳转的页面 - com.alibaba.fastjson.JSONObject orgInfo = sysBaseAPI.getOrgInfo(wxNoticeEntity.getOrgCode()); - String companyName = orgInfo.getString("departName"); String openId = wxNoticeEntity.getOpenId(); Map data = new HashMap<>(); - String tips = "请及时参加邀约哦"; - data.put("thing1", companyName); // 对应模板中的字段 - data.put("thing4", tips); + data.put("thing1", wxNotice.getThing1()); // 对应模板中的字段 + data.put("thing4", wxNotice.getThing4()); data.put("date3", DateUtils.now()); // 3. 发送模板消息 String resInfo = TemplateMessageSender.sendTemplateMessage(accessToken, openId, templateId, page, data); if (com.alibaba.cloud.commons.lang.StringUtils.equals(resInfo, "error")) { - baseCommonService.addLog("机构邀请员工入驻,发送通知失败-发送消息异常112 " + resInfo, CommonConstant.LOG_TYPE_2, 1); + baseCommonService.addLog(wxNotice.getLogMainInfo() + ",发送通知失败-发送消息异常112 " + resInfo, CommonConstant.LOG_TYPE_2, 1); } JSONObject jsonObject = new JSONObject(resInfo); boolean success = jsonObject.getInt("errcode") == 0; if (success) { System.out.println("模板消息发送成功"); - baseCommonService.addLog("机构邀请员工入驻,发送通知成功 ", CommonConstant.LOG_TYPE_2, 1); + baseCommonService.addLog(wxNotice.getLogMainInfo() + ",发送通知成功 ", CommonConstant.LOG_TYPE_2, 1); } else { - baseCommonService.addLog("机构邀请员工入驻,发送通知失败-发送消息异常121 " + resInfo, CommonConstant.LOG_TYPE_2, 1); + baseCommonService.addLog(wxNotice.getLogMainInfo() + ",发送通知失败-发送消息异常121 " + resInfo, CommonConstant.LOG_TYPE_2, 1); + System.out.println("模板消息发送失败"); + } + } catch (Exception e) { + e.printStackTrace(); + } + } + + /** + * 审核通知模板 + */ + @Override + public void sendWechartMessage_SHENHE(WxNoticeEntity wxNotice, NuWxNoticeEntity wxNoticeEntity) { + try { + + // 1. 获取access token + String accessToken = WechatMiniProgramUtils.getAccessToken(); + + // 2. 准备模板消息数据 + String templateId = "cWVzXm1C-iitx1gNFn1nZdijq9R_3fCv8vLbiqs9zww"; + String page = wxNotice.getPageRoute(); // 点击消息跳转的页面 + + String openId = wxNoticeEntity.getOpenId(); + Map data = new HashMap<>(); + data.put("thing2", wxNotice.getThing2()); // 对应模板中的字段 + data.put("phrase1", wxNotice.getPhrase1()); + data.put("date3", DateUtils.now()); + + // 3. 发送模板消息 + String resInfo = TemplateMessageSender.sendTemplateMessage(accessToken, openId, templateId, page, data); + if (com.alibaba.cloud.commons.lang.StringUtils.equals(resInfo, "error")) { + baseCommonService.addLog(wxNotice.getLogMainInfo() + ",发送通知失败-发送消息异常112 " + resInfo, CommonConstant.LOG_TYPE_2, 1); + } + JSONObject jsonObject = new JSONObject(resInfo); + boolean success = jsonObject.getInt("errcode") == 0; + if (success) { + + System.out.println("模板消息发送成功"); + baseCommonService.addLog(wxNotice.getLogMainInfo() + ",发送通知成功 ", CommonConstant.LOG_TYPE_2, 1); + } else { + baseCommonService.addLog(wxNotice.getLogMainInfo() + ",发送通知失败-发送消息异常121 " + resInfo, CommonConstant.LOG_TYPE_2, 1); System.out.println("模板消息发送失败"); } } catch (Exception e) { diff --git a/nursing-unit-admin/nu-admin-biz/src/main/java/com/nu/mq/employees/listener/EmployeesMQListener.java b/nursing-unit-admin/nu-admin-biz/src/main/java/com/nu/mq/employees/listener/EmployeesMQListener.java index 7d6b64a..b663e8a 100644 --- a/nursing-unit-admin/nu-admin-biz/src/main/java/com/nu/mq/employees/listener/EmployeesMQListener.java +++ b/nursing-unit-admin/nu-admin-biz/src/main/java/com/nu/mq/employees/listener/EmployeesMQListener.java @@ -8,6 +8,7 @@ import com.google.common.collect.Maps; import com.nu.dto.EmployeesApplyMQDto; import com.nu.dto.EmployeesStatusMQDto; import com.nu.dto.SysUserMQDto; +import com.nu.entity.NuWxNoticeEntity; import com.nu.entity.WxNoticeEntity; import com.nu.enums.WxClientType; import com.nu.modules.employees.entity.EmployeesOrg; @@ -78,39 +79,39 @@ public class EmployeesMQListener { //审批通过,判断是否需要通知业务系统初始化登录账户。需要初始化则直接通知;不需要初始化则需要从已存在的业务系统中获取账号信息,并将账号信息通知给此审批的业务系统 if ("2".equals(dto.getAuditStatus())) { NuEmployeesAdvisoryInfo employeesAd = employeesAdvisoryInfoService.getById(dto.getEmployeeId()); - if(employeesAd.getIzInit().equals("1")){ + if (employeesAd.getIzInit().equals("1")) { //需要初始化,直接通知审批业务系统进行初始化 SysUserMQDto sysUserMQDto = new SysUserMQDto(); sysUserMQDto.setEmployeeId(dto.getEmployeeId()); sysUserMQDto.setIzInit("1"); sysUserMQDto.setIzInitPassword("0");//不需要更新其他业务平台密码 rabbitMQUtil.sendToExchange("hldy.employees", dto.getOrgCode() + ".employees.initsysuser", sysUserMQDto); - }else{ + } else { long diffInMillis = Math.abs((new Date()).getTime() - employeesAd.getLastLoginTime().getTime()); // 30天的毫秒数(近似值) long oneMonthInMillis = 30L * 24 * 60 * 60 * 1000; - if(diffInMillis > oneMonthInMillis){ + if (diffInMillis > oneMonthInMillis) { //最近登录时间大于30天,也需要初始化 SysUserMQDto sysUserMQDto = new SysUserMQDto(); sysUserMQDto.setEmployeeId(dto.getEmployeeId()); sysUserMQDto.setIzInit("1"); sysUserMQDto.setIzInitPassword("1");//需要更新其他业务平台密码 rabbitMQUtil.sendToExchange("hldy.employees", dto.getOrgCode() + ".employees.initsysuser", sysUserMQDto); - }else{ + } else { UpdateWrapper uwOrg = new UpdateWrapper<>(); uwOrg.eq("employees_id", dto.getEmployeeId()); uwOrg.eq("iz_freeze", "0");//未冻结 uwOrg.eq("iz_history", "1");//非历史 - uwOrg.and(c -> c.eq("apply_type","2").or().eq("status","2"));//审批通过 + uwOrg.and(c -> c.eq("apply_type", "2").or().eq("status", "2"));//审批通过 uwOrg.eq("org_code", employeesAd.getLastLoginOrg());//机构 EmployeesOrg empOrg = employeesOrgService.getOne(uwOrg); - if(empOrg!=null){ + if (empOrg != null) { //不需要初始化,发送MQ从原业务系统获取账号信息,MQ收到账号信息后再通知给审批业务系统 SysUserMQDto sysUserMQDto = new SysUserMQDto(); sysUserMQDto.setEmployeeId(dto.getEmployeeId()); sysUserMQDto.setTargetOrgCode(dto.getOrgCode()); rabbitMQUtil.sendToExchange("hldy.employees", employeesAd.getLastLoginOrg() + ".employees.sysuser.info", sysUserMQDto); - }else{ + } else { //原账号冻结,也需要初始化 SysUserMQDto sysUserMQDto = new SysUserMQDto(); sysUserMQDto.setEmployeeId(dto.getEmployeeId()); @@ -153,10 +154,10 @@ public class EmployeesMQListener { uw.eq("employees_id", dto.getEmployeeId()); uw.eq("iz_freeze", "0");//未冻结 uw.eq("iz_history", "1");//非历史 - uw.and(c -> c.eq("apply_type","2").or().eq("status","2"));//审批通过 + uw.and(c -> c.eq("apply_type", "2").or().eq("status", "2"));//审批通过 List list = employeesOrgService.list(uw); - if(list.size()>0){ - for(int i=0;i 0) { + for (int i = 0; i < list.size(); i++) { EmployeesOrg entity = list.get(i); rabbitMQUtil.sendToExchange("hldy.employees", entity.getOrgCode() + ".employees.sysuser.pwd.sync", dto); } @@ -188,39 +189,39 @@ public class EmployeesMQListener { key = "hldy.employeesorg.howtoinitsysuser"), errorHandler = "employeesMQErrorHandler") public void handleHowToInitSysuser(SysUserMQDto dto) { NuEmployeesAdvisoryInfo employeesAd = employeesAdvisoryInfoService.getById(dto.getEmployeeId()); - if(employeesAd.getIzInit().equals("1")){ + if (employeesAd.getIzInit().equals("1")) { //需要初始化,直接通知审批业务系统进行初始化 SysUserMQDto sysUserMQDto = new SysUserMQDto(); sysUserMQDto.setEmployeeId(dto.getEmployeeId()); sysUserMQDto.setIzInit("1"); sysUserMQDto.setIzInitPassword("0");//不需要更新其他业务平台密码 rabbitMQUtil.sendToExchange("hldy.employees", dto.getOrgCode() + ".employees.initsysuser", sysUserMQDto); - }else{ + } else { long diffInMillis = Math.abs((new Date()).getTime() - employeesAd.getLastLoginTime().getTime()); // 30天的毫秒数(近似值) long oneMonthInMillis = 30L * 24 * 60 * 60 * 1000; - if(diffInMillis > oneMonthInMillis){ + if (diffInMillis > oneMonthInMillis) { //最近登录时间大于30天,也需要初始化 SysUserMQDto sysUserMQDto = new SysUserMQDto(); sysUserMQDto.setEmployeeId(dto.getEmployeeId()); sysUserMQDto.setIzInit("1"); sysUserMQDto.setIzInitPassword("1");//需要更新其他业务平台密码 rabbitMQUtil.sendToExchange("hldy.employees", dto.getOrgCode() + ".employees.initsysuser", sysUserMQDto); - }else{ + } else { UpdateWrapper uwOrg = new UpdateWrapper<>(); uwOrg.eq("employees_id", dto.getEmployeeId()); uwOrg.eq("iz_freeze", "0");//未冻结 uwOrg.eq("iz_history", "1");//非历史 - uwOrg.and(c -> c.eq("apply_type","2").or().eq("status","2"));//审批通过 + uwOrg.and(c -> c.eq("apply_type", "2").or().eq("status", "2"));//审批通过 uwOrg.eq("org_code", employeesAd.getLastLoginOrg());//机构 EmployeesOrg empOrg = employeesOrgService.getOne(uwOrg); - if(empOrg!=null){ + if (empOrg != null) { //不需要初始化,发送MQ从原业务系统获取账号信息,MQ收到账号信息后再通知给审批业务系统 SysUserMQDto sysUserMQDto = new SysUserMQDto(); sysUserMQDto.setEmployeeId(dto.getEmployeeId()); sysUserMQDto.setTargetOrgCode(dto.getOrgCode()); rabbitMQUtil.sendToExchange("hldy.employees", employeesAd.getLastLoginOrg() + ".employees.sysuser.info", sysUserMQDto); - }else{ + } else { //原账号冻结,也需要初始化 SysUserMQDto sysUserMQDto = new SysUserMQDto(); sysUserMQDto.setEmployeeId(dto.getEmployeeId()); @@ -319,20 +320,25 @@ public class EmployeesMQListener { //增加机构邀请员工的消息通知 JSONObject orgInfo = sysBaseAPI.getOrgInfo(dto.getOrgCode()); String departName = orgInfo.getString("departName"); - WxNoticeEntity wxNoticeEntity = new WxNoticeEntity(); - wxNoticeEntity.setOpenId(dto.getOpenId()); - wxNoticeEntity.setIzRead("1"); - wxNoticeEntity.setOrgCode(dto.getOrgCode()); - wxNoticeEntity.setTitle("邀请加入"); - wxNoticeEntity.setContent("您好," + departName + "邀请您加入。"); - wxNoticeEntity.setType("emp_org_invited_emp_list"); + NuWxNoticeEntity nuWxNotice = new NuWxNoticeEntity(); + nuWxNotice.setOpenId(dto.getOpenId()); + nuWxNotice.setIzRead("1"); + nuWxNotice.setOrgCode(dto.getOrgCode()); + nuWxNotice.setTitle("邀请加入"); + nuWxNotice.setContent("您好,【" + departName + " 机构】诚挚向您发出入驻邀请,诚盼您的加入。请您前往【入驻机构】页面,完成【接受】或【拒绝】操作,感谢您的关注!"); + nuWxNotice.setType("emp_org_invited_emp_list"); Map extend = Maps.newHashMap(); extend.put("dataId", employeesOrg.getId()); - wxNoticeEntity.setExtend(JSONObject.toJSONString(extend)); - wxNoticeEntity.setClientType(WxClientType.EMPLOYEE.getCode()); - wxNoticeApi.addNotice(wxNoticeEntity); + nuWxNotice.setExtend(JSONObject.toJSONString(extend)); + nuWxNotice.setClientType(WxClientType.EMPLOYEE.getCode()); + wxNoticeApi.addNotice(nuWxNotice); - wxNoticeApi.sendWechartMinMessage(wxNoticeEntity); + WxNoticeEntity wxNotice = new WxNoticeEntity(); + wxNotice.setPageRoute("pages/yuangongindex/index");//跳转员工首页 + wxNotice.setThing1(departName); + wxNotice.setThing4("请及时参加邀约哦"); + wxNotice.setLogMainInfo("机构邀请员工"); + wxNoticeApi.sendWechartMessage_YAOYUE(wxNotice, nuWxNotice); } @@ -420,24 +426,32 @@ public class EmployeesMQListener { } //增加机构邀请员工的消息通知 - WxNoticeEntity wxNoticeEntity = new WxNoticeEntity(); - wxNoticeEntity.setOpenId(dto.getOpenId()); - wxNoticeEntity.setIzRead("1"); - wxNoticeEntity.setOrgCode(dto.getOrgCode()); - wxNoticeEntity.setTitle("员工信息变更审批"); + NuWxNoticeEntity nuWxNotice = new NuWxNoticeEntity(); + nuWxNotice.setOpenId(dto.getOpenId()); + nuWxNotice.setIzRead("1"); + nuWxNotice.setOrgCode(dto.getOrgCode()); + nuWxNotice.setTitle("员工信息变更审批"); + String modifyResultStr = ""; if ("2".equals(dto.getModifyStatus())) { - wxNoticeEntity.setContent("您好,您提交的员工信息变更申请已通过"); + nuWxNotice.setContent("您好,您提交的员工信息变更申请已通过"); + modifyResultStr = "审核通过"; } if ("3".equals(dto.getModifyStatus())) { - wxNoticeEntity.setContent("您好,您提交的员工信息变更申请未通过"); + nuWxNotice.setContent("您好,您提交的员工信息变更申请未通过"); + modifyResultStr = "审核未通过"; } - wxNoticeEntity.setType("emp_info_update_list"); + nuWxNotice.setType("emp_info_update_list"); Map extend = Maps.newHashMap(); extend.put("orgCode", dto.getOrgCode()); extend.put("dataId", dto.getId()); - wxNoticeEntity.setExtend(JSONObject.toJSONString(extend)); - wxNoticeEntity.setClientType(WxClientType.EMPLOYEE.getCode()); - wxNoticeApi.addNotice(wxNoticeEntity); - wxNoticeApi.sendWechartMinMessage(wxNoticeEntity); + nuWxNotice.setExtend(JSONObject.toJSONString(extend)); + nuWxNotice.setClientType(WxClientType.EMPLOYEE.getCode()); + wxNoticeApi.addNotice(nuWxNotice); + WxNoticeEntity wxNotice = new WxNoticeEntity(); + wxNotice.setPageRoute("pages/yuangongindex/index"); + wxNotice.setThing1("员工信息变更审核"); + wxNotice.setThing4(modifyResultStr); + wxNotice.setLogMainInfo("员工信息变更审核"); + wxNoticeApi.sendWechartMessage_SHENHE(wxNotice, nuWxNotice); } } diff --git a/nursing-unit-api/src/main/java/com/nu/modules/wechat/notice/WxNoticeApi.java b/nursing-unit-api/src/main/java/com/nu/modules/wechat/notice/WxNoticeApi.java index d6df0a9..3fd3aff 100644 --- a/nursing-unit-api/src/main/java/com/nu/modules/wechat/notice/WxNoticeApi.java +++ b/nursing-unit-api/src/main/java/com/nu/modules/wechat/notice/WxNoticeApi.java @@ -1,6 +1,6 @@ package com.nu.modules.wechat.notice; -import com.nu.entity.WxNoticeEntity; +import com.nu.entity.NuWxNoticeEntity; import com.nu.modules.wxnotice.IWxNoticeApi; import org.jeecg.common.api.vo.Result; import org.springframework.beans.factory.annotation.Autowired; @@ -39,7 +39,7 @@ public class WxNoticeApi { @RequestParam(value = "openId") String openId, @RequestParam(value = "clientType") String clientType) { - List query = wxNoticeApi.query(pageNo, pageSize, openId, clientType); + List query = wxNoticeApi.query(pageNo, pageSize, openId, clientType); return Result.ok(query); } @@ -50,7 +50,7 @@ public class WxNoticeApi { * @return */ @PostMapping("/upRead") - public Result upRead(@RequestBody WxNoticeEntity dto) { + public Result upRead(@RequestBody NuWxNoticeEntity dto) { wxNoticeApi.upRead(dto); return Result.ok(); } diff --git a/nursing-unit-common/src/main/java/com/nu/entity/NuWxNoticeEntity.java b/nursing-unit-common/src/main/java/com/nu/entity/NuWxNoticeEntity.java new file mode 100644 index 0000000..86002d9 --- /dev/null +++ b/nursing-unit-common/src/main/java/com/nu/entity/NuWxNoticeEntity.java @@ -0,0 +1,38 @@ +package com.nu.entity; + +import lombok.Data; + +import java.io.Serializable; +import java.util.Date; + +/** + * @Description: 小程序消息通知 + * @Author: jeecg-boot + * @Date: 2025-09-11 + * @Version: V1.0 + */ +@Data +public class NuWxNoticeEntity implements Serializable { + private static final long serialVersionUID = 1L; + + /**id*/ + private String id; + /**open_id微信openid*/ + private String openId; + /**机构编码*/ + private String orgCode; + /**通知类型 对应数据字典notice_type 在管理端能看到*/ + private String type; + /**标题*/ + private String title; + /**日期*/ + private Date createTime; + /**内容*/ + private String content; + /**是否已读 0已读 1未读*/ + private String izRead; + /**扩展json字符串*/ + private String extend; + /**1机构端 2员工端 3家属端*/ + private String clientType; +} diff --git a/nursing-unit-common/src/main/java/com/nu/entity/WxNoticeEntity.java b/nursing-unit-common/src/main/java/com/nu/entity/WxNoticeEntity.java index b198ed1..2affe9c 100644 --- a/nursing-unit-common/src/main/java/com/nu/entity/WxNoticeEntity.java +++ b/nursing-unit-common/src/main/java/com/nu/entity/WxNoticeEntity.java @@ -6,33 +6,26 @@ import java.io.Serializable; import java.util.Date; /** - * @Description: 小程序消息通知 + * @Description: 微信官方通知参数信息 * @Author: jeecg-boot - * @Date: 2025-09-11 + * @Date: 2025-09-11 * @Version: V1.0 */ @Data public class WxNoticeEntity implements Serializable { private static final long serialVersionUID = 1L; - /**id*/ - private String id; - /**open_id微信openid*/ - private String openId; - /**机构编码*/ - private String orgCode; - /**通知类型 对应数据字典notice_type 在管理端能看到*/ - private String type; - /**标题*/ - private String title; - /**日期*/ - private Date createTime; - /**内容*/ - private String content; - /**是否已读 0已读 1未读*/ - private String izRead; - /**扩展json字符串*/ - private String extend; - /**1机构端 2员工端 3家属端*/ - private String clientType; + //跳转路由 + private String pageRoute; + + //用户邀约通知两个 + private String thing1; + private String thing4; + + //审核通知模板两个 + private String thing2; + private String phrase1; + + //日志备注主体信息 + private String logMainInfo; } diff --git a/nursing-unit-elder/nu-elder-biz/src/main/java/com/nu/mq/eldertag/listener/ElderTaggMQListener.java b/nursing-unit-elder/nu-elder-biz/src/main/java/com/nu/mq/eldertag/listener/ElderTaggMQListener.java index 765aab5..1ebf45b 100644 --- a/nursing-unit-elder/nu-elder-biz/src/main/java/com/nu/mq/eldertag/listener/ElderTaggMQListener.java +++ b/nursing-unit-elder/nu-elder-biz/src/main/java/com/nu/mq/eldertag/listener/ElderTaggMQListener.java @@ -9,6 +9,7 @@ import com.nu.dto.ElderInfoMQDto; import com.nu.dto.ElderTagAsyncMQDto; import com.nu.dto.ElderTagTypeMQDto; import com.nu.dto.StatusMQDto; +import com.nu.entity.NuWxNoticeEntity; import com.nu.entity.WxNoticeEntity; import com.nu.enums.MQStatus; import com.nu.enums.WxClientType; @@ -115,37 +116,47 @@ public class ElderTaggMQListener { elderInfoService.updateById(elderInfo); if ("jhr".equals(dto.getModifyType())) { //增加消息通知 - WxNoticeEntity wxNoticeEntity = new WxNoticeEntity(); - wxNoticeEntity.setOpenId(dto.getGuardianOpenId()); - wxNoticeEntity.setIzRead("1"); - wxNoticeEntity.setOrgCode(dto.getOrgCode()); - wxNoticeEntity.setTitle("监护人信息变更审批"); - wxNoticeEntity.setContent("您好,您提交的" + dto.getName() + "老人的家属信息变更申请已通过"); - wxNoticeEntity.setType("elder_jhr_info_update_list"); + NuWxNoticeEntity nuWxNotice = new NuWxNoticeEntity(); + nuWxNotice.setOpenId(dto.getGuardianOpenId()); + nuWxNotice.setIzRead("1"); + nuWxNotice.setOrgCode(dto.getOrgCode()); + nuWxNotice.setTitle("监护人信息变更审批"); + nuWxNotice.setContent("您好,您提交的" + dto.getName() + "老人的家属信息变更申请已通过"); + nuWxNotice.setType("elder_jhr_info_update_list"); Map extend = Maps.newHashMap(); extend.put("orgCode", dto.getOrgCode()); extend.put("dataId", dto.getId()); - wxNoticeEntity.setExtend(JSONObject.toJSONString(extend)); - wxNoticeEntity.setClientType(WxClientType.ELDER.getCode()); - wxNoticeApi.addNotice(wxNoticeEntity); - wxNoticeApi.sendWechartMinMessage(wxNoticeEntity); + nuWxNotice.setExtend(JSONObject.toJSONString(extend)); + nuWxNotice.setClientType(WxClientType.ELDER.getCode()); + wxNoticeApi.addNotice(nuWxNotice); + WxNoticeEntity wxNotice = new WxNoticeEntity(); + wxNotice.setPageRoute("pages/oldmanindex/index"); + wxNotice.setThing1("监护人信息变更审核"); + wxNotice.setThing4("审核通过"); + wxNotice.setLogMainInfo("监护人信息变更审核"); + wxNoticeApi.sendWechartMessage_SHENHE(wxNotice, nuWxNotice); } if ("zz".equals(dto.getModifyType())) { //增加消息通知 - WxNoticeEntity wxNoticeEntity = new WxNoticeEntity(); - wxNoticeEntity.setOpenId(dto.getGuardianOpenId()); - wxNoticeEntity.setIzRead("1"); - wxNoticeEntity.setOrgCode(dto.getOrgCode()); - wxNoticeEntity.setTitle("长者信息变更审批"); - wxNoticeEntity.setContent("您好,您提交的" + dto.getName() + "老人信息变更申请已通过"); - wxNoticeEntity.setType("elder_info_update_list"); + NuWxNoticeEntity nuWxNotice = new NuWxNoticeEntity(); + nuWxNotice.setOpenId(dto.getGuardianOpenId()); + nuWxNotice.setIzRead("1"); + nuWxNotice.setOrgCode(dto.getOrgCode()); + nuWxNotice.setTitle("长者信息变更审批"); + nuWxNotice.setContent("您好,您提交的" + dto.getName() + "长者信息变更申请已通过"); + nuWxNotice.setType("elder_info_update_list"); Map extend = Maps.newHashMap(); extend.put("orgCode", dto.getOrgCode()); extend.put("dataId", dto.getId()); - wxNoticeEntity.setExtend(JSONObject.toJSONString(extend)); - wxNoticeEntity.setClientType(WxClientType.ELDER.getCode()); - wxNoticeApi.addNotice(wxNoticeEntity); - wxNoticeApi.sendWechartMinMessage(wxNoticeEntity); + nuWxNotice.setExtend(JSONObject.toJSONString(extend)); + nuWxNotice.setClientType(WxClientType.ELDER.getCode()); + wxNoticeApi.addNotice(nuWxNotice); + WxNoticeEntity wxNotice = new WxNoticeEntity(); + wxNotice.setPageRoute("pages/oldmanindex/index"); + wxNotice.setThing1("长者信息变更审核"); + wxNotice.setThing4("审核通过"); + wxNotice.setLogMainInfo("长者信息变更审核"); + wxNoticeApi.sendWechartMessage_SHENHE(wxNotice, nuWxNotice); } } @@ -157,20 +168,25 @@ public class ElderTaggMQListener { elderInfo.setGuardianModifyContent(dto.getGuardianModifyContent());//监护人审批不通过原因 elderInfoService.updateById(elderInfo); //增加消息通知 - WxNoticeEntity wxNoticeEntity = new WxNoticeEntity(); - wxNoticeEntity.setOpenId(dto.getGuardianOpenId()); - wxNoticeEntity.setIzRead("1"); - wxNoticeEntity.setOrgCode(dto.getOrgCode()); - wxNoticeEntity.setTitle("监护人信息变更审批"); - wxNoticeEntity.setContent("您好,您提交的" + dto.getName() + "老人的家属信息变更申请未通过"); - wxNoticeEntity.setType("elder_jhr_info_update_list"); + NuWxNoticeEntity nuWxNotice = new NuWxNoticeEntity(); + nuWxNotice.setOpenId(dto.getGuardianOpenId()); + nuWxNotice.setIzRead("1"); + nuWxNotice.setOrgCode(dto.getOrgCode()); + nuWxNotice.setTitle("监护人信息变更审批"); + nuWxNotice.setContent("您好,您提交的" + dto.getName() + "老人的家属信息变更申请未通过"); + nuWxNotice.setType("elder_jhr_info_update_list"); Map extend = Maps.newHashMap(); extend.put("orgCode", dto.getOrgCode()); extend.put("dataId", dto.getId()); - wxNoticeEntity.setExtend(JSONObject.toJSONString(extend)); - wxNoticeEntity.setClientType(WxClientType.ELDER.getCode()); - wxNoticeApi.addNotice(wxNoticeEntity); - wxNoticeApi.sendWechartMinMessage(wxNoticeEntity); + nuWxNotice.setExtend(JSONObject.toJSONString(extend)); + nuWxNotice.setClientType(WxClientType.ELDER.getCode()); + wxNoticeApi.addNotice(nuWxNotice); + WxNoticeEntity wxNotice = new WxNoticeEntity(); + wxNotice.setPageRoute("pages/oldmanindex/index"); + wxNotice.setThing1("监护人信息变更审核"); + wxNotice.setThing4("审核未通过"); + wxNotice.setLogMainInfo("监护人信息变更审核"); + wxNoticeApi.sendWechartMessage_SHENHE(wxNotice, nuWxNotice); } if ("zz".equals(dto.getModifyType())) { ElderInfo elderInfo = new ElderInfo(); @@ -179,20 +195,25 @@ public class ElderTaggMQListener { elderInfo.setElderModifyContent(dto.getElderModifyContent());//长者审批不通过原因 elderInfoService.updateById(elderInfo); //增加消息通知 - WxNoticeEntity wxNoticeEntity = new WxNoticeEntity(); - wxNoticeEntity.setOpenId(dto.getGuardianOpenId()); - wxNoticeEntity.setIzRead("1"); - wxNoticeEntity.setOrgCode(dto.getOrgCode()); - wxNoticeEntity.setTitle("长者信息变更审批"); - wxNoticeEntity.setContent("您好,您提交的" + dto.getName() + "老人信息变更申请未通过"); - wxNoticeEntity.setType("elder_info_update_list"); + NuWxNoticeEntity nuWxNotice = new NuWxNoticeEntity(); + nuWxNotice.setOpenId(dto.getGuardianOpenId()); + nuWxNotice.setIzRead("1"); + nuWxNotice.setOrgCode(dto.getOrgCode()); + nuWxNotice.setTitle("长者信息变更审批"); + nuWxNotice.setContent("您好,您提交的" + dto.getName() + "长者信息变更申请未通过"); + nuWxNotice.setType("elder_info_update_list"); Map extend = Maps.newHashMap(); extend.put("orgCode", dto.getOrgCode()); extend.put("dataId", dto.getId()); - wxNoticeEntity.setExtend(JSONObject.toJSONString(extend)); - wxNoticeEntity.setClientType(WxClientType.ELDER.getCode()); - wxNoticeApi.addNotice(wxNoticeEntity); - wxNoticeApi.sendWechartMinMessage(wxNoticeEntity); + nuWxNotice.setExtend(JSONObject.toJSONString(extend)); + nuWxNotice.setClientType(WxClientType.ELDER.getCode()); + wxNoticeApi.addNotice(nuWxNotice); + WxNoticeEntity wxNotice = new WxNoticeEntity(); + wxNotice.setPageRoute("pages/oldmanindex/index"); + wxNotice.setThing1("长者信息变更审核"); + wxNotice.setThing4("审核未通过"); + wxNotice.setLogMainInfo("长者信息变更审核"); + wxNoticeApi.sendWechartMessage_SHENHE(wxNotice, nuWxNotice); } } } diff --git a/nursing-unit-system/nu-system-start/src/main/resources/application-dev.yml b/nursing-unit-system/nu-system-start/src/main/resources/application-dev.yml index d3db9a5..1f0121e 100644 --- a/nursing-unit-system/nu-system-start/src/main/resources/application-dev.yml +++ b/nursing-unit-system/nu-system-start/src/main/resources/application-dev.yml @@ -371,8 +371,8 @@ justauth: aliyun: ocr: # 滕 - accessKeyId: LTAI5tBREjXcTV54bhZu2eXx - accessKeySecret: ETmm0DE6kI6FM5B5wpUwxfNapv4Fr8 + accessKeyId: LTAI5tJxmaqyXSG1T8Q6PSE9 + accessKeySecret: baBJyQOvph6dVugiSnx3tsiEuJeMy3 # 君 # accessKeyId: LTAI5tJxmaqyXSG1T8Q6PSE9 # accessKeySecret: baBJyQOvph6dVugiSnx3tsiEuJeMy3