百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 博客教程 > 正文

手把手教学—不懂写代码也能开发请假审批流程

connygpt 2024-09-12 13:53 16 浏览

一、工作流是什么?

1、生活中到处都是活生生的“流”:在单位请假、从网上购物都可以看到工作流的影子。

2、工作流最早起源于生产组织和办公自动化领域,它是针对平时工作中的业务流程活动而提出的一个概念,目的是根据将工作分解成定义良好的任务或角色,根据一定的原则和过程来实施这些任务并加以监控,从而达到提高效率、控制过程、提升客户服务、增强有效管理业务流程等目的。

二、在南瓜树上如何快速绘制审批流程?

以请假管理为例,介绍如何在南瓜数上开发审批流程,一起来看看吧~

详细可参考文档:https://docs.qq.com/doc/DY1puaEFTSWdZWmV1

7.1 绘制流程图

以请假管理为例,介绍如何在南瓜数上开发审批流程

7.1.1 新增流程图

1.菜单路径:工作流管理》工作流模型》新增

点击新增按钮,进入到设计器页面


7.1.2 绘制流程图

开始节点

填写id和名称信息


发起申请节点

1.设置id和name


2.添加任务监听器

添加创建时的任务监听器

com.yabushan.activiti.tasklistener.SingleTaskListener

3.设置流出线的message


部门经理审批节点

1.设置id和name

2.添加任务监听器

com.yabushan.activiti.tasklistener.GroupTaskListener


3.设置流出线同意的message

4.设置流出线退回的message



考勤管理员审批节点

1.设置id和name

2.设置任务监听器

com.yabushan.activiti.tasklistener.GroupTaskListener

3.设置流出线同意message

由于只有一个流出线,所以可以不用设置message。勾选默认流转即可流转


结束节点

1.设置id和name

此处可以优化设置一个监听器,当任务结束时,修改业务状态



主流程名称

点击空白处,修改流程主题名称。


7.1.3 保存流程图设计

流程图设计完成后,点击左上角的保存按钮,输入流程名称。点击保存



7.2 流程图发布

7.2.1 流程图发布

流程图在7.1中绘制完成后,回到系统菜单:工作流管理》工作流模型

点击刷新,即可查看到刚刚创建的流程图,点击右侧的发布按钮,进行发布



7.2.2 生成审批配置节点

7.2.1 中对流程发布成功后,勾选刚发布的员工请假流程管理。点击生成审批配置节点按钮



7.2.2 审批节点配置

菜单路径:工作流管理》节点配置

输入实例ID,点击搜索,即可模糊搜索刚刚生成审批的节点信息


7.2.2.1 发起申请

发起申请节点,选择处理类型为:按申请人


7.2.2.2 部门经理审批

部门经理节点,处理类型选择:按角色,角色选择:部门经理


7.2.2.3 考勤管理员审批

处理类型选择:按角色,角色选择:考勤管理员


7.2.2.4 配置完成后的结果

节点处理人员配置完成后的结果如下



7.3 节点审批按钮配置

菜单路径:工作流管理》工作流模型》操作列》节点信息

点击节点信息,打开如下页面


发起申请

点击按钮信息,点击添加按钮,输入如下图信息,点击保存


部门经理审批

点击按钮信息,点击添加按钮,输入如下图信息,点击保存


考勤管理员审批

点击按钮信息,点击添加按钮,输入如下图信息,点击保存


到此完成了流程的发布配置


7.3 业务绑定流程

7.3.1 表单也业务列表的配置

按照快速入门的一到六中步骤完成请假表单的配置,详细参考一到六。下图只列出关键信息


1.表单设计

{
  "widgetList": [
    {
      "type": "date-range",
      "icon": "date-range-field",
      "formItemFlag": true,
      "options": {
        "name": "daterange67074",
        "label": "请假时间",
        "labelAlign": "",
        "type": "daterange",
        "defaultValue": null,
        "startPlaceholder": "",
        "endPlaceholder": "",
        "columnWidth": "200px",
        "size": "",
        "labelWidth": null,
        "labelHidden": false,
        "readonly": false,
        "disabled": false,
        "hidden": false,
        "clearable": true,
        "editable": false,
        "format": "yyyy-MM-dd",
        "valueFormat": "yyyy-MM-dd",
        "required": false,
        "requiredHint": "",
        "validation": "",
        "validationHint": "",
        "customClass": "",
        "labelIconClass": null,
        "labelIconPosition": "rear",
        "labelTooltip": null,
        "onCreated": "",
        "onMounted": "",
        "onChange": "",
        "onFocus": "",
        "onBlur": "",
        "onValidate": ""
      },
      "id": "daterange67074"
    },
    {
      "type": "select",
      "icon": "select-field",
      "formItemFlag": true,
      "options": {
        "name": "select91105",
        "label": "请假类型",
        "labelAlign": "",
        "defaultValue": "事假",
        "placeholder": "",
        "columnWidth": "200px",
        "size": "",
        "labelWidth": null,
        "labelHidden": false,
        "disabled": false,
        "hidden": false,
        "clearable": true,
        "filterable": false,
        "allowCreate": false,
        "remote": false,
        "automaticDropdown": false,
        "multiple": false,
        "multipleLimit": 0,
        "optionItems": [
          {
            "label": "事假",
            "value": "事假"
          },
          {
            "label": "病假",
            "value": "病假"
          },
          {
            "label": "年假",
            "value": "年假"
          }
        ],
        "required": false,
        "requiredHint": "",
        "validation": "",
        "validationHint": "",
        "customClass": "",
        "labelIconClass": null,
        "labelIconPosition": "rear",
        "labelTooltip": null,
        "onCreated": "",
        "onMounted": "",
        "onRemoteQuery": "",
        "onChange": "",
        "onFocus": "",
        "onBlur": "",
        "onValidate": ""
      },
      "id": "select91105"
    },
    {
      "type": "textarea",
      "icon": "textarea-field",
      "formItemFlag": true,
      "options": {
        "name": "textarea94128",
        "label": "请假原因",
        "labelAlign": "",
        "rows": 8,
        "defaultValue": "",
        "placeholder": "",
        "columnWidth": "200px",
        "size": "",
        "labelWidth": null,
        "labelHidden": false,
        "readonly": false,
        "disabled": false,
        "hidden": false,
        "required": true,
        "requiredHint": "",
        "validation": "",
        "validationHint": "",
        "customClass": "",
        "labelIconClass": null,
        "labelIconPosition": "rear",
        "labelTooltip": null,
        "minLength": null,
        "maxLength": null,
        "showWordLimit": false,
        "onCreated": "",
        "onMounted": "",
        "onInput": "",
        "onChange": "",
        "onFocus": "",
        "onBlur": "",
        "onValidate": ""
      },
      "id": "textarea94128"
    }
  ],
  "formConfig": {
    "modelName": "formData",
    "refName": "vForm",
    "rulesName": "rules",
    "labelWidth": 80,
    "labelPosition": "left",
    "size": "",
    "labelAlign": "label-left-align",
    "cssCode": "",
    "customClass": "",
    "functions": "",
    "layoutType": "PC",
    "onFormCreated": "",
    "onFormMounted": "",
    "onFormDataChange": ""
  }
}


2.业务列表设计


[
{
key: '1',
label: '姓名',
prop: 'CREATED_BY',
width: '150',
headerAlign: 'center',
align: 'right',
scope: false,
sortable: true
},
{
key: '2',
label: '请假开始时间',
prop: 'date64089',
width: '150',
headerAlign: 'center',
align: 'right',
scope: false,
sortable: true
},
{
key: '2',
label: '请假结束时间',
prop: 'date16472',
width: '150',
headerAlign: 'center',
align: 'right',
scope: false,
sortable: true
},
{
key: '2',
label: '请假类型',
prop: 'select91105',
width: '150',
headerAlign: 'center',
align: 'right',
scope: false,
sortable: true
},
{
key: '2',
label: '请假原因',
prop: 'textarea94128',
width: '150',
headerAlign: 'center',
align: 'right',
scope: false,
sortable: true
},
{key: '6',
label: '创建时间',
prop: 'CREATED_TIME',
width: '150',
headerAlign: 'center',
align: 'center',
scope: false,
sortable: true
},
{
key: '7',
label: '状态',
prop: 'status48624',
width: '150',
headerAlign: 'center',
align: 'right',
scope: false,
sortable: true
},
]

3.菜单设计




7.4 发起流程

菜单路径:OA系统》请假管理

1. 发起请假申请

点击发起申请按钮

填写请假信息,点击提交

选择审批人,点击确定即可完成发起申请


2.部门经理审批

部门经理登录系统,在工作台中会收到审批待办

点击待办打开审批页面

点击同意选择下一步处理人,点击确定。完成审批


3.考勤管理员审批

考勤管理员登录系统,在工作台会收到一条待办

点击标题打开待办页面

点击同意,填写审批意见,点击确定完成审批

4、流程结束

至此完成了整个审批的流程

思考:代码都可以实现这些动作,为什么还需要工作流呢?

代码实现的缺点:

1.代码实现这些功能的话,每次流程推进都要去判断节点和流程的流向

2.代码硬编码的话,如果流程只需要增加或者删除一个节点,就需要改动代码

3.不利于维护和扩展

4.不利于代码的重用性

工作流实现的优点:

1.程序员不需要关心流程流转,节点等细节

2.减少了很多硬性编码,维护和扩展都很方便

3.工作流都有一套完善的API.调用api就可以实现功能,开发效率高

4.一套完善的工作流还提供用户随时修改流程的功能.减少了用户因为需求分析的变动带来的工作量.

相关推荐

自学Python,写一个挨打的游戏代码来初识While循环

自学Python的第11天。旋转~跳跃~,我~闭着眼!学完循环,沐浴着while的光芒,闲来无事和同事一起扯皮,我说:“编程语言好神奇,一个小小的循环,竟然在生活中也可以找到原理和例子”,同事也...

常用的 Python 工具与资源,你知道几个?

最近几年你会发现,越来越多的人开始学习Python,工欲善其事必先利其器,今天纬软小编就跟大家分享一些常用的Python工具与资源,记得收藏哦!不然下次就找不到我了。1、PycharmPychar...

一张思维导图概括Python的基本语法, 一周的学习成果都在里面了

一周总结不知不觉已经自学Python一周的时间了,这一周,从认识Python到安装Python,再到基本语法和基本数据类型,对于小白的我来说无比艰辛的,充满坎坷。最主要的是每天学习时间有限。只...

三日速成python?打工人,小心钱包,别当韭菜

随着人工智能的热度越来越高,许多非计算机专业的同学们也都纷纷投入到学习编程的道路上来。而Python,作为一种相对比较容易上手的语言,也越来越受欢迎。网络上各类网课层出不穷,各式广告令人眼花缭乱。某些...

Python自动化软件测试怎么学?路线和方法都在这里了

Python自动化测试是指使用Python编程语言和相关工具,对软件系统进行自动化测试的过程。学习Python自动化测试需要掌握以下技术:Python编程语言:学习Python自动化测试需要先掌握Py...

Python从放弃到入门:公众号历史文章爬取为例谈快速学习技能

这篇文章不谈江流所专研的营销与运营,而聊一聊技能学习之路,聊一聊Python这门最简单的编程语言该如何学习,我完成的第一个Python项目,将任意公众号的所有历史文章导出成PDF电子书。或许我这个Py...

【黑客必会】python学习计划

阅读Python文档从Python官方网站上下载并阅读Python最新版本的文档(中文版),这是学习Python的最好方式。对于每个新概念和想法,请尝试运行一些代码片段,并检查生成的输出。这将帮助您更...

公布了!2025CDA考试安排

CDA数据分析师报考流程数据分析师是指在不同行业中专门从事行业数据搜集、整理、分析依据数据作出行业研究评估的专业人员CDA证书分为1-3级,中英文双证就业面广,含金量高!!?报考条件:满18...

一文搞懂全排列、组合、子集问题(经典回溯递归)

原创公众号:【bigsai】头条号:程序员bigsai前言Hello,大家好,我是bigsai,longtimenosee!在刷题和面试过程中,我们经常遇到一些排列组合类的问题,而全排列、组合...

「西法带你学算法」一次搞定前缀和

我花了几天时间,从力扣中精选了五道相同思想的题目,来帮助大家解套,如果觉得文章对你有用,记得点赞分享,让我看到你的认可,有动力继续做下去。467.环绕字符串中唯一的子字符串[1](中等)795.区...

平均数的5种方法,你用过几种方法?

平均数,看似很简单的东西,其实里面包含着很多学问。今天,分享5种经常会用到的平均数方法。1.算术平均法用到最多的莫过于算术平均法,考试平均分、平均工资等等,都是用到这个。=AVERAGE(B2:B11...

【干货收藏】如何最简单、通俗地理解决策树分类算法?

决策树(Decisiontree)是基于已知各种情况(特征取值)的基础上,通过构建树型决策结构来进行分析的一种方式,是常用的有监督的分类算法。决策树算法是机器学习中的一种经典算法,它通过一系列的规则...

面试必备:回溯算法详解

我们刷leetcode的时候,经常会遇到回溯算法类型题目。回溯算法是五大基本算法之一,一般大厂也喜欢问。今天跟大家一起来学习回溯算法的套路,文章如果有不正确的地方,欢迎大家指出哈,感谢感谢~什么是回溯...

「机器学习」决策树——ID3、C4.5、CART(非常详细)

决策树是一个非常常见并且优秀的机器学习算法,它易于理解、可解释性强,其可作为分类算法,也可用于回归模型。本文将分三篇介绍决策树,第一篇介绍基本树(包括ID3、C4.5、CART),第二篇介绍Ran...

大话AI算法: 决策树

所谓的决策树算法,通俗的说就是建立一个树形的结构,通过这个结构去一层一层的筛选判断问题是否好坏的算法。比如判断一个西瓜是否好瓜,有20条西瓜的样本提供给你,让你根据这20条(通过机器学习)建立起...