1.构建流程图,示例如下:
2.发起流程
public void startProcess(AirBlowingBaseInfo airBlowingBaseInfo) { List<String> personList = new ArrayList<String>(); AirTaskInfo airTaskInfo = airBlowingBaseInfo.getAirTaskInfo(); Map<String,Object> vars = new HashMap<String,Object>(); if(null != airTaskInfo.getFormCirculateuserCylinder() && !airTaskInfo.getFormCirculateuserCylinder().equals("")) { vars.put("formCirculateuserMotion",airTaskInfo.getFormCirculateuserMotion()); //此处的formCirculateuserMotion为1节点的分配用户 vars.put("formCirculateuserCylinder",airTaskInfo.getFormCirculateuserCylinder()); //此处的formCirculateuserCylinder为2节点的分配用户 } AirTaskInfo airTaskInfo1 = airTaskInfoService.get(airTaskInfo); String conmment = (airBlowingBaseInfo.getAirTaskInfo()==null||airBlowingBaseInfo.getAirTaskInfo().getAct()==null||airBlowingBaseInfo.getAirTaskInfo().getAct().getComment()==null)?"":airBlowingBaseInfo.getAirTaskInfo().getAct().getComment(); actTaskService.startProcess(airTaskInfo1.getCreateBy().getLoginName(),ActUtils.PD_AIRWAY_BLOWING_PROCESS[0], ActUtils.PD_AIRWAY_BLOWING_PROCESS[1], airTaskInfo1.getId(), "流程", vars,conmment); //此处的ActUtils.PD_AIRWAY_BLOWING_PROCESS[0]为流程图的流程标识ActUtils.PD_AIRWAY_BLOWING_PROCESS[1]为数据库中业务表名 //更新defid String defid=actTaskService.getProcessDefinitionId(ActUtils.PD_AIRWAY_BLOWING_PROCESS[0]); airTaskInfo.setProcessDefinitionId(defid); airTaskInfo.setUpdateBy(UserUtils.getUser()); airTaskInfoService.updateDefId(airTaskInfo); }
3.推进并结束流程
public void completeProcess(AirTaskInfo airTaskInfo,String cirLoginNames) { // boolean reject = false; String startName=null; List<String> personList = new ArrayList<String>(); //流程参数变量 Map<String, Object> vars = Maps.newHashMap(); // 设置意见 String comment="