1. 业务开发

1.1. 前端开发

1.1.1. 绑定流程业务

在业务表单中使用<ms-flow>组件

<ms-flow>组件参数说明

组件参数 是否必填 说明 默认值
dataId 当前业务数据id
formData 当前业务数据
category 查询业务流程数据类型

下面以栏目表单为例

...
<!-- 头部添加组件引入 -->
<#include "flow/components/ms-flow.ftl"/>
...

...
<!-- 组件使用 -->
<ms-flow v-if="!form.id || form.leaf" :form-data="form" :data-id="form.id" :category="'栏目'"></ms-flow>
...

<!-- vue js -->
var categoryForm = Vue.defineComponent({
    components:{
        ...
        // 注册工作流组件
        MsFlow
        ...
    },
...
})

1.1.2. 展示流程图数据

下面以文章列表为例

<ms-flow-chart>组件参数说明

组件参数 是否必填 说明 默认值
insId 流程实例ID

前端代码

...
<!-- 头部添加组件引入 -->
<#include "flow/components/ms-flow-chart.ftl"/>
...

<!--操作列展示-->
<template v-if="scope.row.flowInstanceId">
    <@shiro.hasPermission name="cms:content:log">
    <ms-flow-chart v-if="hasPermission('cms:content:log')" :ins-id="scope.row.flowInstanceId"></ms-flow-chart>
    </@shiro.hasPermission>
</template>

...
<!-- 组件使用 -->
<ms-flow-chart v-model:flow-chart="flowChart" :ins-id="insId"></ms-flow-chart>
...

<!-- vue js -->
var categoryForm = Vue.defineComponent({
    components:{
        ...
        // 注册流程图组件
        MsFlowChart
        ...
    }
})

[!tip] 默认以弹窗形式展示流程图。若需自定义展示方式,可修改 ms-flow-chart 组件进行定制化开发。

1.1.3. 提交组件

通用提交组件参数说明

组件参数 是否必填 说明 默认值
dataId 当前业务数据id
flowCode 流程编码
list 提交后执行方法
...
<!-- 头部添加组件引入 -->
<#include "flow/components/ms-flow-submit.ftl"/>
...

<!--操作列展示-->
<ms-flow-submit v-if="scope.row.progressStatus == 0 || scope.row.progressStatus == 4" @list="list" :data-id="scope.row.id" flow-code="common_role_flow"></ms-flow-submit>


<!-- vue js -->
var categoryForm = Vue.defineComponent({
    components:{
        ...
        // 注册流程图组件
        MsFlowSubmit
        ...
    }
})

后端代码

在对应实体类继承BaseFlowEntity

public class ContentEntity extends BaseFlowEntity implements Serializable {

1.2. 后端开发

这里有两种情况

1.2.1. 第一种

通过父业务控制具体业务流程,如文章审核,需要区分不同栏目走不同流程的业务参考以下步骤

添加流程字段

这是父业务表单需要增加的字段

ALTER TABLE YOUR_TABLE
 ADD COLUMN FLOW_CODE VARCHAR(255) DEFAULT '' COMMENT '流程编码';

这是具体业务表单需要增加的字段

ALTER TABLE YOUR_TABLE
    ADD COLUMN PROGRESS_STATUS varchar(25) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT '0' COMMENT '流程状态' AFTER DEL,
    ADD COLUMN INSTANCE_ID varchar(25) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '流程实例id' AFTER NEXT_IDS,
    ADD COLUMN NODE_CODE varchar(100) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '节点编码' AFTER INSTANCE_ID,
    ADD COLUMN NODE_NAME varchar(100) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT '待提交' COMMENT '流程节点名称' AFTER NODE_CODE,
    ADD COLUMN NODE_TYPE int NULL DEFAULT NULL COMMENT '节点类型(0开始节点 1中间节点 2结束节点 3互斥网关 4并行网关)' AFTER NODE_NAME;

业务代码

以下依旧以栏目文章审批为例

提交业务

    public void submit(String dataId, String handleName) {
        ContentEntity content = contentBiz.getById(dataId);
        // 设置流程编码
        FlowParams flowParams = FlowParams.build().flowCode(this.getFlowCodeByCategoryId(content.getCategoryId()));
        // 提交审核
        flowBiz.submit(flowParams,dataId);
    }

在 flowParams 中,flowCode 编码是必需的,系统将根据此编码查询相应的业务数据。开发者需要在业务代码中组织好相关业务数据,最后通过调用 flowBiz.submit() 方法来完成审核提交操作。

其他业务如撤回、审批和终止业务代码参考ContentFlowService类以及IFlowBiz类

1.2.2. 第二种

没有很复杂的业务,整个业务可能就一个审批流程

添加流程字段

在业务表需要增加以下字段

ALTER TABLE YOUR_TABLE
    ADD COLUMN PROGRESS_STATUS varchar(25) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT '0' COMMENT '流程状态' AFTER DEL,
    ADD COLUMN INSTANCE_ID varchar(25) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '流程实例id' AFTER NEXT_IDS,
    ADD COLUMN NODE_CODE varchar(100) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '节点编码' AFTER INSTANCE_ID,
    ADD COLUMN NODE_NAME varchar(100) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT '待提交' COMMENT '流程节点名称' AFTER NODE_CODE,
    ADD COLUMN NODE_TYPE int NULL DEFAULT NULL COMMENT '节点类型(0开始节点 1中间节点 2结束节点 3互斥网关 4并行网关)' AFTER NODE_NAME;

业务代码

提交业务

    public ResultData submit(...) {
        ... 编写业务逻辑...
        // 设置流程编码
        FlowParams flowParams = FlowParams.build().flowCode("固定流程编码");
        // 提交审核
        flowBiz.submit(flowParams,dataId);
    }

其他业务如撤回、审批和终止业务代码参考FlowAction

Copyright © mingsoft.net 2012-2022 all right reserved,powered by Gitbook该文件修订时间: 2025-12-02 10:23:43

results matching ""

    No results matching ""

    results matching ""

      No results matching ""