首页 > 社交 > 科普中国

SpringBoot+Vue+Flowable,模拟一个请假审批流程

常驻编辑 科普中国 2022-08-11 流程   流程图   矩形   变量   参数   页面   简单   经理   项目   用户
  • 另外,上文中部分节点中还涉及到变量 ${},这个变量是在流程执行的过程中传入进来的。
  • 总而言之,只要小伙伴们静下心来认真阅读一下上面的 XML,你会发现 So Easy!N50拜客生活常识网

    4. 请假申请

    好了,接下来我们就来看一个具体的请假申请。由于请假流程只要放对位置,就会自动加载,所以我们并不需要手动加载请假流程,直接开始一个请假申请流程即可。N50拜客生活常识网

    4.1 服务端接口

    首先我们需要一个实体类来接受前端传来的请假参数:用户名、请假天数以及请假理由:N50拜客生活常识网

    public class AskForLeaveVO {    private String name;    private Integer days;    private String reason;    // 省略 getter/setter}

    再拿出祖传的 RespBean,以便响应数据方便一些:N50拜客生活常识网

    public class RespBean {    private Integer status;    private String msg;    private Object data;    public static RespBean ok(String msg, Object data) {        return new RespBean(200, msg, data);    }    public static RespBean ok(String msg) {        return new RespBean(200, msg, null);    }    public static RespBean error(String msg, Object data) {        return new RespBean(500, msg, data);    }    public static RespBean error(String msg) {        return new RespBean(500, msg, null);    }    private RespBean() {    }    private RespBean(Integer status, String msg, Object data) {        this.status = status;        this.msg = msg;        this.data = data;    }    // 省略 getter/setter}

    接下来我们提供一个处理请假申请的接口:N50拜客生活常识网

    @RestControllerpublic class AskForLeaveController {    @Autowired    AskForLeaveService askForLeaveService;    @PostMapping("/ask_for_leave")    public RespBean askForLeave(@RequestBody AskForLeaveVO askForLeaveVO) {        return askForLeaveService.askForLeave(askForLeaveVO);    }}

    核心逻辑在 AskForLeaveService 中,来继续看:N50拜客生活常识网

    @Servicepublic class AskForLeaveService {    @Autowired    RuntimeService runtimeService;    @Transactional    public RespBean askForLeave(AskForLeaveVO askForLeaveVO) {        Map variables = new HashMap<>();        variables.put("name", askForLeaveVO.getName());        variables.put("days", askForLeaveVO.getDays());        variables.put("reason", askForLeaveVO.getReason());        try {            runtimeService.startProcessInstanceByKey("holidayRequest", askForLeaveVO.getName(), variables);            return RespBean.ok("已提交请假申请");        } catch (Exception e) {            e.printStackTrace();        }        return RespBean.error("提交申请失败");    }}

    小伙伴们看一下,在提交请假申请的时候,分别传入了 name、days 以及 reason 三个参数,我们将这三个参数放入到一个 Map 中,然后通过 RuntimeService#startProcessInstanceByKey 方法来开启一个流程,开启流程的时候一共传入了三个参数:N50拜客生活常识网

    1. 第一个参数表示流程引擎的名字,这就是我们刚才在流程的 XML 文件中定义的名字。
    2. 第二个参数表示当前这个流程的 key,我用了申请人的名字,将来我们可以通过申请人的名字查询这个人曾经提交的所有申请流程。

    相关阅读:

  • 两地隔得远怎么办婚礼
  • 婚礼只办一场在女方办是倒插门吗
  • 郑州富士康怎么样(郑州富士康入职流程)
  • 猪八戒网怎么接单(猪八戒网接单流程)
  • 辟谷怎么读(第一次辟谷的详细流程)
  • 毕业后考研怎么报名(结业生考研报名流程)
  • 怎么面试(面试别人的话术和流程)
  • 工装包括哪些(工装施工流程全部工序和详细)
  • 哪些银行可以办etc(etc如何办理流程)
  • 房产证哪里办理(办理房证在哪里办理流程)
    • 网站地图 |
    • 声明:登载此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述。文章内容仅供参考,不做权威认证,如若验证其真实性,请咨询相关权威专业人士。