说明
如上图,本文实现领导 同意 或 拒绝 功能
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>
测试
在下图,添加意见,点击 同意 或 拒绝 按钮:
