问题:jeesite工作流如何使用?
背景:公司没人熟悉工作流,现在要上线办公系统,请假,加班,报销,预审批,用印,付款等工作流要写,之前有简单版本,但是用哪个写工作流要画好多流程图(委派人写了人名,而不是后台定义的),等到发现可以后台定义后,基本写完了,原先有请假,加班,报销,但只在合肥使用,只区分研发部和非研发部,写了人名,后期跟着这个版本做了好多错事,还不好改动,有种要掐死前面的人的冲动
1.画流程图
这一步需要注意的还是挺多的,首先报销开始
名称用于流转信息展示时显示用的,启动器是当前用户,表单编号是流程流转时前往的控制器层
然后用户任务
名称是流转信息展示的,主键是用来在controller判断当前处于什么用户的,分配用户是执行人(这里可以写用户的登录名,或者${sign} 启动流程前给sign赋值就可以 PS:之前人在这儿直接写的登录名,我跟着他写的累死了,忠告:千万别接手别人的代码,会哭的)
路线条件
我一般设置pass==0,1,2之类的来判断,后台根据他点击的是同意,驳回或者转至财务总监按钮来给pass复制0,1,2
最后点击空白处
给流程标识和名称赋值。然后部署即可
2.启动流程
以报销为例,用户输入信息后,点击提交申请,保存数据到业务表,同时启动工作流
actTaskService.startProcess(ActUtils.ACT_SALE_GET6[0], ActUtils.ACT_SALE_GET6[1], getSale.getId(),
getSale.getReason(), vars);
ACT_SALE_GET6为全局常量,此处第一个为流程标识,第二个为业务表名,第三个为数据id,第四个为需要提供的值
vars为一个hashmap,如果工作流需要赋值的话,如用户任务可以在这儿动态赋值,还可以写一些在待办任务展示的信息,比如报销金额,流程启动后会前往下一用户那儿,同时传递的还有一些流程信息
3.用户任务
进入下一用户后,该用户会在待办任务中展示其列表,点击任务办理后,会获得信息,同时通过启动器的表单编号来到对应的控制层,前往相关的jsp页面(一般两种页面,一种处理任务的同意驳回页面,还有一种修改表单的重新提交销毁申请页面)
@RequestMapping(value = "form")
public String form(GetSale getSale, Model model) {
String view = "getSaleForm";
// if(getSale.getStatus()==0)
if (StringUtils.isNotBlank(getSale.getId())) {
// 获取环节ID
String taskDefKey = getSale.getAct().getTaskDefKey();
// 查看申请
if (getSale.getAct().isFinishTask()) {
view = "getSaleView";
}
// 人事主管审核
else if ("prTask2".equals(taskDefKey)) {
view = "getSaleAudit";
}
,jsp页面按钮如下
<input id="btnSubmit" class="btn btn-primary" type="submit"
value="同 意" οnclick="$('#flag').val('yes')" />
<input id="btnSubmit" class="btn btn-inverse" type="submit"
value="驳 回" οnclick="$('#flag').val('no')" />
后台通过flag的值来判断点击的是什么按钮,同时给pass赋值
Map<String, Object> vars = Maps.newHashMap();
vars.put("pass", "yes".equals(getSale.getAct().getFlag()) ? "1" : "0");
// 提交流程任务
actTaskService.complete(getSale.getAct().getTaskId(), getSale.getAct().getProcInsId(),
getSale.getAct().getComment(), vars);
4.注意事项
整个流程都是在jeesite自带的待办任务中处理的,如果需要单独展示自己的报销页面的话,可以自己去业务表查,但是这样查到的数据一般是没有taskId的,taskId是act_ru_task的ID_字段,你可以自己写查询语句,通过流程实例id去查,一般的,流程实例id和taskId是一一对应的(我写的都是这样的毕竟修改申请单只有本人可以),但是如果对应多个用户任务就不是一一对应了