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

相关文章
|
3月前
|
移动开发 前端开发
基于jeecg-boot的OA日程安排开发(五)
基于jeecg-boot的OA日程安排开发(五)
76 0
|
3月前
基于jeecgboot的OA日程安排开发(三)
基于jeecgboot的OA日程安排开发(三)
22 0
|
3月前
基于jeecgboot的OA日程安排开发(二)
基于jeecgboot的OA日程安排开发(二)
23 0
|
3月前
|
前端开发 API 数据库
基于jeecgboot的OA日程安排开发(一)
基于jeecgboot的OA日程安排开发(一)
21 0
|
8月前
|
JSON 小程序 JavaScript
微信小程序开发的OA会议之会议,个人中心的页面搭建及模板以及自定义组件
微信小程序开发的OA会议之会议,个人中心的页面搭建及模板以及自定义组件
53 0
|
9月前
|
JSON 小程序 前端开发
微信小程序开发之会议OA首页后台数据交互(内带新知识点分享)
微信小程序开发之会议OA首页后台数据交互(内带新知识点分享)
89 0
|
9月前
|
JSON 小程序 JavaScript
微信小程序开发之自定义组件(会议OA项目其他页面搭建)
微信小程序开发之自定义组件(会议OA项目其他页面搭建)
88 0
|
9月前
|
小程序 JavaScript UED
微信小程序开发之会议OA项目首页搭建
微信小程序开发之会议OA项目首页搭建
113 0
|
5天前
|
Java uml
某OA系统需要提供一个假条审批的模块,如果员工请假天数小于3天,主任可以审批该请假条;如果员工请假天数大于等于3天,小于10天,经理可以审批;如果员工请假天数大于等于10天,小于30天,总经理可以审批
该博客文章通过一个OA系统中的请假审批模块示例,使用Java语言实现了职责链模式,展示了如何根据不同的请假天数由不同级别的领导进行审批,并讨论了职责链模式的优缺点。
某OA系统需要提供一个假条审批的模块,如果员工请假天数小于3天,主任可以审批该请假条;如果员工请假天数大于等于3天,小于10天,经理可以审批;如果员工请假天数大于等于10天,小于30天,总经理可以审批
|
9天前
|
JavaScript 前端开发 搜索推荐
【Vue 2】一个功能强大OA办公系统,开源且免费!!
【Vue 2】一个功能强大OA办公系统,开源且免费!!