yzc 1 жил өмнө
parent
commit
c5ecf38930

+ 79 - 79
hx-common/src/main/java/com/fjhx/common/controller/send/SendMegController.java

@@ -1,79 +1,79 @@
-package com.fjhx.common.controller.send;
-
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.fjhx.common.entity.send.dto.SendMegDto;
-import com.fjhx.common.entity.send.dto.SendMegSelectDto;
-import com.fjhx.common.entity.send.vo.SendMegVo;
-import com.fjhx.common.service.send.SendMegService;
-import com.ruoyi.common.core.domain.BaseSelectDto;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.scheduling.annotation.EnableScheduling;
-import org.springframework.scheduling.annotation.Scheduled;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
-
-
-/**
- * <p>
- * 前端控制器
- * </p>
- *
- * @author
- * @since 2023-05-22
- */
-@EnableScheduling
-@RestController
-@RequestMapping("/sendMeg")
-public class SendMegController {
-
-    @Autowired
-    private SendMegService sendMegService;
-
-    /**
-     * 分页
-     */
-    @PostMapping("/page")
-    public Page<SendMegVo> page(@RequestBody SendMegSelectDto dto) {
-        return sendMegService.getPage(dto);
-    }
-
-    /**
-     * 明细
-     */
-    @PostMapping("/detail")
-    public SendMegVo detail(@RequestBody BaseSelectDto dto) {
-        return sendMegService.detail(dto.getId());
-    }
-
-    /**
-     * 新增
-     */
-    @PostMapping("/add")
-    public void add(@RequestBody SendMegDto sendMegDto) {
-        sendMegService.add(sendMegDto);
-    }
-
-    /**
-     * 编辑
-     */
-    @PostMapping("/edit")
-    public void edit(@RequestBody SendMegDto sendMegDto) {
-        sendMegService.edit(sendMegDto);
-    }
-
-    /**
-     * 删除
-     */
-    @PostMapping("/delete")
-    public void delete(@RequestBody BaseSelectDto dto) {
-        sendMegService.delete(dto.getId());
-    }
-
-    @Scheduled(cron = "0 0/1 *  * * ? ")   // 每1分钟执行一次
-    public void execute() {
-        sendMegService.executeSend();
-    }
-
-}
+//package com.fjhx.common.controller.send;
+//
+//import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+//import com.fjhx.common.entity.send.dto.SendMegDto;
+//import com.fjhx.common.entity.send.dto.SendMegSelectDto;
+//import com.fjhx.common.entity.send.vo.SendMegVo;
+//import com.fjhx.common.service.send.SendMegService;
+//import com.ruoyi.common.core.domain.BaseSelectDto;
+//import org.springframework.beans.factory.annotation.Autowired;
+//import org.springframework.scheduling.annotation.EnableScheduling;
+//import org.springframework.scheduling.annotation.Scheduled;
+//import org.springframework.web.bind.annotation.PostMapping;
+//import org.springframework.web.bind.annotation.RequestBody;
+//import org.springframework.web.bind.annotation.RequestMapping;
+//import org.springframework.web.bind.annotation.RestController;
+//
+//
+///**
+// * <p>
+// * 前端控制器
+// * </p>
+// *
+// * @author
+// * @since 2023-05-22
+// */
+//@EnableScheduling
+//@RestController
+//@RequestMapping("/sendMeg")
+//public class SendMegController {
+//
+//    @Autowired
+//    private SendMegService sendMegService;
+//
+//    /**
+//     * 分页
+//     */
+//    @PostMapping("/page")
+//    public Page<SendMegVo> page(@RequestBody SendMegSelectDto dto) {
+//        return sendMegService.getPage(dto);
+//    }
+//
+//    /**
+//     * 明细
+//     */
+//    @PostMapping("/detail")
+//    public SendMegVo detail(@RequestBody BaseSelectDto dto) {
+//        return sendMegService.detail(dto.getId());
+//    }
+//
+//    /**
+//     * 新增
+//     */
+//    @PostMapping("/add")
+//    public void add(@RequestBody SendMegDto sendMegDto) {
+//        sendMegService.add(sendMegDto);
+//    }
+//
+//    /**
+//     * 编辑
+//     */
+//    @PostMapping("/edit")
+//    public void edit(@RequestBody SendMegDto sendMegDto) {
+//        sendMegService.edit(sendMegDto);
+//    }
+//
+//    /**
+//     * 删除
+//     */
+//    @PostMapping("/delete")
+//    public void delete(@RequestBody BaseSelectDto dto) {
+//        sendMegService.delete(dto.getId());
+//    }
+//
+//    @Scheduled(cron = "0 0/1 *  * * ? ")   // 每1分钟执行一次
+//    public void execute() {
+//        sendMegService.executeSend();
+//    }
+//
+//}

+ 43 - 0
hx-common/src/main/java/com/fjhx/common/enums/PushBusinessTypeEnum.java

@@ -0,0 +1,43 @@
+package com.fjhx.common.enums;
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+/**
+ * 推送业务类型
+ */
+@Getter
+@AllArgsConstructor
+public enum PushBusinessTypeEnum {
+    /**
+     * 流程专用
+     */
+    FLOW(0),
+    /**
+     * 未读日报
+     */
+    UNREAD_DAILY(1),
+    /**
+     * 发布日志
+     */
+    RELEASE_LOG(2),
+    /**
+     * 分享日报
+     */
+    SHARE_DAILY(3),
+    /**
+     * 日程提醒
+     */
+    SCHEDULE_REMINDER(4),
+    /**
+     * 到账
+     */
+    TO_THE_ACCOUNT(5),
+    /**
+     * 异常处理
+     */
+    EXCEPTION_HANDLING(6);
+
+    private final int type;
+
+}

+ 26 - 26
hx-common/src/main/java/com/fjhx/common/mapper/send/SendMegMapper.java

@@ -1,26 +1,26 @@
-package com.fjhx.common.mapper.send;
-
-import com.fjhx.common.entity.send.po.SendMeg;
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.fjhx.common.entity.send.vo.SendMegVo;
-import com.ruoyi.common.utils.wrapper.IWrapper;
-import org.apache.ibatis.annotations.Param;
-
-
-/**
- * <p>
- *  Mapper 接口
- * </p>
- *
- * @author 
- * @since 2023-05-22
- */
-public interface SendMegMapper extends BaseMapper<SendMeg> {
-
-    /**
-     * 分页
-     */
-    Page<SendMegVo> getPage(@Param("page") Page<Object> page, @Param("ew") IWrapper<SendMeg> wrapper);
-
-}
+//package com.fjhx.common.mapper.send;
+//
+//import com.fjhx.common.entity.send.po.SendMeg;
+//import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+//import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+//import com.fjhx.common.entity.send.vo.SendMegVo;
+//import com.ruoyi.common.utils.wrapper.IWrapper;
+//import org.apache.ibatis.annotations.Param;
+//
+//
+///**
+// * <p>
+// *  Mapper 接口
+// * </p>
+// *
+// * @author
+// * @since 2023-05-22
+// */
+//public interface SendMegMapper extends BaseMapper<SendMeg> {
+//
+//    /**
+//     * 分页
+//     */
+//    Page<SendMegVo> getPage(@Param("page") Page<Object> page, @Param("ew") IWrapper<SendMeg> wrapper);
+//
+//}

+ 55 - 55
hx-common/src/main/java/com/fjhx/common/service/send/SendMegService.java

@@ -1,55 +1,55 @@
-package com.fjhx.common.service.send;
-
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.fjhx.common.entity.send.dto.SendMegDto;
-import com.fjhx.common.entity.send.dto.SendMegSelectDto;
-import com.fjhx.common.entity.send.po.SendMeg;
-import com.fjhx.common.entity.send.vo.SendMegVo;
-import com.ruoyi.common.core.service.BaseService;
-
-
-/**
- * <p>
- * 服务类
- * </p>
- *
- * @author
- * @since 2023-05-22
- */
-public interface SendMegService extends BaseService<SendMeg> {
-
-    /**
-     * 分页
-     */
-    Page<SendMegVo> getPage(SendMegSelectDto dto);
-
-    /**
-     * 明细
-     */
-    SendMegVo detail(Long id);
-
-    /**
-     * 新增
-     */
-    void add(SendMegDto sendMegDto);
-
-    /**
-     * 编辑
-     */
-    void edit(SendMegDto sendMegDto);
-
-    /**
-     * 删除
-     */
-    void delete(Long id);
-
-    /**
-     * 推送数据
-     */
-    void send(SendMeg sendMeg);
-
-
-    void executeSend();
-
-
-}
+//package com.fjhx.common.service.send;
+//
+//import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+//import com.fjhx.common.entity.send.dto.SendMegDto;
+//import com.fjhx.common.entity.send.dto.SendMegSelectDto;
+//import com.fjhx.common.entity.send.po.SendMeg;
+//import com.fjhx.common.entity.send.vo.SendMegVo;
+//import com.ruoyi.common.core.service.BaseService;
+//
+//
+///**
+// * <p>
+// * 服务类
+// * </p>
+// *
+// * @author
+// * @since 2023-05-22
+// */
+//public interface SendMegService extends BaseService<SendMeg> {
+//
+//    /**
+//     * 分页
+//     */
+//    Page<SendMegVo> getPage(SendMegSelectDto dto);
+//
+//    /**
+//     * 明细
+//     */
+//    SendMegVo detail(Long id);
+//
+//    /**
+//     * 新增
+//     */
+//    void add(SendMegDto sendMegDto);
+//
+//    /**
+//     * 编辑
+//     */
+//    void edit(SendMegDto sendMegDto);
+//
+//    /**
+//     * 删除
+//     */
+//    void delete(Long id);
+//
+//    /**
+//     * 推送数据
+//     */
+//    void send(SendMeg sendMeg);
+//
+//
+//    void executeSend();
+//
+//
+//}

+ 166 - 166
hx-common/src/main/java/com/fjhx/common/service/send/impl/SendMegServiceImpl.java

@@ -1,166 +1,166 @@
-package com.fjhx.common.service.send.impl;
-
-import cn.hutool.core.bean.BeanUtil;
-import cn.hutool.core.convert.Convert;
-import cn.hutool.core.date.DateUtil;
-import com.baomidou.dynamic.datasource.toolkit.DynamicDataSourceContextHolder;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.fjhx.common.constant.SourceConstant;
-import com.fjhx.common.entity.send.dto.SendMegDto;
-import com.fjhx.common.entity.send.dto.SendMegSelectDto;
-import com.fjhx.common.entity.send.po.SendMeg;
-import com.fjhx.common.entity.send.vo.SendMegVo;
-import com.fjhx.common.mapper.send.SendMegMapper;
-import com.fjhx.common.service.send.SendMegService;
-import com.fjhx.socket.entity.MessageEntity;
-import com.fjhx.socket.event.WebSocketUserOfflineEvent;
-import com.fjhx.socket.service.WebSocketServer;
-import com.ruoyi.common.constant.StatusConstant;
-import com.ruoyi.common.core.domain.entity.SysUser;
-import com.ruoyi.common.core.redis.RedisCache;
-import com.ruoyi.common.utils.wrapper.IWrapper;
-import com.ruoyi.framework.mybatis.holder.TenantHolder;
-import com.ruoyi.system.service.ISysUserService;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.context.event.EventListener;
-import org.springframework.stereotype.Service;
-
-import java.util.Date;
-import java.util.List;
-import java.util.Set;
-
-
-/**
- * <p>
- * 服务实现类
- * </p>
- *
- * @author
- * @since 2023-05-22
- */
-@Slf4j
-@Service
-public class SendMegServiceImpl extends ServiceImpl<SendMegMapper, SendMeg> implements SendMegService {
-
-    @Autowired
-    private ISysUserService sysUserService;
-
-    @Autowired
-    private RedisCache redisCache;
-
-    private static final String sendMessageKey = "sendMessage:";
-
-    @Override
-    public Page<SendMegVo> getPage(SendMegSelectDto dto) {
-        IWrapper<SendMeg> wrapper = getWrapper();
-        wrapper.eq("sm", SendMeg::getType, dto.getType());
-        wrapper.eq("sm", SendMeg::getStatus, dto.getStatus());
-        wrapper.orderByAsc("sm", SendMeg::getStatus);
-        wrapper.orderByDesc("sm", SendMeg::getId);
-        Page<SendMegVo> page = this.baseMapper.getPage(dto.getPage(), wrapper);
-        return page;
-    }
-
-    @Override
-    public SendMegVo detail(Long id) {
-        SendMeg SendMeg = this.getById(id);
-        SendMegVo result = BeanUtil.toBean(SendMeg, SendMegVo.class);
-        return result;
-    }
-
-    @Override
-    public void add(SendMegDto sendMegDto) {
-        Date sendTime = sendMegDto.getSendTime();
-        if (sendTime.before(DateUtil.endOfMinute(new Date()))) {
-            sendMegDto.setStatus(StatusConstant.YES);
-            new Thread(() -> send(sendMegDto)).start();
-        } else {
-            sendMegDto.setStatus(StatusConstant.NO);
-        }
-
-        this.save(sendMegDto);
-    }
-
-    @Override
-    public void edit(SendMegDto sendMegDto) {
-        sendMegDto.setStatus(StatusConstant.YES);
-        this.updateById(sendMegDto);
-    }
-
-    @Override
-    public void delete(Long id) {
-        this.removeById(id);
-    }
-
-    @Override
-    public synchronized void send(SendMeg sendMeg) {
-        DynamicDataSourceContextHolder.push(SourceConstant.BASE);
-        TenantHolder.setIgnore(true);
-        List<SysUser> list = sysUserService.list();
-        DynamicDataSourceContextHolder.poll();
-
-        for (SysUser sysUser : list) {
-            WebSocketServer.sendInfo(sysUser.getUserId(), 0, sendMeg);
-        }
-
-    }
-
-    @Override
-    public void executeSend() {
-
-        Set<String> scan = redisCache.scan(sendMessageKey + "**");
-        for (String key : scan) {
-            String[] split = key.split(":");
-            if (split.length != 3) {
-                return;
-            }
-            String userIdStr = split[2];
-            Long userId = Convert.toLong(userIdStr);
-            if (userId == null) {
-                return;
-            }
-
-            try {
-                SendMeg cacheObject = redisCache.getCacheObject(key);
-                redisCache.deleteObject(key);
-                WebSocketServer.sendInfo(userId, 0, cacheObject);
-            } catch (Exception e) {
-                log.error("推送异常", e);
-            }
-
-        }
-
-
-        List<SendMeg> list = list(q -> q
-                .eq(SendMeg::getStatus, StatusConstant.NO)
-                .le(SendMeg::getSendTime, DateUtil.endOfMinute(new Date())));
-
-        for (SendMeg sendMeg : list) {
-            send(sendMeg);
-            sendMeg.setStatus(StatusConstant.YES);
-        }
-        updateBatchById(list);
-
-    }
-
-    @EventListener
-    public void userOfflineEvent(WebSocketUserOfflineEvent webSocketUserOfflineEvent) {
-        MessageEntity messageEntity = webSocketUserOfflineEvent.getMessageEntity();
-
-        Object data = messageEntity.getData();
-
-        if (messageEntity.getType() != 0 || !(data instanceof SendMeg)) {
-            return;
-        }
-
-        String key = sendMessageKey + ((SendMeg) data).getId() + ":" + messageEntity.getUserId();
-        if (((SendMeg) data).getEndTime().after(new Date())) {
-            redisCache.setCacheObject(key, data);
-        }
-
-    }
-
-
-}
+//package com.fjhx.common.service.send.impl;
+//
+//import cn.hutool.core.bean.BeanUtil;
+//import cn.hutool.core.convert.Convert;
+//import cn.hutool.core.date.DateUtil;
+//import com.baomidou.dynamic.datasource.toolkit.DynamicDataSourceContextHolder;
+//import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+//import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+//import com.fjhx.common.constant.SourceConstant;
+//import com.fjhx.common.entity.send.dto.SendMegDto;
+//import com.fjhx.common.entity.send.dto.SendMegSelectDto;
+//import com.fjhx.common.entity.send.po.SendMeg;
+//import com.fjhx.common.entity.send.vo.SendMegVo;
+//import com.fjhx.common.mapper.send.SendMegMapper;
+//import com.fjhx.common.service.send.SendMegService;
+//import com.fjhx.socket.entity.MessageEntity;
+//import com.fjhx.socket.event.WebSocketUserOfflineEvent;
+//import com.fjhx.socket.service.WebSocketServer;
+//import com.ruoyi.common.constant.StatusConstant;
+//import com.ruoyi.common.core.domain.entity.SysUser;
+//import com.ruoyi.common.core.redis.RedisCache;
+//import com.ruoyi.common.utils.wrapper.IWrapper;
+//import com.ruoyi.framework.mybatis.holder.TenantHolder;
+//import com.ruoyi.system.service.ISysUserService;
+//import lombok.extern.slf4j.Slf4j;
+//import org.springframework.beans.factory.annotation.Autowired;
+//import org.springframework.context.event.EventListener;
+//import org.springframework.stereotype.Service;
+//
+//import java.util.Date;
+//import java.util.List;
+//import java.util.Set;
+//
+//
+///**
+// * <p>
+// * 服务实现类
+// * </p>
+// *
+// * @author
+// * @since 2023-05-22
+// */
+//@Slf4j
+//@Service
+//public class SendMegServiceImpl extends ServiceImpl<SendMegMapper, SendMeg> implements SendMegService {
+//
+//    @Autowired
+//    private ISysUserService sysUserService;
+//
+//    @Autowired
+//    private RedisCache redisCache;
+//
+//    private static final String sendMessageKey = "sendMessage:";
+//
+//    @Override
+//    public Page<SendMegVo> getPage(SendMegSelectDto dto) {
+//        IWrapper<SendMeg> wrapper = getWrapper();
+//        wrapper.eq("sm", SendMeg::getType, dto.getType());
+//        wrapper.eq("sm", SendMeg::getStatus, dto.getStatus());
+//        wrapper.orderByAsc("sm", SendMeg::getStatus);
+//        wrapper.orderByDesc("sm", SendMeg::getId);
+//        Page<SendMegVo> page = this.baseMapper.getPage(dto.getPage(), wrapper);
+//        return page;
+//    }
+//
+//    @Override
+//    public SendMegVo detail(Long id) {
+//        SendMeg SendMeg = this.getById(id);
+//        SendMegVo result = BeanUtil.toBean(SendMeg, SendMegVo.class);
+//        return result;
+//    }
+//
+//    @Override
+//    public void add(SendMegDto sendMegDto) {
+//        Date sendTime = sendMegDto.getSendTime();
+//        if (sendTime.before(DateUtil.endOfMinute(new Date()))) {
+//            sendMegDto.setStatus(StatusConstant.YES);
+//            new Thread(() -> send(sendMegDto)).start();
+//        } else {
+//            sendMegDto.setStatus(StatusConstant.NO);
+//        }
+//
+//        this.save(sendMegDto);
+//    }
+//
+//    @Override
+//    public void edit(SendMegDto sendMegDto) {
+//        sendMegDto.setStatus(StatusConstant.YES);
+//        this.updateById(sendMegDto);
+//    }
+//
+//    @Override
+//    public void delete(Long id) {
+//        this.removeById(id);
+//    }
+//
+//    @Override
+//    public synchronized void send(SendMeg sendMeg) {
+//        DynamicDataSourceContextHolder.push(SourceConstant.BASE);
+//        TenantHolder.setIgnore(true);
+//        List<SysUser> list = sysUserService.list();
+//        DynamicDataSourceContextHolder.poll();
+//
+//        for (SysUser sysUser : list) {
+//            WebSocketServer.sendInfo(sysUser.getUserId(), 0, sendMeg);
+//        }
+//
+//    }
+//
+//    @Override
+//    public void executeSend() {
+//
+//        Set<String> scan = redisCache.scan(sendMessageKey + "**");
+//        for (String key : scan) {
+//            String[] split = key.split(":");
+//            if (split.length != 3) {
+//                return;
+//            }
+//            String userIdStr = split[2];
+//            Long userId = Convert.toLong(userIdStr);
+//            if (userId == null) {
+//                return;
+//            }
+//
+//            try {
+//                SendMeg cacheObject = redisCache.getCacheObject(key);
+//                redisCache.deleteObject(key);
+//                WebSocketServer.sendInfo(userId, 0, cacheObject);
+//            } catch (Exception e) {
+//                log.error("推送异常", e);
+//            }
+//
+//        }
+//
+//
+//        List<SendMeg> list = list(q -> q
+//                .eq(SendMeg::getStatus, StatusConstant.NO)
+//                .le(SendMeg::getSendTime, DateUtil.endOfMinute(new Date())));
+//
+//        for (SendMeg sendMeg : list) {
+//            send(sendMeg);
+//            sendMeg.setStatus(StatusConstant.YES);
+//        }
+//        updateBatchById(list);
+//
+//    }
+//
+//    @EventListener
+//    public void userOfflineEvent(WebSocketUserOfflineEvent webSocketUserOfflineEvent) {
+//        MessageEntity messageEntity = webSocketUserOfflineEvent.getMessageEntity();
+//
+//        Object data = messageEntity.getData();
+//
+//        if (messageEntity.getType() != 0 || !(data instanceof SendMeg)) {
+//            return;
+//        }
+//
+//        String key = sendMessageKey + ((SendMeg) data).getId() + ":" + messageEntity.getUserId();
+//        if (((SendMeg) data).getEndTime().after(new Date())) {
+//            redisCache.setCacheObject(key, data);
+//        }
+//
+//    }
+//
+//
+//}

+ 11 - 2
hx-oa/src/main/java/com/fjhx/oa/service/daily/impl/DailyReportDetailsServiceImpl.java

@@ -4,11 +4,13 @@ import cn.hutool.core.bean.BeanUtil;
 import com.baomidou.dynamic.datasource.annotation.DS;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.fjhx.common.constant.SourceConstant;
+import com.fjhx.common.enums.PushBusinessTypeEnum;
 import com.fjhx.oa.entity.daily.po.DailyReportDetails;
 import com.fjhx.oa.entity.daily.vo.DailyReportDetailsVo;
 import com.fjhx.oa.mapper.daily.DailyReportDetailsMapper;
 import com.fjhx.oa.service.daily.DailyReportDetailsService;
-import com.fjhx.socket.service.WebSocketServer;
+import com.fjhx.socket.core.PushTypeEnum;
+import com.fjhx.socket.core.WebSocketPush;
 import com.ruoyi.system.utils.UserUtil;
 import org.springframework.stereotype.Service;
 
@@ -44,7 +46,14 @@ public class DailyReportDetailsServiceImpl extends ServiceImpl<DailyReportDetail
         msgMap.put("businessId", id);
         msgMap.put("msg", "您有未读的日报");
         for (DailyReportDetails dailyReportDetails : list) {
-            WebSocketServer.sendInfo(dailyReportDetails.getRecipientId(), 1, msgMap);
+//            WebSocketServer.sendInfo(dailyReportDetails.getRecipientId(), 1, msgMap);
+            WebSocketPush.byUser(
+                    PushTypeEnum.MESSAGE,
+                    dailyReportDetails.getRecipientId(),
+                    "您有未读的日报",
+                    PushBusinessTypeEnum.UNREAD_DAILY.getType(),
+                    msgMap
+            );
         }
     }
 }

+ 19 - 4
hx-oa/src/main/java/com/fjhx/oa/service/daily/impl/DailyReportServiceImpl.java

@@ -7,6 +7,7 @@ import com.baomidou.dynamic.datasource.annotation.DSTransactional;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.fjhx.common.constant.SourceConstant;
+import com.fjhx.common.enums.PushBusinessTypeEnum;
 import com.fjhx.file.utils.ObsFileUtil;
 import com.fjhx.oa.entity.daily.dto.DailyReportDto;
 import com.fjhx.oa.entity.daily.dto.DailyReportSelectDto;
@@ -17,7 +18,8 @@ import com.fjhx.oa.entity.daily.vo.DailyReportVo;
 import com.fjhx.oa.mapper.daily.DailyReportMapper;
 import com.fjhx.oa.service.daily.DailyReportDetailsService;
 import com.fjhx.oa.service.daily.DailyReportService;
-import com.fjhx.socket.service.WebSocketServer;
+import com.fjhx.socket.core.PushTypeEnum;
+import com.fjhx.socket.core.WebSocketPush;
 import com.ruoyi.common.constant.StatusConstant;
 import com.ruoyi.common.utils.SecurityUtils;
 import com.ruoyi.common.utils.wrapper.IWrapper;
@@ -120,8 +122,14 @@ public class DailyReportServiceImpl extends ServiceImpl<DailyReportMapper, Daily
         msgMap.put("businessId", dailyReportDto.getId());
         msgMap.put("msg", String.format("%s发布了新日志", userName));
         for (DailyReportDetails dailyReportDetails : dailyReportDetailsList) {
-            WebSocketServer.sendInfo(dailyReportDetails.getRecipientId(), 1, msgMap);
-        }
+//            WebSocketServer.sendInfo(dailyReportDetails.getRecipientId(), 1, msgMap);
+            WebSocketPush.byUser(
+                    PushTypeEnum.MESSAGE,
+                    dailyReportDetails.getRecipientId(),
+                    String.format("%s发布了新日志", userName),
+                    PushBusinessTypeEnum.RELEASE_LOG.getType(),
+                    msgMap
+            );        }
     }
 
     @DSTransactional
@@ -173,7 +181,14 @@ public class DailyReportServiceImpl extends ServiceImpl<DailyReportMapper, Daily
         msgMap.put("businessId", id);
         msgMap.put("msg", String.format("%s给你分享了日报", username));
         for (Long toUserId : toUserIdList) {
-            WebSocketServer.sendInfo(toUserId, 1, msgMap);
+//            WebSocketServer.sendInfo(toUserId, 1, msgMap);
+            WebSocketPush.byUser(
+                    PushTypeEnum.MESSAGE,
+                    toUserId,
+                    String.format("%s给你分享了日报", username),
+                    PushBusinessTypeEnum.SHARE_DAILY.getType(),
+                    msgMap
+            );
         }
     }
 

+ 14 - 3
hx-oa/src/main/java/com/fjhx/oa/utils/Notice.java

@@ -2,11 +2,13 @@ package com.fjhx.oa.utils;
 
 import cn.hutool.core.util.ObjectUtil;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.fjhx.common.enums.PushBusinessTypeEnum;
 import com.fjhx.oa.entity.schedule.po.ScheduleDetails;
 import com.fjhx.oa.entity.schedule.po.ScheduleInfo;
 import com.fjhx.oa.service.schedule.ScheduleDetailsService;
 import com.fjhx.oa.service.schedule.ScheduleInfoService;
-import com.fjhx.socket.service.WebSocketServer;
+import com.fjhx.socket.core.PushTypeEnum;
+import com.fjhx.socket.core.WebSocketPush;
 import com.ruoyi.framework.mybatis.holder.TenantHolder;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.context.annotation.Configuration;
@@ -85,14 +87,23 @@ public class Notice {
             List<Long> scheduleInfoIds = scheduleInfos.stream().map(ScheduleInfo::getId).collect(Collectors.toList());
             List<ScheduleDetails> scheduleDetailsList = scheduleDetailsService.list(q -> q.in(ScheduleDetails::getScheduleInfoId, scheduleInfoIds));
             for (ScheduleDetails scheduleDetails : scheduleDetailsList) {
-                //发送消息
+                // 发送消息
                 ScheduleInfo scheduleInfo = scheduleInfoMap1.get(scheduleDetails.getScheduleInfoId());
                 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
                 String msg = String.format("您的日程<%s>将于%s开始。", scheduleInfo.getTitle(), sdf.format(scheduleInfo.getStartDate()));
+
                 Map<String, Object> msgMap = new HashMap<>();
                 msgMap.put("businessId", scheduleInfo.getId());
                 msgMap.put("msg", msg);
-                WebSocketServer.sendInfo(scheduleDetails.getParticipantId(), 1, msgMap);
+                // WebSocketServer.sendInfo(scheduleDetails.getParticipantId(), 1, msgMap);
+
+                WebSocketPush.byUser(
+                        PushTypeEnum.PUSH_NOTIFICATION,
+                        scheduleDetails.getParticipantId(),
+                        msg,
+                        PushBusinessTypeEnum.SCHEDULE_REMINDER.getType(),
+                        msgMap
+                );
             }
         }
         TenantHolder.clear();

+ 16 - 7
hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/service/abnormal/impl/AbnormalDetailsServiceImpl.java

@@ -7,7 +7,9 @@ import com.baomidou.dynamic.datasource.annotation.DS;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.fjhx.common.constant.SourceConstant;
-import com.fjhx.socket.service.WebSocketServer;
+import com.fjhx.common.enums.PushBusinessTypeEnum;
+import com.fjhx.socket.core.PushTypeEnum;
+import com.fjhx.socket.core.WebSocketPush;
 import com.fjhx.victoriatourist.entity.abnormal.dto.AbnormalDetailsDto;
 import com.fjhx.victoriatourist.entity.abnormal.dto.AbnormalDetailsSelectDto;
 import com.fjhx.victoriatourist.entity.abnormal.po.AbnormalDetails;
@@ -16,7 +18,6 @@ import com.fjhx.victoriatourist.entity.abnormal.vo.AbnormalDetailsVo;
 import com.fjhx.victoriatourist.mapper.abnormal.AbnormalDetailsMapper;
 import com.fjhx.victoriatourist.service.abnormal.AbnormalDetailsService;
 import com.fjhx.victoriatourist.service.abnormal.AbnormalInfoService;
-import com.fjhx.victoriatourist.utils.CodeEnum;
 import com.obs.services.internal.ServiceException;
 import com.ruoyi.common.utils.wrapper.IWrapper;
 import com.ruoyi.system.utils.UserUtil;
@@ -76,11 +77,19 @@ public class AbnormalDetailsServiceImpl extends ServiceImpl<AbnormalDetailsMappe
 
         //如果下一跟进人不为空 就给下一跟进人发送消息
         if (ObjectUtil.isNotEmpty(abnormalDetailsDto.getNextHandleUser())) {
-            //给下一个跟进人发消息通知
-            JSONObject meassage = new JSONObject();
-            meassage.put("msg", "有异常需要您跟进");
-            meassage.put("abnormalInfoId", abnormalDetailsDto.getAbnormalInfoId().toString());
-            WebSocketServer.sendInfo(abnormalDetailsDto.getNextHandleUser(), 1, meassage);
+            // 给下一个跟进人发消息通知
+            JSONObject message = new JSONObject();
+            message.put("msg", "有异常需要您跟进");
+            message.put("abnormalInfoId", abnormalDetailsDto.getAbnormalInfoId().toString());
+            // WebSocketServer.sendInfo(abnormalDetailsDto.getNextHandleUser(), 1, message);
+
+            WebSocketPush.byUser(
+                    PushTypeEnum.PUSH_NOTIFICATION,
+                    abnormalDetailsDto.getNextHandleUser(),
+                    "有异常需要您跟进",
+                    PushBusinessTypeEnum.EXCEPTION_HANDLING.getType(),
+                    message
+            );
         }
 
         this.save(abnormalDetailsDto);