flowable6.3教程-springboot-请假流程第四步:领导审批

说明

如上图,本文实现领导 同意 或 拒绝 功能

Controller

需要传入 qingjia 表主键、任务 pid、意见、同意或拒绝标志(1表示同意,2表示拒绝)

在 QingjiaController 类中增加下面代码:

/**
 * 部门经理同意
 * @return
 */
@RequestMapping(value="/deal")
public JsonResult shenpi(String id,String actPid,String approvedTxt,String approved) {
    qingjiaService.shenpi(id,actPid,approvedTxt,approved);
    return JsonResult.success("审批结束");
}

Service

在 QingjiaService 增加下面代码

/**
 * 部门经理审批
 */
public void shenpi(String id,String actPid,String approvedTxt,String approved){
    Qingjia qingjiaDB = qingjiaMapper.selectByPrimaryKey(id);
    Task task = taskService.createTaskQuery()
            .processInstanceId(actPid).singleResult();
    Map variables = new HashMap<String, Object>();
//        在 CallExternalSystemDelegate、SendRejectionMail类中使用
    variables.put("emp", qingjiaDB.getEmp());
    // approved 是流程定义中的值,不能改动
    if("1".equals(approved)) {
        variables.put("approved", true);
        //        在 CallExternalSystemDelegate类中使用
        variables.put("day", qingjiaDB.getDay());
    }else{
        variables.put("approved", false);

    }
//        传入tid
    taskService.complete(task.getId(), variables);


    Qingjia qingjia = new Qingjia();
    qingjia.setId(id);
    qingjia.setApproved(Integer.parseInt(approved));
    qingjia.setApprovedTxt(approvedTxt);
    qingjia.setApprovedTime(new Date());
    qingjiaMapper.updateByPrimaryKeySelective(qingjia);
}

html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script src="js/jquery-1.11.0.min.js"></script>
    <script>
        function getParam(name)
        {
            var query = window.location.search.substring(1);
            var vars = query.split("&");
            for (var i=0;i<vars.length;i++) {
                var pair = vars[i].split("=");
                if(pair[0] == name){return pair[1];}
            }
            return(false);
        }
        function init(){
            const id = getParam("id")
            const actPid = getParam("actPid")
            console.log(id,actPid)
            $.ajax({
                url:'/qingjia/showDetail',//请求的url
                type:'POST', //请求方式,GET或POST
                data:{ //发送服务器的数据
                    id:id,
                },
                dataType:'json',  //返回的数据格式:json/xml/html/script/jsonp/text
                success:function(data,textStatus,jqXHR){ //statusCode是2xx 或 304时,执行该函数

                    console.log(data)
                    $("#emp").val(data.data.emp)
                    $("#desc").val(data.data.desc)
                    $("#day").val(data.data.day)
                },
                error:function(xhr,textStatus){ //statusCode是 2xx 或 304 以外的值时,执行该函数
                    console.log('错误')
                    console.log(xhr)
                    console.log(textStatus)
                }
            })

        }
        function doSubmit(e){
            console.log("e::",e)
            const id = getParam("id")
            const actPid = getParam("actPid")

            var approved_txt = $("#approved_txt").val()
            if(approved_txt == ''){
                alert("请输入审批意见!")
                return
            }

            $.ajax({
                url:'/qingjia/deal',//请求的url
                type:'POST', //请求方式,GET或POST
                data:{ //发送服务器的数据
                    id:id,
                    actPid:actPid,
                    approvedTxt:approved_txt,
                    approved:e.data,
                },
                dataType:'json',  //返回的数据格式:json/xml/html/script/jsonp/text
                success:function(data,textStatus,jqXHR){ //statusCode是2xx 或 304时,执行该函数
                    alert(data.msg)
                    console.log(data)
                    console.log(textStatus)
                    console.log(jqXHR)
                },
                error:function(xhr,textStatus){ //statusCode是 2xx 或 304 以外的值时,执行该函数
                    console.log('错误')
                    console.log(xhr)
                    console.log(textStatus)
                }
            })

        }
        window.onload = function () {
            init()
            $("#sbt1").click(1,doSubmit);
            $("#sbt2").click(2,doSubmit);
        }
    </script>
</head>
<body>
请假人:<input type="text" id="emp" readonly><br>
请假原因:<input type="text" id="desc" readonly><br>
请假天数:<input type="text" id="day" readonly><br>
审批意见:<input id="approved_txt"><br>
<input type="button" value="同意" id="sbt1">
<input type="button" value="拒绝" id="sbt2">


</body>
</html>

测试

在下图,添加意见,点击 同意 或 拒绝 按钮:


原文出处:/show_1IX5jNLX2KTU.html