工作流设计示例

自定义工作流 需求: 综治子系统:统一受理平台和矛盾纠纷系统合二为一,因为流程一样,主要流程如下图 1、网格员上报到社区综治中心 2、社区综治中心可以选择上报到街镇综治中心或派遣给社区单位签收或派遣给具体的网格员进行处理 3、社区单位签收(派遣)具体的处理人员进行处理 4、街镇综治中心可以选择上报到区综治中心或派遣到街镇单位签收或下派到社区综治中心处理 5、街镇单位签收(派遣)具体的处理人员进行处理 6、区综治中心可以派遣到区具体的区处理单位进行处理或下派到具体的街镇综治中心 其中所有单位和具体处理人员可以进行退回操作 阅读详情

概述:

本工作流以一套金融软件业务处理流程为例,实现功能包括:流程自定义、步骤自定义、步骤重复次数、步骤类型(顺序/并行)、定义排序功能,完全使用数据库实现,本文将详细分析业务流程、系统设计及实现细节。

术语:

工作流(Workflow)[1],是对工作流程及其各操作步骤之间业务规则的抽象、概括、描述。工作流建模,即将工作流程中的工作如何前后组织在一起的逻辑和规则在计算机中以恰当的模型进行表示并对其实施计算。工作流要解决的主要问题是:为实现某个业务目标,在多个参与者之间,利用计算机,按某种预定规则自动传递文档、信息或者任务。工作流管理系统(Workflow Management System, WfMS)的主要功能是通过计算机技术的支持去定义、执行和管理工作流,协调工作流执行过程中工作之间以及群体成员之间的信息交互。工作流需要依靠工作流管理系统来实现。

流程:工作流包含多个工作流程,处理时可任选一种流程进行处理,其包含步骤信息;

步骤:流程中每一环节的名称,某一流程将包含多个步骤(其他工作流中也称为节点)。

 

正文:

  第一部分、业务逻辑分析

1、自定义工作流是指工作流各个环节及其参数完全自定义,常用于公文处理、业务流程签批处理等。本系统来源于本人参与开发的一套金融管理软件,业务处理人分不同角色拥有不同权限进行业务处理,将贷款数据库从贷款调查一直到贷款签批的完整流程。其中由于软件功能要求,需要将贷款调查固定置为第一步骤,将贷款签批置为最后一步骤。

其中数字表示当前步骤重复次数。

2、用户业务处理部分包括:

1)、通过:当前步骤处理通过,(选择下一处理人)进入当前流程中下一步骤,若为末步骤,则流程完成;

2)、退回:将步骤退回至上一步骤,即返回至上一处理人处,若为首步骤,则不可进行退回;

3)、否决:将步骤直接结束,不可再进行操作,或者回退至第一步骤;本系统中采用第二种方式;

4)、撤回:若当前步骤已处理,且在下一处理人未进行处理的情况下可进行撤回操作。

3、顺序与并行

顺序是指上一处理人指定某一处理人时,其他拥有此步骤权限的操作员不可进行查看和操作,必须当前处理人处理完毕后,流程才能继续;并行是由上一处理人指定固定多个处理人时,由任一员工处理即可,不分前后顺序,全部处理完成,进入下一步骤,此处理人数目由当前步骤重复次数确定。

两者之间对应关系如下。

  第二部分、系统设计

数据库设计如下:

1)、流程信息表:S_flow_info(flow_id,flow_name)

2)、步骤信息表:S_action_info(action_id,action_name)

3)、流程-步骤信息表:S_step_info(step_id,action_id,flow_id,step_repeat_no,step_order_no,step_type)

(其中step_repeat_no为重复次数,step_order_no为排序号,step_type为类型:0为顺序,1为并行)

4)、流程处理明细表:L_tranct_proc(proc_id,loan_id,step_id,step_action,step_emp_id)

(其中loan_id为数据主表主键,step_id关联S_action_info,step_action存储处理结果:0--不通过,1--通过,2--退回,3--否决,4--撤回,step_emp_id为当前处理员工编号)

其中流程表、步骤表、流程步骤关系表为核心数据表,它们三者确定工作流的完全自定义。流程处理明细表为重要数据表,查询数据主要通过此表进行连接查询。

其他相关表包括:

1)、数据主表L_loan_info(loan_id,loan_name,flow_id,step_id,...)

(flow_id为流程编号,step_id关联S_action_info)

2)、操作员工表E_emp_info(emp_id,emp_name,..)

3)、角色信息表E_role_info(role_id,role_name)

4)、员工-角色关系表E_emp_role(emp_role_id,emp_id,role_id)

(关联角色表与员工表)

5)、步骤角色关系表S_action_role(action_role_id,action_id,role_id)

(关联角色表与步骤表)

6)、下一处理人表L_loan_next_emp(loan_next_emp_id,loan_id,next_emp_id,step_id)

(其中next_emp_id关联操作员工表E_emp_info,step_id关联S_action_info)

其中数据流向如下:

1)业务最开始发生时,数据主表L_loan_info插入数据,其step_id为其所在流程的第一个步骤的编号,可根据下一步骤的重复次数来去将下一处理人的操作员编号插入到下一处理人表L_loan_next_emp中;插入流程处理明细表中数据,step_id为当前步骤编号;更新主表L_loan_info的step_id为下一步骤编号;

2)流程进入下一步骤;

3)下一处理人可查看当前待处理数据(以及本环节待处理数据),选定进行处理,将处理结果(0:不通过,1:通过,2:退回,3:否决)插入到流程处理明细表中,若为通过由更新主表L_loan_info的step_id为下一步骤编号,退回更新为上一步骤编号,否决则更新到第一个步骤编号;

4)在本人已处理数据中可查看已处理过的数据,若下一步骤中操作员还没有进行操作,则可对数据操作进行撤回,撤回时将处理结果(4:撤回)插入到流程处理明细表中,其中的next_emp_id为本人操作员工编号);更新主表L_loan_info的step_id为流程的第一步骤的编号;

5)下一处理人继续3)、4)的循环,直至流程的结束;

6)流程最后一个步骤,将处理结果中step_id值为0插入至流程处理明细中。

  第三部分、实现细节

1、第一步骤中获得数据列表代码如下: 

1
SELECT  * FROM  L_loan_info WHERE  step_id=@step_id

其中@step_id使用代码得到当前数据的第一步骤编号

2、第一步骤获得已处理数据列表代码:

1
SELECT  * FROM  L_loan_info WHERE  loan_id IN  ( SELECT  DISTINCT  loan_id FROM  l_tranct_proc WHERE  step_id=@step_id)

3、获得任一步骤数据列表(含未处理和已处理)

 

 

以上为核心代码,当然由于工作流的具体需求不同,可调整相应代码。

  第四部分、运行结果

1、系统参数配置

2、待处理列表

3、处理页面

(注:当前为最后一处理,下一处理人选择不可见)

4、撤回页面

结语:

完整自定义工作流由于应用广泛且业务逻辑复杂,要实现真正意义上通用的工作流还需要去做更多的分析和研究。

另本文不提供代码及其他资料下载,请勿留言索取。

抛砖引玉,欢迎拍砖!

参考文档:

[1]:维基百科:工作流技术 http://zh.wikipedia.org/zh-cn/工作流

搭建一个自定义的工作流管理平台(一) 在这个html里面,可以看到引用了放置在本地的bootstrap的js, CSS,以及jquery,feather库的js文件。其实Camunda也提供了WEB的应用来管理工作流,但是如果自己有一些额外的需求,要进行一些自定义的功能,那么最好是自己开发一个WEB应用,通过调用Camunda引擎提供的API接口来实现对工作流的管理。工作流的引擎我采用的是业界流行的Camunda,这个引擎基于BPMN/DMN的标准来实现工作流,可以很方便的进行工作流的编排,实现低代码运行,以及业务逻辑编排等功能。 阅读详情

相关推荐

Navi.Component.工作流开发手册(含示例)

1.概述   1.1简介   本文档旨在帮助开发人员快速使用工作流组件,完成OA或审批等涉及到工作流组件的系统开发工作   1.2组件构成   1.2.1组件层次图      组件的核心是工作流引擎,它负责存储工作流模板.引擎被服务所包围,也就是说,若用到工作流引擎操作,必须通过工作流服务   工作流服务包含几大部分:模板服务,流程实例服务,查询服务,跟踪服务,持久化服务,定

qnxjj626627的专栏 1095

工作流引擎核心设计思路!

作者:vivo 互联网服务器团队- Cheng Wangrong一、业务背景营销自动化平台可以支持不同用户生命周期的活动旅程策略配置 ,根据用户触发的不同活动行为,进行差异化的营销触达方案。同时各种类型活动的具体执行过程中也有不同的业务处理流程(比如审批流程和业务流转)。业务流程复杂多样,需求变更频繁,项目开发过程中会有以下痛点:项目交付周期长:一个完整的业务流程需要从头...

架构文摘 5695

flowable工作流 流程变量_Activiti工作流的应用示例

1:工作流的概念工作流(Workflow),就是“业务过程的部分或整体在计算机应用环境下的自动化”,它主要解决的是“使在多个参与者之间按照某种预定义的规则传递文档、信息或任务的过程自动进行,从而实现某个预期的业务目标,或者促使此目标的实现”。工作流--请假审批说明:1) 假设:这两张图就是华谊兄弟的请假流程图2) 图的组成部分:A. 人物:范冰冰 冯小刚 王中军B. 事件(动作):请假、批准、不批...

weixin_35094408的博客 718

一套完整自定义工作流的实现

概述: 本工作流以一套金融软件业务处理流程为例,实现功能包括:流程自定义、步骤自定义、步骤重复次数、步骤类型(顺序/并行)、定义排序功能,完全使用数据库实现,本文将详细分析业务流程、系统设计及实现细节。 术语: 工作流(Workflow)[1],是对工作流程及其各操作步骤之间业务规则的抽象、概括、描述。工作流建模,即将工作流程中的工作如何前后组织在一起的逻辑和规则在计算机中以恰当的模型进行表...

weixin_30294709的博客 4812

Flowise工作流设计最佳实践

本文深入探讨Flowise平台的工作流设计最佳实践,包括工作流设计模式、节点连接、数据流转等核心概念,通过实际案例和代码示例,帮助开发者构建高效、可维护的AI应用工作流。本文详细介绍了Flowise工作流设计的最佳实践,包括工作流设计模式、数据流转、错误处理、性能优化等方面。通过实际案例和代码示例,帮助开发者构建高效、可维护的AI应用工作流。

加入“Super Entity”,与全能开发团队共探AI智能体与数字人项目,开启前沿技术之旅。 1091

解锁C#企业级业务流程管理:深入探讨工作流设计的艺术

通过对C#工作流设计的学习,我们不仅掌握了如何从头构建一个工作流引擎,还学会了如何添加复杂的控制结构以适应各种业务需求。无论你是希望提升现有系统的灵活性,还是正在寻找新的解决方案来改进业务流程,掌握这些技能都将为你带来巨大的价值。让我们一起探索C#的无限可能,共同打造更加智能化的工作流管理系统!

墨夶的博客 430

“基本工作流设计器”示例

今天来讨论一下“承载工作流设计器”的例子,此篇文章有疏忽错误的地方,请大家热心指正。虽然Visual Studio已经包含了Windows Workflow Foundation工作流可视化设计器,但是有的时候我们需要在自己的制作的Windows应用程序中承载这种基于图形的工作流设计器,编写好Activity,然后由客户来设计灵活的工作流程。在MSDN中,关于“承载工作流设计器”的文章:http:

shaily读书学习 2718

一个简单C#工作流的实现

一个简单C#工作流的实现

Silverlight 版工作流设计器示例

正在开发的 Silverlight 流程设计器,希望高手提供布线的算法,目前的布线总是会出现和边贴合的情况。 目前实现功能:活动拖拽 在接点处拖拽可生成连线 选择中活动或连线后,按 Del 键可删除活动或连线 转载于:https://www.cnblogs.com/End...

weixin_34146805的博客 156

最简约的java工作流源代码

总共300多k的大小,实现基本工作流功能,可根据不同的输入数据执行不同的流程,用来学习工作流的最佳范例

一套完整的OA系统源码可自己设计审批流程

一套完整的OA系统源码,我在51aspx上面买的,共享出来给大家

awesome-design-md 多Agent工作流:设计Agent与编码Agent分工协作示例

awesome-design-md 是一个精选的设计系统文档合集:把任意一个 DESIGN.md 放进你的项目,AI 编码 Agent 就能生成与该品牌视觉语言一致的高质量 UI。本文将用一个完整示例,展示设计 Agent 与编码 Agent 如何基于 DESIGN.md 分工协作,让你的 AI 生码结果既"像那么回事",又"像这个品牌"。 ## 一、DESIGN.md 是什么?为什么它成了多A

gitblog_00796的博客 918

STM32寄存器级电机驱动:DRV8833 H桥与PWM调速原理

电机驱动是嵌入式控制系统的核心基础能力,其本质是微控制器通过数字信号精确控制功率器件的开关时序。理解H桥电路结构、反电动势防护机制及PWM调制原理,是实现可靠直流电机控制的前提。DRV8833作为典型双H桥驱动芯片,支持快衰减与慢衰减两种PWM调速模式,分别对应不同的电流泄放路径与动态响应特性。在STM32平台上,需结合时钟树配置、GPIO复用、定时器寄存器(PSC/ARR/CCR)精确计算,将抽象的转速需求转化为可执行的硬件操作。该技术广泛应用于智能小车、机器人关节、工业定位系统等实时运动控制场景,是掌握

weixin_42613017的博客 675

PLFM_RADAR仿真工作流:openEMS天线仿真与Qucs滤波器设计实战示例

PLFM_RADAR 是一套开源的 10.5 GHz 低成本相控阵雷达系统,而 **PLFM_RADAR仿真工作流** 正是它的"虚拟试衣间":用 openEMS 做天线仿真、用 Qucs 做滤波器设计,在花一分钱打板之前,先在电脑里把射频性能验证清楚。本文从真实源码出发,带你拆解这套工作流里的两个核心环节——**openEMS天线仿真**与 **Qucs滤波器设计**,并给出可直接复现的实战示例

gitblog_00739的博客 355

dToF直方图之美

上面视频里如果你能看懂,那么就能理解对于dToF单点的测距问题,对于大部分的描述在AMS和ST里的手册都非常的详细,有疑问的可以后台来找我探讨,今天我们单纯从上层讨论成像的问题。作为dToF算法工程师,应该是对直方图敏感的,直方图的每个Count峰都会表征出问题,因为dToF的输出只有直方图,观察直方图能够逆推出dToF的很多东西,这也是大多数公司不愿意开放直方图和Raw data的缘故。以上是一个小面阵的分辨率,第一张是直方图,后面是基于直方图寻峰出来的成像ToF图,Peak图,以及噪声Noise图。

dream it possible 2992

基于Vivado2025的UltraScale+时序收敛优化实战案例

深入解析在Vivado2025环境中针对UltraScale+架构的时序收敛挑战,结合实际设计案例,分享关键优化策略与操作技巧,显著提升设计性能与收敛效率。vivado2025的更新特性为时序优化带来新机遇。

weixin_33660045的博客 343

工作流编程循序渐进(8:状态机工作流)

工作流编程循序渐进(8:状态机工作流) 作者  朱先忠 一、状态机工作流简介       状态机工作流由一组状态组成。一个状态被指示为初始状态。每个状态都可以接收一组特定事件。视事件而定,可以转换到另一个状态。状态机工作流可以有最终状态。当转换到最终状态时,工作流将完成。 [...

weixin_33813128的博客 233

第二节:Vben Admin 最新 v5.0 (vben5) + Python Flask 快速入门 - Python Flask 后端开发详解(附源码)

大家好,我是cuiwin!本节内容,我们从零开始开发基于Python(Flask)的后端项目,对接Vue Vben Admin(vben5)。登录mysql数据库执行: 创建数据库。

cuiwin的专栏 2264

基于Activiti工作流引擎篇(一)

一. 项目总体结构 二、maven的配置文件信息<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://ma

当你迷路时,放慢一下脚步 1546

2022年全国职业院校技能大赛高职组大数据技术与应用赛项赛卷⑩—解析答案

工业互联网是工业全要素、全产业链、全价值链的全面连接,是人、机、物、工厂互联互通的新型工业生产制造服务体系,是互联网从消费领域向生产领域、从虚拟经济向实体经济拓展的核心载体,是建设现代化经济体系、实现高质量发展和塑造全球产业竞争力的关键支撑。加快发展工业互联网产业,不仅是各国顺应产业发展大势,抢占产业未来制高点的战略选择,也是我国推动制造业质量变革、效率变革和动力变革,实现高质量发展的客观要求。 为完成工业大数据分析工作,你所在的小组将应用大数据技术,以Scala作为整个项目的基础开发语言,基于大数据平台综

我是网络安全兼技能大赛工程师,专注网络安全技术学习与技能大赛实战!持续分享最新的技术文章,帮你少走弯路,一起在技术赛道上进步~ 581

Tiktok/抖音旋转验证码

主要记录一下旋转验证码的逆向思路

记录一些web逆向的过程 5968

为什么使用工作流引擎,什么是工作流引擎,工作流引擎选型以及如何使用

文章目录为什么使用工作流引擎?不使用工作流存在以下问题工作流优缺点什么是工作流引擎尝试自己构建工作流引擎有哪些选型方案呢基于bpmn标准进行流程定义国产自定义如何使用SnakerFlow工作流以请假流程来看下数据库中数据流转情况初始状态员工发起请假申请常见功能流程标题发起申请我的发起我的待办我的已办催办转办驳回撤回抄送加签会签或签 为什么使用工作流引擎? 反证法,如果不使用工作流引擎,先以请假流程举例,从头开始开发流程的业务逻辑:(来看看会出现哪些问题?使用工作流能解决哪些问题?又会带来什么问题?) 一

laker的博客 1万+

QGis软件 —— 1、Windows10下载安装QGis及插件

QGis —— 1、Windows10下载安装QGis及插件

5158

没想到 Springboot + Flowable 开发工作流会如此简单

程序员是块砖,哪里需要哪里搬 公司内部的OA系统最近要升级改造,由于人手不够就把我借调过去了,但说真的我还没做过这方面的功能,第一次接触工作流的开发,还是有点好奇是个怎样的流程。 项目主要用 Springboot + Flowable 重构原有的工作流程,Flowable 是个用 Java语言写的轻量级工作流引擎,上手比较简单开发效率也挺高的,一起学习下这个框架。 官方地址:https://www.flowable.org/docs/userguide/index.html,分享的只是简单应用,深入研

架构大数据双料架构师的博客 395

【WorkBuddy专栏53】我的WB为什么变聪明了——SOUL与USER配置管理实战(上)

【WorkBuddy专栏53】我的WB为什么变聪明了——SOUL与USER配置管理实战(上)

AI人人懂 244

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

工作流——顺序工作流

之前已经介绍过工作流的基本概念,提到了工作流有两种基本类型,顺序工作流和状态机工作流。它们的区别主要是前者强调的是顺序过程,后者强调的是状态的改变。     主要区别:     顺序工作流:       顺序工作流的执行过程是一个连续的步骤序列,它在完成一个活动之后会去执行到下一个.比如用顺序工作流模拟将访问记录从网站日志转移到数据库中的操作:第一步,下载日志文件;第二步,将日志批量插入数据

Victor 2581

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

上一篇: 工作流相关概念
下一篇: 常用坐标系和投影分析-GIS的核心基础
engineer_he
博客等级 码龄10年 109粉丝 14原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值