基于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日程安排开发(五)
143 0
|
7月前
基于jeecgboot的OA日程安排开发(三)
基于jeecgboot的OA日程安排开发(三)
48 0
|
7月前
基于jeecgboot的OA日程安排开发(二)
基于jeecgboot的OA日程安排开发(二)
71 0
|
7月前
|
前端开发 API 数据库
基于jeecgboot的OA日程安排开发(一)
基于jeecgboot的OA日程安排开发(一)
67 0
|
JSON 小程序 JavaScript
微信小程序开发的OA会议之会议,个人中心的页面搭建及模板以及自定义组件
微信小程序开发的OA会议之会议,个人中心的页面搭建及模板以及自定义组件
73 0
|
JSON 小程序 前端开发
微信小程序开发之会议OA首页后台数据交互(内带新知识点分享)
微信小程序开发之会议OA首页后台数据交互(内带新知识点分享)
114 0
|
JSON 小程序 JavaScript
微信小程序开发之自定义组件(会议OA项目其他页面搭建)
微信小程序开发之自定义组件(会议OA项目其他页面搭建)
103 0
|
小程序 JavaScript UED
微信小程序开发之会议OA项目首页搭建
微信小程序开发之会议OA项目首页搭建
148 0
|
28天前
|
安全 搜索推荐 数据安全/隐私保护
点晴免费OA办公系统:高效协同,安全易用
信息技术发展推动企业信息化,即企业利用现代技术提升生产、经营、管理效率,增强竞争力。点晴免费OA系统作为信息化管理的基础,是实现企业信息化的关键手段。
33 2
|
2月前
|
数据安全/隐私保护
点晴OA办公系统让企业变得高效协同
随着企业信息化进程的加快,很多企业开始寻求使用企业管理免费OA办公系统来提高工作效率。然而,有些些企业可能缺乏信息化经验,对技术一无所知,甚至从未接触过OA办公系统。在这种情况下,企业需要寻求功能比较全面的OA办公系统,以满足企业的实际需求。
48 1