功能要求:
1、 建立员工档案表、考勤异常表、考勤明细表。
2、 从钉钉同步在职员工基本信息,每半小时一次,可手动同步。
3、 从钉钉同步员工考勤数据,每半小时一次,可手动同步。
4、 考勤明细表记录所有考勤信息,异常表只记录考勤异常的记录
5、 补卡申请表单状态:草稿、提交申请、审批中、修改中(驳回状态)、审批通过,按钮根据状态显示。
6、 员工每个月只有一次补卡机会,当补卡次数为0时,可以创建补卡申请表单。补卡申请表状态为通过时,考勤异常表显示该时间段已补卡,补卡次数减少。
7、菜单规划:员工档案、考勤异常、考勤明细、补卡申请、系统设置(信息同步、权限设置),根据角色可见。
8、权限设置:
管理员:拥有全部权限,可进行同步操作
部门经理:拥有自己部门的考勤异常表、考勤明细表、员工档案表和审批自己部门员工补卡申请表的权限
协调人:拥有审批补卡申请表的权限
普通用户:可查看个人考勤明细,考勤异常表,可提交补卡申请表,审批状态为审批中,则不可修改表单(按月)
问题思路及解决方法:
1、如何获取钉钉的数据:
查阅钉钉开发文档——创建钉钉个人应用——利用个人应用上的appKey和appSecret通过接口获取access_token——通过access_token和开发文档上的各种接口来获取相对应的数据
2、如何设置定时同步数据:
<record id="ir_cron_file_action" model="ir.cron">
<field name="name">信息自动同步</field>
<field name="model_id" ref="model_check_syn"/>
<field name="state">code</field>
<field name="code">model.button_create_file()</field>
<field name="interval_number">30</field>
<field name="interval_type">hours</field>
<field name="numbercall">-1</field>
<field eval="True" name="doall"/>
<field name="user_id" ref="base.user_root"/>
</record>
对于想了解字段详细介绍可参考该链接:https://www.cnblogs.com/ygj0930/p/10826270.html
3、如何设置菜单上手动同步按钮:
模型上定义按钮方法——菜单上利用向导创建按钮——按钮绑定方法
4、项目心得体会:
- 自己需要了解每个字段属性的含义,观看源码或查阅资料,不然很容易出现bug,会降低自己的开发效率
- 在明白项目需求时,不要急于求成,先思考,想清楚了该怎么实现,再动手,不然后期会造成代码冗余,还会出现各种隐藏bug
- 对于逻辑代码这块,一定要思考,一定要思考,一定要思考,思路要清晰,脚踏实地一步一步来,才能完整的实现逻辑功能
完整功能实现功能需求项目源码:https://github.com/xulejun/check.git