# APP请假

该文章主要演示APP请假,并且在PC端完成审批的业务流程。帮助大家快速了解移动端如何整合工作进行业务开发!

# 需求描述

我们以三国为主题,假设蜀国是一个组织机构。里面设置有将军,军师,主公三种角色。假设关羽提交一个请假申请,需要诸葛亮进行初审,刘备进行终审。

请假状态说明

待审批: 申请提交后等到上级部门审核
未批准: 上级部门进行了驳回操作,用户可以修改申请内容,重新提交
已取消: 上级取消流程,进入结束状态
已批准: 所有上级部门都同意, 流程结束

微信扫一扫,立即体验
foo

# 设计流程图

点击节点的右侧,选择小扳手,将节点设置为用户任务(userTask)节点,并且按照下面红色方框设置节点属性。
foo

第一个红框,assignee这个是设置发起人的流程变量。第二个红框,是请假表单需要提交的参数。

foo

第一个红框是审批的流程变量,可以动态赋值。 第二个红框是审批之后提交的参数。

foo

第一个红框是审批的流程变量,可以动态赋值。 第二个红框是审批之后提交的参数。

# XML内容

<?xml version="1.0" encoding="UTF-8"?>
<bpmn:definitions 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:camunda="http://camunda.org/schema/1.0/bpmn" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" xmlns:modeler="http://camunda.org/schema/modeler/1.0" id="Definitions_1g84ud8" targetNamespace="http://bpmn.io/schema/bpmn" exporter="Camunda Modeler" exporterVersion="5.10.0" modeler:executionPlatform="Camunda Platform" modeler:executionPlatformVersion="7.19.0">
  <bpmn:process id="Process_0c2xy44" name="APP请假" isExecutable="true">
    <bpmn:startEvent id="StartEvent_1" camunda:initiator="start">
      <bpmn:outgoing>Flow_0fq95hn</bpmn:outgoing>
    </bpmn:startEvent>
    <bpmn:sequenceFlow id="Flow_0fq95hn" sourceRef="StartEvent_1" targetRef="Activity_0rbn70i" />
    <bpmn:userTask id="Activity_0rbn70i" name="申请" camunda:assignee="${general}">
      <bpmn:extensionElements>
        <camunda:formData>
          <camunda:formField id="days" label="请假天数" type="long" defaultValue="1" />
          <camunda:formField id="reason" label=" 请假理由" type="string" defaultValue="回家" />
          <camunda:formField id="type" label="请假类型" type="string" defaultValue="事假" />
          <camunda:formField id="d" label="test" type="string" defaultValue="理由">
            <camunda:properties />
            <camunda:validation />
          </camunda:formField>
        </camunda:formData>
      </bpmn:extensionElements>
      <bpmn:incoming>Flow_0fq95hn</bpmn:incoming>
      <bpmn:outgoing>Flow_01kvxy5</bpmn:outgoing>
    </bpmn:userTask>
    <bpmn:sequenceFlow id="Flow_01kvxy5" sourceRef="Activity_0rbn70i" targetRef="Activity_1rht9n2" />
    <bpmn:userTask id="Activity_1rht9n2" name="初审" camunda:assignee="${guide}">
      <bpmn:extensionElements>
        <camunda:formData>
          <camunda:formField id="comment" label="评论" type="string" defaultValue="good" />
          <camunda:formField id="imageUrl" label="图片" type="string" />
        </camunda:formData>
        <camunda:taskListener class="org.jeecg.modules.camunda.usertask.listener.CopyListener" event="complete" />
      </bpmn:extensionElements>
      <bpmn:incoming>Flow_01kvxy5</bpmn:incoming>
      <bpmn:outgoing>Flow_1whul4k</bpmn:outgoing>
    </bpmn:userTask>
    <bpmn:sequenceFlow id="Flow_1whul4k" sourceRef="Activity_1rht9n2" targetRef="Activity_0n2qyol" />
    <bpmn:userTask id="Activity_0n2qyol" name="终审" camunda:assignee="${leader}">
      <bpmn:extensionElements>
        <camunda:formData>
          <camunda:formField id="comment" label="评论" type="string" defaultValue="ok" />
          <camunda:formField id="pass" label="通过" type="boolean" defaultValue="true" />
          <camunda:formField id="imageUrl" label="图片" type="string" />
        </camunda:formData>
        <camunda:taskListener class="org.jeecg.modules.camunda.usertask.listener.CopyListener" event="complete" />
      </bpmn:extensionElements>
      <bpmn:incoming>Flow_1whul4k</bpmn:incoming>
      <bpmn:outgoing>Flow_0f4i22k</bpmn:outgoing>
    </bpmn:userTask>
    <bpmn:endEvent id="Event_1i65d7z">
      <bpmn:incoming>Flow_0f4i22k</bpmn:incoming>
    </bpmn:endEvent>
    <bpmn:sequenceFlow id="Flow_0f4i22k" sourceRef="Activity_0n2qyol" targetRef="Event_1i65d7z" />
    <bpmn:textAnnotation id="TextAnnotation_1vu0v5p">
      <bpmn:text>军师</bpmn:text>
    </bpmn:textAnnotation>
    <bpmn:association id="Association_07asc3h" sourceRef="Activity_1rht9n2" targetRef="TextAnnotation_1vu0v5p" />
  </bpmn:process>

</bpmn:definitions>

# APP端操作

foo

以上就是微信小程序端提交请假申请的步骤。如需体验,请扫描下方微信二维码

foo

# PC端操作

zoom

使用关羽这个账号登陆Camunda演示站,找到APP请假菜单, 便可以查询到自己的提交的请假数据。(密码在演示站点的登陆页面左侧)

zoom

使用诸葛亮,刘备的账号,依次登陆系统,完成审批操作。(密码在演示站点的登陆页面左侧)

zoom

再次返回微信小程序,便可以看到审批的详情信息。 JeecgFlow (opens new window)