报销审批流程:状态机驱动的业务实战与代码示例
50 浏览量
更新于2024-07-15
收藏 270KB PDF 举报
本文主要探讨了火龙果软件工程技术中心的报销审批流程,该流程采用状态机工作流进行设计,以确保报销单在不同角色间的有效流转和管理。以下是关键知识点的详细解析:
1. 业务描述:
报销审批流程是一个基础的业务场景,涉及员工(报销者)提交报销申请,财务和老板进行审批,出纳负责支付。流程主要包括提交、修改、审核、支付等步骤。
2. 角色与功能:
- 报销者:主要负责填写和修改报销单。
- 财务:处理1000元以下的报销,功能包括审核、打回(要求报销者修改)、中止流程和特殊情况下的加签(提交给老板再次审核)。
- 老板:审批1000元以上的报销,功能与财务类似但不包含加签环节。
- 出纳:在财务或老板审批后决定是否支付,根据是否有足够的资金进行"有钱"(支付确认)或"没钱"(等待后续处理)的操作。
3. 工作流设计:
工作流设计基于状态机模型,包含了几个核心事件处理:
- 小金额与大金额审核:财务和老板分别处理不同金额范围的报销单。
- 打回与重新修改:当报销单不符合要求时,触发此事件,报销者需要进行修正。
- 向下流转:报销单在经过一个阶段后,自动或人为地进入下一个审批环节。
- 结束工作流:财务和老板可以中止流程,通常表示审批拒绝。
- 等待:出纳在没有足够资金时暂停流程。
- 加签:在特殊情况下,财务会触发加签事件,将报销单提交给老板进一步审查。
4. 代码实现:
文档中提到的`IBILLService`接口定义了这些事件,如`BillInitMoneyMin`、`BillInitMoneyMax`、`BillUpdated`和`BillDownstream`等,用于通知各组件执行相应的操作。通过这些接口,整个报销审批流程在系统中被模块化并保持高度可维护性。
总结来说,这篇文章提供了如何通过状态机工作流来设计和管理一个实际的报销审批流程,强调了各个角色的职责划分和关键事件处理,以及如何通过编程接口实现流程自动化。这样的设计有助于提高工作效率,并确保审批过程的规范化和透明度。
2008-10-29 上传
2024-11-11 上传
2024-11-11 上传
2024-11-11 上传
2024-11-11 上传
2024-11-11 上传
2024-11-11 上传
weixin_38743084
- 粉丝: 12
- 资源: 931
最新资源
- BottleJS快速入门:演示JavaScript依赖注入优势
- vConsole插件使用教程:输出与复制日志文件
- Node.js v12.7.0版本发布 - 适合高性能Web服务器与网络应用
- Android中实现图片的双指和双击缩放功能
- Anum Pinki英语至乌尔都语开源词典:23000词汇会话
- 三菱电机SLIMDIP智能功率模块在变频洗衣机的应用分析
- 用JavaScript实现的剪刀石头布游戏指南
- Node.js v12.22.1版发布 - 跨平台JavaScript环境新选择
- Infix修复发布:探索新的中缀处理方式
- 罕见疾病酶替代疗法药物非临床研究指导原则报告
- Node.js v10.20.0 版本发布,性能卓越的服务器端JavaScript
- hap-java-client:Java实现的HAP客户端库解析
- Shreyas Satish的GitHub博客自动化静态站点技术解析
- vtomole个人博客网站建设与维护经验分享
- MEAN.JS全栈解决方案:打造MongoDB、Express、AngularJS和Node.js应用
- 东南大学网络空间安全学院复试代码解析