超时通知

This commit is contained in:
nyoung 2024-09-05 11:10:20 +08:00
parent 3adaa2e822
commit a8b8408307

View File

@ -4,6 +4,11 @@ import cn.iocoder.yudao.module.appBase.domain.SysAnnouncement;
import cn.iocoder.yudao.module.appBase.service.ISysAnnouncementService;
import cn.iocoder.yudao.module.constant.UserConstants;
import cn.iocoder.yudao.module.rescue.dto.TaskDto;
import cn.iocoder.yudao.module.system.api.permission.dto.RoleReqDTO;
import cn.iocoder.yudao.module.system.dal.dataobject.permission.RoleDO;
import cn.iocoder.yudao.module.system.service.permission.PermissionService;
import cn.iocoder.yudao.module.system.service.permission.RoleService;
import cn.iocoder.yudao.module.system.service.user.AdminUserService;
import com.alibaba.fastjson.JSON;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
@ -16,6 +21,7 @@ import org.springframework.stereotype.Component;
import javax.annotation.PostConstruct;
import javax.annotation.Resource;
import java.util.Collections;
import java.util.List;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.TimeUnit;
@ -45,6 +51,10 @@ public class RedissonDelayQueue {
@Resource
private ISysAnnouncementService announcementService;
@Resource
private RoleService roleService;
@Resource
private PermissionService permissionService;
/**
* 初始化方法 Spring 容器加载后自动执行
@ -81,7 +91,20 @@ public class RedissonDelayQueue {
sysAnnouncement.setContent("有救援订单超时请立即处理");
announcementService.insertSysAnnouncements(sysAnnouncement);
// TODO 还要通知总调度
// 发送订单信息给其他人 经理 总调度 将这俩人指定 救援其他通知人 角色
RoleDO roleDO = roleService.queryRole("rescueOtherNotify");
if(null!=roleDO){
List<Long> userIds = permissionService.getUserIdByRoleId(roleDO.getId());
if(!userIds.isEmpty()){
// 发消息
SysAnnouncement otherAnnouncement = new SysAnnouncement();
otherAnnouncement.setType("救援超时信息");
otherAnnouncement.setToUserIds(userIds);
otherAnnouncement.setTitle("有救援订单超时请立即处理");
otherAnnouncement.setContent("有救援订单超时请立即处理");
announcementService.insertSysAnnouncements(otherAnnouncement);
}
}
/** 两个值虽然一样,但避免无法删除一直存在问题,干脆重新来过 */
// 移除原来的
@ -186,4 +209,4 @@ public class RedissonDelayQueue {
// 如果任何一个队列中移除成功则返回 true
return removedFromDelayed || removedFromBlocking;
}
}
}