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

相关文章
|
8月前
|
移动开发 前端开发
基于jeecg-boot的OA日程安排开发(五)
基于jeecg-boot的OA日程安排开发(五)
167 0
|
8月前
基于jeecgboot的OA日程安排开发(三)
基于jeecgboot的OA日程安排开发(三)
78 0
|
8月前
基于jeecgboot的OA日程安排开发(二)
基于jeecgboot的OA日程安排开发(二)
82 0
|
8月前
|
前端开发 API 数据库
基于jeecgboot的OA日程安排开发(一)
基于jeecgboot的OA日程安排开发(一)
94 0
|
JSON 小程序 JavaScript
微信小程序开发的OA会议之会议,个人中心的页面搭建及模板以及自定义组件
微信小程序开发的OA会议之会议,个人中心的页面搭建及模板以及自定义组件
80 0
|
JSON 小程序 前端开发
微信小程序开发之会议OA首页后台数据交互(内带新知识点分享)
微信小程序开发之会议OA首页后台数据交互(内带新知识点分享)
126 0
|
JSON 小程序 JavaScript
微信小程序开发之自定义组件(会议OA项目其他页面搭建)
微信小程序开发之自定义组件(会议OA项目其他页面搭建)
111 0
|
小程序 JavaScript UED
微信小程序开发之会议OA项目首页搭建
微信小程序开发之会议OA项目首页搭建
162 0
|
6天前
|
存储 安全 BI
怎样利用点晴免费OA办公系统提升工作效率
随着信息技术的不断发展,OA办公系统的使用率越来越高,让企业更快捷、高效地处理各类事务。点晴免费OA办公系统是一款全面优秀的办公管理系统,其强大的功能和灵活性,为办公环境带来了巨大提升。
34 10
|
4天前
|
人工智能 自然语言处理 数据挖掘
企业数字化转型的关键:如何利用OA系统实现自动化与智能决策
在数字化时代,传统办公系统已无法满足现代企业的需求。通过将RPA(机器人流程自动化)和AI(人工智能)技术与OA系统结合,企业能实现业务流程自动化、智能决策支持,大幅提升工作效率和资源配置优化,推动数字化转型。RPA可自动处理重复任务,如审批、数据同步等;AI则提供智能数据分析、预测和决策支持,两者协同作用,助力财务管理、人力资源管理、项目管理和客户服务等多个领域实现智能化升级。未来,智能化OA系统将进一步提升个性化服务、数据安全和协作能力,成为企业发展的关键驱动力。