会签的概念是多实例用户任务适用于需要多个人同时处理同一个任务的场景。
所谓加签,是指在会签的基础上临时新增一个或多个审批人的功能,其目的是满足需临时新增审批人的场景需求。
例如,财务流程通常由财务经理进行审核,在某些情况下,财务经理难以决策时,可以使用会签加签的操作临时增加财务总监共同决策。
需求描述
我们以三国为主题,假设蜀国是一个组织机构。里面设置有将军,军师,主公三种角色。假设关羽提交一个请假申请,需要两个军师依次审核,首先是诸葛亮进行审批,接着庞统进行审批,刘备进行终审。(军师在审批的过程中可以临时追加审批人员)
设计流程
设置申请节点的指定用户和内置表单字段。
设置多实例审批节点,注意红框内容,我们设置了一个集合的用户进行审批。
设置主公节点审批的参数配置。
XML内容
Activiti工作流引擎xml内容
<?xml version="1.0" encoding="UTF-8"?>
<bpmn:definitions xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:bpmn="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC" xmlns:activiti="http://activiti.org/bpmn" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" id="Definitions_1" targetNamespace="http://bpmn.io/schema/bpmn">
<bpmn:process id="Process_serial_co_signature_plus" name="串行会签" isExecutable="true">
<bpmn:startEvent id="StartEvent_1">
<bpmn:extensionElements />
<bpmn:outgoing>Flow_08i5xz5</bpmn:outgoing>
</bpmn:startEvent>
<bpmn:userTask id="Activity_1ao6abq" name="军师会签" activiti:assignee="${guide}">
<bpmn:extensionElements>
<activiti:formData>
<activiti:formField id="comment" label="评论" type="string" />
<activiti:formField id="imageUrl" label="图片" type="string" />
</activiti:formData>
</bpmn:extensionElements>
<bpmn:incoming>Flow_17sofv2</bpmn:incoming>
<bpmn:outgoing>Flow_1swwaeb</bpmn:outgoing>
<bpmn:multiInstanceLoopCharacteristics isSequential="true" activiti:collection="${guideList}" activiti:elementVariable="guide" />
</bpmn:userTask>
<bpmn:sequenceFlow id="Flow_1swwaeb" sourceRef="Activity_1ao6abq" targetRef="Activity_0ea9eis" />
<bpmn:userTask id="Activity_0ea9eis" name="主公审批" activiti:assignee="${leader}">
<bpmn:extensionElements>
<activiti:formData>
<activiti:formField id="comment" label="评论" type="string" />
<activiti:formField id="imageUrl" label="图片" type="string" />
</activiti:formData>
</bpmn:extensionElements>
<bpmn:incoming>Flow_1swwaeb</bpmn:incoming>
<bpmn:outgoing>Flow_08nxto9</bpmn:outgoing>
</bpmn:userTask>
<bpmn:endEvent id="Event_0tuzhsx">
<bpmn:incoming>Flow_08nxto9</bpmn:incoming>
</bpmn:endEvent>
<bpmn:sequenceFlow id="Flow_08nxto9" sourceRef="Activity_0ea9eis" targetRef="Event_0tuzhsx" />
<bpmn:sequenceFlow id="Flow_08i5xz5" sourceRef="StartEvent_1" targetRef="Activity_1u6fknq" />
<bpmn:userTask id="Activity_1u6fknq" name="提交申请" activiti:assignee="${general}">
<bpmn:extensionElements>
<activiti:formData>
<activiti:formField id="reason" label=" 请假理由" type="string" />
<activiti:formField id="days" label=" 请假天数" type="long" defaultValue="0" />
<activiti:formField id="type" label="请假类型" type="long" />
</activiti:formData>
</bpmn:extensionElements>
<bpmn:incoming>Flow_08i5xz5</bpmn:incoming>
<bpmn:outgoing>Flow_17sofv2</bpmn:outgoing>
</bpmn:userTask>
<bpmn:sequenceFlow id="Flow_17sofv2" sourceRef="Activity_1u6fknq" targetRef="Activity_1ao6abq" />
</bpmn:process>
<bpmndi:BPMNDiagram id="BPMNDiagram_1">
<bpmndi:BPMNPlane id="BPMNPlane_1" bpmnElement="Process_serial_co_signature_plus">
<bpmndi:BPMNShape id="_BPMNShape_StartEvent_2" bpmnElement="StartEvent_1">
<dc:Bounds x="2" y="102" width="36" height="36" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_0av7m0g_di" bpmnElement="Activity_1ao6abq">
<dc:Bounds x="260" y="80" width="100" height="80" />
<bpmndi:BPMNLabel />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_1d1hg00_di" bpmnElement="Activity_0ea9eis">
<dc:Bounds x="420" y="80" width="100" height="80" />
<bpmndi:BPMNLabel />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Event_0tuzhsx_di" bpmnElement="Event_0tuzhsx">
<dc:Bounds x="582" y="102" width="36" height="36" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_0dnwlm2_di" bpmnElement="Activity_1u6fknq">
<dc:Bounds x="90" y="80" width="100" height="80" />
<bpmndi:BPMNLabel />
</bpmndi:BPMNShape>
<bpmndi:BPMNEdge id="Flow_1swwaeb_di" bpmnElement="Flow_1swwaeb">
<di:waypoint x="360" y="120" />
<di:waypoint x="420" y="120" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_08nxto9_di" bpmnElement="Flow_08nxto9">
<di:waypoint x="520" y="120" />
<di:waypoint x="582" y="120" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_08i5xz5_di" bpmnElement="Flow_08i5xz5">
<di:waypoint x="38" y="120" />
<di:waypoint x="90" y="120" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_17sofv2_di" bpmnElement="Flow_17sofv2">
<di:waypoint x="190" y="120" />
<di:waypoint x="260" y="120" />
</bpmndi:BPMNEdge>
</bpmndi:BPMNPlane>
</bpmndi:BPMNDiagram>
</bpmn:definitions>
演示操作
使用张飞登陆演示站,找到串行会签菜单,提交一个请假申请。
使用诸葛亮登陆演示站,找到待办任务菜单,并进行加签操作。
接上一步,此时可以看到将郭嘉加入审批中。
使用诸葛亮登陆演示站,找到待办任务菜单,并进行审批同意操作。
使用庞统登陆演示站,找到待办任务菜单,并进行审批同意操作。
使用郭嘉登陆演示站,找到待办任务菜单,并进行审批同意操作。
以上就是在串行会签的场景进行了加签操作, 感兴趣的可以在线体验,访问: JeecgFlow