基于jeecg-boot的OA日程安排开发(四)

简介: 基于jeecg-boot的OA日程安排开发(四)

还是需要进行改造,把es_receiver字段修改成1000,可以接收更多用“,”分开的用户串,这样可以进行多人处理,同时需要修改发送代码。

     

@Slf4j
public class WebMsgSendMsgHandle implements ISendMsgHandle {
  @Override
  public void SendMsg(String es_receiver, String es_title, String es_content, String es_fromuser) {
    log.info("WebMsgSendMsgHandle 发websocket消息");
    ISysBaseAPI sysBaseAPI = (ISysBaseAPI) SpringContextUtils.getBean(ISysBaseAPI.class);
    List<String> userlist = Arrays.asList(es_receiver.split(","));
    for(String user : userlist) {
      MessageDTO messagedto = new MessageDTO();
      messagedto.setContent(es_content);
      messagedto.setCategory("1"); //放到通知通告了
      messagedto.setFromUser(es_fromuser);
      messagedto.setTitle(es_title);
      messagedto.setToUser(user);
      sysBaseAPI.sendSysAnnouncement(messagedto);
    }
    
  }
}

同时对于修改日程需要考虑各种情况,所以需要修改

@Override
  @Transactional(rollbackFor=Exception.class)
  public boolean updateSchedule(OaSchedule oaSchedule) {
    String msgId = oaSchedule.getMsgId();
    String sendStatus = iEstarThirdService.getMsgSendStatus(msgId);
    if (oaSchedule.getRemind() != 0) {//有消息提醒
      if (iEstarThirdService.getMsgRecord(msgId)) {//原来有消息记录
        if(StringUtils.equals(sendStatus,"0")) {//还没发送消息,可以更新
          updateScheduleById(oaSchedule);
          SysMessageVo sysMessageVo= new SysMessageVo();
          sysMessageVo.setId(msgId);
          sysMessageVo.setEsContent(oaSchedule.getContent());
          sysMessageVo.setEsTitle(oaSchedule.getTitle());
          sysMessageVo.setEsReceiver(oaSchedule.getTaker());
          sysMessageVo.setEsType(oaSchedule.getRemindType());
          String reminddate = DateUtil.getPreTime(DateUtil.getDateString(oaSchedule.getStartTime(), "yyyy-MM-dd HH:mm:ss") ,String.valueOf(0-oaSchedule.getRemind()));
          sysMessageVo.setEsSendTime(DateUtil.stringToDate(reminddate));
          iEstarThirdService.updateSysMessage(sysMessageVo);  
          return true;
        }
        else {//已经发送消息了就不再更新了
          return false;
        }
       }else {//原来没有就插入
        updateScheduleById(oaSchedule);
        SysMessageVo sysMessageVo= new SysMessageVo();
        sysMessageVo.setEsContent(oaSchedule.getContent());
        sysMessageVo.setEsTitle(oaSchedule.getTitle());
        sysMessageVo.setEsReceiver(oaSchedule.getTaker());
        sysMessageVo.setEsType(oaSchedule.getRemindType());
        String reminddate = DateUtil.getPreTime(DateUtil.getDateString(oaSchedule.getStartTime(), "yyyy-MM-dd HH:mm:ss") ,String.valueOf(0-oaSchedule.getRemind()));
        sysMessageVo.setEsSendTime(DateUtil.stringToDate(reminddate));
        sysMessageVo.setEsSendStatus("0"); //SendMsgStatusEnum.WAIT.getCode()
        sysMessageVo.setEsSendNum(0);   
        String sysMsgId = iEstarThirdService.saveSysMessage(sysMessageVo);
        oaSchedule.setMsgId(sysMsgId);
        oaScheduleService.updateById(oaSchedule);
        return true;
       }
    }
    else {
      updateScheduleById(oaSchedule);
      return true;
    }
  }
  
  void updateScheduleById(OaSchedule oaSchedule) {
    SysUser loginUser = iEstarThirdService.getLoginUser();
        String userId = loginUser.getUsername();
        if(StringUtils.isEmpty(oaSchedule.getTaker())){
          oaSchedule.setTaker(userId);
        }
        if(StringUtils.isEmpty(oaSchedule.getOwner())){
          oaSchedule.setOwner(userId);
        }
    oaScheduleService.updateById(oaSchedule);
  }

这样多人发送也能成功发送

 

更多功能看演示系统

gitee源代码地址

后端代码: https://gitee.com/nbacheng/nbcio-boot

前端代码:https://gitee.com/nbacheng/nbcio-vue.git

在线演示(包括H5) : http://122.227.135.243:9888

相关文章
|
6月前
|
移动开发 前端开发
基于jeecg-boot的OA日程安排开发(五)
基于jeecg-boot的OA日程安排开发(五)
133 0
|
6月前
基于jeecgboot的OA日程安排开发(三)
基于jeecgboot的OA日程安排开发(三)
41 0
|
6月前
基于jeecgboot的OA日程安排开发(二)
基于jeecgboot的OA日程安排开发(二)
55 0
|
6月前
|
前端开发 API 数据库
基于jeecgboot的OA日程安排开发(一)
基于jeecgboot的OA日程安排开发(一)
55 0
|
11月前
|
JSON 小程序 JavaScript
微信小程序开发的OA会议之会议,个人中心的页面搭建及模板以及自定义组件
微信小程序开发的OA会议之会议,个人中心的页面搭建及模板以及自定义组件
68 0
|
12月前
|
JSON 小程序 前端开发
微信小程序开发之会议OA首页后台数据交互(内带新知识点分享)
微信小程序开发之会议OA首页后台数据交互(内带新知识点分享)
111 0
|
12月前
|
JSON 小程序 JavaScript
微信小程序开发之自定义组件(会议OA项目其他页面搭建)
微信小程序开发之自定义组件(会议OA项目其他页面搭建)
100 0
|
12月前
|
小程序 JavaScript UED
微信小程序开发之会议OA项目首页搭建
微信小程序开发之会议OA项目首页搭建
143 0
|
1月前
|
数据安全/隐私保护
点晴OA办公系统让企业变得高效协同
随着企业信息化进程的加快,很多企业开始寻求使用企业管理免费OA办公系统来提高工作效率。然而,有些些企业可能缺乏信息化经验,对技术一无所知,甚至从未接触过OA办公系统。在这种情况下,企业需要寻求功能比较全面的OA办公系统,以满足企业的实际需求。
38 1
|
21天前
|
敏捷开发 数据可视化 数据挖掘
哪些OA任务管理系统值得推荐?4款高效办公工具介绍
在现代企业中,OA(办公自动化)任务管理系统是提升工作效率和团队协作的关键工具。本文介绍了4款备受推崇的OA任务管理系统:板栗看板、Trello、Asana和Monday.com,分别从提高工作效率、增强团队协作、优化资源分配和提升工作质量等方面进行了详细说明,为用户提供全面的参考和选择指南。