各位同学大家好,学完这一章,我们明白了如何设计请假管理功能。请假流程覆盖了两个业务模块,一个是请假管理,另一个是请假审批。公司员工可以在请假管理栏目中创建请假申请,管理者在这个栏目中可以看到所有员工的请假记录。但是部门经理或者总经理审批员工的请假,就要用到在线审批栏目。因此说,在这一章我们一共完成了两个模块的开发。下面我们就来回顾一下,这一章的重点内容。
一、实现请假记录有条件分页查询
既然这一章我们要实现员工请假功能,首先就得有请假管理页面,而且该页面的内容主要以表格为主,分页数据我们得查询出来。普通员工只能在页面中看到自己的请假记录,管理者可以看到所有人的请假记录。无论是有条件,还是无条件的分页查询,早已经难不倒我们了。
二、实现员工创建请假申请
员工想要请假,必须在线填写请假申请,然后先由部门经理审批。如果请假天数不超过3天,就不需要总经理审批,部门经理审批通过就可以了。员工在emos系统上面可以下载到请假单,打印之后先签字,然后找HR盖章生效。大家注意到没有,创建请假申请的时候,我们调用工作流项目还是采用的异步线程任务类。这是因为创建出工作流实例之后,我们还要把instance_id更新到请假记录上面。所以为了减少用户等待的时间,采用异步线程也就理所应当了。
三、实现当事员工删除请假申请
在请假管理栏目中,只可以创建和删除请假申请,没有修改请假申请这个功能。其实工作流任务的动态流转远比重新创建工作流复杂,所以在请假管理栏目中,就取消了修改请假申请的功能。如果你创建的请假申请不对,可以先删除,然后再创建新的请假申请。
四、完成对腾讯云存储的封装
请假模块的工作流比以往的工作流多出来一个归档任务,而且归档任务需要HR上传照片到云存储。所以我们得写代码把上传和删除文件的功能给封装起来,然后前端页面调用我们封装好了Web方法就可以上传或者删除文件了。其实这里也不是必须用腾讯云存储,你用阿里云或者七牛云存储也都可以。只不过将来部署项目的时候,我会选择腾讯云,所以本课程的各种云服务就都统一使用腾讯云了。我曾经看过很多同学写代码只管上传文件到云存储,这个做法并不好。因为云存储的空间也是收费的,如果你把一大堆无效业务的文件放在云存储上面,肯定不合适。所以我给归档弹窗页面设计了特殊的功能。我们删除上传控件中的文件,连带把上传到云存储的文件也给删除掉。或者没执行归档,你就把弹窗页面关了,那么我也会把你刚上传的文件都删除,这样云存储上面就不会存在没有用处的文件了,有效的节约了存储空间。
五、实现HR角色执行请假归档
请假归档这个任务很有意思,并没有关联具体的用户,而是关联了HR角色。公司里面所有的HR都可以看到归档任务。谁先领取到该任务,谁就来处理员工请假归档。在弹窗页面中,我们可以上传多张文件,然后执行归档任务。归档成功之后,我们点开折叠面板,可以看到已经归档的文件。甚至还能预览刚才归档的文件。OA系统有了这么健全的功能,看来离无纸化办公又进了一步。好了,以上这些就是本章的全部内容,下一章我们做最后一个业务模块,那就是报销管理。各位同学,咱们下一章再见。