# 不参加会议不要在领导行程中展示
# 需求
标准产品有会议模块和领导行程模块的联动:当新建一个会议,与会人是领导时,在领导行程上面也会有一条记录,以方便大家看到领导的工作时间排期。
用户期望:领导在会议中选择了“不参加”,则表示不参会,此条会议记录需要从领导行程中去掉,以避免误解行程。
如下是一条待开的会议记录:
如下是目标管理-领导行程下面同步的会议记录(说明中有“会议同步数据”几个字):
# 标准产品实现原理
标准产品在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
← 公文概念和数据结构 统一待办降版本适配手册 →