From 384f44311196e574607894e4e7540bf9e4361b6b Mon Sep 17 00:00:00 2001 From: furongxin <419481438@qq.com> Date: Sun, 22 Sep 2024 15:46:24 +0800 Subject: [PATCH] =?UTF-8?q?=E7=94=9F=E6=97=A5=E6=8F=90=E9=86=92=E4=BB=BB?= =?UTF-8?q?=E5=8A=A1=E5=A2=9E=E5=BC=BA=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 在生日提醒任务中,新增合同到期提醒功能。系统将检查当前日期,如果用户的合同到期,将通过订阅消息发送公司通知。同时,优化了生日提醒逻辑,现在可以直接传递用户列表,而不是角色ID,以提高处理效率。 此外,修正了正面提醒和生日提醒方法中错误的消息类型参数,确保现在发送的是统一的"formal"类型公司通知。 --- .../system/job/birthday/BirthdayJob.java | 66 +++++++++++++------ 1 file changed, 45 insertions(+), 21 deletions(-) diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/job/birthday/BirthdayJob.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/job/birthday/BirthdayJob.java index 5dd94110..1e49e5ce 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/job/birthday/BirthdayJob.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/job/birthday/BirthdayJob.java @@ -1,5 +1,6 @@ package cn.iocoder.yudao.module.system.job.birthday; +import cn.hutool.core.collection.CollectionUtil; import cn.hutool.json.JSONObject; import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils; import cn.iocoder.yudao.framework.tenant.core.job.TenantJob; @@ -66,17 +67,46 @@ public class BirthdayJob { // 获取提醒时长 Integer remindDuration = object.getInt("remindDuration"); + Set userIds = permissionService.getUserRoleIdListByRoleId(CollectionUtils.singleton(roleId)); + //获得用户组中 用户信息 + List userDOs = userService.getUserList(userIds); + // 生日提醒 - birthdayRemind(roleId); + birthdayRemind(userDOs); // 转正提醒 PositiveReminders(remindDuration); + + // 合同到期提醒 + ContractReminders(userDOs); } // 返回执行成功 return ReturnT.SUCCESS; } + /** + * 合同到期提醒 + */ + private void ContractReminders(List userDOs) { + + LocalDate now = LocalDate.now(); + List laborContractDOS = laborContractService.getListByEndTime(now); + if (CollectionUtil.isNotEmpty(laborContractDOS)) { + + // 修改合同状态为过期 + laborContractService.updateLaborContractList(convertList(laborContractDOS, LaborContractDO::getId), 2); + + for (AdminUserDO adminUserDO : userDOs) { + if( adminUserDO.getOpenId() != null && !adminUserDO.getOpenId().isEmpty()) { + + subscribeMessageSendApi.sendCompanyNotice(NoticeConvert.INSTANCE.convertBirthday( + "contract", adminUserDO.getOpenId(), "formal")); + } + } + } + } + /** * 转正提醒 */ @@ -99,8 +129,8 @@ public class BirthdayJob { for (AdminUserDO adminUserDO : positiveUserList) { if( adminUserDO.getOpenId() != null && !adminUserDO.getOpenId().isEmpty()) { - subscribeMessageSendApi.sendCompanyNotice(NoticeConvert.INSTANCE.convertRegular( - adminUserDO.getOpenId(), "formal")); + subscribeMessageSendApi.sendCompanyNotice(NoticeConvert.INSTANCE.convertBirthday( + "regular", adminUserDO.getOpenId(), "formal")); } } @@ -110,29 +140,23 @@ public class BirthdayJob { /** * 生日提醒 */ - private void birthdayRemind(Long roleId) { + private void birthdayRemind(List userDOs) { - if (roleId != null) { + String time = LocalDateTime.now().format(DateTimeFormatter.ofPattern("MM-dd")); + // -- 获取当天月日 生日的人员列表 + List list = adminUserMapper.selectList(new LambdaQueryWrapper() + .like(AdminUserDO::getBirthdayDay, time)); + if (!list.isEmpty()) { - String time = LocalDateTime.now().format(DateTimeFormatter.ofPattern("MM-dd")); - // -- 获取当天月日 生日的人员列表 - List list = adminUserMapper.selectList(new LambdaQueryWrapper() - .like(AdminUserDO::getBirthdayDay, time)); - if (!list.isEmpty()) { + for (AdminUserDO adminUserDO : userDOs) { + if( adminUserDO.getOpenId() != null && !adminUserDO.getOpenId().isEmpty()) { - Set userIds = permissionService.getUserRoleIdListByRoleId(CollectionUtils.singleton(roleId)); - //获得用户组中 用户信息 - List userDOs = userService.getUserList(userIds); - for (AdminUserDO adminUserDO : userDOs) { - if( adminUserDO.getOpenId() != null && !adminUserDO.getOpenId().isEmpty()) { - - subscribeMessageSendApi.sendCompanyNotice(NoticeConvert.INSTANCE.convertBirthday( - adminUserDO.getOpenId(), "formal")); - } + subscribeMessageSendApi.sendCompanyNotice(NoticeConvert.INSTANCE.convertBirthday( + "birthday", adminUserDO.getOpenId(), "formal")); } - - log.info("生日提醒,生日为{},人员为{}", time, convertList(list, AdminUserDO::getNickname)); } + + log.info("生日提醒,生日为{},人员为{}", time, convertList(list, AdminUserDO::getNickname)); } } }