@Override public void costWorkFlowStart(CostApprovalEntity costApproval, HttpServletRequest request) { // 由session取到登录用户id String applyUserId = ResourceUtil.getSessionUserName().getId(); this.save(costApproval); String processKey = request.getParameter("processKey"); if (!StringUtil.isNotEmpty(processKey)) { WorkFlowSetEntity workFlowSet = this.findUniqueByProperty( WorkFlowSetEntity.class, "entityName", costApproval.getClass().getSimpleName()); processKey = workFlowSet.getProcessKey(); } String businessKey = costApproval.getId().toString(); ProcessInstance processInstance = null; // 用来设置启动流程的人员ID,引擎会自动把用户ID保存到activiti:initiator中 identityService.setAuthenticatedUserId(applyUserId); Map<String, Object> variables = new HashMap<String, Object>(); variables.put(ProcessConstantsUtil.getApplyUserId(), applyUserId); processInstance = runtimeService.startProcessInstanceByKey(processKey, businessKey, variables); String processInstanceId = processInstance.getId(); costApproval.setProcessinstanceId(processInstanceId); // 获取并执行当前流程实例的下一步任务 Task task = null; TaskQuery query = taskService.createTaskQuery().processInstanceBusinessKey(businessKey).active(); task = query.singleResult(); variables.put( ProcessConstantsUtil.getDeptLeaderId(), ResourceUtil.getSessionUserName().getCurrentDepart().getDepartManager().getId()); taskService.complete(task.getId(), variables); }
/** * @Title: myWorkTaskData @Description: TODO * * @param request * @param response * @param dataGrid void * @throws * @exception * @author fly * @date 2015年6月23日 上午10:20:42 */ @RequestMapping(params = "myWorkTaskData") public void myWorkTaskData( HttpServletRequest request, HttpServletResponse response, DataGrid dataGrid) { String userId = ResourceUtil.getSessionUserName().getId(); // involvedUser 当前用户相关的 HistoricProcessInstanceQuery query = historyService.createHistoricProcessInstanceQuery().involvedUser(userId); List<HistoricProcessInstance> historicTasks = query .orderByProcessInstanceStartTime() .desc() .listPage(dataGrid.getStart(), dataGrid.getEnd()); long total = query.count(); System.out.println(dataGrid.getStart() + " end: " + dataGrid.getEnd()); StringBuffer rows = new StringBuffer(); for (HistoricProcessInstance t : historicTasks) { ProcessDefinition processDefinition = repositoryService.getProcessDefinition(t.getProcessDefinitionId()); rows.append( "{'id':'" + t.getId() + "','key':'" + processDefinition.getName() + "-" + DateUtils.date_sdf.format(t.getStartTime()) + "','taskId':'" + t.getId() + "'"); // 流程详细查看 WorkFlowSetEntity workFlowSet = systemService.findUniqueByProperty( WorkFlowSetEntity.class, "deploymentId", processDefinition.getDeploymentId()); if (workFlowSet != null) { rows.append(",'action':'" + workFlowSet.getDetailUrl() + "'"); } // 流程用户处理 if (t.getStartUserId() != null) { TSUser user = systemService.get(TSUser.class, t.getStartUserId()); rows.append(",'username':'******'"); } // 流程开始结束时间处理 if (t.getStartTime() == null) { rows.append(",'beginDate':'无'"); } else { rows.append(",'beginDate':'" + DateUtils.datetimeFormat.format(t.getStartTime()) + "'"); } if (t.getEndTime() == null) { rows.append(",'endDate':'无','stateType':'办理中'"); } else { rows.append( ",'endDate':'" + DateUtils.datetimeFormat.format(t.getEndTime()) + "','stateType':'已完成'"); } rows.append("},"); } String rowStr = StringUtils.substringBeforeLast(rows.toString(), ","); JSONObject jObject = JSONObject.fromObject("{'total':" + total + ",'rows':[" + rowStr + "]}"); responseDatagrid(response, jObject); }