持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第16天,点击查看活动详情
开发审批消息通知
1.定义mapper
<insert id="insert" parameterType="com.imooc.oa.entity.Notice" useGeneratedKeys="true" keyProperty="noticeId" keyColumn="notice_id" >
INSERT INTO sys_notice
( receiver_id, content, create_time)
VALUES
( #{receiverId}, #{content}, #{createTime});
</insert>
<select id="getListByReceiveId" parameterType="Long" resultType="com.imooc.oa.entity.Notice">
select * from sys_notice where receiver_id = #{receiveId} order by notice_id desc
</select>
代码说明:定义查询和新增方法
2.定义service
public List<Notice> getListByReceiveId(Long receiveId) {
return (List)MybatisUtils.executeQuery(sqlSession -> {
NoticeDao noticeDao = sqlSession.getMapper(NoticeDao.class);
return noticeDao.getListByReceiveId(receiveId);
});
}
3.定义controller
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html;charset=utf-8");
HttpSession session = request.getSession();
User user = (User) session.getAttribute("login_user");
List<Notice> noticeList = noticeService.getListByReceiveId(user.getEmployeeId());
Map result = new HashMap<>();
result.put("code","0");
result.put("success","");
result.put("count",noticeList.size());
result.put("data",noticeList);
String json = JSON.toJSONString(result);
response.getWriter().println(json);
}
4.请假单新增消息
普通员工提交请假单:推送给自己和直接上级领导
String content = String.format("您的请假申请%s-%s已经提交,等待上级领导审核",sdf.format(form.getStartTime()),sdf.format(form.getEndTime()));
noticeDao.insert(new Notice(employee.getEmployeeId(),content));
//上级领导
String noticeContent = String.format("%s申请%s-%s已经提交,请审核",employee.getName()+employee.getTitle(),sdf.format(form.getStartTime()),sdf.format(form.getEndTime()));
noticeDao.insert(new Notice(leader.getEmployeeId(),noticeContent));
部门领导提交请假单:推送给自己和总经理
String content = String.format("您的请假申请%s-%s已经提交,等待上级领导审核",sdf.format(form.getStartTime()),sdf.format(form.getEndTime()));
noticeDao.insert(new Notice(employee.getEmployeeId(),content));
//上级领导
String noticeContent = String.format("%s申请%s-%s已经提交,请审核",employee.getName()+employee.getTitle(),sdf.format(form.getStartTime()),sdf.format(form.getEndTime()));
noticeDao.insert(new Notice(manager.getEmployeeId(),noticeContent));
总经理提交请假单:直接推送给自己
String content = String.format("您的请假申请%s-%s已经提交,自动审核通过",sdf.format(form.getStartTime()),sdf.format(form.getEndTime()));
noticeDao.insert(new Notice(leader.getEmployeeId(),content));
5.审批消息
当前节点是最后一个节点:推送给自己和直属领导
if(result.equals("approved")){
str="同意";
}else{
str="驳回";
}
String content = String.format("您的请假申请%s-%s已%s",sdf.format(form.getStartTime()),sdf.format(form.getEndTime()),str);
noticeDao.insert(new Notice(employee.getEmployeeId(),content));
//直属领导
String noticeContent = String.format("%s申请%s-%s已%s,流程已结束",employee.getTitle(),sdf.format(form.getStartTime()),sdf.format(form.getEndTime()),str);
noticeDao.insert(new Notice(operatorId,noticeContent));
当前节点不是最后一个节点且同意:推送给自己,直属领导和总经理审批
//提交人
String noticeContent = String.format("您申请%s-%s已通过,请等待上级领导审核",sdf.format(form.getStartTime()),sdf.format(form.getEndTime()));
noticeDao.insert(new Notice(employee.getEmployeeId(),noticeContent));
//领导
String dNoticeContent = String.format("您同意了%s-%s-%s审批",employee.getName(),sdf.format(form.getStartTime()),sdf.format(form.getEndTime()));
noticeDao.insert(new Notice(operatorId,dNoticeContent));
//总经理
String mNoticeContent = String.format("%s申请-%s-%s,请尽快审批",employee.getName(),sdf.format(form.getStartTime()),sdf.format(form.getEndTime()));
noticeDao.insert(new Notice(flow3.getOperatorId(),mNoticeContent));
当前节点不是最后一个节点且驳回:推送给自己和经办人
//申请人
String noticeContent = String.format("您申请%s-%s被驳回,流程结束",sdf.format(form.getStartTime()),sdf.format(form.getEndTime()));
noticeDao.insert(new Notice(employee.getEmployeeId(),noticeContent));
//经办人
String noticeContents = String.format("您驳回申请%s-%s,流程结束",sdf.format(form.getStartTime()),sdf.format(form.getEndTime()));
noticeDao.insert(new Notice(operatorId,noticeContents));