# 不参加会议不要在领导行程中展示

# 需求

标准产品有会议模块和领导行程模块的联动:当新建一个会议,与会人是领导时,在领导行程上面也会有一条记录,以方便大家看到领导的工作时间排期。

用户期望:领导在会议中选择了“不参加”,则表示不参会,此条会议记录需要从领导行程中去掉,以避免误解行程。

如下是一条待开的会议记录:

1702708266360.png

如下是目标管理-领导行程下面同步的会议记录(说明中有“会议同步数据”几个字):

1702708225145.png

# 标准产品实现原理

标准产品在MeetingManagerImpl#publishMeetingAfterAffairs中实现了:新建会议后向领导行程推送数据的功能:

private Map<String, Object> buildLeaderAgendInfo(MtMeeting meeting) {
        Map<String, Object> params = new HashMap<>();
        params.put("moduleType", "meeting");
        params.put("moduleId", meeting.getId());
        params.put("title", meeting.getTitle());
        params.put("startTime", meeting.getBeginDate());
        params.put("endTime", meeting.getEndDate());
        params.put("agendaDesc", "会议同步数据");
        params.put("createUser", meeting.getCreateUser());
        return params;
    }

# 解决方案

需求:领导在会议中选择了“不参加”,则表示不参会,此条会议记录需要从领导行程中去掉。

解决方法: 1、编写Event事件监听器Listener,监听会议的回执处理事件 2、通过会议回执事件来判断处理人是否是领导,如果是领导则发起删除领导行程的操作

参考资料:

一、事件监听组件编写引导:https://open.seeyoncloud.com/v5dev/39/80.html

二、会议回执事件接口(来自SeeyonAPI):https://open.seeyoncloud.com/seeyonapi/8.2/event/75/#%E4%BC%9A%E8%AE%AE%E5%9B%9E%E6%89%A7%E4%BA%8B%E4%BB%B6

三、判断是否是领导接口(Java):com.seeyon.apps.leaderagenda.LeaderAgendaApi#isLeader(memberId)

四、删除领导行程代码参考:com.seeyon.apps.leaderagenda.manager.LeaderAgendaManagerImpl#deleteAgenda(agendaId),需要自行参考代码实现删除领导会议行程的代码

五、领导行程数据库表:LEADER_AGENDA_INFO

创建人:het