基于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

相关文章
|
7月前
|
移动开发 前端开发
基于jeecg-boot的OA日程安排开发(五)
基于jeecg-boot的OA日程安排开发(五)
147 0
|
7月前
基于jeecgboot的OA日程安排开发(三)
基于jeecgboot的OA日程安排开发(三)
59 0
|
7月前
基于jeecgboot的OA日程安排开发(二)
基于jeecgboot的OA日程安排开发(二)
73 0
|
7月前
|
前端开发 API 数据库
基于jeecgboot的OA日程安排开发(一)
基于jeecgboot的OA日程安排开发(一)
69 0
|
JSON 小程序 JavaScript
微信小程序开发的OA会议之会议,个人中心的页面搭建及模板以及自定义组件
微信小程序开发的OA会议之会议,个人中心的页面搭建及模板以及自定义组件
76 0
|
JSON 小程序 前端开发
微信小程序开发之会议OA首页后台数据交互(内带新知识点分享)
微信小程序开发之会议OA首页后台数据交互(内带新知识点分享)
118 0
|
JSON 小程序 JavaScript
微信小程序开发之自定义组件(会议OA项目其他页面搭建)
微信小程序开发之自定义组件(会议OA项目其他页面搭建)
106 0
|
小程序 JavaScript UED
微信小程序开发之会议OA项目首页搭建
微信小程序开发之会议OA项目首页搭建
151 0
|
7天前
|
安全 数据挖掘 BI
一款功能全面且免费的OA办公系统,下载即用
点晴免费OA办公系统是一款完全免费,不限使用时间,不限用户数,功能全面的免费OA办公系统,下载安装即用,使用点晴OA办公系统可以简单快速地建立办公自动化系统。
39 5
|
1月前
|
监控
点晴OA系统为企业的发展注入新的活力
点晴OA办公系统是真正完全免费的协同OA系统软件商,而且是不限使用时间,不限用户数,不限功能模块的免费OA办公系统,为企业全面实现行政办公一体化,深受众多企业的青睐。
27 5